BornAgain
1.19.79
Open-source research software to simulate and fit neutron and x-ray reflectometry and grazing-incidence small-angle scattering
MesoCrystal.h
Go to the documentation of this file.
1
// ************************************************************************************************
2
//
3
// BornAgain: simulate and fit reflection and scattering
4
//
5
//! @file Sample/Particle/MesoCrystal.h
6
//! @brief Defines class MesoCrystal.
7
//!
8
//! @homepage http://www.bornagainproject.org
9
//! @license GNU General Public License v3 or higher (see COPYING)
10
//! @copyright Forschungszentrum Jülich GmbH 2018
11
//! @authors Scientific Computing Group at MLZ (see CITATION, AUTHORS)
12
//
13
// ************************************************************************************************
14
15
#ifndef BORNAGAIN_SAMPLE_PARTICLE_MESOCRYSTAL_H
16
#define BORNAGAIN_SAMPLE_PARTICLE_MESOCRYSTAL_H
17
18
#include "
Sample/Particle/IParticle.h
"
19
20
class
IFormFactor
;
21
class
Crystal
;
22
23
//! A particle with a crystalline inner structure, made of smaller particles,
24
//! and an outer shape described by a particle form factor.
25
//! @ingroup samples
26
27
class
MesoCrystal
:
public
IParticle
{
28
public
:
29
MesoCrystal
(
const
Crystal
& crystal,
const
IFormFactor
& formfactor);
30
31
~MesoCrystal
()
override
;
32
33
MesoCrystal
*
clone
()
const override
;
34
std::string
className
() const final {
return
"MesoCrystal"
; }
35
std::vector<const INode*>
nodeChildren
()
const override
;
36
37
const
IFormFactor
*
outerShape
()
const
{
return
m_meso_formfactor
.get(); }
38
const
Crystal
&
particleStructure
()
const
;
39
40
private
:
41
MesoCrystal
(
Crystal
* crystal,
IFormFactor
* formfactor);
42
43
const
std::unique_ptr<Crystal>
m_crystal
;
//!< Crystalline inner structure
44
const
std::unique_ptr<IFormFactor>
m_meso_formfactor
;
//!< Outer shape of the mesocrystal
45
};
46
47
#endif
// BORNAGAIN_SAMPLE_PARTICLE_MESOCRYSTAL_H
IParticle.h
Defines interface IParticle.
Crystal
A crystal structure, defined by a Bravais lattice, a basis, and a position variance.
Definition:
Crystal.h:34
IFormFactor
Abstract base class for Born form factors.
Definition:
IFormFactor.h:36
IParticle
Abstract base class for Particle, ParticleComposition, ParticleCoreShell, MesoCrystal....
Definition:
IParticle.h:31
MesoCrystal
A particle with a crystalline inner structure, made of smaller particles, and an outer shape describe...
Definition:
MesoCrystal.h:27
MesoCrystal::className
std::string className() const final
Returns the class name, to be hard-coded in each leaf class that inherits from INode.
Definition:
MesoCrystal.h:34
MesoCrystal::~MesoCrystal
~MesoCrystal() override
MesoCrystal::particleStructure
const Crystal & particleStructure() const
Definition:
MesoCrystal.cpp:50
MesoCrystal::m_meso_formfactor
const std::unique_ptr< IFormFactor > m_meso_formfactor
Outer shape of the mesocrystal.
Definition:
MesoCrystal.h:44
MesoCrystal::nodeChildren
std::vector< const INode * > nodeChildren() const override
Returns all children.
Definition:
MesoCrystal.cpp:44
MesoCrystal::clone
MesoCrystal * clone() const override
Returns a clone of this ISampleNode object.
Definition:
MesoCrystal.cpp:34
MesoCrystal::outerShape
const IFormFactor * outerShape() const
Definition:
MesoCrystal.h:37
MesoCrystal::m_crystal
const std::unique_ptr< Crystal > m_crystal
Crystalline inner structure.
Definition:
MesoCrystal.h:43
MesoCrystal::MesoCrystal
MesoCrystal(const Crystal &crystal, const IFormFactor &formfactor)
Definition:
MesoCrystal.cpp:27
Sample
Particle
MesoCrystal.h
Generated by
1.9.1