18#ifndef BEM_STRUCTURE_H
19#define BEM_STRUCTURE_H
31template <
typename MeshType>
class Component;
32template <
typename MeshType>
class MeshView;
43template <
typename MeshType>
111 {
return background_material_; };
119 {
return components_; };
127 {
return components_; };
135 {
return metacomponents_; };
143 {
return metacomponents_; };
154 const std::string name,
168 const std::string name,
179 std::vector<Component<MeshType>> components_;
180 std::vector<Component<MeshType>> metacomponents_;
Class defining a general material with a constant (zero or non-zero) electrical conductivity and real...
Class defining a perfect lossless dielectric material.
Class that defines a structure.
const std::vector< Component< MeshType > > & components() const
Returns a read-only list of the components in the structure.
std::vector< Component< MeshType > > & metacomponents()
Returns an editable list of the metacomponents in the structure.
Structure(const MeshType &mesh, const Material background_material=PerfectDielectricMaterial(1, 1))
Constructs a Structure with a given mesh.
std::vector< MeshView< MeshType > > mesh_views_by_name(const std::string name, const bool search_metacomponents=false, const bool case_sensitive=false)
Returns a list of mesh views associated with components whose name contains a given string.
void add_metacomponent(const Component< MeshType > &metacomponent)
Adds a metaComponent to the structure which corresponds to a given subset of the mesh.
std::vector< Component< MeshType > > components_by_name(const std::string name, const bool search_metacomponents=false, const bool case_sensitive=false)
Returns a list of the components whose name contains a given string.
const Material & background_material() const
Returns the background material of the structure.
const std::vector< Component< MeshType > > & metacomponents() const
Returns a read-only list of the metacomponents in the structure.
const MeshType & mesh() const
Returns the mesh associated with the structure in read-only form.
MeshType & mesh()
Returns the mesh associated with the structure in editable form.
void add_component(const Component< MeshType > &component)
Adds a component to the structure.
Structure(const Material background_material=PerfectDielectricMaterial(1, 1))
Constructs an empty Structure.
std::vector< Component< MeshType > > & components()
Returns an editable list of the components in the structure.
Eigen::Matrix< T, N, 1 > EigColVecN
Fixed-size column vector of size N containing type T.
Primary namespace for the OpenBEM library.