OpenBEM
Open-source framework for electromagnetic simulation with the boundary element method.
Loading...
Searching...
No Matches
line.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_OPINT_SRC_LINE_H
19#define BEM_RWG_OPINT_SRC_LINE_H
20
21#include "types.hpp"
26
27
28namespace bem::rwg
29{
30
46template <typename LineQuadratureType = GaussLineQuadrature<1>>
48{
49
50 using base = SrcIntegratorBase;
51 static_assert(
52 std::is_base_of<LineQuadratureBase<1>, LineQuadratureType>::value,
53 "SrcLineIntegrator: `LineQuadratureType` must derive from `LineQuadratureBase<1>`"
54 );
55
56public:
57
66
67
76 const Complex k,
77 const Triangle<2>& src_tri,
79 ) override;
80
81
87 { return line_quad_; };
88
89
95 { return line_quad_; };
96
97
98private:
99
100 LineQuadratureType line_quad_;
101
102};
103
108}
109
111
112#endif
Base class for integration over the source triangle for RWG-based BEM operators.
Definition base.hpp:54
Class for line integration over the source triangle for RWG-based BEM operators. References:
Definition line.hpp:48
LineQuadratureType & quadrature_object()
Provides writable access to the line quadrature object.
Definition line.hpp:94
SrcLineIntegrator(const LineQuadratureType line_quad=GaussLineQuadrature< 1 >())
Constructs a SrcLineIntegrator with a specified line quadrature object.
Definition line.hpp:64
const LineQuadratureType & quadrature_object() const
Provides read-only access to the line quadrature object for inspection.
Definition line.hpp:86
SrcResult integrate(const Complex k, const Triangle< 2 > &src_tri, ConstEigRef< EigMatNX< Float, 3 > > r_obs) override
Computes the integral over the source triangle.
Definition line.tpp:34
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.
Data structure to hold the results of integration over the source triangle.
Definition base.hpp:37