]> Git trees. - libqmvoc.git/commitdiff
new isotope properties
authorJörg Buchwald <buchwaldj@web.de>
Sun, 6 Nov 2005 10:52:54 +0000 (10:52 +0000)
committerJörg Buchwald <buchwaldj@web.de>
Sun, 6 Nov 2005 10:52:54 +0000 (10:52 +0000)
svn path=/trunk/KDE/kdeedu/libkdeedu/; revision=478255

libscience/chemicaldataobject.h
libscience/data/isotopes.xml
libscience/isotopeparser.cpp
libscience/isotopeparser.h

index 7bebebd217ba01ed39da5807f71a35df17232ebd..8dcb7a0d18b4d47c892e7edc754bf99e53ea428f 100644 (file)
@@ -62,7 +62,15 @@ class ChemicalDataObject
                        period/**< the period of the element */,
                        date/**< date of discovery of the element. When 0, the element has been known in ancient times. */,
                        discoverers/** The name of the discoverers, separated by semicolomns */,
-                       relativeAbundance/** The abundance, relative to 100 */
+                       relativeAbundance/** The abundance, relative to 100 */,
+                       alphapercentage/**< The percentage of alphadecay */,
+                       alphadecay/**< The decayenergy of alphadecay in MeV */,
+                       betapluspercentage/**< The percentage of betaplusdecay */,
+                       betaplusdecay/**< The decayenergy of betaplusdecay in MeV */,
+                       betaminuspercentage/**< The percentage of betaminusdecay */,
+                       betaminusdecay/**< The decayenergy of betaminusdecay in MeV */,
+                       ecpercentage/**< The percentage of ecdecay */,
+                       ecdecay/**< The decayenergy of ecminusdecay in MeV */,
                };
 
                /**
@@ -75,6 +83,8 @@ class ChemicalDataObject
                        ev/**< electron volt */,
                        nm/**< nanometer */,
                        pm/**< picometer */,
+                       y/**< years */,
+                       s/**< seconds */,
                        noUnit/**< no unit */
                };
 
@@ -205,6 +215,8 @@ class ChemicalDataObject
                 *   - bo:ev
                 *   - bo:nm
                 *   - bo:pm
+                *   - bo:y
+                *   - bo:s
                 *   - bo:noUnit
                 *
                 * @return the BlueObeliskUnit of a ChemicalDataObject 
index 9517882576f7f16f52b8998a975615cc35fa47e6..59703fd3a08de5f2bfbb8760b631e6846aba7890 100644 (file)
@@ -32,7 +32,8 @@
       </bibx:article>
     </bibx:entry>
   </bibx:file>
-
+  <!--<isotope alphapercentage="" alphadecay="" betapluspercentage="" betaplusdecay="" betaminuspercentage="100.0" betaminusdecay="0.01861" ecpercentage="" ecdecay="" spin="1/2+" magmoment="+2.978960" halflife="12.3" halflifeformat="years" weight="3.016049" neutron="2" pecentage=""  />
+  //-->
   <isotopeList id="H">
     <isotope id="H1" number="1" elementType="H">
       <scalar dictRef="bo:exactMass" errorValue="0.0001E-6">1.007825032</scalar>
       <scalar dictRef="bo:atomicNumber">1</scalar>
     </isotope>
     <isotope id="H3" number="3" elementType="H">
-      <scalar dictRef="bo:exactMass" errorValue="0.0025E-6">3.016049278</scalar>
-      <scalar dictRef="bo:atomicNumber">1</scalar>
+       <scalar  dataType="xsd:float" dictRef="bo:alphapercentage"></scalar>
+       <scalar  dataType="xsd:float" dictRef="bo:alphadecay"></scalar>
+       <scalar  dataType="xsd:float" dictRef="bo:betapluspercentage"></scalar>
+       <scalar  dataType="xsd:float" dictRef="bo:betaplusdecay"></scalar>
+       <scalar  dataType="xsd:float" dictRef="bo:betaminuspercentage">100.0</scalar>
+       <scalar  dataType="xsd:float" dictRef="bo:betaminusdecay">0.01861</scalar>
+       <scalar  dataType="xsd:float" dictRef="bo:ecpercentage"></scalar>
+       <scalar  dataType="xsd:float" dictRef="bo:ecdecay"></scalar>
+       <scalar  dataType="xsd:String" dictRef="bo:spin">1/2+</scalar>
+       <scalar  dataType="xsd:String" dictRef="bo:magmoment">+2.978960</scalar>
+       <scalar  dataType="xsd:float" dictRef="bo:halflife" unit="bo:y">12.3</scalar>
+       <scalar dictRef="bo:exactMass" errorValue="0.0025E-6">3.016049278</scalar>
+       <scalar dictRef="bo:atomicNumber">1</scalar>
     </isotope>
     <isotope id="H4" number="4" elementType="H">
       <scalar dictRef="bo:exactMass" errorValue="110E-6">4.02781</scalar>
