6 template<
typename BasisType>
12 typedef std::function<
typename BasisType::FunctionValue(
const Eigen::Vector2d &)>
FunctionType;
32 Eigen::VectorXd b = Eigen::VectorXd::Zero(m_basis.dimension());
33 for (
size_t i = 0;
i < m_basis.dimension();
i++) {
34 for (
size_t iqn = 0;
iqn < m_quad.size();
iqn++) {
39 return m_cholesky_mass.solve(b);
47 for (
size_t iqn = 0;
iqn < m_quad.size();
iqn++) {
49 for (
size_t i = 1;
i < m_basis.dimension();
i++) {
74 Eigen::LDLT<Eigen::MatrixXd> m_cholesky_mass;
80 const Eigen::VectorXd &
f_dofs,
100 const Eigen::VectorXd &
f_dofs,
Compute the L2-orthogonal projection of a function.
Definition l2projection.hpp:8
boost::multi_array< FunctionValue, 2 > BasisEvaluation
Definition l2projection.hpp:11
L2Projection(const BasisType &basis, QuadratureRule &quad, const BasisEvaluation &basis_quad)
Constructor.
Definition l2projection.hpp:15
double squared_error(const FunctionType &f, const Eigen::VectorXd &f_dofs) const
Definition l2projection.hpp:44
Eigen::VectorXd compute(const FunctionType &f) const
Compute the projection of a function.
Definition l2projection.hpp:30
const BasisEvaluation & basisQuad()
Return the basis evaluation.
Definition l2projection.hpp:65
double error(const FunctionType &f, const Eigen::VectorXd &f_dofs) const
Compute the error between the L2-orthogonal projection and the function.
Definition l2projection.hpp:59
BasisType::FunctionValue FunctionValue
Definition l2projection.hpp:10
std::function< typename BasisType::FunctionValue(const Eigen::Vector2d &)> FunctionType
Definition l2projection.hpp:12
err
Definition convergence_analysis.m:168
for i
Definition convergence_analysis.m:48
double scalar_product(const double &x, const double &y)
Scalar product between two reals.
Definition basis.cpp:163
Eigen::MatrixXd compute_gram_matrix(const boost::multi_array< VectorRd, 2 > &B1, const boost::multi_array< double, 2 > &B2, const QuadratureRule &qr)
Compute the Gram-like matrix given a family of vector-valued and one of scalar-valued functions by te...
Definition basis.cpp:239
std::vector< QuadratureNode > QuadratureRule
Definition quadraturerule.hpp:55
depending on the Matrix Market format indicated by or array(dense array storage). The data will be duplicated % as appropriate if symmetry is indicated in the header. % % Optionally
if(strcmp(field, 'real')) % real valued entries T
Definition mmread.m:93
double squared_l2_norm(const Eigen::VectorXd &f_dofs, const QuadratureRule &quad, const boost::multi_array< T, 2 > &basis_quad)
Compute the squared L2-norm of a discrete function.
Definition l2projection.hpp:79
double l2_norm(const Eigen::VectorXd &f_dofs, const QuadratureRule &quad, const boost::multi_array< T, 2 > &basis_quad)
Compute the L2-norm of a discrete function.
Definition l2projection.hpp:99
Definition mhd-solutions.hpp:9