|
SERiF v0.0.1a
Stellar Evolution and Rotation in Four Dimensions
|
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. More...
#include <radial_extension.hpp>
Public Types | |
| using | Workspace = EmptyDeformationWorkspace |
| using | InputSpace = spaces::SurfaceDisplacement |
| using | OutputSpace = spaces::VolumeDisplacement |
Public Member Functions | |
| const std::shared_ptr< const RadialInterpolation > & | interpolation () const noexcept |
| Expose shared interpolation read-only for diagnostics and independent geometry checks. | |
| std::span< const double > | radial_weights () const noexcept |
| Expose the ownership-selected radial response without permitting mutation. | |
| std::size_t | input_size () const noexcept |
| Return the interleaved Cartesian surface-vector size. | |
| std::size_t | output_size () const noexcept |
| Return the Cartesian component-block volume-vector size. | |
| DeformationStatus | apply (std::span< const double > surface_displacement, std::span< double > volume_displacement, Workspace={}) const |
| Apply the fused radial extension without allocating action scratch. Input and output must not overlap. Discard output if an action reports failure. | |
| DeformationStatus | apply_transpose (std::span< const double > volume_force, std::span< double > surface_force, Workspace={}) const |
| Transfer volume forces to surface forces using exactly the forward ownership. | |
Static Public Attributes | |
| static constexpr bool | is_linear = true |
Private Member Functions | |
| RadialExtension (std::shared_ptr< const RadialInterpolation > interpolation, std::vector< double > radial_weights) | |
| Store already validated data without performing hidden numerical preparation. | |
Private Attributes | |
| std::shared_ptr< const RadialInterpolation > | m_interpolation |
| std::vector< double > | m_radial_weights |
Friends | |
| std::expected< RadialExtension, DeformationFailure > | make_radial_extension (std::shared_ptr< const RadialInterpolation > interpolation, PowerLawRadialExtension interior={}, FixedInfinityRadialExtension vacuum={}) |
| Compile regional weights while sharing the immutable surface interpolation. The interpolation factory has already established every reference-table invariant. | |
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.
|
private |
Store already validated data without performing hidden numerical preparation.
|
nodiscard |
Apply the fused radial extension without allocating action scratch. Input and output must not overlap. Discard output if an action reports failure.
|
nodiscard |
Transfer volume forces to surface forces using exactly the forward ownership.
|
inlinenodiscardnoexcept |
Return the interleaved Cartesian surface-vector size.
|
inlinenodiscardnoexcept |
Expose shared interpolation read-only for diagnostics and independent geometry checks.
|
inlinenodiscardnoexcept |
Return the Cartesian component-block volume-vector size.
|
inlinenodiscardnoexcept |
Expose the ownership-selected radial response without permitting mutation.
|
friend |
Compile regional weights while sharing the immutable surface interpolation. The interpolation factory has already established every reference-table invariant.
|
staticconstexpr |
|
private |
|
private |