context.hpp mfem/linalg/densemat.hpp mfem/linalg/vector.hpp src/include/serif/backend/mfem/mapping/data.hpp src/include/serif/backend/mfem/mapping/domain_mapper.hpp src/include/serif/backend/mfem/mapping/evaluator.hpp src/include/serif/backend/mfem/mapping/transformations.hpp src/include/serif/backend/mfem/mapping/volume_cache.hpp serif::mapping::VolumeQuadratureContext serif::mapping::FaceQuadratureContext serif::mapping::MappingPointContext serif::mapping::VolumeMappingContext serif::mapping::FaceMappingContext serif serif::mapping File containing the mapping context structures for volume and face mappings. Emily M. Boudreaux TodoLike a lot of the parts of the mapping module written before I started factoring mfem stuff into backend modules, a good amount of this might be movable to some mfem backend All of these different "context" structures are built to contain sufficient information that the caller which gets one of these back can evaluate the mapping and its derivatives properly at some point. #pragmaonce #include"mfem/linalg/densemat.hpp" #include"mfem/linalg/vector.hpp" namespaceserif::mapping{ structVolumeQuadratureContext{ mfem::DenseMatrixJ_element_to_physical_inverse; doublemapping_determinate; doublephysical_integration_weight; }; structFaceQuadratureContext{ mfem::Vectornormal; doubleds; doublev_dot_n_scale; }; structMappingPointContext{ mfem::Vectorreference_position; mfem::Vectordisplaced_position; mfem::Vectorphysical_position; mfem::DenseMatrixdisplacement_jacobian; mfem::DenseMatrixmapping_jacobian; mfem::DenseMatrixinverse_mapping_jacobian; doublemapping_determinate{0.0}; boolcompactified{false}; }; structVolumeMappingContext{ MappingPointContextmapping; VolumeQuadratureContextquadrature; }; structFaceMappingContext{ MappingPointContextmapping; FaceQuadratureContextquadrature; mfem::Vectorreference_normal; doublereference_surface_weight{0.0}; doublephysical_surface_weight{0.0}; }; }