surface_potential.hpp memory span vector mfem/linalg/densemat.hpp mfem/linalg/sparsemat.hpp serif/backend/mfem/discretization/dof_map.hpp serif/backend/mfem/geometry/deformation/inputs.hpp serif/geometry/deformation/reference_surface.hpp serif/geometry/deformation/surface_embedding.hpp serif/equations/surface_potential.hpp src/include/serif/backend/mfem/model/computations/surface_potential.hpp src/lib/serif/backend/mfem/model/surface_potential.cpp serif::model::backend::mfem::SurfacePotentialLinearization serif serif::model serif::model::backend serif::model::backend::mfem #pragmaonce #include<memory> #include<span> #include<vector> #include"mfem/linalg/densemat.hpp" #include"mfem/linalg/sparsemat.hpp" #include"serif/backend/mfem/discretization/dof_map.hpp" #include"serif/backend/mfem/geometry/deformation/inputs.hpp" #include"serif/geometry/deformation/reference_surface.hpp" #include"serif/geometry/deformation/surface_embedding.hpp" #include"serif/equations/surface_potential.hpp" namespaceserif::model::backend::mfem{ structSurfacePotentialLinearization{ std::vector<double>residual; std::shared_ptr<::mfem::SparseMatrix>potential; std::shared_ptr<::mfem::SparseMatrix>shape; std::shared_ptr<::mfem::DenseMatrix>level; std::shared_ptr<::mfem::DenseMatrix>angular_velocity; }; [[nodiscard]]SurfacePotentialLinearizationassemble_surface_potential( constequations::SurfacePotentialBalance&equation, constgeometry::deformation::backend::mfem::SurfaceDiscretization&discretization, constgeometry::deformation::ReferenceSurface&reference, constgeometry::deformation::SurfaceEmbedding&embedding, std::span<constdouble>displacement, constdiscretization::backend::mfem::DofMap&potential_binding, const::mfem::Vector&potential,doublelevel,doubleangular_velocity); }