MaMiCo 1.2
|
#include <TransferStrategy.h>
Public Member Functions | |
TransferStrategy (coupling::interface::MDSolverInterface< LinkedCell, dim > *const mdSolverInterface) | |
a simple destructor | |
virtual | ~TransferStrategy () |
a dummy destructor | |
virtual void | processInnerCouplingCellBeforeReceivingMacroscopicSolverData (coupling::datastructures::CouplingCellWithLinkedCells< LinkedCell, dim > &cell, I02 index) |
is called on the inner coupling cells before the data from the macro solver is applied | |
virtual void | beginProcessInnerCouplingCellsBeforeReceivingMacroscopicSolverData () |
the method is called before the cells are processed, e.g. general values might be set here | |
virtual void | endProcessInnerCouplingCellsBeforeReceivingMacroscopicSolverData () |
the method is called after the cells are processed, e.g. some general evaluation might happen like sum/counter | |
virtual void | processOuterCouplingCellBeforeReceivingMacroscopicSolverData (coupling::datastructures::CouplingCellWithLinkedCells< LinkedCell, dim > &cell, I02 index) |
is called on the outer coupling cells before the data from the macro solver is applied | |
virtual void | beginProcessOuterCouplingCellsBeforeReceivingMacroscopicSolverData () |
the method is called before the outer cells are processed, e.g. general values might be set here | |
virtual void | endProcessOuterCouplingCellsBeforeReceivingMacroscopicSolverData () |
the method is called after the outer cells are processed, e.g. general values might be set here | |
virtual void | processInnerCouplingCellAfterReceivingMacroscopicSolverData (coupling::datastructures::CouplingCellWithLinkedCells< LinkedCell, dim > &cell, I02 index) |
virtual void | beginProcessInnerCouplingCellsAfterReceivingMacroscopicSolverData () |
the method is called before the inner cells are processed, e.g. general values might be set here | |
virtual void | endProcessInnerCouplingCellsAfterReceivingMacroscopicSolverData () |
the method is called after the inner cells are processed, e.g. general values might be set here | |
virtual void | processOuterCouplingCellAfterReceivingMacroscopicSolverData (coupling::datastructures::CouplingCellWithLinkedCells< LinkedCell, dim > &cell, I02 index) |
is called for every coupling cell after the microscopicMass and -Momentum have been filled in with data from the macroscopic solver. | |
virtual void | beginProcessOuterCouplingCellsAfterReceivingMacroscopicSolverData () |
the method is called before the outer cells are processed, e.g. general values might be set here | |
virtual void | endProcessOuterCouplingCellsAfterReceivingMacroscopicSolverData () |
the method is called after the outer cells are processed, e.g. general values might be set here | |
virtual void | processInnerCouplingCellBeforeSendingMDSolverData (coupling::datastructures::CouplingCellWithLinkedCells< LinkedCell, dim > &cell, I02 index) |
is called for every coupling cell before sending the macroscopicMass and -Momentum data to the macroscopic solver and before noise reduction invocation. | |
virtual void | beginProcessInnerCouplingCellsBeforeSendingMDSolverData () |
the method is called before the inner cell data is send, e.g. general values might be set here | |
virtual void | endProcessInnerCouplingCellsBeforeSendingMDSolverData () |
the method is called after the inner cell data is send, e.g. general values might be set here | |
virtual void | processOuterCouplingCellBeforeSendingMDSolverData (coupling::datastructures::CouplingCellWithLinkedCells< LinkedCell, dim > &cell, I02 index) |
is called for outer coupling cell before sending the macroscopicMass and -Momentum data to the macroscopic solver and before noise reduction invocation. | |
virtual void | beginProcessOuterCouplingCellsBeforeSendingMDSolverData () |
the method is called before the outer cells are processed, e.g. general values might be set here | |
virtual void | endProcessOuterCouplingCellsBeforeSendingMDSolverData () |
the method is called after the outer cells are processed, e.g. general values might be set here | |
virtual void | processInnerCouplingCellAfterMDTimestep (coupling::datastructures::CouplingCellWithLinkedCells< LinkedCell, dim > &cell, I02 index) |
virtual void | beginProcessInnerCouplingCellsAfterMDTimestep () |
the method is called before the inner cell data is send, e.g. general values might be set here | |
virtual void | endProcessInnerCouplingCellsAfterMDTimestep () |
the method is called after the inner cell data is send, e.g. general values might be set here | |
Protected Attributes | |
coupling::interface::MDSolverInterface< LinkedCell, dim > *const | _mdSolverInterface |
interface for transfer strategy, that is for coupling cell operations that are carried out before/after send/recv-operations between the two solvers, or in each MD step for sampling purposes.
LinkedCell | the LinkedCell class is given by the implementation of linked cells in the molecular dynamics simulation |
dim | refers to the spacial dimension of the simulation, can be 1, 2, or 3 |
|
inline |
a simple destructor
mdSolverInterface | interface to md solver |
|
inlinevirtual |
the method is called before the inner cell data is send, e.g. general values might be set here
This method is only applied to coupling cells that cover parts of the MD domain; it is not applied the outer coupling cells. Is called before the processInnerCouplingCellAfterMDTimestep() method
Reimplemented in coupling::transferstrategies::AveragingTransferStrategy< LinkedCell, dim >, coupling::transferstrategies::TransferStrategy4NieCoupling< LinkedCell, dim >, and coupling::transferstrategies::TransferStrategy4SchwarzCoupling< LinkedCell, dim >.
|
inlinevirtual |
the method is called before the inner cells are processed, e.g. general values might be set here
This method is only applied to coupling cells that cover parts of the MD domain; it is not applied the outer coupling cells. Is called before the processInnerCouplingCellAfterReceivingMacroscopicSolverData() method
|
inlinevirtual |
the method is called before the cells are processed, e.g. general values might be set here
This method is only applied to coupling cells that cover parts of the MD domain; it is not applied in the outer coupling cells. Is called before the processInnerCouplingCellBeforeReceivingMacroscopicSolverData() method
Reimplemented in coupling::transferstrategies::AveragingTransferStrategy< LinkedCell, dim >, coupling::transferstrategies::TransferStrategy4NieCoupling< LinkedCell, dim >, and coupling::transferstrategies::TransferStrategy4SchwarzCoupling< LinkedCell, dim >.
|
inlinevirtual |
the method is called before the inner cell data is send, e.g. general values might be set here
This method is only applied to coupling cells that cover parts of the MD domain; it is not applied the outer coupling cells. Is called before the processInnerCouplingCellBeforeSendingMDSolverData() method
|
inlinevirtual |
the method is called before the outer cells are processed, e.g. general values might be set here
This method is only applied to coupling cells are part of the outer MD domain; it is not applied the inner coupling cells. Is called before the processOuterCouplingCellAfterReceivingMacroscopicSolverData() method
|
inlinevirtual |
the method is called before the outer cells are processed, e.g. general values might be set here
This method is only applied to coupling cells that are not part the inner MD domain; it is not applied to the ghost layer Is called before the processOuterCouplingCellBeforeReceivingMacroscopicSolverData() method
|
inlinevirtual |
the method is called before the outer cells are processed, e.g. general values might be set here
This method is only applied to coupling cells are part of the outer MD domain; it is not applied the inner coupling cells. Is called before the processOuterCouplingCellBeforeSendingMDSolverData() method
|
inlinevirtual |
the method is called after the inner cell data is send, e.g. general values might be set here
This method is only applied to coupling cells that cover parts of the MD domain; it is not applied the outer coupling cells. Is called after the processInnerCouplingCellAfterMDTimestep() method
|
inlinevirtual |
the method is called after the inner cells are processed, e.g. general values might be set here
This method is only applied to coupling cells that cover parts of the MD domain; it is not applied the outer coupling cells. Is called after the processInnerCouplingCellAfterReceivingMacroscopicSolverData() method
|
inlinevirtual |
the method is called after the cells are processed, e.g. some general evaluation might happen like sum/counter
This method is only applied to coupling cells that cover parts of the MD domain; it is not applied in the outer coupling cells. Is called after the processInnerCouplingCellBeforeReceivingMacroscopicSolverData() method
|
inlinevirtual |
the method is called after the inner cell data is send, e.g. general values might be set here
This method is only applied to coupling cells that cover parts of the MD domain; it is not applied the outer coupling cells. Is called after the processInnerCouplingCellBeforeSendingMDSolverData() method
|
inlinevirtual |
the method is called after the outer cells are processed, e.g. general values might be set here
This method is only applied to coupling cells are part of the outer MD domain; it is not applied the inner coupling cells. Is called after the processOuterCouplingCellAfterReceivingMacroscopicSolverData() method
|
inlinevirtual |
the method is called after the outer cells are processed, e.g. general values might be set here
This method is only applied to coupling cells that are not part the inner MD domain; it is not applied to the ghost layer Is called after the processOuterCouplingCellBeforeReceivingMacroscopicSolverData() method
|
inlinevirtual |
the method is called after the outer cells are processed, e.g. general values might be set here
This method is only applied to coupling cells are part of the outer MD domain; it is not applied the inner coupling cells. Is called after the processOuterCouplingCellBeforeSendingMDSolverData() method
|
inlinevirtual |
required to collect cell data during an MD simulation. For example, if we need time-averaged data within a coupling cell, we can compute mass and momentum in each timestep and add it to the microscopicMass and -Momentum buffers. This method is only applied to coupling cells that cover parts of the MD domain; it is not applied in the outer coupling cells.
cell | the coupling cell to apply |
index | the index of the coupling cell |
Reimplemented in coupling::transferstrategies::AveragingTransferStrategy< LinkedCell, dim >, coupling::transferstrategies::DifferenceTransferStrategy< LinkedCell, dim >, coupling::transferstrategies::TransferStrategy4NieCoupling< LinkedCell, dim >, and coupling::transferstrategies::TransferStrategy4SchwarzCoupling< LinkedCell, dim >.
|
inlinevirtual |
These values might be manipulated within this function. Example: Mass and momentum have been transferred from the macroscopic solver to MD, but only the difference between MD and macroscopic solver shall be introduced to MD. Then, this function determines this difference and stores the result again in microscopicMass and -Momentum. This method is only applied to coupling cells that cover parts of the MD domain; it is not applied in the outer coupling cells. @brieff is called for every coupling cell after the microscopicMass and -Momentum have been filled in with data from the macroscopic solver.
cell | the coupling cell to apply |
index | the index of the coupling cell |
Reimplemented in coupling::transferstrategies::DifferenceTransferStrategy< LinkedCell, dim >, coupling::transferstrategies::TransferStrategy4NieCoupling< LinkedCell, dim >, and coupling::transferstrategies::TransferStrategy4SchwarzCoupling< LinkedCell, dim >.
|
inlinevirtual |
is called on the inner coupling cells before the data from the macro solver is applied
Here, you might e.g. reset all coupling cell values to zero. This method is only applied to coupling cells that cover parts of the MD domain; it is not applied in the outer coupling cells.
cell | the coupling cell to apply |
index | the index of the coupling cell |
Reimplemented in coupling::transferstrategies::AveragingTransferStrategy< LinkedCell, dim >, coupling::transferstrategies::DifferenceTransferStrategy< LinkedCell, dim >, coupling::transferstrategies::DirectTransferStrategy< LinkedCell, dim >, and coupling::transferstrategies::TransferStrategy4NieCoupling< LinkedCell, dim >.
|
inlinevirtual |
is called for every coupling cell before sending the macroscopicMass and -Momentum data to the macroscopic solver and before noise reduction invocation.
Example: Compute mass and momentum and store the results in macroscopicMass and -Momentum. The total mass and momentum from the MD system will then be sent to the macroscopic solver. This method is only applied to coupling cells that cover parts of the MD domain; it is not applied in the outer coupling cells.
cell | the coupling cell to apply |
index | the index of the coupling cell |
Reimplemented in coupling::transferstrategies::DifferenceTransferStrategy< LinkedCell, dim >, coupling::transferstrategies::DirectTransferStrategy< LinkedCell, dim >, coupling::transferstrategies::TransferStrategy4NieCoupling< LinkedCell, dim >, and coupling::transferstrategies::TransferStrategy4SchwarzCoupling< LinkedCell, dim >.
|
inlinevirtual |
is called for every coupling cell after the microscopicMass and -Momentum have been filled in with data from the macroscopic solver.
These values might be manipulated within this function. Example: Mass and momentum have been transferred from the macroscopic solver to MD, but only the difference between MD and macroscopic solver shall be introduced to MD. Then, this function determines this difference and stores the result again in microscopicMass and -Momentum. This method is only applied to coupling cells in the outer parts of the MD domain; it is not applied in the ghost layer.
cell | the coupling cell to apply |
index | the index of the coupling cell |
Reimplemented in coupling::transferstrategies::TransferStrategy4SchwarzCoupling< LinkedCell, dim >.
|
inlinevirtual |
is called on the outer coupling cells before the data from the macro solver is applied
Here, you might e.g. reset all coupling cell values to zero. This method is only applied to outer coupling cells that are not part of the inner MD domain; it is not applied to the cells in the ghost layer
cell | the coupling cell to apply |
index | the index of the coupling cell |
Reimplemented in coupling::transferstrategies::DifferenceTransferStrategy< LinkedCell, dim >, and coupling::transferstrategies::DirectTransferStrategy< LinkedCell, dim >.
|
inlinevirtual |
is called for outer coupling cell before sending the macroscopicMass and -Momentum data to the macroscopic solver and before noise reduction invocation.
is called for every coupling cell before sending the macroscopicMass and -Momentum data to the macroscopic solver and before noise reduction invocation. Example: Compute mass and momentum and store the results in macroscopicMass and -Momentum. The total mass and momentum from the MD system will then be sent to the macroscopic solver. This method is only applied to outer coupling cells, that is cells that are located outside the MD domain.
cell | the coupling cell to apply |
index | the index of the coupling cell |
Reimplemented in coupling::transferstrategies::TransferStrategy4SchwarzCoupling< LinkedCell, dim >.
|
protected |
interface for the md solver