12 #ifndef BEMBEL_SRC_HOMOGENISEDLAPLACE_SINGLELAYERPOTENTIAL_HPP_
13 #define BEMBEL_SRC_HOMOGENISEDLAPLACE_SINGLELAYERPOTENTIAL_HPP_
18 template<
typename LinOp>
19 class HomogenisedLaplaceSingleLayerPotential;
24 template<
typename LinOp>
26 typedef Eigen::VectorXd::Scalar Scalar;
27 static constexpr
int OutputSpaceDimension = 1;
35 template<
typename LinOp>
37 HomogenisedLaplaceSingleLayerPotential<LinOp>, LinOp> {
55 double>::Scalar, 1, 1> evaluateIntegrand_impl(
57 const Eigen::Vector3d &point,
const SurfacePoint &p)
const {
59 auto s = p.segment < 2 > (0);
65 auto x_f = p.segment < 3 > (3);
66 auto x_f_dx = p.segment < 3 > (6);
67 auto x_f_dy = p.segment < 3 > (9);
70 auto x_kappa = x_f_dx.cross(x_f_dy).norm();
76 auto cauchy_value = fun_ev.evaluate(element, p);
79 auto integrand = kernel * cauchy_value * x_kappa * ws;
88 const Eigen::Vector3d &y)
const {
The ElementTreeNode corresponds to an element in the element tree.
static double getPrecision()
returns the precision of the periodicity of the kernel
This class implements the specification of the integration for the single layer potential for the hom...
double evaluateKernel(const Eigen::Vector3d &x, const Eigen::Vector3d &y) const
Fundamental solution of the homogenised Laplace problem.
HomogenisedLaplaceSingleLayerPotential()
Constructs an object initialising the coefficients and the degree via the static variable Homogenised...
Eigen::Matrix< double, 12, 1 > SurfacePoint
typedef of SurfacePoint
Routines for the evalutation of pointwise errors.
Eigen::VectorXd getCoefficients(double precision)
Calculates the coefficients for the solid harmonics expansion of the periodic kernel .
unsigned int getDegree(double precision)
Returns the degree of the sphericals expansion given a precision. Can be extended,...
double evaluate_solid_sphericals(Eigen::Vector3d x, Eigen::VectorXd cs, unsigned int deg, bool grad)
Evaluates the series for real coefficients cs if grad is false, and for real coefficients cs if gra...
double k_mod(Eigen::Vector3d in)
Returns the modified kernel .
struct containing specifications on the linear operator has to be specialized or derived for any part...
functional base class. this serves as a common interface for existing functionals.
Base case for specifying the return type of the potential.
struct containing specifications on the functional has to be specialized or derived for any particula...