Nektar++
|
#include <CouplingCwipi.h>
Static Public Member Functions | |
static CouplingSharedPtr | create (MultiRegions::ExpListSharedPtr field) |
Creates an instance of this class. More... | |
static SOLVER_UTILS_EXPORT void | InterpCallback (const int entities_dim, const int n_local_vertex, const int n_local_element, const int n_local_polhyedra, const int n_distant_point, const double local_coordinates[], const int local_connectivity_index[], const int local_connectivity[], const int local_polyhedra_face_index[], const int local_polyhedra_cell_to_face_connectivity[], const int local_polyhedra_face_connectivity_index[], const int local_polyhedra_face_connectivity[], const double distant_points_coordinates[], const int distant_points_location[], const float distant_points_distance[], const int distant_points_barycentric_coordinates_index[], const double distant_points_barycentric_coordinates[], const int stride, const cwipi_solver_type_t solver_type, const void *local_field, void *distant_field) |
Static Public Attributes | |
static std::string | className |
Protected Member Functions | |
virtual SOLVER_UTILS_EXPORT void | v_Init () |
virtual SOLVER_UTILS_EXPORT void | v_Send (const int step, const NekDouble time, const Array< OneD, const Array< OneD, NekDouble > > &field, std::vector< std::string > &varNames) |
virtual SOLVER_UTILS_EXPORT void | v_Receive (const int step, const NekDouble time, Array< OneD, Array< OneD, NekDouble > > &field, std::vector< std::string > &varNames) |
virtual SOLVER_UTILS_EXPORT void | v_Finalize () |
SOLVER_UTILS_EXPORT NekDouble | GetSendField (const int i, const int j) const |
![]() | |
SOLVER_UTILS_EXPORT | Coupling (MultiRegions::ExpListSharedPtr field) |
SOLVER_UTILS_EXPORT std::vector< int > | GenerateVariableMapping (std::vector< std::string > &vars, std::vector< std::string > &transVars) |
Protected Attributes | |
NekDouble | m_filtWidth |
Array< OneD, Array< OneD, NekDouble > > | m_sendField |
MultiRegions::ExpListSharedPtr | m_recvField |
Array< OneD, Array< OneD, NekDouble > > | m_oldFields |
Array< OneD, Array< OneD, NekDouble > > | m_newFields |
int | m_sendHandle |
int | m_recvHandle |
int | m_sendTag |
int | m_recvTag |
int | m_lastSend |
int | m_lastReceive |
int | m_spacedim |
int | m_nPoints |
double * | m_points |
double * | m_coords |
int * | m_connecIdx |
int * | m_connec |
double * | m_rValsInterl |
double * | m_sValsInterl |
std::map< int, int > | m_vertMap |
FieldUtils::InterpolatorSharedPtr | m_sendInterpolator |
FieldUtils::InterpolatorSharedPtr | m_extrapInterpolator |
![]() | |
std::string | m_couplingName |
CouplingConfigMap | m_config |
MultiRegions::ExpListSharedPtr | m_evalField |
int | m_nSendVars |
std::vector< std::string > | m_sendFieldNames |
int | m_sendSteps |
int | m_nRecvVars |
std::vector< std::string > | m_recvFieldNames |
int | m_recvSteps |
Private Member Functions | |
void | ReadConfig (LibUtilities::SessionReaderSharedPtr session) |
void | SetupReceive () |
void | SetupSend () |
void | SendComplete () |
void | ReceiveStart () |
void | ReceiveCwipi (const int step, const NekDouble time, Array< OneD, Array< OneD, NekDouble > > &field) |
void | EvaluateFields (Array< OneD, Array< OneD, NekDouble > > interpField, Array< OneD, Array< OneD, NekDouble > > distCoords) |
void | SetupSendInterpolation () |
void | AnnounceMesh () |
void | DumpRawFields (const NekDouble time, Array< OneD, Array< OneD, NekDouble > > rVals) |
void | ExtrapolateFields (Array< OneD, Array< OneD, NekDouble > > &rVals, Array< OneD, int > ¬Loc) |
template<typename T > | |
void | AddElementsToMesh (T geom, int &coordsPos, int &connecPos, int &conidxPos) |
Additional Inherited Members | |
![]() | |
typedef std::map< std::string, std::string > | CouplingConfigMap |
Definition at line 51 of file CouplingCwipi.h.
Nektar::SolverUtils::CouplingCwipi::CouplingCwipi | ( | MultiRegions::ExpListSharedPtr | field | ) |
Definition at line 126 of file CouplingCwipi.cpp.
References Nektar::SolverUtils::Coupling::m_config.
|
virtual |
Definition at line 236 of file CouplingCwipi.cpp.
References m_connec, m_connecIdx, m_coords, m_points, m_rValsInterl, and m_sValsInterl.
|
private |
Definition at line 520 of file CouplingCwipi.cpp.
References m_connec, m_connecIdx, m_coords, and m_vertMap.
Referenced by AnnounceMesh().
|
private |
Definition at line 434 of file CouplingCwipi.cpp.
References AddElementsToMesh(), ASSERTL1, m_connec, m_connecIdx, m_coords, Nektar::SolverUtils::Coupling::m_couplingName, Nektar::SolverUtils::Coupling::m_evalField, and m_spacedim.
Referenced by v_Init().
|
inlinestatic |
Creates an instance of this class.
Definition at line 58 of file CouplingCwipi.h.
References Nektar::MemoryManager< DataType >::AllocateSharedPtr(), Nektar::SolverUtils::CouplingSharedPtr, and CellMLToNektar.cellml_metadata::p.
|
private |
Definition at line 1052 of file CouplingCwipi.cpp.
References Nektar::MemoryManager< DataType >::AllocateSharedPtr(), CellMLToNektar.pycml::format, Nektar::SolverUtils::Coupling::m_config, Nektar::SolverUtils::Coupling::m_evalField, Nektar::SolverUtils::Coupling::m_nRecvVars, m_recvField, Nektar::SolverUtils::Coupling::m_recvFieldNames, m_spacedim, Nektar::LibUtilities::Timer::Start(), Nektar::LibUtilities::Timer::Stop(), Nektar::LibUtilities::Timer::TimePerTest(), and Nektar::LibUtilities::CsvIO::Write().
Referenced by ReceiveCwipi().
|
private |
Definition at line 345 of file CouplingCwipi.cpp.
References ASSERTL0, Nektar::NekConstants::kNekZeroTol, Nektar::SolverUtils::Coupling::m_evalField, Nektar::SolverUtils::Coupling::m_nSendVars, m_sendField, and m_spacedim.
Referenced by SendCallback().
|
private |
Definition at line 926 of file CouplingCwipi.cpp.
References Nektar::MemoryManager< DataType >::AllocateSharedPtr(), Nektar::LibUtilities::eNearestNeighbour, Nektar::SolverUtils::Coupling::m_evalField, m_extrapInterpolator, m_nPoints, Nektar::SolverUtils::Coupling::m_nRecvVars, m_recvField, m_spacedim, Nektar::LibUtilities::Timer::Start(), Nektar::LibUtilities::Timer::Stop(), Nektar::LibUtilities::Timer::TimePerTest(), and Vmath::Zero().
Referenced by ReceiveCwipi().
|
inlineprotected |
Definition at line 147 of file CouplingCwipi.h.
References m_sendField.
|
static |
Definition at line 62 of file CouplingCwipi.cpp.
References ASSERTL0, and Nektar::SolverUtils::SendCallbackMap.
Referenced by SetupSend().
|
private |
Definition at line 246 of file CouplingCwipi.cpp.
References ASSERTL0, Nektar::SolverUtils::Coupling::m_config, and m_filtWidth.
Referenced by v_Init().
|
private |
Definition at line 766 of file CouplingCwipi.cpp.
References ASSERTL1, DumpRawFields(), ExtrapolateFields(), Nektar::SolverUtils::Coupling::m_config, Nektar::SolverUtils::Coupling::m_couplingName, Nektar::SolverUtils::Coupling::m_evalField, m_filtWidth, m_lastReceive, m_nPoints, Nektar::SolverUtils::Coupling::m_nRecvVars, m_recvField, Nektar::SolverUtils::Coupling::m_recvFieldNames, m_recvHandle, Nektar::SolverUtils::Coupling::m_recvSteps, m_rValsInterl, m_spacedim, ReceiveStart(), Nektar::LibUtilities::ReduceMax, Vmath::Smul(), Nektar::LibUtilities::Timer::Start(), Nektar::LibUtilities::Timer::Stop(), and Nektar::LibUtilities::Timer::TimePerTest().
Referenced by v_Receive().
|
private |
Definition at line 676 of file CouplingCwipi.cpp.
References Nektar::SolverUtils::Coupling::m_couplingName, Nektar::SolverUtils::Coupling::m_evalField, Nektar::SolverUtils::Coupling::m_nRecvVars, m_recvHandle, m_recvTag, m_rValsInterl, Nektar::LibUtilities::Timer::Start(), Nektar::LibUtilities::Timer::Stop(), and Nektar::LibUtilities::Timer::TimePerTest().
Referenced by ReceiveCwipi(), and v_Init().
void Nektar::SolverUtils::CouplingCwipi::SendCallback | ( | Array< OneD, Array< OneD, NekDouble > > & | interpField, |
Array< OneD, Array< OneD, NekDouble > > & | distCoords | ||
) |
Definition at line 564 of file CouplingCwipi.cpp.
References Nektar::MemoryManager< DataType >::AllocateSharedPtr(), ASSERTL0, EvaluateFields(), Nektar::SolverUtils::Coupling::m_config, Nektar::SolverUtils::Coupling::m_nSendVars, m_sendField, m_sendInterpolator, and SetupSendInterpolation().
Referenced by SetupSend().
|
private |
Definition at line 654 of file CouplingCwipi.cpp.
References Nektar::SolverUtils::Coupling::m_couplingName, Nektar::SolverUtils::Coupling::m_evalField, m_sendHandle, Nektar::LibUtilities::Timer::Start(), Nektar::LibUtilities::Timer::Stop(), and Nektar::LibUtilities::Timer::TimePerTest().
Referenced by v_Send().
|
private |
Definition at line 259 of file CouplingCwipi.cpp.
References Nektar::MemoryManager< DataType >::AllocateSharedPtr(), ASSERTL1, Nektar::SolverUtils::Coupling::m_config, Nektar::SolverUtils::Coupling::m_couplingName, Nektar::SolverUtils::Coupling::m_evalField, m_newFields, m_nPoints, Nektar::SolverUtils::Coupling::m_nRecvVars, m_oldFields, m_points, m_recvField, m_rValsInterl, m_spacedim, and Nektar::SpatialDomains::MeshGraph::Read().
Referenced by v_Init().
|
private |
Definition at line 321 of file CouplingCwipi.cpp.
References ASSERTL1, InterpCallback(), Nektar::SolverUtils::Coupling::m_couplingName, Nektar::SolverUtils::Coupling::m_evalField, Nektar::SolverUtils::Coupling::m_nSendVars, m_spacedim, m_sValsInterl, SendCallback(), and Nektar::SolverUtils::SendCallbackMap.
Referenced by v_Init().
|
private |
Definition at line 396 of file CouplingCwipi.cpp.
References Nektar::MemoryManager< DataType >::AllocateSharedPtr(), Nektar::LibUtilities::eNearestNeighbour, Nektar::LibUtilities::eShepard, Nektar::SolverUtils::Coupling::m_config, Nektar::SolverUtils::Coupling::m_couplingName, Nektar::SolverUtils::Coupling::m_evalField, and m_sendInterpolator.
Referenced by SendCallback().
Reimplemented from Nektar::SolverUtils::Coupling.
Definition at line 514 of file CouplingCwipi.cpp.
References Nektar::SolverUtils::Coupling::m_couplingName.
|
protectedvirtual |
Reimplemented from Nektar::SolverUtils::Coupling.
Definition at line 142 of file CouplingCwipi.cpp.
References AnnounceMesh(), ASSERTL0, Nektar::SolverUtils::Coupling::m_config, Nektar::SolverUtils::Coupling::m_couplingName, Nektar::SolverUtils::Coupling::m_evalField, m_filtWidth, Nektar::SolverUtils::Coupling::m_nRecvVars, Nektar::SolverUtils::Coupling::m_nSendVars, Nektar::SolverUtils::Coupling::m_recvSteps, m_recvTag, Nektar::SolverUtils::Coupling::m_sendSteps, m_sendTag, m_spacedim, OUTPUT_FREQ, ReadConfig(), ReceiveStart(), SetupReceive(), SetupSend(), and Nektar::SolverUtils::Coupling::v_Init().
|
protectedvirtual |
Implements Nektar::SolverUtils::Coupling.
Definition at line 708 of file CouplingCwipi.cpp.
References ASSERTL1, Nektar::SolverUtils::Coupling::GenerateVariableMapping(), Nektar::SolverUtils::Coupling::m_evalField, m_lastReceive, m_newFields, Nektar::SolverUtils::Coupling::m_nRecvVars, m_oldFields, Nektar::SolverUtils::Coupling::m_recvFieldNames, Nektar::SolverUtils::Coupling::m_recvSteps, ReceiveCwipi(), Vmath::Svtsvtp(), and Vmath::Vcopy().
|
protectedvirtual |
Implements Nektar::SolverUtils::Coupling.
Definition at line 597 of file CouplingCwipi.cpp.
References Nektar::SolverUtils::Coupling::GenerateVariableMapping(), Nektar::SolverUtils::Coupling::m_couplingName, Nektar::SolverUtils::Coupling::m_evalField, m_lastSend, Nektar::SolverUtils::Coupling::m_nSendVars, m_sendField, Nektar::SolverUtils::Coupling::m_sendFieldNames, m_sendHandle, Nektar::SolverUtils::Coupling::m_sendSteps, m_sendTag, m_sValsInterl, SendComplete(), Nektar::LibUtilities::Timer::Start(), Nektar::LibUtilities::Timer::Stop(), and Nektar::LibUtilities::Timer::TimePerTest().
|
static |
Definition at line 55 of file CouplingCwipi.h.
|
protected |
Definition at line 121 of file CouplingCwipi.h.
Referenced by AddElementsToMesh(), AnnounceMesh(), and ~CouplingCwipi().
|
protected |
Definition at line 120 of file CouplingCwipi.h.
Referenced by AddElementsToMesh(), AnnounceMesh(), and ~CouplingCwipi().
|
protected |
Definition at line 119 of file CouplingCwipi.h.
Referenced by AddElementsToMesh(), AnnounceMesh(), and ~CouplingCwipi().
|
protected |
Definition at line 129 of file CouplingCwipi.h.
Referenced by ExtrapolateFields().
|
protected |
Definition at line 98 of file CouplingCwipi.h.
Referenced by ReadConfig(), ReceiveCwipi(), and v_Init().
|
protected |
Definition at line 114 of file CouplingCwipi.h.
Referenced by ReceiveCwipi(), and v_Receive().
|
protected |
Definition at line 113 of file CouplingCwipi.h.
Referenced by v_Send().
Definition at line 105 of file CouplingCwipi.h.
Referenced by SetupReceive(), and v_Receive().
|
protected |
Definition at line 117 of file CouplingCwipi.h.
Referenced by ExtrapolateFields(), ReceiveCwipi(), and SetupReceive().
Definition at line 104 of file CouplingCwipi.h.
Referenced by SetupReceive(), and v_Receive().
|
protected |
Definition at line 118 of file CouplingCwipi.h.
Referenced by SetupReceive(), and ~CouplingCwipi().
|
protected |
Definition at line 102 of file CouplingCwipi.h.
Referenced by DumpRawFields(), ExtrapolateFields(), ReceiveCwipi(), and SetupReceive().
|
protected |
Definition at line 108 of file CouplingCwipi.h.
Referenced by ReceiveCwipi(), and ReceiveStart().
|
protected |
Definition at line 111 of file CouplingCwipi.h.
Referenced by ReceiveStart(), and v_Init().
|
protected |
Definition at line 122 of file CouplingCwipi.h.
Referenced by ReceiveCwipi(), ReceiveStart(), SetupReceive(), and ~CouplingCwipi().
Definition at line 100 of file CouplingCwipi.h.
Referenced by EvaluateFields(), GetSendField(), SendCallback(), and v_Send().
|
protected |
Definition at line 107 of file CouplingCwipi.h.
Referenced by SendComplete(), and v_Send().
|
protected |
Definition at line 127 of file CouplingCwipi.h.
Referenced by SendCallback(), and SetupSendInterpolation().
|
protected |
Definition at line 110 of file CouplingCwipi.h.
|
protected |
Definition at line 116 of file CouplingCwipi.h.
Referenced by AnnounceMesh(), DumpRawFields(), EvaluateFields(), ExtrapolateFields(), ReceiveCwipi(), SetupReceive(), SetupSend(), and v_Init().
|
protected |
Definition at line 123 of file CouplingCwipi.h.
Referenced by SetupSend(), v_Send(), and ~CouplingCwipi().
|
protected |
Definition at line 125 of file CouplingCwipi.h.
Referenced by AddElementsToMesh().