FrictionQPotSpringBlock v0.22.7
Loading...
Searching...
No Matches
FrictionQPotSpringBlock::Line1d::System_Smooth_Laplace Class Reference

Same as System_Cuspy_Laplace() but with a smooth potential. More...

#include <FrictionQPotSpringBlock/Line1d.h>

Inheritance diagram for FrictionQPotSpringBlock::Line1d::System_Smooth_Laplace:
FrictionQPotSpringBlock::detail::System< 1, detail::Smooth< Generator >, Generator, detail::Laplace1d >

Public Member Functions

 System_Smooth_Laplace (double m, double eta, double mu, double k_interactions, double k_frame, double dt, const std::array< size_t, 1 > &shape, uint64_t seed, const std::string &distribution, const std::vector< double > &parameters, double offset=-100.0, size_t nchunk=5000)
 
const auto & chunk () const
 Chunk of (cumulative sum of) random numbers.
 
auto size () const
 Number of particles.
 
const auto & shape () const
 Shape of the system.
 
auto dt () const
 The time step (parameter).
 
auto mu () const
 The curvature of each well (parameter).
 
auto eta () const
 The damping coefficient (parameter).
 
auto m () const
 The mass of each particle (parameter).
 
auto k_frame () const
 The stiffness of the loading frame (parameter).
 
const auto & external () const
 Class that generates and external force that is add to the residual force.
 
void set_t (double arg)
 Set time.
 
void set_inc (ptrdiff_t arg)
 Set increment number.
 
void set_u_frame (double arg)
 Set position of the load frame.
 
double u_frame () const
 Position of the load frame.
 
void set_u (const array_type::tensor< double, rank > &arg)
 Set the slip ('position') of each particle.
 
void set_v (const array_type::tensor< double, rank > &arg)
 Set the velocity of each particle (the first time derivative of the slip).
 
void set_a (const array_type::tensor< double, rank > &arg)
 Set the acceleration of each particle (the second time derivative of the slip).
 
void refresh ()
 Recompute all forces.
 
const auto & u () const
 Slip ('position') of each particle.
 
const auto & v () const
 Velocity of each particle.
 
const auto & a () const
 Acceleration of each particle.
 
const auto & f () const
 Resultant force acting on each particle.
 
const auto & f_potential () const
 Force associated to potentials acting on each particle.
 
const auto & f_frame () const
 Force associated to the load frame acting on each particle.
 
const auto & f_interactions () const
 Force associated to interactions between particles.
 
const auto & f_damping () const
 Force associated to damping on each particle.
 
auto t () const
 The time.
 
auto inc () const
 The increment number.
 
double temperature () const
 The instantaneous temperature.
 
double residual () const
 Residual.
 
void quench ()
 Set velocities and accelerations to zero.
 
void timeStep ()
 Effectuate one time step using the velocity Verlet algorithm.
 
void timeSteps (size_t n)
 Make a number of time steps, see timeStep().
 
size_t timeStepsUntilEvent (double tol=1e-5, size_t niter_tol=10, size_t max_iter=1e9)
 Perform a series of time-steps until the next plastic event, or equilibrium.
 
void flowSteps (size_t n, double v_frame)
 Make a number of steps with the frame moving at a constant velocity.
 
size_t minimise (double tol=1e-5, size_t niter_tol=10, size_t max_iter=1e9, bool time_activity=false, bool max_iter_is_error=true)
 Minimise energy: run timeStep() until a mechanical equilibrium has been reached.
 
size_t quasistaticActivityFirst () const
 Increment with the first plastic event.
 
size_t quasistaticActivityLast () const
 Increment with the last plastic event.
 
size_t minimise_truncate (array_type::tensor< ptrdiff_t, rank > i_n, size_t A_truncate=0, size_t S_truncate=0, double tol=1e-5, size_t niter_tol=10, size_t max_iter=1e9, bool time_activity=true, bool max_iter_is_error=true)
 Minimise energy: run timeStep() until a mechanical equilibrium has been reached.
 
double maxUniformDisplacement (int direction)
 Find maximum particle displacement for which the system is linear and uniform.
 
double eventDrivenStep (double eps, bool kick, int direction=1)
 Make event driven step.
 
void trigger (size_t p, double eps, int direction=1)
 Trigger a specific particle.
 
void advanceToFixedForce (double f_frame, bool allow_plastic=false)
 Change the position of the particles and of the loading frame such that the mean of f_frame() is equal to a target value, and mechanical equilibrium is maintained.
 

Protected Member Functions

void initSystem (double m, double eta, double k_frame, double mu, double dt, detail::Smooth< Generator > *potential, Generator *chunk, detail::Laplace1d *interactions=nullptr, void *external=nullptr)
 Initialise the system.
 
void computeForce ()
 Compute residual force.
 
