OpenBEM
Open-source framework for electromagnetic simulation with the boundary element method.
Loading...
Searching...
No Matches
bem Namespace Reference

Primary namespace for the OpenBEM library. More...

Namespaces

namespace  rwg
 Namespace for RWG-based BEM functionality.
 

Classes

class  AdaptiveTriangleQuadrature
 Class for adaptive quadrature over a triangle. Reference: O. Ergul, L. Gurel, "The Multilevel Fast Multipole Algorithm (MLFMA) for Solving Large-Scale Computational Electromagnetics Problems," book, Wiley-IEEE Press, 2014. More...
 
class  Component
 Class that defines a component in a structure. More...
 
class  ConstantLossTangentMaterial
 Class defining a material with a constant loss tangent and real permittivity and permeability. More...
 
class  Edge
 Edge primitive class. More...
 
class  EigenDenseMatrix
 Eigen-based dense matrix wrapper. More...
 
class  EigenMatrixBase
 Base class for Eigen-based matrices. More...
 
class  EigenSparseMatrix
 Eigen-based sparse matrix wrapper. More...
 
class  GaussLineQuadrature
 Class for Gaussian quadrature over a line segment. More...
 
class  GaussTriangleQuadrature
 Class for Gaussian quadrature over a triangle. More...
 
class  GeometryOps
 Geometry operations class. More...
 
class  HGF
 Class for computing the scalar Green's function for homogeneous, linear, and isotropic materials. More...
 
class  IterativeGaussLineQuadrature
 Class for iterative Gaussian quadrature over a line segment. More...
 
class  IterativeGaussTriangleQuadrature
 Class for iterative Gaussian quadrature over a triangle. More...
 
class  IterativeTrapzLineQuadrature
 Class for iterative trapezoidal integration over a line segment. More...
 
class  LineQuadratureBase
 Base class for quadrature over a line segment. More...
 
class  Material
 Class defining a general material with a constant (zero or non-zero) electrical conductivity and real or complex permittivity and permeability. More...
 
class  MatrixBase
 Base class for for matrix algebra containers. More...
 
class  MeshBase
 Mesh base class. More...
 
class  MeshTransfer
 Class that collects mesh input and output static methods. More...
 
class  MeshView
 Class that provides a lightweight view into a MeshBase object. More...
 
class  PerfectDielectricMaterial
 Class defining a perfect lossless dielectric material. More...
 
class  PointCloud
 Point cloud class. More...
 
struct  QuadratureRule
 Data structure defining a quadrature rule. More...
 
class  ScalarKernelBase
 Base class for scalar kernels. More...
 
class  SingularitySubtractedHGF
 Class for computing the scalar Green's function for homogeneous, linear, and isotropic materials, with the singular term(s) explicitly subtracted out. More...
 
class  SingularitySubtractedTaylorHGF
 Class for computing the scalar Green's function for homogeneous, linear, and isotropic materials, with the singular term(s) implicitly subtracted using the Taylor series expansion of the kernel. More...
 
class  Structure
 Class that defines a structure. More...
 
class  TrapzLineQuadrature
 Class for trapezoidal integration over a line segment. More...
 
class  Triangle
 Triangle primitive class. More...
 
class  TriangleMesh
 Class defining a mesh with triangle elements. More...
 
class  TriangleQuadratureBase
 Base class for quadrature over a triangle. More...
 

Typedefs

Aliases for built-in C++ types.
using Float = double
 Floating point number.
 
using Complex = std::complex< Float >
 Complex floating point number.
 
using Index = std::size_t
 Unsigned integer type for indices and container sizes.
 
using Int = int
 Signed integer type.
 
Aliases for Eigen types.
template<typename T >
using EigMat = Eigen::Matrix< T, Eigen::Dynamic, Eigen::Dynamic >
 Dynamic-size matrix containing type T.
 
template<typename T , Index M, Index N>
using EigMatMN = Eigen::Matrix< T, M, N >
 Fixed-size matrix with M rows and N columns containing type T.
 
template<typename T , Index N>
using EigMatXN = Eigen::Matrix< T, Eigen::Dynamic, N >
 Fixed-width matrix with N columns containing type T.
 
template<typename T , Index N>
using EigMatNX = Eigen::Matrix< T, N, Eigen::Dynamic >
 Fixed-height matrix with N rows containing type T.
 
template<typename T >
using EigColVec = Eigen::Matrix< T, Eigen::Dynamic, 1 >
 Dynamic-size column vector containing type T.
 
template<typename T , Index N>
using EigColVecN = Eigen::Matrix< T, N, 1 >
 Fixed-size column vector of size N containing type T.
 
template<typename T >
using EigRowVec = Eigen::Matrix< T, 1, Eigen::Dynamic >
 Dynamic-size row vector containing type T.
 
template<typename T , Index N>
using EigRowVecN = Eigen::Matrix< T, 1, N >
 Fixed-size row vector of size N containing type T.
 
template<class EigObj >
using ConstEigRef = const Eigen::Ref< const EigObj >
 Read-only reference to an Eigen object.
 
template<class EigObj >
using EigRef = Eigen::Ref< EigObj >
 Writable reference to an Eigen object.
 

Functions

bool compare_with_tol (const Complex val, const Complex val_ref, const Float tol=1e-3, const uint8_t mode=1)
 Compares two complex numbers within a given tolerance based on a given rule.
 
template<uint8_t dim>
std::vector< QuadratureRule< dim > > load_rules (const std::string file, ConstEigRef< EigColVec< Index > > orders)
 Loads quadrature rules from the specified json file assumed to be located in the same directory as this file.
 
template std::vector< QuadratureRule< 1 > > load_rules (const std::string file, ConstEigRef< EigColVec< Index > > orders)
 

