22#ifndef HHOBRINKMAN_HPP
23#define HHOBRINKMAN_HPP
27#include <boost/math/constants/constants.hpp>
29#include <Eigen/Sparse>
30#include <unsupported/Eigen/SparseExtra>
76 double Cf(
const Cell & T)
const
135 std::ostream &
output = std::cout
144 Eigen::VectorXd & UDir
222 return m_vhhospace.
mesh();
275 const std::vector<Eigen::VectorXd> &
list_dofs,
281 const Eigen::VectorXd & p
289 const Eigen::VectorXd & u,
290 const std::pair<std::vector<VectorRd>, VectorRd> &
surf
295 std::pair<Eigen::MatrixXd, Eigen::VectorXd>
296 _compute_local_contribution(
307 void _assemble_local_contribution(
309 const std::pair<Eigen::MatrixXd, Eigen::VectorXd> &
lsT,
310 std::list<Eigen::Triplet<double> > &
A1,
311 Eigen::VectorXd &
b1,
312 std::list<Eigen::Triplet<double> > &
A2,
322 std::ostream & m_output;
323 const size_t m_nloc_sc_u;
324 const size_t m_nloc_sc_p;
328 Eigen::VectorXd m_sc_b;
329 std::pair<double,double> m_stab_par;
337 static const double PI = boost::math::constants::pi<double>();
357 static const VectorRd
vec_p = VectorRd(-1., 2., -5.);
366 return vec_p.dot(x - VectorRd(.5,.5,.5));
407 M.row(0) << 2. * x(0),
422 return std::pow(x(0), 2) + x(1)*x(2) - 1./3. - 1./4.;
427 return VectorRd( 2 * x(0),
450 cubic_u = [](
const VectorRd & x) -> VectorRd {
452 std::pow(x(0), 3) + std::pow(x(0), 2)*x(1),
453 std::pow(x(1), 2) + x(0) * x(1) * x(2),
461 M.row(0) << 3. * std::pow(x(0), 2) + 2 * x(0) * x(1),
464 M.row(1) << x(1) * x(2),
465 2 * x(1) + x(0) * x(2),
469 3 * std::pow(x(2), 2);
476 return std::pow(x(0), 3) + x(1)*x(2) - 1./4. - 1./4.;
481 return VectorRd( 3 * std::pow(x(0), 2),
488 cubic_f = [](
const VectorRd & x) -> VectorRd {
508 0.5 * sin(2. *
PI * x(0)) * cos(2. *
PI * x(1)) * cos(2. *
PI * x(2)),
509 0.5 * cos(2. *
PI * x(0)) * sin(2. *
PI * x(1)) * cos(2. *
PI * x(2)),
510 -cos(2. *
PI * x(0)) * cos(2. *
PI * x(1)) * sin(2. *
PI * x(2))
517 M.row(0) <<
PI * cos(2 *
PI * x(0)) * cos(2 *
PI * x(1)) * cos(2 *
PI * x(2)),
518 -
PI * sin(2. *
PI * x(0)) * sin(2. *
PI * x(1)) * cos(2. *
PI * x(2)),
519 -
PI * sin(2. *
PI * x(0)) * cos(2. *
PI * x(1)) * sin(2. *
PI * x(2));
520 M.row(1) << -
PI * sin(2. *
PI * x(0)) * sin(2. *
PI * x(1)) * cos(2. *
PI * x(2)),
521 PI * cos(2. *
PI * x(0)) * cos(2. *
PI * x(1)) * cos(2. *
PI * x(2)),
522 -
PI * cos(2. *
PI * x(0)) * sin(2. *
PI * x(1)) * sin(2. *
PI * x(2));
523 M.row(2) << 2 *
PI * sin(2. *
PI * x(0)) * cos(2. *
PI * x(1)) * sin(2. *
PI * x(2)),
524 2 *
PI * cos(2. *
PI * x(0)) * sin(2. *
PI * x(1)) * sin(2. *
PI * x(2)),
525 - 2 *
PI * cos(2. *
PI * x(0)) * cos(2. *
PI * x(1)) * cos(2. *
PI * x(2));
538 cos(2. *
PI * x(0)) * sin(2. *
PI * x(1)) * sin(2. *
PI * x(2)),
539 sin(2. *
PI * x(0)) * cos(2. *
PI * x(1)) * sin(2. *
PI * x(2)),
540 sin(2. *
PI * x(0)) * sin(2. *
PI * x(1)) * cos(2. *
PI * x(2))
547 sin(2. *
PI * x(0)) * cos(2. *
PI * x(1)) * cos(2. *
PI * x(2)),
548 cos(2. *
PI * x(0)) * sin(2. *
PI * x(1)) * cos(2. *
PI * x(2)),
549 -2. * cos(2. *
PI * x(0)) * cos(2. *
PI * x(1)) * sin(2. *
PI * x(2))
576 VectorRd
uDvalue = VectorRd::Zero();
588 M.row(0) << sin(2. *
PI * x(0)) * sin(2. *
PI * x(1)) * sin(2. *
PI * x(2)),
589 -cos(2. *
PI * x(0)) * cos(2. *
PI * x(1)) * sin(2. *
PI * x(2)),
590 -cos(2. *
PI * x(0)) * sin(2. *
PI * x(1)) * cos(2. *
PI * x(2));
591 M.row(1) << -cos(2. *
PI * x(0)) * cos(2. *
PI * x(1)) * sin(2. *
PI * x(2)),
592 sin(2. *
PI * x(0)) * sin(2. *
PI * x(1)) * sin(2. *
PI * x(2)),
593 -sin(2. *
PI * x(0)) * cos(2. *
PI * x(1)) * cos(2. *
PI * x(2));
594 M.row(2) << -cos(2. *
PI * x(0)) * sin(2. *
PI * x(1)) * cos(2. *
PI * x(2)),
595 -sin(2. *
PI * x(0)) * cos(2. *
PI * x(1)) * cos(2. *
PI * x(2)),
596 sin(2. *
PI * x(0)) * sin(2. *
PI * x(1)) * sin(2. *
PI * x(2));
607 static std::function<
double(
const VectorRd &)>
608 XiS = [](
const VectorRd & x) ->
double {
621 sin(2. *
PI * x(0)) * cos(2. *
PI * x(1)) * cos(2. *
PI * x(2)),
622 cos(2. *
PI * x(0)) * sin(2. *
PI * x(1)) * cos(2. *
PI * x(2)),
623 -2. * cos(2. *
PI * x(0)) * cos(2. *
PI * x(1)) * sin(2. *
PI * x(2))
642 static std::function<
double(
const VectorRd &)>
643 XiV = [](
const VectorRd & x)->
double {
return (x.z() > 2*std::abs(x.x()-1.)+0.5-
eps); };
657 VectorRd value = VectorRd::Zero();
660 value = VectorRd(.3, 0., 0.);
661 }
else if ( (x.z() > 0.8) && (x.x() > 0.75-
eps) && (x.x() < 1.25+
eps) ){
663 value = VectorRd(1, 0., 0.);
672 return MatrixRd::Zero();
682 return VectorRd::Zero();
688 return VectorRd(0., 0., -.98);
699 static std::function<
double(
const VectorRd &)>
701 return ( (x.x()>0) && (x.x()<1) && (x.y()>0) && (x.y()<1) && (x.z()>-1) ? 1. : 0.);
703 static std::function<
double(
const VectorRd &)>
705 return ( (x.x()>=1) && (x.x()<2) && (x.y()>0) && (x.y()<1) && (x.z()> -.75 + .25*(x.x()-1)) ? 1. : 0.);
707 static std::function<
double(
const VectorRd &)>
724 return XiCavity(x) * VectorRd(x.x()*(1.-x.x()), 0., 0.);
729 return MatrixRd::Zero();
739 return VectorRd::Zero();
745 return VectorRd(0., 0., -.98);
760 static std::function<
double(
const VectorRd &)>
761 Xi_S = [](
const VectorRd & x)->
double {
762 return ( (x.x()<0.5) ? 1. : 0.);
764 static std::function<
double(
const VectorRd &)>
765 Xi_D = [](
const VectorRd & x)->
double {
783 static std::function<VectorRd(
const VectorRd &)>
784 alpha = [](
const VectorRd & x)->VectorRd {
787 sin(
PI * x.y()) * sin(
PI * x.z()),
792 static std::function<VectorRd(
const VectorRd &)>
793 beta_S = [](
const VectorRd & x)->VectorRd {
794 return cos(
PI * x.x()) * (x.x() - 0.5)
797 x.y() + cos(
PI * x.z()),
802 static std::function<VectorRd(
const VectorRd &)>
803 beta_D = [](
const VectorRd & x)->VectorRd {
804 return cos(
PI * x.x()) * (x.x() - 0.5)
806 sin(
PI * x.y()) + cos(
PI * x.z()),
808 std::pow(x.y(), 2) * std::pow(x.z(), 2)
820 M.row(0) << 0, -
exp(-x.y() - x.z()), -
exp(-x.y() - x.z());
821 M.row(1) << 0,
PI*sin(
PI*x.z())*cos(
PI*x.y()),
PI*sin(
PI*x.y())*cos(
PI*x.z());
822 M.row(2) << 0, x.z(), x.y();
830 M.row(0) << -
PI*(x.x() - 0.5)*(x.y() + x.z())*sin(
PI*x.x()) + (x.y() + x.z())*cos(
PI*x.x()),
831 (x.x() - 0.5)*cos(
PI*x.x()),
832 (x.x() - 0.5)*cos(
PI*x.x());
833 M.row(1) << -
PI*(x.x() - 0.5)*(x.y() + cos(
PI*x.z()))*sin(
PI*x.x()) + (x.y() + cos(
PI*x.z()))*cos(
PI*x.x()),
834 (x.x() - 0.5)*cos(
PI*x.x()),
835 -
PI*(x.x() - 0.5)*sin(
PI*x.z())*cos(
PI*x.x());
836 M.row(2) << -
PI*(x.x() - 0.5)*sin(
PI*x.x())*sin(
PI*x.y()) + sin(
PI*x.y())*cos(
PI*x.x()),
837 PI*(x.x() - 0.5)*cos(
PI*x.x())*cos(
PI*x.y()),
846 M.row(0) << -
PI*(x.x() - 0.5)*(sin(
PI*x.y()) + cos(
PI*x.z()))*sin(
PI*x.x()) + (sin(
PI*x.y()) + cos(
PI*x.z()))*cos(
PI*x.x()),
847 PI*(x.x() - 0.5)*cos(
PI*x.x())*cos(
PI*x.y()),
848 -
PI*(x.x() - 0.5)*sin(
PI*x.z())*cos(
PI*x.x());
849 M.row(1) << -
PI*pow(x.z(), 3)*(x.x() - 0.5)*sin(
PI*x.x()) + pow(x.z(), 3)*cos(
PI*x.x()),
851 3*pow(x.z(), 2)*(x.x() - 0.5)*cos(
PI*x.x());
852 M.row(2) << -
PI*pow(x.y(), 2)*pow(x.z(), 2)*(x.x() - 0.5)*sin(
PI*x.x()) + pow(x.y(), 2)*pow(x.z(), 2)*cos(
PI*x.x()),
853 2*x.y()*pow(x.z(), 2)*(x.x() - 0.5)*cos(
PI*x.x()),
854 2*pow(x.y(), 2)*x.z()*(x.x() - 0.5)*cos(
PI*x.x());
883 2*
exp(-x.y() - x.z()),
884 -2*pow(
PI, 2)*sin(
PI*x.y())*sin(
PI*x.z()),
892 -pow(
PI, 2)*(x.x() - 0.5)*(x.y() + x.z())*cos(
PI*x.x()) - 2*
PI*(x.y() + x.z())*sin(
PI*x.x()),
893 -pow(
PI, 2)*(x.x() - 0.5)*(x.y() + cos(
PI*x.z()))*cos(
PI*x.x()) - pow(
PI, 2)*(x.x() - 0.5)*cos(
PI*x.x())*cos(
PI*x.z()) - 2*
PI*(x.y() + cos(
PI*x.z()))*sin(
PI*x.x()),
894 -2*pow(
PI, 2)*(x.x() - 0.5)*sin(
PI*x.y())*cos(
PI*x.x()) - 2*
PI*sin(
PI*x.x())*sin(
PI*x.y())
902 -pow(
PI, 2)*(x.x() - 0.5)*(sin(
PI*x.y()) + cos(
PI*x.z()))*cos(
PI*x.x()) - pow(
PI, 2)*(x.x() - 0.5)*sin(
PI*x.y())*cos(
PI*x.x()) - pow(
PI, 2)*(x.x() - 0.5)*cos(
PI*x.x())*cos(
PI*x.z()) - 2*
PI*(sin(
PI*x.y()) + cos(
PI*x.z()))*sin(
PI*x.x()),
903 -pow(
PI, 2)*pow(x.z(), 3)*(x.x() - 0.5)*cos(
PI*x.x()) - 2*
PI*pow(x.z(), 3)*sin(
PI*x.x()) + 6*x.z()*(x.x() - 0.5)*cos(
PI*x.x()),
904 -pow(
PI, 2)*pow(x.y(), 2)*pow(x.z(), 2)*(x.x() - 0.5)*cos(
PI*x.x()) - 2*
PI*pow(x.y(), 2)*pow(x.z(), 2)*sin(
PI*x.x()) + 2*pow(x.y(), 2)*(x.x() - 0.5)*cos(
PI*x.x()) + 2*pow(x.z(), 2)*(x.x() - 0.5)*cos(
PI*x.x())
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
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
Class to describe a mesh.
Definition MeshND.hpp:17
Eigen::Matrix3d MatrixRd
Definition basis.hpp:51
@ 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
IntegralWeightValueType value
Definition integralweight.hpp:69
static const double PI
Definition ddr-magnetostatics.hpp:187
static Magnetostatics::SolutionPotentialType linear_u
Definition ddr-magnetostatics.hpp:214
static Magnetostatics::PermeabilityType linear_mu
Definition ddr-magnetostatics.hpp:233
static Magnetostatics::SolutionPotentialType trigonometric_u
Definition ddr-magnetostatics.hpp:238
static Magnetostatics::PermeabilityType trigonometric_mu
Definition ddr-magnetostatics.hpp:265
static Magnetostatics::ForcingTermType trigonometric_f
Definition ddr-magnetostatics.hpp:256
static Magnetostatics::ForcingTermType linear_f
Definition ddr-magnetostatics.hpp:228
static NavierStokes::PressureType linear_p
Definition sddr-navier-stokes.hpp:577
static NavierStokes::PressureType trigonometric_p
Definition sddr-navier-stokes.hpp:491
double pressure_scaling
Definition sddr-navier-stokes.hpp:464
const Mesh & mesh() const
Return a const reference to the mesh.
Definition vhhospace.hpp:128
bool use_threads
Definition HHO_DiffAdvecReac.hpp:47
static std::function< VectorRd(const VectorRd &)> beta_D
Definition hho-brinkman.hpp:803
static Brinkman::CompressibilityForcingTermType vcracked_g
Definition hho-brinkman.hpp:692
static Brinkman::PressureType regimes_p
Definition hho-brinkman.hpp:568
constexpr double viscosity_in_cavity
Definition hho-brinkman.hpp:711
size_t numDirDOFs() const
Returns the number of Dirichlet DOFs.
Definition hho-brinkman.hpp:178
static BrinkmanParameters::PermeabilityInvType regimes_kappainv
Definition hho-brinkman.hpp:565
static Brinkman::CompressibilityForcingTermType regimes_g
Definition hho-brinkman.hpp:636
std::pair< double, double > & stabilizationParameter()
Returns the stabilization parameter.
Definition hho-brinkman.hpp:251
static Brinkman::MomentumForcingTermType cavity_f
Definition hho-brinkman.hpp:744
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-brinkman.cpp:674
double energy
Global energy norm
Definition hho-brinkman.hpp:105
static Brinkman::PressureType vcracked_p
Definition hho-brinkman.hpp:676
static Brinkman::VelocityType cavity_u
Definition hho-brinkman.hpp:723
std::function< VectorRd(const VectorRd &)> MomentumForcingTermType
Definition hho-brinkman.hpp:122
static Brinkman::MomentumForcingTermType DivGrad_alpha
Definition hho-brinkman.hpp:881
static Brinkman::PressureGradientType cubic_gradp
Definition hho-brinkman.hpp:480
static Brinkman::VelocityType cubic_u
Definition hho-brinkman.hpp:450
static Brinkman::VelocityGradientType regimes_graduD
Definition hho-brinkman.hpp:584
double u
Energy norm of velocity.
Definition hho-brinkman.hpp:103
static const VectorRd vec_p
Definition hho-brinkman.hpp:357
static Brinkman::VelocityType regimes_u
Definition hho-brinkman.hpp:613
static std::function< double(const VectorRd &)> XiBox
Definition hho-brinkman.hpp:708
IntegralWeight PermeabilityInvType
Definition hho-brinkman.hpp:62
std::function< double(const VectorRd &)> PressureType
Definition hho-brinkman.hpp:126
static Brinkman::PressureGradientType cavity_gradp
Definition hho-brinkman.hpp:738
size_t sizeSystem() const
Returns the size of the final system with Lagrange multiplier, after application of SC and removal of...
Definition hho-brinkman.hpp:202
const VHHOSpace & vhhospace() const
Returns the velocity space.
Definition hho-brinkman.hpp:208
static Brinkman::VelocityGradientType tworegions_gradu
Definition hho-brinkman.hpp:860
constexpr double permeability_in_wedge
Definition hho-brinkman.hpp:715
static std::function< double(const VectorRd &)> XiWedge
Definition hho-brinkman.hpp:704
static BrinkmanParameters::ViscosityType cavity_mu
Definition hho-brinkman.hpp:712
const SystemMatrixType & systemMatrix() const
Returns the linear system matrix.
Definition hho-brinkman.hpp:226
double constexpr eps
Definition hho-brinkman.hpp:345
static Brinkman::VelocityGradientType quadratic_gradu
Definition hho-brinkman.hpp:405
IntegralWeight ViscosityType
Definition hho-brinkman.hpp:61
static BrinkmanParameters::PermeabilityInvType tworegions_kappainv
Definition hho-brinkman.hpp:779
static BrinkmanParameters::PermeabilityInvType vcracked_kappainv
Definition hho-brinkman.hpp:651
static Brinkman::VelocityGradientType regimes_gradu
Definition hho-brinkman.hpp:616
static std::function< double(const VectorRd &)> Xi_D
Definition hho-brinkman.hpp:765
constexpr double permeability_D
Definition hho-brinkman.hpp:777
std::pair< double, double > computeFlux(const Eigen::VectorXd &u, const std::pair< std::vector< VectorRd >, VectorRd > &surf) const
Compute the velocity flux (integral of u.n) across a given surface, and the area of the surface,...
Definition hho-brinkman.cpp:825
static BrinkmanParameters::PermeabilityInvType trigonometric_kappainv
Definition hho-brinkman.hpp:501
const GlobalDOFSpace & pspace() const
Returns the pressure space.
Definition hho-brinkman.hpp:214
size_t numNonSCDOFs() const
Returns the number of DOFs after SC and with Lagrange multiplier, but before eliminating Dirichlet DO...
Definition hho-brinkman.hpp:196
static std::function< VectorRd(const VectorRd &)> beta_S
Definition hho-brinkman.hpp:793
static std::function< double(const VectorRd &)> XiV
Definition hho-brinkman.hpp:643
static std::function< VectorRd(const VectorRd &)> alpha
Definition hho-brinkman.hpp:784
size_t dimVelocity() const
Returns the dimension of velocity space.
Definition hho-brinkman.hpp:184
ViscosityType mu
Definition hho-brinkman.hpp:87
PermeabilityInvType kappainv
Definition hho-brinkman.hpp:88
static Brinkman::VelocityGradientType cavity_gradu
Definition hho-brinkman.hpp:728
static Brinkman::VelocityType regimes_uD
Definition hho-brinkman.hpp:575
static Brinkman::MomentumForcingTermType regimes_f
Definition hho-brinkman.hpp:619
static BrinkmanParameters::ViscosityType tworegions_mu
Definition hho-brinkman.hpp:773
static Brinkman::CompressibilityForcingTermType cubic_g
Definition hho-brinkman.hpp:493
static BrinkmanParameters::PermeabilityInvType cubic_kappainv
Definition hho-brinkman.hpp:447
constexpr double permeability_in_box
Definition hho-brinkman.hpp:716
static Brinkman::PressureType cavity_p
Definition hho-brinkman.hpp:733
static Brinkman::MomentumForcingTermType DivGrad_beta_S
Definition hho-brinkman.hpp:890
static Brinkman::PressureType cubic_p
Definition hho-brinkman.hpp:475
double Cf(const Cell &T) const
Returns the friction coefficient.
Definition hho-brinkman.hpp:76
static BrinkmanParameters::ViscosityType cubic_mu
Definition hho-brinkman.hpp:444
std::function< MatrixRd(const VectorRd &)> VelocityGradientType
Definition hho-brinkman.hpp:125
static Brinkman::PressureGradientType linear_gradp
Definition hho-brinkman.hpp:375
static Brinkman::PressureType quadratic_p
Definition hho-brinkman.hpp:421
double scaling_mu
Definition hho-brinkman.hpp:341
std::vector< double > pressureVertexValues(const Eigen::VectorXd &p) const
Create vertex values for the pressure (from the element values), for plotting.
Definition hho-brinkman.cpp:774
std::function< VectorRd(const VectorRd &)> VelocityType
Definition hho-brinkman.hpp:124
const std::pair< double, double > & stabilizationParameter() const
Returns the stabilization parameter (scaling)
Definition hho-brinkman.hpp:246
static Brinkman::PressureType tworegions_p
Definition hho-brinkman.hpp:865
SystemMatrixType & systemMatrix()
Returns the linear system matrix.
Definition hho-brinkman.hpp:231
static Brinkman::PressureGradientType vcracked_gradp
Definition hho-brinkman.hpp:681
static std::function< double(const VectorRd &)> XiCavity
Definition hho-brinkman.hpp:700
std::pair< double, double > computeConditionNum() const
Computes the condition number of the matrix.
Definition hho-brinkman.cpp:800
static Brinkman::PressureGradientType regimes_gradp
Definition hho-brinkman.hpp:571
static Brinkman::MomentumForcingTermType vcracked_f
Definition hho-brinkman.hpp:687
static Brinkman::MomentumForcingTermType tworegions_f
Definition hho-brinkman.hpp:909
static Brinkman::VelocityType regimes_uS
Definition hho-brinkman.hpp:604
Eigen::VectorXd & scVector()
Returns the static condensation rhs.
Definition hho-brinkman.hpp:261
static Brinkman::CompressibilityForcingTermType cavity_g
Definition hho-brinkman.hpp:749
size_t nloc_sc_u() const
Returns the local number of velocity statically condensed DOFs.
Definition hho-brinkman.hpp:148
static Brinkman::MomentumForcingTermType quadratic_f
Definition hho-brinkman.hpp:434
static BrinkmanParameters::ViscosityType quadratic_mu
Definition hho-brinkman.hpp:390
static Brinkman::VelocityGradientType grad_beta_S
Definition hho-brinkman.hpp:828
static BrinkmanParameters::PermeabilityInvType quadratic_kappainv
Definition hho-brinkman.hpp:393
static Brinkman::PressureGradientType trigonometric_gradp
Definition hho-brinkman.hpp:536
static BrinkmanParameters::ViscosityType regimes_mu
Definition hho-brinkman.hpp:562
double scaling_kappainv
Definition hho-brinkman.hpp:342
size_t numSCDOFs_p() const
Returns the number of pressure statically condensed DOFs.
Definition hho-brinkman.hpp:166
std::vector< BrinkmanNorms > computeBrinkmanNorms(const std::vector< Eigen::VectorXd > &list_dofs, const BrinkmanParameters ¶) const
Compute the discrete energy norm of a family of vectors representing the dofs.
Definition hho-brinkman.cpp:710
static Brinkman::VelocityGradientType linear_gradu
Definition hho-brinkman.hpp:370
const SystemMatrixType & scMatrix() const
Returns the static condensation recovery operator.
Definition hho-brinkman.hpp:256
const Eigen::VectorXd & systemVector() const
Returns the linear system right-hand side vector.
Definition hho-brinkman.hpp:236
static BrinkmanParameters::ViscosityType vcracked_mu
Definition hho-brinkman.hpp:647
void assembleLinearSystem(const MomentumForcingTermType &f, const CompressibilityForcingTermType &g, const BrinkmanParameters ¶, const VelocityType &u, Eigen::VectorXd &UDir)
Assemble the global system
Definition hho-brinkman.cpp:447
static Brinkman::MomentumForcingTermType cubic_f
Definition hho-brinkman.hpp:488
static BrinkmanParameters::PermeabilityInvType cavity_kappainv
Definition hho-brinkman.hpp:718
static Brinkman::VelocityType vcracked_u
Definition hho-brinkman.hpp:656
static Brinkman::VelocityGradientType trigonometric_gradu
Definition hho-brinkman.hpp:515
BrinkmanParameters(const ViscosityType &_mu, const PermeabilityInvType &_kappainv)
Constructor.
Definition hho-brinkman.hpp:65
static BrinkmanParameters::PermeabilityInvType linear_kappainv
Definition hho-brinkman.hpp:354
size_t dimPressure() const
Returns the dimension of pressure space.
Definition hho-brinkman.hpp:190
static std::function< double(const VectorRd &)> Xi_S
Definition hho-brinkman.hpp:761
static Brinkman::CompressibilityForcingTermType trigonometric_g
Definition hho-brinkman.hpp:555
static const MatrixRd mat_u
Definition hho-brinkman.hpp:356
std::function< VectorRd(const VectorRd &)> PressureGradientType
Definition hho-brinkman.hpp:127
static Brinkman::PressureGradientType tworegions_gradp
Definition hho-brinkman.hpp:868
Eigen::SparseMatrix< double > SystemMatrixType
Definition hho-brinkman.hpp:120
Eigen::VectorXd & systemVector()
Returns the linear system right-hand side vector.
Definition hho-brinkman.hpp:241
static Brinkman::MomentumForcingTermType DivGrad_beta_D
Definition hho-brinkman.hpp:900
static Brinkman::PressureGradientType quadratic_gradp
Definition hho-brinkman.hpp:426
static Brinkman::VelocityGradientType regimes_graduS
Definition hho-brinkman.hpp:605
static Brinkman::VelocityType quadratic_u
Definition hho-brinkman.hpp:396
std::function< double(const VectorRd &)> CompressibilityForcingTermType
Definition hho-brinkman.hpp:123
constexpr double viscosity_S
Definition hho-brinkman.hpp:770
static Brinkman::CompressibilityForcingTermType tworegions_g
Definition hho-brinkman.hpp:918
static Brinkman::VelocityType tworegions_u
Definition hho-brinkman.hpp:813
static Brinkman::VelocityGradientType grad_alpha
Definition hho-brinkman.hpp:818
double p
L2 norm of p.
Definition hho-brinkman.hpp:104
const Mesh & mesh() const
Returns the mesh.
Definition hho-brinkman.hpp:220
static Brinkman::VelocityGradientType cubic_gradu
Definition hho-brinkman.hpp:459
constexpr double viscosity_D
Definition hho-brinkman.hpp:771
static Brinkman::VelocityGradientType grad_beta_D
Definition hho-brinkman.hpp:844
size_t numSCDOFs() const
Returns the number of statically condensed DOFs.
Definition hho-brinkman.hpp:172
size_t numSCDOFs_u() const
Returns the number of velocity statically condensed DOFs.
Definition hho-brinkman.hpp:160
constexpr double permeability_S
Definition hho-brinkman.hpp:776
BrinkmanNorms(double norm_u, double norm_p)
Constructor.
Definition hho-brinkman.hpp:95
static Brinkman::CompressibilityForcingTermType linear_g
Definition hho-brinkman.hpp:385
size_t nloc_sc_p() const
Returns the local number of pressure statically condensed DOFs.
Definition hho-brinkman.hpp:154
static Brinkman::VelocityGradientType vcracked_gradu
Definition hho-brinkman.hpp:671
static Brinkman::CompressibilityForcingTermType quadratic_g
Definition hho-brinkman.hpp:439
static std::function< double(const VectorRd &)> XiS
Definition hho-brinkman.hpp:608
std::size_t n_cells() const
number of cells in the mesh.
Definition MeshND.hpp:60
Definition ddr-magnetostatics.hpp:41
Structure to store norm components (energy for velocity, L2 pressure, and global)
Definition hho-brinkman.hpp:93
Structure to store physical parameter (and compute derived parameters)
Definition hho-brinkman.hpp:60
Structure for Brinkman model.
Definition hho-brinkman.hpp:119
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