private subroutine maxwell_hc_flux_nonconst_cube_vec(nTotalFaces, nSides, nFaceDofs, faceRep, faceFlux, leftPos, rightPos, var, material_left, material_right, poly_proj, left_modalCoeffs, right_modalCoeffs, left_pntVal, right_pntVal, nodalNumFlux, numFluxBuffer)
cleaning directly on the face-vector
This subroutine assumes the Maxwell equations with D and B as input
variables. Furthermore, it is able to handle arbitray material parameters
by a pseudo-spectral technique.
! Get the material of the left and right element at the current
! face.
! ... left material
left_mu = material_left(iSide,iPoint,1)
left_epsi = material_left(iSide,iPoint,2)
left_gam = material_left(iSide,iPoint,3)
left_chi = material_left(iSide,iPoint,4)
! ... right material
right_mu = material_right(iSide,iPoint,1)
right_epsi = material_right(iSide,iPoint,2)
right_gam = material_right(iSide,iPoint,3)
right_chi = material_right(iSide,iPoint,4)
& left_mu = left_mu, &
& left_epsi = left_epsi, &
& left_gam = left_gam, &
& left_chi = left_chi, &
& right_mu = right_mu, &
& right_epsi = right_epsi, &
& right_gam = right_gam, &
& right_chi = right_chi, &
Arguments
Type Intent Optional Attributes Name
integer,
intent(in)
::
nTotalFaces
integer,
intent(in)
::
nSides
integer,
intent(in)
::
nFaceDofs
real(kind=rk),
intent(in)
::
faceRep (nTotalFaces,nFaceDofs,8,2)The modal representation on the faces, left and right trace.
real(kind=rk),
intent(inout)
::
faceFlux (nTotalFaces,nFaceDofs,8,2)The fluxes for all faces, for left and right elements.
integer,
intent(in)
::
leftPos (nSides)Positions for the left and right elements of all faces
integer,
intent(in)
::
rightPos (nsides)Positions for the left and right elements of all faces
integer,
intent(in)
::
var (8)Variable rotation indices
real(kind=rk),
intent(in)
::
material_left (nSides,nFaceDofs,4)Material parameters for the left faces.
real(kind=rk),
intent(in)
::
material_right (nSides,nFaceDofs,4)Material parameters for the right faces.
type(ply_poly_project_type )
::
poly_proj Data for projection method
!> Working array for the left and right modal coefficients
real(kind=rk), intent(inout) :: left_modalCoeffs((fpt%nQuadPoints)2,8)
real(kind=rk), intent(inout) :: right_modalCoeffs((fpt%nQuadPoints) 2,8)
!> Working array for the left and right point values
real(kind=rk), intent(inout) :: left_pntVal((fpt%nQuadPoints)2,8)
real(kind=rk), intent(inout) :: right_pntVal((fpt%nQuadPoints) 2,8)
!> Working array for the nodal flux
real(kind=rk), intent(inout) :: nodalNumFlux((fpt%nQuadPoints)2,8)
!> Working array for the modal numerical flux
real(kind=rk), intent(inout) :: numFluxBuffer((fpt%nQuadPoints) 2,8)
real(kind=rk),
intent(inout),
allocatable ::
left_modalCoeffs (:,:)Working array for the left and right modal coefficients
real(kind=rk),
intent(inout),
allocatable ::
right_modalCoeffs (:,:)
real(kind=rk),
intent(inout),
allocatable ::
left_pntVal (:,:)Working array for the left and right point values
real(kind=rk),
intent(inout),
allocatable ::
right_pntVal (:,:)
real(kind=rk),
intent(inout),
allocatable ::
nodalNumFlux (:,:)Working array for the nodal flux
real(kind=rk),
intent(inout),
allocatable ::
numFluxBuffer (:,:)Working array for the modal numerical flux
Calls
proc~~maxwell_hc_flux_nonconst_cube_vec~~CallsGraph
proc~maxwell_hc_flux_nonconst_cube_vec
maxwell_hc_flux_nonconst_cube_vec
interface~ply_poly_project_n2m
ply_poly_project_n2m
proc~maxwell_hc_flux_nonconst_cube_vec->interface~ply_poly_project_n2m
interface~ply_poly_project_m2n
ply_poly_project_m2n
proc~maxwell_hc_flux_nonconst_cube_vec->interface~ply_poly_project_m2n
proc~ply_convert2oversample
ply_convert2oversample
proc~maxwell_hc_flux_nonconst_cube_vec->proc~ply_convert2oversample
proc~maxwell_hc_flux_cube
maxwell_hc_flux_cube
proc~maxwell_hc_flux_nonconst_cube_vec->proc~maxwell_hc_flux_cube
proc~ply_convertfromoversample
ply_convertFromOversample
proc~maxwell_hc_flux_nonconst_cube_vec->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_poly_project_m2n_multivar
ply_poly_project_m2n_multiVar
interface~ply_poly_project_m2n->proc~ply_poly_project_m2n_multivar
proc~ply_convert2oversample_2d
ply_convert2oversample_2d
proc~ply_convert2oversample->proc~ply_convert2oversample_2d
proc~ply_convert2oversample_3d
ply_convert2oversample_3d
proc~ply_convert2oversample->proc~ply_convert2oversample_3d
proc~ply_convert2oversample_1d
ply_convert2oversample_1d
proc~ply_convert2oversample->proc~ply_convert2oversample_1d
proc~atl_physfluxmaxwelldivcor
atl_physFluxMaxwellDivCor
proc~maxwell_hc_flux_cube->proc~atl_physfluxmaxwelldivcor
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
proc~ply_fxt_n2m_1d
ply_fxt_n2m_1D
proc~ply_poly_project_n2m_multivar->proc~ply_fxt_n2m_1d
interface~ply_pnttoleg_2d
ply_pntToLeg_2D
proc~ply_poly_project_n2m_multivar->interface~ply_pnttoleg_2d
proc~ply_l2p_trafo_2d
ply_l2p_trafo_2D
proc~ply_poly_project_n2m_multivar->proc~ply_l2p_trafo_2d
proc~ply_fxt_n2m_3d
ply_fxt_n2m_3D
proc~ply_poly_project_n2m_multivar->proc~ply_fxt_n2m_3d
proc~ply_fxt_n2m_2d
ply_fxt_n2m_2D
proc~ply_poly_project_n2m_multivar->proc~ply_fxt_n2m_2d
proc~ply_l2p_trafo_1d
ply_l2p_trafo_1D
proc~ply_poly_project_n2m_multivar->proc~ply_l2p_trafo_1d
proc~ply_l2p_trafo_3d
ply_l2p_trafo_3D
proc~ply_poly_project_n2m_multivar->proc~ply_l2p_trafo_3d
interface~ply_pnttoleg_3d
ply_pntToLeg_3D
proc~ply_poly_project_n2m_multivar->interface~ply_pnttoleg_3d
proc~ply_fxt_m2n_3d
ply_fxt_m2n_3D
proc~ply_poly_project_m2n_multivar->proc~ply_fxt_m2n_3d
interface~ply_legtopnt_2d
ply_legToPnt_2D
proc~ply_poly_project_m2n_multivar->interface~ply_legtopnt_2d
proc~ply_fxt_m2n_1d
ply_fxt_m2n_1D
proc~ply_poly_project_m2n_multivar->proc~ply_fxt_m2n_1d
proc~ply_poly_project_m2n_multivar->proc~ply_l2p_trafo_2d
proc~ply_fxt_m2n_2d
ply_fxt_m2n_2D
proc~ply_poly_project_m2n_multivar->proc~ply_fxt_m2n_2d
proc~ply_poly_project_m2n_multivar->proc~ply_l2p_trafo_1d
proc~ply_poly_project_m2n_multivar->proc~ply_l2p_trafo_3d
interface~ply_legtopnt_3d
ply_LegTopnt_3D
proc~ply_poly_project_m2n_multivar->interface~ply_legtopnt_3d
Nodes of different colours represent the following:
Graph Key
Subroutine
Subroutine
Function
Function
Interface
Interface
Unknown Procedure Type
Unknown Procedure Type
Program
Program
This Page's Entity
This Page's Entity
Solid arrows point from a procedure to one which it calls. Dashed
arrows point from an interface to procedures which implement that interface.
This could include the module procedures in a generic interface or the
implementation in a submodule of an interface in a parent module.
Called by
proc~~maxwell_hc_flux_nonconst_cube_vec~~CalledByGraph
proc~maxwell_hc_flux_nonconst_cube_vec
maxwell_hc_flux_nonconst_cube_vec
interface~atl_maxwell_hc_flux
atl_maxwell_hc_flux
interface~atl_maxwell_hc_flux->proc~maxwell_hc_flux_nonconst_cube_vec
proc~atl_modg_maxwelldivcor_numflux
atl_modg_maxwellDivCor_numFlux
proc~atl_modg_maxwelldivcor_numflux->interface~atl_maxwell_hc_flux
proc~compute_rhs_cubes_modg
compute_rhs_cubes_modg
proc~compute_rhs_cubes_modg->proc~atl_modg_maxwelldivcor_numflux
proc~compute_rhs_cubes
compute_rhs_cubes
proc~compute_rhs_cubes->proc~compute_rhs_cubes_modg
Nodes of different colours represent the following:
Graph Key
Subroutine
Subroutine
Function
Function
Interface
Interface
Unknown Procedure Type
Unknown Procedure Type
Program
Program
This Page's Entity
This Page's Entity
Solid arrows point from a procedure to one which it calls. Dashed
arrows point from an interface to procedures which implement that interface.
This could include the module procedures in a generic interface or the
implementation in a submodule of an interface in a parent module.
Variables
Type Visibility Attributes Name Initial
integer,
private ::
iSide real(kind=rk) :: left_mu, right_mu
real(kind=rk) :: left_epsi, right_epsi
real(kind=rk) :: left_gam, right_gam
real(kind=rk) :: left_chi, right_chi
integer,
private ::
left real(kind=rk) :: left_mu, right_mu
real(kind=rk) :: left_epsi, right_epsi
real(kind=rk) :: left_gam, right_gam
real(kind=rk) :: left_chi, right_chi
integer,
private ::
right real(kind=rk) :: left_mu, right_mu
real(kind=rk) :: left_epsi, right_epsi
real(kind=rk) :: left_gam, right_gam
real(kind=rk) :: left_chi, right_chi
integer,
private ::
iPoint real(kind=rk) :: left_mu, right_mu
real(kind=rk) :: left_epsi, right_epsi
real(kind=rk) :: left_gam, right_gam
real(kind=rk) :: left_chi, right_chi
real(kind=rk),
private ::
flux (8)
integer,
private ::
nquadpoints
integer,
private ::
ndofs
integer,
private ::
oversamp_dofs