Files
MeanField_SERiF/docs/man/man3/serif_geometry_deformation_SurfaceEmbedding.3
Emily Boudreaux 6b57738330 docs(docs): built docs
Note for now much of the docs is LLM written. This was done to save time and focus on code development. The docs have been LOOSLEY reviewed. However, the code itself has been either fully written by hand or fully reviewed. Therefore, the docs should at the moment be seen as a loose resource rather than authoratiative (and this is on top of the general ability for docs to drift)
2026-11-09 14:09:44 -05:00

219 lines
9.4 KiB
Groff

.TH "serif::geometry::deformation::SurfaceEmbedding" 3 "Version v0.0.1a" "SERiF" \" -*- nroff -*-
.ad l
.nh
.SH NAME
serif::geometry::deformation::SurfaceEmbedding \- Own a linear conversion from radial displacement lengths to Cartesian surface displacements\&.
.SH SYNOPSIS
.br
.PP
.PP
\fR#include <surface_embedding\&.hpp>\fP
.SS "Public Types"
.in +1c
.ti -1c
.RI "using \fBWorkspace\fP = \fBEmptyDeformationWorkspace\fP"
.br
.ti -1c
.RI "using \fBInputSpace\fP = \fBspaces::ShapeParameters\fP"
.br
.ti -1c
.RI "using \fBOutputSpace\fP = \fBspaces::SurfaceDisplacement\fP"
.br
.in -1c
.SS "Public Member Functions"
.in +1c
.ti -1c
.RI "std::size_t \fBinput_size\fP () const noexcept"
.br
.RI "Nodal coordinates are independent lengths; harmonic coordinates retain their physical normalization\&. "
.ti -1c
.RI "std::size_t \fBoutput_size\fP () const noexcept"
.br
.RI "Surface vectors interleave the three Cartesian components at each node\&. "
.ti -1c
.RI "std::size_t \fBsurface_node_count\fP () const noexcept"
.br
.RI "Expose the ordered surface-node count for independent metric and backend calculations\&. "
.ti -1c
.RI "bool \fBhas_nodal_parameters\fP () const noexcept"
.br
.RI "An empty harmonic basis represents the identity between parameters and nodal radial lengths\&. "
.ti -1c
.RI "std::span< const std::array< double, 3 > > \fBradial_directions\fP () const noexcept"
.br
.RI "Reference directions determine radial motion and remain immutable when coefficients change\&. "
.ti -1c
.RI "std::span< const double > \fBreference_radii\fP () const noexcept"
.br
.RI "Reference radii retain physical lengths independently of the logical radius used by volume extensions\&. "
.ti -1c
.RI "std::span< const std::array< double, 3 > > \fBreference_positions\fP () const noexcept"
.br
.RI "Preserve the exact ordered reference points so boundary metrics can reject an unrelated trace\&. "
.ti -1c
.RI "std::span< const \fBSphericalHarmonicMode\fP > \fBmodes\fP () const noexcept"
.br
.RI "Harmonic coordinates use increasing degree, then increasing signed azimuthal order\&. "
.ti -1c
.RI "std::span< const double > \fBnodal_basis\fP () const noexcept"
.br
.RI "Return the physical row-major harmonic basis; nodal parameterizations have an implicit identity basis\&. "
.ti -1c
.RI "\fBDeformationStatus\fP \fBapply\fP (std::span< const double > parameters, std::span< double > surface_displacement, \fBWorkspace\fP={}) const"
.br
.RI "Apply radial motion without allocation\&. Input and output storage must not overlap; rejected output must be discarded\&. "
.ti -1c
.RI "\fBDeformationStatus\fP \fBapply_transpose\fP (std::span< const double > surface_force, std::span< double > parameter_force, \fBWorkspace\fP={}) const"
.br
.RI "Transfer Cartesian surface forces to shape coordinates while preserving virtual work, without allocation or metric weighting\&. "
.in -1c
.SS "Static Public Attributes"
.in +1c
.ti -1c
.RI "static constexpr bool \fBis_linear\fP = true"
.br
.in -1c
.SS "Private Member Functions"
.in +1c
.ti -1c
.RI "\fBSurfaceEmbedding\fP ()=default"
.br
.RI "Factories validate all reference geometry before publishing an embedding\&. "
.in -1c
.SS "Private Attributes"
.in +1c
.ti -1c
.RI "std::vector< std::array< double, 3 > > \fBradial_directions_\fP"
.br
.ti -1c
.RI "std::vector< double > \fBreference_radii_\fP"
.br
.ti -1c
.RI "std::vector< std::array< double, 3 > > \fBreference_positions_\fP"
.br
.ti -1c
.RI "std::vector< \fBSphericalHarmonicMode\fP > \fBmodes_\fP"
.br
.ti -1c
.RI "std::vector< double > \fBnodal_basis_\fP"
.br
.in -1c
.SS "Friends"
.in +1c
.ti -1c
.RI "std::expected< \fBSurfaceEmbedding\fP, \fBDeformationFailure\fP > \fBbuild_surface_embedding\fP (const \fBNodalRadialSurface\fP &model, std::span< const std::array< double, 3 > > positions)"
.br
.RI "Compile fixed radial directions from ordered physical reference positions without retaining backend objects\&. "
.ti -1c
.RI "std::expected< \fBSurfaceEmbedding\fP, \fBDeformationFailure\fP > \fBbuild_surface_embedding\fP (const \fBSphericalHarmonicSurface\fP &model, std::span< const std::array< double, 3 > > positions)"
.br
.RI "Sample physically normalized real harmonics and reject unresolved modes without renormalizing or dropping coordinates\&. "
.in -1c
.SH "Detailed Description"
.PP
Own a linear conversion from radial displacement lengths to Cartesian surface displacements\&.
.PP
\fBNote\fP
.RS 4
Directions and harmonics remain fixed on the reference surface\&. Finite-element interpolation of the resulting nodal vectors determines the between-node geometry\&.
.RE
.PP
.SH "Member Typedef Documentation"
.PP
.SS "using \fBserif::geometry::deformation::SurfaceEmbedding::InputSpace\fP = \fBspaces::ShapeParameters\fP"
.SS "using \fBserif::geometry::deformation::SurfaceEmbedding::OutputSpace\fP = \fBspaces::SurfaceDisplacement\fP"
.SS "using \fBserif::geometry::deformation::SurfaceEmbedding::Workspace\fP = \fBEmptyDeformationWorkspace\fP"
.SH "Constructor & Destructor Documentation"
.PP
.SS "serif::geometry::deformation::SurfaceEmbedding::SurfaceEmbedding ()\fR [private]\fP, \fR [default]\fP"
.PP
Factories validate all reference geometry before publishing an embedding\&.
.SH "Member Function Documentation"
.PP
.SS "\fBDeformationStatus\fP serif::geometry::deformation::SurfaceEmbedding::apply (std::span< const double > parameters, std::span< double > surface_displacement, \fBWorkspace\fP = \fR{}\fP) const\fR [nodiscard]\fP"
.PP
Apply radial motion without allocation\&. Input and output storage must not overlap; rejected output must be discarded\&.
.SS "\fBDeformationStatus\fP serif::geometry::deformation::SurfaceEmbedding::apply_transpose (std::span< const double > surface_force, std::span< double > parameter_force, \fBWorkspace\fP = \fR{}\fP) const\fR [nodiscard]\fP"
.PP
Transfer Cartesian surface forces to shape coordinates while preserving virtual work, without allocation or metric weighting\&.
.SS "bool serif::geometry::deformation::SurfaceEmbedding::has_nodal_parameters () const\fR [nodiscard]\fP, \fR [noexcept]\fP"
.PP
An empty harmonic basis represents the identity between parameters and nodal radial lengths\&.
.SS "std::size_t serif::geometry::deformation::SurfaceEmbedding::input_size () const\fR [nodiscard]\fP, \fR [noexcept]\fP"
.PP
Nodal coordinates are independent lengths; harmonic coordinates retain their physical normalization\&.
.SS "std::span< const \fBSphericalHarmonicMode\fP > serif::geometry::deformation::SurfaceEmbedding::modes () const\fR [nodiscard]\fP, \fR [noexcept]\fP"
.PP
Harmonic coordinates use increasing degree, then increasing signed azimuthal order\&.
.SS "std::span< const double > serif::geometry::deformation::SurfaceEmbedding::nodal_basis () const\fR [nodiscard]\fP, \fR [noexcept]\fP"
.PP
Return the physical row-major harmonic basis; nodal parameterizations have an implicit identity basis\&.
.SS "std::size_t serif::geometry::deformation::SurfaceEmbedding::output_size () const\fR [nodiscard]\fP, \fR [noexcept]\fP"
.PP
Surface vectors interleave the three Cartesian components at each node\&.
.SS "std::span< const std::array< double, 3 > > serif::geometry::deformation::SurfaceEmbedding::radial_directions () const\fR [nodiscard]\fP, \fR [noexcept]\fP"
.PP
Reference directions determine radial motion and remain immutable when coefficients change\&.
.SS "std::span< const std::array< double, 3 > > serif::geometry::deformation::SurfaceEmbedding::reference_positions () const\fR [nodiscard]\fP, \fR [noexcept]\fP"
.PP
Preserve the exact ordered reference points so boundary metrics can reject an unrelated trace\&.
.SS "std::span< const double > serif::geometry::deformation::SurfaceEmbedding::reference_radii () const\fR [nodiscard]\fP, \fR [noexcept]\fP"
.PP
Reference radii retain physical lengths independently of the logical radius used by volume extensions\&.
.SS "std::size_t serif::geometry::deformation::SurfaceEmbedding::surface_node_count () const\fR [nodiscard]\fP, \fR [noexcept]\fP"
.PP
Expose the ordered surface-node count for independent metric and backend calculations\&.
.SH "Friends And Related Symbol Documentation"
.PP
.SS "std::expected< \fBSurfaceEmbedding\fP, \fBDeformationFailure\fP > build_surface_embedding (const \fBNodalRadialSurface\fP & model, std::span< const std::array< double, 3 > > positions)\fR [friend]\fP"
.PP
Compile fixed radial directions from ordered physical reference positions without retaining backend objects\&.
.SS "std::expected< \fBSurfaceEmbedding\fP, \fBDeformationFailure\fP > build_surface_embedding (const \fBSphericalHarmonicSurface\fP & model, std::span< const std::array< double, 3 > > positions)\fR [friend]\fP"
.PP
Sample physically normalized real harmonics and reject unresolved modes without renormalizing or dropping coordinates\&.
.SH "Member Data Documentation"
.PP
.SS "bool serif::geometry::deformation::SurfaceEmbedding::is_linear = true\fR [static]\fP, \fR [constexpr]\fP"
.SS "std::vector<\fBSphericalHarmonicMode\fP> serif::geometry::deformation::SurfaceEmbedding::modes_\fR [private]\fP"
.SS "std::vector<double> serif::geometry::deformation::SurfaceEmbedding::nodal_basis_\fR [private]\fP"
.SS "std::vector<std::array<double, 3> > serif::geometry::deformation::SurfaceEmbedding::radial_directions_\fR [private]\fP"
.SS "std::vector<std::array<double, 3> > serif::geometry::deformation::SurfaceEmbedding::reference_positions_\fR [private]\fP"
.SS "std::vector<double> serif::geometry::deformation::SurfaceEmbedding::reference_radii_\fR [private]\fP"
.SH "Author"
.PP
Generated automatically by Doxygen for SERiF from the source code\&.