void computeForcePotential ()
 Compute force due to the potential energy.
 
void computeForceInteractions ()
 Compute force due to interactions between particles.
 
void computeForceFrame ()
 Compute force due to the loading frame.
 
void computeForceDamping ()
 Compute force due to damping.
 
void updated_inc ()
 Update forces that depend on time.
 
void updated_u ()
 Update forces that depend on slip.
 
void updated_v ()
 Update forces that depend on velocity.
 
double advanceUniformly (double du, bool input_is_frame=true)
 Advance the system uniformly.
 

Protected Attributes

Generator m_gen
 Pointer to chunk of yield 'positions' (automatically updated if needed)
 
detail::Smooth< Generatorm_pot
 Class to get the forces from the local potential energy landscape.
 
detail::Laplace1d m_int
 Class to get the forces from particle interaction.
 
size_type m_N
 Number of particles.
 
array_type::tensor< double, rank > m_f
 Resultant force acting on each particle.
 
array_type::tensor< double, rank > m_f_thermal
 Force due to thermal fluctuations.
 
array_type::tensor< double, rank > m_f_potential
 Force associated to potentials acting on each particle.
 
array_type::tensor< double, rank > m_f_interactions
 Force associated to interactions between particles.
 
array_type::tensor< double, rank > m_f_frame
 Force associated to the load frame acting on each particle.
 
array_type::tensor< double, rank > m_f_damping
 Force associated to damping on each particle.
 
array_type::tensor< double, rank > m_u
 Slip ('position') of each particle.
 
array_type::tensor< double, rank > m_v
 Velocity of each particle.
 
array_type::tensor< double, rank > m_a
 Acceleration of each particle.
 
array_type::tensor< double, rank > m_v_n
 Temporary for integration.
 
array_type::tensor< double, rank > m_a_n
 Temporary for integration.
 
ptrdiff_t m_inc
 The increment number.
 
ptrdiff_t m_qs_inc_first
 Increment with the first plastic event.
 
ptrdiff_t m_qs_inc_last
 Increment with the last plastic event.
 
double m_dt
 Time step.
 
double m_eta
 Damping constant (same for all particles).
 
double m_m
 Mass (same for all particles).
 
double m_inv_m
 == 1 / m_m
 
double m_mu
 Curvature of the potentials.
 
double m_k_frame
 Stiffness of the load fame (same for all particles).
 
double m_u_frame
 Position of the load frame.
 
detail::Smooth< Generator > * m_potential
 Class to get the forces from the local potential energy landscape.
 
Generatorm_chunk
 Pointer to chunk of yield 'positions' (automatically updated if needed)
 
detail::Laplace1dm_interactions
 Class to get the forces from particle interaction.
 
void * m_external
 Add an (time dependent) externally defined force to the residual.
 

Detailed Description

Same as System_Cuspy_Laplace() but with a smooth potential.

A potential energy landscape of each particle that is smooth.

Definition at line 383 of file Line1d.h.

Constructor & Destructor Documentation

◆ System_Smooth_Laplace()

FrictionQPotSpringBlock::Line1d::System_Smooth_Laplace::System_Smooth_Laplace ( double m,
double eta,
double mu,
double k_interactions,
double k_frame,
double dt,
const std::array< size_t, 1 > & shape,
uint64_t seed,
const std::string & distribution,
const std::vector< double > & parameters,
double offset = -100.0,
size_t nchunk = 5000 )
inline

Parameters
mMass (same for all particles).
etaDamping constant (same for all particles).
muCurvature of the potentials.
k_interactionsStiffness of the interactions.
k_frameStiffness of the load fame (same for all particles).
dtTime step.
shapeShape of the system.
seedGlobal seed to use (size seeds will be consumed).
distributionType of distribution (see prrng).
parametersParameters of the distribution (see prrng).
offsetGlobal offset to apply to the sequence of yield positions.
nchunkNumber of random numbers to keep in memory.

Definition at line 394 of file Line1d.h.

Member Function Documentation

◆ a()

const auto & FrictionQPotSpringBlock::detail::System< rank, detail::Smooth< Generator > , Generator, detail::Laplace1d , void , void >::a ( ) const
inlineinherited

Acceleration of each particle.

Returns
Array of floats.

Definition at line 1420 of file detail.h.

◆ advanceToFixedForce()

void FrictionQPotSpringBlock::detail::System< rank, detail::Smooth< Generator > , Generator, detail::Laplace1d , void , void >::advanceToFixedForce ( double f_frame,
bool allow_plastic = false )
inlineinherited

Change the position of the particles and of the loading frame such that the mean of f_frame() is equal to a target value, and mechanical equilibrium is maintained.

Warning
Assumes mechanical equilibrium. No assertions are made on this.
Parameters
f_frameTarget value for the mean of f_frame().
allow_plasticAllow plastic events during the advance.

