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