All routines, which are usually used inside the time step iteration loop, are collected inside this module. The computation of the right hand side is decomposed into 3 main steps: pre-process, compute_rhs and post-process.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | minLevel |
The minimum level of the mesh. |
||
integer, | intent(in) | :: | maxLevel |
The maximum level of the mesh. |
||
integer, | intent(in) | :: | currentLevel |
the level to compute on |
||
type(atl_cube_elem_type), | intent(inout) | :: | mesh_list(minLevel:maxLevel) |
List of mesh parts. For each level we have one. |
||
type(treelmesh_type), | intent(in) | :: | tree |
treelm mesh |
||
type(atl_statedata_type), | intent(inout) | :: | statedata_list(minLevel:maxLevel) |
List of states you want to calc the rhs for. For each level we have one. |
||
type(atl_facedata_type), | intent(inout) | :: | facedata_list(minLevel:maxLevel) |
List of face states you want to calc the rhs for. For each level we have one. |
||
type(atl_level_boundary_type), | intent(inout) | :: | boundary_list(minLevel:maxLevel) |
List of boundaries, for each level. |
||
type(atl_boundary_type), | intent(in) | :: | bc(:) |
The global boundary description. |
||
type(atl_scheme_type), | intent(inout) | :: | scheme_list(minLevel:maxLevel) |
List of schemes, for each level. |
||
type(ply_poly_project_type), | intent(inout) | :: | poly_proj_list(:) |
unique list for projection methods |
||
type(atl_Equations_type), | intent(inout) | :: | equation |
The equation you are operating with. |
||
type(atl_material_type), | intent(inout) | :: | material_list(minlevel:maxlevel) |
Information about the material parameters of the equation. |
||
type(tem_general_type), | intent(inout) | :: | general |
General treelm settings. |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(atl_cube_elem_type), | intent(inout) | :: | mesh |
List of mesh parts. For each level we have one. |
||
type(atl_kerneldata_type), | intent(inout) | :: | kerneldata |
List of kerneldatas. For each level we have one |
||
type(atl_statedata_type), | intent(inout) | :: | statedata |
List of states you want to calc the rhs for. For each level we have one. |
||
type(atl_scheme_type), | intent(inout) | :: | scheme |
List of schemes, for each level. |
||
type(atl_timestep_type), | intent(inout) | :: | timestep |
List of levelwise timestepping algorihtms |
||
type(atl_Equations_type), | intent(in) | :: | equation |
The equation you are operating with. |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | minLevel |
The minimum level of the mesh. |
||
integer, | intent(in) | :: | maxLevel |
The maximum level of the mesh. |
||
integer, | intent(in) | :: | currentLevel |
The level of the mesh you are computing the rhs for. |
||
type(atl_cube_elem_type), | intent(inout) | :: | mesh_list(minLevel:maxLevel) |
List of mesh parts. For each level we have one. |
||
type(treelmesh_type), | intent(in) | :: | tree |
treelm mesh |
||
type(atl_kerneldata_type), | intent(inout) | :: | kerneldata_list(minLevel:maxLevel) |
List of kerneldatas. For each level we have one |
||
type(atl_statedata_type), | intent(inout) | :: | statedata_list(minLevel:maxLevel) |
List of states you want to calc the rhs for. For each level we have one. |
||
type(atl_facedata_type), | intent(inout) | :: | facedata_list(minLevel:maxLevel) |
List of facedatas. For each level we have one |
||
type(atl_source_type), | intent(inout) | :: | source |
Levelwise list of sources |
||
type(atl_penalizationData_type), | intent(inout) | :: | penalizationdata_list(minLevel:maxLevel) |
Levelwise list of penalization data |
||
type(atl_scheme_type), | intent(inout) | :: | scheme_list(minLevel:maxLevel) |
List of schemes, for each level. |
||
integer, | intent(in) | :: | poly_proj_pos(minLevel:maxLevel) |
List of levelwise position of projection method in unique projection_list |
||
type(ply_poly_project_type), | intent(inout) | :: | poly_proj_list(:) |
unique list for projection methods |
||
type(atl_Equations_type), | intent(in) | :: | equation |
The equation you are operating with. |
||
type(atl_material_type), | intent(inout) | :: | material_list(minlevel:maxlevel) |
Material parameter description. |
||
type(tem_general_type), | intent(inout) | :: | general |
General treelm settings |
||
logical, | intent(in), | optional | :: | computePenalization |
Flag to indicate whether penalization terms should be computed or not. |
This routine is used to initialize an array in an OpenMP PARALLEL region. Usually this is done using a WORKSHARE directive, but due to a bug in Intel 15 we cannot make use of WORKSHARE.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=rk), | intent(inout) | :: | state_der(:,:,:) |
The state derivates of the kerneldata. |
c o m p u t e
t h e
r i g h t
h a n d
s i d e
o f
y o u r
d i s c r e t e
e q u a t i o n .
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | minLevel |
The minimum level of the mesh. |
||
integer, | intent(in) | :: | maxLevel |
The maximum level of the mesh. |
||
integer, | intent(in) | :: | currentLevel |
the level to compute on |
||
type(atl_cube_elem_type), | intent(inout) | :: | mesh_list(minLevel:maxLevel) |
List of mesh parts. For each level we have one. |
||
type(treelmesh_type), | intent(in) | :: | tree |
treelm mesh |
||
type(atl_statedata_type), | intent(inout) | :: | statedata_list(minLevel:maxLevel) |
List of states you want to calc the rhs for. For each level we have one. |
||
type(atl_facedata_type), | intent(inout) | :: | facedata_list(minLevel:maxLevel) |
List of face states you want to calc the rhs for. For each level we have one. |
||
type(atl_level_boundary_type), | intent(inout) | :: | boundary_list(minLevel:maxLevel) |
List of boundaries, for each level. |
||
type(atl_boundary_type), | intent(in) | :: | bc(:) |
The global boundary description. |
||
type(atl_scheme_type), | intent(inout) | :: | scheme_list(minLevel:maxLevel) |
List of schemes, for each level. |
||
type(ply_poly_project_type), | intent(inout) | :: | poly_proj_list(:) |
unique list for projection methods |
||
type(atl_Equations_type), | intent(inout) | :: | equation |
The equation you are operating with. |
||
type(atl_material_type), | intent(inout) | :: | material_list(minlevel:maxlevel) |
Information about the material parameters of the equation. |
||
type(tem_general_type), | intent(inout) | :: | general |
General treelm settings. |
A p p l i e s
t h e
p o s t p r o c e s s i n g
s t e p
o f
t h e
c o m p u t e
s t e p .
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(atl_cube_elem_type), | intent(inout) | :: | mesh |
List of mesh parts. For each level we have one. |
||
type(atl_kerneldata_type), | intent(inout) | :: | kerneldata |
List of kerneldatas. For each level we have one |
||
type(atl_statedata_type), | intent(inout) | :: | statedata |
List of states you want to calc the rhs for. For each level we have one. |
||
type(atl_scheme_type), | intent(inout) | :: | scheme |
List of schemes, for each level. |
||
type(atl_timestep_type), | intent(inout) | :: | timestep |
List of levelwise timestepping algorihtms |
||
type(atl_Equations_type), | intent(in) | :: | equation |
The equation you are operating with. |
c o m p u t e
t h e
r i g h t
h a n d
s i d e
o f
y o u r
d i s c r e t e
e q u a t i o n .
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | minLevel |
The minimum level of the mesh. |
||
integer, | intent(in) | :: | maxLevel |
The maximum level of the mesh. |
||
integer, | intent(in) | :: | currentLevel |
The level of the mesh you are computing the rhs for. |
||
type(atl_cube_elem_type), | intent(inout) | :: | mesh_list(minLevel:maxLevel) |
List of mesh parts. For each level we have one. |
||
type(treelmesh_type), | intent(in) | :: | tree |
treelm mesh |
||
type(atl_kerneldata_type), | intent(inout) | :: | kerneldata_list(minLevel:maxLevel) |
List of kerneldatas. For each level we have one |
||
type(atl_statedata_type), | intent(inout) | :: | statedata_list(minLevel:maxLevel) |
List of states you want to calc the rhs for. For each level we have one. |
||
type(atl_facedata_type), | intent(inout) | :: | facedata_list(minLevel:maxLevel) |
List of facedatas. For each level we have one |
||
type(atl_source_type), | intent(inout) | :: | source |
Levelwise list of sources |
||
type(atl_penalizationData_type), | intent(inout) | :: | penalizationdata_list(minLevel:maxLevel) |
Levelwise list of penalization data |
||
type(atl_scheme_type), | intent(inout) | :: | scheme_list(minLevel:maxLevel) |
List of schemes, for each level. |
||
integer, | intent(in) | :: | poly_proj_pos(minLevel:maxLevel) |
List of levelwise position of projection method in unique projection_list |
||
type(ply_poly_project_type), | intent(inout) | :: | poly_proj_list(:) |
unique list for projection methods |
||
type(atl_Equations_type), | intent(in) | :: | equation |
The equation you are operating with. |
||
type(atl_material_type), | intent(inout) | :: | material_list(minlevel:maxlevel) |
Material parameter description. |
||
type(tem_general_type), | intent(inout) | :: | general |
General treelm settings |
||
logical, | intent(in), | optional | :: | computePenalization |
Flag to indicate whether penalization terms should be computed or not. |
Computes the right hand side for cubical elements and MODG scheme.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | minLevel |
The minimum level of the mesh. |
||
integer, | intent(in) | :: | maxLevel |
The maximum level of the mesh. |
||
integer, | intent(in) | :: | currentLevel |
The level of the mesh you are computing the rhs for. |
||
type(atl_cube_elem_type), | intent(inout) | :: | mesh_list(minLevel:maxLevel) |
List of mesh parts. For each level we have one. |
||
type(atl_kerneldata_type), | intent(inout) | :: | kerneldata_list(minLevel:maxLevel) |
List of kerneldatas. For each level we have one |
||
type(atl_statedata_type), | intent(inout) | :: | statedata_list(minLevel:maxLevel) |
List of states you want to calc the rhs for. For each level we have one. |
||
type(atl_facedata_type), | intent(inout) | :: | facedata_list(minLevel:maxLevel) |
List of facedatas. For each level we have one |
||
type(atl_source_type), | intent(inout) | :: | source |
Levelwise list of sources |
||
type(atl_penalizationData_type), | intent(inout) | :: | penalizationdata_list(minLevel:maxLevel) |
Levelwise list of penalization data |
||
type(atl_scheme_type), | intent(inout) | :: | scheme_list(minLevel:maxLevel) |
List of schemes, for each level. |
||
integer, | intent(in) | :: | poly_proj_pos(minLevel:maxLevel) |
List of levelwise position of projection method in unique list |
||
type(ply_poly_project_type), | intent(inout) | :: | poly_proj_list(:) |
unique list for projection methods |
||
type(atl_Equations_type), | intent(in) | :: | equation |
The equation you are operating with. |
||
type(atl_material_type), | intent(inout) | :: | material_list(minlevel:maxlevel) |
Information about the material parameters of the equation. |
||
type(tem_general_type), | intent(inout) | :: | general |
General treelm settings |
||
logical, | intent(in), | optional | :: | computePenalization |
Flag to indicate whether penalization terms should be computed or not. |
TODO NA - Move this routine to the atl_modg_kernel_module
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(atl_cube_elem_type), | intent(in) | :: | mesh |
Descritption of the cubical elements in the mesh |
||
type(atl_Equations_type), | intent(in) | :: | equation |
The equation description. |
||
type(atl_kerneldata_type), | intent(inout) | :: | kerneldata |
The data of the kernel. Holds the physical fluxes. |
||
type(atl_statedata_type), | intent(inout) | :: | statedata |
The representation on the face + representation of the flux. |
||
integer, | intent(in) | :: | dirVec(3,3) |
vector for direction indicators |
||
type(ply_poly_project_type) | :: | poly_proj |
Data for projection method |
|||
type(atl_material_type), | intent(inout) | :: | material |
Material parameters (mu, epsilon) for all elements |
||
type(atl_scheme_type), | intent(inout) | :: | scheme(minLevel:maxLevel) |
The parameters of the MODG scheme |
||
real(kind=rk), | intent(in) | :: | dl_prod(:,:) |
stored scalar products of the testfunction and anstaz function |
||
type(atl_penalization_pointer_type) | :: | apply_pen(2) | ||||
type(atl_penalizationData_type), | intent(inout) | :: | penalizationdata | |||
integer, | intent(in) | :: | minLevel | |||
integer, | intent(in) | :: | currentLevel | |||
integer, | intent(in) | :: | maxLevel | |||
type(atl_physflux_pointer_type) | :: | eval_phy(2) | ||||
logical, | intent(in) | :: | usePenalization |
Flag indicating whether to apply the penalization or not. |
Computes the right hand side for cubical elements and 2D MODG scheme.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | minLevel |
The minimum level of the mesh. |
||
integer, | intent(in) | :: | maxLevel |
The maximum level of the mesh. |
||
integer, | intent(in) | :: | currentLevel |
The level of the mesh you are computing the rhs for. |
||
type(atl_cube_elem_type), | intent(inout) | :: | mesh_list(minLevel:maxLevel) |
List of mesh parts. For each level we have one. |
||
type(atl_kerneldata_type), | intent(inout) | :: | kerneldata_list(minLevel:maxLevel) |
List of kerneldatas. For each level we have one |
||
type(atl_statedata_type), | intent(inout) | :: | statedata_list(minLevel:maxLevel) |
List of states you want to calc the rhs for. For each level we have one. |
||
type(atl_facedata_type), | intent(inout) | :: | facedata_list(minLevel:maxLevel) |
List of facedatas. For each level we have one |
||
type(atl_source_type), | intent(inout) | :: | source |
Levelwise list of sources |
||
type(atl_penalizationData_type), | intent(inout) | :: | penalizationdata_list(minLevel:maxLevel) |
Levelwise list of penalization data |
||
type(atl_scheme_type), | intent(inout) | :: | scheme_list(minLevel:maxLevel) |
List of schemes, for each level. |
||
integer, | intent(in) | :: | poly_proj_pos(minLevel:maxLevel) |
List of levelwise position of projection method in unique projection_list |
||
type(ply_poly_project_type), | intent(inout) | :: | poly_proj_list(:) |
unique list for projection methods |
||
type(atl_Equations_type), | intent(in) | :: | equation |
The equation you are operating with. |
||
type(atl_material_type), | intent(inout) | :: | material_list(minlevel:maxlevel) |
Information about the material parameters of the equation. |
||
type(tem_general_type), | intent(inout) | :: | general |
General treelm settings |
||
logical, | intent(in), | optional | :: | computePenalization |
Flag to indicate whether penalization terms should be computed or not. |
This subroutine computes the physical fluxes for various equation system
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(atl_cube_elem_type), | intent(in) | :: | mesh |
Descritption of the cubical elements in the mesh |
||
type(atl_Equations_type), | intent(in) | :: | equation |
The equation description. |
||
type(atl_kerneldata_type), | intent(inout) | :: | kerneldata |
The data of the kernel. Holds the physical fluxes. |
||
type(atl_statedata_type), | intent(in) | :: | statedata |
The representation on the face + representation of the flux. |
||
type(atl_scheme_type), | intent(inout) | :: | scheme(minLevel:maxLevel) |
The parameters of the MODG scheme |
||
type(ply_poly_project_type) | :: | poly_proj |
Data for projection method |
|||
real(kind=rk), | intent(in) | :: | dl_prod(2,scheme(currentLevel)%modg_2d%maxPolyDegree+1) |
stored scalar products of the testfunction and anstaz function |
||
type(atl_penalizationData_type), | intent(inout) | :: | penalizationdata | |||
type(atl_material_type), | intent(inout) | :: | material |
Material parameters (mu, epsilon) for all elements |
||
integer, | intent(in) | :: | minLevel |
the levels of the geometry |
||
integer, | intent(in) | :: | maxLevel |
the levels of the geometry |
||
integer, | intent(in) | :: | currentLevel |
the levels of the geometry |
||
type(atl_physflux_pointer_type) | :: | eval_phy(2) | ||||
type(atl_penalization_pointer_type) | :: | apply_pen(2) | ||||
logical, | intent(in) | :: | usePenalization |
Flag indicating whether to apply the penalization or not. |
Computes the right hand side for cubical elements and 1D MODG scheme.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | minLevel |
The minimum level of the mesh. |
||
integer, | intent(in) | :: | maxLevel |
The maximum level of the mesh. |
||
integer, | intent(in) | :: | currentLevel |
The level of the mesh you are computing the rhs for. |
||
type(atl_cube_elem_type), | intent(inout) | :: | mesh_list(minLevel:maxLevel) |
List of mesh parts. For each level we have one. |
||
type(treelmesh_type), | intent(in) | :: | tree |
treelm mesh |
||
type(atl_kerneldata_type), | intent(inout) | :: | kerneldata_list(minLevel:maxLevel) |
List of kerneldatas. For each level we have one |
||
type(atl_statedata_type), | intent(inout) | :: | statedata_list(minLevel:maxLevel) |
List of states you want to calc the rhs for. For each level we have one. |
||
type(atl_facedata_type), | intent(inout) | :: | facedata_list(minLevel:maxLevel) |
List of facedatas. For each level we have one |
||
type(atl_source_type), | intent(inout) | :: | source |
Levelwise list of sources |
||
type(atl_penalizationData_type), | intent(inout) | :: | penalizationdata_list(minLevel:maxLevel) |
Levelwise list of penalization data |
||
type(atl_scheme_type), | intent(inout) | :: | scheme_list(minLevel:maxLevel) |
List of schemes, for each level. |
||
integer, | intent(in) | :: | poly_proj_pos(minLevel:maxLevel) |
List of levelwise position of projection method in unique projection_list |
||
type(ply_poly_project_type), | intent(inout) | :: | poly_proj_list(:) |
unique list for projection methods |
||
type(atl_Equations_type), | intent(in) | :: | equation |
The equation you are operating with. |
||
type(atl_material_type), | intent(in) | :: | material_list(minlevel:maxlevel) |
Material parameter description. |
||
type(tem_general_type), | intent(inout) | :: | general |
General treelm settings |
||
logical, | intent(in), | optional | :: | computePenalization |
Flag to indicate whether penalization terms should be computed or not. |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(atl_cube_elem_type), | intent(in) | :: | mesh |
Descritption of the cubical elements in the mesh |
||
type(atl_Equations_type), | intent(in) | :: | equation |
The equation description. |
||
type(atl_material_type), | intent(in) | :: | material |
Description of the material parameters. |
||
type(atl_kerneldata_type), | intent(inout) | :: | kerneldata |
The data of the kernel. Holds the physical fluxes. |
||
type(atl_statedata_type), | intent(in) | :: | statedata |
The representation on the face + representation of the flux. |
||
type(atl_scheme_type), | intent(inout) | :: | scheme(minLevel:maxLevel) |
The parameters of the MODG scheme |
||
type(ply_poly_project_type) | :: | poly_proj |
Data for projection method |
|||
type(atl_penalizationData_type), | intent(inout) | :: | penalizationdata |
Penalization terms |
||
integer, | intent(in) | :: | minLevel |
the levels of the geometry |
||
integer, | intent(in) | :: | maxLevel |
the levels of the geometry |
||
integer, | intent(in) | :: | currentLevel |
the levels of the geometry |
||
logical, | intent(in) | :: | usePenalization |
Flag indicating whether to apply the penalization or not. |