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 | Typedefs | Functions
GMpoly_face.hpp File Reference
#include <cassert>
#include <cmath>
#include <algorithm>
#include <array>
#include <iostream>
#include <vector>
#include <unordered_map>
#include <mesh.hpp>
#include <quadraturerule.hpp>
#include <basis.hpp>
#include <typeinfo>
#include <GMpoly_cell.hpp>
Include dependency graph for GMpoly_face.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  HArDCore3D::VecFaceHash
 Hash function for VectorZd type. More...
 

Namespaces

namespace  HArDCore3D
 

Typedefs

typedef std::unordered_map< Eigen::Vector2i, double, VecFaceHashHArDCore3D::MonomialFaceIntegralsType
 Type for list of face integrals of monomials.
 

Functions

std::vector< MonomialFaceIntegralsTypeHArDCore3D::IntegrateFaceMonomials_onEdges (const Face &F, const size_t maxdeg)
 Compute all integrals, on the edges of a face, of the face monomials up to a total degree.
 
MonomialFaceIntegralsType HArDCore3D::IntegrateFaceMonomials (const Face &F, const int maxdeg)
 Compute all integrals on a face of face monomials up to a total degree.
 
MonomialFaceIntegralsType HArDCore3D::CheckIntegralsDegree (const Face &F, const size_t degree, const MonomialFaceIntegralsType &mono_int_map={})
 Checks if the degree of an existing list of monomial integrals is sufficient, other re-compute and return a proper list.
 
template<typename BasisType1 , typename BasisType2 >
Eigen::MatrixXd HArDCore3D::GramMatrix (const Face &F, const BasisType1 &basis1, const BasisType2 &basis2, MonomialFaceIntegralsType mono_int_map={})
 Generic template to compute the Gram Matrix of any pair of bases.
 
Eigen::MatrixXd HArDCore3D::GramMatrix (const Face &F, const MonomialScalarBasisFace &basis1, const MonomialScalarBasisFace &basis2, MonomialFaceIntegralsType mono_int_map={})
 Computes the Gram Matrix of a pair of local scalar monomial bases.
 
template<typename BasisType >
Eigen::MatrixXd HArDCore3D::GramMatrix (const Face &F, const BasisType &basis, MonomialFaceIntegralsType mono_int_map={})
 This overload to simplify the call to GramMatrix in case the two bases are the same.
 
template<typename BasisType1 , typename BasisType2 , size_t N>
Eigen::MatrixXd HArDCore3D::GramMatrix (const Face &F, const TensorizedVectorFamily< BasisType1, N > &basis1, const TensorizedVectorFamily< BasisType2, N > &basis2, MonomialFaceIntegralsType mono_int_map={})
 Template to compute the Gram Matrix of any pair of tensorized scalar bases.
 
template<typename BasisType1 , typename BasisType2 >
Eigen::MatrixXd HArDCore3D::GramMatrix (const Face &F, const TangentFamily< BasisType1 > &basis1, const TangentFamily< BasisType2 > &basis2, MonomialFaceIntegralsType mono_int_map={})
 Computes the Gram Matrix of a pair of tangent bases.
 
Eigen::MatrixXd HArDCore3D::GramMatrix (const Face &F, const RolyComplBasisFace &basis1, const RolyComplBasisFace &basis2, MonomialFaceIntegralsType mono_int_map={})
 Computes the Gram Matrix of a pair of RolyCompl bases.
 
Eigen::MatrixXd HArDCore3D::GramMatrix (const Face &F, const GolyComplBasisFace &basis1, const GolyComplBasisFace &basis2, MonomialFaceIntegralsType mono_int_map={})
 Computes the Gram Matrix of a pair of GolyCompl bases.
 
template<typename BasisType >
Eigen::MatrixXd HArDCore3D::GramMatrix (const Face &F, const RolyComplBasisFace &basis1, const TangentFamily< BasisType > &basis2, MonomialFaceIntegralsType mono_int_map={})
 Computes the Gram Matrix of a RolyCompl basis and a tangent basis.
 
template<typename BasisType >
Eigen::MatrixXd HArDCore3D::GramMatrix (const Face &F, const TangentFamily< BasisType > &basis1, const RolyComplBasisFace &basis2, MonomialFaceIntegralsType mono_int_map={})
 Computes the Gram Matrix of a RolyCompl basis and a tangent basis.
 
Eigen::MatrixXd HArDCore3D::GMRolyComplScalar (const Face &F, const RolyComplBasisFace &rolycompl_basis, const MonomialScalarBasisFace &mono_basis, const size_t m, MonomialFaceIntegralsType mono_int_map={})
 Computes the Gram Matrix of the scalar part of a RolyCompl Basis and a monomial basis with an extra power on the mth variable.
 
