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 is used to switch off the application of penalizing terms from the convective computation and instead compute it in an implicit update, see the atl_imexrk_module. Default is .true.! |
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. |
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 is used to switch off the application of penalizing terms from the convective computation and instead compute it in an implicit update, see the atl_imexrk_module. Default is .true.! |
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. This is used to switch off the application of penalizing terms from the convective computation and instead compute it in an implicit update, see the atl_imexrk_module. Default is .true.! |
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. When a implicit scheme is used to integrate the penalized parts, this can be used to switch it off here. |
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 is used to switch off the application of penalizing terms from the convective computation and instead compute it in an implicit update, see the atl_imexrk_module. Default is .true.! |
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. When a implicit scheme is used to integrate the penalized parts, this can be used to switch it off here. |
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. This is used to switch off the application of penalizing terms from the convective computation and instead compute it in an implicit update, see the atl_imexrk_module. Default is .true.! |
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. When a implicit scheme is used to integrate the penalized parts, this can be used to switch it off here. |