atl_maxwell_flux_2d_module Module

module that holds all routines to calculate the flux for hyperbolic Maxwell equations (2d, transverse electric mode formulation -TE).


Uses

  • module~~atl_maxwell_flux_2d_module~~UsesGraph module~atl_maxwell_flux_2d_module atl_maxwell_flux_2d_module module~ply_poly_project_module ply_poly_project_module module~atl_maxwell_flux_2d_module->module~ply_poly_project_module module~env_module env_module module~atl_maxwell_flux_2d_module->module~env_module module~ply_poly_project_module->module~env_module module~ply_fxt_module ply_fxt_module module~ply_poly_project_module->module~ply_fxt_module module~tem_logging_module tem_logging_module module~ply_poly_project_module->module~tem_logging_module module~ply_prj_header_module ply_prj_header_module module~ply_poly_project_module->module~ply_prj_header_module module~ply_dof_module ply_dof_module module~ply_poly_project_module->module~ply_dof_module module~ply_legfpt_3d_module ply_legFpt_3D_module module~ply_poly_project_module->module~ply_legfpt_3d_module module~tem_aux_module tem_aux_module module~ply_poly_project_module->module~tem_aux_module module~ply_legfpt_module ply_legFpt_module module~ply_poly_project_module->module~ply_legfpt_module module~ply_nodes_header_module ply_nodes_header_module module~ply_poly_project_module->module~ply_nodes_header_module module~tem_tools_module tem_tools_module module~ply_poly_project_module->module~tem_tools_module module~ply_dynarray_project_module ply_dynarray_project_module module~ply_poly_project_module->module~ply_dynarray_project_module module~ply_l2p_module ply_l2p_module module~ply_poly_project_module->module~ply_l2p_module module~ply_nodes_module ply_nodes_module module~ply_poly_project_module->module~ply_nodes_module module~ply_legfpt_2d_module ply_legFpt_2D_module module~ply_poly_project_module->module~ply_legfpt_2d_module module~ply_fxt_module->module~env_module fxt_fwrap fxt_fwrap module~ply_fxt_module->fxt_fwrap module~ply_fxt_header_module ply_fxt_header_module module~ply_fxt_module->module~ply_fxt_header_module module~ply_prj_header_module->module~env_module module~ply_prj_header_module->module~tem_logging_module module~ply_prj_header_module->module~tem_aux_module module~ply_prj_header_module->module~tem_tools_module module~aotus_module aotus_module module~ply_prj_header_module->module~aotus_module module~aot_out_module aot_out_module module~ply_prj_header_module->module~aot_out_module module~ply_prj_header_module->module~ply_fxt_header_module fftw_wrap fftw_wrap module~ply_prj_header_module->fftw_wrap module~ply_fpt_header_module ply_fpt_header_module module~ply_prj_header_module->module~ply_fpt_header_module module~ply_l2p_header_module ply_l2p_header_module module~ply_prj_header_module->module~ply_l2p_header_module module~ply_dof_module->module~env_module module~ply_legfpt_3d_module->module~env_module module~ply_legfpt_3d_module->module~ply_legfpt_module module~ply_legfpt_3d_module->fftw_wrap iso_c_binding iso_c_binding module~ply_legfpt_3d_module->iso_c_binding module~ply_legfpt_module->module~env_module module~ply_polybaseexc_module ply_polyBaseExc_module module~ply_legfpt_module->module~ply_polybaseexc_module module~ply_legfpt_module->fftw_wrap module~tem_compileconf_module tem_compileconf_module module~ply_legfpt_module->module~tem_compileconf_module module~ply_legfpt_module->iso_c_binding module~ply_legfpt_module->module~ply_fpt_header_module module~ply_nodes_header_module->module~env_module module~ply_dynarray_project_module->module~env_module module~ply_dynarray_project_module->module~tem_logging_module module~ply_dynarray_project_module->module~ply_prj_header_module module~ply_dynarray_project_module->module~aotus_module module~ply_l2p_module->module~env_module module~ply_l2p_module->module~tem_logging_module module~ply_l2p_module->module~tem_aux_module module~ply_l2p_module->module~tem_compileconf_module module~ply_modg_basis_module ply_modg_basis_module module~ply_l2p_module->module~ply_modg_basis_module module~ply_space_integration_module ply_space_integration_module module~ply_l2p_module->module~ply_space_integration_module module~ply_lagrange_module ply_lagrange_module module~ply_l2p_module->module~ply_lagrange_module module~ply_nodeset_module ply_nodeset_module module~ply_l2p_module->module~ply_nodeset_module module~ply_l2p_module->module~ply_l2p_header_module module~ply_nodes_module->module~env_module module~ply_nodes_module->module~tem_aux_module module~ply_nodes_module->module~ply_nodes_header_module module~ply_nodes_module->module~aotus_module module~ply_nodes_module->fftw_wrap module~ply_nodes_module->module~ply_nodeset_module module~ply_legfpt_2d_module->module~env_module module~ply_legfpt_2d_module->module~ply_legfpt_module module~ply_legfpt_2d_module->fftw_wrap module~ply_legfpt_2d_module->iso_c_binding

