.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 \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 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\&.