|
SERiF v0.0.1a
Stellar Evolution and Rotation in Four Dimensions
|
Own a linear conversion from radial displacement lengths to Cartesian surface displacements. More...
#include <surface_embedding.hpp>
Public Types | |
| using | Workspace = EmptyDeformationWorkspace |
| using | InputSpace = spaces::ShapeParameters |
| using | OutputSpace = spaces::SurfaceDisplacement |
Public Member Functions | |
| std::size_t | input_size () const noexcept |
| Nodal coordinates are independent lengths; harmonic coordinates retain their physical normalization. | |
| std::size_t | output_size () const noexcept |
| Surface vectors interleave the three Cartesian components at each node. | |
| std::size_t | surface_node_count () const noexcept |
| Expose the ordered surface-node count for independent metric and backend calculations. | |
| bool | has_nodal_parameters () const noexcept |
| An empty harmonic basis represents the identity between parameters and nodal radial lengths. | |
| std::span< const std::array< double, 3 > > | radial_directions () const noexcept |
| Reference directions determine radial motion and remain immutable when coefficients change. | |
| std::span< const double > | reference_radii () const noexcept |
| Reference radii retain physical lengths independently of the logical radius used by volume extensions. | |
| std::span< const std::array< double, 3 > > | reference_positions () const noexcept |
| Preserve the exact ordered reference points so boundary metrics can reject an unrelated trace. | |
| std::span< const SphericalHarmonicMode > | modes () const noexcept |
| Harmonic coordinates use increasing degree, then increasing signed azimuthal order. | |
| std::span< const double > | nodal_basis () const noexcept |
| Return the physical row-major harmonic basis; nodal parameterizations have an implicit identity basis. | |
| DeformationStatus | apply (std::span< const double > parameters, std::span< double > surface_displacement, Workspace={}) const |
| Apply radial motion without allocation. Input and output storage must not overlap; rejected output must be discarded. | |
| DeformationStatus | apply_transpose (std::span< const double > surface_force, std::span< double > parameter_force, Workspace={}) const |
| Transfer Cartesian surface forces to shape coordinates while preserving virtual work, without allocation or metric weighting. | |
Static Public Attributes | |
| static constexpr bool | is_linear = true |
Private Member Functions | |
| SurfaceEmbedding ()=default | |
| Factories validate all reference geometry before publishing an embedding. | |
Private Attributes | |
| std::vector< std::array< double, 3 > > | radial_directions_ |
| std::vector< double > | reference_radii_ |
| std::vector< std::array< double, 3 > > | reference_positions_ |
| std::vector< SphericalHarmonicMode > | modes_ |
| std::vector< double > | nodal_basis_ |
Friends | |
| std::expected< SurfaceEmbedding, DeformationFailure > | build_surface_embedding (const NodalRadialSurface &model, std::span< const std::array< double, 3 > > positions) |
| Compile fixed radial directions from ordered physical reference positions without retaining backend objects. | |
| std::expected< SurfaceEmbedding, DeformationFailure > | build_surface_embedding (const SphericalHarmonicSurface &model, std::span< const std::array< double, 3 > > positions) |
| Sample physically normalized real harmonics and reject unresolved modes without renormalizing or dropping coordinates. | |
Own a linear conversion from radial displacement lengths to Cartesian surface displacements.
|
privatedefault |
Factories validate all reference geometry before publishing an embedding.
|
nodiscard |
Apply radial motion without allocation. Input and output storage must not overlap; rejected output must be discarded.
|
nodiscard |
Transfer Cartesian surface forces to shape coordinates while preserving virtual work, without allocation or metric weighting.
|
nodiscardnoexcept |
An empty harmonic basis represents the identity between parameters and nodal radial lengths.
|
nodiscardnoexcept |
Nodal coordinates are independent lengths; harmonic coordinates retain their physical normalization.
|
nodiscardnoexcept |
Harmonic coordinates use increasing degree, then increasing signed azimuthal order.
|
nodiscardnoexcept |
Return the physical row-major harmonic basis; nodal parameterizations have an implicit identity basis.
|
nodiscardnoexcept |
Surface vectors interleave the three Cartesian components at each node.
|
nodiscardnoexcept |
Reference directions determine radial motion and remain immutable when coefficients change.
|
nodiscardnoexcept |
Preserve the exact ordered reference points so boundary metrics can reject an unrelated trace.
|
nodiscardnoexcept |
Reference radii retain physical lengths independently of the logical radius used by volume extensions.
|
nodiscardnoexcept |
Expose the ordered surface-node count for independent metric and backend calculations.
|
friend |
Compile fixed radial directions from ordered physical reference positions without retaining backend objects.
|
friend |
Sample physically normalized real harmonics and reject unresolved modes without renormalizing or dropping coordinates.
|
staticconstexpr |
|
private |
|
private |
|
private |
|
private |
|
private |