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

TypeIntentOptionalAttributesName
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


Calls

proc~~atl_covolume_tocovolume_2d~~CallsGraph proc~atl_covolume_tocovolume_2d atl_covolume_tocovolume_2d proc~atl_interpolate_elemstate atl_interpolate_elemstate proc~atl_covolume_tocovolume_2d->proc~atl_interpolate_elemstate proc~atl_primal_to_covolume_projection_2d atl_primal_to_covolume_projection_2d proc~atl_covolume_tocovolume_2d->proc~atl_primal_to_covolume_projection_2d proc~atl_covolume_to_primal_projection_2d atl_covolume_to_primal_projection_2d proc~atl_covolume_tocovolume_2d->proc~atl_covolume_to_primal_projection_2d proc~atl_interpolate_elemstate->proc~atl_interpolate_elemstate proc~atl_modg_coarsetofineelem atl_modg_coarseToFineElem proc~atl_interpolate_elemstate->proc~atl_modg_coarsetofineelem proc~atl_set_covolume_bnd atl_set_covolume_bnd proc~atl_interpolate_elemstate->proc~atl_set_covolume_bnd proc~tem_stoptimer tem_stopTimer proc~atl_interpolate_elemstate->proc~tem_stoptimer proc~tem_abort tem_abort proc~atl_interpolate_elemstate->proc~tem_abort proc~atl_modg_finetocoarseelem atl_modg_fineToCoarseElem proc~atl_interpolate_elemstate->proc~atl_modg_finetocoarseelem proc~atl_modg_coarsetofineelem_1d atl_modg_coarseToFineElem_1d proc~atl_interpolate_elemstate->proc~atl_modg_coarsetofineelem_1d proc~atl_modg_finetocoarseelem_2d atl_modg_fineToCoarseElem_2d proc~atl_interpolate_elemstate->proc~atl_modg_finetocoarseelem_2d proc~atl_modg_finetocoarseelem_1d atl_modg_fineToCoarseElem_1d proc~atl_interpolate_elemstate->proc~atl_modg_finetocoarseelem_1d proc~tem_starttimer tem_startTimer proc~atl_interpolate_elemstate->proc~tem_starttimer proc~atl_modg_coarsetofineelem_2d atl_modg_coarseToFineElem_2d proc~atl_interpolate_elemstate->proc~atl_modg_coarsetofineelem_2d proc~atl_primal_to_covolume_projection_2d->proc~tem_abort proc~atl_covolume_to_primal_projection_2d->proc~tem_abort proc~atl_modg_coarsetofineelem->proc~tem_stoptimer proc~atl_modg_coarsetofineelem->proc~tem_starttimer proc~tem_childnumber tem_childNumber proc~atl_modg_coarsetofineelem->proc~tem_childnumber proc~modg_semirefineelem modg_semiRefineElem proc~atl_modg_coarsetofineelem->proc~modg_semirefineelem proc~atl_set_covolume_bnd->proc~tem_abort proc~atl_voltoface_1d atl_volToFace_1d proc~atl_set_covolume_bnd->proc~atl_voltoface_1d proc~atl_modg_1d_bnd atl_modg_1d_bnd proc~atl_set_covolume_bnd->proc~atl_modg_1d_bnd proc~atl_voltoface atl_volToFace proc~atl_set_covolume_bnd->proc~atl_voltoface proc~atl_extend_covol_face_2d atl_extend_covol_face_2d proc~atl_set_covolume_bnd->proc~atl_extend_covol_face_2d proc~atl_modg_bnd atl_modg_bnd proc~atl_set_covolume_bnd->proc~atl_modg_bnd proc~atl_voltoface_2d atl_volToFace_2d proc~atl_set_covolume_bnd->proc~atl_voltoface_2d proc~atl_modg_2d_bnd atl_modg_2d_bnd proc~atl_set_covolume_bnd->proc~atl_modg_2d_bnd proc~atl_extend_covol_face atl_extend_covol_face proc~atl_set_covolume_bnd->proc~atl_extend_covol_face proc~atl_extend_covol_face_1d atl_extend_covol_face_1d proc~atl_set_covolume_bnd->proc~atl_extend_covol_face_1d proc~modg_semicoarseelem modg_semiCoarseElem proc~atl_modg_finetocoarseelem->proc~modg_semicoarseelem mpi_wtime mpi_wtime proc~atl_modg_finetocoarseelem->mpi_wtime proc~modg_semirefineelem_1d modg_semiRefineElem_1d proc~atl_modg_coarsetofineelem_1d->proc~modg_semirefineelem_1d proc~atl_modg_coarsetofineelem_1d->proc~tem_childnumber proc~modg_semicoarseelem_2d modg_semiCoarseElem_2d proc~atl_modg_finetocoarseelem_2d->proc~modg_semicoarseelem_2d proc~atl_modg_finetocoarseelem_2d->mpi_wtime proc~modg_semicoarseelem_1d modg_semiCoarseElem_1d proc~atl_modg_finetocoarseelem_1d->proc~modg_semicoarseelem_1d proc~atl_modg_coarsetofineelem_2d->proc~tem_stoptimer proc~atl_modg_coarsetofineelem_2d->proc~tem_starttimer proc~atl_modg_coarsetofineelem_2d->proc~tem_childnumber proc~modg_semirefineelem_2d modg_semiRefineElem_2d proc~atl_modg_coarsetofineelem_2d->proc~modg_semirefineelem_2d

Called by

proc~~atl_covolume_tocovolume_2d~~CalledByGraph proc~atl_covolume_tocovolume_2d atl_covolume_tocovolume_2d proc~atl_covolume_2d atl_covolume_2d proc~atl_covolume_2d->proc~atl_covolume_tocovolume_2d proc~atl_stabilize atl_stabilize proc~atl_stabilize->proc~atl_covolume_2d proc~mesh_timestep_rktaylor mesh_timestep_rktaylor proc~mesh_timestep_rktaylor->proc~atl_stabilize proc~mesh_timestep_euler mesh_timestep_euler proc~mesh_timestep_euler->proc~atl_stabilize proc~mesh_timestep_euler->proc~mesh_timestep_euler none~substep substep none~substep->proc~atl_stabilize proc~mesh_timestep_imexrk mesh_timestep_imexrk proc~mesh_timestep_imexrk->proc~atl_stabilize proc~mesh_timestep_ssprk2 mesh_timestep_ssprk2 proc~mesh_timestep_ssprk2->proc~atl_stabilize program~atl_harvesting atl_harvesting program~atl_harvesting->proc~atl_stabilize proc~mesh_timestep_rk4 mesh_timestep_rk4 proc~mesh_timestep_rk4->none~substep

Contents


Variables

TypeVisibilityAttributesNameInitial
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(:,:)