Definition at line 1988 of file detail.h.

◆ advanceUniformly()

double FrictionQPotSpringBlock::detail::System< rank, detail::Smooth< Generator > , Generator, detail::Laplace1d , void , void >::advanceUniformly ( double du,
bool input_is_frame = true )
inlineprotectedinherited

Advance the system uniformly.

  • All particle move by the same amount.
  • The frame moves proportionally such that equilibrium is maintained (the change in f_potential is compensated by the change in f_frame).

Thereby:

\( \Delta f^\mathrm{potential}_i = \mu \Delta u_i \)

\( \Delta f^\mathrm{frame} = k (\Delta u^\mathrm{frame} - \Delta u_i) \)

Setting \( \Delta f^\mathrm{potential}_i = \Delta f^\mathrm{frame} \) gives:

  • Given \( \Delta u_i \) one finds: \( \Delta u^\mathrm{frame} = (k + \mu) / k \Delta u_i \).
  • Given \( \Delta u^\mathrm{frame} \) one finds: \( \Delta u_i = k / (k + \mu) \Delta u^\mathrm{frame} \).
Parameters
duDisplacement.
input_is_frameIf true: du \( = \Delta u^\mathrm{frame} \), if false: du \( = \Delta u_i \),
Returns
du for the particles in input_is_frame == true, otherwise du of the frame.

Definition at line 2027 of file detail.h.

◆ chunk()

const auto & FrictionQPotSpringBlock::detail::System< rank, detail::Smooth< Generator > , Generator, detail::Laplace1d , void , void >::chunk ( ) const
inlineinherited

Chunk of (cumulative sum of) random numbers.

Returns
Reference.

Definition at line 1146 of file detail.h.

◆ computeForce()

void FrictionQPotSpringBlock::detail::System< rank, detail::Smooth< Generator > , Generator, detail::Laplace1d , void , void >::computeForce ( )
inlineprotectedinherited

Compute residual force.

Definition at line 1321 of file detail.h.

◆ computeForceDamping()

void FrictionQPotSpringBlock::detail::System< rank, detail::Smooth< Generator > , Generator, detail::Laplace1d , void , void >::computeForceDamping ( )
inlineprotectedinherited

Compute force due to damping.

Definition at line 1361 of file detail.h.

◆ computeForceFrame()

void FrictionQPotSpringBlock::detail::System< rank, detail::Smooth< Generator > , Generator, detail::Laplace1d , void , void >::computeForceFrame ( )
inlineprotectedinherited

Compute force due to the loading frame.

Definition at line 1353 of file detail.h.

◆ computeForceInteractions()

void FrictionQPotSpringBlock::detail::System< rank, detail::Smooth< Generator > , Generator, detail::Laplace1d , void , void >::computeForceInteractions ( )
inlineprotectedinherited

Compute force due to interactions between particles.

Definition at line 1343 of file detail.h.

◆ computeForcePotential()

void FrictionQPotSpringBlock::detail::System< rank, detail::Smooth< Generator > , Generator, detail::Laplace1d , void , void >::computeForcePotential ( )
inlineprotectedinherited

Compute force due to the potential energy.

Definition at line 1335 of file detail.h.

◆ dt()

auto FrictionQPotSpringBlock::detail::System< rank, detail::Smooth< Generator > , Generator, detail::Laplace1d , void , void >::dt ( ) const
inlineinherited

The time step (parameter).

Returns
Float.

Definition at line 1173 of file detail.h.

◆ eta()

auto FrictionQPotSpringBlock::detail::System< rank, detail::Smooth< Generator > , Generator, detail::Laplace1d , void , void >::eta ( ) const
inlineinherited

The damping coefficient (parameter).

Returns
Float.

Definition at line 1191 of file detail.h.

◆ eventDrivenStep()

double FrictionQPotSpringBlock::detail::System< rank, detail::Smooth< Generator > , Generator, detail::Laplace1d , void , void >::eventDrivenStep ( double eps,
bool kick,
int direction = 1 )
inlineinherited

Make event driven step.

  • kick = false: Increment the position of the load-frame and that of the particles to a new mechanical equilibrium just before yielding (if direction = 1, the new position for particle p closest to yielding to the right is x[p] = y[p] - eps / 2). This assumes incrementing the load-frame infinitely slowly such that, because there is no yielding, the equilibrium configuration for a new position of the load frame is known.
  • kick = true : Advance the system uniformly (the particles and the frame are moved proportionally) such that the particle closest to yielding is brought just past yielding (if direction = 1, the new position for particle p closest to yielding right is x[p] = y[p] + eps / 2).
Parameters
epsMargin to keep to the position to the closest yield position.
kickIf false, the increment is elastic (no minimisation has to be applied after). If true, the increment leads to a state out of mechanical equilibrium.
directionIf +1: move right. If -1 move left.
Returns
Position increment of the frame.

