MaMiCo 1.2
Loading...
Searching...
No Matches
coupling Namespace Reference

everything necessary for coupling operations, is defined in here More...

Namespaces

namespace  filtering
 
namespace  paralleltopology
 
namespace  solvers
 all numerical solvers are defined in the namespace, and their interfaces
 
namespace  transferstrategies
 the namespace is used for transferstrategies
 

Classes

class  AdditiveMomentumInsertion
 used to manipulate the momentum/velocity of the molecules contained in a coupling cell. More...
 
class  BoundaryForceController
 controller for forces acting at open MD boundaries More...
 
class  CouplingCellPlotter
 plots the coupling cell data. More...
 
class  InstanceHandling
 Simulation slots are managed (i.e., added/removed) via this class. Works and interacts with the class coupling::MultiMDMediator closely. More...
 
class  KineticEnergyController
 controles and regulates the kinetic energy of the MD system. More...
 
class  MomentumController
 controls the momentum in a coupling cell. More...
 
class  MomentumInsertion
 used to manipulate the momentum/ velocity of the molecules contained in a coupling cell. More...
 
class  MultiMDMediator
 Class to handle interaction between MultiMDCellService and InstanceHandling This is currently mainly used for activating/deactivating and addtion/removal of md simulations. Works and interacts with the class coupling::InstanceHandling closely. More...
 
class  NieVelocityImposition
 Velocity imposition scheme following the respective paper by Nie et al., J. Fluid. Mech. 500, 2004. More...
 
class  NoBoundaryForce
 dummy implementation, applying no boundary force. More...
 
class  NoMomentumInsertion
 dummy class. Empty momentum insertion mechanism. Doesn't change anything. More...
 
class  NoParticleInsertion
 empty implementation of particle insertion (no particle insertion/removal). More...
 
class  ParticleInsertion
 interface for particle insertion/removal on coupling cell basis. More...
 
class  SetGivenVelocity4MomentumInsertion
 
class  UsherParticleInsertion
 handles particle insertion (via Usher algorithm) and random particle deletion. More...
 
class  VelocityGradientRelaxation
 carries out velocity relaxation (similar to the SetMomentumMapping procedure). More...
 
class  VelocityGradientRelaxationTopOnly
 carries out velocity relaxation (similar to the SetMomentumMapping procedure). More...
 
class  ZhouBoundaryForceController
 applies the boundary force from Zhou et al. in boundary cell. More...
 

Enumerations

enum  MacroscopicSolverID { PEANO_LATTICEBOLTZMANN_ID = 0 , TEST_LOCAL_MACROSCOPIC_SOLVER_ID = 1 }
 

Functions

template<unsigned int dim>
tarch::la::Vector< 3, unsigned int > initRange (tarch::la::Vector< dim, unsigned int > vec)
 initialises the range for looping over Cartesian grid for general case
 
template<unsigned int dim>
tarch::la::Vector< dim, unsigned int > initDimVector (tarch::la::Vector< 3, unsigned int > vec)
 reduces three-dimensional vector to vector of size dim (assumes that dim<= 3).
 
template<unsigned int dim>
tarch::la::Vector< dim, unsigned int > initDivisionFactor (tarch::la::Vector< dim, unsigned int > numberCells)
 
template<unsigned int dim>
tarch::la::Vector< dim, unsigned int > getVectorCellIndex (unsigned int cellIndex, const tarch::la::Vector< dim, unsigned int > &divisionFactor)
 converts linearised cell index to a vector cell index using predefined division factors.
 

Detailed Description

everything necessary for coupling operations, is defined in here

interface for different MD solvers.

Author
Philipp Neumann

Enumeration Type Documentation

◆ MacroscopicSolverID

This is an enum for the macroscopic solver ID

Todo
I have no idea what this is @someone
Enumerator
PEANO_LATTICEBOLTZMANN_ID 

test1

TEST_LOCAL_MACROSCOPIC_SOLVER_ID 

test2

Function Documentation

◆ getVectorCellIndex()

template<unsigned int dim>
tarch::la::Vector< dim, unsigned int > coupling::getVectorCellIndex ( unsigned int cellIndex,
const tarch::la::Vector< dim, unsigned int > & divisionFactor )

converts linearised cell index to a vector cell index using predefined division factors.

This method is supposed to be only called with member divisionFactor variables, cf. initDivisionFactor()-method.

Parameters
cellIndexthe index of the cell which shall be transformed
divisionFactorthe division factor for the corresponding spacial setup of the domain
Template Parameters
dimrefers to the spacial dimension of the simulation, can be 1, 2, or 3
Returns
the dimensionized index for a given cell

◆ initDimVector()

template<unsigned int dim>
tarch::la::Vector< dim, unsigned int > coupling::initDimVector ( tarch::la::Vector< 3, unsigned int > vec)

reduces three-dimensional vector to vector of size dim (assumes that dim<= 3).

Parameters
vecthe input which will be reduced
Template Parameters
dimrefers to the spacial dimension of the simulation, can be 1, 2, or 3
Returns
the given 3d vector as a vector for the simulation dimension (dim)

◆ initDivisionFactor()

template<unsigned int dim>
tarch::la::Vector< dim, unsigned int > coupling::initDivisionFactor ( tarch::la::Vector< dim, unsigned int > numberCells)

@briefcomputes a vectorwise division factor for the conversion of linearised to vector indices

Parameters
numberCellsthe number of cells per direction in the spacial domain
Template Parameters
dimrefers to the spacial dimension of the simulation, can be 1, 2, or 3
Returns
the division factor for the simulation

◆ initRange()

template<unsigned int dim>
tarch::la::Vector< 3, unsigned int > coupling::initRange ( tarch::la::Vector< dim, unsigned int > vec)

initialises the range for looping over Cartesian grid for general case

Parameters
vecthe input vector to be generalised
Template Parameters
dimrefers to the spacial dimension of the simulation, can be 1, 2, or 3
Returns
the given vector as 3d version