5#ifndef _MOLECULARDYNAMICS_COUPLING_VELOCITYGRADIENTRELAXATION_H_
6#define _MOLECULARDYNAMICS_COUPLING_VELOCITYGRADIENTRELAXATION_H_
8#include "coupling/MomentumInsertion.h"
9#include "coupling/cell-mappings/ComputeMomentumMapping.h"
10#include "coupling/cell-mappings/VelocityGradientRelaxationMapping.h"
11#include "coupling/interface/MDSolverInterface.h"
used to manipulate the momentum/ velocity of the molecules contained in a coupling cell.
Definition MomentumInsertion.h:23
coupling::interface::MDSolverInterface< LinkedCell, dim > *const _mdSolverInterface
Definition MomentumInsertion.h:47
MomentumInsertion(coupling::interface::MDSolverInterface< LinkedCell, dim > *const mdSolverInterface)
a simple constructor
Definition MomentumInsertion.h:27
carries out velocity relaxation (similar to the SetMomentumMapping procedure).
Definition VelocityGradientRelaxation.h:106
virtual ~VelocityGradientRelaxationTopOnly()
a dummy destructor
Definition VelocityGradientRelaxation.h:114
VelocityGradientRelaxationTopOnly(double relaxationParam, coupling::interface::MDSolverInterface< LinkedCell, dim > *const mdSolverInterface, const coupling::datastructures::CouplingCellWithLinkedCells< LinkedCell, dim > *const couplingCells)
a simple constructor
Definition VelocityGradientRelaxation.h:109
void insertMomentum(coupling::datastructures::CouplingCellWithLinkedCells< LinkedCell, dim > &cell, I02 idx) const override
insertes the momentum to the cells according to the params and velocity gradient relaxation method
Definition VelocityGradientRelaxation.h:123
carries out velocity relaxation (similar to the SetMomentumMapping procedure).
Definition VelocityGradientRelaxation.h:37
void insertMomentum(coupling::datastructures::CouplingCellWithLinkedCells< LinkedCell, dim > &cell, I02 idx) const override
insertes the momentum to the cells according to the params and velocity gradient relaxation method
Definition VelocityGradientRelaxation.h:64
const coupling::datastructures::CouplingCellWithLinkedCells< LinkedCell, dim > *const _couplingCells
Definition VelocityGradientRelaxation.h:79
unsigned int getTimeIntervalPerMomentumInsertion() const override
returns the time step interval for the momentum insertion, always one for this method
Definition VelocityGradientRelaxation.h:55
const double _relaxationParam
Definition VelocityGradientRelaxation.h:84
VelocityGradientRelaxation(double relaxationParam, coupling::interface::MDSolverInterface< LinkedCell, dim > *const mdSolverInterface, const coupling::datastructures::CouplingCellWithLinkedCells< LinkedCell, dim > *const couplingCells)
a simple constructor
Definition VelocityGradientRelaxation.h:46
virtual ~VelocityGradientRelaxation()
a dummy destructor
Definition VelocityGradientRelaxation.h:50
This class computes the momentum over certain linked cells.
Definition ComputeMomentumMapping.h:24
tarch::la::Vector< dim, double > getMeanVelocity() const
Definition ComputeMomentumMapping.h:81
This class relaxes velocities of molecules towards an interpolated avergaged velocity value.
Definition VelocityGradientRelaxationMapping.h:38
This is the same as the class coupling::cellmappings::VelocityGradientRelaxationMapping,...
Definition VelocityGradientRelaxationMapping.h:406
defines the cell type with cell-averaged quantities. Derived from the class coupling::datastructures:...
Definition CouplingCellWithLinkedCells.h:26
void iterateConstCells(A &a) const
Definition CouplingCellWithLinkedCells.h:90
void iterateCells(A &a)
Definition CouplingCellWithLinkedCells.h:74
interface to the MD simulation
Definition MDSolverInterface.h:25
everything necessary for coupling operations, is defined in here
Definition AdditiveMomentumInsertion.h:15