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_q.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>
12#include <spdlog/spdlog.h>
22 using namespace dealii;
30 template <
typename Components_,
typename NumberType_,
typename Mesh_>
class Discretization
42 fe(
std::make_shared<FESystem<
dim>>(FE_Q<
dim>(
json.get_uint(
"/discretization/fe_order")),
71 if (i != 0)
throw std::runtime_error(
"Wrong FE index");
85 std::vector<uint> block_structure{
dof_handler.n_dofs()};
86 if (Components::count_variables() > 0) block_structure.push_back(Components::count_variables());
87 return block_structure;
96 spdlog::get(
"log")->info(
"FEM: Number of active cells: {}",
mesh.get_triangulation().n_active_cells());
97 spdlog::get(
"log")->info(
"FEM: Number of degrees of freedom: {}",
dof_handler.n_dofs());
110 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 cg.hh:31
Mesh & mesh
Definition cg.hh:107
AffineConstraints< NumberType > constraints
Definition cg.hh:112
MappingQ1< dim > mapping
Definition cg.hh:113
NumberType_ NumberType
Definition cg.hh:34
const auto & get_constraints(const uint i=0) const
Definition cg.hh:49
Components_ Components
Definition cg.hh:33
auto & get_dof_handler(const uint i=0)
Definition cg.hh:64
SparseMatrix< NumberType > SparseMatrixType
Definition cg.hh:36
auto & get_constraints(const uint i=0)
Definition cg.hh:54
std::vector< Point< dim > > support_points
Definition cg.hh:114
const auto & get_fe(const uint i=0) const
Definition cg.hh:69
auto & get_triangulation()
Definition cg.hh:76
JSONValue json
Definition cg.hh:108
const auto & get_support_points() const
Definition cg.hh:78
void reinit()
Definition cg.hh:81
std::vector< uint > get_block_structure() const
Definition cg.hh:83
const auto & get_json() const
Definition cg.hh:79
const auto & get_mapping() const
Definition cg.hh:74
void setup_dofs()
Definition cg.hh:91
Vector< NumberType > VectorType
Definition cg.hh:35
static constexpr uint dim
Definition cg.hh:38
std::shared_ptr< FESystem< dim > > fe
Definition cg.hh:110
Mesh_ Mesh
Definition cg.hh:37
Discretization(Mesh &mesh, const JSONValue &json)
Definition cg.hh:40
const auto & get_dof_handler(const uint i=0) const
Definition cg.hh:59
const Point< dim > & get_support_point(const uint dof) const
Definition cg.hh:77
const auto & get_triangulation() const
Definition cg.hh:75
DoFHandler< dim > dof_handler
Definition cg.hh:111
A wrapper around the boost json value class.
Definition json.hh:19
Definition complex_math.hh:14
unsigned int uint
Definition utils.hh:22