HArD::Core2D
Hybrid Arbitrary Degree::Core 2D - Library to implement 2D schemes with edge and cell polynomials as unknowns
|
Classes providing tools to the Discrete De Rham sequence. More...
Classes | |
class | HArDCore2D::DDRCore |
Construct all polynomial spaces for the DDR sequence. More... | |
struct | HArDCore2D::DDRCore::CellBases |
Structure to store element bases. More... | |
struct | HArDCore2D::DDRCore::EdgeBases |
Structure to store edge bases. More... | |
class | HArDCore2D::EXCurl |
Extended XCurl space, with vector-valued polynomials on the edges. More... | |
struct | HArDCore2D::EXCurl::hhoLocalOperators |
A structure to store the local HHO operators. More... | |
class | HArDCore2D::XCurl |
Discrete Hcurl space: local operators, L2 product and global interpolator. More... | |
struct | HArDCore2D::XCurl::LocalOperators |
A structure to store the local operators (curl and potential) More... | |
class | HArDCore2D::XGrad |
Discrete H1 space: local operators, L2 product and global interpolator. More... | |
struct | HArDCore2D::XGrad::LocalOperators |
A structure to store local operators (gradient and potential) More... | |
class | HArDCore2D::XRot |
Discrete H1 space: local operators, L2 product and global interpolator. More... | |
struct | HArDCore2D::XRot::LocalOperators |
A structure to store local operators (vector rotor and potential) More... | |
class | HArDCore2D::XRotRot |
Discrete HRotRot space: local operators, L2 product and global interpolator. More... | |
struct | HArDCore2D::XRotRot::LocalOperators |
A structure to store the local operators (scalar rotor and potential) More... | |
Functions | |
HArDCore2D::DDRCore::DDRCore (const Mesh &mesh, size_t K, bool use_threads=true, std::ostream &output=std::cout) | |
Constructor. | |
const Mesh & | HArDCore2D::DDRCore::mesh () const |
Return a const reference to the mesh. | |
const size_t & | HArDCore2D::DDRCore::degree () const |
Return the polynomial degree. | |
const CellBases & | HArDCore2D::DDRCore::cellBases (size_t iT) const |
Return cell bases for element iT. | |
const EdgeBases & | HArDCore2D::DDRCore::edgeBases (size_t iE) const |
Return edge bases for edge iE. | |
HArDCore2D::EXCurl::hhoLocalOperators::hhoLocalOperators (const Eigen::MatrixXd &_gradient, const Eigen::MatrixXd &_symmetric_gradient, const Eigen::MatrixXd &_potential, const Eigen::MatrixXd &_stabilisation) | |
HArDCore2D::EXCurl::EXCurl (const DDRCore &ddr_core, bool use_threads=true, std::ostream &output=std::cout) | |
Constructor. | |
const Mesh & | HArDCore2D::EXCurl::mesh () const |
Return the mesh. | |
const size_t & | HArDCore2D::EXCurl::degree () const |
Return the polynomial degree. | |
Eigen::VectorXd | HArDCore2D::EXCurl::interpolate (const FunctionType &v, const int deg_quad=-1) const |
Interpolator of a continuous function. | |
const Eigen::MatrixXd | HArDCore2D::EXCurl::ddrPotential (size_t iT) const |
Return cell potential for the cell of index iT. | |
const Eigen::MatrixXd | HArDCore2D::EXCurl::ddrCurl (size_t iT) const |
Return cell (scalar) curl for the cell of index iT. | |
const Eigen::MatrixXd | HArDCore2D::EXCurl::ddrPotential (const Cell &T) const |
Return cell potential for cell T. | |
const Eigen::MatrixXd | HArDCore2D::EXCurl::ddrCurl (const Cell &T) const |
Return cell (scalar) curl for cell T. | |
const hhoLocalOperators & | HArDCore2D::EXCurl::hhoOperators (size_t iT) const |
Return hho operators for the cell of index iT. | |
const hhoLocalOperators & | HArDCore2D::EXCurl::hhoOperators (const Cell &T) const |
Return cell operators for cell T. | |
const DDRCore::CellBases & | HArDCore2D::EXCurl::cellBases (size_t iT) const |
Return ddrcore cell bases for the cell of index iT. | |
const DDRCore::CellBases & | HArDCore2D::EXCurl::cellBases (const Cell &T) const |
Return ddrcore cell bases for cell T. | |
const Polyk2x2Type & | HArDCore2D::EXCurl::Polyk2x2 (size_t iT) const |
Return basis for Matricial P^k space. | |
const Polykpo2Type & | HArDCore2D::EXCurl::Polykpo2 (size_t iT) const |
Return basis for the (P^{k+1})^2 space. | |
const DDRCore::EdgeBases & | HArDCore2D::EXCurl::edgeBases (size_t iE) const |
Return ddrcore edge bases for the edge of index iE. | |
const DDRCore::EdgeBases & | HArDCore2D::EXCurl::edgeBases (const Edge &E) const |
Return ddrcore edge bases for edge E. | |
Eigen::MatrixXd | HArDCore2D::EXCurl::computeL2Product (const size_t iT, const double &penalty_factor=1., const Eigen::MatrixXd &mass_Pk2_T=Eigen::MatrixXd::Zero(1, 1), const IntegralWeight &weight=IntegralWeight(1.)) const |
Compute the matrix of the (weighted) L2-product for the cell of index iT. | |
Eigen::MatrixXd | HArDCore2D::EXCurl::computeL2ProductGradient (const size_t iT, const XGrad &x_grad, const std::string &side, const double &penalty_factor=1., const Eigen::MatrixXd &mass_Pk2_T=Eigen::MatrixXd::Zero(1, 1), const IntegralWeight &weight=IntegralWeight(1.)) const |
Compute the matrix of the (weighted) L2-product as 'computeL2Product', with application of the discrete gradient on the left/right/both sides (depending on argument "side"). | |
Eigen::MatrixXd | HArDCore2D::EXCurl::computeL2Product_with_Ops (const size_t iT, const std::vector< Eigen::MatrixXd > &leftOp, const std::vector< Eigen::MatrixXd > &rightOp, const double &penalty_factor, const Eigen::MatrixXd &w_mass_Pk2_T, const IntegralWeight &weight) const |
Compute the matrix of the L2 product, applying leftOp and rightOp to the variables. Probably not directly called, mostly invoked through the wrappers computeL2Product and computeL2ProductGradient. | |
HArDCore2D::XCurl::LocalOperators::LocalOperators (const Eigen::MatrixXd &_curl, const Eigen::MatrixXd &_potential) | |
HArDCore2D::XCurl::XCurl (const DDRCore &ddr_core, bool use_threads=true, std::ostream &output=std::cout) | |
Constructor. | |
const Mesh & | HArDCore2D::XCurl::mesh () const |
Return the mesh. | |
const size_t & | HArDCore2D::XCurl::degree () const |
Return the polynomial degree. | |
Eigen::VectorXd | HArDCore2D::XCurl::interpolate (const FunctionType &v, const int deg_quad=-1) const |
Interpolator of a continuous function. | |
const LocalOperators & | HArDCore2D::XCurl::cellOperators (size_t iT) const |
Return cell operators for the cell of index iT. | |
const LocalOperators & | HArDCore2D::XCurl::cellOperators (const Cell &T) const |
Return cell operators for cell T. | |
const DDRCore::CellBases & | HArDCore2D::XCurl::cellBases (size_t iT) const |
Return cell bases for the cell of index iT. | |
const DDRCore::CellBases & | HArDCore2D::XCurl::cellBases (const Cell &T) const |
Return cell bases for cell T. | |
const DDRCore::EdgeBases & | HArDCore2D::XCurl::edgeBases (size_t iE) const |
Return edge bases for the edge of index iE. | |
const DDRCore::EdgeBases & | HArDCore2D::XCurl::edgeBases (const Edge &E) const |
Return edge bases for edge E. | |
Eigen::MatrixXd | HArDCore2D::XCurl::computeL2Product (const size_t iT, const double &penalty_factor=1., const Eigen::MatrixXd &mass_Pk2_T=Eigen::MatrixXd::Zero(1, 1), const IntegralWeight &weight=IntegralWeight(1.)) const |
Compute the matrix of the (weighted) L2-product for the cell of index iT. | |
Eigen::MatrixXd | HArDCore2D::XCurl::computeL2ProductGradient (const size_t iT, const XGrad &x_grad, const std::string &side, const double &penalty_factor=1., const Eigen::MatrixXd &mass_Pk2_T=Eigen::MatrixXd::Zero(1, 1), const IntegralWeight &weight=IntegralWeight(1.)) const |
Compute the matrix of the (weighted) L2-product as 'computeL2Product', with application of the discrete gradient on the left/right/both sides (depending on argument "side"). | |
Eigen::MatrixXd | HArDCore2D::XCurl::computeL2Product_with_Ops (const size_t iT, const std::vector< Eigen::MatrixXd > &leftOp, const std::vector< Eigen::MatrixXd > &rightOp, const double &penalty_factor, const Eigen::MatrixXd &w_mass_Pk2_T, const IntegralWeight &weight) const |
Compute the matrix of the L2 product, applying leftOp and rightOp to the variables. Probably not directly called, mostly invoked through the wrappers computeL2Product and computeL2ProductGradient. | |
HArDCore2D::XGrad::LocalOperators::LocalOperators (const Eigen::MatrixXd &_gradient, const Eigen::MatrixXd &_potential) | |
HArDCore2D::XGrad::XGrad (const DDRCore &ddr_core, bool use_threads=true, std::ostream &output=std::cout) | |
Constructor. | |
const Mesh & | HArDCore2D::XGrad::mesh () const |
Return the mesh. | |
const size_t & | HArDCore2D::XGrad::degree () const |
Return the polynomial degree. | |
Eigen::VectorXd | HArDCore2D::XGrad::interpolate (const FunctionType &q, const int deg_quad=-1) const |
Interpolator of a continuous function. | |
const LocalOperators & | HArDCore2D::XGrad::edgeOperators (size_t iE) const |
Return edge operators for the edge of index iE. | |
const LocalOperators & | HArDCore2D::XGrad::edgeOperators (const Edge &E) const |
Return edge operators for edge E. | |
const LocalOperators & | HArDCore2D::XGrad::cellOperators (size_t iT) const |
Return cell operators for the cell of index iT. | |
const LocalOperators & | HArDCore2D::XGrad::cellOperators (const Cell &T) const |
Return cell operators for cell T. | |
const DDRCore::CellBases & | HArDCore2D::XGrad::cellBases (size_t iT) const |
Return cell bases for the cell of index iT. | |
const DDRCore::CellBases & | HArDCore2D::XGrad::cellBases (const Cell &T) const |
Return cell bases for cell T. | |
const DDRCore::EdgeBases & | HArDCore2D::XGrad::edgeBases (size_t iE) const |
Return edge bases for the edge of index iE. | |
const DDRCore::EdgeBases & | HArDCore2D::XGrad::edgeBases (const Edge &E) const |
Return edge bases for edge E. | |
Eigen::MatrixXd | HArDCore2D::XGrad::computeL2Product (const size_t iT, const double &penalty_factor=1., const Eigen::MatrixXd &mass_Pkpo_T=Eigen::MatrixXd::Zero(1, 1), const IntegralWeight &weight=IntegralWeight(1.)) const |
Compute the matrix of the (weighted) L2-product for the cell of index iT. | |
double | HArDCore2D::XGrad::evaluatePotential (const size_t iT, const Eigen::VectorXd &vT, const VectorRd &x) const |
Evaluate the value of the potential at a point x. | |
double | HArDCore2D::XGrad::computeL2Norm (const Eigen::VectorXd &v) const |
Compute the L2-norm of a vector of the space. | |
HArDCore2D::XRot::LocalOperators::LocalOperators (const Eigen::MatrixXd &_rotor, const Eigen::MatrixXd &_rotor_rhs, const Eigen::MatrixXd &_potential) | |
HArDCore2D::XRot::XRot (const DDRCore &ddr_core, bool use_threads=true, std::ostream &output=std::cout) | |
Constructor. | |
const Mesh & | HArDCore2D::XRot::mesh () const |
Return the mesh. | |
const bool | HArDCore2D::XRot::useThreads () const |
Return true if we use thread-based parallelism. | |
const size_t & | HArDCore2D::XRot::degree () const |
Return the polynomial degree. | |
Eigen::VectorXd | HArDCore2D::XRot::interpolate (const FunctionType &q, const int deg_quad=-1) const |
Interpolator of a continuous function. | |
const Eigen::MatrixXd & | HArDCore2D::XRot::edgePotential (size_t iE) const |
Return edge potential for the edge of index iE. | |
const Eigen::MatrixXd & | HArDCore2D::XRot::edgePotential (const Edge &E) const |
Return edge potential for the edge E. | |
const LocalOperators & | HArDCore2D::XRot::cellOperators (size_t iT) const |
Return cell operators for the cell of index iT. | |
const LocalOperators & | HArDCore2D::XRot::cellOperators (const Cell &T) const |
Return cell operators for cell T. | |
const DDRCore::CellBases & | HArDCore2D::XRot::cellBases (size_t iT) const |
Return cell bases for the cell of index iT. | |
const DDRCore::CellBases & | HArDCore2D::XRot::cellBases (const Cell &T) const |
Return cell bases for cell T. | |
const DDRCore::EdgeBases & | HArDCore2D::XRot::edgeBases (size_t iE) const |
Return edge bases for the edge of index iE. | |
const DDRCore::EdgeBases & | HArDCore2D::XRot::edgeBases (const Edge &E) const |
Return edge bases for edge E. | |
Eigen::MatrixXd | HArDCore2D::XRot::computeRotorL2Product (const size_t iT, const double &penalty_factor_cell=1., const double &penalty_factor_edge=1.) const |
Compute rotor L2-product. | |
double | HArDCore2D::XRot::computeRotorL2Norm (const Eigen::VectorXd &v) const |
Compute rotor L2-norm. | |
HArDCore2D::XRotRot::LocalOperators::LocalOperators (const Eigen::MatrixXd &_rotor, const Eigen::MatrixXd &_potential) | |
HArDCore2D::XRotRot::XRotRot (const DDRCore &ddr_core, bool use_threads=true, std::ostream &output=std::cout) | |
Constructor. | |
const Mesh & | HArDCore2D::XRotRot::mesh () const |
Return the mesh. | |
const size_t & | HArDCore2D::XRotRot::degree () const |
Return the polynomial degree. | |
Eigen::VectorXd | HArDCore2D::XRotRot::interpolate (const FunctionType &v, const RotType &rot_v, const int deg_quad=-1) const |
Interpolator of a continuous function. | |
const LocalOperators & | HArDCore2D::XRotRot::cellOperators (size_t iT) const |
Return cell operators for the cell of index iT. | |
const LocalOperators & | HArDCore2D::XRotRot::cellOperators (const Cell &T) const |
Return cell operators for cell T. | |
Eigen::MatrixXd | HArDCore2D::XRotRot::cellRotor (size_t iT) const |
Return cell rotor for cell of index iT. | |
Eigen::MatrixXd | HArDCore2D::XRotRot::cellRotor (const Cell &T) const |
Return cell rotor for cell T. | |
const DDRCore::CellBases & | HArDCore2D::XRotRot::cellBases (size_t iT) const |
Return cell bases for the cell of index iT. | |
const DDRCore::CellBases & | HArDCore2D::XRotRot::cellBases (const Cell &T) const |
Return cell bases for cell T. | |
const DDRCore::EdgeBases & | HArDCore2D::XRotRot::edgeBases (size_t iE) const |
Return edge bases for the edge of index iE. | |
const DDRCore::EdgeBases & | HArDCore2D::XRotRot::edgeBases (const Edge &E) const |
Return edge bases for edge E. | |
Eigen::MatrixXd | HArDCore2D::XRotRot::computeL2Product (size_t iT, const double &penalty_factor=1., const IntegralWeight &weight=IntegralWeight(1.)) const |
Compute the matrix of the (weighted) L2-product for the cell of index iT. | |
Eigen::MatrixXd | HArDCore2D::XRotRot::computeGradientPotentialL2Product (size_t iT, const XGrad *x_grad, const double &penalty_factor=1., const IntegralWeight &weight=IntegralWeight(1.)) const |
Compute the matrix of the (weighted) L2-product as 'computeL2Product', with application of the discrete gradient on the left side. | |
Eigen::MatrixXd | HArDCore2D::XRotRot::computeGradientL2Product (size_t iT, const XGrad *x_grad, const double &penalty_factor=1., const IntegralWeight &weight=IntegralWeight(1.)) const |
Compute the matrix of the (weighted) gradient-gradient L2-product. | |
template<typename LeftOperatorFillerType , typename RightOperatorFillerType > | |
Eigen::MatrixXd | HArDCore2D::XRotRot::computeL2ProductWithOperatorFillers (size_t iT, const double &penalty_factor, const IntegralWeight &weight, LeftOperatorFillerType fillLeftOp, RightOperatorFillerType fillRightOp) const |
Compute the matrix of the L2 product given operators filling functions. | |
double | HArDCore2D::XRotRot::computeL2Norm (const Eigen::VectorXd &v) const |
Compute the L2-norm of a vector of the space. | |
double | HArDCore2D::XRotRot::computeGradientL2Norm (const Eigen::VectorXd &v, const XGrad *x_grad) const |
Compute the L2-norm of the discrete gradient of a vector in XGrad. | |
Classes providing tools to the Discrete De Rham sequence.
typedef std::function<Eigen::Vector2d(const Eigen::Vector2d &)> HArDCore2D::EXCurl::FunctionType |
typedef std::function<Eigen::Vector2d(const Eigen::Vector2d &)> HArDCore2D::XCurl::FunctionType |
typedef std::function<double(const Eigen::Vector2d &)> HArDCore2D::XGrad::FunctionType |
typedef std::function<double(const Eigen::Vector2d &)> HArDCore2D::XRot::FunctionType |
typedef std::function<Eigen::Vector2d(const Eigen::Vector2d &)> HArDCore2D::XRotRot::FunctionType |
typedef Cell HArDCore2D::DDRCore::CellBases::GeometricSupport |
Geometric support.
typedef Edge HArDCore2D::DDRCore::EdgeBases::GeometricSupport |
Geometric support.
typedef Family<GradientBasis<ShiftedBasis<MonomialScalarBasisCell> > > HArDCore2D::DDRCore::GolyBasisCellType |
typedef TensorizedVectorFamily<DDRCore::PolyBasisCellType, dimspace> HArDCore2D::EXCurl::Polykpo2Type |
typedef Family<CurlBasis<ShiftedBasis<MonomialScalarBasisCell> > > HArDCore2D::DDRCore::RolyBasisCellType |
typedef std::function<double(const Eigen::Vector2d &)> HArDCore2D::XRotRot::RotType |
|
inline |
Return ddrcore cell bases for cell T.
|
inline |
Return cell bases for cell T.
|
inline |
Return cell bases for cell T.
|
inline |
Return cell bases for cell T.
|
inline |
Return cell bases for cell T.
|
inline |
Return cell bases for element iT.
|
inline |
Return ddrcore cell bases for the cell of index iT.
|
inline |
Return cell bases for the cell of index iT.
|
inline |
Return cell bases for the cell of index iT.
|
inline |
Return cell bases for the cell of index iT.
|
inline |
Return cell bases for the cell of index iT.
|
inline |
Return cell operators for cell T.
|
inline |
Return cell operators for cell T.
|
inline |
Return cell operators for cell T.
|
inline |
Return cell operators for cell T.
|
inline |
Return cell operators for the cell of index iT.
|
inline |
Return cell operators for the cell of index iT.
|
inline |
Return cell operators for the cell of index iT.
|
inline |
Return cell operators for the cell of index iT.
|
inline |
Return cell rotor for cell T.
|
inline |
Return cell rotor for cell of index iT.
double XRotRot::computeGradientL2Norm | ( | const Eigen::VectorXd & | v, |
const XGrad * | x_grad | ||
) | const |
Compute the L2-norm of the discrete gradient of a vector in XGrad.
Eigen::MatrixXd XRotRot::computeGradientL2Product | ( | size_t | iT, |
const XGrad * | x_grad, | ||
const double & | penalty_factor = 1. , |
||
const IntegralWeight & | weight = IntegralWeight(1.) |
||
) | const |
Compute the matrix of the (weighted) gradient-gradient L2-product.
iT | Index of the cell |
x_grad | Instance of XGrad to access the full gradients |
penalty_factor | Pre-factor for stabilisation term |
weight | Weight function in the L2 product, defaults to constant 1. |
Eigen::MatrixXd XRotRot::computeGradientPotentialL2Product | ( | size_t | iT, |
const XGrad * | x_grad, | ||
const double & | penalty_factor = 1. , |
||
const IntegralWeight & | weight = IntegralWeight(1.) |
||
) | const |
Compute the matrix of the (weighted) L2-product as 'computeL2Product', with application of the discrete gradient on the left side.
iT | Index of the cell |
x_grad | Instance of XGrad to access the full gradients |
penalty_factor | Pre-factor for stabilisation term |
weight | Weight function in the L2 product, defaults to constant 1. |
double XGrad::computeL2Norm | ( | const Eigen::VectorXd & | v | ) | const |
Compute the L2-norm of a vector of the space.
double XRotRot::computeL2Norm | ( | const Eigen::VectorXd & | v | ) | const |
Compute the L2-norm of a vector of the space.
Eigen::MatrixXd EXCurl::computeL2Product | ( | const size_t | iT, |
const double & | penalty_factor = 1. , |
||
const Eigen::MatrixXd & | mass_Pk2_T = Eigen::MatrixXd::Zero(1,1) , |
||
const IntegralWeight & | weight = IntegralWeight(1.) |
||
) | const |
Compute the matrix of the (weighted) L2-product for the cell of index iT.
iT | index of the cell |
penalty_factor | pre-factor for stabilisation term |
mass_Pk2_T | if pre-computed, the mass matrix of (P^k(T))^3; if none is pre-computed, passing Eigen::MatrixXd::Zero(1,1) will force the calculation |
weight | weight function in the L2 product, defaults to 1 |
Eigen::MatrixXd XCurl::computeL2Product | ( | const size_t | iT, |
const double & | penalty_factor = 1. , |
||
const Eigen::MatrixXd & | mass_Pk2_T = Eigen::MatrixXd::Zero(1,1) , |
||
const IntegralWeight & | weight = IntegralWeight(1.) |
||
) | const |
Compute the matrix of the (weighted) L2-product for the cell of index iT.
iT | index of the cell |
penalty_factor | pre-factor for stabilisation term |
mass_Pk2_T | if pre-computed, the mass matrix of (P^k(T))^3; if none is pre-computed, passing Eigen::MatrixXd::Zero(1,1) will force the calculation |
weight | weight function in the L2 product, defaults to 1 |
Eigen::MatrixXd XGrad::computeL2Product | ( | const size_t | iT, |
const double & | penalty_factor = 1. , |
||
const Eigen::MatrixXd & | mass_Pkpo_T = Eigen::MatrixXd::Zero(1,1) , |
||
const IntegralWeight & | weight = IntegralWeight(1.) |
||
) | const |
Compute the matrix of the (weighted) L2-product for the cell of index iT.
iT | index of the cell |
penalty_factor | pre-factor for stabilisation term |
mass_Pkpo_T | if pre-computed, the mass matrix of P^{k+1}(T); if none is pre-computed, passing Eigen::MatrixXd::Zero(1,1) will force the calculation |
weight | weight function in the L2 product, defaults to 1 |
Eigen::MatrixXd XRotRot::computeL2Product | ( | size_t | iT, |
const double & | penalty_factor = 1. , |
||
const IntegralWeight & | weight = IntegralWeight(1.) |
||
) | const |
Compute the matrix of the (weighted) L2-product for the cell of index iT.
iT | Index of the cell |
penalty_factor | Pre-factor for stabilisation term |
weight | Weight function in the L2 product, defaults to 1 |
Eigen::MatrixXd HArDCore2D::EXCurl::computeL2Product_with_Ops | ( | const size_t | iT, |
const std::vector< Eigen::MatrixXd > & | leftOp, | ||
const std::vector< Eigen::MatrixXd > & | rightOp, | ||
const double & | penalty_factor, | ||
const Eigen::MatrixXd & | w_mass_Pk2_T, | ||
const IntegralWeight & | weight | ||
) | const |
Compute the matrix of the L2 product, applying leftOp and rightOp to the variables. Probably not directly called, mostly invoked through the wrappers computeL2Product and computeL2ProductGradient.
iT | index of the cell |
leftOp | edge and element operators to apply on the left |
rightOp | edge and element operators to apply on the right |
penalty_factor | pre-factor for stabilisation term |
w_mass_Pk2_T | mass matrix of (P^k(T))^3 weighted by weight |
weight | weight function in the L2 product |
Eigen::MatrixXd XCurl::computeL2Product_with_Ops | ( | const size_t | iT, |
const std::vector< Eigen::MatrixXd > & | leftOp, | ||
const std::vector< Eigen::MatrixXd > & | rightOp, | ||
const double & | penalty_factor, | ||
const Eigen::MatrixXd & | w_mass_Pk2_T, | ||
const IntegralWeight & | weight | ||
) | const |
Compute the matrix of the L2 product, applying leftOp and rightOp to the variables. Probably not directly called, mostly invoked through the wrappers computeL2Product and computeL2ProductGradient.
iT | index of the cell |
leftOp | edge and element operators to apply on the left |
rightOp | edge and element operators to apply on the right |
penalty_factor | pre-factor for stabilisation term |
w_mass_Pk2_T | mass matrix of (P^k(T))^3 weighted by weight |
weight | weight function in the L2 product |
Eigen::MatrixXd EXCurl::computeL2ProductGradient | ( | const size_t | iT, |
const XGrad & | x_grad, | ||
const std::string & | side, | ||
const double & | penalty_factor = 1. , |
||
const Eigen::MatrixXd & | mass_Pk2_T = Eigen::MatrixXd::Zero(1,1) , |
||
const IntegralWeight & | weight = IntegralWeight(1.) |
||
) | const |
Compute the matrix of the (weighted) L2-product as 'computeL2Product', with application of the discrete gradient on the left/right/both sides (depending on argument "side").
iT | index of the cell |
x_grad | instance of XGrad to access the full gradients |
side | which side (left, right, both) we apply the gradient to |
penalty_factor | pre-factor for stabilisation term |
mass_Pk2_T | if pre-computed, the mass matrix of (P^k(T))^3; if none is pre-computed, passing Eigen::MatrixXd::Zero(1,1) will force the calculation |
weight | weight function in the L2 product, defaults to constant 1. |
Eigen::MatrixXd XCurl::computeL2ProductGradient | ( | const size_t | iT, |
const XGrad & | x_grad, | ||
const std::string & | side, | ||
const double & | penalty_factor = 1. , |
||
const Eigen::MatrixXd & | mass_Pk2_T = Eigen::MatrixXd::Zero(1,1) , |
||
const IntegralWeight & | weight = IntegralWeight(1.) |
||
) | const |
Compute the matrix of the (weighted) L2-product as 'computeL2Product', with application of the discrete gradient on the left/right/both sides (depending on argument "side").
iT | index of the cell |
x_grad | instance of XGrad to access the full gradients |
side | which side (left, right, both) we apply the gradient to |
penalty_factor | pre-factor for stabilisation term |
mass_Pk2_T | if pre-computed, the mass matrix of (P^k(T))^3; if none is pre-computed, passing Eigen::MatrixXd::Zero(1,1) will force the calculation |
weight | weight function in the L2 product, defaults to constant 1. |
Eigen::MatrixXd HArDCore2D::XRotRot::computeL2ProductWithOperatorFillers | ( | size_t | iT, |
const double & | penalty_factor, | ||
const IntegralWeight & | weight, | ||
LeftOperatorFillerType | fillLeftOp, | ||
RightOperatorFillerType | fillRightOp | ||
) | const |
Compute the matrix of the L2 product given operators filling functions.
iT | Index of the cell |
penalty_factor | Penalty factor for stabilisation term |
weight | Weight function in the L2 product |
fillLeftOp | Function to fill the left-hand side operator |
fillRightOp | Function to fill the right-hand side operator |
double XRot::computeRotorL2Norm | ( | const Eigen::VectorXd & | v | ) | const |
Compute rotor L2-norm.
Eigen::MatrixXd XRot::computeRotorL2Product | ( | const size_t | iT, |
const double & | penalty_factor_cell = 1. , |
||
const double & | penalty_factor_edge = 1. |
||
) | const |
Compute rotor L2-product.
iT | Index of the cell |
penalty_factor_cell | Coefficient for the cell-based term |
penalty_factor_edge | Coefficient for the edge-based term |
DDRCore::DDRCore | ( | const Mesh & | mesh, |
size_t | K, | ||
bool | use_threads = true , |
||
std::ostream & | output = std::cout |
||
) |
Constructor.
|
inline |
Return cell (scalar) curl for cell T.
|
inline |
Return cell (scalar) curl for the cell of index iT.
|
inline |
Return cell potential for cell T.
|
inline |
Return cell potential for the cell of index iT.
|
inline |
Return the polynomial degree.
|
inline |
Return the polynomial degree.
|
inline |
Return the polynomial degree.
|
inline |
Return the polynomial degree.
|
inline |
Return the polynomial degree.
|
inline |
Return the polynomial degree.
|
inline |
Return ddrcore edge bases for edge E.
|
inline |
Return edge bases for edge E.
|
inline |
Return edge bases for edge E.
|
inline |
Return edge bases for edge E.
|
inline |
Return edge bases for edge E.
|
inline |
Return edge bases for edge iE.
|
inline |
Return ddrcore edge bases for the edge of index iE.
|
inline |
Return edge bases for the edge of index iE.
|
inline |
Return edge bases for the edge of index iE.
|
inline |
Return edge bases for the edge of index iE.
|
inline |
Return edge bases for the edge of index iE.
|
inline |
Return edge operators for edge E.
|
inline |
Return edge operators for the edge of index iE.
|
inline |
Return edge potential for the edge E.
|
inline |
Return edge potential for the edge of index iE.
double XGrad::evaluatePotential | ( | const size_t | iT, |
const Eigen::VectorXd & | vT, | ||
const VectorRd & | x | ||
) | const |
Evaluate the value of the potential at a point x.
iT | index of the cell in which to take the potential |
vT | vector of local DOFs |
x | point at which to evaluate the potential |
EXCurl::EXCurl | ( | const DDRCore & | ddr_core, |
bool | use_threads = true , |
||
std::ostream & | output = std::cout |
||
) |
Constructor.
|
inline |
_gradient | gradient operator |
_symmetric_gradient | symmetric gradient operator |
_potential | Potential operator |
_stabilisation | Stabilisation |
|
inline |
Return cell operators for cell T.
|
inline |
Return hho operators for the cell of index iT.
Eigen::VectorXd XGrad::interpolate | ( | const FunctionType & | q, |
const int | deg_quad = -1 |
||
) | const |
Interpolator of a continuous function.
q | The function to interpolate |
deg_quad | The optional degre of quadrature rules to compute the interpolate. If negative, then 2*degree()+3 will be used. |
Eigen::VectorXd XRot::interpolate | ( | const FunctionType & | q, |
const int | deg_quad = -1 |
||
) | const |
Interpolator of a continuous function.
q | The function to interpolate |
deg_quad | The optional degre of quadrature rules to compute the interpolate. If negative, then 2*degree()+3 will be used. |
Eigen::VectorXd EXCurl::interpolate | ( | const FunctionType & | v, |
const int | deg_quad = -1 |
||
) | const |
Interpolator of a continuous function.
v | The function to interpolate |
deg_quad | The optional degre of quadrature rules to compute the interpolate. If negative, then 2*degree()+3 will be used. |
Eigen::VectorXd XCurl::interpolate | ( | const FunctionType & | v, |
const int | deg_quad = -1 |
||
) | const |
Interpolator of a continuous function.
v | The function to interpolate |
deg_quad | The optional degre of quadrature rules to compute the interpolate. If negative, then 2*degree()+3 will be used. |
Eigen::VectorXd XRotRot::interpolate | ( | const FunctionType & | v, |
const RotType & | rot_v, | ||
const int | deg_quad = -1 |
||
) | const |
Interpolator of a continuous function.
v | The function to interpolate |
rot_v | Rotor of the function to interpolate |
deg_quad | The optional degre of quadrature rules to compute the interpolate. If negative, then 2*degree()+3 will be used. |
|
inline |
_curl | Curl operator |
_potential | Potential operator |
|
inline |
_gradient | Gradient operator |
_potential | Potential operator |
|
inline |
_rotor | Rot operator |
_potential | Potential operator |
|
inline |
_rotor | Vector rotor operator |
_rotor_rhs | Vector rotor right-hand side |
_potential | Potential operator |
|
inline |
Return a const reference to the mesh.
|
inline |
Return the mesh.
|
inline |
Return the mesh.
|
inline |
Return the mesh.
|
inline |
Return the mesh.
|
inline |
Return the mesh.
|
inline |
Return basis for Matricial P^k space.
|
inline |
Return basis for the (P^{k+1})^2 space.
|
inline |
Return true if we use thread-based parallelism.
XCurl::XCurl | ( | const DDRCore & | ddr_core, |
bool | use_threads = true , |
||
std::ostream & | output = std::cout |
||
) |
Constructor.
XGrad::XGrad | ( | const DDRCore & | ddr_core, |
bool | use_threads = true , |
||
std::ostream & | output = std::cout |
||
) |
Constructor.
XRot::XRot | ( | const DDRCore & | ddr_core, |
bool | use_threads = true , |
||
std::ostream & | output = std::cout |
||
) |
Constructor.
XRotRot::XRotRot | ( | const DDRCore & | ddr_core, |
bool | use_threads = true , |
||
std::ostream & | output = std::cout |
||
) |
Constructor.
Eigen::MatrixXd HArDCore2D::XCurl::LocalOperators::curl |
std::unique_ptr<GolyComplBasisCellType> HArDCore2D::DDRCore::CellBases::GolyComplkp2 |
Eigen::MatrixXd HArDCore2D::EXCurl::hhoLocalOperators::gradient |
Eigen::MatrixXd HArDCore2D::XGrad::LocalOperators::gradient |
std::unique_ptr<PolyBasisCellType> HArDCore2D::DDRCore::CellBases::Polyk |
std::unique_ptr<PolyBasisEdgeType> HArDCore2D::DDRCore::EdgeBases::Polyk |
std::unique_ptr<Poly2BasisCellType> HArDCore2D::DDRCore::CellBases::Polyk2 |
std::unique_ptr<PolyBasisCellType> HArDCore2D::DDRCore::CellBases::Polykmo |
std::unique_ptr<PolyBasisEdgeType> HArDCore2D::DDRCore::EdgeBases::Polykmo |
std::unique_ptr<Poly2BasisCellType> HArDCore2D::DDRCore::CellBases::Polykmo2 |
std::unique_ptr<PolyBasisCellType> HArDCore2D::DDRCore::CellBases::Polykmtwo |
std::unique_ptr<PolyBasisCellType> HArDCore2D::DDRCore::CellBases::Polykpo |
std::unique_ptr<PolyBasisEdgeType> HArDCore2D::DDRCore::EdgeBases::Polykpo |
Eigen::MatrixXd HArDCore2D::EXCurl::hhoLocalOperators::potential |
Eigen::MatrixXd HArDCore2D::XCurl::LocalOperators::potential |
Eigen::MatrixXd HArDCore2D::XGrad::LocalOperators::potential |
Eigen::MatrixXd HArDCore2D::XRot::LocalOperators::potential |
Eigen::MatrixXd HArDCore2D::XRotRot::LocalOperators::potential |
std::unique_ptr<RolyComplBasisCellType> HArDCore2D::DDRCore::CellBases::RolyComplk |
std::unique_ptr<RolyComplBasisCellType> HArDCore2D::DDRCore::CellBases::RolyComplkp2 |
std::unique_ptr<RolyBasisCellType> HArDCore2D::DDRCore::CellBases::Rolykmo |
Eigen::MatrixXd HArDCore2D::XRot::LocalOperators::rotor |
Eigen::MatrixXd HArDCore2D::XRotRot::LocalOperators::rotor |
Eigen::MatrixXd HArDCore2D::XRot::LocalOperators::rotor_rhs |
Eigen::MatrixXd HArDCore2D::EXCurl::hhoLocalOperators::stabilisation |
Eigen::MatrixXd HArDCore2D::EXCurl::hhoLocalOperators::symmetric_gradient |