mesh_midpoint_mod Module Reference

mesh module for midpoint quadrature rule More...

Data Types

type  mesh_midpoint
 

Functions/Subroutines

subroutine initmesh_midpoint (this, config, IO)
 
pure subroutine vectordivergence2d_1 (this, vx, vy, divv)
 compute the cell centered 2D vector divergence More...
 
pure subroutine tensordivergence2d_1 (this, Txx, Txy, Tyx, Tyy, divTx, divTy)
 compute the cell centered 2D rank 2 tensor divergence More...
 
pure subroutine vectordivergence3d (this, vx, vy, vz, divv)
 compute the cell centered 3D vector divergence More...
 
pure subroutine tensordivergence3d (this, Txx, Txy, Txz, Tyx, Tyy, Tyz, Tzx, Tzy, Tzz, divTx, divTy, divTz)
 compute the cell centered 3D rank 2 tensor divergence More...
 
elemental real function divergence3d (dAxdydzWest, dAxdydzEast, dAydxdzSouth, dAydxdzNorth, dAzdxdyBottom, dAzdxdyTop, dydzdV, dxdzdV, dxdydV, cxyx, cxzx, cyxy, czxz, TxxWest, TxxEast, TxySouth, TxyNorth, TxzBottom, TxzTop, TyxCent, TzxCent, TyyCent, TzzCent)
 elemental workhorse to compute divergence More...
 
subroutine finalize (this)
 

Variables

character(len=32), parameter mesh_name = "midpoint"
 

Detailed Description

mesh module for midpoint quadrature rule

Author
Tobias Illenseer
Manuel Jung

Function/Subroutine Documentation

◆ divergence3d()

elemental real function mesh_midpoint_mod::divergence3d ( real, intent(in)  dAxdydzWest,
real, intent(in)  dAxdydzEast,
real, intent(in)  dAydxdzSouth,
real, intent(in)  dAydxdzNorth,
real, intent(in)  dAzdxdyBottom,
real, intent(in)  dAzdxdyTop,
real, intent(in)  dydzdV,
real, intent(in)  dxdzdV,
real, intent(in)  dxdydV,
real, intent(in)  cxyx,
real, intent(in)  cxzx,
real, intent(in)  cyxy,
real, intent(in)  czxz,
real, intent(in)  TxxWest,
real, intent(in)  TxxEast,
real, intent(in)  TxySouth,
real, intent(in)  TxyNorth,
real, intent(in)  TxzBottom,
real, intent(in)  TxzTop,
real, intent(in)  TyxCent,
real, intent(in)  TzxCent,
real, intent(in)  TyyCent,
real, intent(in)  TzzCent 
)
private

elemental workhorse to compute divergence

