modg_compute_project_physFlux Subroutine

private subroutine modg_compute_project_physFlux(mesh, equation, kerneldata, statedata, dirVec, poly_proj, material, scheme, dl_prod, apply_pen, penalizationdata, minLevel, currentLevel, maxLevel, eval_phy, usePenalization)

Uses

TODO NA - Move this routine to the atl_modg_kernel_module

Arguments

TypeIntentOptionalAttributesName
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.


Calls

proc~~modg_compute_project_physflux~~CallsGraph proc~modg_compute_project_physflux modg_compute_project_physFlux interface~ply_poly_project_n2m ply_poly_project_n2m proc~modg_compute_project_physflux->interface~ply_poly_project_n2m proc~ply_calcdiff_leg ply_calcDiff_leg proc~modg_compute_project_physflux->proc~ply_calcdiff_leg proc~tem_stoptimer tem_stopTimer proc~modg_compute_project_physflux->proc~tem_stoptimer interface~ply_poly_project_m2n ply_poly_project_m2n proc~modg_compute_project_physflux->interface~ply_poly_project_m2n proc~ply_convert2oversample ply_convert2oversample proc~modg_compute_project_physflux->proc~ply_convert2oversample proc~atl_modg_project_physflux_testfunc atl_modg_project_PhysFlux_testFunc proc~modg_compute_project_physflux->proc~atl_modg_project_physflux_testfunc proc~atl_physfluxeuler atl_physFluxEuler proc~modg_compute_project_physflux->proc~atl_physfluxeuler proc~tem_starttimer tem_startTimer proc~modg_compute_project_physflux->proc~tem_starttimer proc~atl_initialize_state_der atl_initialize_state_der proc~modg_compute_project_physflux->proc~atl_initialize_state_der proc~ply_convertfromoversample ply_convertFromOversample proc~modg_compute_project_physflux->proc~ply_convertfromoversample proc~ply_poly_project_n2m_multivar ply_poly_project_n2m_multiVar interface~ply_poly_project_n2m->proc~ply_poly_project_n2m_multivar proc~ply_calcdiff_leg_z_vec ply_calcDiff_leg_z_vec proc~ply_calcdiff_leg->proc~ply_calcdiff_leg_z_vec proc~ply_calcdiff_leg_x_vec ply_calcDiff_leg_x_vec proc~ply_calcdiff_leg->proc~ply_calcdiff_leg_x_vec proc~ply_calcdiff_leg_y_vec ply_calcDiff_leg_y_vec proc~ply_calcdiff_leg->proc~ply_calcdiff_leg_y_vec proc~ply_poly_project_m2n_multivar ply_poly_project_m2n_multiVar interface~ply_poly_project_m2n->proc~ply_poly_project_m2n_multivar proc~ply_convert2oversample_1d ply_convert2oversample_1d proc~ply_convert2oversample->proc~ply_convert2oversample_1d proc~ply_convert2oversample_3d ply_convert2oversample_3d proc~ply_convert2oversample->proc~ply_convert2oversample_3d proc~ply_convert2oversample_2d ply_convert2oversample_2d proc~ply_convert2oversample->proc~ply_convert2oversample_2d proc~modg_prj_pflux2_q_6 modg_prj_pflux2_q_6 proc~atl_modg_project_physflux_testfunc->proc~modg_prj_pflux2_q_6 proc~modg_project_physflux_q modg_project_physFlux_Q proc~atl_modg_project_physflux_testfunc->proc~modg_project_physflux_q proc~modg_prj_pflux2_q_5 modg_prj_pflux2_q_5 proc~atl_modg_project_physflux_testfunc->proc~modg_prj_pflux2_q_5 proc~modg_prj_pflux1_q_5 modg_prj_pflux1_q_5 proc~atl_modg_project_physflux_testfunc->proc~modg_prj_pflux1_q_5 proc~modg_prj_pflux3_q_5 modg_prj_pflux3_q_5 proc~atl_modg_project_physflux_testfunc->proc~modg_prj_pflux3_q_5 proc~modg_project_physflux_p modg_project_physFlux_P proc~atl_modg_project_physflux_testfunc->proc~modg_project_physflux_p proc~modg_prj_pflux3_q_6 modg_prj_pflux3_q_6 proc~atl_modg_project_physflux_testfunc->proc~modg_prj_pflux3_q_6 proc~modg_prj_pflux1_q_6 modg_prj_pflux1_q_6 proc~atl_modg_project_physflux_testfunc->proc~modg_prj_pflux1_q_6 proc~ply_convertfromoversample_3d ply_convertFromOversample_3d proc~ply_convertfromoversample->proc~ply_convertfromoversample_3d proc~ply_convertfromoversample_1d ply_convertFromOversample_1d proc~ply_convertfromoversample->proc~ply_convertfromoversample_1d proc~ply_convertfromoversample_2d ply_convertFromOversample_2d proc~ply_convertfromoversample->proc~ply_convertfromoversample_2d

Called by

proc~~modg_compute_project_physflux~~CalledByGraph proc~modg_compute_project_physflux modg_compute_project_physFlux proc~compute_rhs_cubes_modg compute_rhs_cubes_modg proc~compute_rhs_cubes_modg->proc~modg_compute_project_physflux proc~compute_rhs_cubes compute_rhs_cubes proc~compute_rhs_cubes->proc~compute_rhs_cubes_modg interface~atl_compute_rhs atl_compute_rhs interface~atl_compute_rhs->proc~compute_rhs_cubes proc~rktaylor_substep rktaylor_substep proc~rktaylor_substep->interface~atl_compute_rhs proc~rk2_substep rk2_substep proc~rk2_substep->interface~atl_compute_rhs proc~rk4_substep rk4_substep proc~rk4_substep->interface~atl_compute_rhs proc~imexrk_substep imexrk_substep proc~imexrk_substep->interface~atl_compute_rhs proc~mesh_timestep_euler mesh_timestep_euler proc~mesh_timestep_euler->interface~atl_compute_rhs proc~global_corrector_substep global_corrector_substep proc~global_corrector_substep->interface~atl_compute_rhs

Contents


Variables

TypeVisibilityAttributesNameInitial
integer, private :: iDir

The direction

integer, private :: cov

Indicates whether the element has contant or variable material

real(kind=rk), private, allocatable:: modalCoeffs(:,:)

The modal coefficients of the current element in the loop.

real(kind=rk), private, allocatable:: modalCoeffs_gradient(:,:,:)

The modal coefficients of the current element in the loop.

real(kind=rk), private, allocatable:: pointVal(:,:)

Nodal representation of the polynomial with in each cell.

real(kind=rk), private, allocatable:: pointVal_gradient(:,:,:)

Nodal representation of the polynomial with in each cell.

real(kind=rk), private, allocatable:: nodal_res(:,:)

The nodal representation of the physical flux along the 3 spatial directions.

real(kind=rk), private, allocatable:: tmp_state_der(:,:)
integer, private :: nquadpoints
integer, private :: oversamp_dofs
integer, private :: iElem
integer, private :: ndofs
integer, private :: elems
integer, private :: elemPos
integer, private :: rot(5)
logical, private :: use_linear_flux
logical, private :: use_inviscid_flux
procedure(physFlux_interface), private, pointer:: physFlux=> null()