index 5345bea85515b0bc16a561d324f6a171dbc8cae8..743be1101a2f4e133fc2ec385fb8781b4c7c416c 100644 (file)
@@ -24,6 +24,14 @@ IsotopeParser::IsotopeParser()
        : QXmlDefaultHandler(), 
        currentIsotope_(0), 
        inAtomicNumber_(false),
+       inAlphaPercentage_(false),
+       inAlphaDecay_(false),
+       inBetaplusPercentage_(false),
+       inBetaplusDecay_(false),
+       inBetaminusPercentage_(false),
+       inBetaminusDecay_(false),
+       inECPercentage_(false),
+       inECDecay_(false),
        inExactMass_(false),
        inAbundance_(false)
 {
@@ -55,6 +63,22 @@ bool IsotopeParser::startElement(const QString&, const QString &localName, const
                        
                        if (attrs.value(i) == "bo:atomicNumber")
                                inAtomicNumber_ = true;
+                       else if (attrs.value(i) == "bo:alphapercentage")
+                               inAlphaPercentage_ = true;
+                       else if (attrs.value(i) == "bo:alphadecay")
+                               inAlphaDecay_ = true;
+                       else if (attrs.value(i) == "bo:betapluspercentage")
+                               inBetaplusPercentage_ = true;
+                       else if (attrs.value(i) == "bo:betaplusdecay")
+                               inBetaplusDecay_ = true;
+                       else if (attrs.value(i) == "bo:betaminuspercentage")
+                               inBetaminusPercentage_ = true;
+                       else if (attrs.value(i) == "bo:betaminusdecay")
+                               inBetaminusDecay_ = true;
+                       else if (attrs.value(i) == "bo:ecpercentage")
+                               inECPercentage_ = true;
+                       else if (attrs.value(i) == "bo:ecdecay")
+                               inECDecay_ = true;
                        else if (attrs.value(i) == "bo:exactMass")
                                inExactMass_ = true;
                }
@@ -102,6 +126,46 @@ bool IsotopeParser::characters(const QString &ch)
                type = ChemicalDataObject::atomicNumber; 
                inAtomicNumber_ = false;
        }
+       else if (inAlphaPercentage_) {
+               value = ch.toDouble();
+               type = ChemicalDataObject::alphapercentage; 
+               inAtomicNumber_ = false;
+       }
+       else if (inAlphaDecay_) {
+               value = ch.toDouble();
+               type = ChemicalDataObject::alphadecay; 
+               inAtomicNumber_ = false;
+       }
+       else if (inBetaplusPercentage_) {
+               value = ch.toDouble();
+               type = ChemicalDataObject::betapluspercentage; 
+               inAtomicNumber_ = false;
+       }
+       else if (inBetaplusDecay_) {
+               value = ch.toDouble();
+               type = ChemicalDataObject::betaplusdecay; 
+               inAtomicNumber_ = false;
+       }
+       else if (inBetaminusPercentage_) {
+               value = ch.toDouble();
+               type = ChemicalDataObject::betaminuspercentage; 
+               inAtomicNumber_ = false;
+       }
+       else if (inBetaminusDecay_) {
+               value = ch.toDouble();
+               type = ChemicalDataObject::betaminusdecay; 
+               inAtomicNumber_ = false;
+       }
+       else if (inECPercentage_) {
+               value = ch.toDouble();
+               type = ChemicalDataObject::ecpercentage; 
+               inAtomicNumber_ = false;
+       }
+       else if (inECDecay_) {
+               value = ch.toDouble();
+               type = ChemicalDataObject::ecdecay; 
+               inAtomicNumber_ = false;
+       }
        else if ( inAbundance_ ){
                value = ch;
                type = ChemicalDataObject::relativeAbundance;
index d8301d1acf77d1a157ebf5a94e055e31a7cea7cf..e11e206320463698af507cbfa9dbf53df0ed1c71 100644 (file)
@@ -52,7 +52,14 @@ class IsotopeParser : public QXmlDefaultHandler
                bool inIsotope_;
                bool inAtomicNumber_,
                         inExactMass_;
-
+               bool inAlphaPercentage_;
+               bool inAlphaDecay_;
+               bool inBetaplusPercentage_;
+               bool inBetaplusDecay_;
+               bool inBetaminusPercentage_;
+               bool inBetaminusDecay_;
+               bool inECPercentage_;
+               bool inECDecay_;
                bool inAbundance_;
 };
 #endif // ISOTOPEPARSER_H