Module for routines and datatypes of MOdal Discontinuous Galerkin (MODG) scheme. This scheme is a spectral scheme for linear, purley hyperbolic partial differential equation systems.
Calculate the numerical flux for Maxwell equation with hyperbolic divergence cleaning and MODG scheme
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(atl_Equations_type), | intent(in) | :: | equation | The equation you solve. |
||
type(atl_facedata_type), | intent(inout) | :: | facedata | The face representation of the state. |
||
type(atl_modg_scheme_type), | intent(inout) | :: | scheme | Parameters of the modal dg scheme |
||
type(ply_poly_project_type), | intent(inout) | :: | poly_proj | Data for projection method |
||
type(atl_material_type), | intent(inout) | :: | material | Material description for the faces on the current level |
Calculate the physical flux for the MODG scheme and Maxwell equation with hyperbolic divergenc cleaning.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(atl_Equations_type), | intent(in) | :: | equation | The equation you solve. |
||
real(kind=rk), | intent(inout) | :: | res(:,:) | To store the resulting phy flux in modal form |
||
real(kind=rk), | intent(in), | optional | :: | state(:,:) | The state of the equation |
|
integer, | intent(in) | :: | iElem | The current Element |
||
integer, | intent(in) | :: | iDir | The current Direction |
||
type(atl_penalizationData_type), | intent(inout) | :: | penalizationData | The penalization data |
||
type(ply_poly_project_type), | intent(inout) | :: | poly_proj | Poly project |
||
type(atl_material_type), | intent(inout) | :: | material | Material description for the faces on the current level |
||
real(kind=rk), | intent(in), | optional | :: | nodal_data(:,:) | The state in nodal form |
|
real(kind=rk), | intent(in), | optional | :: | nodal_GradData(:,:,:) | ||
real(kind=rk), | intent(inout) | :: | nodal_res(:,:) | |||
real(kind=rk), | intent(in) | :: | ElemLength | Length of the element |
||
type(atl_scheme_type), | intent(inout) | :: | scheme_min | The scheme information |
||
type(atl_scheme_type), | intent(inout) | :: | scheme_current |
Calculate the physical flux for the MODG scheme and Maxwell equation with hyperbolic divergenc cleaning.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(atl_Equations_type), | intent(in) | :: | equation | The equation you solve. |
||
real(kind=rk), | intent(inout) | :: | res(:,:) | To store the resulting phy flux in modal form |
||
real(kind=rk), | intent(in), | optional | :: | state(:,:) | The state of the equation |
|
integer, | intent(in) | :: | iElem | The current Element |
||
integer, | intent(in) | :: | iDir | The current Direction |
||
type(atl_penalizationData_type), | intent(inout) | :: | penalizationData | The penalization data |
||
type(ply_poly_project_type), | intent(inout) | :: | poly_proj | Poly project |
||
type(atl_material_type), | intent(inout) | :: | material | Material description for the faces on the current level |
||
real(kind=rk), | intent(in), | optional | :: | nodal_data(:,:) | The state in nodal form |
|
real(kind=rk), | intent(in), | optional | :: | nodal_GradData(:,:,:) | ||
real(kind=rk), | intent(inout) | :: | nodal_res(:,:) | |||
real(kind=rk), | intent(in) | :: | ElemLength | Length of the element |
||
type(atl_scheme_type), | intent(inout) | :: | scheme_min | The scheme information |
||
type(atl_scheme_type), | intent(inout) | :: | scheme_current |
Compute the physical flux in x direction. For other directions a properly defined variable permutation can be used. This routine covers only constant material parameters.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | nDofs | dimensions |
||
integer, | intent(in) | :: | nScalars | dimensions |
||
real(kind=rk), | intent(in) | :: | gam | |||
real(kind=rk), | intent(in) | :: | chi | |||
real(kind=rk), | intent(inout) | :: | state_der(nDofs,nScalars) | Array to store the fluxes in. |
||
real(kind=rk), | intent(in) | :: | state(nDofs,nScalars) | State to compute the fluxes from. |
||
integer, | intent(in) | :: | rot(8) | Rotationing to index the variables. |
||
real(kind=rk), | intent(in) | :: | inv_mu | |||
real(kind=rk), | intent(in) | :: | inv_epsi |
Compute the physical flux in x direction. For other directions a properly defined variable permutation can be used. This routine covers non-constant material parameters.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | nDofs | dimensions |
||
integer, | intent(in) | :: | nScalars | dimensions |
||
integer, | intent(in) | :: | nquadpoints | dimensions |
||
real(kind=rk), | intent(inout) | :: | state_der(nDofs,nScalars) | Array to store the fluxes in. |
||
real(kind=rk), | intent(in) | :: | state(nDofs,nScalars) | State to compute the fluxes from. |
||
integer, | intent(in) | :: | rot(8) | Rotationing to index the variables. |
||
real(kind=rk), | intent(in) | :: | material(nElems,nDofs,4) | Material parameters (mu, epsilon) for all elements |
||
type(ply_poly_project_type), | intent(inout) | :: | poly_proj | Data for projection method |
||
real(kind=rk), | intent(inout) | :: | modalCoeffs(:,:) | Working array for modal coefficients of the current element in the loop. |
||
real(kind=rk), | intent(inout) | :: | nodalPhysFlux(:,:) | Working array for nodal representation of the physical flux along the 3 spatial directions. |
||
real(kind=rk), | intent(inout) | :: | pointVal(:,:) | Working array for nodal representation of the polynomial with in each cell. |
||
integer, | intent(in) | :: | iElem | |||
integer, | intent(in) | :: | nElems | Number of elements. |