MAIA bb96820c
Multiphysics at AIA
|
Container for sponge elements. More...
#include <dgcartesiansponge.h>
Public Member Functions | |
MPI_Comm | mpiComm () const |
Return the MPI communicator used by the corresponding solver. More... | |
MInt | domainId () const |
Return the domain id of the corresponding solver. More... | |
MInt | noDomains () const |
Return the number of domains of the corresponding solver. More... | |
DgSponge (const MInt solverId, const MPI_Comm comm) | |
Constructor accepts solver id and MPI communicator. More... | |
void | init (const MInt maxPolyDeg, Grid *grid_, ElementCollector *elements_, SurfaceCollector *surfaces_, std::vector< BC > *boundaryConditions, SysEqn *sysEqn, const MPI_Comm comm) |
Sets attributes so that sponge can access necessary components in solver. Checks sponge boundary condition ids. Creates sponge elements. More... | |
void | calcSourceTerms () |
Calculates the sponge terms, that can be considered as an addition source terms for each node and adds them to the time derivative of the conservative variables. More... | |
MInt | noSpongeElements () const |
MInt | elementId (const MInt seId) const |
MInt | spongeElementId (const MInt eId) const |
Return sponge element id for given element id. If none exists, return -1. More... | |
MFloat | spongeEta (const MInt seId, const MInt pos) |
Private Types | |
using | BC = typename DgBoundaryConditionFactory< nDim, SysEqn >::ReturnType |
using | Grid = typename maia::grid::Proxy< nDim > |
using | SpongeElementCollector = maia::dg::collector::SpongeElementCollector< nDim, SysEqn > |
using | SpongeLayerType = DgSpongeLayer< nDim > |
using | ElementCollector = maia::dg::collector::ElementCollector< nDim, SysEqn > |
using | SurfaceCollector = maia::dg::collector::SurfaceCollector< nDim, SysEqn > |
Private Member Functions | |
void | checkSpongeBoundaryConditions () const |
Check whether boundary conditions specified to have a sponge exist. More... | |
void | initSpongeElements () |
Initialisation of SpongeLayer. Calculation of spongeEta. Sponge is an additional Sourceoperator: DelL: du/dt + L(u) = DelL(u) More... | |
void | initSpongeLayer (SpongeLayerType &spongeLayer, const BC &boundaryCondition) |
Determines boundary plane. More... | |
void | exchangeSpongeLayers (std::vector< SpongeLayerType > &spongeLayers) |
Exchange sponge layers between all domains. More... | |
void | calcSpongeEtaForAllNodes (const MInt seId, const std::vector< SpongeLayerType > &spongeLayers) |
Calculation of SpongeEta for all nodes of one DG-Element. More... | |
MFloat | distance (const SpongeLayerType &spongeLayer, const MFloat *otherPoint) const |
Calculates the distance between a point and a boundary plane. The distance is signed, i.e., it is positive if the point is inside. More... | |
MBool | pointInsideSpongeLayer (const SpongeLayerType &spongeLayer, const MFloat *otherPoint, MFloat &diff) const |
Returns true if point is inside sponge layer. Calculates difference between thickness of sponge layer and distance of point to boundary plane. More... | |
Private Attributes | |
const MInt | m_solverId = -1 |
MPI_Comm | m_mpiComm = MPI_COMM_NULL |
MInt | m_domainId = -1 |
MInt | m_noDomains = -1 |
Grid * | m_grid = nullptr |
MInt | m_maxPolyDeg = -1 |
ElementCollector * | m_elements = nullptr |
std::vector< BC > * | m_boundaryConditions = nullptr |
SurfaceCollector * | m_surfaces = nullptr |
SysEqn * | m_sysEqn = nullptr |
SpongeElementCollector | m_spongeElements |
Definition at line 59 of file dgcartesiansponge.h.
|
private |
Definition at line 60 of file dgcartesiansponge.h.
|
private |
Definition at line 64 of file dgcartesiansponge.h.
|
private |
Definition at line 61 of file dgcartesiansponge.h.
|
private |
Definition at line 62 of file dgcartesiansponge.h.
|
private |
Definition at line 63 of file dgcartesiansponge.h.
|
private |
Definition at line 65 of file dgcartesiansponge.h.
DgSponge< nDim, SysEqn >::DgSponge | ( | const MInt | solverId, |
const MPI_Comm | comm | ||
) |
[in] | solverId | The id of the corresponding solver. |
[in] | comm | The MPI communicator to use. |
Definition at line 133 of file dgcartesiansponge.h.
Definition at line 593 of file dgcartesiansponge.h.
|
private |
Definition at line 628 of file dgcartesiansponge.h.
|
private |
Definition at line 233 of file dgcartesiansponge.h.
|
private |
Definition at line 665 of file dgcartesiansponge.h.
Definition at line 72 of file dgcartesiansponge.h.
|
inline |
Definition at line 82 of file dgcartesiansponge.h.
|
private |
Definition at line 495 of file dgcartesiansponge.h.
void DgSponge< nDim, SysEqn >::init | ( | const MInt | maxPolyDeg, |
Grid * | grid_, | ||
ElementCollector * | elements_, | ||
SurfaceCollector * | surfaces_, | ||
std::vector< BC > * | boundaryConditions, | ||
SysEqn * | sysEqn, | ||
const MPI_Comm | comm | ||
) |
[in] | solverId | |
[in] | maxPolyDeg | |
[in] | grid | |
[in] | elements | |
[in] | surfaces | |
[in] | boundaryConditions | |
[in] | sysEqn |
Definition at line 154 of file dgcartesiansponge.h.
DelL = spongeSigma * spongeEta * DeltaStates spongeSigma = heuristical value (approx 0.5) spongeEta = (x_sp / L_sp)^2 L_sp = spongeLayerThickness x_sp = distance of a point to the inner spongeLayer DeltaStages = state_infinity - state_current
Literature: Hartmann Diss. eq. 3.58
Definition at line 287 of file dgcartesiansponge.h.
|
private |
Definition at line 422 of file dgcartesiansponge.h.
Definition at line 70 of file dgcartesiansponge.h.
Definition at line 74 of file dgcartesiansponge.h.
Definition at line 81 of file dgcartesiansponge.h.
|
private |
Definition at line 684 of file dgcartesiansponge.h.
MInt DgSponge< nDim, SysEqn >::spongeElementId | ( | const MInt | eId | ) | const |
Definition at line 569 of file dgcartesiansponge.h.
|
inline |
Definition at line 84 of file dgcartesiansponge.h.
|
private |
Definition at line 112 of file dgcartesiansponge.h.
Definition at line 99 of file dgcartesiansponge.h.
|
private |
Definition at line 109 of file dgcartesiansponge.h.
Definition at line 103 of file dgcartesiansponge.h.
Definition at line 106 of file dgcartesiansponge.h.
|
private |
Definition at line 98 of file dgcartesiansponge.h.
Definition at line 100 of file dgcartesiansponge.h.
Definition at line 97 of file dgcartesiansponge.h.
|
private |
Definition at line 121 of file dgcartesiansponge.h.
|
private |
Definition at line 115 of file dgcartesiansponge.h.
Definition at line 118 of file dgcartesiansponge.h.