Nonlinear maps explicitly provide every term needed by a Newton force pullback.
More...
#include <actions.hpp>
template<typename Map>
{
{ map.make_workspace() } -> std::same_as<DeformationWorkspace<Map>>;
{ map.build_displacement(state, output, workspace) } -> std::same_as<DeformationStatus>;
{ map.apply_jacobian(state, direction, output, workspace) } -> std::same_as<DeformationStatus>;
{ map.apply_jacobian_transpose(state, dual, output, workspace) } -> std::same_as<DeformationStatus>;
{ map.apply_pullback_derivative(state, direction, dual, output, workspace) } -> std::same_as<DeformationStatus>;
}
Nonlinear maps explicitly provide every term needed by a Newton force pullback.