.TH "serif::geometry::deformation::RadialExtension" 3 "Version v0.0.1a" "SERiF" \" -*- nroff -*- .ad l .nh .SH NAME serif::geometry::deformation::RadialExtension \- Extend one interleaved surface vector into the MFEM component-block volume layout\&. Stellar ownership wins at shared nodes\&. Both actions use the same scalar interpolation, so their pairing is Euclidean virtual work without an additional surface-area weight\&. .SH SYNOPSIS .br .PP .PP \fR#include \fP .SS "Public Types" .in +1c .ti -1c .RI "using \fBWorkspace\fP = \fBEmptyDeformationWorkspace\fP" .br .ti -1c .RI "using \fBInputSpace\fP = \fBspaces::SurfaceDisplacement\fP" .br .ti -1c .RI "using \fBOutputSpace\fP = \fBspaces::VolumeDisplacement\fP" .br .in -1c .SS "Public Member Functions" .in +1c .ti -1c .RI "const std::shared_ptr< const \fBRadialInterpolation\fP > & \fBinterpolation\fP () const noexcept" .br .RI "Expose shared interpolation read-only for diagnostics and independent geometry checks\&. " .ti -1c .RI "std::span< const double > \fBradial_weights\fP () const noexcept" .br .RI "Expose the ownership-selected radial response without permitting mutation\&. " .ti -1c .RI "std::size_t \fBinput_size\fP () const noexcept" .br .RI "Return the interleaved Cartesian surface-vector size\&. " .ti -1c .RI "std::size_t \fBoutput_size\fP () const noexcept" .br .RI "Return the Cartesian component-block volume-vector size\&. " .ti -1c .RI "\fBDeformationStatus\fP \fBapply\fP (std::span< const double > surface_displacement, std::span< double > volume_displacement, \fBWorkspace\fP={}) const" .br .RI "Apply the fused radial extension without allocating action scratch\&. Input and output must not overlap\&. Discard output if an action reports failure\&. " .ti -1c .RI "\fBDeformationStatus\fP \fBapply_transpose\fP (std::span< const double > volume_force, std::span< double > surface_force, \fBWorkspace\fP={}) const" .br .RI "Transfer volume forces to surface forces using exactly the forward ownership\&. " .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 "\fBRadialExtension\fP (std::shared_ptr< const \fBRadialInterpolation\fP > \fBinterpolation\fP, std::vector< double > \fBradial_weights\fP)" .br .RI "Store already validated data without performing hidden numerical preparation\&. " .in -1c .SS "Private Attributes" .in +1c .ti -1c .RI "std::shared_ptr< const \fBRadialInterpolation\fP > \fBm_interpolation\fP" .br .ti -1c .RI "std::vector< double > \fBm_radial_weights\fP" .br .in -1c .SS "Friends" .in +1c .ti -1c .RI "std::expected< \fBRadialExtension\fP, \fBDeformationFailure\fP > \fBmake_radial_extension\fP (std::shared_ptr< const \fBRadialInterpolation\fP > \fBinterpolation\fP, \fBPowerLawRadialExtension\fP interior={}, \fBFixedInfinityRadialExtension\fP vacuum={})" .br .RI "Compile regional weights while sharing the immutable surface interpolation\&. The interpolation factory has already established every reference-table invariant\&. " .in -1c .SH "Detailed Description" .PP Extend one interleaved surface vector into the MFEM component-block volume layout\&. Stellar ownership wins at shared nodes\&. Both actions use the same scalar interpolation, so their pairing is Euclidean virtual work without an additional surface-area weight\&. .SH "Member Typedef Documentation" .PP .SS "using \fBserif::geometry::deformation::RadialExtension::InputSpace\fP = \fBspaces::SurfaceDisplacement\fP" .SS "using \fBserif::geometry::deformation::RadialExtension::OutputSpace\fP = \fBspaces::VolumeDisplacement\fP" .SS "using \fBserif::geometry::deformation::RadialExtension::Workspace\fP = \fBEmptyDeformationWorkspace\fP" .SH "Constructor & Destructor Documentation" .PP .SS "serif::geometry::deformation::RadialExtension::RadialExtension (std::shared_ptr< const \fBRadialInterpolation\fP > interpolation, std::vector< double > radial_weights)\fR [private]\fP" .PP Store already validated data without performing hidden numerical preparation\&. .SH "Member Function Documentation" .PP .SS "\fBDeformationStatus\fP serif::geometry::deformation::RadialExtension::apply (std::span< const double > surface_displacement, std::span< double > volume_displacement, \fBWorkspace\fP = \fR{}\fP) const\fR [nodiscard]\fP" .PP Apply the fused radial extension without allocating action scratch\&. Input and output must not overlap\&. Discard output if an action reports failure\&. .SS "\fBDeformationStatus\fP serif::geometry::deformation::RadialExtension::apply_transpose (std::span< const double > volume_force, std::span< double > surface_force, \fBWorkspace\fP = \fR{}\fP) const\fR [nodiscard]\fP" .PP Transfer volume forces to surface forces using exactly the forward ownership\&. .SS "std::size_t serif::geometry::deformation::RadialExtension::input_size () const\fR [inline]\fP, \fR [nodiscard]\fP, \fR [noexcept]\fP" .PP Return the interleaved Cartesian surface-vector size\&. .SS "const std::shared_ptr< const \fBRadialInterpolation\fP > & serif::geometry::deformation::RadialExtension::interpolation () const\fR [inline]\fP, \fR [nodiscard]\fP, \fR [noexcept]\fP" .PP Expose shared interpolation read-only for diagnostics and independent geometry checks\&. .SS "std::size_t serif::geometry::deformation::RadialExtension::output_size () const\fR [inline]\fP, \fR [nodiscard]\fP, \fR [noexcept]\fP" .PP Return the Cartesian component-block volume-vector size\&. .SS "std::span< const double > serif::geometry::deformation::RadialExtension::radial_weights () const\fR [inline]\fP, \fR [nodiscard]\fP, \fR [noexcept]\fP" .PP Expose the ownership-selected radial response without permitting mutation\&. .SH "Friends And Related Symbol Documentation" .PP .SS "std::expected< \fBRadialExtension\fP, \fBDeformationFailure\fP > make_radial_extension (std::shared_ptr< const \fBRadialInterpolation\fP > interpolation, \fBPowerLawRadialExtension\fP interior = \fR{}\fP, \fBFixedInfinityRadialExtension\fP vacuum = \fR{}\fP)\fR [friend]\fP" .PP Compile regional weights while sharing the immutable surface interpolation\&. The interpolation factory has already established every reference-table invariant\&. .SH "Member Data Documentation" .PP .SS "bool serif::geometry::deformation::RadialExtension::is_linear = true\fR [static]\fP, \fR [constexpr]\fP" .SS "std::shared_ptr serif::geometry::deformation::RadialExtension::m_interpolation\fR [private]\fP" .SS "std::vector serif::geometry::deformation::RadialExtension::m_radial_weights\fR [private]\fP" .SH "Author" .PP Generated automatically by Doxygen for SERiF from the source code\&.