22#ifndef HHOFULLGRADIENTDIFF_HPP
23#define HHOFULLGRADIENTDIFF_HPP
27#include <boost/math/constants/constants.hpp>
29#include <Eigen/Sparse>
30#include <unsupported/Eigen/SparseExtra>
69 std::ostream &
output = std::cout
77 Eigen::VectorXd & UDir
113 return m_hhospace.
mesh();
158 const std::vector<Eigen::VectorXd> &
list_dofs
163 std::pair<Eigen::MatrixXd, Eigen::VectorXd>
164 _compute_local_contribution(
174 void _assemble_local_contribution(
176 const std::pair<Eigen::MatrixXd, Eigen::VectorXd> &
lsT,
177 std::list<Eigen::Triplet<double> > &
A1,
178 Eigen::VectorXd &
b1,
179 std::list<Eigen::Triplet<double> > &
A2,
186 std::ostream & m_output;
187 const size_t m_nloc_sc;
191 Eigen::VectorXd m_sc_b;
199 static const double PI = boost::math::constants::pi<double>();
205 static const VectorRd
vec_a = VectorRd(1.,2.,3.);
209 return vec_a.dot(x) + 4.;
230 return sin(
PI*x(0)) * sin(
PI*x(1)) * sin(
PI*x(2));
235 return PI * VectorRd(
236 cos(
PI*x(0)) * sin(
PI*x(1)) * sin(
PI*x(2)),
237 sin(
PI*x(0)) * cos(
PI*x(1)) * sin(
PI*x(2)),
238 sin(
PI*x(0)) * sin(
PI*x(1)) * cos(
PI*x(2))
The BoundaryConditions class provides definition of boundary conditions.
Definition BoundaryConditions.hpp:129
const size_t n_dir_faces() const
Returns the number of Dirichlet faces.
Definition BoundaryConditions.hpp:160
Class definition: polynomial bases and operators.
Definition hhospace.hpp:53
Class to describe a mesh.
Definition MeshND.hpp:17
@ Matrix
Definition basis.hpp:67
size_t dimension() const
Returns the dimension of the global space (all DOFs for all geometric entities)
Definition localdofspace.hpp:80
size_t numLocalDofsFace() const
Returns the number of local face DOFs.
Definition localdofspace.hpp:49
static const double PI
Definition ddr-magnetostatics.hpp:187
static Magnetostatics::SolutionPotentialType linear_u
Definition ddr-magnetostatics.hpp:214
static Magnetostatics::SolutionPotentialType trigonometric_u
Definition ddr-magnetostatics.hpp:238
static Magnetostatics::ForcingTermType trigonometric_f
Definition ddr-magnetostatics.hpp:256
static Magnetostatics::ForcingTermType linear_f
Definition ddr-magnetostatics.hpp:228
const Mesh & mesh() const
Return a const reference to the mesh.
Definition hhospace.hpp:114
bool use_threads
Definition HHO_DiffAdvecReac.hpp:47
static Brinkman::VelocityGradientType linear_gradu
Definition hho-brinkman.hpp:370
static Brinkman::VelocityGradientType trigonometric_gradu
Definition hho-brinkman.hpp:515
std::function< double(const VectorRd &)> SolutionType
Definition hho-fullgradientdiff.hpp:60
const SystemMatrixType & scMatrix() const
Returns the static condensation recovery operator.
Definition hho-fullgradientdiff.hpp:147
std::function< double(const VectorRd &)> ForcingTermType
Definition hho-fullgradientdiff.hpp:59
const SystemMatrixType & systemMatrix() const
Returns the linear system matrix.
Definition hho-fullgradientdiff.hpp:117
std::vector< double > computeEnergyNorms(const std::vector< Eigen::VectorXd > &list_dofs) const
Compute the discrete energy norm of a family of vectors representing the dofs.
Definition hho-fullgradientdiff.cpp:411
const Mesh & mesh() const
Returns the mesh.
Definition hho-fullgradientdiff.hpp:111
const Eigen::VectorXd & systemVector() const
Returns the linear system right-hand side vector.
Definition hho-fullgradientdiff.hpp:127
Eigen::SparseMatrix< double > SystemMatrixType
Definition hho-fullgradientdiff.hpp:57
Eigen::VectorXd & systemVector()
Returns the linear system right-hand side vector.
Definition hho-fullgradientdiff.hpp:132
double & stabilizationParameter()
Returns the stabilization parameter.
Definition hho-fullgradientdiff.hpp:142
Eigen::VectorXd & scVector()
Returns the static condensation rhs.
Definition hho-fullgradientdiff.hpp:152
size_t numSkeletalDOFs() const
Returns the number of DOFs after SC but before eliminating Dirichlet DOFs.
Definition hho-fullgradientdiff.hpp:93
static const VectorRd vec_a
Definition hho-fullgradientdiff.hpp:205
const HHOSpace & hhospace() const
Returns the HHO space.
Definition hho-fullgradientdiff.hpp:105
static FullGradientDiffusion::PermeabilityType trigonometric_kappa
Definition hho-fullgradientdiff.hpp:248
size_t sizeSystem() const
Returns the size of the final system, after application of SC and removal of Dirichlet BCs.
Definition hho-fullgradientdiff.hpp:99
const double & stabilizationParameter() const
Returns the stabilization parameter (scaling)
Definition hho-fullgradientdiff.hpp:137
size_t numDirDOFs() const
Returns the number of Dirichlet DOFs.
Definition hho-fullgradientdiff.hpp:87
size_t numSCDOFs() const
Returns the number of statically condensed DOFs (the cell DOFs)
Definition hho-fullgradientdiff.hpp:81
IntegralWeight PermeabilityType
Definition hho-fullgradientdiff.hpp:62
static FullGradientDiffusion::PermeabilityType linear_kappa
Definition hho-fullgradientdiff.hpp:223
std::function< VectorRd(const VectorRd &)> SolutionGradientType
Definition hho-fullgradientdiff.hpp:61
SystemMatrixType & systemMatrix()
Returns the linear system matrix.
Definition hho-fullgradientdiff.hpp:122
void assembleLinearSystem(const ForcingTermType &f, const PermeabilityType &kappa, const SolutionType &u, Eigen::VectorXd &UDir)
Assemble the global system
Definition hho-fullgradientdiff.cpp:248
std::size_t n_cells() const
number of cells in the mesh.
Definition MeshND.hpp:60
Definition ddr-magnetostatics.hpp:41
Assemble a diffusion problem.
Definition hho-fullgradientdiff.hpp:56
Structure for weights (scalar, at the moment) in integral.
Definition integralweight.hpp:36
Structure to store information for, and perform, local static condensation.
Definition local_static_condensation.hpp:25