White box / Physical formulations / Beams and discrete entities

Springs and concentrated masses

Physical formulation · assumptions, essential equations, full derivation, algorithm, code and verification references.

Browse another sheet Physical formulations / Beams and discrete entities
Physical formulationsBeams and discrete entitiesSheet 2 / 2
Physical formulationBOUNDED SDOF ACCEPTANCE · experimental outside it

A spring adds a symmetric stiffness block; a nodal mass adds translational or explicitly coupled spatial inertia.

01 Model and scope

A two-node spring penalizes relative displacement, producing equal-and-opposite nodal forces and a symmetric 2 × 2 block. A concentrated mass contributes inertia; an offset centre of mass introduces translation–rotation coupling through the skew matrix of the offset vector.

Route assumptions and calculation checks

  1. A two-node spring exerts equal and opposite forces; a ground spring assembles only the attached-node block.
  2. Offset mass couples translation and rotation through S(r).
  3. The external correlation is a narrow translational SDOF route; coupled offsets need separate evidence.

02 Essential equations and symbols

Kab=[K−K−KK]\mathbf K_{ab}=\begin{bmatrix}\mathbf K&-\mathbf K\\-\mathbf K&\mathbf K\end{bmatrix}M(r)=[mI3−mS(r)mS(r)Ic+mS(r)TS(r)]\mathbf M(\mathbf r)=\begin{bmatrix}m\mathbf I_3&-m\mathbf S(\mathbf r)\\m\mathbf S(\mathbf r)&\mathbf I_c+m\mathbf S(\mathbf r)^T\mathbf S(\mathbf r)\end{bmatrix}ω1=km,f1=12πkm\omega_1=\sqrt{\frac{k}{m}},\quad f_1=\frac{1}{2\pi}\sqrt{\frac{k}{m}}

Definitions and conventions

KK
Spring stiffness in its declared direction or directions.
mm
Concentrated mass.
S(r)
Skew matrix representing cross products with offset r.
f1f_{1}
Analytical undamped SDOF frequency for k and m.
ABmrRelative motion creates equal-opposite spring forcesSpring: Δq = qa − qbCentred mass: mI₃ on translationsOffset mass: translation–rotation coupling
Discrete spring energy and eccentric inertiaA centred point mass adds translation inertia only. A centre-of-mass offset activates rotations and adds symmetric translation–rotation coupling to the 6 × 6 spatial inertia.
4 detailed steps

03 Step by step derivation

Follow the assumptions, equations and discrete operations in order. The full explanation stays visible.

1 · A spring is a relative-displacement energy

A generalized spring connects node a to node b, or node a to ground. Its local stiffness K acts on selected translational or rotational DOFs. For two nodes, equal and opposite end forces arise because the spring stores energy in their relative displacement. A rigid common translation lies in the matrix nullspace.

Δq=qa−qb\Delta\mathbf q=\mathbf q_a-\mathbf q_bUs=12ΔqTKΔqU_s=\tfrac12\Delta\mathbf q^T\mathbf K\Delta\mathbf qKab=[K−K−KK],fa=−fb\mathbf K_{ab}=\begin{bmatrix}\mathbf K&-\mathbf K\\-\mathbf K&\mathbf K\end{bmatrix},\qquad \mathbf f_a=-\mathbf f_b

For a spring to ground, only the attached-node K block is assembled. The declared stiffness must be finite, symmetric, and positive semidefinite.

2 · Local orientation and assembly

A spring stiffness may be scalar, diagonal, or a symmetric semidefinite matrix over selected DOFs. When it is specified in a local frame, the orientation must be orthonormal and right-handed. The matrix is mapped into global nodal axes before it is assembled into the model stiffness.

Kg=RKlRT\mathbf K_g=\mathbf R\mathbf K_l\mathbf R^TRTR=I,det⁡R=+1\mathbf R^T\mathbf R=\mathbf I,\qquad \det\mathbf R=+1Πs=Us−ΔqTfext\Pi_s=U_s-\Delta\mathbf q^T\mathbf f_{ext}

A negative stiffness is rejected in the declared V1 scope. Coupled generalized springs and multi-node combinations require evidence for their specific DOFs and analysis.

3 · Translational and eccentric concentrated mass

A centred translational point mass contributes mI₃ and activates only translations. If the centre of mass is offset by r or a rotational inertia is supplied, translation and rotation become coupled through the skew matrix S(r), defined by S(r)x=r×x. The 6×6 spatial mass follows directly from kinetic energy.

S(r)x=r×x\mathbf S(\mathbf r)\mathbf x=\mathbf r\times\mathbf xM=[mI3−mS(r)mS(r)Ic+mS(r)TS(r)]\mathbf M=\begin{bmatrix}m\mathbf I_3&-m\mathbf S(\mathbf r)\\m\mathbf S(\mathbf r)&\mathbf I_c+m\mathbf S(\mathbf r)^T\mathbf S(\mathbf r)\end{bmatrix}T=12m∥v−S(r)ω∥2+12ωTIcωT=\tfrac12m\lVert\mathbf v-\mathbf S(\mathbf r)\boldsymbol\omega\rVert^2+\tfrac12\boldsymbol\omega^T\mathbf I_c\boldsymbol\omega

The inertia tensor must be symmetric and positive semidefinite and satisfy the principal-moment triangle inequality. Invalid data are rejected before assembly.

4 · A reproducible oscillator and evidence boundary

For a single translational DOF, a grounded spring and point mass reduce to the scalar equation m ẍ+kx=0. With k=1000 N/m and m=10 kg the analytical frequency is 1.5915494309 Hz; the cited Code_Aster comparison also gives static deflection 0.025 m for F=25 N. This correlation covers that translational SDOF case, not eccentric mass or arbitrary multi-DOF coupling.

mx¨+kx=0m\ddot x+kx=0ω1=km,f1=12πkm\omega_1=\sqrt{\frac{k}{m}},\qquad f_1=\frac{1}{2\pi}\sqrt{\frac{k}{m}}xstatic=Fk=251000=0.025 mx_{static}=\frac{F}{k}=\frac{25}{1000}=0.025\text{ m}

Offset masses, local orientation, coupled inertia, and more complex mixed models remain outside that narrow external correlation and need their own checks.

04 Algorithm and implementation

Source excerpt · v0.2.11

The spring matrix is validated for symmetry and positive semidefiniteness before orientation mapping. An eccentric point mass creates a symmetric 6 × 6 spatial inertia with translation–rotation coupling.

Code
if not np.allclose(local, local.T, rtol=0.0, atol=1.0e-12):
    raise InputValidationError("Spring stiffness matrix must be finite and symmetric.")
if np.min(np.linalg.eigvalsh(local)) < -1.0e-12:
    raise InputValidationError("Spring stiffness matrix must be positive semidefinite.")
return _symmetrize(basis @ local @ basis.T)

matrix[:3, :3] = self.mass * np.eye(3)
matrix[:3, 3:] = -self.mass * skew
matrix[3:, :3] = self.mass * skew
matrix[3:, 3:] = inertia + self.mass * skew.T @ skew
return _symmetrize(matrix)
Read the complete versioned implementation →

05 Verification and limitations

BOUNDED SDOF ACCEPTANCE · experimental outside it

The oscillator has analytic f₁=1.5915494309 Hz for k=1000 N/m and m=10 kg.

Each reference supports its own model, observable and analysis route. Read the original contract and limitations before transferring a conclusion.

06 Sources and related sheets

Continue the reasoning

Back to sheet contents ↑