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_OPINT_OBS_BASE_H
19#define BEM_RWG_OPINT_OBS_BASE_H
20
21#include "types.hpp"
23
24
25namespace bem::rwg
26{
27
43
44
49{
50public:
51
60 const Complex k,
61 const Triangle<3>& obs_tri,
62 const Triangle<2>& src_tri
63 ) = 0;
64
65
94 virtual void set_compute_terms(
95 bool compute_g_term,
99 )
100 {
101 compute_g_term_ = compute_g_term;
102 compute_rs_g_terms_ = compute_rs_g_terms;
103 compute_grad_g_terms_ = compute_grad_g_terms;
104 compute_rot_grad_g_terms_ = compute_rot_grad_g_terms;
105 return;
106 };
107
108
109protected:
110
111 bool compute_g_term_ = true;
112 bool compute_rs_g_terms_ = true;
113 bool compute_grad_g_terms_ = true;
114 bool compute_rot_grad_g_terms_ = true;
115
116};
117
122}
123
124#endif
Base class for integration over the observation triangle for RWG-based BEM operators.
Definition base.hpp:49
virtual ObsResult integrate(const Complex k, const Triangle< 3 > &obs_tri, const Triangle< 2 > &src_tri)=0
Computes the integral over the observation triangle.
virtual void set_compute_terms(bool compute_g_term, bool compute_rs_g_terms, bool compute_grad_g_terms, bool compute_rot_grad_g_terms)
Sets flags defining which terms to compute during integration, which are propagated into the source t...
Definition base.hpp:94
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
Eigen::Matrix< T, 1, N > EigRowVecN
Fixed-size row vector of size N containing type T.
Definition types.hpp:94
Namespace for RWG-based BEM functionality.
Data structure to hold the results of integration over the observation triangle.
Definition base.hpp:37