(formulation is based on TE mode formulation for 2D).
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.
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,7,2) | The modal representation on the faces, left and right trace. |
||
real(kind=rk), | intent(inout) | :: | faceFlux(nTotalFaces,nFaceDofs,7,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(7) | Variable rotation indices |
||
real(kind=rk), | intent(in) | :: | material_left(nSides,nFaceDofs,3) | Material parameters for the left faces. |
||
real(kind=rk), | intent(in) | :: | material_right(nSides,nFaceDofs,3) | Material parameters for the right faces.
|
||
type(ply_poly_project_type) | :: | poly_proj | Data for projection method |
|||
real(kind=rk), | intent(inout) | :: | modalCoeffs(:,:,:) | Working array for the left and right modal coefficients |
||
real(kind=rk), | intent(inout) | :: | pntVal(:,:,:) | Working array for the left and right point values |
||
real(kind=rk), | intent(inout) | :: | nodalNumFlux(:,:) | Working array for the nodal flux |
||
real(kind=rk), | intent(inout) | :: | numFluxBuffer(:,:) | Working array for the modal numerical flux |
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
integer, | private | :: | iSide | ||||
integer, | private | :: | left | ||||
integer, | private | :: | right | ||||
integer, | private | :: | iPoint | ||||
real(kind=rk), | private | :: | left_mu | ||||
real(kind=rk), | private | :: | right_mu | ||||
real(kind=rk), | private | :: | left_epsi | ||||
real(kind=rk), | private | :: | right_epsi | ||||
real(kind=rk), | private | :: | flux(7) | ||||
integer, | private | :: | nquadpoints | ||||
integer, | private | :: | ndofs | ||||
integer, | private | :: | maxPolyDegree | ||||
integer, | private | :: | oversamp_degree | ||||
integer, | private | :: | oversamp_dofs | ||||
integer, | private | :: | iDegX |