72 REAL,
DIMENSION(:,:,:,:),
POINTER :: sendbuf, & !< send buffer for boundary data
77 procedure(setboundarydata),
DEFERRED :: setboundarydata
86 SUBROUTINE setboundarydata(this,Mesh,Physics,time,pvar)
92 REAL,
INTENT(IN) :: time
104 CHARACTER(LEN=32),
DIMENSION(6),
PARAMETER :: &
105 direction_name = (/
' west',
' east',
' south',
' north',
'bottom',
' top' /)
110 INTEGER,
PARAMETER :: &
117 fixed = int(z
'06'), &
154 TYPE(
dict_typ),
INTENT(IN),
POINTER :: config
155 INTEGER,
INTENT(IN) :: bctype,dir
156 CHARACTER(LEN=32),
INTENT(IN) :: bcname
159 INTEGER,
PARAMETER :: strlen = 32
160 CHARACTER(LEN=strlen) :: sendbuf
161 CHARACTER(LEN=strlen) :: recvbuf
162 INTEGER :: status(MPI_STATUS_SIZE)
167 CALL this%InitLogging(bctype,bcname)
168 ALLOCATE(this%direction)
175 CALL this%Error(
"InitBoundary_common",
"Unknown direction")
193 IF (this%GetRank() .EQ. 0 .AND. this%GetRank().EQ.mesh%rank0_boundaries(dir))
THEN
196 CALL this%Info(
" BOUNDARY-> condition: " // trim(this%direction%GetName()) &
197 //
" " // trim(this%GetName()), this%GetRank())
199 ELSE IF (this%GetRank().EQ.mesh%rank0_boundaries(dir))
THEN
201 sendbuf = trim(this%direction%GetName())//
" "//trim(this%GetName())
202 CALL mpi_send(sendbuf,strlen,mpi_character,0, &
203 0,mpi_comm_world,ierror)
204 ELSE IF (this%GetRank().EQ.0)
THEN
206 CALL mpi_recv(recvbuf,strlen,mpi_character,mesh%rank0_boundaries(dir),&
207 mpi_any_tag,mpi_comm_world,status,ierror)
208 CALL this%Info(
" BOUNDARY-> condition: " // trim(recvbuf),this%GetRank())
221 dir =
this%direction%GetType()
230 IF (.NOT.this%Initialized()) &
231 CALL this%Error(
"CloseBoundary_one",
"not initialized")
232 DEALLOCATE(this%direction)
integer, parameter axis
axis
integer, parameter periodic
connects opposite boundaries
integer, parameter custom
user defined
pure integer function getdirection(this)
Get the direction number.
integer, parameter no_gradients
copy data from last cell in comp. domain in ghost zones
integer, parameter farfield
uses far-field data and Riemann invariants
integer, parameter extrapolation
linear extrapolation
integer, parameter shearing
periodic with shear for shearing sheet/box
integer, parameter reflecting
reflecting, i.e. wall
subroutine finalize_base(this)
integer, parameter absorbing
vanishing characteristic pseudo-variables for incomming waves
integer, parameter noslip
reflecting, but with moving wall
integer, parameter fixed
set fixed boundary data
subroutine initboundary(this, Mesh, Physics, bctype, bcname, dir, config)
character(len=32), dimension(6), parameter direction_name
string literal for each orientation
Dictionary for generic data types.
type(logging_base), save this
subroutine finalize(this)
Destructor of logging_base class.
derived class for compound of mesh arrays
integer, parameter east
named constant for eastern boundary
integer, parameter bottom
named constant for bottom boundary
integer, parameter south
named constant for southern boundary
integer, parameter top
named constant for top boundary
integer, parameter north
named constant for northern boundary
integer, parameter west
named constant for western boundary