HArD::Core3D
Hybrid Arbitrary Degree::Core 3D - Library to implement 3D schemes with vertex, edge, face and cell polynomials as unknowns
Loading...
Searching...
No Matches
Classes | Namespaces | Variables
hho-brinkman.hpp File Reference
#include <iostream>
#include <boost/math/constants/constants.hpp>
#include <Eigen/Sparse>
#include <unsupported/Eigen/SparseExtra>
#include <mesh.hpp>
#include <mesh_builder.hpp>
#include <local_static_condensation.hpp>
#include <linearsolver.hpp>
#include <vhhospace.hpp>
#include <BoundaryConditions/BoundaryConditions.hpp>
#include <integralweight.hpp>
Include dependency graph for hho-brinkman.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  HArDCore3D::BrinkmanParameters
 Structure to store physical parameter (and compute derived parameters) More...
 
struct  HArDCore3D::BrinkmanNorms
 Structure to store norm components (energy for velocity, L2 pressure, and global) More...
 
struct  HArDCore3D::Brinkman
 Structure for Brinkman model. More...
 

Namespaces

namespace  HArDCore3D
 

Variables

static const double HArDCore3D::PI = boost::math::constants::pi<double>()
 
double HArDCore3D::scaling_mu = 1.
 
double HArDCore3D::scaling_kappainv = 1.
 
double constexpr HArDCore3D::eps =1e-14
 
static BrinkmanParameters::ViscosityType HArDCore3D::linear_mu = BrinkmanParameters::ViscosityType(1.)
 
static BrinkmanParameters::PermeabilityInvType HArDCore3D::linear_kappainv = BrinkmanParameters::PermeabilityInvType(1.)
 
static const MatrixRd HArDCore3D::mat_u = (MatrixRd() << 1.,2.,3., 0.,-1.,1. , 0.,1.,1.).finished()
 
static const VectorRd HArDCore3D::vec_p = VectorRd(-1., 2., -5.)
 
static Brinkman::VelocityType HArDCore3D::linear_u
 
static Brinkman::PressureType HArDCore3D::linear_p
 
static Brinkman::VelocityGradientType HArDCore3D::linear_gradu
 
static Brinkman::PressureGradientType HArDCore3D::linear_gradp
 
static Brinkman::MomentumForcingTermType HArDCore3D::linear_f
 
static Brinkman::CompressibilityForcingTermType HArDCore3D::linear_g = [](const VectorRd & x)->double { return linear_gradu(x).trace();}
 
static BrinkmanParameters::ViscosityType HArDCore3D::quadratic_mu = BrinkmanParameters::ViscosityType(1.)
 
static BrinkmanParameters::PermeabilityInvType HArDCore3D::quadratic_kappainv = BrinkmanParameters::PermeabilityInvType(1.)
 
static Brinkman::VelocityType HArDCore3D::quadratic_u
 
static Brinkman::VelocityGradientType HArDCore3D::quadratic_gradu
 
static Brinkman::PressureType HArDCore3D::quadratic_p
 
static Brinkman::PressureGradientType HArDCore3D::quadratic_gradp
 
static Brinkman::MomentumForcingTermType HArDCore3D::quadratic_f
 
static Brinkman::CompressibilityForcingTermType HArDCore3D::quadratic_g = [](const VectorRd & x)->double { return quadratic_gradu(x).trace();}
 
static BrinkmanParameters::ViscosityType HArDCore3D::cubic_mu = BrinkmanParameters::ViscosityType(1.)
 
static BrinkmanParameters::PermeabilityInvType HArDCore3D::cubic_kappainv = BrinkmanParameters::PermeabilityInvType(1.)
 
static Brinkman::VelocityType HArDCore3D::cubic_u
 
static Brinkman::VelocityGradientType HArDCore3D::cubic_gradu
 
static Brinkman::PressureType HArDCore3D::cubic_p
 
static Brinkman::PressureGradientType HArDCore3D::cubic_gradp
 
static Brinkman::MomentumForcingTermType HArDCore3D::cubic_f
 
static Brinkman::CompressibilityForcingTermType HArDCore3D::cubic_g = [](const VectorRd & x)->double { return cubic_gradu(x).trace();}
 
static BrinkmanParameters::ViscosityType HArDCore3D::trigonometric_mu = BrinkmanParameters::ViscosityType(1.)
 
static BrinkmanParameters::PermeabilityInvType HArDCore3D::trigonometric_kappainv = BrinkmanParameters::PermeabilityInvType(1.)
 
static Brinkman::VelocityType HArDCore3D::trigonometric_u
 
static Brinkman::VelocityGradientType HArDCore3D::trigonometric_gradu
 
static Brinkman::PressureType HArDCore3D::trigonometric_p
 
static Brinkman::PressureGradientType HArDCore3D::trigonometric_gradp
 
static Brinkman::MomentumForcingTermType HArDCore3D::trigonometric_f
 
static Brinkman::CompressibilityForcingTermType HArDCore3D::trigonometric_g = [](const VectorRd & x)->double { return trigonometric_gradu(x).trace();}
 
static BrinkmanParameters::ViscosityType HArDCore3D::regimes_mu = BrinkmanParameters::ViscosityType(1.)
 
static BrinkmanParameters::PermeabilityInvType HArDCore3D::regimes_kappainv = BrinkmanParameters::PermeabilityInvType(1.)
 
static Brinkman::PressureType HArDCore3D::regimes_p = trigonometric_p
 
static Brinkman::PressureGradientType HArDCore3D::regimes_gradp = trigonometric_gradp
 