Definition at line 1933 of file detail.h.

◆ external()

const auto & FrictionQPotSpringBlock::detail::System< rank, detail::Smooth< Generator > , Generator, detail::Laplace1d , void , void >::external ( ) const
inlineinherited

Class that generates and external force that is add to the residual force.

Returns
Reference.

Definition at line 1218 of file detail.h.

◆ f()

const auto & FrictionQPotSpringBlock::detail::System< rank, detail::Smooth< Generator > , Generator, detail::Laplace1d , void , void >::f ( ) const
inlineinherited

Resultant force acting on each particle.

Returns
Array of floats.

Definition at line 1429 of file detail.h.

◆ f_damping()

const auto & FrictionQPotSpringBlock::detail::System< rank, detail::Smooth< Generator > , Generator, detail::Laplace1d , void , void >::f_damping ( ) const
inlineinherited

Force associated to damping on each particle.

Returns
Array of floats.

Definition at line 1465 of file detail.h.

◆ f_frame()

const auto & FrictionQPotSpringBlock::detail::System< rank, detail::Smooth< Generator > , Generator, detail::Laplace1d , void , void >::f_frame ( ) const
inlineinherited

Force associated to the load frame acting on each particle.

Returns
Array of floats.

Definition at line 1447 of file detail.h.

◆ f_interactions()

const auto & FrictionQPotSpringBlock::detail::System< rank, detail::Smooth< Generator > , Generator, detail::Laplace1d , void , void >::f_interactions ( ) const
inlineinherited

Force associated to interactions between particles.

Returns
Array of floats.

Definition at line 1456 of file detail.h.

◆ f_potential()

const auto & FrictionQPotSpringBlock::detail::System< rank, detail::Smooth< Generator > , Generator, detail::Laplace1d , void , void >::f_potential ( ) const
inlineinherited

Force associated to potentials acting on each particle.

Returns
Array of floats.

Definition at line 1438 of file detail.h.

◆ flowSteps()

void FrictionQPotSpringBlock::detail::System< rank, detail::Smooth< Generator > , Generator, detail::Laplace1d , void , void >::flowSteps ( size_t n,
double v_frame )
inlineinherited

Make a number of steps with the frame moving at a constant velocity.

Make a number of steps with the following protocol.

  1. Add a step \( v_\text{frame} \Delta t \) to the frame.
  2. Make a timeStep().
Parameters
nNumber of steps to make.
v_frameVelocity of the frame.

Definition at line 1637 of file detail.h.

◆ inc()

auto FrictionQPotSpringBlock::detail::System< rank, detail::Smooth< Generator > , Generator, detail::Laplace1d , void , void >::inc ( ) const
inlineinherited

The increment number.

Returns
Signed integer.

Definition at line 1486 of file detail.h.

◆ initSystem()

void FrictionQPotSpringBlock::detail::System< rank, detail::Smooth< Generator > , Generator, detail::Laplace1d , void , void >::initSystem ( double m,
double eta,
double k_frame,
double mu,
double dt,
detail::Smooth< Generator > * potential,
Generator * chunk,
detail::Laplace1d * interactions = nullptr,
void * external = nullptr )
inlineprotectedinherited

Initialise the system.

Parameters
mMass (same for all particles).
etaDamping constant (same for all particles).
k_frameStiffness of the load fame (same for all particles).
muCurvature of the potentials.
dtTime step.
potentialClass to get the forces from the local potential energy landscape.
chunkPointer to chunk of yield 'positions' (automatically updated if needed)
interactionsClass to get the forces from particle interaction.
externalAdd an (time dependent) externally defined force to the residual.

Definition at line 1096 of file detail.h.

◆ k_frame()

auto FrictionQPotSpringBlock::detail::System< rank, detail::Smooth< Generator > , Generator, detail::Laplace1d , void , void >::k_frame ( ) const
inlineinherited

The stiffness of the loading frame (parameter).

Returns
Float.

Definition at line 1209 of file detail.h.

◆ m()

auto FrictionQPotSpringBlock::detail::System< rank, detail::Smooth< Generator > , Generator, detail::Laplace1d , void , void >::m ( ) const
inlineinherited

The mass of each particle (parameter).

Returns
Float.

Definition at line 1200 of file detail.h.

◆ maxUniformDisplacement()

double FrictionQPotSpringBlock::detail::System< rank, detail::Smooth< Generator > , Generator, detail::Laplace1d , void , void >::maxUniformDisplacement ( int direction)
inlineinherited

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.

Definition at line 1901 of file detail.h.

◆ minimise()

size_t FrictionQPotSpringBlock::detail::System< rank, detail::Smooth< Generator > , Generator, detail::Laplace1d , void , void >::minimise ( double tol = 1e-5,
size_t niter_tol = 10,
size_t max_iter = 1e9,
bool time_activity = false,
bool max_iter_is_error = true )
inlineinherited

Minimise energy: run timeStep() until a mechanical equilibrium has been reached.

Parameters
tolRelative force tolerance for equilibrium. See residual() for definition.
niter_tolEnforce the residual check for niter_tol consecutive increments.
max_iterMaximum number of time-steps. Throws std::runtime_error otherwise.
time_activityIf true plastic activity is timed. After this function you can find:
max_iter_is_errorIf true an error is thrown when the maximum number of time-steps is reached. If false the function simply returns max_iter.
Returns
  • 0: if stopped when the residual is reached (and number of steps < max_iter).
  • max_iter: if no residual was reached, and max_iter_is_error = false.

Definition at line 1676 of file detail.h.

◆ minimise_truncate()

size_t FrictionQPotSpringBlock::detail::System< rank, detail::Smooth< Generator > , Generator, detail::Laplace1d , void , void >::minimise_truncate ( array_type::tensor< ptrdiff_t, rank > i_n,
size_t A_truncate = 0,
size_t S_truncate = 0,
double tol = 1e-5,
size_t niter_tol = 10,
size_t max_iter = 1e9,
bool time_activity = true,
bool max_iter_is_error = true )
inlineinherited

Minimise energy: run timeStep() until a mechanical equilibrium has been reached.

Parameters
tolRelative force tolerance for equilibrium. See residual() for definition.
niter_tolEnforce the residual check for niter_tol consecutive increments.
max_iterMaximum number of time-steps. Throws std::runtime_error otherwise.
time_activityIf true plastic activity is timed. After this function you can find:
max_iter_is_errorIf true an error is thrown when the maximum number of time-steps is reached. If false the function simply returns max_iter.
Returns
  • 0: if stopped when the residual is reached (and number of steps < max_iter).
  • max_iter: if no residual was reached, and max_iter_is_error = false.
Parameters
A_truncateTruncate if A_truncate blocks have yielded at least once (return > 0). Only considered if A_truncate > 0.
S_truncateTruncate if the number of times blocks yielded is equal to S_truncate (return > 0). Only considered if S_truncate > 0.
i_nReference potential index of the first integration point.

Definition at line 1833 of file detail.h.

◆ mu()

auto FrictionQPotSpringBlock::detail::System< rank, detail::Smooth< Generator > , Generator, detail::Laplace1d , void , void >::mu ( ) const
inlineinherited

The curvature of each well (parameter).

Returns
Float.

Definition at line 1182 of file detail.h.

◆ quasistaticActivityFirst()

size_t FrictionQPotSpringBlock::detail::System< rank, detail::Smooth< Generator > , Generator, detail::Laplace1d , void , void >::quasistaticActivityFirst ( ) const
inlineinherited

Increment with the first plastic event.

This value is only relevant if time_activity = true was used in the last call of minimise().

Returns
Increment.

Definition at line 1802 of file detail.h.

◆ quasistaticActivityLast()

size_t FrictionQPotSpringBlock::detail::System< rank, detail::Smooth< Generator > , Generator, detail::Laplace1d , void , void >::quasistaticActivityLast ( ) const
inlineinherited

Increment with the last plastic event.

This value is only relevant if time_activity = true was used in the last call of minimise().

Returns
Increment.

Definition at line 1815 of file detail.h.

◆ quench()

void FrictionQPotSpringBlock::detail::System< rank, detail::Smooth< Generator > , Generator, detail::Laplace1d , void , void >::quench ( )
inlineinherited

Set velocities and accelerations to zero.

Call this function after an energy minimisation (taken care of in minimise()).

Definition at line 1527 of file detail.h.

◆ refresh()

void FrictionQPotSpringBlock::detail::System< rank, detail::Smooth< Generator > , Generator, detail::Laplace1d , void , void >::refresh ( )
inlineinherited

Recompute all forces.

There is normally no reason to call this.

Definition at line 1310 of file detail.h.

◆ residual()

double FrictionQPotSpringBlock::detail::System< rank, detail::Smooth< Generator > , Generator, detail::Laplace1d , void , void >::residual ( ) const
inlineinherited

Residual.

Tthe ratio between the norm of f() and f_frame().

Returns
Float.

Definition at line 1512 of file detail.h.

◆ set_a()

void FrictionQPotSpringBlock::detail::System< rank, detail::Smooth< Generator > , Generator, detail::Laplace1d , void , void >::set_a ( const array_type::tensor< double, rank > & arg)
inlineinherited

Set the acceleration of each particle (the second time derivative of the slip).

Parameters
argThe particles' accelerations.

Definition at line 1301 of file detail.h.

◆ set_inc()

void FrictionQPotSpringBlock::detail::System< rank, detail::Smooth< Generator > , Generator, detail::Laplace1d , void , void >::set_inc ( ptrdiff_t arg)
inlineinherited

Set increment number.

Parameters
argSinged integer.

Definition at line 1241 of file detail.h.

◆ set_t()

void FrictionQPotSpringBlock::detail::System< rank, detail::Smooth< Generator > , Generator, detail::Laplace1d , void , void >::set_t ( double arg)
inlineinherited

Set time.

Internally only an increment number is stored. This function simply converts the time to an increment number.

Parameters
argFloat.

Definition at line 1231 of file detail.h.

◆ set_u()

void FrictionQPotSpringBlock::detail::System< rank, detail::Smooth< Generator > , Generator, detail::Laplace1d , void , void >::set_u ( const array_type::tensor< double, rank > & arg)
inlineinherited

Set the slip ('position') of each particle.

This updates the appropriate forces.

Parameters
argThe particles' slips.

Definition at line 1276 of file detail.h.

◆ set_u_frame()

void FrictionQPotSpringBlock::detail::System< rank, detail::Smooth< Generator > , Generator, detail::Laplace1d , void , void >::set_u_frame ( double arg)
inlineinherited

Set position of the load frame.

Parameters
argFloat

Definition at line 1253 of file detail.h.

◆ set_v()

void FrictionQPotSpringBlock::detail::System< rank, detail::Smooth< Generator > , Generator, detail::Laplace1d , void , void >::set_v ( const array_type::tensor< double, rank > & arg)
inlineinherited

Set the velocity of each particle (the first time derivative of the slip).

This updates the appropriate forces.

Parameters
argThe particles' velocities.

Definition at line 1290 of file detail.h.

◆ shape()

const auto & FrictionQPotSpringBlock::detail::System< rank, detail::Smooth< Generator > , Generator, detail::Laplace1d , void , void >::shape ( ) const
inlineinherited

Shape of the system.

Returns
Array of unsigned integers.

Definition at line 1164 of file detail.h.

◆ size()

auto FrictionQPotSpringBlock::detail::System< rank, detail::Smooth< Generator > , Generator, detail::Laplace1d , void , void >::size ( ) const
inlineinherited

Number of particles.

Returns
Unsigned int

Definition at line 1155 of file detail.h.

◆ t()

auto FrictionQPotSpringBlock::detail::System< rank, detail::Smooth< Generator > , Generator, detail::Laplace1d , void , void >::t ( ) const
inlineinherited

The time.

Note that the class uses the increment number internally.

Returns
Float.

Definition at line 1477 of file detail.h.

◆ temperature()

double FrictionQPotSpringBlock::detail::System< rank, detail::Smooth< Generator > , Generator, detail::Laplace1d , void , void >::temperature ( ) const
inlineinherited

The instantaneous temperature.

The following definition is used: \( T \equiv m / 2 \sum\limits_{i = 1}^N v_i^2 / N \) such that temperature is defined in units of Boltzmann's constant.

Returns
Float.

Definition at line 1500 of file detail.h.

◆ timeStep()

void FrictionQPotSpringBlock::detail::System< rank, detail::Smooth< Generator > , Generator, detail::Laplace1d , void , void >::timeStep ( )
inlineinherited

Effectuate one time step using the velocity Verlet algorithm.

Updates the slip, velocity acceleration, and all forces of each particle.

Definition at line 1539 of file detail.h.

◆ timeSteps()

void FrictionQPotSpringBlock::detail::System< rank, detail::Smooth< Generator > , Generator, detail::Laplace1d , void , void >::timeSteps ( size_t n)
inlineinherited

Make a number of time steps, see timeStep().

Parameters
nNumber of steps to make.

Definition at line 1577 of file detail.h.

◆ timeStepsUntilEvent()

size_t FrictionQPotSpringBlock::detail::System< rank, detail::Smooth< Generator > , Generator, detail::Laplace1d , void , void >::timeStepsUntilEvent ( double tol = 1e-5,
size_t niter_tol = 10,
size_t max_iter = 1e9 )
inlineinherited

Perform a series of time-steps until the next plastic event, or equilibrium.

Parameters
tolRelative force tolerance for equilibrium. See residual() for definition.
niter_tolEnforce the residual check for niter_tol consecutive increments.
max_iterMaximum number of iterations. Throws std::runtime_error otherwise.
Returns
  • Number of steps.
  • 0 if there was no plastic activity and the residual was reached.

Definition at line 1595 of file detail.h.

◆ trigger()

void FrictionQPotSpringBlock::detail::System< rank, detail::Smooth< Generator > , Generator, detail::Laplace1d , void , void >::trigger ( size_t p,
double eps,
int direction = 1 )
inlineinherited

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.

Definition at line 1972 of file detail.h.

◆ u()

