BornAgain  1.18.0
Simulate and fit neutron and x-ray scattering at grazing incidence
anonymous_namespace{SimulationToPython.cpp} Namespace Reference

Functions

std::function< std::string(double)> printFunc (const IDetector *detector)
 
bool isDefaultDirection (const kvector_t direction)
 

Variables

const std::string defineSimulate
 

Function Documentation

◆ printFunc()

std::function<std::string(double)> anonymous_namespace{SimulationToPython.cpp}::printFunc ( const IDetector detector)

Returns a function that converts a coordinate to a Python code snippet with appropiate unit.

Definition at line 51 of file SimulationToPython.cpp.

52 {
53  if (detector->defaultAxesUnits() == Axes::Units::MM)
54  return pyfmt::printDouble;
55  if (detector->defaultAxesUnits() == Axes::Units::RADIANS)
56  return pyfmt::printDegrees;
58  "SimulationToPython::defineMasks() -> Error. Unknown detector units.");
59 }
virtual Axes::Units defaultAxesUnits() const
Return default axes units.
Definition: IDetector.h:101
std::string printDegrees(double input)
Definition: PyFmt.cpp:94
std::string printDouble(double input)
Definition: PyFmt.cpp:43

References IDetector::defaultAxesUnits(), pyfmt::printDegrees(), and pyfmt::printDouble().

Referenced by SimulationToPython::defineDetector(), SimulationToPython::defineDetectorResolutionFunction(), and SimulationToPython::defineMasks().

Here is the call graph for this function:

◆ isDefaultDirection()

bool anonymous_namespace{SimulationToPython.cpp}::isDefaultDirection ( const kvector_t  direction)

returns true if it is (0, -1, 0) vector

Definition at line 62 of file SimulationToPython.cpp.

63 {
64  return algo::almostEqual(direction.x(), 0.0) && algo::almostEqual(direction.y(), -1.0)
65  && algo::almostEqual(direction.z(), 0.0);
66 }
T z() const
Returns z-component in cartesian coordinate system.
Definition: BasicVector3D.h:68
T y() const
Returns y-component in cartesian coordinate system.
Definition: BasicVector3D.h:66
T x() const
Returns x-component in cartesian coordinate system.
Definition: BasicVector3D.h:64
bool almostEqual(double a, double b)
Returns true if two doubles agree within machine epsilon.
Definition: Algorithms.h:30

References algo::almostEqual(), BasicVector3D< T >::x(), BasicVector3D< T >::y(), and BasicVector3D< T >::z().

Referenced by SimulationToPython::defineDetector().

Here is the call graph for this function:

Variable Documentation

◆ defineSimulate

const std::string anonymous_namespace{SimulationToPython.cpp}::defineSimulate
Initial value:
= "def run_simulation():\n"
" sample = "
+ "()\n"
" simulation = get_simulation()\n"
" simulation.setSample(sample)\n"
" simulation.runSimulation()\n"
" return simulation.result()\n"
"\n\n"
std::string getSampleFunctionName()
Definition: PyFmt.cpp:33

Definition at line 40 of file SimulationToPython.cpp.

Referenced by SimulationToPython::generateSimulationCode().