- Yanera ("Yet Another NEutron Reflectivity Analyzer") is a software package for calculating reflectivity curves. It provides an open-source C++ implementation of the Parratt formalism. Written by Thad Harroun (Brock University), with minor contributions from Kevin Yager.
Example Input File (2007 format)
<?xml version="1.0"?>
<!DOCTYPE parratt SYSTEM "parratt.dtd">
<parratt type="parratt" do_fit="no">
<output>
<reflectivity>reflectivity.txt</reflectivity>
<profile>profile.txt</profile>
<q_min> 0.000</q_min>
<q_max> 0.160</q_max>
<num_q>300</num_q>
<num_z>200</num_z>
</output>
<model>
<bulk>
<name>ambient</name>
<thik fix="1">n/a</thik>
<sigz fix="1">n/a</sigz>
<rsld fix="1"> 0.000</rsld>
</bulk>
<layer>
<name>PS</name>
<thik fix="1">1000.000</thik>
<sigz fix="1">40.0</sigz>
<rsld fix="1"> 9.13</rsld>
</layer>
<layer>
<name>Ge</name>
<thik fix="1">19.700</thik>
<sigz fix="1"> 5.000</sigz>
<rsld fix="1"> 22.58</rsld>
<isld fix="1"> 0.000</isld>
</layer>
<substrate>
<name>glass</name>
<thik fix="1">n/a</thik>
<sigz fix="1"> 1.700</sigz>
<rsld fix="1"> 22.58</rsld>
<isld fix="1"> 0.000</isld>
</substrate>
<coverg fix="1"> 1.000</coverg>
<backgd fix="1"> 0.000</backgd>
<resoln type="dq/q"> 0.040</resoln>
</model>
</parratt>
Example Input File (2008 format)
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE yanera SYSTEM "yanera.dtd">
<yanera>
<!-- ====================================================================== -->
<miscellaneous_section>
<write_results>YES</write_results>
<write_profile>YES</write_profile>
<write_reflectivity>YES</write_reflectivity>
<write_slabs>YES</write_slabs>
<q_min>0.0006</q_min>
<q_max>0.21</q_max>
<q_num>2001</q_num>
<z_num>201</z_num>
<quadrature_error>0.0005</quadrature_error>
<quadrature_thik>5.0</quadrature_thik>
<fit_do>NO</fit_do>
<fit_weighting>WEIGHT_NONE</fit_weighting>
<fit_iterations>500</fit_iterations>
<fit_write_iterations>5</fit_write_iterations>
</miscellaneous_section>
<!-- ====================================================================== -->
<data_section>
<!-- ===== -->
<data data_id="data0">
<file_name>data0_l</file_name>
<resolution>
<type>RESOLUTION_NONE</type>
<value/>
<file_name/>
</resolution>
</data>
<!-- ===== -->
<data data_id="data1">
<file_name>data1_l</file_name>
<resolution>
<type>RESOLUTION_NONE</type>
<value/>
<file_name/>
</resolution>
</data>
<!-- ===== -->
<data data_id="data2">
<file_name>data2_l</file_name>
<resolution>
<type>RESOLUTION_NONE</type>
<value/>
<file_name/>
</resolution>
</data>
<!-- ===== -->
</data_section>
<!-- ====================================================================== -->
<model_section>
<!-- ===== -->
<model_type>MODEL_LAYER</model_type>
<!-- ===== -->
<model data_idref="data0">
<name>Silicon in air</name>
<polarized>POLARIZED_UNPOLARIZED</polarized>
<bulk>
<name>ambient</name>
<rsld fix="YES">0</rsld>
</bulk>
<layer>
<name>PS</name>
<thik fix="YES">1000<max>2000</max></thik>
<sigz fix="YES">40</sigz>
<rsld fix="NO">9.0</rsld>
<rmag fix="NO">0.0<min>0.0</min></rmag>
</layer>
<substrate>
<name>glass</name>
<sigz fix="YES">2</sigz>
<rsld fix="YES">22.58</rsld>
</substrate>
<background fix="YES">0</background>
</model>
<!-- ===== -->
<model data_idref="data1">
<polarized>POLARIZED_UP</polarized>
</model>
<!-- ===== -->
<model data_idref="data2">
<polarized>POLARIZED_DOWN</polarized>
</model>
<!-- ===== -->
</model_section>
<!-- ====================================================================== -->
</yanera>