|
| template<DeformationMap Map> |
| DeformationWorkspace< Map > | serif::geometry::deformation::make_deformation_workspace (const Map &map) |
| | Allocate action scratch explicitly, once per independent caller.
|
| |
| template<DeformationMap Map> |
| DeformationStatus | serif::geometry::deformation::build_displacement (const Map &map, std::span< const double > parameters, std::span< double > displacement, DeformationWorkspace< Map > &workspace) |
| | Evaluate physical displacement with caller-owned output and scratch. All action outputs must be disjoint from their inputs. Workspace storage is reserved for the map and must not supply public input or output spans.
|
| |
| template<DeformationMap Map> |
| DeformationStatus | serif::geometry::deformation::apply_jacobian (const Map &map, std::span< const double > parameters, std::span< const double > direction, std::span< double > displacement_direction, DeformationWorkspace< Map > &workspace) |
| | Linear maps reuse their primal action; nonlinear maps supply their exact tangent.
|
| |
| template<DeformationMap Map> |
| DeformationStatus | serif::geometry::deformation::apply_jacobian_transpose (const Map &map, std::span< const double > parameters, std::span< const double > displacement_dual, std::span< double > parameter_dual, DeformationWorkspace< Map > &workspace) |
| | Transfer virtual work from the displacement field to its independent shape coefficients.
|
| |
| template<DeformationMap Map> |
| DeformationStatus | serif::geometry::deformation::apply_pullback_derivative (const Map &map, std::span< const double > parameters, std::span< const double > direction, std::span< const double > displacement_dual, std::span< double > parameter_dual, DeformationWorkspace< Map > &workspace) |
| | Differentiate the transpose at fixed dual; zero is justified only for a declared linear map.
|
| |