GCC Code Coverage Report


Directory: Bembel/src/
Coverage: low: ≥ 0% medium: ≥ 75.0% high: ≥ 90.0%
Coverage Exec / Excl / Total
Lines: 100.0% 44 / 0 / 44
Functions: 100.0% 2 / 0 / 2
Branches: 54.0% 54 / 0 / 100

util/surfaceL2error.hpp
Line Branch Exec Source
1 // This file is part of Bembel, the higher order C++ boundary element library.
2 //
3 // Copyright (C) 2022 see <http://www.bembel.eu>
4 //
5 // It was written as part of a cooperation of J. Doelz, H. Harbrecht, S. Kurz,
6 // M. Multerer, S. Schoeps, and F. Wolf at Technische Universitaet Darmstadt,
7 // Universitaet Basel, and Universita della Svizzera italiana, Lugano. This
8 // source code is subject to the GNU General Public License version 3 and
9 // provided WITHOUT ANY WARRANTY, see <http://www.bembel.eu> for further
10 // information.
11
12 #ifndef BEMBEL_SRC_UTIL_SURFACEL2ERROR_HPP_
13 #define BEMBEL_SRC_UTIL_SURFACEL2ERROR_HPP_
14
15 namespace Bembel {
16
17 template <typename Op, typename Derived, typename Functor>
18 2 double surfaceL2error(const AnsatzSpace<Op> &ansatz_space,
19 const Eigen::MatrixBase<Derived> &vec,
20 const Functor &functor, int deg = 4) {
21 typedef typename Derived::Scalar Scalar;
22
2/4
double Bembel::surfaceL2error<Bembel::LaplaceBeltramiOperator, Eigen::Matrix<double, -1, 1, 0, -1, 1>, std::function<double (Eigen::Matrix<double, 3, 1, 0, 3, 1> const&)> >(Bembel::AnsatzSpace<Bembel::LaplaceBeltramiOperator> const&, Eigen::MatrixBase<Eigen::Matrix<double, -1, 1, 0, -1, 1> > const&, std::function<double (Eigen::Matrix<double, 3, 1, 0, 3, 1> const&)> const&, int):
✓ Branch 1 taken 1 time.
✗ Branch 2 not taken.
double Bembel::surfaceL2error<Bembel::MassMatrixScalarCont, Eigen::Solve<Eigen::SparseLU<Eigen::SparseMatrix<double, 0, int>, Eigen::COLAMDOrdering<int> >, Eigen::Matrix<double, -1, 1, 0, -1, 1> >, std::function<double (Eigen::Matrix<double, 3, 1, 0, 3, 1> const&)> >(Bembel::AnsatzSpace<Bembel::MassMatrixScalarCont> const&, Eigen::MatrixBase<Eigen::Solve<Eigen::SparseLU<Eigen::SparseMatrix<double, 0, int>, Eigen::COLAMDOrdering<int> >, Eigen::Matrix<double, -1, 1, 0, -1, 1> > > const&, std::function<double (Eigen::Matrix<double, 3, 1, 0, 3, 1> const&)> const&, int):
✓ Branch 1 taken 1 time.
✗ Branch 2 not taken.
2 FunctionEvaluator<Op> fun_val(ansatz_space);
23
4/8
double Bembel::surfaceL2error<Bembel::LaplaceBeltramiOperator, Eigen::Matrix<double, -1, 1, 0, -1, 1>, std::function<double (Eigen::Matrix<double, 3, 1, 0, 3, 1> const&)> >(Bembel::AnsatzSpace<Bembel::LaplaceBeltramiOperator> const&, Eigen::MatrixBase<Eigen::Matrix<double, -1, 1, 0, -1, 1> > const&, std::function<double (Eigen::Matrix<double, 3, 1, 0, 3, 1> const&)> const&, int):
✓ Branch 1 taken 1 time.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 time.
✗ Branch 5 not taken.
double Bembel::surfaceL2error<Bembel::MassMatrixScalarCont, Eigen::Solve<Eigen::SparseLU<Eigen::SparseMatrix<double, 0, int>, Eigen::COLAMDOrdering<int> >, Eigen::Matrix<double, -1, 1, 0, -1, 1> >, std::function<double (Eigen::Matrix<double, 3, 1, 0, 3, 1> const&)> >(Bembel::AnsatzSpace<Bembel::MassMatrixScalarCont> const&, Eigen::MatrixBase<Eigen::Solve<Eigen::SparseLU<Eigen::SparseMatrix<double, 0, int>, Eigen::COLAMDOrdering<int> >, Eigen::Matrix<double, -1, 1, 0, -1, 1> > > const&, std::function<double (Eigen::Matrix<double, 3, 1, 0, 3, 1> const&)> const&, int):
✓ Branch 1 taken 1 time.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 time.
✗ Branch 5 not taken.
2 fun_val.set_function(vec);
24 2 Scalar retval = 0;
25
2/4
double Bembel::surfaceL2error<Bembel::LaplaceBeltramiOperator, Eigen::Matrix<double, -1, 1, 0, -1, 1>, std::function<double (Eigen::Matrix<double, 3, 1, 0, 3, 1> const&)> >(Bembel::AnsatzSpace<Bembel::LaplaceBeltramiOperator> const&, Eigen::MatrixBase<Eigen::Matrix<double, -1, 1, 0, -1, 1> > const&, std::function<double (Eigen::Matrix<double, 3, 1, 0, 3, 1> const&)> const&, int):
✓ Branch 1 taken 1 time.
✗ Branch 2 not taken.
double Bembel::surfaceL2error<Bembel::MassMatrixScalarCont, Eigen::Solve<Eigen::SparseLU<Eigen::SparseMatrix<double, 0, int>, Eigen::COLAMDOrdering<int> >, Eigen::Matrix<double, -1, 1, 0, -1, 1> >, std::function<double (Eigen::Matrix<double, 3, 1, 0, 3, 1> const&)> >(Bembel::AnsatzSpace<Bembel::MassMatrixScalarCont> const&, Eigen::MatrixBase<Eigen::Solve<Eigen::SparseLU<Eigen::SparseMatrix<double, 0, int>, Eigen::COLAMDOrdering<int> >, Eigen::Matrix<double, -1, 1, 0, -1, 1> > > const&, std::function<double (Eigen::Matrix<double, 3, 1, 0, 3, 1> const&)> const&, int):
✓ Branch 1 taken 1 time.
✗ Branch 2 not taken.
2 GaussSquare<Constants::maximum_quadrature_degree> GS;
26
4/8
double Bembel::surfaceL2error<Bembel::LaplaceBeltramiOperator, Eigen::Matrix<double, -1, 1, 0, -1, 1>, std::function<double (Eigen::Matrix<double, 3, 1, 0, 3, 1> const&)> >(Bembel::AnsatzSpace<Bembel::LaplaceBeltramiOperator> const&, Eigen::MatrixBase<Eigen::Matrix<double, -1, 1, 0, -1, 1> > const&, std::function<double (Eigen::Matrix<double, 3, 1, 0, 3, 1> const&)> const&, int):
✓ Branch 1 taken 1 time.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 time.
✗ Branch 5 not taken.
double Bembel::surfaceL2error<Bembel::MassMatrixScalarCont, Eigen::Solve<Eigen::SparseLU<Eigen::SparseMatrix<double, 0, int>, Eigen::COLAMDOrdering<int> >, Eigen::Matrix<double, -1, 1, 0, -1, 1> >, std::function<double (Eigen::Matrix<double, 3, 1, 0, 3, 1> const&)> >(Bembel::AnsatzSpace<Bembel::MassMatrixScalarCont> const&, Eigen::MatrixBase<Eigen::Solve<Eigen::SparseLU<Eigen::SparseMatrix<double, 0, int>, Eigen::COLAMDOrdering<int> >, Eigen::Matrix<double, -1, 1, 0, -1, 1> > > const&, std::function<double (Eigen::Matrix<double, 3, 1, 0, 3, 1> const&)> const&, int):
✓ Branch 1 taken 1 time.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 time.
✗ Branch 5 not taken.
2 auto Q = GS[deg];
27
2/4
double Bembel::surfaceL2error<Bembel::LaplaceBeltramiOperator, Eigen::Matrix<double, -1, 1, 0, -1, 1>, std::function<double (Eigen::Matrix<double, 3, 1, 0, 3, 1> const&)> >(Bembel::AnsatzSpace<Bembel::LaplaceBeltramiOperator> const&, Eigen::MatrixBase<Eigen::Matrix<double, -1, 1, 0, -1, 1> > const&, std::function<double (Eigen::Matrix<double, 3, 1, 0, 3, 1> const&)> const&, int):
✓ Branch 1 taken 1 time.
✗ Branch 2 not taken.
double Bembel::surfaceL2error<Bembel::MassMatrixScalarCont, Eigen::Solve<Eigen::SparseLU<Eigen::SparseMatrix<double, 0, int>, Eigen::COLAMDOrdering<int> >, Eigen::Matrix<double, -1, 1, 0, -1, 1> >, std::function<double (Eigen::Matrix<double, 3, 1, 0, 3, 1> const&)> >(Bembel::AnsatzSpace<Bembel::MassMatrixScalarCont> const&, Eigen::MatrixBase<Eigen::Solve<Eigen::SparseLU<Eigen::SparseMatrix<double, 0, int>, Eigen::COLAMDOrdering<int> >, Eigen::Matrix<double, -1, 1, 0, -1, 1> > > const&, std::function<double (Eigen::Matrix<double, 3, 1, 0, 3, 1> const&)> const&, int):
✓ Branch 1 taken 1 time.
✗ Branch 2 not taken.
2 SurfacePoint qp;
28 2 const auto &super_space = ansatz_space.get_superspace();
29 2 const ElementTree &et = super_space.get_mesh().get_element_tree();
30
4/4
double Bembel::surfaceL2error<Bembel::LaplaceBeltramiOperator, Eigen::Matrix<double, -1, 1, 0, -1, 1>, std::function<double (Eigen::Matrix<double, 3, 1, 0, 3, 1> const&)> >(Bembel::AnsatzSpace<Bembel::LaplaceBeltramiOperator> const&, Eigen::MatrixBase<Eigen::Matrix<double, -1, 1, 0, -1, 1> > const&, std::function<double (Eigen::Matrix<double, 3, 1, 0, 3, 1> const&)> const&, int):
✓ Branch 4 taken 6 times.
✓ Branch 5 taken 1 time.
double Bembel::surfaceL2error<Bembel::MassMatrixScalarCont, Eigen::Solve<Eigen::SparseLU<Eigen::SparseMatrix<double, 0, int>, Eigen::COLAMDOrdering<int> >, Eigen::Matrix<double, -1, 1, 0, -1, 1> >, std::function<double (Eigen::Matrix<double, 3, 1, 0, 3, 1> const&)> >(Bembel::AnsatzSpace<Bembel::MassMatrixScalarCont> const&, Eigen::MatrixBase<Eigen::Solve<Eigen::SparseLU<Eigen::SparseMatrix<double, 0, int>, Eigen::COLAMDOrdering<int> >, Eigen::Matrix<double, -1, 1, 0, -1, 1> > > const&, std::function<double (Eigen::Matrix<double, 3, 1, 0, 3, 1> const&)> const&, int):
✓ Branch 4 taken 6 times.
✓ Branch 5 taken 1 time.
14 for (auto element = et.cpbegin(); element != et.cpend(); ++element) {
31
4/4
double Bembel::surfaceL2error<Bembel::LaplaceBeltramiOperator, Eigen::Matrix<double, -1, 1, 0, -1, 1>, std::function<double (Eigen::Matrix<double, 3, 1, 0, 3, 1> const&)> >(Bembel::AnsatzSpace<Bembel::LaplaceBeltramiOperator> const&, Eigen::MatrixBase<Eigen::Matrix<double, -1, 1, 0, -1, 1> > const&, std::function<double (Eigen::Matrix<double, 3, 1, 0, 3, 1> const&)> const&, int):
✓ Branch 1 taken 150 times.
✓ Branch 2 taken 6 times.
double Bembel::surfaceL2error<Bembel::MassMatrixScalarCont, Eigen::Solve<Eigen::SparseLU<Eigen::SparseMatrix<double, 0, int>, Eigen::COLAMDOrdering<int> >, Eigen::Matrix<double, -1, 1, 0, -1, 1> >, std::function<double (Eigen::Matrix<double, 3, 1, 0, 3, 1> const&)> >(Bembel::AnsatzSpace<Bembel::MassMatrixScalarCont> const&, Eigen::MatrixBase<Eigen::Solve<Eigen::SparseLU<Eigen::SparseMatrix<double, 0, int>, Eigen::COLAMDOrdering<int> >, Eigen::Matrix<double, -1, 1, 0, -1, 1> > > const&, std::function<double (Eigen::Matrix<double, 3, 1, 0, 3, 1> const&)> const&, int):
✓ Branch 1 taken 150 times.
✓ Branch 2 taken 6 times.
312 for (auto i = 0; i < Q.w_.size(); ++i) {
32
8/16
double Bembel::surfaceL2error<Bembel::LaplaceBeltramiOperator, Eigen::Matrix<double, -1, 1, 0, -1, 1>, std::function<double (Eigen::Matrix<double, 3, 1, 0, 3, 1> const&)> >(Bembel::AnsatzSpace<Bembel::LaplaceBeltramiOperator> const&, Eigen::MatrixBase<Eigen::Matrix<double, -1, 1, 0, -1, 1> > const&, std::function<double (Eigen::Matrix<double, 3, 1, 0, 3, 1> const&)> const&, int):
✓ Branch 1 taken 150 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 150 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 150 times.
✗ Branch 8 not taken.
✓ Branch 11 taken 150 times.
✗ Branch 12 not taken.
double Bembel::surfaceL2error<Bembel::MassMatrixScalarCont, Eigen::Solve<Eigen::SparseLU<Eigen::SparseMatrix<double, 0, int>, Eigen::COLAMDOrdering<int> >, Eigen::Matrix<double, -1, 1, 0, -1, 1> >, std::function<double (Eigen::Matrix<double, 3, 1, 0, 3, 1> const&)> >(Bembel::AnsatzSpace<Bembel::MassMatrixScalarCont> const&, Eigen::MatrixBase<Eigen::Solve<Eigen::SparseLU<Eigen::SparseMatrix<double, 0, int>, Eigen::COLAMDOrdering<int> >, Eigen::Matrix<double, -1, 1, 0, -1, 1> > > const&, std::function<double (Eigen::Matrix<double, 3, 1, 0, 3, 1> const&)> const&, int):
✓ Branch 1 taken 150 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 150 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 150 times.
✗ Branch 8 not taken.
✓ Branch 11 taken 150 times.
✗ Branch 12 not taken.
300 super_space.map2surface(*element, Q.xi_.col(i), Q.w_(i), &qp);
33 // get points on geometry and tangential derivatives
34
2/4
double Bembel::surfaceL2error<Bembel::LaplaceBeltramiOperator, Eigen::Matrix<double, -1, 1, 0, -1, 1>, std::function<double (Eigen::Matrix<double, 3, 1, 0, 3, 1> const&)> >(Bembel::AnsatzSpace<Bembel::LaplaceBeltramiOperator> const&, Eigen::MatrixBase<Eigen::Matrix<double, -1, 1, 0, -1, 1> > const&, std::function<double (Eigen::Matrix<double, 3, 1, 0, 3, 1> const&)> const&, int):
✓ Branch 1 taken 150 times.
✗ Branch 2 not taken.
double Bembel::surfaceL2error<Bembel::MassMatrixScalarCont, Eigen::Solve<Eigen::SparseLU<Eigen::SparseMatrix<double, 0, int>, Eigen::COLAMDOrdering<int> >, Eigen::Matrix<double, -1, 1, 0, -1, 1> >, std::function<double (Eigen::Matrix<double, 3, 1, 0, 3, 1> const&)> >(Bembel::AnsatzSpace<Bembel::MassMatrixScalarCont> const&, Eigen::MatrixBase<Eigen::Solve<Eigen::SparseLU<Eigen::SparseMatrix<double, 0, int>, Eigen::COLAMDOrdering<int> >, Eigen::Matrix<double, -1, 1, 0, -1, 1> > > const&, std::function<double (Eigen::Matrix<double, 3, 1, 0, 3, 1> const&)> const&, int):
✓ Branch 1 taken 150 times.
✗ Branch 2 not taken.
300 const auto &x_f = qp.segment<3>(3);
35
2/4
double Bembel::surfaceL2error<Bembel::LaplaceBeltramiOperator, Eigen::Matrix<double, -1, 1, 0, -1, 1>, std::function<double (Eigen::Matrix<double, 3, 1, 0, 3, 1> const&)> >(Bembel::AnsatzSpace<Bembel::LaplaceBeltramiOperator> const&, Eigen::MatrixBase<Eigen::Matrix<double, -1, 1, 0, -1, 1> > const&, std::function<double (Eigen::Matrix<double, 3, 1, 0, 3, 1> const&)> const&, int):
✓ Branch 1 taken 150 times.
✗ Branch 2 not taken.
double Bembel::surfaceL2error<Bembel::MassMatrixScalarCont, Eigen::Solve<Eigen::SparseLU<Eigen::SparseMatrix<double, 0, int>, Eigen::COLAMDOrdering<int> >, Eigen::Matrix<double, -1, 1, 0, -1, 1> >, std::function<double (Eigen::Matrix<double, 3, 1, 0, 3, 1> const&)> >(Bembel::AnsatzSpace<Bembel::MassMatrixScalarCont> const&, Eigen::MatrixBase<Eigen::Solve<Eigen::SparseLU<Eigen::SparseMatrix<double, 0, int>, Eigen::COLAMDOrdering<int> >, Eigen::Matrix<double, -1, 1, 0, -1, 1> > > const&, std::function<double (Eigen::Matrix<double, 3, 1, 0, 3, 1> const&)> const&, int):
✓ Branch 1 taken 150 times.
✗ Branch 2 not taken.
300 const auto &x_f_dx = qp.segment<3>(6);
36
2/4
double Bembel::surfaceL2error<Bembel::LaplaceBeltramiOperator, Eigen::Matrix<double, -1, 1, 0, -1, 1>, std::function<double (Eigen::Matrix<double, 3, 1, 0, 3, 1> const&)> >(Bembel::AnsatzSpace<Bembel::LaplaceBeltramiOperator> const&, Eigen::MatrixBase<Eigen::Matrix<double, -1, 1, 0, -1, 1> > const&, std::function<double (Eigen::Matrix<double, 3, 1, 0, 3, 1> const&)> const&, int):
✓ Branch 1 taken 150 times.
✗ Branch 2 not taken.
double Bembel::surfaceL2error<Bembel::MassMatrixScalarCont, Eigen::Solve<Eigen::SparseLU<Eigen::SparseMatrix<double, 0, int>, Eigen::COLAMDOrdering<int> >, Eigen::Matrix<double, -1, 1, 0, -1, 1> >, std::function<double (Eigen::Matrix<double, 3, 1, 0, 3, 1> const&)> >(Bembel::AnsatzSpace<Bembel::MassMatrixScalarCont> const&, Eigen::MatrixBase<Eigen::Solve<Eigen::SparseLU<Eigen::SparseMatrix<double, 0, int>, Eigen::COLAMDOrdering<int> >, Eigen::Matrix<double, -1, 1, 0, -1, 1> > > const&, std::function<double (Eigen::Matrix<double, 3, 1, 0, 3, 1> const&)> const&, int):
✓ Branch 1 taken 150 times.
✗ Branch 2 not taken.
300 const auto &x_f_dy = qp.segment<3>(9);
37
2/4
double Bembel::surfaceL2error<Bembel::LaplaceBeltramiOperator, Eigen::Matrix<double, -1, 1, 0, -1, 1>, std::function<double (Eigen::Matrix<double, 3, 1, 0, 3, 1> const&)> >(Bembel::AnsatzSpace<Bembel::LaplaceBeltramiOperator> const&, Eigen::MatrixBase<Eigen::Matrix<double, -1, 1, 0, -1, 1> > const&, std::function<double (Eigen::Matrix<double, 3, 1, 0, 3, 1> const&)> const&, int):
✓ Branch 1 taken 150 times.
✗ Branch 2 not taken.
double Bembel::surfaceL2error<Bembel::MassMatrixScalarCont, Eigen::Solve<Eigen::SparseLU<Eigen::SparseMatrix<double, 0, int>, Eigen::COLAMDOrdering<int> >, Eigen::Matrix<double, -1, 1, 0, -1, 1> >, std::function<double (Eigen::Matrix<double, 3, 1, 0, 3, 1> const&)> >(Bembel::AnsatzSpace<Bembel::MassMatrixScalarCont> const&, Eigen::MatrixBase<Eigen::Solve<Eigen::SparseLU<Eigen::SparseMatrix<double, 0, int>, Eigen::COLAMDOrdering<int> >, Eigen::Matrix<double, -1, 1, 0, -1, 1> > > const&, std::function<double (Eigen::Matrix<double, 3, 1, 0, 3, 1> const&)> const&, int):
✓ Branch 1 taken 150 times.
✗ Branch 2 not taken.
300 const auto &normal = x_f_dx.cross(x_f_dy);
38 // compute surface measures from tangential derivatives
39
2/4
double Bembel::surfaceL2error<Bembel::LaplaceBeltramiOperator, Eigen::Matrix<double, -1, 1, 0, -1, 1>, std::function<double (Eigen::Matrix<double, 3, 1, 0, 3, 1> const&)> >(Bembel::AnsatzSpace<Bembel::LaplaceBeltramiOperator> const&, Eigen::MatrixBase<Eigen::Matrix<double, -1, 1, 0, -1, 1> > const&, std::function<double (Eigen::Matrix<double, 3, 1, 0, 3, 1> const&)> const&, int):
✓ Branch 1 taken 150 times.
✗ Branch 2 not taken.
double Bembel::surfaceL2error<Bembel::MassMatrixScalarCont, Eigen::Solve<Eigen::SparseLU<Eigen::SparseMatrix<double, 0, int>, Eigen::COLAMDOrdering<int> >, Eigen::Matrix<double, -1, 1, 0, -1, 1> >, std::function<double (Eigen::Matrix<double, 3, 1, 0, 3, 1> const&)> >(Bembel::AnsatzSpace<Bembel::MassMatrixScalarCont> const&, Eigen::MatrixBase<Eigen::Solve<Eigen::SparseLU<Eigen::SparseMatrix<double, 0, int>, Eigen::COLAMDOrdering<int> >, Eigen::Matrix<double, -1, 1, 0, -1, 1> > > const&, std::function<double (Eigen::Matrix<double, 3, 1, 0, 3, 1> const&)> const&, int):
✓ Branch 1 taken 150 times.
✗ Branch 2 not taken.
300 Scalar x_kappa = normal.norm();
40
4/8
double Bembel::surfaceL2error<Bembel::LaplaceBeltramiOperator, Eigen::Matrix<double, -1, 1, 0, -1, 1>, std::function<double (Eigen::Matrix<double, 3, 1, 0, 3, 1> const&)> >(Bembel::AnsatzSpace<Bembel::LaplaceBeltramiOperator> const&, Eigen::MatrixBase<Eigen::Matrix<double, -1, 1, 0, -1, 1> > const&, std::function<double (Eigen::Matrix<double, 3, 1, 0, 3, 1> const&)> const&, int):
✓ Branch 2 taken 150 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 150 times.
✗ Branch 6 not taken.
double Bembel::surfaceL2error<Bembel::MassMatrixScalarCont, Eigen::Solve<Eigen::SparseLU<Eigen::SparseMatrix<double, 0, int>, Eigen::COLAMDOrdering<int> >, Eigen::Matrix<double, -1, 1, 0, -1, 1> >, std::function<double (Eigen::Matrix<double, 3, 1, 0, 3, 1> const&)> >(Bembel::AnsatzSpace<Bembel::MassMatrixScalarCont> const&, Eigen::MatrixBase<Eigen::Solve<Eigen::SparseLU<Eigen::SparseMatrix<double, 0, int>, Eigen::COLAMDOrdering<int> >, Eigen::Matrix<double, -1, 1, 0, -1, 1> > > const&, std::function<double (Eigen::Matrix<double, 3, 1, 0, 3, 1> const&)> const&, int):
✓ Branch 2 taken 150 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 150 times.
✗ Branch 6 not taken.
300 const Scalar val = fun_val.evaluate(*element, qp)(0);
41
2/4
double Bembel::surfaceL2error<Bembel::LaplaceBeltramiOperator, Eigen::Matrix<double, -1, 1, 0, -1, 1>, std::function<double (Eigen::Matrix<double, 3, 1, 0, 3, 1> const&)> >(Bembel::AnsatzSpace<Bembel::LaplaceBeltramiOperator> const&, Eigen::MatrixBase<Eigen::Matrix<double, -1, 1, 0, -1, 1> > const&, std::function<double (Eigen::Matrix<double, 3, 1, 0, 3, 1> const&)> const&, int):
✓ Branch 1 taken 150 times.
✗ Branch 2 not taken.
double Bembel::surfaceL2error<Bembel::MassMatrixScalarCont, Eigen::Solve<Eigen::SparseLU<Eigen::SparseMatrix<double, 0, int>, Eigen::COLAMDOrdering<int> >, Eigen::Matrix<double, -1, 1, 0, -1, 1> >, std::function<double (Eigen::Matrix<double, 3, 1, 0, 3, 1> const&)> >(Bembel::AnsatzSpace<Bembel::MassMatrixScalarCont> const&, Eigen::MatrixBase<Eigen::Solve<Eigen::SparseLU<Eigen::SparseMatrix<double, 0, int>, Eigen::COLAMDOrdering<int> >, Eigen::Matrix<double, -1, 1, 0, -1, 1> > > const&, std::function<double (Eigen::Matrix<double, 3, 1, 0, 3, 1> const&)> const&, int):
✓ Branch 1 taken 150 times.
✗ Branch 2 not taken.
300 retval += x_kappa * Q.w_(i) * element->get_h() * element->get_h() *
42
8/16
double Bembel::surfaceL2error<Bembel::LaplaceBeltramiOperator, Eigen::Matrix<double, -1, 1, 0, -1, 1>, std::function<double (Eigen::Matrix<double, 3, 1, 0, 3, 1> const&)> >(Bembel::AnsatzSpace<Bembel::LaplaceBeltramiOperator> const&, Eigen::MatrixBase<Eigen::Matrix<double, -1, 1, 0, -1, 1> > const&, std::function<double (Eigen::Matrix<double, 3, 1, 0, 3, 1> const&)> const&, int):
✓ Branch 1 taken 150 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 150 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 150 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 150 times.
✗ Branch 11 not taken.
double Bembel::surfaceL2error<Bembel::MassMatrixScalarCont, Eigen::Solve<Eigen::SparseLU<Eigen::SparseMatrix<double, 0, int>, Eigen::COLAMDOrdering<int> >, Eigen::Matrix<double, -1, 1, 0, -1, 1> >, std::function<double (Eigen::Matrix<double, 3, 1, 0, 3, 1> const&)> >(Bembel::AnsatzSpace<Bembel::MassMatrixScalarCont> const&, Eigen::MatrixBase<Eigen::Solve<Eigen::SparseLU<Eigen::SparseMatrix<double, 0, int>, Eigen::COLAMDOrdering<int> >, Eigen::Matrix<double, -1, 1, 0, -1, 1> > > const&, std::function<double (Eigen::Matrix<double, 3, 1, 0, 3, 1> const&)> const&, int):
✓ Branch 1 taken 150 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 150 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 150 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 150 times.
✗ Branch 11 not taken.
300 (functor(x_f) - val) * (functor(x_f) - val);
43 }
44 }
45 4 return sqrt(retval);
46 2 }
47
48 } // namespace Bembel
49 #endif // BEMBEL_SRC_UTIL_SURFACEL2ERROR_HPP_
50