23#ifndef CWIPI_COUPLING_ADAPTER_H
24#define CWIPI_COUPLING_ADAPTER_H
36 CwipiCouplingAdapter();
37 ~CwipiCouplingAdapter()
override;
40 bool configure(
const std::string& configFile)
override;
41 void setNodes(
const std::vector<int>& nodeIds)
override;
42 void setMesh(
const int* elem_node_offsets,
const int* elem_node_indices,
int num_elements);
43 bool initialize(
const double* coordinates,
int totalNodes,
int mpiRank,
int mpiSize)
override;
44 void writeData(
const double* values,
int totalNodes,
double dt,
int dataType)
override;
45 void readData(
double* values,
int totalNodes,
double dt,
int dataType)
override;
46 void advance(
double& dt)
override;
56 bool isActive =
false;
57 Mode mode = Mode::SKIP;
58 std::vector<double> buffer;
66 std::string applicationName_;
67 std::string coupledAppName_;
68 std::string couplingName_;
69 std::string exchangeName_;
74 std::array<CouplingData, static_cast<size_t>(DataType::DATA_COUNT)> readData_;
75 std::array<CouplingData, static_cast<size_t>(DataType::DATA_COUNT)> writeData_;
78 std::vector<int> couplingNodeIds_;
79 double maxTimeStepSize_;
86 std::vector<int> eltsConnecPointer_;
87 std::vector<int> eltsConnec_;
91 void extractNodeData(
const double* globalValues,
int totalNodes,
int dataType);
92 void injectNodeData(
double* globalValues,
int totalNodes,
int dataType);
93 std::string getFieldName(DataType type);
94 int getTag(DataType type);
97 int FortranComm = MPI_Comm_c2f(localComm_);
virtual bool configure(const std::string &configFile)=0
virtual void setNodes(const std::vector< int > &nodeIds)=0
virtual double getMaxTimeStepSize() const =0
virtual void readData(double *values, int totalNodes, double dt, int dataType)=0
virtual void advance(double &dt)=0
virtual bool isCouplingOngoing() const =0
virtual void finalize()=0
virtual bool initialize(const double *coordinates, int totalNodes, int mpiRank, int mpiSize)=0
virtual void writeData(const double *values, int totalNodes, double dt, int dataType)=0
virtual int getNumberOfCouplingNodes() const =0
virtual bool isActive() const =0
virtual bool requiresReadingCheckpoint() const
virtual int getCommunicator() const
virtual bool requiresWritingCheckpoint() const