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: