FrictionQPotSpringBlock v0.22.7
|
Short range interaction based on a quartic potential. More...
#include <FrictionQPotSpringBlock/detail.h>
Public Member Functions | |
QuarticGradient1d (double k2, double k4, size_type N) | |
template<class T > | |
void | force (const T &u, T &f) |
Update forces based on current slips. | |
Protected Attributes | |
size_type | m_N |
Number of particles. | |
double | m_k2 |
Stiffness of the interactions. | |
double | m_k4 |
Stiffness of the interactions. | |
double | m_k4_4 |
== 0.25 * m_k4 | |
Short range interaction based on a quartic potential.
The idea is to have a potential
\( E(r) = \frac{1}{2} k_2 (\varepsilon(r))^2 + \frac{1}{12} k_4 (\varepsilon(r))^4 \)
with
\( \varepsilon(r) = \frac{\partial u}{\partial r} \)
such that
\( \sigma(r) = \frac{\partial E}{\partial \varepsilon} = k_2 \varepsilon(r) + \frac{k_4}{3} \varepsilon(r)^3 \)
such that
\( f(r) = \frac{\partial \sigma}{\partial r} = \frac{\partial \varepsilon}{\partial r}(k_2 + k_4 \varepsilon(r)^2) \)
which is discretised as
\( f_\mathrm{inter}^{(i)} = \left( u_{i + 1} + u_{i - 1} - 2 u_i \right) \left( k_2 + k_4 / 4 (u_{i + 1} - u_{i - 1})^2 \right)\)
where the gradient term is approximated by central difference (which leads to \( 1/4 \) factor).
Please note that \( k_4 \) does not have the same units as \( k_2 \).
|
inline |
|
inline |
|
protected |
|
protected |
|
protected |
|
protected |