MaMiCo 1.2
Loading...
Searching...
No Matches
coupling::BoundaryForceController< LinkedCell, dim > Class Template Referenceabstract

controller for forces acting at open MD boundaries More...

#include <BoundaryForceController.h>

Inheritance diagram for coupling::BoundaryForceController< LinkedCell, dim >:

Public Member Functions

 BoundaryForceController (coupling::interface::MDSolverInterface< LinkedCell, dim > *const mdSolverInterface)
 A simple constructor.
 
virtual ~BoundaryForceController ()
 A simple destructor.
 
virtual void applyBoundaryForce (coupling::datastructures::CouplingCellWithLinkedCells< LinkedCell, dim > &cell)=0
 applies the boundary force on a boundary cell
 
virtual double getPotentialEnergy (const tarch::la::Vector< dim, double > &position) const
 calculates the potential energy for a given position
 
virtual tarch::la::Vector< dim, double > getForce (const tarch::la::Vector< dim, double > &position) const
 calculates the boundary force for the given particle position
 

Protected Attributes

coupling::interface::MDSolverInterface< LinkedCell, dim > *const _mdSolverInterface
 interface of the molecular dynamics solver
 

Detailed Description

template<class LinkedCell, unsigned int dim>
class coupling::BoundaryForceController< LinkedCell, dim >

controller for forces acting at open MD boundaries

There is an interface method applyBoundaryForce which triggers potential boundary forcing in each coupling cell that is located at the very outer MD boundary (first layer of non-ghost coupling cells).

Template Parameters
LinkedCellthe LinkedCell class is given by the implementation of linked cells in the molecular dynamics simulation
dimthe integer dim refers to the spacial dimension of the simulation, can be 1, 2, or 3
Author
Philipp Neumann

Constructor & Destructor Documentation

◆ BoundaryForceController()

template<class LinkedCell, unsigned int dim>
coupling::BoundaryForceController< LinkedCell, dim >::BoundaryForceController ( coupling::interface::MDSolverInterface< LinkedCell, dim > *const mdSolverInterface)
inline

A simple constructor.

Parameters
mdSolverInterfaceinterface to the molecular dynamics solver

Member Function Documentation

◆ applyBoundaryForce()

template<class LinkedCell, unsigned int dim>
virtual void coupling::BoundaryForceController< LinkedCell, dim >::applyBoundaryForce ( coupling::datastructures::CouplingCellWithLinkedCells< LinkedCell, dim > & cell)
pure virtual

applies the boundary force on a boundary cell

iterates over all linked cells of the given coupling cell and applies the cellmapping for the boundary force

Parameters
cellthe boundary coupling cell to apply the boundary force

Implemented in coupling::NoBoundaryForce< LinkedCell, dim >, and coupling::ZhouBoundaryForceController< LinkedCell, dim >.

◆ getForce()

template<class LinkedCell, unsigned int dim>
virtual tarch::la::Vector< dim, double > coupling::BoundaryForceController< LinkedCell, dim >::getForce ( const tarch::la::Vector< dim, double > & position) const
inlinevirtual

calculates the boundary force for the given particle position

Parameters
positionparticle position for the force calculation
Returns
the force for the given position

Reimplemented in coupling::ZhouBoundaryForceController< LinkedCell, dim >.

◆ getPotentialEnergy()

template<class LinkedCell, unsigned int dim>
virtual double coupling::BoundaryForceController< LinkedCell, dim >::getPotentialEnergy ( const tarch::la::Vector< dim, double > & position) const
inlinevirtual

calculates the potential energy for a given position

Parameters
positionthe position for which the potential energy will be calculated
Returns
the potential energy for the given position

Reimplemented in coupling::ZhouBoundaryForceController< LinkedCell, dim >.


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