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