ADflow  v1.0
ADflow is a finite volume RANS solver tailored for gradient-based aerodynamic design optimization.
wallDistanceData.F90
Go to the documentation of this file.
2 
3  ! This module stores some additional data required for the fast wall
4  ! distance computations.
5 
6  use constants
7 #ifndef USE_TAPENADE
8 #include <petsc/finclude/petsc.h>
9  use petsc
10  implicit none
11 #endif
12 
13  ! xVolume: flatten 1-D vector of all volume nodes for all
14  ! spectral instances. The dimension is the number of levels
15 
16  ! xSurf: flatten 1-D vector of the surface nodes for the faces
17  ! that individual processors require for doing its own wall
18  ! distance calculation
19 
20  ! wallScatter: The vecScatter objects that select the nodes
21  ! from xVolume and desposit them into xSurf. This is the
22  ! forward operation. The reverse operation is used for the
23  ! sensitivities.
24 
25  ! wallDistanceDataAllocated : Logical array keeping track of
26  ! whether or not the petsc data is allocated.
27 
28  ! indicesForSPS: A simple derived type for keeping track of
29  ! indices while doing wall distance computation.
30 
31  real(kind=realtype), dimension(:), pointer :: xsurf
32 
33  logical, dimension(:), allocatable :: walldistancedataallocated
34  logical, dimension(:), allocatable :: updatelevelwallassociation
35 
36 #ifndef USE_TAPENADE
37  real(kind=realtype), dimension(:), pointer :: xsurfd
38  vec, dimension(:), allocatable :: xvolumevec
39  vec, dimension(:, :), allocatable :: xsurfvec
40  vec, dimension(:), allocatable :: xsurfvecd
41  vecscatter, dimension(:, :), allocatable :: wallscatter
42  is is1, is2
43  real(kind=realtype), dimension(:), pointer :: xvolume
44 #endif
45 
46 end module walldistancedata
real(kind=realtype), dimension(:), pointer xvolume
real(kind=realtype), dimension(:), pointer xsurf
logical, dimension(:), allocatable walldistancedataallocated
real(kind=realtype), dimension(:), pointer xsurfd
logical, dimension(:), allocatable updatelevelwallassociation