BornAgain
1.18.0
Simulate and fit neutron and x-ray scattering at grazing incidence
|
Public Member Functions | |
SampleToPython () | |
~SampleToPython () | |
std::string | generateSampleCode (const MultiLayer &multilayer) |
Private Member Functions | |
void | initLabels (const MultiLayer &multilayer) |
std::string | defineGetSample () const |
std::string | defineMaterials () const |
std::string | defineLayers () const |
std::string | defineFormFactors () const |
std::string | defineParticles () const |
std::string | defineCoreShellParticles () const |
std::string | defineParticleDistributions () const |
std::string | defineParticleCompositions () const |
std::string | defineLattices () const |
std::string | defineCrystals () const |
std::string | defineMesoCrystals () const |
std::string | defineInterferenceFunctions () const |
std::string | defineParticleLayouts () const |
std::string | defineRoughnesses () const |
std::string | addLayoutsToLayers () const |
std::string | defineMultiLayers () const |
std::string | indent () const |
void | setRotationInformation (const IParticle *particle, std::string particle_name, std::ostringstream &result) const |
void | setPositionInformation (const IParticle *particle, std::string particle_name, std::ostringstream &result) const |
Private Attributes | |
std::unique_ptr< SampleLabelHandler > | m_label |
Generates Python code snippet from domain (C++) objects representing sample construction.
Definition at line 27 of file SampleToPython.h.
|
default |
|
default |
std::string SampleToPython::generateSampleCode | ( | const MultiLayer & | multilayer | ) |
Definition at line 37 of file SampleToPython.cpp.
References defineGetSample(), and initLabels().
Referenced by ExportToPython::generateSampleCode(), and SimulationToPython::generateSimulationCode().
|
private |
Definition at line 43 of file SampleToPython.cpp.
References ISample::containedMaterials(), and m_label.
Referenced by generateSampleCode().
|
private |
Definition at line 83 of file SampleToPython.cpp.
References addLayoutsToLayers(), defineCoreShellParticles(), defineCrystals(), defineFormFactors(), defineInterferenceFunctions(), defineLattices(), defineLayers(), defineMaterials(), defineMesoCrystals(), defineMultiLayers(), defineParticleCompositions(), defineParticleDistributions(), defineParticleLayouts(), defineParticles(), defineRoughnesses(), and pyfmt::getSampleFunctionName().
Referenced by generateSampleCode().
|
private |
Definition at line 97 of file SampleToPython.cpp.
References OrderedMap< Key, Object >::begin(), OrderedMap< Key, Object >::empty(), OrderedMap< Key, Object >::end(), factory_names, Material::getName(), indent(), Material::isScalarMaterial(), m_label, Material::magnetization(), Material::materialData(), pyfmt::printDouble(), Material::typeID(), BasicVector3D< T >::x(), BasicVector3D< T >::y(), and BasicVector3D< T >::z().
Referenced by defineGetSample().
|
private |
Definition at line 135 of file SampleToPython.cpp.
References indent(), m_label, Layer::material(), Layer::numberOfSlices(), and Layer::thickness().
Referenced by defineGetSample().
|
private |
Definition at line 157 of file SampleToPython.cpp.
References pyfmt2::argumentList(), IParameterized::getName(), indent(), and m_label.
Referenced by defineGetSample().
|
private |
Definition at line 173 of file SampleToPython.cpp.
References indent(), m_label, Particle::material(), setPositionInformation(), and setRotationInformation().
Referenced by defineGetSample().
|
private |
Definition at line 196 of file SampleToPython.cpp.
References ParticleCoreShell::coreParticle(), indent(), m_label, setPositionInformation(), setRotationInformation(), and ParticleCoreShell::shellParticle().
Referenced by defineGetSample().
|
private |
Definition at line 217 of file SampleToPython.cpp.
References ParameterDistribution::getDistribution(), ParameterDistribution::getLinkedParameterNames(), indent(), m_label, ParticleDistribution::mainUnits(), ParticleDistribution::parameterDistribution(), pyfmt2::printDistribution(), and pyfmt2::printParameterDistribution().
Referenced by defineGetSample().
|
private |
Definition at line 265 of file SampleToPython.cpp.
References indent(), m_label, setPositionInformation(), and setRotationInformation().
Referenced by defineGetSample().
|
private |
Definition at line 288 of file SampleToPython.cpp.
References Lattice::getBasisVectorA(), Lattice::getBasisVectorB(), Lattice::getBasisVectorC(), indent(), m_label, pyfmt::printNm(), BasicVector3D< T >::x(), BasicVector3D< T >::y(), and BasicVector3D< T >::z().
Referenced by defineGetSample().
|
private |
Definition at line 313 of file SampleToPython.cpp.
References indent(), and m_label.
Referenced by defineGetSample().
|
private |
Definition at line 335 of file SampleToPython.cpp.
References indent(), m_label, setPositionInformation(), and setRotationInformation().
Referenced by defineGetSample().
|
private |
Definition at line 359 of file SampleToPython.cpp.
References pyfmt2::argumentList(), IParameterized::getName(), indent(), Lattice2D::latticeAngle(), Lattice2D::length1(), Lattice2D::length2(), m_label, IInterferenceFunction::positionVariance(), pyfmt::printDegrees(), pyfmt::printDouble(), pyfmt::printNm(), pyfmt::printNm2(), and Lattice2D::rotationAngle().
Referenced by defineGetSample().
|
private |
Definition at line 482 of file SampleToPython.cpp.
References indent(), m_label, and pyfmt::printDouble().
Referenced by defineGetSample().
|
private |
Definition at line 513 of file SampleToPython.cpp.
References pyfmt2::argumentList(), indent(), and m_label.
Referenced by defineGetSample().
|
private |
Definition at line 527 of file SampleToPython.cpp.
References indent(), Layer::layouts(), and m_label.
Referenced by defineGetSample().
|
private |
Definition at line 545 of file SampleToPython.cpp.
References LayerInterface::getRoughness(), indent(), m_label, and pyfmt::printScientificDouble().
Referenced by defineGetSample().
|
private |
Definition at line 591 of file SampleToPython.cpp.
Referenced by addLayoutsToLayers(), defineCoreShellParticles(), defineCrystals(), defineFormFactors(), defineInterferenceFunctions(), defineLattices(), defineLayers(), defineMaterials(), defineMesoCrystals(), defineMultiLayers(), defineParticleCompositions(), defineParticleDistributions(), defineParticleLayouts(), defineParticles(), defineRoughnesses(), setPositionInformation(), and setRotationInformation().
|
private |
Definition at line 596 of file SampleToPython.cpp.
References Transform3D::calculateEulerAngles(), Transform3D::calculateRotateXAngle(), Transform3D::calculateRotateYAngle(), Transform3D::calculateRotateZAngle(), Transform3D::EULER, Transform3D::getRotationType(), IRotation::getTransform3D(), indent(), pyfmt::printDegrees(), IParticle::rotation(), Transform3D::XAXIS, Transform3D::YAXIS, and Transform3D::ZAXIS.
Referenced by defineCoreShellParticles(), defineMesoCrystals(), defineParticleCompositions(), and defineParticles().
|
private |
Definition at line 632 of file SampleToPython.cpp.
References indent(), IParticle::position(), pyfmt::printNm(), BasicVector3D< T >::x(), BasicVector3D< T >::y(), and BasicVector3D< T >::z().
Referenced by defineCoreShellParticles(), defineMesoCrystals(), defineParticleCompositions(), and defineParticles().
|
private |
Definition at line 62 of file SampleToPython.h.
Referenced by addLayoutsToLayers(), defineCoreShellParticles(), defineCrystals(), defineFormFactors(), defineInterferenceFunctions(), defineLattices(), defineLayers(), defineMaterials(), defineMesoCrystals(), defineMultiLayers(), defineParticleCompositions(), defineParticleDistributions(), defineParticleLayouts(), defineParticles(), defineRoughnesses(), and initLabels().