12#ifndef BEMBEL_SRC_LAPLACE_ADJOINTDOUBLELAYEROPERATOR_HPP_
13#define BEMBEL_SRC_LAPLACE_ADJOINTDOUBLELAYEROPERATOR_HPP_
18class LaplaceAdjointDoubleLayerOperator;
22 typedef Eigen::VectorXd EigenType;
23 typedef Eigen::VectorXd::Scalar Scalar;
26 Form = DifferentialForm::Discontinuous,
27 NumberOfFMMComponents = 1
41 void evaluateIntegrand_impl(
45 Eigen::Dynamic, Eigen::Dynamic> *
intval)
const {
46 auto polynomial_degree =
super_space.get_polynomial_degree();
47 auto polynomial_degree_plus_one_squared =
48 (polynomial_degree + 1) * (polynomial_degree + 1);
51 auto s =
p1.segment<2>(0);
52 auto t =
p2.segment<2>(0);
59 auto x_f =
p1.segment<3>(3);
62 auto y_f =
p2.segment<3>(3);
83 Eigen::Matrix<double, 1, 1> evaluateFMMInterpolation_impl(
86 auto s =
p1.segment<2>(0);
87 auto t =
p2.segment<2>(0);
90 auto x_f =
p1.segment<3>(3);
93 auto y_f =
p2.segment<3>(3);
103 Eigen::Matrix<double, 1, 1>
intval;
113 const Eigen::Vector3d &
x_n,
114 const Eigen::Vector3d &
y)
const {
118 return -
c.dot(
x_n) / 4. / BEMBEL_PI /
r3;
double evaluateKernelGrad(const Eigen::Vector3d &x, const Eigen::Vector3d &x_n, const Eigen::Vector3d &y) const
Gradient of fundamental solution of Laplace problem.
Eigen::Matrix< double, 12, 1 > SurfacePoint
typedef of SurfacePoint
Routines for the evalutation of pointwise errors.
constexpr int getFunctionSpaceOutputDimension()
linear operator base class. this serves as a common interface for existing linear operators.
struct containing specifications on the linear operator has to be specialized or derived for any part...