33 #ifndef NEKTAR_COUPLINGCWIPI
34 #define NEKTAR_COUPLINGCWIPI
75 const int entities_dim,
76 const int n_local_vertex,
77 const int n_local_element,
78 const int n_local_polhyedra,
79 const int n_distant_point,
80 const double local_coordinates[],
81 const int local_connectivity_index[],
82 const int local_connectivity[],
83 const int local_polyhedra_face_index[],
84 const int local_polyhedra_cell_to_face_connectivity[],
85 const int local_polyhedra_face_connectivity_index[],
86 const int local_polyhedra_face_connectivity[],
87 const double distant_points_coordinates[],
88 const int distant_points_location[],
89 const float distant_points_distance[],
90 const int distant_points_barycentric_coordinates_index[],
91 const double distant_points_barycentric_coordinates[],
93 const cwipi_solver_type_t solver_type,
94 const void *local_field,
137 std::vector<std::string> &varNames);
143 std::vector<std::string> &varNames);
181 template <
typename T>
#define SOLVER_UTILS_EXPORT
static std::shared_ptr< DataType > AllocateSharedPtr(const Args &...args)
Allocate a shared pointer from the memory pool.
virtual SOLVER_UTILS_EXPORT void v_Receive(const int step, const NekDouble time, Array< OneD, Array< OneD, NekDouble > > &field, std::vector< std::string > &varNames)
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)
virtual SOLVER_UTILS_EXPORT void v_Finalize()
static std::string className
Array< OneD, Array< OneD, NekDouble > > m_oldFields
FieldUtils::InterpolatorSharedPtr m_extrapInterpolator
FieldUtils::InterpolatorSharedPtr m_sendInterpolator
void AddElementsToMesh(T geom, int &coordsPos, int &connecPos, int &conidxPos)
Array< OneD, Array< OneD, NekDouble > > m_sendField
virtual SOLVER_UTILS_EXPORT ~CouplingCwipi()
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)
SOLVER_UTILS_EXPORT CouplingCwipi(MultiRegions::ExpListSharedPtr field)
void ExtrapolateFields(Array< OneD, Array< OneD, NekDouble > > &rVals, Array< OneD, int > ¬Loc)
virtual SOLVER_UTILS_EXPORT void v_Init()
void EvaluateFields(Array< OneD, Array< OneD, NekDouble > > interpField, Array< OneD, Array< OneD, NekDouble > > distCoords)
static CouplingSharedPtr create(MultiRegions::ExpListSharedPtr field)
Creates an instance of this class.
Array< OneD, Array< OneD, NekDouble > > m_newFields
void SetupSendInterpolation()
SOLVER_UTILS_EXPORT void SendCallback(Array< OneD, Array< OneD, NekDouble > > &interpField, Array< OneD, Array< OneD, NekDouble > > &distCoords)
SOLVER_UTILS_EXPORT NekDouble GetSendField(const int i, const int j) const
void ReadConfig(LibUtilities::SessionReaderSharedPtr session)
void ReceiveCwipi(const int step, const NekDouble time, Array< OneD, Array< OneD, NekDouble > > &field)
std::map< int, int > m_vertMap
void DumpRawFields(const NekDouble time, Array< OneD, Array< OneD, NekDouble > > rVals)
MultiRegions::ExpListSharedPtr m_recvField
std::shared_ptr< Interpolator > InterpolatorSharedPtr
std::shared_ptr< SessionReader > SessionReaderSharedPtr
std::shared_ptr< ExpList > ExpListSharedPtr
Shared pointer to an ExpList object.
static std::map< std::string, SendCallbackType > SendCallbackMap
SOLVER_UTILS_EXPORT typedef std::shared_ptr< Coupling > CouplingSharedPtr
std::function< void(Array< OneD, Array< OneD, NekDouble > > &interpField, Array< OneD, Array< OneD, NekDouble > > &distCoords)> SendCallbackType
The above copyright notice and this permission notice shall be included.