Abteilung Mikrostruktur- und Eigenspannungsanalyse
nxs - eine Programmbibliothek für die Berechnung von Neutronenwirkungsquerschnitten
Eine Sammlung/Bibliothek von in C geschriebenen Routinen für die Berechnung von Neutronenstreu- und Absorptionsquerschnitten für Polykristallin-/Pulvermaterialien auf der Grundlage der Zusammensetzung einer kristallographischen Einheitszelle.
Autor: Mirko Boin, boin@helmholtz-berlin.de
p.s.: nxs ist nicht Nexus! ;-)
Einführung
Die nxs-Bibliothek zur Berechnung von Neutronenstreu- und Absorptionsquerschnitten bietet eine Reihe von C-Strukturen und Funktionen zur Berechnung wellenlängenabhängiger Querschnittswerte für polykristalline/pulverartige Materialien. Die Definition eines Materials wird durch die Zusammensetzung einer Einheitszelle (NXS_UnitCell) dargestellt. Eine Einheitszelle wird aus der Angabe einer Raumgruppe und ihrer Einheitszellparameter erzeugt. Für solche Zwecke ist hier die SgInfo-Routine von Ralf W. Grosse-Kunstleve enthalten. Sowohl monoatomare Materialien als auch multiatomare Verbindungen werden durch Hinzufügen von NXS_AtomInfo-Atominformationen und -eigenschaften erzeugt. Die Bibliothek bietet auch eine Lese- und Speicherroutine zum Zusammensetzen von Einheitszellen aus nxs-Parameterdateien.
Howto
Das untenstehende Beispiel zeigt, wie man schnell die Bibliotheksroutinen zur Initialisierung einer Einheitszelle und zur Berechnung einiger Querschnitte verwendet.
NXS_UnitCell uc = nxs_newUnitCell();
int numAtoms = nxs_readParameterFile( nxsFileName, &uc, &atomInfoList);if( numAtoms > 0 ) { int i=0; nxs_initUnitCell(&uc); for( i=0; i<numAtoms; i++ ) nxs_addAtomInfo( &uc, atomInfoList[i] ); nxs_initHKL( &uc ); double lambda=0.1; for( lambda=0.1; lambda<4.0; lambda+=0.1 ) { printf("%f\n",nxs_Absorption(lambda, &uc ) ); } } |
Parameterdateien
Currently, nxs provides routines to read and save nxs parameter files of one particular kind. It is a human-readable, INI-like, file format to store the necessary information for the compositon of a crystallographic unit cell. An example of NaCl is given below:
# # This is an nxs parameter file # # define the unit cell parameters: # space_group - the space group number or Hermann or Hall symbol [string] # lattice_a, ...b, ...c - the lattice spacings a,b,c [angstrom] # lattice_alpha, ...beta, ...gamma - the lattice angles alpha,beta,gamma [degree] # debye_temp - the Debye temperature [K] space_group=225 lattice_a=5.64 lattice_c=4.95 lattice_alpha=90 debye_temp=320 # add atoms to the unit cell: # notation is "atom_number = name b_coh sigma_inc sigma_abs_2200 molar_mass x y z" # name - labels the current atom/isotope [string] # b_coh - the coherent scattering length [fm] # sigma_inc - the incoherent scattering cross section [barns] # sigma_abs_2200 - the absorption cross sect. at 2200 m/s [barns] # molar_mass - the Molar mass [g/mol] # x y z - the Wyckoff postion of the atom inside the unit cell # # e.g.: add_atom = Fe 9.45 0.4 2.56 55.85 0.0 0.0 0.0 [atoms] add_atom=Na 3.63 1.62 0.53 22.99 0.0 0.0 0.0 add_atom=Cl 9.577 5.3 33.5 35.45 0.5 0.5 0.5 |
Copyright
nxs - neutron cross sections (c) 2010-2014 Mirko Boin
Die nxs-Bibliothek umfasst die SgInfo-Bibliothek, deren kostenlose Nutzung durch den folgenden Hinweis gewährt wird:
Space Group Info (c) 1994-96 Ralf W. Grosse-Kunstleve. Hiermit wird die Erlaubnis erteilt, diese Software und ihre Dokumentation für nichtkommerzielle Zwecke und ohne Gebühren zu nutzen und zu verteilen, vorausgesetzt, daß der obige Copyright-Vermerk in allen Kopien erscheint und daß sowohl dieser Copyright-Vermerk als auch dieser Genehmigungshinweis in der Begleitdokumentation erscheinen. Es ist nicht erlaubt, diese Software in irgendeiner Weise zu verkaufen. Diese Software ist nicht gemeinfrei.
Literaturhinweise
Hauptveröffentlichung:
- "nxs: a program library for neutron cross section calculations"
Boin, M. (2012). J. Appl. Cryst. 45, 603-607, doi: 10.1107/S0021889812016056
Anwendungen mit nxs:
Die nxs-Bibliothek wurde in einer Vielzahl von Anwendungen eingesetzt, z.B. Neutronensimulation für Instrumentenentwicklung, Experimentplanung und Datenanalyse. Einige Beispiele sind unten aufgeführt:
Neutronen-Bragg-Kantenmessungen und -simulation (unter Verwendung von nxs innerhalb von McStas) einer texturierten Al-Probe.
- "Validation of Bragg edge experiments by Monte Carlo simulations for quantitative texture analysis"
Boin, M.; Hilger, A.; Kardjilov, N.; Zhang, S.Y., Oliver, E.C.; James, J.A., Randau, C. & Wimpory, R.C. (2011). J. Appl. Cryst. 44, 1040-1046, doi: 10.1107/S0021889811025970 - "Time-of-flight neutron imaging at a continuous source: Proof of principle using a scintillator CCD imaging detector"
Strobl, M.; Hilger, A.; Boin, M.; Kardjilov, N.; Wimpory, R.; Clemens, D.; Mühlbauer, M.; Schillinger, B.; Wilpert, T.; Schulz, C.; Rolfs, K.; Davies, C. M.; O'Dowd, N.; Tiernan, P. & Manke, I. (2011). Nucl. Instrum. Methods Phys. Res., Sect. A 651, 149-155, doi: 10.1016/j.nima.2010.12.121 - "Monte Carlo simulations for the analysis of texture and strain measured with Bragg edge neutron transmission"
Boin, M.; Wimpory, R.C.; Hilger, A.; Kardjilov, N.; Zhang, S.Y. & Strobl, M. (2011). J. Phys.: Conf. Ser. 340, 012022/1-12, doi: 10.1088/1742-6596/340/1/012022 - "Geant4 based simulations for novel neutron detector development"
Kittelmann, T.; Stefanescu, I.; Kanaki, K.; Boin, M.; Hall-Wilton, R. & Zeitelhack, K. (2014). J. Phys.: Conf. Ser. 513, 022017, doi: 10.1088/1742-6596/513/2/022017 - "A new transmission based monochromator for energy-selective neutron imaging at the ICON beamline"
Peetermans, S.; Tamaki, M.; Hartmann, S.; Kaestner, A.; Morgano, M. & Lehmann, E. H. (2014). Nucl. Instrum. Methods Phys. Res., Sect. A 757, 28-32, doi: 10.1016/j.nima.2014.04.033