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. |
compute the right hand side of your discrete equation.
| 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. |
Applies the postprocessing step of the compute step.
| 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. |
compute the right hand side of your discrete equation.
| 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. |