template<class TypeTag>
class Dumux::HyperelasticLocalResidual< TypeTag >
Balance of momentum in the reference configuration,
\[ \varrho_0 \ddot{\mathbf{u}} - \nabla \cdot \mathbf{P} = \mathbf{f}, \]
with the first Piola-Kirchhoff stress \( \mathbf{P} \) and the body force \( \mathbf{f} \). Degrees of freedom with a control volume are tested with its indicator function, all others with their basis function.
The problem provides
- the stress, as firstPiolaKirchhoffStressTensor(F, elemDisc, ipData) or firstPiolaKirchhoffStressTensor(F),
- the body force as source(elemDisc, elemVars, ipData),
- and the boundary terms as boundaryFlux(elemDisc, elemVars, ipData), which enters the residual as \( \int \mathbf{g} \cdot \mathbf{w} \), i.e. \( \mathbf{g} = -\mathbf{P}\mathbf{N} \) for a prescribed traction \( \mathbf{P}\mathbf{N} \).
For dynamics, the problem additionally provides the acceleration and velocity of a local dof, acceleration(elemDisc, elemVars, localDof) and velocity(elemDisc, elemVars, localDof), as functions of its current displacement (for instance from Experimental::NewmarkBeta), and the density solidDensity(elemDisc, ipData). The residual is then assembled as a stationary one. With a velocity, the stress is requested as firstPiolaKirchhoffStressTensor(F, dF/dt, elemDisc, ipData), which allows rate-dependent laws. Degrees of freedom with a control volume use the acceleration of the degree of freedom (lumped mass), all others the interpolated acceleration at the element quadrature points (consistent mass).
|
| template<class SubControlVolume> |
| NumEqVector | storageIntegral (const ElementDiscretization &, const ElementVariables &, const SubControlVolume &, bool) const |
| template<class SubControlVolume> |
| NumEqVector | sourceIntegral (const ElementDiscretization &elemDisc, const ElementVariables &elemVars, const SubControlVolume &scv) const |
| | Body force minus inertia (lumped) over a control volume.
|
| template<class SubControlVolumeFace> |
| NumEqVector | fluxIntegral (const ElementDiscretization &elemDisc, const ElementVariables &elemVars, const SubControlVolumeFace &scvf) const |
| | Stress flux \( -\int \mathbf{P}\mathbf{N} \) over a control volume face.
|
| void | addToElementFluxAndSourceResidual (ElementResidualVector &residual, const Problem &problem, const Element &element, const ElementDiscretization &elemDisc, const ElementVariables &elemVars) const |
| | Galerkin terms \( \int \mathbf{P} : \nabla \mathbf{w} + (\varrho_0 \ddot{\mathbf{u}} - \mathbf{f}) \cdot \mathbf{w} \) of the dofs without control volume.
|