5#ifndef _MOLECULARDYNAMICS_COUPLING_TRANSFERSTRATEGIES_TRANSFERSTRATEGY4SCHWARZCOUPLING_H_
6#define _MOLECULARDYNAMICS_COUPLING_TRANSFERSTRATEGIES_TRANSFERSTRATEGY4SCHWARZCOUPLING_H_
8#include "coupling/cell-mappings/ComputeMassMapping.h"
9#include "coupling/cell-mappings/ComputeMomentumMapping.h"
10#include "coupling/transferstrategies/TransferStrategy.h"
26template <
class LinkedCell,
unsigned int dim>
102#include "coupling/transferstrategies/TransferStrategy4SchwarzCoupling.cpph"
This class computes the mass over certain linked cells.
Definition ComputeMassMapping.h:23
This class computes the momentum over certain linked cells.
Definition ComputeMomentumMapping.h:24
defines the cell type with cell-averaged quantities. Derived from the class coupling::datastructures:...
Definition CouplingCellWithLinkedCells.h:26
interface to the MD simulation
Definition MDSolverInterface.h:25
Definition TransferStrategy4SchwarzCoupling.h:27
void processOuterCouplingCellAfterReceivingMacroscopicSolverData(coupling::datastructures::CouplingCellWithLinkedCells< LinkedCell, dim > &cell, I02 index) override
the momentum is converted to velocity (velocity = momentum/mass) and stored in the microscopicMomentu...
const int _sampleEveryTimestep
Definition TransferStrategy4SchwarzCoupling.h:100
void beginProcessInnerCouplingCellsAfterMDTimestep() override
the _timestepCounter is incremented and if sample()==true the _sampleCounter too
void processInnerCouplingCellBeforeSendingMDSolverData(coupling::datastructures::CouplingCellWithLinkedCells< LinkedCell, dim > &cell, I02 index) override
the data collected during the md time steps is averaged (/numberMDSteps)
void beginProcessInnerCouplingCellsBeforeReceivingMacroscopicSolverData() override
the sample counter is reseted (0)
TransferStrategy4SchwarzCoupling(coupling::interface::MDSolverInterface< LinkedCell, dim > *const mdSolverInterface, unsigned int numberMDSteps)
a simple
Definition TransferStrategy4SchwarzCoupling.h:33
unsigned int _timestepCounter
Definition TransferStrategy4SchwarzCoupling.h:93
void processInnerCouplingCellAfterMDTimestep(coupling::datastructures::CouplingCellWithLinkedCells< LinkedCell, dim > &cell, I02 index) override
the mass and momentum are evaluated in the cell and stored in the macroscopic quantities
const unsigned int _numberMDSteps
Definition TransferStrategy4SchwarzCoupling.h:97
coupling::cellmappings::ComputeMassMapping< LinkedCell, dim > _massMapping
Definition TransferStrategy4SchwarzCoupling.h:89
void processInnerCouplingCellAfterReceivingMacroscopicSolverData(coupling::datastructures::CouplingCellWithLinkedCells< LinkedCell, dim > &cell, I02 index) override
the data received from the macro solver is processed
void processOuterCouplingCellBeforeSendingMDSolverData(coupling::datastructures::CouplingCellWithLinkedCells< LinkedCell, dim > &cell, I02 index) override
the macroscopic quantities are reseted (0)
virtual ~TransferStrategy4SchwarzCoupling()
a dummy destructor
Definition TransferStrategy4SchwarzCoupling.h:38
virtual bool sample() const
depending on the sampling interval (_sampleEveryTimestep) true is returned if sampling has to be done...
unsigned int _sampleCounter
Definition TransferStrategy4SchwarzCoupling.h:95
coupling::cellmappings::ComputeMomentumMapping< LinkedCell, dim > _momentumMapping
Definition TransferStrategy4SchwarzCoupling.h:91
Definition TransferStrategy.h:25
TransferStrategy(coupling::interface::MDSolverInterface< LinkedCell, dim > *const mdSolverInterface)
a simple destructor
Definition TransferStrategy.h:29
the namespace is used for transferstrategies
Definition AveragingTransferStrategy.h:18
everything necessary for coupling operations, is defined in here
Definition AdditiveMomentumInsertion.h:15