Used by

  • module~~atl_maxwell_flux_2d_module~~UsedByGraph module~atl_maxwell_flux_2d_module atl_maxwell_flux_2d_module module~atl_modg_2d_maxwell_kernel_module atl_modg_2d_maxwell_kernel_module module~atl_modg_2d_maxwell_kernel_module->module~atl_maxwell_flux_2d_module proc~compute_rhs_cubes_modg_2d compute_rhs_cubes_modg_2d proc~compute_rhs_cubes_modg_2d->module~atl_modg_2d_maxwell_kernel_module

Contents


Interfaces

public interface atl_maxwell_flux_2d

Interface for fluxes of pure Maxwell equations.

  • private subroutine maxwell_flux_cube_2d(left, right, left_mu, left_epsi, right_mu, right_epsi, flux)

    Subroutine to calculate the flux for pure Maxwell equations without

    Read more…

    Arguments

    TypeIntentOptionalAttributesName
    real(kind=rk), intent(in) :: left(7)

    Left state vector (as conservative variables). The order of this vector has to be \f$ (D_x, D_y, B_3) \f$ where E and B denoted electric field vetor and magnetic field (also called magnetic induction) vector.

    real(kind=rk), intent(in) :: right(7)

    Right state vector (as conservative variables). The order of this vector has to be (D_x, D_y, B_3) where E and B denoted the electric field vetor and magnetic field (also called magnetic induction) vector.

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

    The magnetic permeability of the left element.

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

    The electric permitivity of the left element.

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

    The magnetic permeability of the right element.

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

    The electric permitivity of the right element.

    real(kind=rk), intent(out) :: flux(7)

    The flux between left and right cell. The order of this vector is the same as the input arguments.

  • private subroutine maxwell_flux_cube_vec_2d(nTotalFaces, nSides, nFaceDofs, faceRep, faceFlux, leftPos, rightPos, var, material_left, material_right)

    calculate flux of pure maxwell equation directly on the face-vector

    Read more…

    Arguments

    TypeIntentOptionalAttributesName
    integer, intent(in) :: nTotalFaces
    integer, intent(in) :: nSides
    integer, intent(in) :: nFaceDofs
    real(kind=rk), intent(in) :: faceRep(nTotalFaces,nFaceDofs,7,2)
    real(kind=rk), intent(inout) :: faceFlux(nTotalFaces,nFaceDofs,7,2)
    integer, intent(in) :: leftPos(nSides)
    integer, intent(in) :: rightPos(nsides)
    integer, intent(in) :: var(7)
    real(kind=rk), intent(in) :: material_left(nSides,1,3)
    real(kind=rk), intent(in) :: material_right(nSides,1,3)
  • private subroutine maxwell_flux_nonconst_cube_vec_2d(nTotalFaces, nSides, nFaceDofs, faceRep, faceFlux, leftPos, rightPos, var, material_left, material_right, poly_proj, modalCoeffs, pntVal, nodalNumFlux, numFluxBuffer)

    calculate flux of pure maxwell equation directly on the face-vector

    Read more…

    Arguments

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

    FPT to convert between nodes and modes.

    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


Subroutines

private subroutine maxwell_flux_cube_2d(left, right, left_mu, left_epsi, right_mu, right_epsi, flux)

Subroutine to calculate the flux for pure Maxwell equations without

Read more…

Arguments

TypeIntentOptionalAttributesName
real(kind=rk), intent(in) :: left(7)

Left state vector (as conservative variables). The order of this vector has to be \f$ (D_x, D_y, B_3) \f$ where E and B denoted electric field vetor and magnetic field (also called magnetic induction) vector.

real(kind=rk), intent(in) :: right(7)

Right state vector (as conservative variables). The order of this vector has to be (D_x, D_y, B_3) where E and B denoted the electric field vetor and magnetic field (also called magnetic induction) vector.

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

The magnetic permeability of the left element.

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

The electric permitivity of the left element.

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

The magnetic permeability of the right element.

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

The electric permitivity of the right element.

real(kind=rk), intent(out) :: flux(7)

The flux between left and right cell. The order of this vector is the same as the input arguments.

private subroutine maxwell_flux_nonconst_cube_vec_2d(nTotalFaces, nSides, nFaceDofs, faceRep, faceFlux, leftPos, rightPos, var, material_left, material_right, poly_proj, modalCoeffs, pntVal, nodalNumFlux, numFluxBuffer)

calculate flux of pure maxwell equation directly on the face-vector

Read more…

Arguments

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

FPT to convert between nodes and modes.

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

private subroutine maxwell_flux_cube_vec_2d(nTotalFaces, nSides, nFaceDofs, faceRep, faceFlux, leftPos, rightPos, var, material_left, material_right)

calculate flux of pure maxwell equation directly on the face-vector

Read more…

Arguments

TypeIntentOptionalAttributesName
integer, intent(in) :: nTotalFaces
integer, intent(in) :: nSides
integer, intent(in) :: nFaceDofs
real(kind=rk), intent(in) :: faceRep(nTotalFaces,nFaceDofs,7,2)
real(kind=rk), intent(inout) :: faceFlux(nTotalFaces,nFaceDofs,7,2)
integer, intent(in) :: leftPos(nSides)
integer, intent(in) :: rightPos(nsides)
integer, intent(in) :: var(7)
real(kind=rk), intent(in) :: material_left(nSides,1,3)
real(kind=rk), intent(in) :: material_right(nSides,1,3)