From 8e5860b83b8f0964dcc9d44171b01292a02d803d Mon Sep 17 00:00:00 2001
From: "Joachim Wuttke (h)" <j.wuttke@fz-juelich.de>
Date: Thu, 19 Nov 2020 15:09:27 +0100
Subject: [PATCH] flatter directory strucure for Python examples

---
 Examples/Python/README.md                     |  14 ++++----
 Examples/Python/fit51_Basic/README.md         |   5 +++
 .../basic_fitting_tutorial.py                 |   0
 .../basic_fitting_tutorial_data.txt.gz        | Bin
 .../consecutive_fitting.py                    |   0
 .../minimal_fit_example.py                    |   0
 .../minimizer_settings.py                     |   0
 Examples/Python/fit52_Advanced/README.md      |   6 ++++
 .../find_background.py                        |   0
 .../fit_along_slices.py                       |   0
 .../fit_with_masks.py                         |   0
 .../multiple_datasets.py                      |   0
 .../custom_objective_function.py              |   0
 .../lmfit_basics.py                           |   0
 .../lmfit_with_plotting.py                    |   0
 .../FitSpecularBasics.py                      |   0
 .../FitWithUncertainties.py                   |   0
 Examples/Python/fit55_Specular/README.md      |   4 +++
 .../RealLifeReflectometryFitting.py           |   0
 .../genx_interchanging_layers.dat.gz          | Bin
 .../mg6a_Merged.txt.gz                        | Bin
 .../fit_galaxi_data.py                        |   0
 .../galaxi_data.tif.gz                        | Bin
 .../sample_builder.py                         |   0
 Examples/Python/fitting/README.md             |  30 ------------------
 .../AllFormFactorsAvailable.py                |   0
 .../CylindersAndPrisms.py                     |   0
 .../CylindersInBA.py                          |   0
 .../CylindersInDWBA.py                        |   0
 .../CylindersWithSizeDistribution.py          |   0
 .../RotatedPyramids.py                        |   0
 ...TwoTypesOfCylindersWithSizeDistribution.py |   0
 .../BiMaterialCylinders.py                    |   0
 .../CoreShellNanoparticles.py                 |   0
 .../CustomFormFactor.py                       |   0
 .../HexagonalLatticesWithBasis.py             |   0
 .../LargeParticlesFormFactor.py               |   0
 .../MesoCrystal.py                            |   0
 .../ParticlesCrossingInterface.py             |   0
 .../ApproximationDA.py                        |   0
 .../ApproximationLMA.py                       |   0
 .../ApproximationSSCA.py                      |   0
 .../CosineRipplesAtRectLattice.py             |   0
 .../Interference1DLattice.py                  |   0
 .../Interference1DRadialParaCrystal.py        |   0
 .../Interference2DCenteredSquareLattice.py    |   0
 .../Interference2DLatticeSumOfRotated.py      |   0
 .../Interference2DParaCrystal.py              |   0
 .../Interference2DRotatedSquareLattice.py     |   0
 .../Interference2DSquareFiniteLattice.py      |   0
 .../Interference2DSquareLattice.py            |   0
 .../RectangularGrating.py                     |   0
 .../SpheresAtHexLattice.py                    |   0
 .../TriangularRipple.py                       |   0
 .../BuriedParticles.py                        |   0
 .../CorrelatedRoughness.py                    |   0
 .../CylindersInAverageLayer.py                |   0
 .../GratingMC.py}                             |   0
 .../HalfSpheresInAverageTopLayer.py           |   0
 .../MagneticSpheres.py                        |   0
 .../AxesInDifferentUnits.py                   |   0
 .../BeamDivergence.py                         |   0
 .../ConstantBackground.py                     |   0
 .../DetectorResolutionFunction.py             |   0
 .../OffSpecularSimulation.py                  |   0
 .../RectangularDetector.py                    |   0
 .../ResonatorOffSpecSetup.py                  |   0
 .../BasicPolarizedReflectometry.py            |   0
 .../BasicSpecularSimulation.py                |   0
 .../BeamAngularDivergence.py                  |   0
 .../BeamFullDivergence.py                     |   0
 .../FootprintCorrection.py                    |   0
 .../MaterialProfile.py                        |   0
 .../MaterialProfileWithParticles.py           |   0
 .../PolarizedNoAnalyzer.py                    |   0
 .../PolarizedNonperfectAnalyzerPolarizer.py   |   0
 .../PolarizedSpinAsymmetry.py                 |   0
 .../PolarizedSpinAsymmetryFit.py              |   0
 .../PolarizedSpinFlip.py                      |   0
 .../RoughnessModel.py                         |   0
 .../SpecularSimulationWithRoughness.py        |   0
 .../TOFRWithResolution.py                     |   0
 .../TimeOfFlightReflectometry.py              |   0
 .../genx_angular_divergence.dat.gz            | Bin
 .../BoxesWithSpecularPeak.py                  |   0
 .../PolarizedSANS.py                          |   0
 .../DepthProbe.py                             |   0
 .../AccessingSimulationResults.py             |   0
 .../SimulationParameters.py                   |   0
 Examples/README.md                            |   2 +-
 .../Python/PyExamples/CMakeLists.txt          |   4 +--
 cmake/BornAgain/LineLength.cmake              |   2 +-
 92 files changed, 26 insertions(+), 41 deletions(-)
 create mode 100644 Examples/Python/fit51_Basic/README.md
 rename Examples/Python/{fitting/ex01_BasicExamples => fit51_Basic}/basic_fitting_tutorial.py (100%)
 rename Examples/Python/{fitting/ex01_BasicExamples => fit51_Basic}/basic_fitting_tutorial_data.txt.gz (100%)
 rename Examples/Python/{fitting/ex01_BasicExamples => fit51_Basic}/consecutive_fitting.py (100%)
 rename Examples/Python/{fitting/ex01_BasicExamples => fit51_Basic}/minimal_fit_example.py (100%)
 rename Examples/Python/{fitting/ex01_BasicExamples => fit51_Basic}/minimizer_settings.py (100%)
 create mode 100644 Examples/Python/fit52_Advanced/README.md
 rename Examples/Python/{fitting/ex02_AdvancedExamples => fit52_Advanced}/find_background.py (100%)
 rename Examples/Python/{fitting/ex02_AdvancedExamples => fit52_Advanced}/fit_along_slices.py (100%)
 rename Examples/Python/{fitting/ex02_AdvancedExamples => fit52_Advanced}/fit_with_masks.py (100%)
 rename Examples/Python/{fitting/ex02_AdvancedExamples => fit52_Advanced}/multiple_datasets.py (100%)
 rename Examples/Python/{fitting/ex03_ExtendedExamples/custom_objective_function => fit53_CustomObjective}/custom_objective_function.py (100%)
 rename Examples/Python/{fitting/ex03_ExtendedExamples/external_minimizer => fit54_ExternalMinimizer}/lmfit_basics.py (100%)
 rename Examples/Python/{fitting/ex03_ExtendedExamples/external_minimizer => fit54_ExternalMinimizer}/lmfit_with_plotting.py (100%)
 rename Examples/Python/{fitting/ex03_ExtendedExamples/specular => fit55_Specular}/FitSpecularBasics.py (100%)
 rename Examples/Python/{fitting/ex03_ExtendedExamples/specular => fit55_Specular}/FitWithUncertainties.py (100%)
 create mode 100644 Examples/Python/fit55_Specular/README.md
 rename Examples/Python/{fitting/ex03_ExtendedExamples/specular => fit55_Specular}/RealLifeReflectometryFitting.py (100%)
 rename Examples/Python/{fitting/ex03_ExtendedExamples/specular => fit55_Specular}/genx_interchanging_layers.dat.gz (100%)
 rename Examples/Python/{fitting/ex03_ExtendedExamples/specular => fit55_Specular}/mg6a_Merged.txt.gz (100%)
 rename Examples/Python/{fitting/ex03_ExtendedExamples/experiment_at_galaxi => fit61_Galaxi}/fit_galaxi_data.py (100%)
 rename Examples/Python/{fitting/ex03_ExtendedExamples/experiment_at_galaxi => fit61_Galaxi}/galaxi_data.tif.gz (100%)
 rename Examples/Python/{fitting/ex03_ExtendedExamples/experiment_at_galaxi => fit61_Galaxi}/sample_builder.py (100%)
 delete mode 100644 Examples/Python/fitting/README.md
 rename Examples/Python/{simulation/ex01_BasicParticles => sim01_Particles}/AllFormFactorsAvailable.py (100%)
 rename Examples/Python/{simulation/ex01_BasicParticles => sim01_Particles}/CylindersAndPrisms.py (100%)
 rename Examples/Python/{simulation/ex01_BasicParticles => sim01_Particles}/CylindersInBA.py (100%)
 rename Examples/Python/{simulation/ex01_BasicParticles => sim01_Particles}/CylindersInDWBA.py (100%)
 rename Examples/Python/{simulation/ex01_BasicParticles => sim01_Particles}/CylindersWithSizeDistribution.py (100%)
 rename Examples/Python/{simulation/ex01_BasicParticles => sim01_Particles}/RotatedPyramids.py (100%)
 rename Examples/Python/{simulation/ex01_BasicParticles => sim01_Particles}/TwoTypesOfCylindersWithSizeDistribution.py (100%)
 rename Examples/Python/{simulation/ex04_ComplexShapes => sim02_Complexes}/BiMaterialCylinders.py (100%)
 rename Examples/Python/{simulation/ex04_ComplexShapes => sim02_Complexes}/CoreShellNanoparticles.py (100%)
 rename Examples/Python/{simulation/ex04_ComplexShapes => sim02_Complexes}/CustomFormFactor.py (100%)
 rename Examples/Python/{simulation/ex04_ComplexShapes => sim02_Complexes}/HexagonalLatticesWithBasis.py (100%)
 rename Examples/Python/{simulation/ex04_ComplexShapes => sim02_Complexes}/LargeParticlesFormFactor.py (100%)
 rename Examples/Python/{simulation/ex04_ComplexShapes => sim02_Complexes}/MesoCrystal.py (100%)
 rename Examples/Python/{simulation/ex04_ComplexShapes => sim02_Complexes}/ParticlesCrossingInterface.py (100%)
 rename Examples/Python/{simulation/ex03_InterferenceFunctions => sim03_Structures}/ApproximationDA.py (100%)
 rename Examples/Python/{simulation/ex03_InterferenceFunctions => sim03_Structures}/ApproximationLMA.py (100%)
 rename Examples/Python/{simulation/ex03_InterferenceFunctions => sim03_Structures}/ApproximationSSCA.py (100%)
 rename Examples/Python/{simulation/ex03_InterferenceFunctions => sim03_Structures}/CosineRipplesAtRectLattice.py (100%)
 rename Examples/Python/{simulation/ex03_InterferenceFunctions => sim03_Structures}/Interference1DLattice.py (100%)
 rename Examples/Python/{simulation/ex03_InterferenceFunctions => sim03_Structures}/Interference1DRadialParaCrystal.py (100%)
 rename Examples/Python/{simulation/ex03_InterferenceFunctions => sim03_Structures}/Interference2DCenteredSquareLattice.py (100%)
 rename Examples/Python/{simulation/ex03_InterferenceFunctions => sim03_Structures}/Interference2DLatticeSumOfRotated.py (100%)
 rename Examples/Python/{simulation/ex03_InterferenceFunctions => sim03_Structures}/Interference2DParaCrystal.py (100%)
 rename Examples/Python/{simulation/ex03_InterferenceFunctions => sim03_Structures}/Interference2DRotatedSquareLattice.py (100%)
 rename Examples/Python/{simulation/ex03_InterferenceFunctions => sim03_Structures}/Interference2DSquareFiniteLattice.py (100%)
 rename Examples/Python/{simulation/ex03_InterferenceFunctions => sim03_Structures}/Interference2DSquareLattice.py (100%)
 rename Examples/Python/{simulation/ex03_InterferenceFunctions => sim03_Structures}/RectangularGrating.py (100%)
 rename Examples/Python/{simulation/ex03_InterferenceFunctions => sim03_Structures}/SpheresAtHexLattice.py (100%)
 rename Examples/Python/{simulation/ex03_InterferenceFunctions => sim03_Structures}/TriangularRipple.py (100%)
 rename Examples/Python/{simulation/ex02_LayeredStructures => sim04_Multilayers}/BuriedParticles.py (100%)
 rename Examples/Python/{simulation/ex02_LayeredStructures => sim04_Multilayers}/CorrelatedRoughness.py (100%)
 rename Examples/Python/{simulation/ex07_Miscellaneous => sim04_Multilayers}/CylindersInAverageLayer.py (100%)
 rename Examples/Python/{simulation/ex07_Miscellaneous/FindPeaks.py => sim04_Multilayers/GratingMC.py} (100%)
 rename Examples/Python/{simulation/ex07_Miscellaneous => sim04_Multilayers}/HalfSpheresInAverageTopLayer.py (100%)
 rename Examples/Python/{simulation/ex07_Miscellaneous => sim05_Magnetism}/MagneticSpheres.py (100%)
 rename Examples/Python/{simulation/ex07_Miscellaneous => sim11_Device}/AxesInDifferentUnits.py (100%)
 rename Examples/Python/{simulation/ex05_BeamAndDetector => sim11_Device}/BeamDivergence.py (100%)
 rename Examples/Python/{simulation/ex05_BeamAndDetector => sim11_Device}/ConstantBackground.py (100%)
 rename Examples/Python/{simulation/ex05_BeamAndDetector => sim11_Device}/DetectorResolutionFunction.py (100%)
 rename Examples/Python/{simulation/ex05_BeamAndDetector => sim11_Device}/OffSpecularSimulation.py (100%)
 rename Examples/Python/{simulation/ex05_BeamAndDetector => sim11_Device}/RectangularDetector.py (100%)
 rename Examples/Python/{simulation/ex05_BeamAndDetector => sim11_Device}/ResonatorOffSpecSetup.py (100%)
 rename Examples/Python/{simulation/ex06_Reflectometry => sim21_Reflectometry}/BasicPolarizedReflectometry.py (100%)
 rename Examples/Python/{simulation/ex06_Reflectometry => sim21_Reflectometry}/BasicSpecularSimulation.py (100%)
 rename Examples/Python/{simulation/ex06_Reflectometry => sim21_Reflectometry}/BeamAngularDivergence.py (100%)
 rename Examples/Python/{simulation/ex06_Reflectometry => sim21_Reflectometry}/BeamFullDivergence.py (100%)
 rename Examples/Python/{simulation/ex06_Reflectometry => sim21_Reflectometry}/FootprintCorrection.py (100%)
 rename Examples/Python/{simulation/ex06_Reflectometry => sim21_Reflectometry}/MaterialProfile.py (100%)
 rename Examples/Python/{simulation/ex06_Reflectometry => sim21_Reflectometry}/MaterialProfileWithParticles.py (100%)
 rename Examples/Python/{simulation/ex06_Reflectometry => sim21_Reflectometry}/PolarizedNoAnalyzer.py (100%)
 rename Examples/Python/{simulation/ex06_Reflectometry => sim21_Reflectometry}/PolarizedNonperfectAnalyzerPolarizer.py (100%)
 rename Examples/Python/{simulation/ex06_Reflectometry => sim21_Reflectometry}/PolarizedSpinAsymmetry.py (100%)
 rename Examples/Python/{simulation/ex06_Reflectometry => sim21_Reflectometry}/PolarizedSpinAsymmetryFit.py (100%)
 rename Examples/Python/{simulation/ex06_Reflectometry => sim21_Reflectometry}/PolarizedSpinFlip.py (100%)
 rename Examples/Python/{simulation/ex06_Reflectometry => sim21_Reflectometry}/RoughnessModel.py (100%)
 rename Examples/Python/{simulation/ex06_Reflectometry => sim21_Reflectometry}/SpecularSimulationWithRoughness.py (100%)
 rename Examples/Python/{simulation/ex06_Reflectometry => sim21_Reflectometry}/TOFRWithResolution.py (100%)
 rename Examples/Python/{simulation/ex06_Reflectometry => sim21_Reflectometry}/TimeOfFlightReflectometry.py (100%)
 rename Examples/Python/{simulation/ex06_Reflectometry => sim21_Reflectometry}/genx_angular_divergence.dat.gz (100%)
 rename Examples/Python/{simulation/ex07_Miscellaneous => sim22_OffSpecular}/BoxesWithSpecularPeak.py (100%)
 rename Examples/Python/{simulation/ex07_Miscellaneous => sim23_SAS}/PolarizedSANS.py (100%)
 rename Examples/Python/{simulation/ex07_Miscellaneous => sim29_DepthProbe}/DepthProbe.py (100%)
 rename Examples/Python/{simulation/ex07_Miscellaneous => sim31_Parameterization}/AccessingSimulationResults.py (100%)
 rename Examples/Python/{simulation/ex07_Miscellaneous => sim31_Parameterization}/SimulationParameters.py (100%)

diff --git a/Examples/Python/README.md b/Examples/Python/README.md
index 26f92a301dd..41d0180675f 100644
--- a/Examples/Python/README.md
+++ b/Examples/Python/README.md
@@ -1,9 +1,9 @@
-BornAgain usage examples.
-
-This directory contains two sets of Python examples
-that demonstrate how to simulate and fit with BornAgain.
+Examples for using BornAgain through the Python API.
 
 Content:
-./simulation - simulation examples
-./fitting    - fitting examples
-./utils      - utilities to plot simulated detector images
\ No newline at end of file
+- sim01...: simulation examples
+- fit51...: fitting examples
+- utils:    utilities to plot simulated detector images
+
+All simulation examples are under continuous test coverage
+through Tests/Functional/Python/PyExamples/CMakeLists.txt.
diff --git a/Examples/Python/fit51_Basic/README.md b/Examples/Python/fit51_Basic/README.md
new file mode 100644
index 00000000000..8ac947fe05c
--- /dev/null
+++ b/Examples/Python/fit51_Basic/README.md
@@ -0,0 +1,5 @@
+A collection of basic fitting examples.
+
++ Basic fitting tutorial
++ Running fitting consequitively
++ More about minimizer settings
diff --git a/Examples/Python/fitting/ex01_BasicExamples/basic_fitting_tutorial.py b/Examples/Python/fit51_Basic/basic_fitting_tutorial.py
similarity index 100%
rename from Examples/Python/fitting/ex01_BasicExamples/basic_fitting_tutorial.py
rename to Examples/Python/fit51_Basic/basic_fitting_tutorial.py
diff --git a/Examples/Python/fitting/ex01_BasicExamples/basic_fitting_tutorial_data.txt.gz b/Examples/Python/fit51_Basic/basic_fitting_tutorial_data.txt.gz
similarity index 100%
rename from Examples/Python/fitting/ex01_BasicExamples/basic_fitting_tutorial_data.txt.gz
rename to Examples/Python/fit51_Basic/basic_fitting_tutorial_data.txt.gz
diff --git a/Examples/Python/fitting/ex01_BasicExamples/consecutive_fitting.py b/Examples/Python/fit51_Basic/consecutive_fitting.py
similarity index 100%
rename from Examples/Python/fitting/ex01_BasicExamples/consecutive_fitting.py
rename to Examples/Python/fit51_Basic/consecutive_fitting.py
diff --git a/Examples/Python/fitting/ex01_BasicExamples/minimal_fit_example.py b/Examples/Python/fit51_Basic/minimal_fit_example.py
similarity index 100%
rename from Examples/Python/fitting/ex01_BasicExamples/minimal_fit_example.py
rename to Examples/Python/fit51_Basic/minimal_fit_example.py
diff --git a/Examples/Python/fitting/ex01_BasicExamples/minimizer_settings.py b/Examples/Python/fit51_Basic/minimizer_settings.py
similarity index 100%
rename from Examples/Python/fitting/ex01_BasicExamples/minimizer_settings.py
rename to Examples/Python/fit51_Basic/minimizer_settings.py
diff --git a/Examples/Python/fit52_Advanced/README.md b/Examples/Python/fit52_Advanced/README.md
new file mode 100644
index 00000000000..7107b98f74d
--- /dev/null
+++ b/Examples/Python/fit52_Advanced/README.md
@@ -0,0 +1,6 @@
+A collection of advanced fitting examples:
+
++ How to fit experimental background.
++ How to fit along slices.
++ How to masks areas on experimental image.
++ How to fit two datasets simultaneously.
diff --git a/Examples/Python/fitting/ex02_AdvancedExamples/find_background.py b/Examples/Python/fit52_Advanced/find_background.py
similarity index 100%
rename from Examples/Python/fitting/ex02_AdvancedExamples/find_background.py
rename to Examples/Python/fit52_Advanced/find_background.py
diff --git a/Examples/Python/fitting/ex02_AdvancedExamples/fit_along_slices.py b/Examples/Python/fit52_Advanced/fit_along_slices.py
similarity index 100%
rename from Examples/Python/fitting/ex02_AdvancedExamples/fit_along_slices.py
rename to Examples/Python/fit52_Advanced/fit_along_slices.py
diff --git a/Examples/Python/fitting/ex02_AdvancedExamples/fit_with_masks.py b/Examples/Python/fit52_Advanced/fit_with_masks.py
similarity index 100%
rename from Examples/Python/fitting/ex02_AdvancedExamples/fit_with_masks.py
rename to Examples/Python/fit52_Advanced/fit_with_masks.py
diff --git a/Examples/Python/fitting/ex02_AdvancedExamples/multiple_datasets.py b/Examples/Python/fit52_Advanced/multiple_datasets.py
similarity index 100%
rename from Examples/Python/fitting/ex02_AdvancedExamples/multiple_datasets.py
rename to Examples/Python/fit52_Advanced/multiple_datasets.py
diff --git a/Examples/Python/fitting/ex03_ExtendedExamples/custom_objective_function/custom_objective_function.py b/Examples/Python/fit53_CustomObjective/custom_objective_function.py
similarity index 100%
rename from Examples/Python/fitting/ex03_ExtendedExamples/custom_objective_function/custom_objective_function.py
rename to Examples/Python/fit53_CustomObjective/custom_objective_function.py
diff --git a/Examples/Python/fitting/ex03_ExtendedExamples/external_minimizer/lmfit_basics.py b/Examples/Python/fit54_ExternalMinimizer/lmfit_basics.py
similarity index 100%
rename from Examples/Python/fitting/ex03_ExtendedExamples/external_minimizer/lmfit_basics.py
rename to Examples/Python/fit54_ExternalMinimizer/lmfit_basics.py
diff --git a/Examples/Python/fitting/ex03_ExtendedExamples/external_minimizer/lmfit_with_plotting.py b/Examples/Python/fit54_ExternalMinimizer/lmfit_with_plotting.py
similarity index 100%
rename from Examples/Python/fitting/ex03_ExtendedExamples/external_minimizer/lmfit_with_plotting.py
rename to Examples/Python/fit54_ExternalMinimizer/lmfit_with_plotting.py
diff --git a/Examples/Python/fitting/ex03_ExtendedExamples/specular/FitSpecularBasics.py b/Examples/Python/fit55_Specular/FitSpecularBasics.py
similarity index 100%
rename from Examples/Python/fitting/ex03_ExtendedExamples/specular/FitSpecularBasics.py
rename to Examples/Python/fit55_Specular/FitSpecularBasics.py
diff --git a/Examples/Python/fitting/ex03_ExtendedExamples/specular/FitWithUncertainties.py b/Examples/Python/fit55_Specular/FitWithUncertainties.py
similarity index 100%
rename from Examples/Python/fitting/ex03_ExtendedExamples/specular/FitWithUncertainties.py
rename to Examples/Python/fit55_Specular/FitWithUncertainties.py
diff --git a/Examples/Python/fit55_Specular/README.md b/Examples/Python/fit55_Specular/README.md
new file mode 100644
index 00000000000..bf5709f8159
--- /dev/null
+++ b/Examples/Python/fit55_Specular/README.md
@@ -0,0 +1,4 @@
+Fitting specular data.
+
++ Basic demonstration of fitting specular data with BornAgain. GENX simulation results are used as reference data.
++ Fitting live data from XRD reflectometer with BornAgain.
diff --git a/Examples/Python/fitting/ex03_ExtendedExamples/specular/RealLifeReflectometryFitting.py b/Examples/Python/fit55_Specular/RealLifeReflectometryFitting.py
similarity index 100%
rename from Examples/Python/fitting/ex03_ExtendedExamples/specular/RealLifeReflectometryFitting.py
rename to Examples/Python/fit55_Specular/RealLifeReflectometryFitting.py
diff --git a/Examples/Python/fitting/ex03_ExtendedExamples/specular/genx_interchanging_layers.dat.gz b/Examples/Python/fit55_Specular/genx_interchanging_layers.dat.gz
similarity index 100%
rename from Examples/Python/fitting/ex03_ExtendedExamples/specular/genx_interchanging_layers.dat.gz
rename to Examples/Python/fit55_Specular/genx_interchanging_layers.dat.gz
diff --git a/Examples/Python/fitting/ex03_ExtendedExamples/specular/mg6a_Merged.txt.gz b/Examples/Python/fit55_Specular/mg6a_Merged.txt.gz
similarity index 100%
rename from Examples/Python/fitting/ex03_ExtendedExamples/specular/mg6a_Merged.txt.gz
rename to Examples/Python/fit55_Specular/mg6a_Merged.txt.gz
diff --git a/Examples/Python/fitting/ex03_ExtendedExamples/experiment_at_galaxi/fit_galaxi_data.py b/Examples/Python/fit61_Galaxi/fit_galaxi_data.py
similarity index 100%
rename from Examples/Python/fitting/ex03_ExtendedExamples/experiment_at_galaxi/fit_galaxi_data.py
rename to Examples/Python/fit61_Galaxi/fit_galaxi_data.py
diff --git a/Examples/Python/fitting/ex03_ExtendedExamples/experiment_at_galaxi/galaxi_data.tif.gz b/Examples/Python/fit61_Galaxi/galaxi_data.tif.gz
similarity index 100%
rename from Examples/Python/fitting/ex03_ExtendedExamples/experiment_at_galaxi/galaxi_data.tif.gz
rename to Examples/Python/fit61_Galaxi/galaxi_data.tif.gz
diff --git a/Examples/Python/fitting/ex03_ExtendedExamples/experiment_at_galaxi/sample_builder.py b/Examples/Python/fit61_Galaxi/sample_builder.py
similarity index 100%
rename from Examples/Python/fitting/ex03_ExtendedExamples/experiment_at_galaxi/sample_builder.py
rename to Examples/Python/fit61_Galaxi/sample_builder.py
diff --git a/Examples/Python/fitting/README.md b/Examples/Python/fitting/README.md
deleted file mode 100644
index 688806f03d8..00000000000
--- a/Examples/Python/fitting/README.md
+++ /dev/null
@@ -1,30 +0,0 @@
-# BornAgain fitting examples.
-
-In this directory one can find examples of complete applications
-used for fitting.
-
-## ex01_BasicExamples
-
-Includes collection of basic fitting examples.
-
-+ Basic fitting tutorial
-+ Running fitting consequitively
-+ More about minimizer settings
-
-## ex02_AdvancedExamples
-
-Includes collection of advanced fitting examples.
-
-+ How to fit experimental background.
-+ How to fit along slices.
-+ How to masks areas on experimental image.
-+ How to fit two datasets simultaneously.
-
-## ex03_ExtendedExamples
-
-+ One experiment on GALAXI instrument.
-+ How to use external minimizers to fit BornAgain simulations.
-+ Fitting specular data.
-  + Basic demonstration of fitting specular data with BornAgain. GENX simulation results are used as reference data.
-  + Fitting live data from XRD reflectometer with BornAgain.
-  
\ No newline at end of file
diff --git a/Examples/Python/simulation/ex01_BasicParticles/AllFormFactorsAvailable.py b/Examples/Python/sim01_Particles/AllFormFactorsAvailable.py
similarity index 100%
rename from Examples/Python/simulation/ex01_BasicParticles/AllFormFactorsAvailable.py
rename to Examples/Python/sim01_Particles/AllFormFactorsAvailable.py
diff --git a/Examples/Python/simulation/ex01_BasicParticles/CylindersAndPrisms.py b/Examples/Python/sim01_Particles/CylindersAndPrisms.py
similarity index 100%
rename from Examples/Python/simulation/ex01_BasicParticles/CylindersAndPrisms.py
rename to Examples/Python/sim01_Particles/CylindersAndPrisms.py
diff --git a/Examples/Python/simulation/ex01_BasicParticles/CylindersInBA.py b/Examples/Python/sim01_Particles/CylindersInBA.py
similarity index 100%
rename from Examples/Python/simulation/ex01_BasicParticles/CylindersInBA.py
rename to Examples/Python/sim01_Particles/CylindersInBA.py
diff --git a/Examples/Python/simulation/ex01_BasicParticles/CylindersInDWBA.py b/Examples/Python/sim01_Particles/CylindersInDWBA.py
similarity index 100%
rename from Examples/Python/simulation/ex01_BasicParticles/CylindersInDWBA.py
rename to Examples/Python/sim01_Particles/CylindersInDWBA.py
diff --git a/Examples/Python/simulation/ex01_BasicParticles/CylindersWithSizeDistribution.py b/Examples/Python/sim01_Particles/CylindersWithSizeDistribution.py
similarity index 100%
rename from Examples/Python/simulation/ex01_BasicParticles/CylindersWithSizeDistribution.py
rename to Examples/Python/sim01_Particles/CylindersWithSizeDistribution.py
diff --git a/Examples/Python/simulation/ex01_BasicParticles/RotatedPyramids.py b/Examples/Python/sim01_Particles/RotatedPyramids.py
similarity index 100%
rename from Examples/Python/simulation/ex01_BasicParticles/RotatedPyramids.py
rename to Examples/Python/sim01_Particles/RotatedPyramids.py
diff --git a/Examples/Python/simulation/ex01_BasicParticles/TwoTypesOfCylindersWithSizeDistribution.py b/Examples/Python/sim01_Particles/TwoTypesOfCylindersWithSizeDistribution.py
similarity index 100%
rename from Examples/Python/simulation/ex01_BasicParticles/TwoTypesOfCylindersWithSizeDistribution.py
rename to Examples/Python/sim01_Particles/TwoTypesOfCylindersWithSizeDistribution.py
diff --git a/Examples/Python/simulation/ex04_ComplexShapes/BiMaterialCylinders.py b/Examples/Python/sim02_Complexes/BiMaterialCylinders.py
similarity index 100%
rename from Examples/Python/simulation/ex04_ComplexShapes/BiMaterialCylinders.py
rename to Examples/Python/sim02_Complexes/BiMaterialCylinders.py
diff --git a/Examples/Python/simulation/ex04_ComplexShapes/CoreShellNanoparticles.py b/Examples/Python/sim02_Complexes/CoreShellNanoparticles.py
similarity index 100%
rename from Examples/Python/simulation/ex04_ComplexShapes/CoreShellNanoparticles.py
rename to Examples/Python/sim02_Complexes/CoreShellNanoparticles.py
diff --git a/Examples/Python/simulation/ex04_ComplexShapes/CustomFormFactor.py b/Examples/Python/sim02_Complexes/CustomFormFactor.py
similarity index 100%
rename from Examples/Python/simulation/ex04_ComplexShapes/CustomFormFactor.py
rename to Examples/Python/sim02_Complexes/CustomFormFactor.py
diff --git a/Examples/Python/simulation/ex04_ComplexShapes/HexagonalLatticesWithBasis.py b/Examples/Python/sim02_Complexes/HexagonalLatticesWithBasis.py
similarity index 100%
rename from Examples/Python/simulation/ex04_ComplexShapes/HexagonalLatticesWithBasis.py
rename to Examples/Python/sim02_Complexes/HexagonalLatticesWithBasis.py
diff --git a/Examples/Python/simulation/ex04_ComplexShapes/LargeParticlesFormFactor.py b/Examples/Python/sim02_Complexes/LargeParticlesFormFactor.py
similarity index 100%
rename from Examples/Python/simulation/ex04_ComplexShapes/LargeParticlesFormFactor.py
rename to Examples/Python/sim02_Complexes/LargeParticlesFormFactor.py
diff --git a/Examples/Python/simulation/ex04_ComplexShapes/MesoCrystal.py b/Examples/Python/sim02_Complexes/MesoCrystal.py
similarity index 100%
rename from Examples/Python/simulation/ex04_ComplexShapes/MesoCrystal.py
rename to Examples/Python/sim02_Complexes/MesoCrystal.py
diff --git a/Examples/Python/simulation/ex04_ComplexShapes/ParticlesCrossingInterface.py b/Examples/Python/sim02_Complexes/ParticlesCrossingInterface.py
similarity index 100%
rename from Examples/Python/simulation/ex04_ComplexShapes/ParticlesCrossingInterface.py
rename to Examples/Python/sim02_Complexes/ParticlesCrossingInterface.py
diff --git a/Examples/Python/simulation/ex03_InterferenceFunctions/ApproximationDA.py b/Examples/Python/sim03_Structures/ApproximationDA.py
similarity index 100%
rename from Examples/Python/simulation/ex03_InterferenceFunctions/ApproximationDA.py
rename to Examples/Python/sim03_Structures/ApproximationDA.py
diff --git a/Examples/Python/simulation/ex03_InterferenceFunctions/ApproximationLMA.py b/Examples/Python/sim03_Structures/ApproximationLMA.py
similarity index 100%
rename from Examples/Python/simulation/ex03_InterferenceFunctions/ApproximationLMA.py
rename to Examples/Python/sim03_Structures/ApproximationLMA.py
diff --git a/Examples/Python/simulation/ex03_InterferenceFunctions/ApproximationSSCA.py b/Examples/Python/sim03_Structures/ApproximationSSCA.py
similarity index 100%
rename from Examples/Python/simulation/ex03_InterferenceFunctions/ApproximationSSCA.py
rename to Examples/Python/sim03_Structures/ApproximationSSCA.py
diff --git a/Examples/Python/simulation/ex03_InterferenceFunctions/CosineRipplesAtRectLattice.py b/Examples/Python/sim03_Structures/CosineRipplesAtRectLattice.py
similarity index 100%
rename from Examples/Python/simulation/ex03_InterferenceFunctions/CosineRipplesAtRectLattice.py
rename to Examples/Python/sim03_Structures/CosineRipplesAtRectLattice.py
diff --git a/Examples/Python/simulation/ex03_InterferenceFunctions/Interference1DLattice.py b/Examples/Python/sim03_Structures/Interference1DLattice.py
similarity index 100%
rename from Examples/Python/simulation/ex03_InterferenceFunctions/Interference1DLattice.py
rename to Examples/Python/sim03_Structures/Interference1DLattice.py
diff --git a/Examples/Python/simulation/ex03_InterferenceFunctions/Interference1DRadialParaCrystal.py b/Examples/Python/sim03_Structures/Interference1DRadialParaCrystal.py
similarity index 100%
rename from Examples/Python/simulation/ex03_InterferenceFunctions/Interference1DRadialParaCrystal.py
rename to Examples/Python/sim03_Structures/Interference1DRadialParaCrystal.py
diff --git a/Examples/Python/simulation/ex03_InterferenceFunctions/Interference2DCenteredSquareLattice.py b/Examples/Python/sim03_Structures/Interference2DCenteredSquareLattice.py
similarity index 100%
rename from Examples/Python/simulation/ex03_InterferenceFunctions/Interference2DCenteredSquareLattice.py
rename to Examples/Python/sim03_Structures/Interference2DCenteredSquareLattice.py
diff --git a/Examples/Python/simulation/ex03_InterferenceFunctions/Interference2DLatticeSumOfRotated.py b/Examples/Python/sim03_Structures/Interference2DLatticeSumOfRotated.py
similarity index 100%
rename from Examples/Python/simulation/ex03_InterferenceFunctions/Interference2DLatticeSumOfRotated.py
rename to Examples/Python/sim03_Structures/Interference2DLatticeSumOfRotated.py
diff --git a/Examples/Python/simulation/ex03_InterferenceFunctions/Interference2DParaCrystal.py b/Examples/Python/sim03_Structures/Interference2DParaCrystal.py
similarity index 100%
rename from Examples/Python/simulation/ex03_InterferenceFunctions/Interference2DParaCrystal.py
rename to Examples/Python/sim03_Structures/Interference2DParaCrystal.py
diff --git a/Examples/Python/simulation/ex03_InterferenceFunctions/Interference2DRotatedSquareLattice.py b/Examples/Python/sim03_Structures/Interference2DRotatedSquareLattice.py
similarity index 100%
rename from Examples/Python/simulation/ex03_InterferenceFunctions/Interference2DRotatedSquareLattice.py
rename to Examples/Python/sim03_Structures/Interference2DRotatedSquareLattice.py
diff --git a/Examples/Python/simulation/ex03_InterferenceFunctions/Interference2DSquareFiniteLattice.py b/Examples/Python/sim03_Structures/Interference2DSquareFiniteLattice.py
similarity index 100%
rename from Examples/Python/simulation/ex03_InterferenceFunctions/Interference2DSquareFiniteLattice.py
rename to Examples/Python/sim03_Structures/Interference2DSquareFiniteLattice.py
diff --git a/Examples/Python/simulation/ex03_InterferenceFunctions/Interference2DSquareLattice.py b/Examples/Python/sim03_Structures/Interference2DSquareLattice.py
similarity index 100%
rename from Examples/Python/simulation/ex03_InterferenceFunctions/Interference2DSquareLattice.py
rename to Examples/Python/sim03_Structures/Interference2DSquareLattice.py
diff --git a/Examples/Python/simulation/ex03_InterferenceFunctions/RectangularGrating.py b/Examples/Python/sim03_Structures/RectangularGrating.py
similarity index 100%
rename from Examples/Python/simulation/ex03_InterferenceFunctions/RectangularGrating.py
rename to Examples/Python/sim03_Structures/RectangularGrating.py
diff --git a/Examples/Python/simulation/ex03_InterferenceFunctions/SpheresAtHexLattice.py b/Examples/Python/sim03_Structures/SpheresAtHexLattice.py
similarity index 100%
rename from Examples/Python/simulation/ex03_InterferenceFunctions/SpheresAtHexLattice.py
rename to Examples/Python/sim03_Structures/SpheresAtHexLattice.py
diff --git a/Examples/Python/simulation/ex03_InterferenceFunctions/TriangularRipple.py b/Examples/Python/sim03_Structures/TriangularRipple.py
similarity index 100%
rename from Examples/Python/simulation/ex03_InterferenceFunctions/TriangularRipple.py
rename to Examples/Python/sim03_Structures/TriangularRipple.py
diff --git a/Examples/Python/simulation/ex02_LayeredStructures/BuriedParticles.py b/Examples/Python/sim04_Multilayers/BuriedParticles.py
similarity index 100%
rename from Examples/Python/simulation/ex02_LayeredStructures/BuriedParticles.py
rename to Examples/Python/sim04_Multilayers/BuriedParticles.py
diff --git a/Examples/Python/simulation/ex02_LayeredStructures/CorrelatedRoughness.py b/Examples/Python/sim04_Multilayers/CorrelatedRoughness.py
similarity index 100%
rename from Examples/Python/simulation/ex02_LayeredStructures/CorrelatedRoughness.py
rename to Examples/Python/sim04_Multilayers/CorrelatedRoughness.py
diff --git a/Examples/Python/simulation/ex07_Miscellaneous/CylindersInAverageLayer.py b/Examples/Python/sim04_Multilayers/CylindersInAverageLayer.py
similarity index 100%
rename from Examples/Python/simulation/ex07_Miscellaneous/CylindersInAverageLayer.py
rename to Examples/Python/sim04_Multilayers/CylindersInAverageLayer.py
diff --git a/Examples/Python/simulation/ex07_Miscellaneous/FindPeaks.py b/Examples/Python/sim04_Multilayers/GratingMC.py
similarity index 100%
rename from Examples/Python/simulation/ex07_Miscellaneous/FindPeaks.py
rename to Examples/Python/sim04_Multilayers/GratingMC.py
diff --git a/Examples/Python/simulation/ex07_Miscellaneous/HalfSpheresInAverageTopLayer.py b/Examples/Python/sim04_Multilayers/HalfSpheresInAverageTopLayer.py
similarity index 100%
rename from Examples/Python/simulation/ex07_Miscellaneous/HalfSpheresInAverageTopLayer.py
rename to Examples/Python/sim04_Multilayers/HalfSpheresInAverageTopLayer.py
diff --git a/Examples/Python/simulation/ex07_Miscellaneous/MagneticSpheres.py b/Examples/Python/sim05_Magnetism/MagneticSpheres.py
similarity index 100%
rename from Examples/Python/simulation/ex07_Miscellaneous/MagneticSpheres.py
rename to Examples/Python/sim05_Magnetism/MagneticSpheres.py
diff --git a/Examples/Python/simulation/ex07_Miscellaneous/AxesInDifferentUnits.py b/Examples/Python/sim11_Device/AxesInDifferentUnits.py
similarity index 100%
rename from Examples/Python/simulation/ex07_Miscellaneous/AxesInDifferentUnits.py
rename to Examples/Python/sim11_Device/AxesInDifferentUnits.py
diff --git a/Examples/Python/simulation/ex05_BeamAndDetector/BeamDivergence.py b/Examples/Python/sim11_Device/BeamDivergence.py
similarity index 100%
rename from Examples/Python/simulation/ex05_BeamAndDetector/BeamDivergence.py
rename to Examples/Python/sim11_Device/BeamDivergence.py
diff --git a/Examples/Python/simulation/ex05_BeamAndDetector/ConstantBackground.py b/Examples/Python/sim11_Device/ConstantBackground.py
similarity index 100%
rename from Examples/Python/simulation/ex05_BeamAndDetector/ConstantBackground.py
rename to Examples/Python/sim11_Device/ConstantBackground.py
diff --git a/Examples/Python/simulation/ex05_BeamAndDetector/DetectorResolutionFunction.py b/Examples/Python/sim11_Device/DetectorResolutionFunction.py
similarity index 100%
rename from Examples/Python/simulation/ex05_BeamAndDetector/DetectorResolutionFunction.py
rename to Examples/Python/sim11_Device/DetectorResolutionFunction.py
diff --git a/Examples/Python/simulation/ex05_BeamAndDetector/OffSpecularSimulation.py b/Examples/Python/sim11_Device/OffSpecularSimulation.py
similarity index 100%
rename from Examples/Python/simulation/ex05_BeamAndDetector/OffSpecularSimulation.py
rename to Examples/Python/sim11_Device/OffSpecularSimulation.py
diff --git a/Examples/Python/simulation/ex05_BeamAndDetector/RectangularDetector.py b/Examples/Python/sim11_Device/RectangularDetector.py
similarity index 100%
rename from Examples/Python/simulation/ex05_BeamAndDetector/RectangularDetector.py
rename to Examples/Python/sim11_Device/RectangularDetector.py
diff --git a/Examples/Python/simulation/ex05_BeamAndDetector/ResonatorOffSpecSetup.py b/Examples/Python/sim11_Device/ResonatorOffSpecSetup.py
similarity index 100%
rename from Examples/Python/simulation/ex05_BeamAndDetector/ResonatorOffSpecSetup.py
rename to Examples/Python/sim11_Device/ResonatorOffSpecSetup.py
diff --git a/Examples/Python/simulation/ex06_Reflectometry/BasicPolarizedReflectometry.py b/Examples/Python/sim21_Reflectometry/BasicPolarizedReflectometry.py
similarity index 100%
rename from Examples/Python/simulation/ex06_Reflectometry/BasicPolarizedReflectometry.py
rename to Examples/Python/sim21_Reflectometry/BasicPolarizedReflectometry.py
diff --git a/Examples/Python/simulation/ex06_Reflectometry/BasicSpecularSimulation.py b/Examples/Python/sim21_Reflectometry/BasicSpecularSimulation.py
similarity index 100%
rename from Examples/Python/simulation/ex06_Reflectometry/BasicSpecularSimulation.py
rename to Examples/Python/sim21_Reflectometry/BasicSpecularSimulation.py
diff --git a/Examples/Python/simulation/ex06_Reflectometry/BeamAngularDivergence.py b/Examples/Python/sim21_Reflectometry/BeamAngularDivergence.py
similarity index 100%
rename from Examples/Python/simulation/ex06_Reflectometry/BeamAngularDivergence.py
rename to Examples/Python/sim21_Reflectometry/BeamAngularDivergence.py
diff --git a/Examples/Python/simulation/ex06_Reflectometry/BeamFullDivergence.py b/Examples/Python/sim21_Reflectometry/BeamFullDivergence.py
similarity index 100%
rename from Examples/Python/simulation/ex06_Reflectometry/BeamFullDivergence.py
rename to Examples/Python/sim21_Reflectometry/BeamFullDivergence.py
diff --git a/Examples/Python/simulation/ex06_Reflectometry/FootprintCorrection.py b/Examples/Python/sim21_Reflectometry/FootprintCorrection.py
similarity index 100%
rename from Examples/Python/simulation/ex06_Reflectometry/FootprintCorrection.py
rename to Examples/Python/sim21_Reflectometry/FootprintCorrection.py
diff --git a/Examples/Python/simulation/ex06_Reflectometry/MaterialProfile.py b/Examples/Python/sim21_Reflectometry/MaterialProfile.py
similarity index 100%
rename from Examples/Python/simulation/ex06_Reflectometry/MaterialProfile.py
rename to Examples/Python/sim21_Reflectometry/MaterialProfile.py
diff --git a/Examples/Python/simulation/ex06_Reflectometry/MaterialProfileWithParticles.py b/Examples/Python/sim21_Reflectometry/MaterialProfileWithParticles.py
similarity index 100%
rename from Examples/Python/simulation/ex06_Reflectometry/MaterialProfileWithParticles.py
rename to Examples/Python/sim21_Reflectometry/MaterialProfileWithParticles.py
diff --git a/Examples/Python/simulation/ex06_Reflectometry/PolarizedNoAnalyzer.py b/Examples/Python/sim21_Reflectometry/PolarizedNoAnalyzer.py
similarity index 100%
rename from Examples/Python/simulation/ex06_Reflectometry/PolarizedNoAnalyzer.py
rename to Examples/Python/sim21_Reflectometry/PolarizedNoAnalyzer.py
diff --git a/Examples/Python/simulation/ex06_Reflectometry/PolarizedNonperfectAnalyzerPolarizer.py b/Examples/Python/sim21_Reflectometry/PolarizedNonperfectAnalyzerPolarizer.py
similarity index 100%
rename from Examples/Python/simulation/ex06_Reflectometry/PolarizedNonperfectAnalyzerPolarizer.py
rename to Examples/Python/sim21_Reflectometry/PolarizedNonperfectAnalyzerPolarizer.py
diff --git a/Examples/Python/simulation/ex06_Reflectometry/PolarizedSpinAsymmetry.py b/Examples/Python/sim21_Reflectometry/PolarizedSpinAsymmetry.py
similarity index 100%
rename from Examples/Python/simulation/ex06_Reflectometry/PolarizedSpinAsymmetry.py
rename to Examples/Python/sim21_Reflectometry/PolarizedSpinAsymmetry.py
diff --git a/Examples/Python/simulation/ex06_Reflectometry/PolarizedSpinAsymmetryFit.py b/Examples/Python/sim21_Reflectometry/PolarizedSpinAsymmetryFit.py
similarity index 100%
rename from Examples/Python/simulation/ex06_Reflectometry/PolarizedSpinAsymmetryFit.py
rename to Examples/Python/sim21_Reflectometry/PolarizedSpinAsymmetryFit.py
diff --git a/Examples/Python/simulation/ex06_Reflectometry/PolarizedSpinFlip.py b/Examples/Python/sim21_Reflectometry/PolarizedSpinFlip.py
similarity index 100%
rename from Examples/Python/simulation/ex06_Reflectometry/PolarizedSpinFlip.py
rename to Examples/Python/sim21_Reflectometry/PolarizedSpinFlip.py
diff --git a/Examples/Python/simulation/ex06_Reflectometry/RoughnessModel.py b/Examples/Python/sim21_Reflectometry/RoughnessModel.py
similarity index 100%
rename from Examples/Python/simulation/ex06_Reflectometry/RoughnessModel.py
rename to Examples/Python/sim21_Reflectometry/RoughnessModel.py
diff --git a/Examples/Python/simulation/ex06_Reflectometry/SpecularSimulationWithRoughness.py b/Examples/Python/sim21_Reflectometry/SpecularSimulationWithRoughness.py
similarity index 100%
rename from Examples/Python/simulation/ex06_Reflectometry/SpecularSimulationWithRoughness.py
rename to Examples/Python/sim21_Reflectometry/SpecularSimulationWithRoughness.py
diff --git a/Examples/Python/simulation/ex06_Reflectometry/TOFRWithResolution.py b/Examples/Python/sim21_Reflectometry/TOFRWithResolution.py
similarity index 100%
rename from Examples/Python/simulation/ex06_Reflectometry/TOFRWithResolution.py
rename to Examples/Python/sim21_Reflectometry/TOFRWithResolution.py
diff --git a/Examples/Python/simulation/ex06_Reflectometry/TimeOfFlightReflectometry.py b/Examples/Python/sim21_Reflectometry/TimeOfFlightReflectometry.py
similarity index 100%
rename from Examples/Python/simulation/ex06_Reflectometry/TimeOfFlightReflectometry.py
rename to Examples/Python/sim21_Reflectometry/TimeOfFlightReflectometry.py
diff --git a/Examples/Python/simulation/ex06_Reflectometry/genx_angular_divergence.dat.gz b/Examples/Python/sim21_Reflectometry/genx_angular_divergence.dat.gz
similarity index 100%
rename from Examples/Python/simulation/ex06_Reflectometry/genx_angular_divergence.dat.gz
rename to Examples/Python/sim21_Reflectometry/genx_angular_divergence.dat.gz
diff --git a/Examples/Python/simulation/ex07_Miscellaneous/BoxesWithSpecularPeak.py b/Examples/Python/sim22_OffSpecular/BoxesWithSpecularPeak.py
similarity index 100%
rename from Examples/Python/simulation/ex07_Miscellaneous/BoxesWithSpecularPeak.py
rename to Examples/Python/sim22_OffSpecular/BoxesWithSpecularPeak.py
diff --git a/Examples/Python/simulation/ex07_Miscellaneous/PolarizedSANS.py b/Examples/Python/sim23_SAS/PolarizedSANS.py
similarity index 100%
rename from Examples/Python/simulation/ex07_Miscellaneous/PolarizedSANS.py
rename to Examples/Python/sim23_SAS/PolarizedSANS.py
diff --git a/Examples/Python/simulation/ex07_Miscellaneous/DepthProbe.py b/Examples/Python/sim29_DepthProbe/DepthProbe.py
similarity index 100%
rename from Examples/Python/simulation/ex07_Miscellaneous/DepthProbe.py
rename to Examples/Python/sim29_DepthProbe/DepthProbe.py
diff --git a/Examples/Python/simulation/ex07_Miscellaneous/AccessingSimulationResults.py b/Examples/Python/sim31_Parameterization/AccessingSimulationResults.py
similarity index 100%
rename from Examples/Python/simulation/ex07_Miscellaneous/AccessingSimulationResults.py
rename to Examples/Python/sim31_Parameterization/AccessingSimulationResults.py
diff --git a/Examples/Python/simulation/ex07_Miscellaneous/SimulationParameters.py b/Examples/Python/sim31_Parameterization/SimulationParameters.py
similarity index 100%
rename from Examples/Python/simulation/ex07_Miscellaneous/SimulationParameters.py
rename to Examples/Python/sim31_Parameterization/SimulationParameters.py
diff --git a/Examples/README.md b/Examples/README.md
index 842adb85aeb..2577c397c7d 100644
--- a/Examples/README.md
+++ b/Examples/README.md
@@ -4,6 +4,6 @@ This directory contains three sets of examples aimed to demonstrate
 to the user how to simulate and fit with BornAgain.
 
 Content:
