.. _program_listing_file_src_pcms_field_data_mfem.hpp: Program Listing for File mfem.hpp ================================= |exhale_lsh| :ref:`Return to documentation for file ` (``src/pcms/field/data/mfem.hpp``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp #ifndef PCMS_FIELD_DATA_MFEM_HPP #define PCMS_FIELD_DATA_MFEM_HPP #include "pcms/field/field_data.h" #include "pcms/field/value_view.hpp" #include "pcms/utility/arrays.h" #include namespace pcms { // FieldData backend for an MFEM order-1 H1 (vertex) scalar field. class MFEMVertexFieldData : public FieldData , public DOFAccess { public: MFEMVertexFieldData(mfem::ParFiniteElementSpace& pfes, mfem::ParGridFunction& gf, ValueBasis basis = {}); FieldValueType GetValueType() const override; const ValueBasis& GetValueBasis() const override; const DOFAccess* GetDOFAccess() const noexcept override { return this; } DOFAccess* GetDOFAccess() noexcept override { return this; } Rank2View GetOwnedValues() const override; void SetOwnedValues(Rank2View data) override; private: Rank2View GatherHost() const; void ScatterHost(Rank2View data); mfem::ParFiniteElementSpace& pfes_; mfem::ParGridFunction& gf_; ValueBasis basis_; mutable Kokkos::View host_data_; mutable Kokkos::View device_data_; }; } // namespace pcms #endif // PCMS_FIELD_DATA_MFEM_HPP