OpenBEM
Open-source framework for electromagnetic simulation with the boundary element method.
Loading...
Searching...
No Matches
operator_matrix.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_OP_ASSEMBLER_H
19#define BEM_RWG_OP_ASSEMBLER_H
20
21#include "types.hpp"
23
24
25namespace bem
26{
27// Forward declarations
28template <typename T> class MatrixBase;
29}
30
31
32namespace bem::rwg
33{
34
44{
45
47 using base::base;
48
49public:
50
56 void prep_matrix(MatrixBase<Complex>& mat) override;
57
58
66 void fill_matrix(
70 ) override;
71
72};
73
74
79{
80
82 using base::base;
83
84public:
85
91 void prep_matrix(MatrixBase<Complex>& mat) override;
92
93
101 void fill_matrix(
105 ) override;
106
107};
108
109
114{
115
117 using base::base;
118
119public:
120
126 void prep_matrix(MatrixBase<Complex>& mat) override;
127
128
137 void fill_matrix(
141 ) override;
142
143};
144
145
150{
151
153 using base::base;
154
155public:
156
162 void prep_matrix(MatrixBase<Complex>& mat) override;
163
164
173 void fill_matrix(
177 ) override;
178
179};
180
181
186{
187
189 using base::base;
190
191public:
192
199 void prep_matrix(MatrixBase<Complex>& mat) override;
200
201
211 void fill_matrix(
215 ) override;
216
217};
218
223}
224
225#ifndef BEM_LINKED
227#endif
228
229#endif
Class for generating operator matrices for RWG observation and pulse source functions.
void fill_matrix(MatrixBase< Complex > &mat, ConstEigRef< EigColVecN< Index, 2 > > elem_pair, ConstEigRef< EigMatMN< Complex, 3, 1 > > values) override
Fills operator values in the matrix for face-based pulse source functions and edge-based RWG observat...
void prep_matrix(MatrixBase< Complex > &mat) override
Prepares the matrix for assembly (e.g., resizing and preallocation).
Class for generating operator matrices for RWG observation and source functions.
void prep_matrix(MatrixBase< Complex > &mat) override
Prepares the matrix for assembly (e.g., resizing and preallocation).
void fill_matrix(MatrixBase< Complex > &mat, ConstEigRef< EigColVecN< Index, 2 > > elem_pair, ConstEigRef< EigMatMN< Complex, 3, 3 > > values) override
Fills operator values in the matrix for edge-based RWG observation and source functions.
Class for generating operator matrices for pulse observation and RWG source functions.
void prep_matrix(MatrixBase< Complex > &mat) override
Prepares the matrix for assembly (e.g., resizing and preallocation).
void fill_matrix(MatrixBase< Complex > &mat, ConstEigRef< EigColVecN< Index, 2 > > elem_pair, ConstEigRef< EigMatMN< Complex, 1, 3 > > values) override
Fills operator values in the matrix for face-based pulse observation functions and edge-based RWG sou...
Class for generating operator matrices for pulse observation and source functions.
void fill_matrix(MatrixBase< Complex > &mat, ConstEigRef< EigColVecN< Index, 2 > > elem_pair, ConstEigRef< EigMatMN< Complex, 1, 1 > > values) override
Fills operator values in the matrix for face-based pulse observation and source functions.
void prep_matrix(MatrixBase< Complex > &mat) override
Prepares the matrix for assembly (e.g., resizing and preallocation).
Base class for generating RWG-based BEM operator matrices.
Definition base.hpp:46
Class for generating the full set of vector operator matrices for RWG observation and source function...
void fill_matrix(MatrixBase< Complex > &mat, ConstEigRef< EigColVecN< Index, 2 > > elem_pair, ConstEigRef< EigMatMN< Complex, 12, 3 > > values) override
Fills operator values in the matrix for edge-based RWG observation and source functions.
void prep_matrix(MatrixBase< Complex > &mat) override
Prepares the matrix for assembly (e.g., resizing and preallocation).
const Eigen::Ref< const EigObj > ConstEigRef
Read-only reference to an Eigen object.
Definition types.hpp:98
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.
Primary namespace for the OpenBEM library.
Definition constants.hpp:31