FrictionQPotSpringBlock v0.22.7
Loading...
Searching...
No Matches
FrictionQPotSpringBlock::detail::SemiSmooth< Generator > Class Template Reference

A potential energy landscape of each particle that is piecewise smooth. More...

#include <FrictionQPotSpringBlock/detail.h>

Public Member Functions

 SemiSmooth (double mu, double kappa, Generator *chunk)
 
template<class T >
void force (const T &u, T &f)
 Update forces based on current slips.
 
template<class T >
double maxUniformDisplacement (const T &u, int direction) const
 Find maximum particle displacement for which the system is linear and uniform.
 
template<class T >
void trigger (T &u, size_t p, double eps, int direction) const
 Trigger a specific particle.
 

Protected Types

using stype = typename Generator::size_type
 Size type.
 

Protected Attributes

stype m_N
 Number of particles.
 
double m_mu
 Curvature of the potentials.
 
double m_kappa
 Softening stiffness.
 
Generator * m_chunk
 Pointer to chunk of yield 'positions' (automatically updated if needed)
 

Detailed Description

template<class Generator>
class FrictionQPotSpringBlock::detail::SemiSmooth< Generator >

A potential energy landscape of each particle that is piecewise smooth.

This corresponds to a piecewise linear force.

Definition at line 213 of file detail.h.

Member Typedef Documentation

◆ stype

template<class Generator >
using FrictionQPotSpringBlock::detail::SemiSmooth< Generator >::stype = typename Generator::size_type
protected

Size type.

Definition at line 215 of file detail.h.

Constructor & Destructor Documentation

◆ SemiSmooth()

template<class Generator >
FrictionQPotSpringBlock::detail::SemiSmooth< Generator >::SemiSmooth ( double mu,
double kappa,
Generator * chunk )
inline

Parameters
muCurvature of the potentials.
chunkPointer to chunk of yield 'positions' (automatically updated if needed)
Template Parameters
GeneratorThe type of the prrng::pcg32_tensor_cumsum object.
Parameters
kappaSoftening stiffness.

Definition at line 228 of file detail.h.

Member Function Documentation

◆ force()

template<class Generator >
template<class T >
void FrictionQPotSpringBlock::detail::SemiSmooth< Generator >::force ( const T & u,
T & f )
inline

Update forces based on current slips.

Parameters
uSlip per particle.
fForce per particle (output).

Definition at line 237 of file detail.h.

◆ maxUniformDisplacement()

template<class Generator >
template<class T >
double FrictionQPotSpringBlock::detail::SemiSmooth< Generator >::maxUniformDisplacement ( const T & u,
int direction ) const
inline

Find maximum particle displacement for which the system is linear and uniform.

Parameters
directionIf +1: move right. If -1 move left.
Returns
Float: particle displacement.
Parameters
uSlip per particle.

Definition at line 283 of file detail.h.

◆ trigger()

template<class Generator >
template<class T >
void FrictionQPotSpringBlock::detail::SemiSmooth< Generator >::trigger ( T & u,
size_t p,
double eps,
int direction ) const
inline

Trigger a specific particle.

Advance to the yield position right plus a margin of eps / 2, or to the left minus a margin eps / 2.

Parameters
pParticle index.
epsMargin.
directionIf +1: move right. If -1 move left.
uSlip per particle.

Definition at line 340 of file detail.h.

Member Data Documentation

◆ m_chunk

template<class Generator >
Generator* FrictionQPotSpringBlock::detail::SemiSmooth< Generator >::m_chunk
protected

Pointer to chunk of yield 'positions' (automatically updated if needed)

Definition at line 219 of file detail.h.

◆ m_kappa

template<class Generator >
double FrictionQPotSpringBlock::detail::SemiSmooth< Generator >::m_kappa
protected

Softening stiffness.

Definition at line 218 of file detail.h.

◆ m_mu

template<class Generator >
double FrictionQPotSpringBlock::detail::SemiSmooth< Generator >::m_mu
protected

Curvature of the potentials.

Definition at line 217 of file detail.h.

◆ m_N

template<class Generator >
stype FrictionQPotSpringBlock::detail::SemiSmooth< Generator >::m_N
protected

Number of particles.

Definition at line 216 of file detail.h.


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