Recursive routine to project the state from primal mesh to covolume mesh.
This routine is a recursive subroutine to project from the primal mesh to the covolume mesh. It interpolates to/from the finer level (if available) and calls itself on the next finer level. The projection is carried out by a L2 projection.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | minlevel | The minimal refinement level of the mesh. |
||
integer, | intent(in) | :: | maxlevel | The maximal refinement level of the mesh. |
||
integer, | intent(in) | :: | iDir | The spatial direction for the projection: 1 -> x direction \n 2 -> y direction \n 3 -> z direction \n |
||
type(atl_statedata_type), | intent(inout) | :: | state(minlevel:maxlevel) | State to be filtered |
||
type(atl_statedata_type), | intent(inout) | :: | state_stab(minlevel:maxlevel,1:3) | |||
type(atl_cube_elem_type), | intent(inout) | :: | mesh(minlevel:maxlevel) | Mesh information for all the levels. |
||
type(atl_covolume_type), | intent(in) | :: | filter | The actual co-volume filter to be applied. |
||
type(atl_scheme_type), | intent(inout) | :: | scheme(minlevel:maxlevel) | List of numerical schemes for all the levels. |
||
type(atl_Equations_type), | intent(in) | :: | equation | Equation kind information |
||
type(treelmesh_type), | intent(in) | :: | tree | treelm mesh |
||
type(ply_poly_project_type), | intent(inout) | :: | poly_proj(:) | The list of projections. |
||
integer, | intent(inout) | :: | poly_proj_pos(minlevel:maxlevel) | The mapping from each level to the projections. |
||
type(atl_boundary_type), | intent(in) | :: | bc(:) | The global description of the boundaries. |
||
type(atl_level_boundary_type), | intent(in) | :: | boundary(minlevel:maxlevel) | The levelwise collection of boundary elements and boundary faces. |
||
type(tem_general_type), | intent(inout) | :: | general | General treelm settings. |
||
integer, | intent(inout) | :: | commStateTimer | Timer for measuring the communication time inside this routine. |
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
integer, | private | :: | maxPolyDeg | ||||
integer, | private | :: | left_neighbor | ||||
integer, | private | :: | right_neighbor | ||||
integer, | private | :: | iside | ||||
integer, | private | :: | iLevel | ||||
integer, | private | :: | nElems_fluid | ||||
real(kind=rk), | private, | allocatable | :: | leftCovolume(:,:) | |||
real(kind=rk), | private, | allocatable | :: | rightCovolume(:,:) | |||
real(kind=rk), | private, | allocatable | :: | prev_state(:,:) | |||
real(kind=rk), | private, | allocatable | :: | modalCoeff(:,:) | |||
real(kind=rk), | private, | allocatable | :: | leftModalCoeff(:,:) | |||
real(kind=rk), | private, | allocatable | :: | rightModalCoeff(:,:) |