SERiF v0.0.1a
Stellar Evolution and Rotation in Four Dimensions
Loading...
Searching...
No Matches
serif::geometry::deformation::DifferentiableDeformationMap Concept Reference

Nonlinear maps explicitly provide every term needed by a Newton force pullback. More...

#include <actions.hpp>

Concept definition

template<typename Map>
concept serif::geometry::deformation::DifferentiableDeformationMap = DeformationDimensions<Map> && requires(const Map& map, std::span<const double> state, std::span<const double> direction, std::span<const double> dual, std::span<double> output, DeformationWorkspace<Map>& workspace)
{
{ 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>;
}
Matching lengths never replace the physical meanings of the input and output spaces.
Definition actions.hpp:23
Nonlinear maps explicitly provide every term needed by a Newton force pullback.
Definition actions.hpp:46
typename Map::Workspace DeformationWorkspace
Definition workspace.hpp:11

Detailed Description

Nonlinear maps explicitly provide every term needed by a Newton force pullback.