4#include <deal.II/base/point.h>
5#include <deal.II/dofs/dof_handler.h>
6#include <deal.II/dofs/dof_renumbering.h>
7#include <deal.II/dofs/dof_tools.h>
8#include <deal.II/fe/fe_dgq.h>
9#include <deal.II/fe/fe_system.h>
10#include <deal.II/fe/mapping_q1.h>
11#include <deal.II/lac/affine_constraints.h>
21 using namespace dealii;
29 template <
typename Components_,
typename NumberType_,
typename Mesh_>
class Discretization
69 if (i != 0)
throw std::runtime_error(
"Wrong FE index");
84 double min_dist = std::numeric_limits<double>::max();
87 if (dist < min_dist) {
97 std::vector<uint> block_structure{
dof_handler.n_dofs()};
98 if (Components::count_variables() > 0) block_structure.push_back(Components::count_variables());
99 return block_structure;
107 spdlog::get(
"log")->info(
"FV: Number of active cells: {}",
mesh.get_triangulation().n_active_cells());
108 spdlog::get(
"log")->info(
"FV: Number of degrees of freedom: {}",
dof_handler.n_dofs());
121 std::shared_ptr<FESystem<dim>>
fe;
Class to manage the system on which we solve, i.e. fe spaces, grids, etc. This class is a System for ...
Definition discretization.hh:30
auto & get_dof_handler(const uint i=0)
Definition discretization.hh:62
MappingQ1< dim > mapping
Definition discretization.hh:124
std::shared_ptr< FESystem< dim > > fe
Definition discretization.hh:121
Mesh_ Mesh
Definition discretization.hh:36
std::vector< uint > get_block_structure() const
Definition discretization.hh:95
Mesh & mesh
Definition discretization.hh:118
JSONValue json
Definition discretization.hh:119
const auto & get_triangulation() const
Definition discretization.hh:73
SparseMatrix< NumberType > SparseMatrixType
Definition discretization.hh:35
void reinit()
Definition discretization.hh:79
const Point< dim > & get_support_point(const uint &dof) const
Definition discretization.hh:75
void setup_dofs()
Definition discretization.hh:103
const auto & get_dof_handler(const uint i=0) const
Definition discretization.hh:57
const auto & get_support_points() const
Definition discretization.hh:76
const auto & get_mapping() const
Definition discretization.hh:72
AffineConstraints< NumberType > constraints
Definition discretization.hh:123
uint get_closest_dof(const Point< dim > &p) const
Definition discretization.hh:81
std::vector< Point< dim > > support_points
Definition discretization.hh:125
static constexpr uint dim
Definition discretization.hh:37
Discretization(Mesh &mesh, const JSONValue &json)
Definition discretization.hh:39
DoFHandler< dim > dof_handler
Definition discretization.hh:122
Vector< NumberType > VectorType
Definition discretization.hh:34
NumberType_ NumberType
Definition discretization.hh:33
auto & get_constraints(const uint i=0)
Definition discretization.hh:52
const auto & get_constraints(const uint i=0) const
Definition discretization.hh:47
const auto & get_fe(uint i=0) const
Definition discretization.hh:67
const auto & get_json() const
Definition discretization.hh:77
Components_ Components
Definition discretization.hh:32
auto & get_triangulation()
Definition discretization.hh:74
A wrapper around the boost json value class.
Definition json.hh:19
Definition complex_math.hh:14
unsigned int uint
Definition utils.hh:22