Nektar++
|
#include <InterfaceMapDG.h>
Public Member Functions | |
~InterfaceMapDG ()=default | |
Default destructor. More... | |
InterfaceMapDG (const SpatialDomains::MeshGraphSharedPtr &graph, const ExpListSharedPtr &trace) | |
void | ExchangeTrace (Array< OneD, NekDouble > &Fwd, Array< OneD, NekDouble > &Bwd) |
Perform the trace exchange between processors, given the forwards and backwards spaces. More... | |
void | ExchangeCoords () |
Perform the coordinate exchange between processors. This is where the missing coordinates on the interface are found and sent to all other processors on the other side of that interface so the matching ranks can be found. More... | |
Private Attributes | |
SpatialDomains::MeshGraphSharedPtr | m_graph |
Mesh associated with this expansion list. More... | |
SpatialDomains::MovementSharedPtr | m_movement |
Movement object associated with the non-conformal interfaces. More... | |
std::vector< InterfaceTraceSharedPtr > | m_localInterfaces |
Interface sides present on current process. More... | |
const ExpListSharedPtr | m_trace |
Trace expansion list. More... | |
std::vector< InterfaceExchangeSharedPtr > | m_exchange |
Vector of interface exchanges, i.e. every rank-to-rank comm needed. More... | |
Implements the communication patterns to allow for exchange of information across non-conformal interfaces and across different partitions. Holds all the InterfaceExchange objects in m_exchange.
Definition at line 226 of file InterfaceMapDG.h.
|
default |
Default destructor.
Nektar::MultiRegions::InterfaceMapDG::InterfaceMapDG | ( | const SpatialDomains::MeshGraphSharedPtr & | graph, |
const ExpListSharedPtr & | trace | ||
) |
Sets up the InterfaceExchange objects stored in m_exchange, each object is rank -> rank and contains a vector of InterfaceTrace objects corresponding to shared interfaces between those ranks.
Definition at line 53 of file InterfaceMapDG.cpp.
References Nektar::MemoryManager< DataType >::AllocateSharedPtr(), ExchangeCoords(), m_exchange, m_localInterfaces, m_movement, and m_trace.
void Nektar::MultiRegions::InterfaceMapDG::ExchangeCoords | ( | ) |
Perform the coordinate exchange between processors. This is where the missing coordinates on the interface are found and sent to all other processors on the other side of that interface so the matching ranks can be found.
Definition at line 197 of file InterfaceMapDG.cpp.
References Nektar::LibUtilities::Timer::AccumulateRegion(), m_exchange, m_localInterfaces, m_movement, m_trace, Nektar::LibUtilities::Timer::Start(), and Nektar::LibUtilities::Timer::Stop().
Referenced by ExchangeTrace(), and InterfaceMapDG().
void Nektar::MultiRegions::InterfaceMapDG::ExchangeTrace | ( | Array< OneD, NekDouble > & | Fwd, |
Array< OneD, NekDouble > & | Bwd | ||
) |
Perform the trace exchange between processors, given the forwards and backwards spaces.
Fwd | Local forwards space of the trace (which will be sent) |
Bwd | Local backwards space of the trace (which will receive contributions) |
Performs the trace exchange across interfaces 1) Calculate and send the Fwd trace to other ranks with pairwise comms 2) While waiting for the send/recv to complete we fill the local interfaces Bwd trace 3) Fill the remaining Bwd trace with the received trace data from other ranks
Definition at line 487 of file InterfaceMapDG.cpp.
References ExchangeCoords(), m_exchange, m_localInterfaces, m_movement, and m_trace.
|
private |
Vector of interface exchanges, i.e. every rank-to-rank comm needed.
Definition at line 269 of file InterfaceMapDG.h.
Referenced by ExchangeCoords(), ExchangeTrace(), and InterfaceMapDG().
|
private |
Mesh associated with this expansion list.
Definition at line 261 of file InterfaceMapDG.h.
|
private |
Interface sides present on current process.
Definition at line 265 of file InterfaceMapDG.h.
Referenced by ExchangeCoords(), ExchangeTrace(), and InterfaceMapDG().
|
private |
Movement object associated with the non-conformal interfaces.
Definition at line 263 of file InterfaceMapDG.h.
Referenced by ExchangeCoords(), ExchangeTrace(), and InterfaceMapDG().
|
private |
Trace expansion list.
Definition at line 267 of file InterfaceMapDG.h.
Referenced by ExchangeCoords(), ExchangeTrace(), and InterfaceMapDG().