Files
MeanField_SERiF/docs/man/man3/serif_mapping_DomainMapper.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

234 lines
16 KiB
Groff

.TH "serif::mapping::DomainMapper" 3 "Version v0.0.1a" "SERiF" \" -*- nroff -*-
.ad l
.nh
.SH NAME
serif::mapping::DomainMapper
.SH SYNOPSIS
.br
.PP
.PP
\fR#include <domain_mapper\&.hpp>\fP
.SS "Public Member Functions"
.in +1c
.ti -1c
.RI "\fBDomainMapper\fP (const \fBDomainMapper\fP &)=delete"
.br
.ti -1c
.RI "\fBDomainMapper\fP & \fBoperator=\fP (const \fBDomainMapper\fP &)=delete"
.br
.ti -1c
.RI "\fB~DomainMapper\fP ()=default"
.br
.ti -1c
.RI "\fBDomainMapper\fP (\fBDomainMapper\fP &&)=default"
.br
.ti -1c
.RI "\fBDomainMapper\fP & \fBoperator=\fP (\fBDomainMapper\fP &&)=default"
.br
.ti -1c
.RI "\fBDomainMapper\fP (\fButils::user_options::DomainMapperOptions\fP \fBoptions\fP, std::unique_ptr< const \fBcompactification::ExteriorDomainMap\fP > exterior_map)"
.br
.ti -1c
.RI "\fBMappingStatus\fP \fBevaluate_point\fP (const \fBElementMappingData\fP &element_data, mfem::ElementTransformation &transformation, const mfem::IntegrationPoint &ip, \fBDMWorkspace\fP &workspace, \fBMappingPointContext\fP &context) const"
.br
.ti -1c
.RI "\fBMappingStatus\fP \fBevaluate_point\fP (const \fBElementMappingData\fP &element_data, mfem::ElementTransformation &transformation, const mfem::IntegrationPoint &ip, \fBDMWorkspace\fP &workspace, \fBMappingPointContext\fP &context, const \fBDMFixedMeshGeometry\fP &fixed_geometry) const"
.br
.RI "Map a point using checked fixed geometry sampled by the caller\&. "
.ti -1c
.RI "\fBMappingStatus\fP \fBevaluate_volume\fP (const \fBElementMappingData\fP &element_data, mfem::ElementTransformation &transformation, const mfem::IntegrationPoint &ip, \fBDMWorkspace\fP &workspace, \fBVolumeMappingContext\fP &context, const \fBDMReferenceDisplacementSample\fP *displacement_sample=nullptr, const \fBDMFixedMeshGeometry\fP *fixed_geometry=nullptr) const"
.br
.RI "Map a volume point, optionally reusing fixed geometry owned by the reference graph node\&. "
.ti -1c
.RI "\fBMappingStatus\fP \fBevaluate_face\fP (const \fBElementMappingData\fP &element_data, mfem::FaceElementTransformations &transformation, \fBFaceElementSide\fP side, const mfem::IntegrationPoint &ip, \fBDMWorkspace\fP &workspace, \fBFaceMappingContext\fP &context) const"
.br
.ti -1c
.RI "\fBMappingStatus\fP \fBevaluate_point_variation\fP (const \fBElementMappingData\fP &element_data, const \fBElementDisplacementData\fP &direction, mfem::ElementTransformation &transformation, const mfem::IntegrationPoint &ip, const \fBMappingPointContext\fP &context, \fBDMWorkspace\fP &workspace, \fBMappingPointVariation\fP &variation) const"
.br
.ti -1c
.RI "\fBMappingStatus\fP \fBevaluate_point_variation\fP (const \fBElementMappingData\fP &element_data, const \fBElementDisplacementData\fP &direction, mfem::ElementTransformation &transformation, const mfem::IntegrationPoint &ip, const \fBMappingPointContext\fP &context, \fBDMWorkspace\fP &workspace, \fBMappingPointVariation\fP &variation, const mfem::DenseMatrix &inverse_mesh_jacobian) const"
.br
.RI "Differentiate a point map using its already sampled fixed-mesh inverse Jacobian\&. "
.ti -1c
.RI "\fBMappingStatus\fP \fBevaluate_compactification_coordinate\fP (const \fBElementCompactificationData\fP &compactification, mfem::ElementTransformation &transformation, const mfem::IntegrationPoint &ip, \fBDMWorkspace\fP &workspace, \fBCompactificationPointData\fP &point_data, const mfem::DenseMatrix *inverse_mesh_jacobian=nullptr) const"
.br
.RI "Sample the fixed compactification coordinate and its gradient in mesh coordinates\&. "
.ti -1c
.RI "\fBMappingStatus\fP \fBevaluate_volume_direction_variation\fP (const \fBElementMappingData\fP &element_data, const \fBElementDisplacementData\fP &direction, mfem::ElementTransformation &transformation, const mfem::IntegrationPoint &ip, const \fBVolumeMappingContext\fP &context, \fBDMWorkspace\fP &workspace, \fBVolumeMappingVariation\fP &variation, const \fBDMReferenceDisplacementSample\fP &direction_sample, const \fBCompactificationPointData\fP *compactification_sample, const mfem::DenseMatrix &inverse_mesh_jacobian) const"
.br
.RI "Differentiate the physical volume map along one of several directions sharing this point\&. "
.ti -1c
.RI "\fBMappingStatus\fP \fBevaluate_face_variation\fP (const \fBElementMappingData\fP &element_data, const \fBElementDisplacementData\fP &direction, mfem::FaceElementTransformations &transformation, \fBFaceElementSide\fP side, const mfem::IntegrationPoint &ip, const \fBFaceMappingContext\fP &context, \fBDMWorkspace\fP &workspace, \fBFaceMappingVariation\fP &variation) const"
.br
.ti -1c
.RI "bool \fBis_compactified_element\fP (const mfem::ElementTransformation &transformation) const noexcept"
.br
.ti -1c
.RI "int \fBget_dimension\fP () const noexcept"
.br
.ti -1c
.RI "const \fButils::user_options::DomainMapperOptions\fP & \fBoptions\fP () const noexcept"
.br
.RI "Expose the immutable mapping prescription for reproducible reconstruction\&. "
.ti -1c
.RI "const \fBcompactification::ExteriorDomainMap\fP & \fBget_exterior_map\fP () const noexcept"
.br
.in -1c
.SS "Private Member Functions"
.in +1c
.ti -1c
.RI "\fBMappingStatus\fP \fBevaluate_point_impl\fP (const \fBElementMappingData\fP &element_data, mfem::ElementTransformation &transformation, const mfem::IntegrationPoint &ip, \fBDMWorkspace\fP &workspace, \fBMappingPointContext\fP &context, const \fBDMFixedMeshGeometry\fP &geometry, const \fBDMReferenceDisplacementSample\fP *displacement_sample=nullptr) const"
.br
.ti -1c
.RI "void \fBvalidate_element_data\fP (const \fBElementMappingData\fP &element_data) const"
.br
.ti -1c
.RI "void \fBevaluate_displacement_field\fP (const \fBElementDisplacementData\fP &field, mfem::ElementTransformation &transformation, const mfem::IntegrationPoint &ip, \fBDMWorkspace\fP &workspace, mfem::Vector &value, mfem::DenseMatrix &jacobian, const mfem::DenseMatrix *inverse_mesh_jacobian) const"
.br
.ti -1c
.RI "\fBMappingStatus\fP \fBevaluate_point_variation_impl\fP (const \fBElementMappingData\fP &element_data, const \fBElementDisplacementData\fP &direction, mfem::ElementTransformation &transformation, const mfem::IntegrationPoint &ip, const \fBMappingPointContext\fP &context, \fBDMWorkspace\fP &workspace, \fBMappingPointVariation\fP &variation, const mfem::DenseMatrix *inverse_mesh_jacobian, const \fBDMReferenceDisplacementSample\fP *direction_sample=nullptr, const \fBCompactificationPointData\fP *compactification_sample=nullptr) const"
.br
.in -1c
.SS "Static Private Member Functions"
.in +1c
.ti -1c
.RI "static mfem::ElementTransformation & \fBselect_face_element_transformation\fP (const mfem::FaceElementTransformations &transformations, \fBFaceElementSide\fP side)"
.br
.ti -1c
.RI "static const mfem::IntegrationPoint & \fBselect_face_element_integration_point\fP (const mfem::FaceElementTransformations &transformations, \fBFaceElementSide\fP side)"
.br
.in -1c
.SS "Private Attributes"
.in +1c
.ti -1c
.RI "\fButils::user_options::DomainMapperOptions\fP \fBm_options\fP"
.br
.ti -1c
.RI "std::unique_ptr< const \fBcompactification::ExteriorDomainMap\fP > \fBm_exterior_map\fP"
.br
.in -1c
.SH "Constructor & Destructor Documentation"
.PP
.SS "serif::mapping::DomainMapper::DomainMapper (const \fBDomainMapper\fP & )\fR [delete]\fP"
.SS "serif::mapping::DomainMapper::~DomainMapper ()\fR [default]\fP"
.SS "serif::mapping::DomainMapper::DomainMapper (\fBDomainMapper\fP && )\fR [default]\fP"
.SS "serif::mapping::DomainMapper::DomainMapper (\fButils::user_options::DomainMapperOptions\fP options, std::unique_ptr< const \fBcompactification::ExteriorDomainMap\fP > exterior_map)"
.SH "Member Function Documentation"
.PP
.SS "\fBMappingStatus\fP serif::mapping::DomainMapper::evaluate_compactification_coordinate (const \fBElementCompactificationData\fP & compactification, mfem::ElementTransformation & transformation, const mfem::IntegrationPoint & ip, \fBDMWorkspace\fP & workspace, \fBCompactificationPointData\fP & point_data, const mfem::DenseMatrix * inverse_mesh_jacobian = \fRnullptr\fP) const\fR [nodiscard]\fP"
.PP
Sample the fixed compactification coordinate and its gradient in mesh coordinates\&.
.PP
\fBParameters\fP
.RS 4
\fIinverse_mesh_jacobian\fP Optional inverse Jacobian from the same element and point\&.
.RE
.PP
\fBNote\fP
.RS 4
Reuse this sample for several displacement directions at this point\&. Refresh it when the compactification coefficients, element, point or reference mesh change\&.
.RE
.PP
.SS "void serif::mapping::DomainMapper::evaluate_displacement_field (const \fBElementDisplacementData\fP & field, mfem::ElementTransformation & transformation, const mfem::IntegrationPoint & ip, \fBDMWorkspace\fP & workspace, mfem::Vector & value, mfem::DenseMatrix & jacobian, const mfem::DenseMatrix * inverse_mesh_jacobian) const\fR [private]\fP"
.SS "\fBMappingStatus\fP serif::mapping::DomainMapper::evaluate_face (const \fBElementMappingData\fP & element_data, mfem::FaceElementTransformations & transformation, \fBFaceElementSide\fP side, const mfem::IntegrationPoint & ip, \fBDMWorkspace\fP & workspace, \fBFaceMappingContext\fP & context) const\fR [nodiscard]\fP"
.SS "\fBMappingStatus\fP serif::mapping::DomainMapper::evaluate_face_variation (const \fBElementMappingData\fP & element_data, const \fBElementDisplacementData\fP & direction, mfem::FaceElementTransformations & transformation, \fBFaceElementSide\fP side, const mfem::IntegrationPoint & ip, const \fBFaceMappingContext\fP & context, \fBDMWorkspace\fP & workspace, \fBFaceMappingVariation\fP & variation) const\fR [nodiscard]\fP"
.SS "\fBMappingStatus\fP serif::mapping::DomainMapper::evaluate_point (const \fBElementMappingData\fP & element_data, mfem::ElementTransformation & transformation, const mfem::IntegrationPoint & ip, \fBDMWorkspace\fP & workspace, \fBMappingPointContext\fP & context) const\fR [nodiscard]\fP"
.SS "\fBMappingStatus\fP serif::mapping::DomainMapper::evaluate_point (const \fBElementMappingData\fP & element_data, mfem::ElementTransformation & transformation, const mfem::IntegrationPoint & ip, \fBDMWorkspace\fP & workspace, \fBMappingPointContext\fP & context, const \fBDMFixedMeshGeometry\fP & fixed_geometry) const\fR [nodiscard]\fP"
.PP
Map a point using checked fixed geometry sampled by the caller\&.
.PP
\fBNote\fP
.RS 4
Geometry must come from sample_fixed_mesh_geometry for this exact element, point, and mesh revision\&. Dimensions, finite values, positive weight and invertibility are checked; identity and freshness remain the caller's responsibility\&. No sample is retained by the mapper\&.
.RE
.PP
.SS "\fBMappingStatus\fP serif::mapping::DomainMapper::evaluate_point_impl (const \fBElementMappingData\fP & element_data, mfem::ElementTransformation & transformation, const mfem::IntegrationPoint & ip, \fBDMWorkspace\fP & workspace, \fBMappingPointContext\fP & context, const \fBDMFixedMeshGeometry\fP & geometry, const \fBDMReferenceDisplacementSample\fP * displacement_sample = \fRnullptr\fP) const\fR [nodiscard]\fP, \fR [private]\fP"
.SS "\fBMappingStatus\fP serif::mapping::DomainMapper::evaluate_point_variation (const \fBElementMappingData\fP & element_data, const \fBElementDisplacementData\fP & direction, mfem::ElementTransformation & transformation, const mfem::IntegrationPoint & ip, const \fBMappingPointContext\fP & context, \fBDMWorkspace\fP & workspace, \fBMappingPointVariation\fP & variation) const\fR [nodiscard]\fP"
.SS "\fBMappingStatus\fP serif::mapping::DomainMapper::evaluate_point_variation (const \fBElementMappingData\fP & element_data, const \fBElementDisplacementData\fP & direction, mfem::ElementTransformation & transformation, const mfem::IntegrationPoint & ip, const \fBMappingPointContext\fP & context, \fBDMWorkspace\fP & workspace, \fBMappingPointVariation\fP & variation, const mfem::DenseMatrix & inverse_mesh_jacobian) const\fR [nodiscard]\fP"
.PP
Differentiate a point map using its already sampled fixed-mesh inverse Jacobian\&.
.PP
\fBNote\fP
.RS 4
The inverse must come from the checked fixed geometry for this exact element, point and mesh revision; context must describe the same accepted displacement\&. Size and finite values are checked\&. Non-VALUE finite elements retain their original physical-gradient evaluation path\&. Neither the inverse nor any field sample is retained\&.
.RE
.PP
.SS "\fBMappingStatus\fP serif::mapping::DomainMapper::evaluate_point_variation_impl (const \fBElementMappingData\fP & element_data, const \fBElementDisplacementData\fP & direction, mfem::ElementTransformation & transformation, const mfem::IntegrationPoint & ip, const \fBMappingPointContext\fP & context, \fBDMWorkspace\fP & workspace, \fBMappingPointVariation\fP & variation, const mfem::DenseMatrix * inverse_mesh_jacobian, const \fBDMReferenceDisplacementSample\fP * direction_sample = \fRnullptr\fP, const \fBCompactificationPointData\fP * compactification_sample = \fRnullptr\fP) const\fR [nodiscard]\fP, \fR [private]\fP"
.SS "\fBMappingStatus\fP serif::mapping::DomainMapper::evaluate_volume (const \fBElementMappingData\fP & element_data, mfem::ElementTransformation & transformation, const mfem::IntegrationPoint & ip, \fBDMWorkspace\fP & workspace, \fBVolumeMappingContext\fP & context, const \fBDMReferenceDisplacementSample\fP * displacement_sample = \fRnullptr\fP, const \fBDMFixedMeshGeometry\fP * fixed_geometry = \fRnullptr\fP) const\fR [nodiscard]\fP"
.PP
Map a volume point, optionally reusing fixed geometry owned by the reference graph node\&.
.PP
\fBNote\fP
.RS 4
Supplied geometry must belong to this element and point at the current mesh revision\&.
.RE
.PP
.SS "\fBMappingStatus\fP serif::mapping::DomainMapper::evaluate_volume_direction_variation (const \fBElementMappingData\fP & element_data, const \fBElementDisplacementData\fP & direction, mfem::ElementTransformation & transformation, const mfem::IntegrationPoint & ip, const \fBVolumeMappingContext\fP & context, \fBDMWorkspace\fP & workspace, \fBVolumeMappingVariation\fP & variation, const \fBDMReferenceDisplacementSample\fP & direction_sample, const \fBCompactificationPointData\fP * compactification_sample, const mfem::DenseMatrix & inverse_mesh_jacobian) const\fR [nodiscard]\fP"
.PP
Differentiate the physical volume map along one of several directions sharing this point\&.
.PP
\fBParameters\fP
.RS 4
\fIdirection_sample\fP The displacement direction's value and canonical-element gradient at this point\&.
.br
\fIcompactification_sample\fP Must match this point and the frozen coefficients; it is ignored on interior elements\&. Its dimension and finite values are checked before use\&.
.br
\fIinverse_mesh_jacobian\fP context\&.quadrature\&.J_element_to_physical_inverse times context\&.mapping\&.mapping_jacobian, formed once per point by the caller\&.
.RE
.PP
.SS "int serif::mapping::DomainMapper::get_dimension () const\fR [nodiscard]\fP, \fR [noexcept]\fP"
.SS "const \fBcompactification::ExteriorDomainMap\fP & serif::mapping::DomainMapper::get_exterior_map () const\fR [nodiscard]\fP, \fR [noexcept]\fP"
.SS "bool serif::mapping::DomainMapper::is_compactified_element (const mfem::ElementTransformation & transformation) const\fR [nodiscard]\fP, \fR [noexcept]\fP"
.SS "\fBDomainMapper\fP & serif::mapping::DomainMapper::operator= (const \fBDomainMapper\fP & )\fR [delete]\fP"
.SS "\fBDomainMapper\fP & serif::mapping::DomainMapper::operator= (\fBDomainMapper\fP && )\fR [default]\fP"
.SS "const \fButils::user_options::DomainMapperOptions\fP & serif::mapping::DomainMapper::options () const\fR [inline]\fP, \fR [nodiscard]\fP, \fR [noexcept]\fP"
.PP
Expose the immutable mapping prescription for reproducible reconstruction\&.
.SS "const mfem::IntegrationPoint & serif::mapping::DomainMapper::select_face_element_integration_point (const mfem::FaceElementTransformations & transformations, \fBFaceElementSide\fP side)\fR [static]\fP, \fR [nodiscard]\fP, \fR [private]\fP"
.SS "mfem::ElementTransformation & serif::mapping::DomainMapper::select_face_element_transformation (const mfem::FaceElementTransformations & transformations, \fBFaceElementSide\fP side)\fR [static]\fP, \fR [nodiscard]\fP, \fR [private]\fP"
.SS "void serif::mapping::DomainMapper::validate_element_data (const \fBElementMappingData\fP & element_data) const\fR [private]\fP"
.SH "Member Data Documentation"
.PP
.SS "std::unique_ptr<const \fBcompactification::ExteriorDomainMap\fP> serif::mapping::DomainMapper::m_exterior_map\fR [private]\fP"
.SS "\fButils::user_options::DomainMapperOptions\fP serif::mapping::DomainMapper::m_options\fR [private]\fP"
.SH "Author"
.PP
Generated automatically by Doxygen for SERiF from the source code\&.