-./python - A number of python examples ( <--- First thing to look at)
+./Python - A number of Python examples ( <--- First thing to look at)
 ./cpp    - Single example how to compile standalone C++ application
 ./Demos  - A collection of scripts used in different demonstrations
diff --git a/Tests/Functional/Python/PyExamples/CMakeLists.txt b/Tests/Functional/Python/PyExamples/CMakeLists.txt
index b6b66aac9ea..e9ccbfb0e29 100644
--- a/Tests/Functional/Python/PyExamples/CMakeLists.txt
+++ b/Tests/Functional/Python/PyExamples/CMakeLists.txt
@@ -8,9 +8,9 @@
 set(output_dir ${TEST_OUTPUT_DIR}/Functional/Python/PyExamples)
 file(MAKE_DIRECTORY ${output_dir})
 
-file(GLOB sim_examples "${PY_EXAMPLES_DIR}/simulation/ex*/*.py")
+file(GLOB sim_examples "${PY_EXAMPLES_DIR}/sim*/*.py")
 file(GLOB fit_examples
-    "${PY_EXAMPLES_DIR}/fitting/ex03_ExtendedExamples/specular/FitSpecularBasics.py")
+    "${PY_EXAMPLES_DIR}/fit55_Specular/FitSpecularBasics.py")
 set(examples ${sim_examples} ${fit_examples})
 
 set(test_script ${output_dir}/check_functionality.py)
diff --git a/cmake/BornAgain/LineLength.cmake b/cmake/BornAgain/LineLength.cmake
index 52be3106a2b..b780a398dde 100644
--- a/cmake/BornAgain/LineLength.cmake
+++ b/cmake/BornAgain/LineLength.cmake
@@ -19,7 +19,7 @@ if(NOT MSVC)
             COMMAND ${LINECOUNT} ${SRC_LEN_LIM} ${src1})
     endforeach()
 
-    file(GLOB sources "${PY_EXAMPLES_DIR}/*/ex*/*.py")
+    file(GLOB_RECURSE sources ${PY_EXAMPLES_DIR}/*.py)
     add_test(NAME "LineLength.PyExamples"
         COMMAND ${LINECOUNT} ${WEB_LEN_LIM} ${sources})
 
-- 
GitLab