24#ifndef CONTACT_PROPERTIES_H
25#define CONTACT_PROPERTIES_H
36 const T _coefficientOfRestitution,
37 const T _coefficientKineticFriction,
38 const T _coefficientStaticFriction,
39 const T _staticKineticTransitionVelocity)
59template <
typename T,
unsigned N,
bool ENABLE_RANGE_CHECK = false>
62 std::array<ContactProperty<T>, N*(N + 1) / 2> data;
64 constexpr inline unsigned getIndex(
unsigned materialA,
65 unsigned materialB)
const;
72 constexpr void set(
const unsigned materialA,
const unsigned materialB,
73 const T effectiveYoungsModulus,
74 const T coefficientOfRestitution,
75 const T coefficientKineticFriction,
76 const T coefficientStaticFriction,
77 const T staticKineticTransitionVelocity = T {0.01});
81 const unsigned materialB)
const;
84 const unsigned materialB)
const;
87 const unsigned materialB)
const;
90 const unsigned materialB)
const;
94 const unsigned materialB)
const;
97template <
typename T,
unsigned N,
typename F>
101 f(contactProperties);
102 return contactProperties;
constexpr ContactProperties< T, N > createContactProperties(F f)
Top level namespace for all of OpenLB.
Object that stores properties which are necessary for the computation of contact forces N = number of...
constexpr ContactProperties()=default
Constructor.
constexpr T getKineticFrictionCoefficient(const unsigned materialA, const unsigned materialB) const
Get coefficient of kinetic friction.
constexpr T getStaticKineticTransitionVelocity(const unsigned materialA, const unsigned materialB) const
Get transition velocity (static to kinetic)
constexpr T getStaticFrictionCoefficient(const unsigned materialA, const unsigned materialB) const
Get coefficient of static friction.
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 getCoefficientOfRestitution(const unsigned materialA, const unsigned materialB) const
Get damping constant.
constexpr T getEffectiveYoungsModulus(const unsigned materialA, const unsigned materialB) const
Get effective modulus of elasticity.
constexpr ContactProperty(const T _effectiveYoungsModulus, const T _coefficientOfRestitution, const T _coefficientKineticFriction, const T _coefficientStaticFriction, const T _staticKineticTransitionVelocity)
T coefficientOfRestitution
T staticKineticTransitionVelocity
constexpr ContactProperty()=default
T coefficientOfStaticFriction
T coefficientOfKineticFriction