Skip to content
Snippets Groups Projects
Commit e42c79e9 authored by Pospelov, Gennady's avatar Pospelov, Gennady
Browse files

UserManual: moved listings in Appendix

parent 2a888219
No related branches found
No related tags found
No related merge requests found
\newpage{\pagestyle{empty}\cleardoublepage}
%\mychapter{1}{Appendix}
\chapter{Listings}
\begin{lstlisting}[caption={Python script of example 1},
label=script_ex1,captionpos=b,escapeinside={@}{@} ,language=python,style=eclipse, numbers= none,frame = leftline ,
framerule = 2mm ,
rulecolor = \color{lightgrey},
breaklines = true]
import sys, os, numpy
sys.path.append(os.path.abspath(os.path.join(os.path.split(__file__)[0],'..', '..', '..', 'lib')))
from libBornAgainCore import *
def RunSimulation():
# defining materials
mAmbience = MaterialManager.getHomogeneousMaterial("Air", 0.0, 0.0 )
mSubstrate = MaterialManager.getHomogeneousMaterial("Substrate",
6e-6, 2e-8)
mParticle = MaterialManager.getHomogeneousMaterial("Particle", 6e-4, 2e-8 )
# collection of particles
cylinder_ff = FormFactorCylinder(5*nanometer, 5*nanometer)
cylinder = Particle(mParticle, cylinder_ff)
prism_ff = FormFactorPrism3(5*nanometer, 5*nanometer)
prism = Particle(mParticle, prism_ff)
particle_decoration = ParticleDecoration()
particle_decoration.addParticle(cylinder, 0.0, 0.5)
particle_decoration.addParticle(prism, 0.0, 0.5)
interference = InterferenceFunctionNone()
particle_decoration.addInterferenceFunction(interference)
# air layer with particles and substrate form multi layer
air_layer = Layer(mAmbience)
air_layer.setDecoration(particle_decoration)
substrate_layer = Layer(mSubstrate, 0)
multi_layer = MultiLayer()
multi_layer.addLayer(air_layer)
multi_layer.addLayer(substrate_layer)
# build and run simulation
simulation = Simulation()
simulation.setDetectorParameters(100,-1.0*degree, 1.0*degree,
100, 0.0*degree, 2.0*degree, True)
simulation.setBeamParameters(1.0*angstrom, 0.2*degree, 0.0*degree)
simulation.setSample(multi_layer)
simulation.runSimulation()
# retrieving intensity data
return GetOutputData(simulation)
\end{lstlisting}
\begin{lstlisting}[caption={Python script of fitting example},
label=script_exfit1,captionpos=b,escapeinside={@}{@} ,language=python,style=eclipse, numbers= none,frame = leftline ,
framerule = 2mm ,
rulecolor = \color{lightgrey},
breaklines = true]
import sys, os, numpy
import math
sys.path.append(os.path.abspath(
os.path.join(os.path.split(__file__)[0],
'..', '..', '..', 'lib')))
from libBornAgainCore import *
from libBornAgainFit import *
# values we want to find
cylinder_height = 5.0*nanometer
cylinder_radius = 5.0*nanometer
prism3_half_side = 5.0*nanometer
prism3_height = 5.0*nanometer
# ----------------------------------
# create sample : cylinders and prisms in the air on substrate layer
# ----------------------------------
def buildSample():
# defining materials
mAmbience = MaterialManager.getHomogeneousMaterial("Air", 0.0, 0.0 )
mSubstrate = MaterialManager.getHomogeneousMaterial("Substrate",
6e-6, 2e-8 )
mParticle = MaterialManager.getHomogeneousMaterial("Particle", 6e-4, 2e-8 )
# collection of particles
cylinder_ff = FormFactorCylinder(cylinder_height, cylinder_radius)
cylinder = Particle(mParticle, cylinder_ff)
prism_ff = FormFactorPrism3(prism3_height, prism3_half_side)
prism = Particle(mParticle, prism_ff)
particle_decoration = ParticleDecoration()
particle_decoration.addParticle(cylinder, 0.0, 0.5)
particle_decoration.addParticle(prism,0.0, 0.5)
interference = InterferenceFunctionNone()
particle_decoration.addInterferenceFunction(interference)
# air layer with particles and substrate form multi layer
air_layer = Layer(mAmbience)
air_layer.setDecoration(particle_decoration)
substrate_layer = Layer(mSubstrate, 0)
multi_layer = MultiLayer()
multi_layer.addLayer(air_layer)
multi_layer.addLayer(substrate_layer)
return multi_layer
# ----------------------------------
# create sample : input beam and detector - characteristics
# ----------------------------------
def createSimulation():
simulation = Simulation()
simulation.setDetectorParameters(100, 0.0*degree, 2.0*degree,100 , 0.0*degree, 2.0*degree)
simulation.setBeamParameters(1.0*angstrom, 0.2*degree, 0.0*degree)
return simulation
# ----------------------------------
# read "real" data from file
# ----------------------------------
def GetRealData():
real_data = OutputDataIOFactory.getOutputData('Refdata_fitcylinderprisms.txt')
return real_data
# ----------------------------------
# run fitting
# ----------------------------------
def run_fitting():
sample = buildSample()
simulation = createSimulation()
simulation.setSample(sample)
# get the real data, which is simply results of our simulation with default values
real_data = GetRealData()
# run the simulation
simulation.runSimulation()
# linking real and numerical (to be fitted) data
fitSuite = FitSuite()
fitSuite.addSimulationAndRealData(simulation, real_data)
# setting fitting minimizer
fitSuite.setMinimizer( MinimizerFactory.createMinimizer("Minuit2","Migrad") )
# setting fitting parameters
fitSuite.addFitParameter("*FormFactorCylinder/height", 4.*nanometer, 0.01*nanometer, AttLimits.lowerLimited(0.01) )
fitSuite.addFitParameter("*FormFactorCylinder/radius", 6.*nanometer, 0.01*nanometer, AttLimits.lowerLimited(0.01) )
fitSuite.addFitParameter("*FormFactorPrism3/height", 4.*nanometer, 0.01*nanometer, AttLimits.lowerLimited(0.01) )
fitSuite.addFitParameter("*FormFactorPrism3/half_side", 6*nanometer, 0.01*nanometer, AttLimits.lowerLimited(0.01) )
# run fit
fitSuite.runFit()
# print fit results
fitSuite.printResults()
\end{lstlisting}
File moved
...@@ -611,93 +611,6 @@ Listing~\ref{script_exfit1}, the text given in~\ref{output_exfit1} should be dis ...@@ -611,93 +611,6 @@ Listing~\ref{script_exfit1}, the text given in~\ref{output_exfit1} should be dis
screen (generated using \Code{PrintResults}). screen (generated using \Code{PrintResults}).
\begin{lstlisting}[caption={Python script of fitting example},
label=script_exfit1,captionpos=b,escapeinside={@}{@} ,language=python,style=eclipse, numbers= none,frame = leftline ,
framerule = 2mm ,
rulecolor = \color{lightgrey},
breaklines = true]
import sys, os, numpy
import math
sys.path.append(os.path.abspath(
os.path.join(os.path.split(__file__)[0],
'..', '..', '..', 'lib')))
from libBornAgainCore import *
from libBornAgainFit import *
# values we want to find
cylinder_height = 5.0*nanometer
cylinder_radius = 5.0*nanometer
prism3_half_side = 5.0*nanometer
prism3_height = 5.0*nanometer
# ----------------------------------
# create sample : cylinders and prisms in the air on substrate layer
# ----------------------------------
def buildSample():
# defining materials
mAmbience = MaterialManager.getHomogeneousMaterial("Air", 0.0, 0.0 )
mSubstrate = MaterialManager.getHomogeneousMaterial("Substrate",
6e-6, 2e-8 )
mParticle = MaterialManager.getHomogeneousMaterial("Particle", 6e-4, 2e-8 )
# collection of particles
cylinder_ff = FormFactorCylinder(cylinder_height, cylinder_radius)
cylinder = Particle(mParticle, cylinder_ff)
prism_ff = FormFactorPrism3(prism3_height, prism3_half_side)
prism = Particle(mParticle, prism_ff)
particle_decoration = ParticleDecoration()
particle_decoration.addParticle(cylinder, 0.0, 0.5)
particle_decoration.addParticle(prism,0.0, 0.5)
interference = InterferenceFunctionNone()
particle_decoration.addInterferenceFunction(interference)
# air layer with particles and substrate form multi layer
air_layer = Layer(mAmbience)
air_layer.setDecoration(particle_decoration)
substrate_layer = Layer(mSubstrate, 0)
multi_layer = MultiLayer()
multi_layer.addLayer(air_layer)
multi_layer.addLayer(substrate_layer)
return multi_layer
# ----------------------------------
# create sample : input beam and detector - characteristics
# ----------------------------------
def createSimulation():
simulation = Simulation()
simulation.setDetectorParameters(100, 0.0*degree, 2.0*degree,100 , 0.0*degree, 2.0*degree)
simulation.setBeamParameters(1.0*angstrom, 0.2*degree, 0.0*degree)
return simulation
# ----------------------------------
# read "real" data from file
# ----------------------------------
def GetRealData():
real_data = OutputDataIOFactory.getOutputData('Refdata_fitcylinderprisms.txt')
return real_data
# ----------------------------------
# run fitting
# ----------------------------------
def run_fitting():
sample = buildSample()
simulation = createSimulation()
simulation.setSample(sample)
# get the real data, which is simply results of our simulation with default values
real_data = GetRealData()
# run the simulation
simulation.runSimulation()
# linking real and numerical (to be fitted) data
fitSuite = FitSuite()
fitSuite.addSimulationAndRealData(simulation, real_data)
# setting fitting minimizer
fitSuite.setMinimizer( MinimizerFactory.createMinimizer("Minuit2","Migrad") )
# setting fitting parameters
fitSuite.addFitParameter("*FormFactorCylinder/height", 4.*nanometer, 0.01*nanometer, AttLimits.lowerLimited(0.01) )
fitSuite.addFitParameter("*FormFactorCylinder/radius", 6.*nanometer, 0.01*nanometer, AttLimits.lowerLimited(0.01) )
fitSuite.addFitParameter("*FormFactorPrism3/height", 4.*nanometer, 0.01*nanometer, AttLimits.lowerLimited(0.01) )
fitSuite.addFitParameter("*FormFactorPrism3/half_side", 6*nanometer, 0.01*nanometer, AttLimits.lowerLimited(0.01) )
# run fit
fitSuite.runFit()
# print fit results
fitSuite.printResults()
\end{lstlisting}
\begin{lstlisting}[caption={Output of fit using Python script~\ref{script_exfit1}},language=bash,basicstyle=\small\lstfontfamily,% style=commandline, \begin{lstlisting}[caption={Output of fit using Python script~\ref{script_exfit1}},language=bash,basicstyle=\small\lstfontfamily,% style=commandline,
label=output_exfit1,captionpos=b,escapeinside={@}{@}, numbers= label=output_exfit1,captionpos=b,escapeinside={@}{@}, numbers=
......
\newpage \newpage
\chapter{Simulation} \SecLabel{Simulation} \chapter{Simulation examples} \SecLabel{Simulation}
\section{General methodology} \section{General methodology}
A simulation of GISAXS using \BornAgain\ consists of following steps: A simulation of GISAXS using \BornAgain\ consists of following steps:
...@@ -364,53 +364,6 @@ is associated with the output intensity in arbitrary units. } ...@@ -364,53 +364,6 @@ is associated with the output intensity in arbitrary units. }
\label{fig:output_ex1} \label{fig:output_ex1}
\end{figure} \end{figure}
\newpage
\begin{lstlisting}[caption={Python script of example 1},
label=script_ex1,captionpos=b,escapeinside={@}{@} ,language=python,style=eclipse, numbers= none,frame = leftline ,
framerule = 2mm ,
rulecolor = \color{lightgrey},
breaklines = true]
import sys, os, numpy
sys.path.append(os.path.abspath(os.path.join(os.path.split(__file__)[0],'..', '..', '..', 'lib')))
from libBornAgainCore import *
def RunSimulation():
# defining materials
mAmbience = MaterialManager.getHomogeneousMaterial("Air", 0.0, 0.0 )
mSubstrate = MaterialManager.getHomogeneousMaterial("Substrate",
6e-6, 2e-8)
mParticle = MaterialManager.getHomogeneousMaterial("Particle", 6e-4, 2e-8 )
# collection of particles
cylinder_ff = FormFactorCylinder(5*nanometer, 5*nanometer)
cylinder = Particle(mParticle, cylinder_ff)
prism_ff = FormFactorPrism3(5*nanometer, 5*nanometer)
prism = Particle(mParticle, prism_ff)
particle_decoration = ParticleDecoration()
particle_decoration.addParticle(cylinder, 0.0, 0.5)
particle_decoration.addParticle(prism, 0.0, 0.5)
interference = InterferenceFunctionNone()
particle_decoration.addInterferenceFunction(interference)
# air layer with particles and substrate form multi layer
air_layer = Layer(mAmbience)
air_layer.setDecoration(particle_decoration)
substrate_layer = Layer(mSubstrate, 0)
multi_layer = MultiLayer()
multi_layer.addLayer(air_layer)
multi_layer.addLayer(substrate_layer)
# build and run simulation
simulation = Simulation()
simulation.setDetectorParameters(100,-1.0*degree, 1.0*degree,
100, 0.0*degree, 2.0*degree, True)
simulation.setBeamParameters(1.0*angstrom, 0.2*degree, 0.0*degree)
simulation.setSample(multi_layer)
simulation.runSimulation()
# retrieving intensity data
return GetOutputData(simulation)
\end{lstlisting}
% \newpage % \newpage
% \subsection{Hello, minted} % \subsection{Hello, minted}
......
No preview for this file type
...@@ -180,10 +180,14 @@ Forschungszentrum J\"ulich GmbH ...@@ -180,10 +180,14 @@ Forschungszentrum J\"ulich GmbH
\input{Introduction} \input{Introduction}
\input{QuickStart} \input{QuickStart}
\input{Installation} \input{Installation}
\input{SoftwareArchitecture}
\input{SoftwareDesignOverview}
\input{SimulationExamples} \input{SimulationExamples}
\input{FittingExamples} \input{FittingExamples}
\input{SoftwareArchitecture}
\input{SoftwareDesignOverview}
\appendix
\input{AppendixListings}
\input{AppendixPhysics}
%List of notations\\ Bugs\\ License agreement\\ Directory layout \\ FAQ \\ Future development. %List of notations\\ Bugs\\ License agreement\\ Directory layout \\ FAQ \\ Future development.
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment