MaMiCo 1.2
Loading...
Searching...
No Matches
coupling::solvers::IcoFoamInterface Class Reference

#include <IcoFoamInterface.h>

Inheritance diagram for coupling::solvers::IcoFoamInterface:
Collaboration diagram for coupling::solvers::IcoFoamInterface:

Public Member Functions

 IcoFoamInterface (int rank, int plotEveryTimestep, double channelheight, std::string dict, std::string folder, tarch::la::Vector< 12, unsigned int > boundariesWithMD, tarch::la::Vector< 3, double > uWall)
void advance (double dt) override
 advances the solver in time
tarch::la::Vector< 3, double > getVelocity (tarch::la::Vector< 3, double > pos) const override
void setWallVelocity (tarch::la::Vector< 3, double > wallVelocity) override
void setMDBoundaryValues (coupling::datastructures::FlexibleCellContainer< 3 > &md2macroBuffer)
void setupMDBoundary ()
Public Member Functions inherited from coupling::solvers::AbstractCouetteSolver< 3 >
virtual ~AbstractCouetteSolver ()
 a dummy destructor
virtual tarch::la::Vector< dim, double > getVelocity (tarch::la::Vector< dim, double > pos) const=0
 returns the current velocity at the given position
virtual void setWallVelocity (const tarch::la::Vector< dim, double > wallVelocity)=0
 changes the velocity at the moving for, refers to Couette scenario

Private Member Functions

const tarch::la::Vector< 3, double > getOuterPointFromBoundary (const int layer, const int index)
const tarch::la::Vector< 3, double > getInnerPointFromBoundary (const int layer, const int index)
const tarch::la::Vector< 3, double > getSecondOuterPointFromBoundary (const int layer, const int index)
const double getAnalyticalCouetteU (const double &pos) const
void plottxt () const
void plot () const
bool skipRank () const

Private Attributes

Foam::Time runTime
Foam::fvMesh mesh
Foam::IOdictionary transportProperties
Foam::dimensionedScalar nu
Foam::volScalarField p
Foam::volVectorField U
Foam::surfaceScalarField phi
Foam::pisoControl piso
tarch::la::Vector< 12, unsigned int > _boundariesWithMD
float _dx
double _channelheight
std::multimap< I00, unsigned int > _boundaryPointMap
std::vector< tarch::la::Vector< 3, double > > _boundaryPointsOuter
I00 * _boundaryIndicesInner {nullptr}
Foam::vector ** _boundaryIndices {nullptr}
int _rank
int _plotEveryTimestep
int _timestepCounter {0}
Foam::label pRefCell {0}
Foam::scalar pRefValue {0.0}
size_t _numberBoundaryPoints {0}
tarch::la::Vector< 3, double > _uWall

Detailed Description

The code is an evolution of the solver IcoFoam in OpenFOAM(R) 7, where additional functionality for MaMiCO coupling is added. It is an incompressible CFD solver for the Couette scenario. The implementation is for a equidistant mesh. Due to the Couette szenario 12 boundaries for the continuum are assumed, 6 of them to be boundaries with the MD.

Author
Helene Wittenberg

Member Function Documentation

◆ advance()

void coupling::solvers::IcoFoamInterface::advance ( double dt)
inlineoverridevirtual

advances the solver in time

Parameters
dtthe solver will be advanced from the current time t to t+dt

Implements coupling::solvers::AbstractCouetteSolver< 3 >.

◆ plot()

void coupling::solvers::IcoFoamInterface::plot ( ) const
inlineprivate

create vtk plot if required

◆ plottxt()

void coupling::solvers::IcoFoamInterface::plottxt ( ) const
inlineprivate

create txt plot if required


The documentation for this class was generated from the following file: