volume_cache.hpp mfem/linalg/densemat.hpp serif/backend/mfem/mapping/context.hpp vector src/include/serif/backend/mfem/operators/element_data.hpp src/lib/serif/backend/mfem/mapping/volume_cache.cpp serif::mapping::VolumeMappingCache serif serif::mapping #pragmaonce #include"mfem/linalg/densemat.hpp" #include"serif/backend/mfem/mapping/context.hpp" #include<vector> namespaceserif::mapping{ classVolumeMappingCache{ public: voidset_size(intpoint_count,intdimension); voidstore(intpoint,VolumeMappingContext&context); voidload(intpoint,VolumeMappingContext&context)const; voidload_inverse_jacobian(intpoint,mfem::DenseMatrix&inverse)const; [[nodiscard]]intget_point_count()constnoexcept; [[nodiscard]]intget_dimension()constnoexcept; private: voidvalidate_point(intpoint)const; [[nodiscard]]constdouble*get_point_data(intpoint)const; std::vector<double>m_data; intm_point_count{0}; intm_dimension{0}; intm_point_stride{0}; }; }