atl_covolume_tocovolume_2d Subroutine

private subroutine atl_covolume_tocovolume_2d(minlevel, maxlevel, iDir, state, state_stab, mesh, filter, scheme, equation, tree, poly_proj, poly_proj_pos, bc, boundary, general, commStateTimer, adaptive_orders)

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.

Arguments

Type IntentOptional 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(atl_adaptive_orders_type), intent(in), optional :: adaptive_orders(minlevel:maxlevel)

The filters orders, if adaptive filter is applied