const auto & FrictionQPotSpringBlock::detail::System< rank, detail::Smooth< Generator > , Generator, detail::Laplace1d , void , void >::u ( ) const
inlineinherited

Slip ('position') of each particle.

Returns
Array of floats.

Definition at line 1402 of file detail.h.

◆ u_frame()

double FrictionQPotSpringBlock::detail::System< rank, detail::Smooth< Generator > , Generator, detail::Laplace1d , void , void >::u_frame ( ) const
inlineinherited

Position of the load frame.

Returns
Float

Definition at line 1264 of file detail.h.

◆ updated_inc()

void FrictionQPotSpringBlock::detail::System< rank, detail::Smooth< Generator > , Generator, detail::Laplace1d , void , void >::updated_inc ( )
inlineprotectedinherited

Update forces that depend on time.

Definition at line 1369 of file detail.h.

◆ updated_u()

void FrictionQPotSpringBlock::detail::System< rank, detail::Smooth< Generator > , Generator, detail::Laplace1d , void , void >::updated_u ( )
inlineprotectedinherited

Update forces that depend on slip.

Definition at line 1380 of file detail.h.

◆ updated_v()

void FrictionQPotSpringBlock::detail::System< rank, detail::Smooth< Generator > , Generator, detail::Laplace1d , void , void >::updated_v ( )
inlineprotectedinherited

Update forces that depend on velocity.

Definition at line 1391 of file detail.h.

◆ v()

const auto & FrictionQPotSpringBlock::detail::System< rank, detail::Smooth< Generator > , Generator, detail::Laplace1d , void , void >::v ( ) const
inlineinherited

Velocity of each particle.

Returns
Array of floats.

Definition at line 1411 of file detail.h.

Member Data Documentation

◆ m_a

array_type::tensor<double, rank> FrictionQPotSpringBlock::detail::System< rank, detail::Smooth< Generator > , Generator, detail::Laplace1d , void , void >::m_a
protectedinherited

Acceleration of each particle.

Definition at line 1064 of file detail.h.

◆ m_a_n

array_type::tensor<double, rank> FrictionQPotSpringBlock::detail::System< rank, detail::Smooth< Generator > , Generator, detail::Laplace1d , void , void >::m_a_n
protectedinherited

Temporary for integration.

Definition at line 1066 of file detail.h.

◆ m_chunk

Generator* FrictionQPotSpringBlock::detail::System< rank, detail::Smooth< Generator > , Generator, detail::Laplace1d , void , void >::m_chunk
protectedinherited

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

Definition at line 1078 of file detail.h.

◆ m_dt

double FrictionQPotSpringBlock::detail::System< rank, detail::Smooth< Generator > , Generator, detail::Laplace1d , void , void >::m_dt
protectedinherited

Time step.

Definition at line 1070 of file detail.h.

◆ m_eta

double FrictionQPotSpringBlock::detail::System< rank, detail::Smooth< Generator > , Generator, detail::Laplace1d , void , void >::m_eta
protectedinherited

Damping constant (same for all particles).

Definition at line 1071 of file detail.h.

◆ m_external

void * FrictionQPotSpringBlock::detail::System< rank, detail::Smooth< Generator > , Generator, detail::Laplace1d , void , void >::m_external
protectedinherited

Add an (time dependent) externally defined force to the residual.

Definition at line 1080 of file detail.h.

◆ m_f

array_type::tensor<double, rank> FrictionQPotSpringBlock::detail::System< rank, detail::Smooth< Generator > , Generator, detail::Laplace1d , void , void >::m_f
protectedinherited

Resultant force acting on each particle.

Definition at line 1056 of file detail.h.

◆ m_f_damping

array_type::tensor<double, rank> FrictionQPotSpringBlock::detail::System< rank, detail::Smooth< Generator > , Generator, detail::Laplace1d , void , void >::m_f_damping
protectedinherited

Force associated to damping on each particle.

Definition at line 1061 of file detail.h.

◆ m_f_frame

array_type::tensor<double, rank> FrictionQPotSpringBlock::detail::System< rank, detail::Smooth< Generator > , Generator, detail::Laplace1d , void , void >::m_f_frame
protectedinherited

Force associated to the load frame acting on each particle.

Definition at line 1060 of file detail.h.

◆ m_f_interactions

array_type::tensor<double, rank> FrictionQPotSpringBlock::detail::System< rank, detail::Smooth< Generator > , Generator, detail::Laplace1d , void , void >::m_f_interactions
protectedinherited

Force associated to interactions between particles.

Returns
Array of floats.

Definition at line 1059 of file detail.h.

◆ m_f_potential

array_type::tensor<double, rank> FrictionQPotSpringBlock::detail::System< rank, detail::Smooth< Generator > , Generator, detail::Laplace1d , void , void >::m_f_potential
protectedinherited