input: area and volume elements (multiplied and devided by dx or dy, commutator coefficients, tensor components output: vector divergence (scalar) or x-component of the tensor divergence call this function with different input to obtain other components

Definition at line 589 of file mesh_midpoint.f90.

◆ finalize()

subroutine mesh_midpoint_mod::finalize ( class(mesh_midpoint), intent(inout)  this)
private

Definition at line 634 of file mesh_midpoint.f90.

◆ initmesh_midpoint()

subroutine mesh_midpoint_mod::initmesh_midpoint ( class(mesh_midpoint), intent(inout)  this,
type(dict_typ), pointer  config,
type(dict_typ), pointer  IO 
)
private

Definition at line 74 of file mesh_midpoint.f90.

◆ tensordivergence2d_1()

pure subroutine mesh_midpoint_mod::tensordivergence2d_1 ( class(mesh_midpoint), intent(in)  this,
real, dimension(this%igmin:this%igmax,this%jgmin:this%jgmax,this%kgmin:this%kgmax), intent(in)  Txx,
real, dimension(this%igmin:this%igmax,this%jgmin:this%jgmax,this%kgmin:this%kgmax), intent(in)  Txy,
real, dimension(this%igmin:this%igmax,this%jgmin:this%jgmax,this%kgmin:this%kgmax), intent(in)  Tyx,
real, dimension(this%igmin:this%igmax,this%jgmin:this%jgmax,this%kgmin:this%kgmax), intent(in)  Tyy,
real, dimension(this%igmin:this%igmax,this%jgmin:this%jgmax,this%kgmin:this%kgmax), intent(out)  divTx,
real, dimension(this%igmin:this%igmax,this%jgmin:this%jgmax,this%kgmin:this%kgmax), intent(out)  divTy 
)
private

compute the cell centered 2D rank 2 tensor divergence

The divergence is computed on the whole mesh except for the outermost boundary cells. The elemental function to compute the 3D curvilinear tensor divergence is utilized. Thereby the commutator coefficients related to the suppressed spatial dimension are set to 0.

input: 2D rank 2 tensor T with components Txx,Txy,Tyx,Tyy given at cell centers output: 2D vector vector components divTx,divTy

Definition at line 279 of file mesh_midpoint.f90.

◆ tensordivergence3d()

pure subroutine mesh_midpoint_mod::tensordivergence3d ( class(mesh_midpoint), intent(in)  this,
real, dimension(this%igmin:this%igmax,this%jgmin:this%jgmax,this%kgmin:this%kgmax), intent(in)  Txx,
real, dimension(this%igmin:this%igmax,this%jgmin:this%jgmax,this%kgmin:this%kgmax), intent(in)  Txy,
real, dimension(this%igmin:this%igmax,this%jgmin:this%jgmax,this%kgmin:this%kgmax), intent(in)  Txz,
real, dimension(this%igmin:this%igmax,this%jgmin:this%jgmax,this%kgmin:this%kgmax), intent(in)  Tyx,
real, dimension(this%igmin:this%igmax,this%jgmin:this%jgmax,this%kgmin:this%kgmax), intent(in)  Tyy,
real, dimension(this%igmin:this%igmax,this%jgmin:this%jgmax,this%kgmin:this%kgmax), intent(in)  Tyz,
real, dimension(this%igmin:this%igmax,this%jgmin:this%jgmax,this%kgmin:this%kgmax), intent(in)  Tzx,
real, dimension(this%igmin:this%igmax,this%jgmin:this%jgmax,this%kgmin:this%kgmax), intent(in)  Tzy,
real, dimension(this%igmin:this%igmax,this%jgmin:this%jgmax,this%kgmin:this%kgmax), intent(in)  Tzz,
real, dimension(this%igmin:this%igmax,this%jgmin:this%jgmax,this%kgmin:this%kgmax), intent(out)  divTx,
real, dimension(this%igmin:this%igmax,this%jgmin:this%jgmax,this%kgmin:this%kgmax), intent(out)  divTy,
real, dimension(this%igmin:this%igmax,this%jgmin:this%jgmax,this%kgmin:this%kgmax), intent(out)  divTz 
)
private

compute the cell centered 3D rank 2 tensor divergence

It is computed on the whole mesh except for the outermost boundary cells. It accounts for contributions due to the curvilinear mesh.

input: 3D rank 2 tensor T with components Txx,Txy,Txz,Tyx,Tyy,Tyz,Tzx,Tzy,Tzz given at cell centers output: 3D vector vector components divTx,divTy,divTz

Definition at line 518 of file mesh_midpoint.f90.

◆ vectordivergence2d_1()

pure subroutine mesh_midpoint_mod::vectordivergence2d_1 ( class(mesh_midpoint), intent(in)  this,
real, dimension(this%igmin:this%igmax,this%jgmin:this%jgmax,this%kgmin:this%kgmax), intent(in)  vx,
real, dimension(this%igmin:this%igmax,this%jgmin:this%jgmax,this%kgmin:this%kgmax), intent(in)  vy,
real, dimension(this%igmin:this%igmax,this%jgmin:this%jgmax,this%kgmin:this%kgmax), intent(out)  divv 
)
private

compute the cell centered 2D vector divergence

We use the elemental function to compute the 3D tensor divergence setting the commutator coefficients and the off-diagonal tensor components to 0.

input: cell centered 2D vector components vx,vy on the whole mesh output: div(v) on the whole mesh except for the outermost boundary cells

Definition at line 156 of file mesh_midpoint.f90.

◆ vectordivergence3d()

pure subroutine mesh_midpoint_mod::vectordivergence3d ( class(mesh_midpoint), intent(in)  this,
real, dimension(this%igmin:this%igmax,this%jgmin:this%jgmax,this%kgmin:this%kgmax), intent(in)  vx,
real, dimension(this%igmin:this%igmax,this%jgmin:this%jgmax,this%kgmin:this%kgmax), intent(in)  vy,
real, dimension(this%igmin:this%igmax,this%jgmin:this%jgmax,this%kgmin:this%kgmax), intent(in)  vz,
real, dimension(this%igmin:this%igmax,this%jgmin:this%jgmax,this%kgmin:this%kgmax), intent(out)  divv 
)
private

compute the cell centered 3D vector divergence

input: cell centered 3D vector components vx,vy,vz on the whole mesh output: div(v) on the whole mesh except for the outermost boundary cells

Definition at line 474 of file mesh_midpoint.f90.

Variable Documentation

◆ mesh_name

character(len=32), parameter mesh_midpoint_mod::mesh_name = "midpoint"
private

Definition at line 60 of file mesh_midpoint.f90.