BornAgain  1.19.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 reflection and scattering
4 //
5 //! @file Core/Export/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 #ifdef SWIG
16 #error no need to expose this header to Swig
17 #endif
18 
19 #ifndef USER_API
20 #ifndef BORNAGAIN_CORE_EXPORT_PYFMT2_H
21 #define BORNAGAIN_CORE_EXPORT_PYFMT2_H
22 
23 #include <functional>
24 #include <string>
25 
26 class IAxis;
27 class IDistribution1D;
29 class IShape2D;
32 class RealParameter;
33 
34 //! Utility functions for writing Python code snippets.
35 
36 namespace pyfmt2 {
37 
38 std::string representShape2D(const std::string& indent, const IShape2D* ishape, bool mask_value,
39  std::function<std::string(double)> printValueFunc);
40 
41 std::string valueTimesUnit(const RealParameter* par);
42 std::string argumentList(const IParametricComponent* ip);
43 
44 std::string printAxis(const IAxis* axis, const std::string& unit);
45 
46 std::string printDistribution(const IDistribution1D& par_distr, const std::string& units = "");
47 
48 std::string printParameterDistribution(const ParameterDistribution& par_distr,
49  const std::string& distVarName,
50  const std::string& units = "");
51 
52 std::string printRangedDistribution(const IRangedDistribution& distr);
53 
54 } // namespace pyfmt2
55 
56 #endif // BORNAGAIN_CORE_EXPORT_PYFMT2_H
57 #endif // USER_API
Interface for one-dimensional axes.
Definition: IAxis.h:25
Interface for one-dimensional distributions.
Definition: Distributions.h:34
Manages a local parameter pool, and a tree of child pools.
Interface for one-dimensional ranged distributions.
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:31
Utility functions for writing Python code snippets.
Definition: PyFmt2.cpp:36
std::string printParameterDistribution(const ParameterDistribution &par_distr, const std::string &distVarName, const std::string &units)
Definition: PyFmt2.cpp:147
std::string printAxis(const IAxis *axis, const std::string &unit)
Prints an axis.
Definition: PyFmt2.cpp:115
std::string printDistribution(const IDistribution1D &par_distr, const std::string &units)
Prints distribution with constructor parameters in given units.
Definition: PyFmt2.cpp:137
std::string valueTimesUnit(const RealParameter *par)
Returns parameter value, followed by its unit multiplicator (like "* nm").
Definition: PyFmt2.cpp:99
std::string argumentList(const IParametricComponent *ip)
Returns comma-separated list of parameter values, including unit multiplicator (like "* nm").
Definition: PyFmt2.cpp:106
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:40
std::string printRangedDistribution(const IRangedDistribution &distr)
Definition: PyFmt2.cpp:161
std::string indent(size_t width)
Returns a string of blanks with given width.
Definition: PyFmt.cpp:155