Proposed(changes(to(the( XSAMS(Schema(Molecules)(...
Transcript of Proposed(changes(to(the( XSAMS(Schema(Molecules)(...
Proposed changes to the XSAMS Schema (Molecules)
Marie-‐Lise Dubernet (LPMAA) Theresa Lue>inger (Vienna)
Nikolai Piskunov (UU) Thomas Marquart (UU) ChrisFan Endres (Köln) ChrisFan Hill (UCL) Asif Akram (UCAM)
IAEA XSAMS MeeFng, Gaithersburg, 3-‐5 October 2011
Misha Doronin (LPMAA) Ljerka Nenadovic (LPMAA)
Guy Rixon (UCAM) Tanya Ryabchikova (INASAN)
Ken Smith (QUB)
Where to find the Schema
• “vamdc-‐working” branch of Sourceforge repository: h`p://xsams.svn.sourceforge.net/viewvc/xsams/branches/vamdc-‐working/
• Developers’ Forum (requires registraFon with Yuri ([email protected]): h`ps://sourceforge.net/projects/xsams/forums/forum/1307107/
Summary of changes 1. Basic types
a. The XSAMS namespace b. <States> à <Species> c. DataType; vectors, matrices and data series d. Sources
2. Molecular States: case-‐by-‐case descrip?on 3. Environments 4. Spectral line broadening 5. Absorp?on cross sec?ons 6. ParFFon funcFons 7. Species iden?fica?on and Molecular Structure 8. Molecular states (“case-‐by-‐case”) and basis set expansions 9. Normal mode and related data for e.g. PAHs
XSAMS Namespace
• h`p://xsams.svn.sourceforge.net/viewvc/xsams/branches/vamdc-‐working/
• Perhaps the official XSAMS Schema should have one? e.g. h`p://www-‐amdis.iaea.org/xml/
• Requires minor changes to the way a`ributes are declared in the Schema document.
<States> à <Species> Species
Atoms +Atom ChemicalElement Isotope IsotopeParameters +Ion IonCharge +AtomicState ... Molecules +Molecule MolecularChemicalSpecies OrdinaryStructuralFormula ... +MolecularState Solids +Solid Particles +Particle
Sources • Currently on PrimaryType by a`ribute – e.g.
<StateEnergy sourceRef=“B1”> <Value>xxx</Value> <Accuracy>yyy</Accuracy> </StateEnergy>
• Proposed as an element within PrimaryType – e.g. <StateEnergy> <SourceRef>B1</SourceRef> <SourceRef>B2</SourceRef>
<Value>xxx</Value> <Accuracy>yyy</Accuracy> </StateEnergy>
DataType – the Problem
• A lot of data given as DataType is actually a parameter to some funcFon – e.g. Pressure broadened HWHM:
γair(p, T) = γairref (p/pref).(Tref/T)n_air
parameters
arguments
DataType – the SoluFon(?) • Extend DataType to allow it to list funcFon parameters: e.g. D = F(x, y; a, b, c) = ax2 + bxy + cy2
<D> <FitParameters functionRef=”Ffunc”> <FitArgument units=”…”> <Name>x</Name> <LowerLimit units=”…”>…</LowerLimit> <UpperLimit units=”…”>…</UpperLimit> </FitArgument> <FitArgument units=”…”> <Name>y</Name> <LowerLimit units=”…”>…</LowerLimit> <UpperLimit units=”…”>…</UpperLimit> </FitArgument> <FitParameter name=”a”> <SourceRef>…</SourceRef> <Value units=”…”>…</Value> <Accuracy>…</Accuracy> </FitParameter>
<FitParameter name=”b”> <SourceRef>…</SourceRef> <Value units=”…”>…</Value> <Accuracy>…</Accuracy> </FitParameter> <FitParameter name=”c”> <SourceRef>…</SourceRef> <Value units=”…”>…</Value> <Accuracy>…</Accuracy> </FitParameter> </FitParameters> </D>
VectorType
Of the form:
<DisplacementVectors units=“Å”> <Vector ref="C1" x3="0." y3="0.001" z3="0.0005"/> <Vector ref="C2" x3="0.01" y3="-0.001" z3="0.0005"/> </DisplacementVectors>
• The ref a`ribute provides a context; • x3, y3, z3 are the vector components • Units are given in the “container” element.
MatrixType
<SomeMatrix units=”…” nrows=”n” ncols=”n” form=”symmetric” values=”real”> <RowRefs>row_1 row_2 row_3 … row_n</RowRefs> <ColRefs>col_1 col_2 col_3 …col_n</ColRefs> <Matrix>0. 0. 1. -4. 2. … -3. 0.</Matrix> </SomeMatrix>
• The form of the Matrix determines the number of values given (e.g. n(n+1)/2 for symmetric matrices, n for diagonal matrices, n2 for general matrices)
• (OpFonal) RowRefs and ColRefs label the rows and columns
• values is real, imaginary, or complex
DataSeries 1. One of: • a list of white-‐space delimited values:
<DataList n=“100” units=“nm”>0. 0.5 0.6 1.2</DataList>
• a LinearSequence:
<LinearSequence n=“101” units=“nm” a0=“2000.” a1=“0.05”/>
represenFng the sequence 2000., 2000.05, … , 2005.0. • or DataFile – the name of an external text file containing the white-‐
space delimited values 2. With either: • ErrorList – a DataList of error values; • Error – a single accuracy applying to every data point
XSAMS v0.1 <ElectronicHome> <ElectronicComponent> <VibraFonalHome> <VibraFonalComponent> <VibraFonalQuantumNumbers> <VibraFonalNu> <Label>v1</Label> <Value>1</Value> </VibraFonalNu> <VibraFonalNu vibraFonInversion="s"> <Label>v2</Label> <Value>0</Value> </VibraFonalNu> <VibraFonalNu vibraFonLNu-‐i="0"> <Label>v3</Label> <Value>0</Value> </VibraFonalNu> <VibraFonalNu vibraFonLNu-‐i="2"> <Label>v4</Label> <Value>2</Value> </VibraFonalNu> </VibraFonalQuantumNumbers>
<RotaFonalHome> <RotaFonalComponent> <NonLinearPolyatomic> <NonLinearNoElecNoHyperF> <TotalAngularMomentumN> <Label>J</Label> <Value>22</Value> </TotalAngularMomentumN> <MolecularProjecFon> <TotalMolecularProjecFonN> <Label>K</Label> <Value>10</Value> </TotalMolecularProjecFonN> </MolecularProjecFon> </NonLinearNoElecNoHyperF> </NonLinearPolyatomic> </RotaFonalComponent> </RotaFonalHome> </VibraFonalComponent> </VibraFonalHome> </ElectronicComponent> </ElectronicHome>
The J=22, K=10 state of the (1,0+,00,22) vibraFonal state of NH3
XSAMS v0.1 <ElectronicHome> <ElectronicComponent> <VibraFonalHome> <VibraFonalComponent> <VibraFonalQuantumNumbers> <VibraFonalNu> <Label>v1</Label> <Value>1</Value> </VibraFonalNu> <VibraFonalNu vibraFonInversion="s"> <Label>v2</Label> <Value>0</Value> </VibraFonalNu> <VibraFonalNu vibraFonLNu-‐i="0"> <Label>v3</Label> <Value>0</Value> </VibraFonalNu> <VibraFonalNu vibraFonLNu-‐i="2"> <Label>v4</Label> <Value>2</Value> </VibraFonalNu> </VibraFonalQuantumNumbers>
<RotaFonalHome> <RotaFonalComponent> <NonLinearPolyatomic> <NonLinearNoElecNoHyperF> <TotalAngularMomentumN> <Label>J</Label> <Value>22</Value> </TotalAngularMomentumN> <MolecularProjecFon> <TotalMolecularProjecFonN> <Label>K</Label> <Value>10</Value> </TotalMolecularProjecFonN> </MolecularProjecFon> </NonLinearNoElecNoHyperF> </NonLinearPolyatomic> </RotaFonalComponent> </RotaFonalHome> </VibraFonalComponent> </VibraFonalHome> </ElectronicComponent> </ElectronicHome>
The J=22, K=10 state of the (1,0+,00,22) vibraFonal state of NH3
Molecular States
“Case-‐by-‐case” approach • Defines (so far) 14 types of molecular state with a fully-‐described set of quantum numbers and symmetries:
dcs = diatomic, closed-‐shell (e.g. N2, HCl) hunda = Hund’s case (a) diatomic (e.g. OH) hundb = Hund’s case (b) diatomic (e.g. NO, O2) ltcs = linear triatomic, closed-‐shell (e.g. CO2) nltcs = non-‐linear triatomic, closed-‐shell (e.g. O3) stcs = symmetric-‐top, closed-‐shell (e.g. NH3, CH3Cl) sphcs = spherical-‐top, closed-‐shell (e.g. CH4) ...
Case-‐by-‐case example: OH (hunda) <Case xsi:type="hunda:Case" caseID="hunda” xmlns:hunda="http://vamdc.org/xml/xsams/0.2/cases/hunda"> <hunda:QNs> <hunda:ElecStateLabel>X</hunda:ElecStateLabel> <hunda:Lambda>1</hunda:Lambda> <hunda:Omega>1.5</hunda:Omega> <hunda:S>0.5</hunda:S> <hunda:v>0</hunda:v> <hunda:J>4.5</hunda:J> <hunda:F nuclearSpinRef="H1">5.5</hunda:F> <hunda:parity>+</hunda:parity> <hunda:kronigParity>e</hunda:kronigParity> </hunda:QNs> </Case>
Case-‐by-‐case example: NH3 (stcs) <Case xsi:type="stcs:Case" caseID="stcs” xmlns:stcs="http://vamdc.org/xml/xsams/0.2/cases/stcs"> <stcs:QNs> <stcs:ElecStateLabel>X</stcs:ElecStateLabel> <stcs:vi mode="1">0</stcs:vi> <stcs:vi mode="2">1</stcs:vi> <stcs:vi mode="3">0</stcs:vi> <stcs:vi mode="4">0</stcs:vi> <stcs:l>0</stcs:l> <stcs:vibInv>s</stcs:vibInv> <stcs:J>15</stcs:J> <stcs:K>1</stcs:K> </stcs:QNs> </Case>
Quantum Numbers Descrip?ons:h`p://www.ucl.ac.uk/~ucapch0/XSAMS/cases/QNdesc.html Valida?on: ”Minor”: e.g. J > 0 and integer for dcs case ”Major”: e.g. Ka, Kc ≤ J, Ka + Kc = J or J + 1 for stcs case
Environments • Defined in terms of total pressure, temperature, and composi?on.
• IdenFfied by the envID / envRef a`ribute • e.g. <Environment envID="Eair">
<Temperature> <Value units="K">298.</Value> </Temperature> <TotalPressure> <Value units="atm">1.</Value> </TotalPressure> <Composition> <Species name="N2"> <MoleFraction> <Value units="unitless">0.79</Value> </MoleFraction> </Species> <Species name="O2"> <MoleFraction> <Value units="unitless">0.21</Value> </MoleFraction> </Species> </Composition> </Environment>
Environments • Temperature • TotalPressure or TotalNumberDensity • ComposiFon
+ Species • PartialPressure or MoleFraction or Concentration
Accuracy • Systematic (AccuracyErrorType) • Statistical or StatHigh / StatLow
(AccuracyErrorType) • (a`r) calibration = absolute, relative, normalized, uncalibrated
• (a`r) quality (nonNegativeInteger; 0 => quality guaranteed)
AccuracyErrorType (double) (a`r) confidence = 0. –> 1. (a`r) relative = true or false
Line Shapes • Within RadiativeTransition, Broadenings contains
one or more Broadening elements, labeled by the name a`ribute, a string taken from the dicFonary:
1. pressure 2. natural 3. doppler 4. instrument
• Each type of broadening takes the form: Broadening +Lineshape +LineshapeParameter
• Lineshapes and their parameters are idenFfied by aAribute
Line Shapes -‐ example <Broadening name=“pressure” envRef="EHe"> <Lineshape name="Lorentzian"> <LineshapeParameter name="gammaL"> <SourceRef>BStarkB</SourceRef> <Value units=”A">0.008</Value> <Accuracy>0.001</Accuracy> </LineshapeParameter>
</Lineshape> </PressureBroadening>
AbsorpFon Cross SecFons
• A good example of the use of DataSeries:
<CrossSection id="azulene-paxs"> <SourceRef>B_TCSD1</SourceRef> <Description> Photoabsorption cross section of azulene </Description> <X parameter="photon energy" units="eV" id="D-eV-series1"> <LinearSequence n="601" units="eV" a0="0." a1="0.05"/> </X> <Y parameter="sigma" units="Mb"> <DataList n="601" units="Mb"> -1.3588884e-05 0.00029940086 ... 84.611003 </DataList> <Error>1.e-7</Error> </Y> </CrossSection>
ParFFon FuncFons
<PartitionFunction> <SourceRef>B-exomol</SourceRef> <T parameter=”temperature" units=”K" id="D-T-series1"> <DataList n=”10" units=”K"> 10 20 50 100 200 400 600 800 1000 1500 </DataList> </T> <Q parameter=”partition function" units=”unitless"> <DataList n=”10" units=”unitless"> 1.00 1.02 1.40 2.32 4.26 8.19 12.17 16.24 20.51 32.53 </DataList> <Error>1.e-2</Error> </Q> </PartitionFunction>
e.g. 3HeH+
Species IdenFficaFon
• AddiFon of a speciesID a`ribute to AtomicIon and Molecule elements
• Referenced by speciesRef – e.g. in RadiativeTransition, CrossSection, or Environment (composiFon) elements
MolecularStructure • Inside Molecule/MolecularChemicalSpecies
element. • Use CML to give molecular structure by connecFvity (bonds)
or atom posiFons (x,y,z).
• Labels atoms for e.g. hyperfine coupling quantum numbers.
Molecular Structure-‐ example
<MoleculeStructure electronicStateRef="SX_Azulene-1"> <cml:atomArray> <cml:atom id="C1" elementType="C" x3="0." y3="0." z3="-2.52"/> <cml:atom id="C2" elementType="C" x3="0." y3="1.26" z3="-1.92"/> ... </cml:atomArray> <cml:bondArray> <cml:bond atomRefs2="C1 C2" id="C1_C2" order="A"/> <cml:bond atomRefs2="C2 C5" id="C2_C5" order="A"/> ... </cml:bondArray> </MoleculeStructure>
Molecular Structure-‐ example <MoleculeStructure> <cml:atomArray> <cml:atom elementType="H" id="H1"/> <cml:atom elementType="O" id="O1" isotopeNumber="18"/> </cml:atomArray> <cml:bondArray> <cml:bond atomRefs2="H1 O1" id="H1_O1" order="S"/> </cml:bondArray> </MoleculeStructure> ... <hunda:QNs> <hunda:ElecStateLabel>X</hunda:ElecStateLabel> <hunda:Lambda>1</hunda:Lambda> <hunda:Omega>1.5</hunda:Omega> <hunda:S>0.5</hunda:S> <hunda:v>2</hunda:v> <hunda:J>7.5</hunda:J> <hunda:F nuclearSpinRef="H1">7.0</hunda:F> <hunda:parity>+</hunda:parity> <hunda:kronigParity>f</hunda:kronigParity> </hunda:QNs>
Basis Set Expansions • MolecularState has a StateExpansion element to give the
coefficients of a linear expansion in some basis: e.g. <StateExpansion> <BasisState coeff=“0.7071”> <Case caseID="hunda” ...> <hunda:QNs> ... </hunda:QNs> <Case> </BasisState> <BasisState coeff=“0.7071”> <Case caseID="hunda” ...> <hunda:QNs> ... </hunda:QNs> <Case> </BasisState> </StateExpansion>
Normal Modes
• Part of MolecularChemicalSpecies • Gives symmetry, frequency, intensity, and displacement vectors
• Referred to through an id a`ribute for e.g. assignment of absorpFon cross secFon data
• Also: Anharmonicity tensor: <MatrixData name=“anharmonicity tensor”> inside:
StableMolecularProperties/OtherProperties
Normal Modes -‐ example <NormalModes electronicStateRef="SX_Azulene-1"> <NormalMode id="v1" pointGroupSymmetry="A1"> <HarmonicFrequency> <Value units="1/cm">162</Value> <Accuracy>1</Accuracy> </HarmonicFrequency> <Intensity> <Value units="km/mol">0</Value> </Intensity> <DisplacementVectors units="Å"> <Vector ref="C1" x3="0." y3="0.001" z3="0.0005"/> <Vector ref="C2" x3="0.01" y3="-0.001" z3="0.0005"/> <Vector ref="C3" x3="-0.005" y3="0.001" z3="0."/> <!-- etc... --> </DisplacementVectors> </NormalMode> </NormalModes>
Normal Modes -‐ example <BandAssignment name="2v1+v2"> <BandCentre> <Value units="1/cm">410</Value> <Accuracy>2</Accuracy> </BandCentre> <BandWidth> <Value units="1/cm">40</Value> <Accuracy>5</Accuracy> </BandWidth> <Modes> <DeltaV modeID="v1">2</DeltaV> <DeltaV modeID="v2">1</DeltaV> </Modes> </BandAssignment>