OpenBEM
Open-source framework for electromagnetic simulation with the boundary element method.
Loading...
Searching...
No Matches
base.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_EXC_BASE_H
19#define BEM_RWG_EXC_BASE_H
20
21#include "types.hpp"
22
23
24namespace bem
25{
26// Forward declarations
27template <uint8_t dim> class Triangle;
28}
29
30
31namespace bem::rwg
32{
33
43template <uint8_t obs_num_dof>
45{
46
47 static_assert((obs_num_dof > 0), "`obs_num_dof` must be greater than 0.");
48
49public:
50
62 const Complex k,
63 const Triangle<3>& obs_tri
64 ) = 0;
65
70 virtual Index num_excitations() const = 0;
71
72};
73
78}
79
80#endif
Base class for generating excitation coefficients for RWG-based BEM systems.
Definition base.hpp:45
virtual EigMatNX< Complex, obs_num_dof > compute(const Complex k, const Triangle< 3 > &obs_tri)=0
Computes the excitation coefficients for each degree of freedom associated with the observation trian...
virtual Index num_excitations() const =0
Returns the number of excitations (right-hand sides) to be generated.
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
std::size_t Index
Unsigned integer type for indices and container sizes.
Definition types.hpp:54
Namespace for RWG-based BEM functionality.
Primary namespace for the OpenBEM library.
Definition constants.hpp:31