BornAgain  1.18.0
Simulate and fit neutron and x-ray scattering at grazing incidence
PyFmt2.h
Go to the documentation of this file.
1 // ************************************************************************** //
2 //
3 // BornAgain: simulate and fit scattering at grazing incidence
4 //
5 //! @file Device/Instrument/PyFmt2.h
6 //! @brief Defines namespace pyfmt2.
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_CORE_PYIO_PYTHONFORMATTING_H
16 #define BORNAGAIN_CORE_PYIO_PYTHONFORMATTING_H
17 
18 #include <functional>
19 #include <string>
20 
21 class IDistribution1D;
22 class IParameterized;
23 class IShape2D;
24 class RealParameter;
26 
27 //! Utility functions for writing Python code snippets.
28 
29 namespace pyfmt2
30 {
31 
32 std::string representShape2D(const std::string& indent, const IShape2D* ishape, bool mask_value,
33  std::function<std::string(double)> printValueFunc);
34 
35 std::string valueTimesUnit(const RealParameter* par);
36 std::string argumentList(const IParameterized* ip);
37 
38 std::string printDistribution(const IDistribution1D& par_distr, const std::string& units = "");
39 
40 std::string printParameterDistribution(const ParameterDistribution& par_distr,
41  const std::string& distVarName,
42  const std::string& units = "");
43 } // namespace pyfmt2
44 
45 #endif // BORNAGAIN_CORE_PYIO_PYTHONFORMATTING_H
Interface for one-dimensional distributions.
Definition: Distributions.h:33
Manages a local parameter pool, and a tree of child pools.
Basic class for all shapes in 2D.
Definition: IShape2D.h:27
A parametric distribution function, for use with any model parameter.
Wraps a parameter of type double.
Definition: RealParameter.h:32
Utility functions for writing Python code snippets.
Definition: PyFmt2.cpp:34
std::string printParameterDistribution(const ParameterDistribution &par_distr, const std::string &distVarName, const std::string &units)
Definition: PyFmt2.cpp:127
std::string argumentList(const IParameterized *ip)
Returns comma-separated list of parameter values, including unit multiplicator (like "* nm").
Definition: PyFmt2.cpp:106
std::string printDistribution(const IDistribution1D &par_distr, const std::string &units)
Prints distribution with constructor parameters in given units.
Definition: PyFmt2.cpp:117
std::string valueTimesUnit(const RealParameter *par)
Returns parameter value, followed by its unit multiplicator (like "* nm").
Definition: PyFmt2.cpp:97
std::string representShape2D(const std::string &indent, const IShape2D *ishape, bool mask_value, std::function< std::string(double)> printValueFunc)
Returns fixed Python code snippet that defines the function "runSimulation".
Definition: PyFmt2.cpp:38
std::string indent(size_t width)
Returns a string of blanks with given width.
Definition: PyFmt.cpp:141