boundary_generic_mod Module Reference

Generic boundary module. More...

Data Types

type  boundary_generic
 
type  boundary_p
 

Functions/Subroutines

subroutine setcorneredges (this, Mesh, Physics, pvar)
 Calculates the corner in 2D and the corners and edges in 3D. More...
 
subroutine mpiboundarycommunication (this, Mesh, Physics, pvar)
 Handles the MPI communication of the inner (and physical periodic) boundaries. More...
 
subroutine, private finalize (this)
 

variables

subroutine, public new_boundary (Boundary, Mesh, Physics, config, IO)
 
subroutine, private initboundary (this, Mesh, Physics, config, IO)
 
subroutine, private centerboundary (this, Mesh, Physics, time, pvar, cvar)
 Sets boundaries in all directions. More...
 
subroutine initboundary_mpi (this, Mesh, Physics, periods)
 initializes the MPI communication More...
 

Detailed Description

Generic boundary module.

Author
Tobias Illenseer
Manuel Jung
Jannes Klee

This module and its object holds the six boundaries, where every boundary is its own object.

Function/Subroutine Documentation

◆ centerboundary()

subroutine, private boundary_generic_mod::centerboundary ( class(boundary_generic), intent(inout)  this,
class(mesh_base), intent(in)  Mesh,
class(physics_base), intent(in)  Physics,
real, intent(in)  time,
class(marray_compound), intent(inout)  pvar,
class(marray_compound), intent(inout)  cvar 
)
private

Sets boundaries in all directions.

Definition at line 279 of file boundary_generic.f90.

◆ finalize()

subroutine, private boundary_generic_mod::finalize ( class(boundary_generic), intent(inout)  this)
private

Definition at line 1071 of file boundary_generic.f90.

◆ initboundary()

subroutine, private boundary_generic_mod::initboundary ( class(boundary_generic), intent(inout)  this,
class(mesh_base), intent(inout)  Mesh,
class(physics_base), intent(in)  Physics,
type(dict_typ), pointer  config,
type(dict_typ), pointer  IO 
)
private

Definition at line 102 of file boundary_generic.f90.

◆ initboundary_mpi()

subroutine boundary_generic_mod::initboundary_mpi ( class(boundary_generic), intent(inout)  this,
class(mesh_base), intent(inout)  Mesh,
class(physics_base), intent(in)  Physics,
logical, dimension(3), intent(in)  periods 
)

initializes the MPI communication

Definition at line 752 of file boundary_generic.f90.

◆ mpiboundarycommunication()

subroutine boundary_generic_mod::mpiboundarycommunication ( class(boundary_generic), intent(inout)  this,
class(mesh_base), intent(in)  Mesh,
class(physics_base), intent(in)  Physics,
real, dimension(mesh%igmin:mesh%igmax,mesh%jgmin:mesh%jgmax,mesh%kgmin:mesh%kgmax,physics%vnum), intent(inout)  pvar 
)

Handles the MPI communication of the inner (and physical periodic) boundaries.

Definition at line 818 of file boundary_generic.f90.

◆ new_boundary()

subroutine, public boundary_generic_mod::new_boundary ( class(boundary_generic), allocatable  Boundary,
class(mesh_base), intent(inout)  Mesh,
class(physics_base), intent(in)  Physics,
type(dict_typ), pointer  config,
type(dict_typ), pointer  IO 
)

Definition at line 90 of file boundary_generic.f90.

◆ setcorneredges()

subroutine boundary_generic_mod::setcorneredges ( class(boundary_generic), intent(inout)  this,
class(mesh_base), intent(in)  Mesh,
class(physics_base), intent(in)  Physics,
real, dimension(mesh%igmin:mesh%igmax,mesh%jgmin:mesh%jgmax,mesh%kgmin:mesh%kgmax,physics%vnum), intent(inout)  pvar 
)

Calculates the corner in 2D and the corners and edges in 3D.

This is a interpolation of corners & edges outside the computational domain, if they are undefined (e.g. there are no periodic or inner boundaries involved in the corner) this is also necessary, because we need some of these values in the viscosity module This part calculates the corner in 2D and the edges in 3D. Further below the corners in 3D are approximated.

Attention
Only the diagonal corner cells in 3D corners are approximated because the others are not necessary by any module (they are also set reasonably by the setting the edges, but could be approximated better).

Definition at line 418 of file boundary_generic.f90.