template<typename BasisType >
Eigen::MatrixXd HArDCore3D::GMRolyComplScalar (const Face &F, const RolyComplBasisFace &basis1, const BasisType &basis2, const size_t m, MonomialFaceIntegralsType mono_int_map={})
 Generic template to compute the Gram Matrix of the scalar part of a RolyCompl Basis and any basis with an extra power on the mth variable.
 
Eigen::MatrixXd HArDCore3D::GMScalarDerivative (const Face &F, const MonomialScalarBasisFace &basis1, const MonomialScalarBasisFace &basis2, const size_t m, MonomialFaceIntegralsType mono_int_map={})
 Computes the Gram Matrix of a pair of local scalar monomial bases, taking a partial derivative of the first (w.r.t. homogeneous coordinates on the face, no change of variable)
 
Eigen::MatrixXd HArDCore3D::GMScalarDerivative (const Face &F, const MonomialScalarBasisFace &basis1, const MonomialScalarBasisFace &basis2, const size_t m, const size_t l, MonomialFaceIntegralsType mono_int_map={})
 Computes the Gram Matrix of a pair of local scalar monomial bases, taking a partial derivative of each (w.r.t. homogeneous coordinates on the face, no change of variable)
 
template<typename BasisType1 , typename BasisType2 >
Eigen::MatrixXd HArDCore3D::GMScalarDerivative (const Face &F, const BasisType1 &basis1, const BasisType2 &basis2, const size_t m, MonomialFaceIntegralsType mono_int_map={})
 Generic template to compute the Gram Matrix of any pair of scalar bases, taking a partial derivative of the first (w.r.t. homogeneous coordinates on the face, no change of variable)
 
template<typename BasisType1 , typename BasisType2 >
Eigen::MatrixXd HArDCore3D::GMScalarDerivative (const Face &F, const BasisType1 &basis1, const BasisType2 &basis2, const size_t m, const size_t l, MonomialFaceIntegralsType mono_int_map={})
 Generic template to compute the Gram Matrix of any pair of scalar bases, taking a partial derivative of each (w.r.t. homogeneous coordinates on the face, no change of variable)
 
template<typename BasisType1 , typename BasisType2 >
Eigen::MatrixXd HArDCore3D::GramMatrix (const Face &F, const CurlBasis< BasisType1 > &basis1, const CurlBasis< BasisType2 > &basis2, MonomialFaceIntegralsType mono_int_map={})
 Generic template to compute the Gram Matrix of a pair of Curl bases.
 
template<typename BasisType1 , typename BasisType2 >
Eigen::MatrixXd HArDCore3D::GramMatrix (const Face &F, const CurlBasis< BasisType1 > &basis1, const TangentFamily< BasisType2 > &basis2, MonomialFaceIntegralsType mono_int_map={})
 Generic template to compute the Gram Matrix of a Curl basis and a Tangent basis.
 
template<typename BasisType1 , typename BasisType2 >
Eigen::MatrixXd HArDCore3D::GramMatrix (const Face &F, const TangentFamily< BasisType1 > &basis1, const CurlBasis< BasisType2 > &basis2, MonomialFaceIntegralsType mono_int_map={})
 Generic template to compute the Gram Matrix of a Tangent basis and a Curl basis.
 
template<typename BasisType1 , typename BasisType2 >
boost::disable_if< boost::is_same< BasisType2, MonomialFaceIntegralsType >, Eigen::MatrixXd >::type HArDCore3D::GramMatrix (const Face &F, const DivergenceBasis< BasisType1 > &basis1, const BasisType2 &basis2, MonomialFaceIntegralsType mono_int_map={})
 Generic template to compute the Gram Matrix of a Divergence basis and any other basis.
 
template<typename BasisType1 , typename Basis2 >
Eigen::MatrixXd HArDCore3D::GramMatrix (const Face &F, const BasisType1 &basis1, const DivergenceBasis< Basis2 > &basis2, MonomialFaceIntegralsType mono_int_map={})
 Template to compute the Gram Matrix of any basis and a Divergence basis.
 
template<typename BasisType1 >
Eigen::MatrixXd HArDCore3D::GramMatrixDiv (const Face &F, const TangentFamily< BasisType1 > &basis1, const MonomialScalarBasisFace &basis2, MonomialFaceIntegralsType mono_int_map={})
 Template to compute the Gram Matrix of a Divergence<TangentFamily> basis and a monomial scalar basis.
 
Eigen::MatrixXd HArDCore3D::GramMatrixDiv (const Face &F, const RolyComplBasisFace &basis1, const MonomialScalarBasisFace &basis2, MonomialFaceIntegralsType mono_int_map={})
 Computes the Gram Matrix of a Divergence<RolyCompl> basis and a monomial scalar basis.
 
template<typename BasisType1 , typename BasisType2 >
Eigen::MatrixXd HArDCore3D::GramMatrixDiv (const Face &F, const BasisType1 &basis1, const BasisType2 &basis2, MonomialFaceIntegralsType mono_int_map={})
 Template to compute the Gram Matrix of the divergence of any basis and any other basis.