InternalVirtualWork.h file
Façade for the internal virtual work nonlinear form in hyperelastic formulations.
Provides the unified API for constructing the internal virtual work contributions to a nonlinear solid mechanics problem:
auto ivw = Solid::InternalVirtualWork(law, displacement); // Residual contribution (linear form): LinearForm F(fes); F += ivw.Residual(v); // Tangent contribution (bilinear form): BilinearForm K(trialFES, testFES); K += ivw.Tangent(u, v); // Both at once for problem definition: Problem newton(u, v); newton = ivw(u, v) - Integral(f, v) + DirichletBC(u, g).on(bc);
All three forms share the same constitutive law, displacement state, quadrature order, and input hook — ensuring consistency of the Newton linearization.
Namespaces
- namespace Rodin
- The Rodin library for finite element methods and shape optimization.
- namespace Rodin::Solid
- Hyperelastic solid mechanics module for large-deformation problems.
Classes
-
template<class Law, class State>class Rodin::Solid::InternalVirtualWork
- Façade for the internal virtual work nonlinear form.