SERiF v0.0.1a
Stellar Evolution and Rotation in Four Dimensions
Loading...
Searching...
No Matches
actions.hpp File Reference
Include dependency graph for actions.hpp:
This graph shows which files directly or indirectly include this file:

Namespaces

namespace  serif
 
namespace  serif::geometry
 
namespace  serif::geometry::deformation
 

Concepts

concept  serif::geometry::deformation::DeformationDimensions
 Matching lengths never replace the physical meanings of the input and output spaces.
 
concept  serif::geometry::deformation::LinearDeformationMap
 Fixed maps provide just forward and transpose actions with caller-owned scratch.
 
concept  serif::geometry::deformation::DifferentiableDeformationMap
 Nonlinear maps explicitly provide every term needed by a Newton force pullback.
 
concept  serif::geometry::deformation::DeformationMap
 

Functions

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.
 

Variables

template<typename Map>
constexpr bool serif::geometry::deformation::is_linear_deformation
 Linearity is an explicit property of the mathematics, independent of its action interface.