18#ifndef BEM_COMPONENT_H
19#define BEM_COMPONENT_H
29template <
typename MeshType>
class MeshView;
41template <
typename MeshType>
52 template <
typename MaterialType>
56 const std::string
name =
"component"
59 material_(std::make_shared<MaterialType> (
material)),
68 template <
typename MaterialType>
71 const std::string
name =
"component"
83 {
return mesh_view_; };
91 {
return *material_; };
99 {
return mesh_view_.mesh(); };
106 const std::string&
name()
const {
return name_; };
113 template <
typename MaterialType>
115 { material_ = std::make_shared<MaterialType> (
material);
return; };
123 { name_ =
name;
return; };
129 std::shared_ptr<Material> material_ = std::make_shared<PerfectDielectricMaterial> (
132 std::string name_ =
"component";
Class that defines a component in a structure.
const MeshView< MeshType > & mesh_view() const
Returns the mesh view associated with the component.
void set_material(const MaterialType &material)
Sets the material of the component.
const std::string & name() const
Returns the name of the component.
Component(const MeshView< MeshType > &mesh_view, const MaterialType &material, const std::string name="component")
Constructs a Component with a mesh view and associated material.
MeshType mesh() const
Returns the mesh associated with the component.
const Material & material() const
Returns the material associated with the component.
Component(const MeshView< MeshType > &mesh_view, const std::string name="component")
Constructs a Component with a mesh view.
void set_name(const std::string &name)
Sets the name of the component.
Class defining a general material with a constant (zero or non-zero) electrical conductivity and real...
Class that provides a lightweight view into a MeshBase object.
Class defining a perfect lossless dielectric material.
Primary namespace for the OpenBEM library.