|
Nektar++
|
#include <InterfaceMapDG.h>
Public Member Functions | |
| InterfaceTrace (const ExpListSharedPtr &trace, const SpatialDomains::InterfaceShPtr &interfaceShPtr, SpatialDomains::MovementSharedPtr movementShPtr) | |
| Constructor. | |
| virtual | ~InterfaceTrace ()=default |
| Default destructor. | |
| void | SetCheckLocal (bool flag) |
| std::vector< Array< OneD, NekDouble > > | GetMissingCoords () |
| Returns the missing coordinates vector. | |
| std::map< int, std::pair< int, Array< OneD, NekDouble > > > | GetLocalCoords () |
| std::map< int, std::pair< int, NekDouble > > | GetRotAngle () |
| SpatialDomains::InterfaceShPtr | GetInterface () |
| Returns the interface object. | |
| void | CalcLocalMissing () |
| Calculates what coordinates on the interface are missing locally. | |
| void | FillLocalBwdTrace (Array< OneD, NekDouble > &Fwd, Array< OneD, NekDouble > &Bwd) |
| Fills the Bwd trace by interpolating from the Fwd for local interfaces. | |
| void | RotLocalBwdTrace (Array< OneD, Array< OneD, NekDouble > > &Bwd, const int &dim) |
| Rotates the interface velocity for sector rotation. | |
| void | RotLocalBwdDeriveTrace (TensorOfArray3D< NekDouble > &Bwd, const int &dim) |
| Rotates the interface derivative velocity for sector rotation. | |
| void | DeriveRotate (TensorOfArray3D< NekDouble > &Bwd, const int dir, const NekDouble angle) |
| Rotate the 3D vector field in Bwd around the axis 'dir' by 'angle'. | |
| void | FillRankBwdTrace (Array< OneD, NekDouble > &trace, Array< OneD, NekDouble > &Bwd) |
| Fills the Bwd trace from partitioned trace. | |
| void | DomainCheck (Array< OneD, NekDouble > &gloCoord, NekDouble &angle) |
| Update the coordiniates after movement. | |
Private Attributes | |
| ExpListSharedPtr | m_trace |
| Trace expansion list. | |
| SpatialDomains::InterfaceShPtr | m_interface |
| Local interface object. | |
| SpatialDomains::MovementSharedPtr | m_movement |
| Movement object associated with the non-conformal interfaces. | |
| bool | m_checkLocal = false |
| Flag whether the opposite side of the interface is present locally. | |
| std::vector< Array< OneD, NekDouble > > | m_missingCoords |
| Vector of coordinates on interface missing from the other side locally. | |
| std::map< int, std::pair< int, Array< OneD, NekDouble > > > | m_foundLocalCoords |
| Map of found coordinates present locally. | |
| std::map< int, std::pair< int, NekDouble > > | m_phyRotAngle |
| Map of phy rotate angle for sector rotate interfaces. | |
| std::vector< int > | m_mapMissingCoordToTrace |
| Vector of indices corresponding to m_missingCoord locations in trace. | |
Object for each interface present between two ranks, which are held in the InterfaceExchange object.
Definition at line 49 of file InterfaceMapDG.h.
| Nektar::MultiRegions::InterfaceTrace::InterfaceTrace | ( | const ExpListSharedPtr & | trace, |
| const SpatialDomains::InterfaceShPtr & | interfaceShPtr, | ||
| SpatialDomains::MovementSharedPtr | movementShPtr | ||
| ) |
Constructor.
Definition at line 41 of file InterfaceMapDG.cpp.
|
virtualdefault |
Default destructor.
| void Nektar::MultiRegions::InterfaceTrace::CalcLocalMissing | ( | ) |
Calculates what coordinates on the interface are missing locally.
Calculates what coordinates on the interface are missing; i.e. aren't located in an edge from the other side of the interface on this partition. These are stored in the vector m_missingCoords, and another vector of the same index layout contains the location of that coordinate in the trace i.e. the 'offset + i' value. It checks first if the interface is flagged local, which denotes whether the opposite side is also present on this rank, if not then all coordinates are missing. If local then the same structure as CalcRankDistances is used to minimise computational cost.
Definition at line 263 of file InterfaceMapDG.cpp.
References ASSERTL0, DomainCheck(), Nektar::NekConstants::kFindDistanceMin, m_checkLocal, m_foundLocalCoords, m_interface, m_mapMissingCoordToTrace, m_missingCoords, m_movement, m_phyRotAngle, and m_trace.
| void Nektar::MultiRegions::InterfaceTrace::DeriveRotate | ( | TensorOfArray3D< NekDouble > & | Bwd, |
| const int | dir, | ||
| const NekDouble | angle | ||
| ) |
Rotate the 3D vector field in Bwd around the axis 'dir' by 'angle'.
Definition at line 993 of file InterfaceMapDG.cpp.
References Blas::Dgemm(), Nektar::ErrorUtil::efatal, and NEKERROR.
Referenced by RotLocalBwdDeriveTrace().
| void Nektar::MultiRegions::InterfaceTrace::DomainCheck | ( | Array< OneD, NekDouble > & | gloCoord, |
| NekDouble & | angle | ||
| ) |
Update the coordiniates after movement.
Definition at line 810 of file InterfaceMapDG.cpp.
References Nektar::ErrorUtil::efatal, Nektar::SpatialDomains::eTranslate, m_interface, m_movement, and NEKERROR.
Referenced by CalcLocalMissing().
| void Nektar::MultiRegions::InterfaceTrace::FillLocalBwdTrace | ( | Array< OneD, NekDouble > & | Fwd, |
| Array< OneD, NekDouble > & | Bwd | ||
| ) |
Fills the Bwd trace by interpolating from the Fwd for local interfaces.
Definition at line 547 of file InterfaceMapDG.cpp.
References m_checkLocal, m_foundLocalCoords, and m_trace.
| void Nektar::MultiRegions::InterfaceTrace::FillRankBwdTrace | ( | Array< OneD, NekDouble > & | trace, |
| Array< OneD, NekDouble > & | Bwd | ||
| ) |
Fills the Bwd trace from partitioned trace.
Definition at line 686 of file InterfaceMapDG.cpp.
References m_mapMissingCoordToTrace.
|
inline |
Returns the interface object.
Definition at line 84 of file InterfaceMapDG.h.
References m_interface.
|
inline |
Definition at line 73 of file InterfaceMapDG.h.
References m_foundLocalCoords.
|
inline |
Returns the missing coordinates vector.
Definition at line 67 of file InterfaceMapDG.h.
References m_missingCoords.
|
inline |
Definition at line 78 of file InterfaceMapDG.h.
References m_phyRotAngle.
| void Nektar::MultiRegions::InterfaceTrace::RotLocalBwdDeriveTrace | ( | TensorOfArray3D< NekDouble > & | Bwd, |
| const int & | dim | ||
| ) |
Rotates the interface derivative velocity for sector rotation.
Definition at line 603 of file InterfaceMapDG.cpp.
References DeriveRotate(), Nektar::ErrorUtil::efatal, m_interface, m_movement, m_phyRotAngle, and NEKERROR.
| void Nektar::MultiRegions::InterfaceTrace::RotLocalBwdTrace | ( | Array< OneD, Array< OneD, NekDouble > > & | Bwd, |
| const int & | dim | ||
| ) |
Rotates the interface velocity for sector rotation.
Definition at line 567 of file InterfaceMapDG.cpp.
References m_interface, m_movement, and m_phyRotAngle.
|
inline |
Definition at line 61 of file InterfaceMapDG.h.
References m_checkLocal.
|
private |
Flag whether the opposite side of the interface is present locally.
Definition at line 117 of file InterfaceMapDG.h.
Referenced by CalcLocalMissing(), FillLocalBwdTrace(), and SetCheckLocal().
|
private |
Map of found coordinates present locally.
Definition at line 121 of file InterfaceMapDG.h.
Referenced by CalcLocalMissing(), FillLocalBwdTrace(), and GetLocalCoords().
|
private |
Local interface object.
Definition at line 113 of file InterfaceMapDG.h.
Referenced by CalcLocalMissing(), DomainCheck(), GetInterface(), RotLocalBwdDeriveTrace(), and RotLocalBwdTrace().
|
private |
Vector of indices corresponding to m_missingCoord locations in trace.
Definition at line 125 of file InterfaceMapDG.h.
Referenced by CalcLocalMissing(), and FillRankBwdTrace().
Vector of coordinates on interface missing from the other side locally.
Definition at line 119 of file InterfaceMapDG.h.
Referenced by CalcLocalMissing(), and GetMissingCoords().
|
private |
Movement object associated with the non-conformal interfaces.
Definition at line 115 of file InterfaceMapDG.h.
Referenced by CalcLocalMissing(), DomainCheck(), RotLocalBwdDeriveTrace(), and RotLocalBwdTrace().
|
private |
Map of phy rotate angle for sector rotate interfaces.
Definition at line 123 of file InterfaceMapDG.h.
Referenced by CalcLocalMissing(), GetRotAngle(), RotLocalBwdDeriveTrace(), and RotLocalBwdTrace().
|
private |
Trace expansion list.
Definition at line 111 of file InterfaceMapDG.h.
Referenced by CalcLocalMissing(), and FillLocalBwdTrace().