Hookean Spring
Hookean Spring is a constitutive model for simulating linear elastic springs connecting two particles in 3D space.
#12 Hookean Spring
For a spring element connecting two particles at positions \(\mathbf{x}_0\) and \(\mathbf{x}_1\), we define:
Distance Vector:
Current Length:
Strain:
where \(L_0\) is the rest length of the spring.
Strain Energy Density
The strain energy density of the Hookean spring is given by:
Substituting the expressions for \(L\):
where:
-
\(\kappa\) is the axial material modulus (Pa for a physical circular-section rod), not a length-independent spring constant in N/m
-
\(L_0\) is the rest length of the spring
-
\(\mathbf{d}\) is the current displacement vector between the two particles
For a uniform positive cross-section radius \(r\), the CUDA constitution multiplies this density by rest volume \(V_0=\pi r^2L_0\). The physical edge energy is therefore
The corresponding linear spring constant is \(k_{\mathrm{edge}}=\kappa\pi r^2/L_0\)
(N/m). The incremental-potential contribution additionally carries \(dt^2\); that
solver weight is not part of the physical energy. Use a positive radius for this
rod model. These weights are consumed in hookean_spring_1d.cu; omitting them
would give incorrect units and length/radius scaling.
Attributes
On edges:
kappa: \(\kappa\) in the density above