MaMiCo 1.2
|
#include <IcoFoamInterface.h>
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 () |
![]() | |
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 |
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.
|
inlineoverridevirtual |
advances the solver in time
dt | the solver will be advanced from the current time t to t+dt |
Implements coupling::solvers::AbstractCouetteSolver< 3 >.
|
inlineprivate |
create vtk plot if required
|
inlineprivate |
create txt plot if required