Variables

const Complex J = Complex(0.0, 1.0)
 Imaginary unit.
 
const Float zero = 0.0
 
const Float one = 1.0
 
const Float two = 2.0
 
const Float four = 4.0
 
const Float half = 0.5
 
const Float pi = M_PI
 
const Float two_pi = (Float)(2.0 * M_PI)
 
const Float four_pi = (Float)(4.0 * M_PI)
 
const Float half_pi = (Float)(0.5 * M_PI)
 
const Float quarter_pi = (Float)(M_PI / 4.0)
 
const Float eps0 = 8.854187817e-12
 Vacuum permittivity.
 
const Float mu0 = four_pi * 1.0e-7
 Vacuum permeability.
 
const Float c0 = 1.0 / std::sqrt(eps0 * mu0)
 Vacuum wave speed.
 
const Float eta0 = std::sqrt(mu0 / eps0)
 Vacuum wave impedance.
 
const Float inf = std::numeric_limits<Float>::infinity()
 Numerical infinity.
 
const Float float_eps = std::numeric_limits<Float>::epsilon()
 Numerical infinitesimal.
 
const Float GEOMETRY_DEFAULT_TOL = std::sqrt(float_eps)
 
const Float EDGE_DEFAULT_TOL = 1.0e-6
 
const Float TRIANGLE_DEFAULT_TOL = 1.0e-6
 
const Float KERNEL_DEFAULT_TOL = 1.0e-6
 
const Float CONDUCTOR_LOSS_TAN_THRESHOLD = 10
 
const uint8_t LINE_DEFAULT_ORDER = 10
 
const uint8_t LINE_MAX_ORDER = 30
 
const Float ITER_GAUSS_LINE_DEFAULT_TOL = 1e-3
 
const Float ITER_TRAPZ_LINE_DEFAULT_TOL = 1e-3
 
const uint16_t TRAPZ_LINE_DEFAULT_NUM_SEGMENTS = 10
 
const uint16_t TRAPZ_LINE_MAX_NUM_SEGMENTS = 1000
 
const uint16_t ADAPTIVE_TRI_DEFAULT_MAX_LEVELS = 200
 
const Float ADAPTIVE_TRI_DEFAULT_TOL = 1e-3
 
const uint8_t TRI_DEFAULT_ORDER = 4
 
const uint8_t TRI_MAX_ORDER = 30
 
const Float ITER_GAUSS_TRI_DEFAULT_TOL = 1e-3
 

Detailed Description

Primary namespace for the OpenBEM library.

Variable Documentation

◆ GEOMETRY_DEFAULT_TOL

const Float bem::GEOMETRY_DEFAULT_TOL = std::sqrt(float_eps)

Definition at line 30 of file operations.hpp.

◆ EDGE_DEFAULT_TOL

const Float bem::EDGE_DEFAULT_TOL = 1.0e-6

Definition at line 29 of file edge.hpp.

◆ TRIANGLE_DEFAULT_TOL

const Float bem::TRIANGLE_DEFAULT_TOL = 1.0e-6

Definition at line 32 of file triangle.hpp.

◆ KERNEL_DEFAULT_TOL

const Float bem::KERNEL_DEFAULT_TOL = 1.0e-6

Definition at line 30 of file base.hpp.

◆ CONDUCTOR_LOSS_TAN_THRESHOLD

const Float bem::CONDUCTOR_LOSS_TAN_THRESHOLD = 10

Definition at line 30 of file materials.hpp.

◆ LINE_DEFAULT_ORDER

const uint8_t bem::LINE_DEFAULT_ORDER = 10

Definition at line 32 of file base.hpp.

◆ LINE_MAX_ORDER

const uint8_t bem::LINE_MAX_ORDER = 30

Definition at line 33 of file base.hpp.

◆ ITER_GAUSS_LINE_DEFAULT_TOL

const Float bem::ITER_GAUSS_LINE_DEFAULT_TOL = 1e-3

Definition at line 32 of file iterative_gauss.hpp.

◆ ITER_TRAPZ_LINE_DEFAULT_TOL

const Float bem::ITER_TRAPZ_LINE_DEFAULT_TOL = 1e-3

Definition at line 32 of file iterative_trapz.hpp.

◆ TRAPZ_LINE_DEFAULT_NUM_SEGMENTS

const uint16_t bem::TRAPZ_LINE_DEFAULT_NUM_SEGMENTS = 10

Definition at line 30 of file trapz.hpp.

◆ TRAPZ_LINE_MAX_NUM_SEGMENTS

const uint16_t bem::TRAPZ_LINE_MAX_NUM_SEGMENTS = 1000

Definition at line 31 of file trapz.hpp.

◆ ADAPTIVE_TRI_DEFAULT_MAX_LEVELS

const uint16_t bem::ADAPTIVE_TRI_DEFAULT_MAX_LEVELS = 200

Definition at line 34 of file adaptive.hpp.

◆ ADAPTIVE_TRI_DEFAULT_TOL

const Float bem::ADAPTIVE_TRI_DEFAULT_TOL = 1e-3

Definition at line 35 of file adaptive.hpp.

◆ TRI_DEFAULT_ORDER

const uint8_t bem::TRI_DEFAULT_ORDER = 4

Definition at line 32 of file base.hpp.

◆ TRI_MAX_ORDER

const uint8_t bem::TRI_MAX_ORDER = 30

Definition at line 33 of file base.hpp.

◆ ITER_GAUSS_TRI_DEFAULT_TOL

const Float bem::ITER_GAUSS_TRI_DEFAULT_TOL = 1e-3

Definition at line 32 of file iterative_gauss.hpp.