33 enum class Mode { supervising,
coupling };
41 virtual void setState(
const std::unique_ptr<State>&,
int cycle = 0) = 0;
44 virtual std::unique_ptr<State>
operator()(
const std::unique_ptr<State>&,
int cycle = 0) = 0;
50 virtual std::unique_ptr<PintableMacroSolver>
getSupervisor(
int num_cycles,
double visc_multiplier = 1)
const = 0;
53 virtual void print(std::ostream& os)
const = 0;
57 virtual double get_avg_vel(
const std::unique_ptr<State>& state)
const {
return 0; }
71 virtual std::unique_ptr<State> clone()
const = 0;
79 virtual std::unique_ptr<State>
operator+(
const State&) = 0;
82 virtual std::unique_ptr<State>
operator-(
const State&) = 0;
91 virtual const double*
getData()
const = 0;
94 virtual void print(std::ostream& os)
const = 0;
Definition PintableMacroSolver.h:67
virtual double * getData()=0
virtual std::unique_ptr< State > operator-(const State &)=0
virtual int getSizeBytes() const =0
virtual bool operator==(const State &) const =0
virtual void print(std::ostream &os) const =0
virtual const double * getData() const =0
virtual std::unique_ptr< State > operator+(const State &)=0
Definition PintableMacroSolver.h:30
virtual Mode getMode() const =0
virtual std::unique_ptr< PintableMacroSolver > getSupervisor(int num_cycles, double visc_multiplier=1) const =0
virtual std::unique_ptr< State > getState()=0
virtual std::unique_ptr< State > operator()(const std::unique_ptr< State > &, int cycle=0)=0
virtual void setState(const std::unique_ptr< State > &, int cycle=0)=0
virtual double get_avg_vel(const std::unique_ptr< State > &state) const
Definition PintableMacroSolver.h:57
virtual void print(std::ostream &os) const =0
everything necessary for coupling operations, is defined in here
Definition AdditiveMomentumInsertion.h:15