27#include <boost/math/constants/constants.hpp>
29#include <Eigen/Sparse>
30#include <unsupported/Eigen/SparseExtra>
76 std::ostream & output = std::cout
85 Eigen::VectorXd & UDir
163 return m_vhhospace.
mesh();
210 const int doe_cell = -1,
211 const int doe_face = -1
216 const std::vector<Eigen::VectorXd> & list_dofs
221 std::pair<Eigen::MatrixXd, Eigen::VectorXd>
222 _compute_local_contribution(
233 void _assemble_local_contribution(
235 const std::pair<Eigen::MatrixXd, Eigen::VectorXd> & lsT,
236 std::list<Eigen::Triplet<double> > & A1,
237 Eigen::VectorXd & b1,
238 std::list<Eigen::Triplet<double> > & A2,
248 std::ostream & m_output;
249 const size_t m_nloc_sc_u;
250 const size_t m_nloc_sc_p;
254 Eigen::VectorXd m_sc_b;
263 static const double PI = boost::math::constants::pi<double>();
280 M << 1., 0., 0., -1.;
291 return VectorRd::Zero();
296 return VectorRd::Zero();
311 -(x(1) * cos(x(1)) + sin(x(1))),
320 -x(1) * cos(x(1)) - sin(x(1)), -2. * cos(x(1)) + x(1) * sin(x(1)),
321 x(1) * sin(x(1)), sin(x(1)) + x(1) * cos(x(1));
328 return 2. * exp(x(0)) * sin(x(1)) - 2. * (exp(1) - 1.) * (1. - cos(1.));
333 return 2. * exp(x(0)) *
VectorRd(sin(x(1)), cos(x(1)));
338 return -2. * exp(x(0)) *
VectorRd(sin(x(1)), cos(x(1)))
The BoundaryConditions class provides definition of boundary conditions.
Definition BoundaryConditions.hpp:45
const size_t n_dir_edges() const
Returns the number of Dirichlet edges.
Definition BoundaryConditions.hpp:70
Base class for global DOF spaces. Provides functions to manipulate global DOFs (the local version bei...
Definition globaldofspace.hpp:16
Class definition: polynomial bases and operators.
Definition vhhospace.hpp:52
Eigen::Vector2d VectorRd
Definition basis.hpp:55
Eigen::Matrix2d MatrixRd
Definition basis.hpp:54
size_t dimension() const
Returns the dimension of the global space (all DOFs for all geometric entities)
Definition localdofspace.hpp:61
size_t numLocalDofsEdge() const
Returns the number of local edge DOFs.
Definition localdofspace.hpp:45
static KirchhoffLove::DeflectionType trigonometric_u
Definition ddr-klplate.hpp:197
static const double PI
Definition ddr-klplate.hpp:187
const Mesh & mesh() const
Return a const reference to the mesh.
Definition vhhospace.hpp:140
bool use_threads
Definition HHO_DiffAdvecReac.hpp:47
static FullGradientDiffusion::SolutionGradientType linear_gradu
Definition hho-fullgradientdiff.hpp:212
static FullGradientDiffusion::SolutionGradientType trigonometric_gradu
Definition hho-fullgradientdiff.hpp:233
std::size_t n_cells() const
number of cells in the mesh.
Definition Mesh2D.hpp:63
Definition ddr-klplate.hpp:27
double pressure_scaling
Definition hho-stokes.hpp:270
static QuadRot::PotentialType linear_u
Definition ddr-quadrot.hpp:200
static QuadRot::ForcingTermType trigonometric_f
Definition ddr-quadrot.hpp:367
static Stokes::PressureGradientType linear_gradp
Definition hho-stokes.hpp:290
static Stokes::CompressibilityForcingTermType trigonometric_g
Definition hho-stokes.hpp:343
static QuadRot::LagrangeMultiplierType linear_p
Definition ddr-quadrot.hpp:217
static QuadRot::ForcingTermType linear_f
Definition ddr-quadrot.hpp:222
static Stokes::ViscosityType linear_mu
Definition hho-stokes.hpp:303
static Stokes::PressureGradientType trigonometric_gradp
Definition hho-stokes.hpp:332
static QuadRot::LagrangeMultiplierType trigonometric_p
Definition ddr-quadrot.hpp:362
static Stokes::CompressibilityForcingTermType linear_g
Definition hho-stokes.hpp:300
static Stokes::ViscosityType trigonometric_mu
Definition hho-stokes.hpp:346
Structure for weights (scalar, at the moment) in integral.
Definition integralweight.hpp:33
Structure to store information for, and perform, local static condensation.
Definition local_static_condensation.hpp:25
Class for Stokes model.
Definition hho-stokes.hpp:59
Eigen::VectorXd & scVector()
Returns the static condensation rhs.
Definition hho-stokes.hpp:202
const VHHOSpace & vhhospace() const
Returns the velocity space.
Definition hho-stokes.hpp:149
std::function< VectorRd(const VectorRd &)> VelocityType
Definition hho-stokes.hpp:64
SystemMatrixType & systemMatrix()
Returns the linear system matrix.
Definition hho-stokes.hpp:172
std::function< double(const VectorRd &)> PressureType
Definition hho-stokes.hpp:66
std::function< MatrixRd(const VectorRd &)> VelocityGradientType
Definition hho-stokes.hpp:65
Eigen::VectorXd & systemVector()
Returns the linear system right-hand side vector.
Definition hho-stokes.hpp:182
const Eigen::VectorXd & systemVector() const
Returns the linear system right-hand side vector.
Definition hho-stokes.hpp:177
std::function< VectorRd(const VectorRd &)> PressureGradientType
Definition hho-stokes.hpp:67
size_t numSCDOFs_u() const
Returns the number of velocity statically condensed DOFs.
Definition hho-stokes.hpp:101
const GlobalDOFSpace & pspace() const
Returns the pressure space.
Definition hho-stokes.hpp:155
size_t nloc_sc_u() const
Returns the local number of velocity statically condensed DOFs.
Definition hho-stokes.hpp:89
Eigen::VectorXd interpolate(const VelocityType &u, const PressureType &p, const int doe_cell=-1, const int doe_face=-1) const
Interpolates velocity and pressure.
Definition hho-stokes.cpp:506
const Mesh & mesh() const
Returns the mesh.
Definition hho-stokes.hpp:161
Eigen::SparseMatrix< double > SystemMatrixType
Definition hho-stokes.hpp:60
std::function< double(const VectorRd &)> CompressibilityForcingTermType
Definition hho-stokes.hpp:63
size_t nloc_sc_p() const
Returns the local number of pressure statically condensed DOFs.
Definition hho-stokes.hpp:95
void assembleLinearSystem(const MomentumForcingTermType &f, const CompressibilityForcingTermType &g, const ViscosityType &mu, const VelocityType &u, Eigen::VectorXd &UDir)
Assemble the global system
Definition hho-stokes.cpp:292
const SystemMatrixType & systemMatrix() const
Returns the linear system matrix.
Definition hho-stokes.hpp:167
size_t dimPressure() const
Returns the dimension of pressure space.
Definition hho-stokes.hpp:131
size_t dimVelocity() const
Returns the dimension of velocity space.
Definition hho-stokes.hpp:125
double & stabilizationParameter()
Returns the stabilization parameter.
Definition hho-stokes.hpp:192
size_t numDirDOFs() const
Returns the number of Dirichlet DOFs.
Definition hho-stokes.hpp:119
size_t numSCDOFs() const
Returns the number of statically condensed DOFs.
Definition hho-stokes.hpp:113
size_t sizeSystem() const
Returns the size of the final system with Lagrange multiplier, after application of SC and removal of...
Definition hho-stokes.hpp:143
const double & stabilizationParameter() const
Returns the stabilization parameter (scaling)
Definition hho-stokes.hpp:187
IntegralWeight ViscosityType
Definition hho-stokes.hpp:68
const SystemMatrixType & scMatrix() const
Returns the static condensation recovery operator.
Definition hho-stokes.hpp:197
size_t numNonSCDOFs() const
Returns the number of DOFs after SC and with Lagrange multiplier, but before eliminating Dirichlet DO...
Definition hho-stokes.hpp:137
size_t numSCDOFs_p() const
Returns the number of pressure statically condensed DOFs.
Definition hho-stokes.hpp:107
std::function< VectorRd(const VectorRd &)> MomentumForcingTermType
Definition hho-stokes.hpp:62
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-stokes.cpp:542