LehrFEM++ 1.0.0
A simple Finite Element Library for teaching
build_system_matrix.h
1#ifndef THESIS_ASSEMBLE_BUILD_SYSTEM_MATRIX_H
2#define THESIS_ASSEMBLE_BUILD_SYSTEM_MATRIX_H
3
10#include <lf/assemble/coomatrix.h>
11#include <lf/assemble/dofhandler.h>
12#include <lf/mesh/entity.h>
13#include <lf/mesh/mesh.h>
14#include <lf/mesh/utils/mesh_data_set.h>
15#include <lf/quad/quad_rule.h>
16
17#include <Eigen/Dense>
18#include <functional>
19#include <tuple>
20#include <utility>
21
22namespace projects::ipdg_stokes {
23
24namespace assemble {
25
44std::tuple<lf::assemble::COOMatrix<double>, Eigen::VectorXd>
46 const std::shared_ptr<const lf::mesh::Mesh> &mesh,
47 const lf::assemble::DofHandler &dofh,
48 const std::function<Eigen::Vector2d(const Eigen::Vector2d &)> &f,
49 const std::function<Eigen::Vector2d(const lf::mesh::Entity &)>
50 &dirichlet_data,
51 double sigma, const lf::quad::QuadRule &quadrule,
52 bool modified_penalty = false);
53
72std::tuple<lf::assemble::COOMatrix<double>, Eigen::VectorXd, Eigen::VectorXd>
74 const std::shared_ptr<const lf::mesh::Mesh> &mesh,
75 const lf::assemble::DofHandler &dofh,
76 const std::function<Eigen::Vector2d(const Eigen::Vector2d &)> &f,
77 const std::function<Eigen::Vector2d(const lf::mesh::Entity &)>
78 &dirichlet_data,
79 double sigma, const lf::quad::QuadRule &quadrule,
80 bool modified_penalty = false);
81
82} // end namespace assemble
83
84} // end namespace projects::ipdg_stokes
85
86#endif // THESIS_ASSEMBLE_BUILD_SYSTEM_MATRIX_H
A general (interface) class for DOF handling, see Lecture Document Paragraph 2.7.4....
Definition: dofhandler.h:109
Interface class representing a topological entity in a cellular complex
Definition: entity.h:39
Represents a Quadrature Rule over one of the Reference Elements.
Definition: quad_rule.h:58
std::tuple< lf::assemble::COOMatrix< double >, Eigen::VectorXd, Eigen::VectorXd > buildSystemMatrixInOutFlow(const std::shared_ptr< const lf::mesh::Mesh > &mesh, const lf::assemble::DofHandler &dofh, const std::function< Eigen::Vector2d(const Eigen::Vector2d &)> &f, const std::function< Eigen::Vector2d(const lf::mesh::Entity &)> &dirichlet_data, double sigma, const lf::quad::QuadRule &quadrule, bool modified_penalty)
Build the system matrix for the stokes system with in- and out flow boundary conditions.
std::tuple< lf::assemble::COOMatrix< double >, Eigen::VectorXd > buildSystemMatrixNoFlow(const std::shared_ptr< const lf::mesh::Mesh > &mesh, const lf::assemble::DofHandler &dofh, const std::function< Eigen::Vector2d(const Eigen::Vector2d &)> &f, const std::function< Eigen::Vector2d(const lf::mesh::Entity &)> &dirichlet_data, double sigma, const lf::quad::QuadRule &quadrule, bool modified_penalty)
Build the system matrix for the stokes system with no flow boundary conditions.