Detailed Description

Kernel which calculates the Lennard Jones force between two particles.

This kernel uses the type property of a particle to decide on the material parameters.

This kernel requires the following particle accessor interface

const walberla::mesa_pd::Vec3& getPosition(const size_t p_idx) const;
walberla::mesa_pd::Vec3& getForceRef(const size_t p_idx);
const uint_t& getType(const size_t p_idx) const;

#include <ForceLJ.h>

Public Member Functions

 ForceLJ (const uint_t numParticleTypes)
 
 ForceLJ (const ForceLJ &other)=default
 
 ForceLJ (ForceLJ &&other)=default
 
ForceLJoperator= (const ForceLJ &other)=default
 
ForceLJoperator= (ForceLJ &&other)=default
 
template<typename Accessor >
void operator() (const size_t p_idx, const size_t np_idx, Accessor &ac) const
 
void setEpsilon (const size_t type1, const size_t type2, const real_t &val)
 assumes this parameter is symmetric More...
 
void setSigma (const size_t type1, const size_t type2, const real_t &val)
 assumes this parameter is symmetric More...
 
real_t getEpsilon (const size_t type1, const size_t type2) const
 
real_t getSigma (const size_t type1, const size_t type2) const
 

Private Attributes

uint_t numParticleTypes_
 
std::vector< real_tepsilon {}
 
std::vector< real_tsigma {}
 

Constructor & Destructor Documentation

◆ ForceLJ() [1/3]

walberla::mesa_pd::kernel::ForceLJ::ForceLJ ( const uint_t  numParticleTypes)

◆ ForceLJ() [2/3]

walberla::mesa_pd::kernel::ForceLJ::ForceLJ ( const ForceLJ other)
default

◆ ForceLJ() [3/3]

walberla::mesa_pd::kernel::ForceLJ::ForceLJ ( ForceLJ &&  other)
default

Member Function Documentation

◆ getEpsilon()

real_t walberla::mesa_pd::kernel::ForceLJ::getEpsilon ( const size_t  type1,
const size_t  type2 
) const
inline

◆ getSigma()

real_t walberla::mesa_pd::kernel::ForceLJ::getSigma ( const size_t  type1,
const size_t  type2 
) const
inline

◆ operator()()

template<typename Accessor >
void walberla::mesa_pd::kernel::ForceLJ::operator() ( const size_t  p_idx,
const size_t  np_idx,
Accessor &  ac 
) const
inline

◆ operator=() [1/2]

ForceLJ& walberla::mesa_pd::kernel::ForceLJ::operator= ( const ForceLJ other)
default

◆ operator=() [2/2]

ForceLJ& walberla::mesa_pd::kernel::ForceLJ::operator= ( ForceLJ &&  other)
default

◆ setEpsilon()

void walberla::mesa_pd::kernel::ForceLJ::setEpsilon ( const size_t  type1,
const size_t  type2,
const real_t val 
)
inline

assumes this parameter is symmetric

◆ setSigma()

void walberla::mesa_pd::kernel::ForceLJ::setSigma ( const size_t  type1,
const size_t  type2,
const real_t val 
)
inline

assumes this parameter is symmetric

Member Data Documentation

◆ epsilon

std::vector<real_t> walberla::mesa_pd::kernel::ForceLJ::epsilon {}
private

◆ numParticleTypes_

uint_t walberla::mesa_pd::kernel::ForceLJ::numParticleTypes_
private

◆ sigma

std::vector<real_t> walberla::mesa_pd::kernel::ForceLJ::sigma {}
private

The documentation for this class was generated from the following file:
std::size_t uint_t
Definition: DataTypes.h:133