BornAgain
1.19.0
Simulate and fit neutron and x-ray scattering at grazing incidence
FormFactorComponents.cpp
Go to the documentation of this file.
1
// ************************************************************************************************
2
//
3
// BornAgain: simulate and fit reflection and scattering
4
//
5
//! @file Sample/SampleBuilderEngine/FormFactorComponents.cpp
6
//! @brief Implements sample components for complex sample builders.
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
#include "
Sample/SampleBuilderEngine/FormFactorComponents.h
"
16
#include "
Base/Const/Units.h
"
17
18
// ************************************************************************************************
19
FormFactorComponents::FormFactorComponents
()
20
// ************************************************************************************************
21
{
22
add
(
"AnisoPyramid"
,
new
FormFactorAnisoPyramid
(10.0, 20.0, 5.0,
Units::deg2rad
(54.73)));
23
24
add
(
"Box"
,
new
FormFactorBox
(10.0, 20.0, 5.0));
25
26
// TODO: activate this when supported by GUI
27
// add("CantellatedCube", new FormFactorCantellatedCube(15.0, 6.0));
28
29
add
(
"Cone"
,
new
FormFactorCone
(5.0, 6.0,
Units::deg2rad
(54.73)));
30
31
add
(
"Cone6"
,
new
FormFactorCone6
(2. / sqrt(3.) * 5.0, 5.0,
Units::deg2rad
(54.73)));
32
33
add
(
"Cuboctahedron"
,
new
FormFactorCuboctahedron
(10.0, 5.0, 1.0,
Units::deg2rad
(54.73)));
34
35
add
(
"Cylinder"
,
new
FormFactorCylinder
(5.0, 10.0));
36
37
add
(
"Dodecahedron"
,
new
FormFactorDodecahedron
(5.0));
38
39
add
(
"Dot"
,
new
FormFactorDot
(5.0));
40
41
add
(
"EllipsoidalCylinder"
,
new
FormFactorEllipsoidalCylinder
(5.0, 10.0, 15.0));
42
43
add
(
"FullSphere"
,
new
FormFactorFullSphere
(5.0));
44
45
add
(
"FullSpheroid"
,
new
FormFactorFullSpheroid
(5.0, 10.0));
46
47
add
(
"HemiEllipsoid"
,
new
FormFactorHemiEllipsoid
(5.0, 10.0, 15.0));
48
49
add
(
"Icosahedron"
,
new
FormFactorIcosahedron
(10.0));
50
51
add
(
"Prism3"
,
new
FormFactorPrism3
(10.0, 5.0));
52
53
add
(
"Prism6"
,
new
FormFactorPrism6
(2. / sqrt(3.) * 5.0, 5.0));
54
55
add
(
"Pyramid"
,
new
FormFactorPyramid
(10.0, 5.0,
Units::deg2rad
(54.73)));
56
57
add
(
"CosineRippleBox"
,
new
FormFactorCosineRippleBox
(100.0, 20.0, 4.0));
58
59
add
(
"SawtoothRippleBox"
,
new
FormFactorSawtoothRippleBox
(100.0, 20.0, 4.0, 0.0));
60
61
add
(
"Tetrahedron"
,
new
FormFactorTetrahedron
(10.0, 4.0,
Units::deg2rad
(54.73)));
62
63
add
(
"TruncatedCube"
,
new
FormFactorTruncatedCube
(15.0, 6.0));
64
65
add
(
"TruncatedSphere"
,
new
FormFactorTruncatedSphere
(5.0, 7.0, 0));
66
67
add
(
"TruncatedSpheroid"
,
new
FormFactorTruncatedSpheroid
(5.0, 7.0, 1.0, 0));
68
}
FormFactorComponents.h
Defines sample components for complex sample builders.
Units.h
Defines some unit conversion factors and other constants in namespace Units.
FormFactorAnisoPyramid
A frustum (truncated pyramid) with rectangular base.
Definition:
FormFactorAnisoPyramid.h:23
FormFactorBox
A rectangular prism (parallelepiped).
Definition:
FormFactorBox.h:23
FormFactorComponents::FormFactorComponents
FormFactorComponents()
Definition:
FormFactorComponents.cpp:19
FormFactorCone6
A frustum (truncated pyramid) with regular hexagonal base.
Definition:
FormFactorCone6.h:23
FormFactorCone
A conical frustum (cone truncated parallel to the base) with circular base.
Definition:
FormFactorCone.h:23
FormFactorCosineRippleBox
The form factor for a cosine ripple, with box profile in elongation direction.
Definition:
FormFactorCosineRipple.h:22
FormFactorCuboctahedron
A truncated bifrustum with quadratic base.
Definition:
FormFactorCuboctahedron.h:23
FormFactorCylinder
A circular cylinder.
Definition:
FormFactorCylinder.h:23
FormFactorDodecahedron
A regular dodecahedron.
Definition:
FormFactorDodecahedron.h:23
FormFactorDot
A dot, with scattering power as a sphere of radius rscat, but with F(q)=const.
Definition:
FormFactorDot.h:23
FormFactorEllipsoidalCylinder
A cylinder with elliptical base.
Definition:
FormFactorEllipsoidalCylinder.h:23
FormFactorFullSphere
A full sphere.
Definition:
FormFactorFullSphere.h:23
FormFactorFullSpheroid
A full spheroid (an ellipsoid with two equal axes, hence with circular cross section)
Definition:
FormFactorFullSpheroid.h:23
FormFactorHemiEllipsoid
An hemi ellipsoid, obtained by truncating a full ellipsoid in the middle plane spanned by two princip...
Definition:
FormFactorHemiEllipsoid.h:24
FormFactorIcosahedron
A regular icosahedron.
Definition:
FormFactorIcosahedron.h:23
FormFactorPrism3
A prism based on an equilateral triangle.
Definition:
FormFactorPrism3.h:23
FormFactorPrism6
A prism based on a regular hexagonal.
Definition:
FormFactorPrism6.h:23
FormFactorPyramid
A frustum with a quadratic base.
Definition:
FormFactorPyramid.h:23
FormFactorSawtoothRippleBox
The form factor for a cosine ripple, with box profile in elongation direction.
Definition:
FormFactorSawtoothRipple.h:22
FormFactorTetrahedron
A frustum with equilateral trigonal base.
Definition:
FormFactorTetrahedron.h:23
FormFactorTruncatedCube
A cube, with tetrahedral truncation of all corners.
Definition:
FormFactorTruncatedCube.h:23
FormFactorTruncatedSphere
A truncated Sphere.
Definition:
FormFactorTruncatedSphere.h:23
FormFactorTruncatedSpheroid
A truncated spheroid.
Definition:
FormFactorTruncatedSpheroid.h:24
IRegistry< IFormFactor >::add
void add(const std::string &key, IFormFactor *item)
Definition:
IRegistry.h:54
Units::deg2rad
double deg2rad(double angle)
Definition:
Units.h:59
Sample
SampleBuilderEngine
FormFactorComponents.cpp
Generated by
1.9.1