From cde3f47a3f4bcadd05f8053e0a6e6e538a7ecbe0 Mon Sep 17 00:00:00 2001
From: "Joachim Wuttke (o)" <j.wuttke@fz-juelich.de>
Date: Tue, 8 Mar 2022 15:56:16 +0100
Subject: [PATCH] get started with collection of standard samples

---
 Examples/specular/AlternatingLayers.py   | 27 ++-------------------
 Wrap/Python/sample_alternating_layers.py | 30 ++++++++++++++++++++++++
 cmake/BornAgain/PythonAPI.cmake          |  8 +++++--
 3 files changed, 38 insertions(+), 27 deletions(-)
 create mode 100644 Wrap/Python/sample_alternating_layers.py

diff --git a/Examples/specular/AlternatingLayers.py b/Examples/specular/AlternatingLayers.py
index 95597dea773..998166d6233 100755
--- a/Examples/specular/AlternatingLayers.py
+++ b/Examples/specular/AlternatingLayers.py
@@ -7,30 +7,6 @@ import bornagain as ba
 from bornagain import deg, angstrom
 
 
-def get_sample():
-    # Define materials
-    m_ambient = ba.MaterialBySLD("Vacuum", 0, 0)
-    m_ti = ba.MaterialBySLD("Ti", -1.9493e-06, 0)
-    m_ni = ba.MaterialBySLD("Ni", 9.4245e-06, 0)
-    m_substrate = ba.MaterialBySLD("SiSubstrate", 2.0704e-06, 0)
-
-    # Define layers
-    ambient_layer = ba.Layer(m_ambient)
-    ti_layer = ba.Layer(m_ti, 30*angstrom)
-    ni_layer = ba.Layer(m_ni, 70*angstrom)
-    substrate_layer = ba.Layer(m_substrate)
-
-    # Define sample
-    sample = ba.MultiLayer()
-    sample.addLayer(ambient_layer)
-    for _ in range(10):
-        sample.addLayer(ti_layer)
-        sample.addLayer(ni_layer)
-    sample.addLayer(substrate_layer)
-
-    return sample
-
-
 def get_simulation(sample, scan_size=500):
     simulation = ba.SpecularSimulation()
     scan = ba.AlphaScan(1.54*angstrom, scan_size, 0, 2*deg)
@@ -41,6 +17,7 @@ def get_simulation(sample, scan_size=500):
 
 if __name__ == '__main__':
     from bornagain import ba_plot
-    sample = get_sample()
+    from bornagain import sample_alternating_layers as SAMPLE
+    sample = SAMPLE.get_sample()
     simulation = get_simulation(sample)
     ba_plot.run_and_plot(simulation)
diff --git a/Wrap/Python/sample_alternating_layers.py b/Wrap/Python/sample_alternating_layers.py
new file mode 100644
index 00000000000..0d45d0ef484
--- /dev/null
+++ b/Wrap/Python/sample_alternating_layers.py
@@ -0,0 +1,30 @@
+"""
+BornAgain example sample: alternating_layers.
+Consists of 20 alternating Ti and Ni layers.
+"""
+import bornagain as ba
+from bornagain import deg, angstrom
+
+
+def get_sample():
+    # Define materials
+    m_ambient = ba.MaterialBySLD("Vacuum", 0, 0)
+    m_ti = ba.MaterialBySLD("Ti", -1.9493e-06, 0)
+    m_ni = ba.MaterialBySLD("Ni", 9.4245e-06, 0)
+    m_substrate = ba.MaterialBySLD("SiSubstrate", 2.0704e-06, 0)
+
+    # Define layers
+    ambient_layer = ba.Layer(m_ambient)
+    ti_layer = ba.Layer(m_ti, 30*angstrom)
+    ni_layer = ba.Layer(m_ni, 70*angstrom)
+    substrate_layer = ba.Layer(m_substrate)
+
+    # Define sample
+    sample = ba.MultiLayer()
+    sample.addLayer(ambient_layer)
+    for _ in range(10):
+        sample.addLayer(ti_layer)
+        sample.addLayer(ni_layer)
+    sample.addLayer(substrate_layer)
+
+    return sample
diff --git a/cmake/BornAgain/PythonAPI.cmake b/cmake/BornAgain/PythonAPI.cmake
index c6a13b53109..d22a85c80be 100644
--- a/cmake/BornAgain/PythonAPI.cmake
+++ b/cmake/BornAgain/PythonAPI.cmake
@@ -16,8 +16,12 @@ endif()
 
 configure_file(${WRAP_DIR}/Python/__init__.py.in
     ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/bornagain/__init__.py @ONLY)
-foreach(mod ba_plot.py ba_fitmonitor.py)
-    configure_file(${WRAP_DIR}/Python/${mod} ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/bornagain/${mod} COPYONLY)
+
+file(GLOB py_files ${WRAP_DIR}/Python/*.py)
+foreach(py_file ${py_files})
+    get_filename_component(out_file ${py_file} NAME_WE)
+    configure_file(${py_file}
+        ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/bornagain/${out_file} COPYONLY)
 endforeach()
 
 if(CONFIGURE_BINDINGS)
-- 
GitLab