LBIBCell
 All Classes Functions Variables Friends Pages
LbmLib::solver::BaseBoundarySolver< T > Struct Template Reference

The Base class for all BoundarySolvers implementations This classes uses the recursive template idiom to automatically register child classes in the factory. To implement a solver inherit from this class and provide the same class as a template argument. Additional the class should provide a static member with the name name which stores a unique name for the class. Preferentially declare the constructor and the static member name private and make the BaseCDESolver a friend class of this. look at /c BaseCDESolver for an example. More...

#include <BoundaryAbstractSolver.hpp>

Inheritance diagram for LbmLib::solver::BaseBoundarySolver< T >:
LbmLib::solver::BoundaryAbstractSolver

Protected Member Functions

 BaseBoundarySolver ()
 BaseBoundarySolver The Constructor which enforces that the specialisation is done.
 
virtual ~BaseBoundarySolver ()
 ~BaseBoundarySolver virtual Destructor
 
- Protected Member Functions inherited from LbmLib::solver::BoundaryAbstractSolver
 BoundaryAbstractSolver ()
 CDESolver protected Constructor only use create method for instantiation.
 

Static Protected Member Functions

static BoundaryAbstractSolvercreate ()
 create Static constructor. A pointer to this function along with the name of the algorithm is registered with the Solver Factory. More...
 
static bool init ()
 init Registers the class in the Solver Factory More...
 

Static Protected Attributes

static bool reg = BaseBoundarySolver<T>::init()
 reg True if registration was successful
 

Additional Inherited Members

- Public Member Functions inherited from LbmLib::solver::BoundaryAbstractSolver
virtual ~BoundaryAbstractSolver ()
 ~BoundaryAbstractSolver virtual Destructor
 
void connectBoundaryNode (const nodes::BoundaryNode *boundaryNode)
 connectPhysicalNode This connects the Solver with an physical node this should be executed before using this class More...
 
virtual void advect ()=0
 advect The advect step of the LBM
 
virtual void postAdvect ()=0
 postAdvect Executed after the advection step
 
virtual void preAdvect ()=0
 preAdvect Executed before the advection step
 
virtual void initSolver ()=0
 initSolver Use this to initalise the solver
 
void connectToCDESolvers (const std::vector< std::string > &cdeSolvers)
 connectToCDESolvers makes sure that this boundary Solver is executed on all connected CDE Solvers More...
 
virtual double & accessDistribution (const Direction &dir)=0
 accessDistribution Access to the distribution More...
 
- Protected Attributes inherited from LbmLib::solver::BoundaryAbstractSolver
const nodes::BoundaryNodeboundaryNode_
 physicalNode_ The physical Node which owns this solver
 
std::vector< std::string > cdeSolvers_
 cdeSolvers_ The cde solver this boundary solver is responsible for.
 

Detailed Description

template<class T>
struct LbmLib::solver::BaseBoundarySolver< T >

The Base class for all BoundarySolvers implementations This classes uses the recursive template idiom to automatically register child classes in the factory. To implement a solver inherit from this class and provide the same class as a template argument. Additional the class should provide a static member with the name name which stores a unique name for the class. Preferentially declare the constructor and the static member name private and make the BaseCDESolver a friend class of this. look at /c BaseCDESolver for an example.

Definition at line 113 of file BoundaryAbstractSolver.hpp.

Member Function Documentation

template<class T>
static BoundaryAbstractSolver* LbmLib::solver::BaseBoundarySolver< T >::create ( )
inlinestaticprotected

create Static constructor. A pointer to this function along with the name of the algorithm is registered with the Solver Factory.

Returns
Pointer to a new AbstractCDESolver instance. Responsibility for allocated memory lies with the caller.

Definition at line 134 of file BoundaryAbstractSolver.hpp.

template<class T>
static bool LbmLib::solver::BaseBoundarySolver< T >::init ( )
inlinestaticprotected

init Registers the class in the Solver Factory

Returns
True if successful

Definition at line 146 of file BoundaryAbstractSolver.hpp.


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