11#ifndef BEMBEL_SRC_HELMHOLTZ_SINGLELAYERPOTENTIAL_HPP_
12#define BEMBEL_SRC_HELMHOLTZ_SINGLELAYERPOTENTIAL_HPP_
17template <
typename LinOp>
18class HelmholtzSingleLayerPotential;
23template <
typename LinOp>
25 typedef Eigen::VectorXcd::Scalar Scalar;
26 static constexpr int OutputSpaceDimension = 1;
34template <
typename LinOp>
36 :
public PotentialBase<HelmholtzSingleLayerPotential<LinOp>, LinOp> {
43 std::complex<double>>::Scalar,
47 const Eigen::Vector3d &
point,
50 auto s =
p.segment<2>(0);
56 auto x_f =
p.segment<3>(3);
79 const Eigen::Vector3d &
y)
const {
81 return std::exp(-std::complex<double>(0., 1.) * wavenumber_ *
r) / 4. /
87 void set_wavenumber(std::complex<double>
wavenumber) {
93 std::complex<double> get_wavenumber() {
return wavenumber_; }
96 std::complex<double> wavenumber_;
The ElementTreeNode corresponds to an element in the element tree.
The FunctionEvaluator provides means to evaluate coefficient vectors as functions on the geometry.
This class implements the specification of the integration for the single layer potential for Helmhol...
std::complex< double > evaluateKernel(const Eigen::Vector3d &x, const Eigen::Vector3d &y) const
Fundamental solution of Laplace problem.
Eigen::Matrix< double, 12, 1 > SurfacePoint
typedef of SurfacePoint
Routines for the evalutation of pointwise errors.
constexpr int getFunctionSpaceOutputDimension()
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...