modg_2d_compute_project_physFlux Subroutine

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

Uses

This subroutine computes the physical fluxes for various equation system

If the element is covered completely by the material, than just the first mode is considered for the flux computation. write(,) 'Elements with chi 0 using nonlinear flux '

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


Calls

proc~~modg_2d_compute_project_physflux~~CallsGraph proc~modg_2d_compute_project_physflux modg_2d_compute_project_physFlux proc~atl_physfluxeuler_2d atl_physFluxEuler_2d proc~modg_2d_compute_project_physflux->proc~atl_physfluxeuler_2d proc~atl_modg_2d_project_physflux_testfunc atl_modg_2d_project_physFlux_testFunc proc~modg_2d_compute_project_physflux->proc~atl_modg_2d_project_physflux_testfunc interface~ply_poly_project_n2m ply_poly_project_n2m proc~modg_2d_compute_project_physflux->interface~ply_poly_project_n2m proc~tem_stoptimer tem_stopTimer proc~modg_2d_compute_project_physflux->proc~tem_stoptimer interface~ply_poly_project_m2n ply_poly_project_m2n proc~modg_2d_compute_project_physflux->interface~ply_poly_project_m2n proc~ply_calcdiff_leg_2d ply_calcDiff_leg_2d proc~modg_2d_compute_project_physflux->proc~ply_calcdiff_leg_2d proc~ply_convert2oversample ply_convert2oversample proc~modg_2d_compute_project_physflux->proc~ply_convert2oversample proc~tem_starttimer tem_startTimer proc~modg_2d_compute_project_physflux->proc~tem_starttimer proc~atl_initialize_state_der atl_initialize_state_der proc~modg_2d_compute_project_physflux->proc~atl_initialize_state_der proc~atl_modg_2d_loclineuler_physflux atl_modg_2d_LoclinEuler_physFlux proc~modg_2d_compute_project_physflux->proc~atl_modg_2d_loclineuler_physflux proc~ply_convertfromoversample ply_convertFromOversample proc~modg_2d_compute_project_physflux->proc~ply_convertfromoversample proc~modg_2d_project_physfluxx_p modg_2d_project_physFluxX_P proc~atl_modg_2d_project_physflux_testfunc->proc~modg_2d_project_physfluxx_p proc~modg_2d_project_physfluxy_q modg_2d_project_physFluxY_Q proc~atl_modg_2d_project_physflux_testfunc->proc~modg_2d_project_physfluxy_q proc~modg_2d_project_physfluxx_q modg_2d_project_physFluxX_Q proc~atl_modg_2d_project_physflux_testfunc->proc~modg_2d_project_physfluxx_q proc~modg_2d_project_physfluxy_p modg_2d_project_physFluxY_P proc~atl_modg_2d_project_physflux_testfunc->proc~modg_2d_project_physfluxy_p proc~ply_poly_project_n2m_multivar ply_poly_project_n2m_multiVar interface~ply_poly_project_n2m->proc~ply_poly_project_n2m_multivar proc~ply_poly_project_m2n_multivar ply_poly_project_m2n_multiVar interface~ply_poly_project_m2n->proc~ply_poly_project_m2n_multivar proc~ply_calcdiff_leg_2d_normal ply_calcDiff_leg_2d_normal proc~ply_calcdiff_leg_2d->proc~ply_calcdiff_leg_2d_normal 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~ply_convert2oversample_1d ply_convert2oversample_1d proc~ply_convert2oversample->proc~ply_convert2oversample_1d 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_2d_compute_project_physflux~~CalledByGraph proc~modg_2d_compute_project_physflux modg_2d_compute_project_physFlux proc~compute_rhs_cubes_modg_2d compute_rhs_cubes_modg_2d proc~compute_rhs_cubes_modg_2d->proc~modg_2d_compute_project_physflux proc~compute_rhs_cubes compute_rhs_cubes proc~compute_rhs_cubes->proc~compute_rhs_cubes_modg_2d 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 :: matType

The direction

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

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:: 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
logical, private :: use_linear_flux
logical, private :: use_inviscid_flux
procedure(physFlux_interface), private, pointer:: physFlux=> null()
integer, private :: rot(4)
real(kind=rk), private, allocatable:: modalCoeffs_gradient(:,:,:)
real(kind=rk), private, allocatable:: pointVal_gradient(:,:,:)