MaMiCo 1.2
Loading...
Searching...
No Matches
MacroscopicSolverInterface.h
1// Copyright (C) 2015 Technische Universitaet Muenchen
2// This file is part of the Mamico project. For conditions of distribution
3// and use, please see the copyright notice in Mamico's main folder, or at
4// www5.in.tum.de/mamico
5#ifndef _MOLECULARDYNAMICS_COUPLING_INTERFACE_MACROSCOPICSOLVERINTERFACE_H_
6#define _MOLECULARDYNAMICS_COUPLING_INTERFACE_MACROSCOPICSOLVERINTERFACE_H_
7
8#include "coupling/CouplingMDDefinitions.h"
9#include "tarch/la/Vector.h"
10#include <vector>
11
12namespace coupling {
13namespace interface {
14template <unsigned int dim> class MacroscopicSolverInterface;
15}
16} // namespace coupling
17
23template <unsigned int dim> class coupling::interface::MacroscopicSolverInterface {
24
25public:
30
31 /* This function defines an offset of cells which is considered to be the outer region.
32 * It replaces the legacy functions 'receiveMacroscopicQuantityFromMDSolver' and 'sendMacroscopicQuantityToMDSolver'
33 * from older versions of MaMiCo. Data are sent to MD solver for cells that are not in the ghost layer
34 * and not part of the inner region. Data needs so be send from micro to macro solver for all inner cells.
35 * @return number of cells in outer region per direction at each boundary, e.g. 3
36 */
37 virtual unsigned int getOuterRegion() = 0;
38
55 virtual std::vector<unsigned int> getRanks(I01 idx) = 0;
56
67 virtual std::vector<unsigned int> getSourceRanks(I01 idx) { return getRanks(idx); }
68
78 virtual std::vector<unsigned int> getTargetRanks(I01 idx) { return getRanks(idx); }
79};
80#endif // _MOLECULARDYNAMICS_COUPLING_INTERFACE_MACROSCOPICSOLVERINTERFACE_H_
interface for the macroscopic, i.e. continuum solver
Definition MacroscopicSolverInterface.h:23
virtual std::vector< unsigned int > getSourceRanks(I01 idx)
Definition MacroscopicSolverInterface.h:67
virtual std::vector< unsigned int > getTargetRanks(I01 idx)
Definition MacroscopicSolverInterface.h:78
virtual std::vector< unsigned int > getRanks(I01 idx)=0
virtual ~MacroscopicSolverInterface()
Definition MacroscopicSolverInterface.h:29
MacroscopicSolverInterface()
Definition MacroscopicSolverInterface.h:27
everything necessary for coupling operations, is defined in here
Definition AdditiveMomentumInsertion.h:15