static Brinkman::VelocityType HArDCore3D::regimes_uD
 
static Brinkman::VelocityGradientType HArDCore3D::regimes_graduD
 
static Brinkman::VelocityType HArDCore3D::regimes_uS = trigonometric_u
 
static Brinkman::VelocityGradientType HArDCore3D::regimes_graduS = trigonometric_gradu
 
static std::function< double(const VectorRd &)> HArDCore3D::XiS
 
static Brinkman::VelocityType HArDCore3D::regimes_u = [](const VectorRd & x) -> VectorRd { return XiS(x) * regimes_uS(x) + (1.-XiS(x)) * regimes_uD(x);}
 
static Brinkman::VelocityGradientType HArDCore3D::regimes_gradu = [](const VectorRd & x) -> MatrixRd { return XiS(x) * regimes_graduS(x) + (1.-XiS(x)) * regimes_graduD(x);}
 
static Brinkman::MomentumForcingTermType HArDCore3D::regimes_f
 
static Brinkman::CompressibilityForcingTermType HArDCore3D::regimes_g = [](const VectorRd & x)->double { return regimes_gradu(x).trace() ;}
 
static std::function< double(const VectorRd &)> HArDCore3D::XiV = [](const VectorRd & x)->double { return (x.z() > 2*std::abs(x.x()-1.)+0.5-eps); }
 
static BrinkmanParameters::ViscosityType HArDCore3D::vcracked_mu = BrinkmanParameters::ViscosityType([](const VectorRd & x)->double { return 0.01 * XiV(x);})
 
static BrinkmanParameters::PermeabilityInvType HArDCore3D::vcracked_kappainv = BrinkmanParameters::PermeabilityInvType([](const VectorRd & x)->double { return 1e-5*(1.-XiV(x)) + 0.001*XiV(x);})
 
static Brinkman::VelocityType HArDCore3D::vcracked_u
 
static Brinkman::VelocityGradientType HArDCore3D::vcracked_gradu
 
static Brinkman::PressureType HArDCore3D::vcracked_p
 
static Brinkman::PressureGradientType HArDCore3D::vcracked_gradp
 
static Brinkman::MomentumForcingTermType HArDCore3D::vcracked_f
 
static Brinkman::CompressibilityForcingTermType HArDCore3D::vcracked_g
 
static std::function< double(const VectorRd &)> HArDCore3D::XiCavity
 
static std::function< double(const VectorRd &)> HArDCore3D::XiWedge
 
static std::function< double(const VectorRd &)> HArDCore3D::XiBox = [](const VectorRd & x)->double { return 1. - XiCavity(x) - XiWedge(x); }
 
constexpr double HArDCore3D::viscosity_in_cavity = 0.01
 
static BrinkmanParameters::ViscosityType HArDCore3D::cavity_mu = viscosity_in_cavity * BrinkmanParameters::ViscosityType(XiCavity)
 
constexpr double HArDCore3D::permeability_in_wedge = 1e-2
 
constexpr double HArDCore3D::permeability_in_box = 1e-7
 
static BrinkmanParameters::PermeabilityInvType HArDCore3D::cavity_kappainv
 
static Brinkman::VelocityType HArDCore3D::cavity_u
 
static Brinkman::VelocityGradientType HArDCore3D::cavity_gradu
 
static Brinkman::PressureType HArDCore3D::cavity_p
 
static Brinkman::PressureGradientType HArDCore3D::cavity_gradp
 
static Brinkman::MomentumForcingTermType HArDCore3D::cavity_f
 
static Brinkman::CompressibilityForcingTermType HArDCore3D::cavity_g
 
static std::function< double(const VectorRd &)> HArDCore3D::Xi_S
 
static std::function< double(const VectorRd &)> HArDCore3D::Xi_D
 
constexpr double HArDCore3D::viscosity_S = 1.
 
constexpr double HArDCore3D::viscosity_D = 0.
 
static BrinkmanParameters::ViscosityType HArDCore3D::tworegions_mu
 
constexpr double HArDCore3D::permeability_S = 1e-7
 
constexpr double HArDCore3D::permeability_D = 1e-2
 
static BrinkmanParameters::PermeabilityInvType HArDCore3D::tworegions_kappainv
 
static std::function< VectorRd(const VectorRd &)> HArDCore3D::alpha
 
static std::function< VectorRd(const VectorRd &)> HArDCore3D::beta_S
 
static std::function< VectorRd(const VectorRd &)> HArDCore3D::beta_D
 
static Brinkman::VelocityType HArDCore3D::tworegions_u
 
static Brinkman::VelocityGradientType HArDCore3D::grad_alpha
 
static Brinkman::VelocityGradientType HArDCore3D::grad_beta_S
 
static Brinkman::VelocityGradientType HArDCore3D::grad_beta_D
 
static Brinkman::VelocityGradientType HArDCore3D::tworegions_gradu
 
static Brinkman::PressureType HArDCore3D::tworegions_p = trigonometric_p
 
static Brinkman::PressureGradientType HArDCore3D::tworegions_gradp = trigonometric_gradp
 
static Brinkman::MomentumForcingTermType HArDCore3D::DivGrad_alpha
 
static Brinkman::MomentumForcingTermType HArDCore3D::DivGrad_beta_S
 
static Brinkman::MomentumForcingTermType HArDCore3D::DivGrad_beta_D
 
static Brinkman::MomentumForcingTermType HArDCore3D::tworegions_f
 
static Brinkman::CompressibilityForcingTermType HArDCore3D::tworegions_g = [](const VectorRd & x)->double { return tworegions_gradu(x).trace();}