Force associated to potentials acting on each particle.

Definition at line 1058 of file detail.h.

◆ m_f_thermal

array_type::tensor<double, rank> FrictionQPotSpringBlock::detail::System< rank, detail::Smooth< Generator > , Generator, detail::Laplace1d , void , void >::m_f_thermal
protectedinherited

Force due to thermal fluctuations.

Definition at line 1057 of file detail.h.

◆ m_gen

Generator FrictionQPotSpringBlock::Line1d::System_Smooth_Laplace::m_gen
protected

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

Definition at line 386 of file Line1d.h.

◆ m_inc

ptrdiff_t FrictionQPotSpringBlock::detail::System< rank, detail::Smooth< Generator > , Generator, detail::Laplace1d , void , void >::m_inc
protectedinherited

The increment number.

Definition at line 1067 of file detail.h.

◆ m_int

detail::Laplace1d FrictionQPotSpringBlock::Line1d::System_Smooth_Laplace::m_int
protected

Class to get the forces from particle interaction.

Definition at line 388 of file Line1d.h.

◆ m_interactions

detail::Laplace1d * FrictionQPotSpringBlock::detail::System< rank, detail::Smooth< Generator > , Generator, detail::Laplace1d , void , void >::m_interactions
protectedinherited

Class to get the forces from particle interaction.

Definition at line 1079 of file detail.h.

◆ m_inv_m

double FrictionQPotSpringBlock::detail::System< rank, detail::Smooth< Generator > , Generator, detail::Laplace1d , void , void >::m_inv_m
protectedinherited

== 1 / m_m

Definition at line 1073 of file detail.h.

◆ m_k_frame

double FrictionQPotSpringBlock::detail::System< rank, detail::Smooth< Generator > , Generator, detail::Laplace1d , void , void >::m_k_frame
protectedinherited

Stiffness of the load fame (same for all particles).

Definition at line 1075 of file detail.h.

◆ m_m

double FrictionQPotSpringBlock::detail::System< rank, detail::Smooth< Generator > , Generator, detail::Laplace1d , void , void >::m_m
protectedinherited

Mass (same for all particles).

Definition at line 1072 of file detail.h.

◆ m_mu

double FrictionQPotSpringBlock::detail::System< rank, detail::Smooth< Generator > , Generator, detail::Laplace1d , void , void >::m_mu
protectedinherited

Curvature of the potentials.

Definition at line 1074 of file detail.h.

◆ m_N

Number of particles.

Definition at line 1055 of file detail.h.

◆ m_pot

detail::Smooth<Generator> FrictionQPotSpringBlock::Line1d::System_Smooth_Laplace::m_pot
protected

Class to get the forces from the local potential energy landscape.

Definition at line 387 of file Line1d.h.

◆ m_potential

detail::Smooth< Generator > * FrictionQPotSpringBlock::detail::System< rank, detail::Smooth< Generator > , Generator, detail::Laplace1d , void , void >::m_potential
protectedinherited

Class to get the forces from the local potential energy landscape.

Definition at line 1077 of file detail.h.

◆ m_qs_inc_first

ptrdiff_t FrictionQPotSpringBlock::detail::System< rank, detail::Smooth< Generator > , Generator, detail::Laplace1d , void , void >::m_qs_inc_first
protectedinherited

Increment with the first plastic event.

Definition at line 1068 of file detail.h.

◆ m_qs_inc_last

ptrdiff_t FrictionQPotSpringBlock::detail::System< rank, detail::Smooth< Generator > , Generator, detail::Laplace1d , void , void >::m_qs_inc_last
protectedinherited

Increment with the last plastic event.

Definition at line 1069 of file detail.h.

◆ m_u

array_type::tensor<double, rank> FrictionQPotSpringBlock::detail::System< rank, detail::Smooth< Generator > , Generator, detail::Laplace1d , void , void >::m_u
protectedinherited

Slip ('position') of each particle.

Definition at line 1062 of file detail.h.

◆ m_u_frame

double FrictionQPotSpringBlock::detail::System< rank, detail::Smooth< Generator > , Generator, detail::Laplace1d , void , void >::m_u_frame
protectedinherited

Position of the load frame.

Definition at line 1076 of file detail.h.

◆ m_v

array_type::tensor<double, rank> FrictionQPotSpringBlock::detail::System< rank, detail::Smooth< Generator > , Generator, detail::Laplace1d , void , void >::m_v
protectedinherited

Velocity of each particle.

Definition at line 1063 of file detail.h.

◆ m_v_n

array_type::tensor<double, rank> FrictionQPotSpringBlock::detail::System< rank, detail::Smooth< Generator > , Generator, detail::Laplace1d , void , void >::m_v_n
protectedinherited

Temporary for integration.

Definition at line 1065 of file detail.h.


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