fol.responses#
Sensitivity analysis and response evaluation provided by FoLax.
This module contains response objects that can be evaluated on top of a finite element (FE) state and a corresponding control field. A response typically represents a scalar objective or constraint functional of the form
where d denotes the control field, u denotes the FE solution (DOFs),
and the integrals are evaluated numerically using Gauss quadrature.
In addition to evaluating the scalar response value, FoLax responses support sensitivity analysis with respect to:
State variables (DOFs), via automatic differentiation.
Control variables, via automatic differentiation.
Shape variables (nodal coordinates), via automatic differentiation.
Adjoint-based gradients for large-scale problems where direct differentiation through the solver is expensive.
Finite element response class#
Notes#
Element-wise response evaluation is performed using the FE element available in the associated
fol.loss_functions.fe_loss.FiniteElementLossinstance. The response integrand is evaluated at Gauss points and summed over all elements.Adjoint sensitivities are computed by building the adjoint right-hand side from the response derivative with respect to the state, and by using the transpose of the FE Jacobian provided by the loss function.
Finite-difference utilities are provided for verification of both control and shape sensitivities. Forward difference (FWD) and central difference (CD) are supported.
The response formula is provided as a string and compiled into a JAX-jitted function during initialization. The formula is evaluated at Gauss points using the interpolated control value and interpolated DOF values.