13 double timeWindowSize,
22 :
BiCouplingScheme(maxTime, maxTimeWindows, timeWindowSize, firstParticipant,
23 secondParticipant, localParticipant,
std::move(m2n), minIterations, maxIterations, cplMode, dtMethod) {}
28 double timeWindowSize,
35 :
ParallelCouplingScheme(maxTime, maxTimeWindows, timeWindowSize, firstParticipant, secondParticipant, localParticipant,
std::move(m2n), dtMethod, cplMode, UNDEFINED_MAX_ITERATIONS, UNDEFINED_MAX_ITERATIONS){};
97 PRECICE_DEBUG(
"Perform acceleration (only second participant)...");
#define PRECICE_DEBUG(...)
#define PRECICE_ASSERT(...)
void initializeWithZeroInitialData(const DataMap &receiveData)
Initializes storage in receiveData as zero.
void notifyDataHasBeenReceived()
Used to set flag after data has been received using receiveData().
bool isExplicitCouplingScheme() const
Function to determine whether coupling scheme is an explicit coupling scheme.
void sendData(const m2n::PtrM2N &m2n, const DataMap &sendData)
Sends data sendDataIDs given in mapCouplingData with communication.
void storeIteration()
used for storing all Data at end of doImplicitStep for later reference.
bool sendsInitializedData() const override final
Getter for _sendsInitializedData.
bool isImplicitCouplingScheme() const override
Function to determine whether coupling scheme is an implicit coupling scheme.
void sendConvergence(const m2n::PtrM2N &m2n)
sends convergence to other participant via m2n
bool hasConverged() const override
Checks if the implicit cplscheme has converged.
void moveToNextWindow()
finalizes this window's data and initializes data for next window.
void doImplicitStep()
perform a coupling iteration
bool receivesInitializedData() const
Getter for _receivesInitializedData.
DataMap _allData
All send and receive data as a map "data ID -> data".
void receiveConvergence(const m2n::PtrM2N &m2n)
receives convergence from other participant via m2n
void receiveData(const m2n::PtrM2N &m2n, const DataMap &receiveData)
Receives data receiveDataIDs given in mapCouplingData with communication.
bool doesFirstStep() const
Getter for _doesFirstStep.
Abstract base class for coupling schemes with two participants.
DataMap & getSendData()
Returns all data to be sent.
DataMap & getReceiveData()
Returns all data to be received.
m2n::PtrM2N getM2N() const
Coupling scheme for parallel coupling, i.e. simultaneous execution of two coupled participants.
void exchangeFirstData() override final
Functions needed for advance()
DataMap & getAccelerationData() override final
interface to provide accelerated data, depending on coupling scheme being used
void exchangeInitialData() override final
implements functionality for initialize in base class.
ParallelCouplingScheme(double maxTime, int maxTimeWindows, double timeWindowSize, const std::string &firstParticipant, const std::string &secondParticipant, const std::string &localParticipant, m2n::PtrM2N m2n, constants::TimesteppingMethod dtMethod, CouplingMode cplMode, int minIterations, int maxIterations)
Constructor.
void exchangeSecondData() override final
Exchanges the second set of data.
contains implementations of coupling schemes for coupled simulations.