OpenBEM
Open-source framework for electromagnetic simulation with the boundary element method.
Loading...
Searching...
No Matches
double_layer.hpp
Go to the documentation of this file.
1// OpenBEM - Copyright (C) 2026 Shashwat Sharma
2
3// This file is part of OpenBEM.
4
5// OpenBEM is free software: you can redistribute it and/or modify it under the terms of the
6// GNU General Public License as published by the Free Software Foundation, either version 3
7// of the License, or (at your option) any later version.
8
9// You should have received a copy of the GNU General Public License along with OpenBEM.
10// If not, see <https://www.gnu.org/licenses/>.
11
12
18#ifndef BEM_RWG_PROJ_DOUBLE_LAYER_H
19#define BEM_RWG_PROJ_DOUBLE_LAYER_H
20
21#include "types.hpp"
23
26
28
29
30namespace bem::rwg
31{
32
41template <typename SrcIntegratorType = SrcStrategic<>>
43{
44
45 static_assert(
46 std::is_base_of<SrcIntegratorBase, SrcIntegratorType>::value,
47 "VectorDoubleLayerProj: `SrcIntegratorType` must derive from `SrcIntegratorBase`"
48 );
49
50public:
51
58 src_integrator_(src_integrator) {};
59
60
81 const Complex k,
83 const Triangle<3>& src_tri
84 ) override;
85
86
87private:
88
89 SrcIntegratorType src_integrator_;
90
91};
92
97}
98
100
101#endif
Base class for RWG-based BEM projectors.
Definition base.hpp:40
Class for computing the vector double-layer potential projector.
EigMatXN< Complex, 3 > compute(const Complex k, ConstEigRef< EigMatNX< Float, 3 > > obs_points, const Triangle< 3 > &src_tri) override
Computes the vector double-layer projector.
VectorDoubleLayerProj(const SrcIntegratorType src_integrator=SrcStrategic<>())
Constructs a VectorDoubleLayerProj object with a specified integration object.
const Eigen::Ref< const EigObj > ConstEigRef
Read-only reference to an Eigen object.
Definition types.hpp:98
std::complex< Float > Complex
Complex floating point number.
Definition types.hpp:51
Eigen::Matrix< T, N, 1 > EigColVecN
Fixed-size column vector of size N containing type T.
Definition types.hpp:86
Namespace for RWG-based BEM functionality.