OpenLB 1.7
Loading...
Searching...
No Matches
Public Member Functions | List of all members
olb::particles::contact::ContactProperties< T, N, ENABLE_RANGE_CHECK > Struct Template Reference

Object that stores properties which are necessary for the computation of contact forces N = number of different materials The material here is an identifier of a solid material with certain (mechanical) properties This material is something completely different from the lattice's material number, which is used to assign boundary conditions and dynamics. More...

#include <contactProperties.h>

+ Collaboration diagram for olb::particles::contact::ContactProperties< T, N, ENABLE_RANGE_CHECK >:

Public Member Functions

constexpr ContactProperties ()=default
 Constructor.
 
constexpr void set (const unsigned materialA, const unsigned materialB, const T effectiveYoungsModulus, const T coefficientOfRestitution, const T coefficientKineticFriction, const T coefficientStaticFriction, const T staticKineticTransitionVelocity=T {0.01})
 Set contact properties.
 
constexpr T getEffectiveYoungsModulus (const unsigned materialA, const unsigned materialB) const
 Get effective modulus of elasticity.
 
constexpr T getCoefficientOfRestitution (const unsigned materialA, const unsigned materialB) const
 Get damping constant.
 
constexpr T getKineticFrictionCoefficient (const unsigned materialA, const unsigned materialB) const
 Get coefficient of kinetic friction.
 
constexpr T getStaticFrictionCoefficient (const unsigned materialA, const unsigned materialB) const
 Get coefficient of static friction.
 
constexpr T getStaticKineticTransitionVelocity (const unsigned materialA, const unsigned materialB) const
 Get transition velocity (static to kinetic)
 

Detailed Description

template<typename T, unsigned N, bool ENABLE_RANGE_CHECK = false>
struct olb::particles::contact::ContactProperties< T, N, ENABLE_RANGE_CHECK >

Object that stores properties which are necessary for the computation of contact forces N = number of different materials The material here is an identifier of a solid material with certain (mechanical) properties This material is something completely different from the lattice's material number, which is used to assign boundary conditions and dynamics.

Definition at line 60 of file contactProperties.h.

Constructor & Destructor Documentation

◆ ContactProperties()

template<typename T , unsigned N, bool ENABLE_RANGE_CHECK = false>
constexpr olb::particles::contact::ContactProperties< T, N, ENABLE_RANGE_CHECK >::ContactProperties ( )
constexprdefault

Constructor.

Member Function Documentation

◆ getCoefficientOfRestitution()

template<typename T , unsigned N, bool ENABLE_RANGE_CHECK>
constexpr T olb::particles::contact::ContactProperties< T, N, ENABLE_RANGE_CHECK >::getCoefficientOfRestitution ( const unsigned materialA,
const unsigned materialB ) const
constexpr

Get damping constant.

Definition at line 82 of file contactProperties.hh.

84{
85 return data[getIndex(materialA, materialB)].coefficientOfRestitution;
86}

◆ getEffectiveYoungsModulus()

template<typename T , unsigned N, bool ENABLE_RANGE_CHECK>
constexpr T olb::particles::contact::ContactProperties< T, N, ENABLE_RANGE_CHECK >::getEffectiveYoungsModulus ( const unsigned materialA,
const unsigned materialB ) const
constexpr

Get effective modulus of elasticity.

Definition at line 74 of file contactProperties.hh.

76{
77 return data[getIndex(materialA, materialB)].effectiveYoungsModulus;
78}

◆ getKineticFrictionCoefficient()

template<typename T , unsigned N, bool ENABLE_RANGE_CHECK>
constexpr T olb::particles::contact::ContactProperties< T, N, ENABLE_RANGE_CHECK >::getKineticFrictionCoefficient ( const unsigned materialA,
const unsigned materialB ) const
constexpr

Get coefficient of kinetic friction.

Definition at line 90 of file contactProperties.hh.

92{
93 return data[getIndex(materialA, materialB)].coefficientOfKineticFriction;
94}

◆ getStaticFrictionCoefficient()

template<typename T , unsigned N, bool ENABLE_RANGE_CHECK>
constexpr T olb::particles::contact::ContactProperties< T, N, ENABLE_RANGE_CHECK >::getStaticFrictionCoefficient ( const unsigned materialA,
const unsigned materialB ) const
constexpr

Get coefficient of static friction.

Definition at line 98 of file contactProperties.hh.

100{
101 return data[getIndex(materialA, materialB)].coefficientOfStaticFriction;
102}

◆ getStaticKineticTransitionVelocity()

template<typename T , unsigned N, bool ENABLE_RANGE_CHECK>
constexpr T olb::particles::contact::ContactProperties< T, N, ENABLE_RANGE_CHECK >::getStaticKineticTransitionVelocity ( const unsigned materialA,
const unsigned materialB ) const
constexpr

Get transition velocity (static to kinetic)

Definition at line 106 of file contactProperties.hh.

108{
109 return data[getIndex(materialA, materialB)].staticKineticTransitionVelocity;
110}

◆ set()

template<typename T , unsigned N, bool ENABLE_RANGE_CHECK>
constexpr void olb::particles::contact::ContactProperties< T, N, ENABLE_RANGE_CHECK >::set ( const unsigned materialA,
const unsigned materialB,
const T effectiveYoungsModulus,
const T coefficientOfRestitution,
const T coefficientKineticFriction,
const T coefficientStaticFriction,
const T staticKineticTransitionVelocity = T {0.01} )
constexpr

Set contact properties.

Definition at line 54 of file contactProperties.hh.

59{
60 if (materialA >= N || materialB >= N) {
61 std::cerr << "WARNING: At least one of the provided materials exceeds the "
62 "total number of materials."
63 << std::endl;
64 }
65
66 data[getIndex(materialA, materialB)] =
67 ContactProperty(effectiveYoungsModulus, coefficientOfRestitution,
68 coefficientKineticFriction, coefficientStaticFriction,
69 staticKineticTransitionVelocity);
70}

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