Skip to content
Snippets Groups Projects
Commit 90afd7b8 authored by Yurov, Dmitry's avatar Yurov, Dmitry
Browse files

Repaired functional tests/examples

Redmine: #1946
parent c4c3925c
No related branches found
No related tags found
No related merge requests found
......@@ -20,9 +20,9 @@
MaterialBySLDBuilder::MaterialBySLDBuilder()
: m_number_of_layers(10)
, m_si {4.1491e-6, 4.99e+1, 0.171 * Units::barn / 0.1798197} // [nm, nm^{-3}, nm^2]
, m_ti {-3.438e-6, 5.67e+1, 6.09 * Units::barn * 1e+4 / 0.1798197} // [nm, nm^{-3}, nm^2]
, m_ni {1.03e-5, 9.15e+1, 4.49 * Units::barn / 0.1798197} // [nm, nm^{-3}, nm^2]
, m_si { 2.0704e-06, 2.3726e-11}
, m_ti {-1.9493e-06, 9.6013e-06}
, m_ni { 9.4245e-06, 1.1423e-09}
, m_thick_ti(3.0) // nm
, m_thick_ni(7.0) //nm
{}
......@@ -32,9 +32,9 @@ MultiLayer* MaterialBySLDBuilder::buildSample() const
std::unique_ptr<MultiLayer> multi_layer(new MultiLayer());
Material vacuum_material = MaterialBySLD();
Material substrate_material = MaterialBySLD("Si_substrate", m_si.sld(), m_si.abs_term());
Material ni_material = MaterialBySLD("Ni", m_ni.sld(), m_ni.abs_term());
Material ti_material = MaterialBySLD("Ti", m_ti.sld(), m_ti.abs_term());
Material substrate_material = MaterialBySLD("Si_substrate", m_si.sld_real, m_si.sld_imag);
Material ni_material = MaterialBySLD("Ni", m_ni.sld_real, m_ni.sld_imag);
Material ti_material = MaterialBySLD("Ti", m_ti.sld_real, m_ti.sld_imag);
Layer vacuum_layer(vacuum_material, 0);
Layer ni_layer(ni_material, m_thick_ni);
......
......@@ -30,20 +30,8 @@ public:
protected:
struct MaterialData {
double sld() const
{
return density * scat_length;
}
//! Returns macroscopic cross-section for 2200 m/s neutrons
double abs_term() const
{
return density * abs_cx;
}
double scat_length; //!< bound coherent scattering length
double density; //!< number density
double abs_cx; //!< absorption cross-section for 2200 m/s neutrons
double sld_real; //!< real part of sld in AA^{-2}
double sld_imag; //!< imaginary part of sld in AA^{-2}
};
size_t m_number_of_layers;
MaterialData m_si;
......
......@@ -15,27 +15,25 @@ from os import path
wavelength = 1.54 * ba.angstrom
# substrate (Si)
bc_si = 4.1491 * ba.angstrom * 1e-5 # bound coherent scattering length for Si
si_sld_real = 2.0704e-06 # \AA^{-2}
density_si = 0.0499 / ba.angstrom ** 3 # Si atomic number density
# layers' parameters
n_repetitions = 10
# Ni
bc_ni = 10.3 * ba.angstrom * 1e-5
density_ni = 0.0915 / ba.angstrom ** 3
ni_sld_real = 9.4245e-06 # \AA^{-2}
d_ni = 70 * ba.angstrom
# Ti
bc_ti = -3.438 * ba.angstrom * 1e-5
density_ti = 0.0567 / ba.angstrom ** 3
ti_sld_real = -1.9493e-06 # \AA^{-2}
d_ti = 30 * ba.angstrom
def get_sample():
# defining materials
m_air = ba.MaterialBySLD()
m_ni = ba.MaterialBySLD("Ni", density_ni * bc_ni, 0.0)
m_ti = ba.MaterialBySLD("Ti", density_ti * bc_ti, 0.0)
m_substrate = ba.MaterialBySLD("SiSubstrate", density_si * bc_si, 0.0)
m_ni = ba.MaterialBySLD("Ni", ni_sld_real, 0.0)
m_ti = ba.MaterialBySLD("Ti", ti_sld_real, 0.0)
m_substrate = ba.MaterialBySLD("SiSubstrate", si_sld_real, 0.0)
# air layer and substrate form multi layer
air_layer = ba.Layer(m_air)
......
......@@ -21,27 +21,23 @@ n_sig = 3 # number of sigmas to convolve over
n_points = 25 # number of points to convolve over
# substrate (Si)
# bound coherent scattering length for Si (nat. ab.)
bc_si = 4.1491 * ba.angstrom * 1e-5
density_si = 0.0499 / ba.angstrom ** 3 # Si atomic number density
si_sld_real = 2.0704e-06 # \AA^{-2}
# layer parameters
n_repetitions = 10
# Ni
bc_ni = 10.3 * ba.angstrom * 1e-5
density_ni = 0.0915 / ba.angstrom ** 3
ni_sld_real = 9.4245e-06 # \AA^{-2}
d_ni = 70 * ba.angstrom
# Ti
bc_ti = -3.438 * ba.angstrom * 1e-5
density_ti = 0.0567 / ba.angstrom ** 3
ti_sld_real = -1.9493e-06 # \AA^{-2}
d_ti = 30 * ba.angstrom
def get_sample():
# defining materials
m_air = ba.MaterialBySLD("Air", 0.0, 0.0)
m_ni = ba.MaterialBySLD("Ni", density_ni * bc_ni, 0.0)
m_ti = ba.MaterialBySLD("Ti", density_ti * bc_ti, 0.0)
m_substrate = ba.MaterialBySLD("SiSubstrate", density_si * bc_si, 0.0)
m_ni = ba.MaterialBySLD("Ni", ni_sld_real, 0.0)
m_ti = ba.MaterialBySLD("Ti", ti_sld_real, 0.0)
m_substrate = ba.MaterialBySLD("SiSubstrate", si_sld_real, 0.0)
air_layer = ba.Layer(m_air)
ni_layer = ba.Layer(m_ni, d_ni)
......
......@@ -18,19 +18,15 @@ n_sig = 3 # number of sigmas to convolve over
n_points = 25 # number of points to convolve over
# substrate (Si)
# bound coherent scattering length for Si (nat. ab.)
bc_si = 4.1491 * ba.angstrom * 1e-5
density_si = 0.0499 / ba.angstrom ** 3 # Si atomic number density
si_sld_real = 2.0704e-06 # \AA^{-2}
# layer parameters
n_repetitions = 10
# Ni
bc_ni = 10.3 * ba.angstrom * 1e-5
density_ni = 0.0915 / ba.angstrom ** 3
d_ni = 70 * ba.angstrom
ni_sld_real = 9.4245e-06 # \AA^{-2}
d_ni = 70 * ba.angstrom # ni layer thickness (nm)
# Ti
bc_ti = -3.438 * ba.angstrom * 1e-5
density_ti = 0.0567 / ba.angstrom ** 3
d_ti = 30 * ba.angstrom
ti_sld_real = -1.9493e-06 # \AA^{-2}
d_ti = 30 * ba.angstrom # ti layer thickness (nm)
def get_sample():
......@@ -38,9 +34,9 @@ def get_sample():
# this example implies beam divergence in the wavelength,
# thus MaterialBySLD must be used to provide correct result
m_air = ba.MaterialBySLD("Air", 0.0, 0.0)
m_ni = ba.MaterialBySLD("Ni", density_ni * bc_ni, 0.0)
m_ti = ba.MaterialBySLD("Ti", density_ti * bc_ti, 0.0)
m_substrate = ba.MaterialBySLD("SiSubstrate", density_si * bc_si, 0.0)
m_ni = ba.MaterialBySLD("Ni", ni_sld_real, 0.0)
m_ti = ba.MaterialBySLD("Ti", ti_sld_real, 0.0)
m_substrate = ba.MaterialBySLD("SiSubstrate", si_sld_real, 0.0)
air_layer = ba.Layer(m_air)
ni_layer = ba.Layer(m_ni, d_ni)
......
No preview for this file type
No preview for this file type
No preview for this file type
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