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);
150 return m_sendField[i][j];
181 template <
typename T>
188 typedef std::function<void(Array<OneD, Array<OneD, NekDouble> > &interpField,
static std::string className
void ReceiveCwipi(const int step, const NekDouble time, Array< OneD, Array< OneD, NekDouble > > &field)
std::shared_ptr< ExpList > ExpListSharedPtr
Shared pointer to an ExpList object.
SOLVER_UTILS_EXPORT NekDouble GetSendField(const int i, const int j) const
Array< OneD, Array< OneD, NekDouble > > m_newFields
static CouplingSharedPtr create(MultiRegions::ExpListSharedPtr field)
Creates an instance of this class.
static std::map< std::string, SendCallbackType > SendCallbackMap
std::map< int, int > m_vertMap
SOLVER_UTILS_EXPORT CouplingCwipi(MultiRegions::ExpListSharedPtr field)
FieldUtils::InterpolatorSharedPtr m_sendInterpolator
std::shared_ptr< Interpolator > InterpolatorSharedPtr
void AddElementsToMesh(T geom, int &coordsPos, int &connecPos, int &conidxPos)
void ExtrapolateFields(Array< OneD, Array< OneD, NekDouble > > &rVals, Array< OneD, int > ¬Loc)
virtual SOLVER_UTILS_EXPORT ~CouplingCwipi()
void EvaluateFields(Array< OneD, Array< OneD, NekDouble > > interpField, Array< OneD, Array< OneD, NekDouble > > distCoords)
Array< OneD, Array< OneD, NekDouble > > m_oldFields
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 std::shared_ptr< DataType > AllocateSharedPtr(const Args &...args)
Allocate a shared pointer from the memory pool.
FieldUtils::InterpolatorSharedPtr m_extrapInterpolator
void SetupSendInterpolation()
SOLVER_UTILS_EXPORT typedef std::shared_ptr< Coupling > CouplingSharedPtr
MultiRegions::ExpListSharedPtr m_recvField
virtual SOLVER_UTILS_EXPORT void v_Finalize()
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_Init()
virtual SOLVER_UTILS_EXPORT void v_Receive(const int step, const NekDouble time, Array< OneD, Array< OneD, NekDouble > > &field, std::vector< std::string > &varNames)
#define SOLVER_UTILS_EXPORT
Array< OneD, Array< OneD, NekDouble > > m_sendField
std::function< void(Array< OneD, Array< OneD, NekDouble > > &interpField, Array< OneD, Array< OneD, NekDouble > > &distCoords)> SendCallbackType
void ReadConfig(LibUtilities::SessionReaderSharedPtr session)
SOLVER_UTILS_EXPORT void SendCallback(Array< OneD, Array< OneD, NekDouble > > &interpField, Array< OneD, Array< OneD, NekDouble > > &distCoords)
void DumpRawFields(const NekDouble time, Array< OneD, Array< OneD, NekDouble > > rVals)
std::shared_ptr< SessionReader > SessionReaderSharedPtr