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