PolyFEM
Loading...
Searching...
No Matches
AssemblerUtils.hpp
Go to the documentation of this file.
1#pragma once
2
7
8namespace polyfem::assembler
9{
10
12 {
13 public:
14 static std::string other_assembler_name(const std::string &formulation);
15
16 static std::shared_ptr<Assembler> make_assembler(const std::string &formulation);
17 static std::shared_ptr<MixedAssembler> make_mixed_assembler(const std::string &formulation);
18
19 enum class BasisType
20 {
23 SPLINE,
24 POLY
25 };
26
27 AssemblerUtils() = delete;
28
32 static void merge_mixed_matrices(
33 const int n_bases, const int n_pressure_bases, const int problem_dim, const bool add_average,
34 const StiffnessMatrix &velocity_stiffness, const StiffnessMatrix &mixed_stiffness, const StiffnessMatrix &pressure_stiffness,
35 StiffnessMatrix &stiffness);
36
38 static int quadrature_order(const std::string &assembler, const int basis_degree, const BasisType &b_type, const int dim);
39 };
40} // namespace polyfem::assembler
static std::shared_ptr< MixedAssembler > make_mixed_assembler(const std::string &formulation)
static std::string other_assembler_name(const std::string &formulation)
static int quadrature_order(const std::string &assembler, const int basis_degree, const BasisType &b_type, const int dim)
utility for retrieving the needed quadrature order to precisely integrate the given form on the given...
static void merge_mixed_matrices(const int n_bases, const int n_pressure_bases, const int problem_dim, const bool add_average, const StiffnessMatrix &velocity_stiffness, const StiffnessMatrix &mixed_stiffness, const StiffnessMatrix &pressure_stiffness, StiffnessMatrix &stiffness)
utility to merge 3 blocks of mixed matrices, A=velocity_stiffness, B=mixed_stiffness,...
static std::shared_ptr< Assembler > make_assembler(const std::string &formulation)
Used for test only.
Eigen::SparseMatrix< double, Eigen::ColMajor > StiffnessMatrix
Definition Types.hpp:22