modg_project_physFlux_P Subroutine

private subroutine modg_project_physFlux_P(nScalars, iElem, maxPolyDegree, length, state, dl_prod, dirVec, state_der)

Projection of the physical flux onto the testfunctions, with unrolled loops => fewer loop-overhead/instructions, but more "random" memory accesses MZ: perhaps this version is faster for low order (or always, depending on the machine?)

Arguments

TypeIntentOptionalAttributesName
integer, intent(in) :: nScalars

The number of scalar variables in your equation system.

integer, intent(in) :: iElem

The element index

integer, intent(in) :: maxPolyDegree

The maximal polynomial degree in each spatial direction.

real(kind=rk), intent(in) :: length

The length of the cubes.

real(kind=rk), intent(inout) :: state(:,:,:)

The state to alter.

real(kind=rk), intent(in) :: dl_prod(2,maxPolyDegree+1)

Precomputed dual Legendre products:

integer, intent(in) :: dirVec(3)

ordering of xyz for current direction

real(kind=rk), intent(in) :: state_der(:,:)

The state to be used to project the physical fluxes


Calls

proc~~modg_project_physflux_p~~CallsGraph proc~modg_project_physflux_p modg_project_physFlux_P proc~ply_scalprodduallegdiff ply_scalProdDualLegDiff proc~modg_project_physflux_p->proc~ply_scalprodduallegdiff

Called by

proc~~modg_project_physflux_p~~CalledByGraph proc~modg_project_physflux_p modg_project_physFlux_P proc~atl_modg_project_physflux_testfunc atl_modg_project_PhysFlux_testFunc proc~atl_modg_project_physflux_testfunc->proc~modg_project_physflux_p proc~modg_compute_project_physflux modg_compute_project_physFlux proc~modg_compute_project_physflux->proc~atl_modg_project_physflux_testfunc 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

Contents


Variables

TypeVisibilityAttributesNameInitial
real(kind=rk), private :: jacobiDetStiffProj
real(kind=rk), private :: scalProd1(maxPolyDegree)
integer, private :: testPos
integer, private :: iTest2
integer, private :: iTest1
integer, private :: iTest3
integer, private :: iTestVec(3)
integer, private :: min2mpd
integer, private :: iAnsVec(3)
integer, private :: iVar
integer, private :: ansPos(4)
real(kind=rk), private :: scalProd(4)