24 : m_material(
std::move(material)), m_thickness(thickness)
27 throw std::runtime_error(
"Layer thickness cannot be negative");
40 for (
const auto* layout :
layouts())
49 throw std::runtime_error(
"Layer thickness cannot be negative");
67 std::vector<const ParticleLayout*> result;
69 result.push_back(layout);
75 std::vector<const INode*> result;
77 result.push_back(layout);
83 if (make_registered) {
Defines class ParameterPool.
Defines class ParticleLayout.
Defines class RealParameter.
void registerChild(INode *node)
const std::string & getName() const
void removeParameter(const std::string &name)
RealParameter * parameter(const std::string &name) const
Returns parameter with given 'name'.
void setName(const std::string &name)
RealParameter & registerParameter(const std::string &name, double *parpointer)
A layer in a MultiLayer sample.
std::vector< const ParticleLayout * > layouts() const
const Material * material() const final
Returns nullptr, unless overwritten to return a specific material.
kvector_t m_B_field
cached value of magnetic induction
double m_thickness
layer thickness in nanometers
void setMaterial(Material material)
void setThickness(double thickness)
Sets layer thickness in nanometers.
unsigned int m_n_slices
number of slices to create for graded layer approach
std::vector< const INode * > getChildren() const final
Returns a vector of children.
Material m_material
material
Layer(Material material, double thickness=0)
Constructor of a layer with thickness and material.
void registerThickness(bool make_registered=true)
void addLayout(const ParticleLayout &decoration)
SafePointerVector< ParticleLayout > m_layouts
independent layouts in this layer
Layer * clone() const final
Returns a clone of this ISampleNode object.
A wrapper for underlying material implementation.
Decorator class that adds particles to ISampleNode objects.
ParticleLayout * clone() const override
Returns a clone of this ISampleNode object.
RealParameter & setNonnegative()
RealParameter & setUnit(const std::string &name)
void push_back(T *pointer)