summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/apps/oxygen/dataTable.cpp44
-rw-r--r--noncore/apps/oxygen/kmolcalc.cpp25
-rw-r--r--noncore/apps/oxygen/kmolweights107
-rw-r--r--noncore/apps/oxygen/oxygendata1887
4 files changed, 36 insertions, 2027 deletions
diff --git a/noncore/apps/oxygen/dataTable.cpp b/noncore/apps/oxygen/dataTable.cpp
index f034c45..45c2ffd 100644
--- a/noncore/apps/oxygen/dataTable.cpp
+++ b/noncore/apps/oxygen/dataTable.cpp
@@ -1,141 +1,143 @@
1/*************************************************************************** 1/***************************************************************************
2 application: : Oxygen 2 application: : Oxygen
3 3
4 begin : September 2002 4 begin : September 2002
5 copyright : ( C ) 2002 by Carsten Niehaus 5 copyright : ( C ) 2002 by Carsten Niehaus
6 email : cniehaus@handhelds.org 6 email : cniehaus@handhelds.org
7 **************************************************************************/ 7 **************************************************************************/
8 8
9/*************************************************************************** 9/***************************************************************************
10 * * 10 * *
11 * This program is free software; you can redistribute it and/or modify * 11 * This program is free software; you can redistribute it and/or modify *
12 * it under the terms of the GNU General Public License as published by * 12 * it under the terms of the GNU General Public License as published by *
13 * the Free Software Foundation; either version 2 of the License, or * 13 * the Free Software Foundation; either version 2 of the License, or *
14 * ( at your option ) any later version. * 14 * ( at your option ) any later version. *
15 * * 15 * *
16 **************************************************************************/ 16 **************************************************************************/
17 17
18#include <qpe/config.h> 18#include <qpe/config.h>
19 19
20#include "dataTable.h" 20#include "dataTable.h"
21#include <qwidget.h> 21#include <qwidget.h>
22#include <qhbox.h> 22#include <qhbox.h>
23#include <qlabel.h> 23#include <qlabel.h>
24#include <qfont.h> 24#include <qfont.h>
25#include <qlayout.h> 25#include <qlayout.h>
26#include <qpe/qpeapplication.h>
26 27
27OxydataWidget::OxydataWidget(QWidget *parent) : QWidget(parent) 28OxydataWidget::OxydataWidget(QWidget *parent) : QWidget(parent)
28{ 29{
29 QGridLayout *qgrid = new QGridLayout( this, 2,1 ); 30 QGridLayout *qgrid = new QGridLayout( this, 2,1 );
30 31
31 QHBox *hbox = new QHBox( this ); 32 QHBox *hbox = new QHBox( this );
32 left = new QLabel( hbox ); 33 left = new QLabel( hbox );
33 middle = new QLabel( hbox ); 34 middle = new QLabel( hbox );
34 right = new QLabel( hbox ); 35 right = new QLabel( hbox );
35 36
36 right->setAlignment( AlignRight ); 37 right->setAlignment( AlignRight );
37 middle->setAlignment( AlignHCenter ); 38 middle->setAlignment( AlignHCenter );
38 39
39 QFont bf; 40 QFont bf;
40 bf.setBold( true ); 41 bf.setBold( true );
41 bf.setPointSize( bf.pointSize()+2 ); 42 bf.setPointSize( bf.pointSize()+2 );
42 middle->setFont( bf ); 43 middle->setFont( bf );
43 44
44 DataTable = new OxydataTable( 9,2, this ); 45 DataTable = new OxydataTable( 9,2, this );
45 DataTable->setColumnWidth ( 1 , 118 ); 46 DataTable->setColumnWidth ( 1 , 118 );
46 DataTable->setColumnWidth ( 0 , 118 ); 47 DataTable->setColumnWidth ( 0 , 118 );
47 setTable(); 48 setTable();
48 49
49 qgrid->addWidget( hbox,0,0 ); 50 qgrid->addWidget( hbox,0,0 );
50 qgrid->addWidget( DataTable,1,0 ); 51 qgrid->addWidget( DataTable,1,0 );
51} 52}
52 53
53void OxydataWidget::setElement( int el ) 54void OxydataWidget::setElement( int el )
54{ 55{
55 Config configobj( "oxygendata" ); 56 Config configobj( QPEApplication::qpeDir() +"share/oxygen/oxygendata", Config::File );
57
56 configobj.setGroup( QString::number( el+1 )); 58 configobj.setGroup( QString::number( el+1 ));
57 59
58 left->setText( configobj.readEntry( "Symbol" ) ); 60 left->setText( configobj.readEntry( "Symbol" ) );
59 middle->setText( configobj.readEntry( "Name" ) ); 61 middle->setText( configobj.readEntry( "Name" ) );
60 right->setText( QString::number( el+1 ) ); 62 right->setText( QString::number( el+1 ) );
61 63
62 64
63 DataTable->setText( 0,1,configobj.readEntry( "Weight" ) ); 65 DataTable->setText( 0,1,configobj.readEntry( "Weight" ) );
64 DataTable->setText( 1,1,configobj.readEntry( "Block" ) ); 66 DataTable->setText( 1,1,configobj.readEntry( "Block" ) );
65 DataTable->setText( 2,1,configobj.readEntry( "Group" ) ); 67 DataTable->setText( 2,1,configobj.readEntry( "Group" ) );
66 DataTable->setText( 3,1,configobj.readEntry( "EN" ) ); 68 DataTable->setText( 3,1,configobj.readEntry( "EN" ) );
67 DataTable->setText( 4,1,configobj.readEntry( "AR" ) ) ; 69 DataTable->setText( 4,1,configobj.readEntry( "AR" ) ) ;
68 DataTable->setText( 5,1,configobj.readEntry( "IE" ) ); 70 DataTable->setText( 5,1,configobj.readEntry( "IE" ) );
69 DataTable->setText( 6,1,configobj.readEntry( "Density" ) ); 71 DataTable->setText( 6,1,configobj.readEntry( "Density" ) );
70 DataTable->setText( 7,1,configobj.readEntry( "BP" ) ); 72 DataTable->setText( 7,1,configobj.readEntry( "BP" ) );
71 DataTable->setText( 8,1,configobj.readEntry( "MP" ) ); 73 DataTable->setText( 8,1,configobj.readEntry( "MP" ) );
72 74
73} 75}
74 76
75void OxydataWidget::setTable() const 77void OxydataWidget::setTable() const
76{ 78{
77 DataTable->setText( 0,0, tr( "Weight:" ) ); 79 DataTable->setText( 0,0, tr( "Weight:" ) );
78 DataTable->setText( 1,0, tr( "Block" )) ; 80 DataTable->setText( 1,0, tr( "Block" )) ;
79 DataTable->setText( 2,0, tr( "Group" )) ; 81 DataTable->setText( 2,0, tr( "Group" )) ;
80 DataTable->setText( 3,0, tr( "Electronegativity" )) ; 82 DataTable->setText( 3,0, tr( "Electronegativity" )) ;
81 DataTable->setText( 4,0, tr( "Atomic radius" )) ; 83 DataTable->setText( 4,0, tr( "Atomic radius" )) ;
82 DataTable->setText( 5,0, tr( "Ionizationenergie" )) ; 84 DataTable->setText( 5,0, tr( "Ionizationenergie" )) ;
83 DataTable->setText( 6,0, tr( "Density" )) ; 85 DataTable->setText( 6,0, tr( "Density" )) ;
84 DataTable->setText( 7,0, tr( "Boilingpoint" ) ); 86 DataTable->setText( 7,0, tr( "Boilingpoint" ) );
85 DataTable->setText( 8,0, tr( "Meltingpoint" ) ); 87 DataTable->setText( 8,0, tr( "Meltingpoint" ) );
86 88
87} 89}
88 90
89OxydataTable::OxydataTable(int numRows, int numCols, QWidget *parent, 91OxydataTable::OxydataTable(int numRows, int numCols, QWidget *parent,
90 const char *name) : QTable(numRows, numCols,parent, name) 92 const char *name) : QTable(numRows, numCols,parent, name)
91{ 93{
92 94
93 for (int zeile = 0; zeile < numRows; zeile++) 95 for (int zeile = 0; zeile < numRows; zeile++)
94 for ( int spalte = 0; spalte < numCols; spalte++ ) 96 for ( int spalte = 0; spalte < numCols; spalte++ )
95 { 97 {
96 OxydataQTI *testus = new OxydataQTI (this, OxydataQTI::Never, "hm" ); 98 OxydataQTI *testus = new OxydataQTI (this, OxydataQTI::Never, "hm" );
97 setItem(zeile, spalte, (QTableItem*)testus); 99 setItem(zeile, spalte, (QTableItem*)testus);
98 } 100 }
99 101
100 102
101 this->setShowGrid( false ); 103 this->setShowGrid( false );
102 this->setHScrollBarMode(QScrollView::AlwaysOff); 104 this->setHScrollBarMode(QScrollView::AlwaysOff);
103 this->horizontalHeader()->hide(); 105 this->horizontalHeader()->hide();
104 this->verticalHeader()->hide(); 106 this->verticalHeader()->hide();
105 this->setTopMargin( 0 ); 107 this->setTopMargin( 0 );
106 this->setLeftMargin( 0 ); 108 this->setLeftMargin( 0 );
107} 109}
108 110
109void OxydataTable::paintCell( QPainter *p, int row, int col, const QRect &cr, bool selected) 111void OxydataTable::paintCell( QPainter *p, int row, int col, const QRect &cr, bool selected)
110{ 112{
111 if ( cr.width() == 0 || cr.height() == 0 ) 113 if ( cr.width() == 0 || cr.height() == 0 )
112 return; 114 return;
113 selected = FALSE; 115 selected = FALSE;
114 116
115 QTableItem *itm = item( row, col ); 117 QTableItem *itm = item( row, col );
116 QColorGroup colgrp = colorGroup(); 118 QColorGroup colgrp = colorGroup();
117 if ( itm ) 119 if ( itm )
118 { 120 {
119 if ( row%2 ) 121 if ( row%2 )
120 colgrp.setColor( QColorGroup::Base, QColor( 180,200,210 ) ); 122 colgrp.setColor( QColorGroup::Base, QColor( 180,200,210 ) );
121 else 123 else
122 colgrp.setColor( QColorGroup::Base, QColor( 230,235,235 ) ); 124 colgrp.setColor( QColorGroup::Base, QColor( 230,235,235 ) );
123 p->save(); 125 p->save();
124 itm->paint( p, colgrp, cr, selected ); 126 itm->paint( p, colgrp, cr, selected );
125 p->restore(); 127 p->restore();
126 } 128 }
127} 129}
128 130
129OxydataQTI::OxydataQTI(QTable * table, EditType et, const QString & text ) 131OxydataQTI::OxydataQTI(QTable * table, EditType et, const QString & text )
130 : QTableItem ( table, et, text ) 132 : QTableItem ( table, et, text )
131{ 133{
132} 134}
133 135
134int OxydataQTI::alignment() const 136int OxydataQTI::alignment() const
135{ 137{
136 if ( col()%2 ) 138 if ( col()%2 )
137 { 139 {
138 return AlignRight | AlignVCenter; 140 return AlignRight | AlignVCenter;
139 }else return AlignLeft | AlignVCenter; 141 }else return AlignLeft | AlignVCenter;
140}; 142};
141 143
diff --git a/noncore/apps/oxygen/kmolcalc.cpp b/noncore/apps/oxygen/kmolcalc.cpp
index 0ba52da..33666b1 100644
--- a/noncore/apps/oxygen/kmolcalc.cpp
+++ b/noncore/apps/oxygen/kmolcalc.cpp
@@ -1,199 +1,200 @@
1/* 1/*
2 * kmolcalc.cpp 2 * kmolcalc.cpp
3 * 3 *
4 * Copyright (C) 2000,2001 Tomislav Gountchev <tomi@idiom.com> 4 * Copyright (C) 2000,2001 Tomislav Gountchev <tomi@idiom.com>
5 * Copyright (C) 2002 Carsten Niehaus <cniehaus@handhelds.org> 5 * Copyright (C) 2002 Carsten Niehaus <cniehaus@handhelds.org>
6 */ 6 */
7 7
8/** 8/**
9 * KMOLCALC is the calculation engine. It knows about a hashtable of user defined atomic 9 * KMOLCALC is the calculation engine. It knows about a hashtable of user defined atomic
10 * weights and group definitions ELSTABLE, and the currently processed formula, stored 10 * weights and group definitions ELSTABLE, and the currently processed formula, stored
11 * as a list of elements and their coefficients, ELEMENTS. 11 * as a list of elements and their coefficients, ELEMENTS.
12 */ 12 */
13 13
14#include "kmolcalc.h" 14#include "kmolcalc.h"
15#include <qdict.h> 15#include <qdict.h>
16#include <qdir.h> 16#include <qdir.h>
17#include <qfile.h> 17#include <qfile.h>
18#include <qpe/qpeapplication.h>
18#include <iostream.h> 19#include <iostream.h>
19 20
20 21
21/** 22/**
22 * Construct a new calculator object. 23 * Construct a new calculator object.
23 */ 24 */
24KMolCalc::KMolCalc() { 25KMolCalc::KMolCalc() {
25 elements = new ElementList; 26 elements = new ElementList;
26 elstable = NULL; 27 elstable = NULL;
27 readElstable(); 28 readElstable();
28} 29}
29 30
30KMolCalc::~KMolCalc() { 31KMolCalc::~KMolCalc() {
31 delete elements; 32 delete elements;
32} 33}
33 34
34void KMolCalc::readElstable() { 35void KMolCalc::readElstable() {
35 weight = -1; // not calculated yet 36 weight = -1; // not calculated yet
36 if (elstable) delete elstable; 37 if (elstable) delete elstable;
37 elstable = new QDict<SubUnit> (197, TRUE); 38 elstable = new QDict<SubUnit> (197, TRUE);
38 elstable->setAutoDelete(TRUE); 39 elstable->setAutoDelete(TRUE);
39 mwfile = "/home/opie/opie/noncore/apps/oxygen/kmolweights"; 40 mwfile = QPEApplication::qpeDir() +"share/oxygen/kmolweights";
40 QFile f(mwfile); 41 QFile f(mwfile);
41 if (f.exists()) readMwfile(f); 42 if (f.exists()) readMwfile(f);
42} 43}
43 44
44 45
45/** 46/**
46 * Parse a string S and construct the ElementList this->ELEMENTS, representing the 47 * Parse a string S and construct the ElementList this->ELEMENTS, representing the
47 * composition of S. Returns 0 if successful, or an error code (currently -1) if 48 * composition of S. Returns 0 if successful, or an error code (currently -1) if
48 * parsing failed. 49 * parsing failed.
49 * The elements is S must be valid element or group symbols, as stored in this->ELSTABLE. 50 * The elements is S must be valid element or group symbols, as stored in this->ELSTABLE.
50 * See help files for correct formula syntax. 51 * See help files for correct formula syntax.
51 */ 52 */
52QString KMolCalc::readFormula(const QString& s) { 53QString KMolCalc::readFormula(const QString& s) {
53 weight = -1; 54 weight = -1;
54 if (elements) delete elements; 55 if (elements) delete elements;
55 elements = new ElementList; 56 elements = new ElementList;
56 return KMolCalc::readGroup(s, elements); 57 return KMolCalc::readGroup(s, elements);
57} 58}
58 59
59// read a formula group recursively. Called by readFormula. 60// read a formula group recursively. Called by readFormula.
60QString KMolCalc::readGroup(const QString& s, ElementList* els) { 61QString KMolCalc::readGroup(const QString& s, ElementList* els) {
61 if (s.isEmpty()) return QString ("Enter a formula."); //ERROR 62 if (s.isEmpty()) return QString ("Enter a formula."); //ERROR
62 int sl = s.length(); 63 int sl = s.length();
63 int i = 0; 64 int i = 0;
64 QString errors ("OK"); 65 QString errors ("OK");
65 bool ok = TRUE; 66 bool ok = TRUE;
66 while (i < sl && ((s[i] <= '9' && s[i] >= '0') || s[i] == '.')) i++; 67 while (i < sl && ((s[i] <= '9' && s[i] >= '0') || s[i] == '.')) i++;
67 double prefix = (i == 0 ? 1 : s.left(i).toDouble(&ok)); 68 double prefix = (i == 0 ? 1 : s.left(i).toDouble(&ok));
68 if (! ok || i == sl || prefix == 0) return QString ("Bad formula."); // ERROR 69 if (! ok || i == sl || prefix == 0) return QString ("Bad formula."); // ERROR
69 ElementList* elstemp = new ElementList; 70 ElementList* elstemp = new ElementList;
70 while (i < sl) { 71 while (i < sl) {
71 int j = i; 72 int j = i;
72 if (s[i] == '(') { 73 if (s[i] == '(') {
73 ElementList* inner = new ElementList; 74 ElementList* inner = new ElementList;
74 int level = 1; // count levels of nested ( ). 75 int level = 1; // count levels of nested ( ).
75 while (1) { 76 while (1) {
76 if (i++ == sl) { 77 if (i++ == sl) {
77 delete inner; 78 delete inner;
78 delete elstemp; 79 delete elstemp;
79 return QString ("Bad formula."); //ERROR 80 return QString ("Bad formula."); //ERROR
80 } 81 }
81 if (s[i] == '(') level++; 82 if (s[i] == '(') level++;
82 if (s[i] == ')') level--; 83 if (s[i] == ')') level--;
83 if (level == 0) break; 84 if (level == 0) break;
84 } 85 }
85 errors = KMolCalc::readGroup(s.mid(j+1, i-j-1), inner); 86 errors = KMolCalc::readGroup(s.mid(j+1, i-j-1), inner);
86 j = ++i; 87 j = ++i;
87 while (i < sl && ((s[i] <= '9' && s[i] >= '0') || s[i] == '.')) i++; 88 while (i < sl && ((s[i] <= '9' && s[i] >= '0') || s[i] == '.')) i++;
88 double suffix = (i == j ? 1 : s.mid(j, i-j).toDouble(&ok)); 89 double suffix = (i == j ? 1 : s.mid(j, i-j).toDouble(&ok));
89 if (! ok || suffix == 0) { 90 if (! ok || suffix == 0) {
90 delete inner; 91 delete inner;
91 delete elstemp; 92 delete elstemp;
92 return QString ("Bad formula."); // ERROR 93 return QString ("Bad formula."); // ERROR
93 } 94 }
94 inner->addTo(*elstemp, suffix); 95 inner->addTo(*elstemp, suffix);
95 delete inner; 96 delete inner;
96 inner = NULL; 97 inner = NULL;
97 } else if ((s[i] >= 'A' && s[i] <= 'Z') || (s[i] >= 'a' && s[i] <= 'z')) { 98 } else if ((s[i] >= 'A' && s[i] <= 'Z') || (s[i] >= 'a' && s[i] <= 'z')) {
98 while (++i < sl && ((s[i] >= 'a' && s[i] <= 'z') || s[i] == '*' || 99 while (++i < sl && ((s[i] >= 'a' && s[i] <= 'z') || s[i] == '*' ||
99 s[i] == '\'')); 100 s[i] == '\''));
100 QString elname = s.mid(j, i-j); 101 QString elname = s.mid(j, i-j);
101 j = i; 102 j = i;
102 while (i < sl && ((s[i] <= '9' && s[i] >= '0') || s[i] == '.')) i++; 103 while (i < sl && ((s[i] <= '9' && s[i] >= '0') || s[i] == '.')) i++;
103 double suffix = (i == j ? 1 : s.mid(j, i-j).toDouble(&ok)); 104 double suffix = (i == j ? 1 : s.mid(j, i-j).toDouble(&ok));
104 if (! ok || suffix == 0) { 105 if (! ok || suffix == 0) {
105 delete elstemp; 106 delete elstemp;
106 return QString ("Bad formula."); // ERROR 107 return QString ("Bad formula."); // ERROR
107 } 108 }
108 SubUnit* group = elstable->find(elname); 109 SubUnit* group = elstable->find(elname);
109 if (group == 0) { 110 if (group == 0) {
110 delete elstemp; 111 delete elstemp;
111 return QString ("Undefined symbol: ") + elname; //ERROR 112 return QString ("Undefined symbol: ") + elname; //ERROR
112 } 113 }
113 group->addTo(*elstemp, suffix); 114 group->addTo(*elstemp, suffix);
114 } else if (s[i] == '+') { 115 } else if (s[i] == '+') {
115 if (elstemp->isEmpty()) { 116 if (elstemp->isEmpty()) {
116 delete elstemp; 117 delete elstemp;
117 return QString ("Bad formula."); //ERROR 118 return QString ("Bad formula."); //ERROR
118 } 119 }
119 elstemp->addTo(*els, prefix); 120 elstemp->addTo(*els, prefix);
120 delete elstemp; 121 delete elstemp;
121 errors = KMolCalc::readGroup(s.mid(i+1, sl-i-1), els); 122 errors = KMolCalc::readGroup(s.mid(i+1, sl-i-1), els);
122 return errors; 123 return errors;
123 } else { 124 } else {
124 delete elstemp; 125 delete elstemp;
125 return QString ("Bad formula."); //ERROR 126 return QString ("Bad formula."); //ERROR
126 } 127 }
127 } 128 }
128 elstemp->addTo(*els, prefix); 129 elstemp->addTo(*els, prefix);
129 delete elstemp; 130 delete elstemp;
130 return errors; 131 return errors;
131} 132}
132 133
133/** 134/**
134 * Calculate and return the molecular weight of the current chemical formula. 135 * Calculate and return the molecular weight of the current chemical formula.
135 */ 136 */
136double KMolCalc::getWeight() { 137double KMolCalc::getWeight() {
137 if (weight == -1) weight = elements->getWeight(elstable); 138 if (weight == -1) weight = elements->getWeight(elstable);
138 return weight; 139 return weight;
139} 140}
140 141
141/** 142/**
142 * Return the elemental composition of the current formula, as a string of tab-separated 143 * Return the elemental composition of the current formula, as a string of tab-separated
143 * element - percentage pairs, separated by newlines. 144 * element - percentage pairs, separated by newlines.
144 */ 145 */
145QString KMolCalc::getEA() { 146QString KMolCalc::getEA() {
146 if (weight == -1) weight = elements->getWeight(elstable); 147 if (weight == -1) weight = elements->getWeight(elstable);
147 if (weight == -1) return QString("ERROR: Couldn't get Mw..."); // ERROR 148 if (weight == -1) return QString("ERROR: Couldn't get Mw..."); // ERROR
148 return elements->getEA(elstable, weight); 149 return elements->getEA(elstable, weight);
149} 150}
150 151
151/** 152/**
152 * Return the empirical formula of the current compound as a QString. 153 * Return the empirical formula of the current compound as a QString.
153 */ 154 */
154QString KMolCalc::getEmpFormula() { 155QString KMolCalc::getEmpFormula() {
155 return elements->getEmpFormula(); 156 return elements->getEmpFormula();
156} 157}
157 158
158// Read the element definition file. 159// Read the element definition file.
159void KMolCalc::readMwfile(QFile& f) { 160void KMolCalc::readMwfile(QFile& f) {
160 if (! f.open(IO_ReadOnly)) return; //ERROR 161 if (! f.open(IO_ReadOnly)) return; //ERROR
161 QTextStream fs (&f); 162 QTextStream fs (&f);
162 QString line; 163 QString line;
163 while (! fs.eof()) { 164 while (! fs.eof()) {
164 line = fs.readLine(); 165 line = fs.readLine();
165 SubUnit* s = SubUnit::makeSubUnit(line); 166 SubUnit* s = SubUnit::makeSubUnit(line);
166 elstable->replace(s->getName(), s); 167 elstable->replace(s->getName(), s);
167 } 168 }
168 f.close(); 169 f.close();
169} 170}
170 171
171/** 172/**
172 * Remove a group or element definition from ELSTABLE. 173 * Remove a group or element definition from ELSTABLE.
173 */ 174 */
174void KMolCalc::undefineGroup (const QString& name) { 175void KMolCalc::undefineGroup (const QString& name) {
175 elstable->remove (name); 176 elstable->remove (name);
176} 177}
177 178
178/** 179/**
179 * Add a new element name - atomic weight record to the ELSTABLE hashtable. Assumes 180 * Add a new element name - atomic weight record to the ELSTABLE hashtable. Assumes
180 * NAME has valid syntax. 181 * NAME has valid syntax.
181 182
182 */ 183 */
183void KMolCalc::defineElement (const QString& name, double weight) { 184void KMolCalc::defineElement (const QString& name, double weight) {
184 Element* el = new Element(name, weight); 185 Element* el = new Element(name, weight);
185 elstable->replace(name, el); 186 elstable->replace(name, el);
186} 187}
187 188
188/** 189/**
189 * Add a new group definition to the ELSTABLE. Returns 0 if OK, -1 if parsing FORMULA 190 * Add a new group definition to the ELSTABLE. Returns 0 if OK, -1 if parsing FORMULA
190 * fails. Assumes the syntax of grpname is correct. 191 * fails. Assumes the syntax of grpname is correct.
191 */ 192 */
192QString KMolCalc::defineGroup (const QString& grpname, const QString& formula) { 193QString KMolCalc::defineGroup (const QString& grpname, const QString& formula) {
193 ElementList* els = new ElementList(grpname); 194 ElementList* els = new ElementList(grpname);
194 QString error = readGroup(formula, els); 195 QString error = readGroup(formula, els);
195 if (error != "OK") return error; 196 if (error != "OK") return error;
196 if (els->contains(grpname)) return QString("Can't define a group recursively!\n"); 197 if (els->contains(grpname)) return QString("Can't define a group recursively!\n");
197 elstable->replace(grpname, els); 198 elstable->replace(grpname, els);
198 return QString("OK"); 199 return QString("OK");
199} 200}
diff --git a/noncore/apps/oxygen/kmolweights b/noncore/apps/oxygen/kmolweights
deleted file mode 100644
index 82cbca0..0000000
--- a/noncore/apps/oxygen/kmolweights
+++ b/dev/null
@@ -1,107 +0,0 @@
1H 1.00794
2He 4.002602
3Li 6.941
4Be 9.012182
5B 10.811
6C 12.011
7N 14.00674
8O 15.9994
9F 18.9984032
10Ne 20.1797
11Na 22.989768
12Mg 24.3050
13Al 26.981539
14Si 28.0855
15P 30.973762
16S 32.066
17Cl 35.4527
18Ar 39.948
19K 39.0983
20Ca 40.078
21Sc 44.955910
22Ti 47.88
23V 50.9415
24Cr 51.9961
25Mn 54.93805
26Fe 55.847
27Co 58.93320
28Ni 58.6934
29Cu 63.546
30Zn 65.39
31Ga 69.723
32Ge 72.61
33As 74.92159
34Se 78.96
35Br 79.904
36Kr 83.80
37Rb 85.4678
38Sr 87.62
39Y 88.90585
40Zr 91.224
41Nb 92.90638
42Mo 95.94
43Tc 98.9063
44Ru 101.07
45Rh 102.90550
46Pd 106.42
47Ag 107.8682
48Cd 112.411
49In 114.82
50Sn 118.710
51Sb 121.757
52Te 127.60
53I 126.90447
54Xe 131.29
55Cs 132.90543
56Ba 137.327
57La 138.9055
58Ce 140.115
59Pr 140.90765
60Nd 144.24
61Pm 146.9151
62Sm 150.36
63Eu 151.965
64Gd 157.25
65Tb 158.92534
66Dy 162.50
67Ho 164.93032
68Er 167.26
69Tm 168.93421
70Yb 173.04
71Lu 174.967
72Hf 178.49
73Ta 180.9479
74W 183.85
75Re 186.207
76Os 190.2
77Ir 192.22
78Pt 195.08
79Au 196.96654
80Hg 200.59
81Tl 204.3833
82Pb 207.2
83Bi 208.98037
84Po 208.9824
85At 209.9871
86Rn 222.0176
87Fr 223.0197
88Ra 226.0254
89Ac 227.0278
90Th 232.0381
91Pa 231.03588
92U 238.0289
93Np 237.0482
94Pu 244.0642
95Am 243.0614
96Cm 247.0703
97Bk 247.0703
98Cf 251.0796
99Es 252.0829
100Fm 257.0951
101Md 258.0986
102No 259.1009
103Lr 260.1053
104Unq 261.1087
105Unp 262.1138
106Unh 263.1182
107Uns 262.1229
diff --git a/noncore/apps/oxygen/oxygendata b/noncore/apps/oxygen/oxygendata
deleted file mode 100644
index 9fd4430..0000000
--- a/noncore/apps/oxygen/oxygendata
+++ b/dev/null
@@ -1,1887 +0,0 @@
1[1]
2Name=Hydrogen
3Symbol=H
4Weight=1.00794
5Block=s
6acidbeh=1
7az=2
8date=1766
9Group=1
10EN=2.10
11MP=13.81
12BP=20.28
13Density=0.084
14IE=13.598
15AR=37.3
16
17[2]
18Name=Helium
19Symbol=He
20Weight=4.002602
21Block=p
22acidbeh=1
23az=2
24date=1895
25Group=8
26EN=
27MP=0.95
28BP=4.216
29Density=0.17
30IE=24.587
31AR=128
32
33[3]
34Name=Lithium
35Symbol=Li
36Weight=6.941
37Block=s
38acidbeh=0
39az=0
40date=1817
41Group=1
42EN=0.98
43MP=453.7
44BP=1615
45Density=0.53
46IE=5.392
47AR=152
48
49[4]
50Name=Beryllium
51Symbol=Be
52Weight=9.012182
53Block=s
54acidbeh=2
55az=0
56date=1798
57Group=2
58EN=1.57
59MP=1560
60BP=3243
61Density=1.85
62IE=9.322
63AR=113.3
64
65[5]
66Name=Boron
67Symbol=B
68Weight=10.811
69Block=p
70acidbeh=3
71az=0
72date=1808
73Group=3
74EN=2.04
75MP=2365
76BP=4275
77Density=2.46
78IE=8.298
79AR=83
80
81[6]
82Name=Carbon
83Symbol=C
84Weight=12.0107
85Block=p
86acidbeh=3
87az=0
88date=0
89Group=4
90EN=2.55
91MP=3825
92BP=5100
93Density=3.51
94IE=11.260
95AR=77.2
96
97[7]
98Name=Nitrogen
99Symbol=N
100Weight=14.0067
101Block=p
102acidbeh=3
103az=2
104date=1772
105Group=5
106EN=3.04
107MP=63.15
108BP=77.344
109Density=1.17
110IE=14.534
111AR=71
112
113[8]
114Name=Oxygen
115Symbol=O
116Weight=15.9994
117Block=p
118acidbeh=3
119az=2
120date=1774
121Group=6
122EN=3.44
123MP=54.8
124BP=90.188
125Density=1.33
126IE=13.618
127AR=60.4
128
129[9]
130Name=Fluorine
131Symbol=F
132Weight=18.9984032
133Block=p
134acidbeh=3
135az=2
136date=1886
137Group=7
138EN=3.98
139MP=53.55
140BP=85.0
141Density=1.58
142IE=17.422
143AR=70.9
144
145[10]
146Name=Neon
147Symbol=Ne
148Weight=20.1797
149Block=p
150acidbeh=1
151az=2
152date=1898
153Group=8
154EN=
155MP=24.55
156BP=27.10
157Density=0.84
158IE=21.564
159AR=150
160
161[11]
162Name=Sodium
163Symbol=Na
164Weight=22.989770
165Block=s
166acidbeh=0
167az=0
168date=1807
169Group=1
170EN=0.93
171MP=371.0
172BP=1156
173Density=0.97
174IE=5.139
175AR=153.7
176
177[12]
178Name=Magnesium
179Symbol=Mg
180Weight=24.3050
181Block=s
182acidbeh=0
183az=0
184date=1808
185Group=2
186EN=1.31
187MP=922
188BP=1380
189Density=1.74
190IE=7.646
191AR=160
192
193[13]
194Name=Aluminum
195Symbol=Al
196Weight=26.981538
197Block=p
198acidbeh=2
199az=0
200date=1825
201Group=3
202EN=1.61
203MP=933.5
204BP=2740
205Density=2.70
206IE=5.986
207AR=143.1
208
209[14]
210Name=Silicon
211Symbol=Si
212Weight=28.0855
213Block=p
214acidbeh=3
215az=0
216date=1823
217Group=4
218EN=1.91
219MP=1683
220BP=2630
221Density=2.33
222IE=8.151
223AR=117
224
225[15]
226Name=Phosphorus
227Symbol=P
228Weight=30.973761
229Block=p
230acidbeh=3
231az=0
232date=1669
233Group=5
234EN=2.19
235MP=317.3
236BP=553
237Density=1.82
238IE=10.486
239AR=93
240
241[16]
242Name=Sulfur
243Symbol=S
244Weight=32.065
245Block=p
246acidbeh=3
247az=0
248date=0
249Group=6
250EN=2.58
251MP=392.2
252BP=717.82
253Density=2.06
254IE=10.360
255AR=104
256
257[17]
258Name=Chlorine
259Symbol=Cl
260Weight=35.453
261Block=p
262acidbeh=3
263az=2
264date=1774
265Group=7
266EN=3.16
267MP=172.17
268BP=239.18
269Density=2.95
270IE=12.967
271AR=99.4
272
273[18]
274Name=Argon
275Symbol=Ar
276Weight=39.948
277Block=p
278acidbeh=1
279az=2
280date=1894
281Group=8
282EN=
283MP=83.95
284BP=87.45
285Density=1.66
286IE=15.759
287AR=174
288
289[19]
290Name=Potassium
291Symbol=K
292Weight=39.0983
293Block=s
294acidbeh=0
295az=0
296date=1807
297Group=1
298EN=0.82
299MP=336.8
300BP=1033
301Density=0.86
302IE=4.341
303AR=227
304
305[20]
306Name=Calcium
307Symbol=Ca
308Weight=40.078
309Block=s
310acidbeh=0
311az=0
312date=1808
313Group=2
314EN=1.00
315MP=1112
316BP=1757
317Density=1.54
318IE=6.113
319AR=197.3
320
321[21]
322Name=Scandium
323Symbol=Sc
324Weight=44.955910
325Block=d
326acidbeh=0
327az=0
328date=1879
329Group=3
330EN=1.36
331MP=1814
332BP=3109
333Density=2.99
334IE=6.54
335AR=160.6
336
337[22]
338Name=Titanium
339Symbol=Ti
340Weight=47.867
341Block=d
342acidbeh=2
343az=0
344date=1791
345Group=4
346EN=1.54
347MP=1935
348BP=3560
349Density=4.51
350IE=6.82
351AR=144.8
352
353[23]
354Name=Vanadium
355Symbol=V
356Weight=50.9415
357Block=d
358acidbeh=2
359az=0
360date=1830
361Group=5
362EN=1.63
363MP=2163
364BP=3650
365Density=6.09
366IE=6.74
367AR=132.1
368
369[24]
370Name=Chromium
371Symbol=Cr
372Weight=51.9961
373Block=d
374acidbeh=2
375az=0
376date=1797
377Group=6
378EN=1.66
379MP=2130
380BP=2945
381Density=7.14
382IE=6.766
383AR=124.9
384
385[25]
386Name=Manganese
387Symbol=Mn
388Weight=54.938049
389Block=d
390acidbeh=2
391az=0
392date=1774
393Group=7
394EN=1.55
395MP=1518
396BP=2235
397Density=7.44
398IE=7.435
399AR=124
400
401[26]
402Name=Iron
403Symbol=Fe
404Weight=55.845
405Block=d
406acidbeh=2
407az=0
408date=0
409Group=8
410EN=1.83
411MP=1518
412BP=3023
413Density=7.87
414IE=7.870
415AR=124.1
416
417[27]
418Name=Cobalt
419Symbol=Co
420Weight=58.933200
421Block=d
422acidbeh=2
423az=0
424date=1737
425Group=8
426EN=1.88
427MP=1768
428BP=3143
429Density=8.89
430IE=7.86
431AR=125.3
432
433[28]
434Name=Nickel
435Symbol=Ni
436Weight=58.6934
437Block=d
438acidbeh=0
439az=0
440date=1751
441Group=8
442EN=1.91
443MP=1726
444BP=3005
445Density=8.91
446IE=7.635
447AR=124.6
448
449[29]
450Name=Copper
451Symbol=Cu
452Weight=63.546
453Block=d
454acidbeh=0
455az=0
456date=0
457Group=1
458EN=1.90
459MP=1356.6
460BP=2840
461Density=8.92
462IE=7.726
463AR=127.8
464
465[30]
466Name=Zinc
467Symbol=Zn
468Weight=65.39
469Block=d
470acidbeh=2
471az=0
472date=1746
473Group=2
474EN=1.65
475MP=692.73
476BP=1180
477Density=7.14
478IE=9.394
479AR=133.2
480
481[31]
482Name=Gallium
483Symbol=Ga
484Weight=69.723
485Block=p
486acidbeh=2
487az=0
488date=1875
489Group=3
490EN=1.81
491MP=302.92
492BP=2478
493Density=5.91
494IE=5.999
495AR=122.1
496
497[32]
498Name=Germanium
499Symbol=Ge
500Weight=72.64
501Block=p
502acidbeh=2
503az=0
504date=1886
505Group=4
506EN=2.01
507MP=1211.5
508BP=3107
509Density=5.32
510IE=7.899
511AR=122.5
512
513[33]
514Name=Arsenic
515Symbol=As
516Weight=74.92160
517Block=p
518acidbeh=2
519az=0
520date=0
521Group=5
522EN=2.18
523MP=1090
524BP=876
525Density=5.72
526IE=9.81
527AR=125
528
529[34]
530Name=Selenium
531Symbol=Se
532Weight=78.96
533Block=p
534acidbeh=3
535az=0
536date=1817
537Group=6
538EN=2.55
539MP=494
540BP=958
541Density=4.82
542IE=9.752
543AR=116
544
545[35]
546Name=Bromine
547Symbol=Br
548Weight=79.904
549Block=p
550acidbeh=3
551az=1
552date=1826
553Group=7
554EN=2.96
555MP=265.95
556BP=331.85
557Density=3.14
558IE=11.814
559AR=114.5
560
561[36]
562Name=Krypton
563Symbol=Kr
564Weight=83.80
565Block=p
566acidbeh=1
567az=2
568date=1898
569Group=8
570EN=
571MP=116
572BP=120.85
573Density=4.48
574IE=13.999
575AR=190
576
577[37]
578Name=Rubidium
579Symbol=Rb
580Weight=85.4678
581Block=s
582acidbeh=0
583Aaz=0
584date=1861
585Group=1
586EN=0.82
587MP=312.63
588BP=961
589Density=1.53
590IE=4.177
591AR=247.5
592
593[38]
594Name=Strontium
595Symbol=Sr
596Weight=87.62
597Block=s
598acidbeh=0
599az=0
600date=1790
601Group=2
602EN=0.95
603MP=1042
604BP=1655
605Density=2.63
606IE=5.695
607AR=215.1
608
609[39]
610Name=Yttrium
611Symbol=Y
612Weight=88.90585
613Block=d
614acidbeh=0
615az=0
616date=1794
617Group=3
618EN=1.22
619MP=1795
620BP=3611
621Density=4.47
622IE=6.38
623AR=181
624
625[40]
626Name=Zirconium
627Symbol=Zr
628Weight=91.224
629Block=d
630acidbeh=2
631az=0
632date=1789
633Group=4
634EN=1.33
635MP=2128
636BP=4682
637Density=6.51
638IE=6.84
639AR=160
640
641[41]
642Name=Niobium
643Symbol=Nb
644Weight=92.90638
645Block=d
646acidbeh=2
647az=0
648date=1801
649Group=5
650EN=1.6
651MP=2742
652BP=5015
653Density=8.58
654IE=6.88
655AR=142.9
656
657[42]
658Name=Molybdenum
659Symbol=Mo
660Weight=95.94
661Block=d
662acidbeh=2
663az=0
664date=1778
665Group=6
666EN=2.16
667MP=2896
668BP=4912
669Density=10.28
670IE=7.099
671AR=136.2
672
673[43]
674Name=Technetium
675Symbol=Tc
676Weight=98.9063
677Block=d
678acidbeh=2
679az=0
680date=1937
681Group=7
682EN=1.9
683MP=2477
684BP=4538
685Density=11.49
686IE=7.28
687AR=135.8
688
689[44]
690Name=Ruthenium
691Symbol=Ru
692Weight=101.07
693Block=d
694acidbeh=2
695az=0
696date=1844
697Group=8
698EN=2.2
699MP=2610
700BP=4425
701Density=12.45
702IE=7.37
703AR=134
704
705[45]
706Name=Rhodium
707Symbol=Rh
708Weight=102.90550
709Block=d
710acidbeh=0
711az=0
712date=1803
713Group=8
714EN=2.28
715MP=2236
716BP=3970
717Density=12.41
718IE=7.46
719AR=134.5
720
721[46]
722Name=Palladium
723Symbol=Pd
724Weight=106.42
725Block=d
726acidbeh=0
727az=0
728date=1803
729Group=8
730EN=2.20
731MP=1825
732BP=3240
733Density=12.02
734IE=8.34
735AR=137.6
736
737[47]
738Name=Silver
739Symbol=Ag
740Weight=107.8682
741Block=d
742acidbeh=0
743az=0
744date=0
745Group=1
746EN=1.93
747MP=1235.1
748BP=2436
749Density=10.49
750IE=7.576
751AR=144.4
752
753[48]
754Name=Cadmium
755Symbol=Cd
756Weight=112.411
757Block=d
758acidbeh=0
759az=0
760date=1817
761Group=2
762EN=1.69
763MP=594.26
764BP=1040
765Density=8.64
766IE=8.993
767AR=148.9
768
769[49]
770Name=Indium
771Symbol=In
772Weight=114.818
773Block=p
774acidbeh=2
775az=0
776date=1863
777Group=3
778EN=1.78
779MP=429.78
780BP=2350
781Density=7.31
782IE=5.786
783AR=162.6
784
785[50]
786Name=Tin
787Symbol=Sn
788Weight=118.710
789Block=p
790acidbeh=2
791az=0
792date=0
793Group=4
794EN=1.96
795MP=505.12
796BP=2876
797Density=7.29
798IE=7.344
799AR=140.5
800
801[51]
802Name=Antimony
803Symbol=Sb
804Weight=121.760
805Block=p
806acidbeh=2
807az=0
808date=0
809Group=5
810EN=2.05
811MP=903.91
812BP=1860
813Density=6.69
814IE=8.641
815AR=145
816
817[52]
818Name=Tellurium
819Symbol=Te
820Weight=127.60
821Block=p
822acidbeh=2
823az=0
824date=1782
825Group=6
826EN=2.1
827MP=722.72
828BP=1261
829Density=6.25
830IE=9.009
831AR=143.2
832
833[53]
834Name=Iodine
835Symbol=I
836Weight=126.90447
837Block=p
838acidbeh=3
839az=0
840date=1804
841Group=7
842EN=2.66
843MP=386.7
844BP=457.5
845Density=4.94
846IE=10.451
847AR=133.1
848
849[54]
850Name=Xenon
851Symbol=Xe
852Weight=131.293
853Block=p
854acidbeh=1
855az=2
856date=1898
857Group=8
858EN=2.6
859MP=161.39
860BP=165.1
861Density=4.49
862IE=12.130
863AR=218
864
865[55]
866Name=Cesium
867Symbol=Cs
868Weight=132.90545
869Block=s
870acidbeh=0
871az=0
872date=1860
873Group=1
874EN=0.79
875MP=301.54
876BP=944
877Density=1.90
878IE=3.894
879AR=265.5
880
881[56]
882Name=Barium
883Symbol=Ba
884Weight=137.237
885Block=s
886acidbeh=0
887az=0
888date=1808
889Group=2
890EN=0.89
891MP=1002
892BP=2078
893Density=3.65
894IE=5.212
895AR=217.3
896
897[57]
898Name=Lanthanum
899Symbol=La
900Weight=138.9055
901Block=f
902acidbeh=0
903az=0
904date=1839
905Group=3
906EN=1.10
907MP=1191
908BP=3737
909Density=6.16
910IE=5.577
911AR=187.7
912
913[58]
914Name=Cerium
915Symbol=Ce
916Weight=140.116
917Block=f
918acidbeh=0
919az=0
920date=1803
921Group=4
922EN=1.12
923MP=1071
924BP=3715
925Density=6.77
926IE=5.47
927AR=182.5
928
929[59]
930Name=Praseodymium
931Symbol=Pr
932Weight=140.90765
933Block=f
934acidbeh=0
935az=0
936date=1885
937Group=5
938EN=1.13
939MP=1204
940BP=3785
941Density=6.48
942IE=5.42
943AR=182.8
944
945[60]
946Name=Neodymium
947Symbol=Nd
948Weight=144.24
949Block=f
950acidbeh=0
951az=0
952date=1925
953Group=6
954EN=1.14
955MP=1294
956BP=3347
957Density=7.00
958IE=5.49
959AR=182.1
960
961[61]
962Name=Promethium
963Symbol=Pm
964Weight=146.9151
965Block=f
966acidbeh=0
967az=3
968date=1945
969Group=7
970EN=1.13
971MP=1315
972BP=3273
973Density=7.22
974IE=5.55
975AR=181.0
976
977[62]
978Name=Samarium
979Symbol=Sm
980Weight=150.36
981Block=f
982acidbeh=0
983az=0
984date=1879
985Group=8
986EN=1.17
987MP=1347
988BP=2067
989Density=7.54
990IE=5.63
991AR=180.2
992
993[63]
994Name=Europium
995Symbol=Eu
996Weight=151.964
997Block=f
998acidbeh=0
999az=0
1000date=1901
1001Group=8
1002EN=1.2
1003MP=1095
1004BP=1800
1005Density=5.25
1006IE=5.67
1007AR=204.2
1008
1009[64]
1010Name=Gadolinium
1011Symbol=Gd
1012Weight=157.25
1013Block=f
1014acidbeh=0
1015az=0
1016date=1880
1017Group=8
1018EN=1.20
1019MP=1585
1020BP=3545
1021Density=7.89
1022IE=6.14
1023AR=180.2
1024
1025[65]
1026Name=Terbium
1027Symbol=Tb
1028Weight=158.92534
1029Block=f
1030acidbeh=0
1031az=0
1032date=1843
1033Group=1
1034EN=1.1
1035MP=1629
1036BP=3500
1037Density=8.25
1038IE=5.85
1039AR=178.2
1040
1041[66]
1042Name=Dysprosium
1043Symbol=Dy
1044Weight=162.50
1045Block=f
1046acidbeh=0
1047az=0
1048date=1886
1049Group=2
1050EN=1.22
1051MP=1685
1052BP=2840
1053Density=8.56
1054IE=5.93
1055AR=177.3
1056
1057[67]
1058Name=Holmium
1059Symbol=Ho
1060Weight=164.93032
1061Block=f
1062acidbeh=0
1063az=0
1064date=1878
1065Group=3
1066EN=1.23
1067MP=1747
1068BP=2968
1069Density=8.78
1070IE=6.02
1071AR=176.6
1072
1073[68]
1074Name=Erbium
1075Symbol=Er
1076Weight=167.259
1077Block=f
1078acidbeh=0
1079az=0
1080date=1843
1081Group=4
1082EN=1.24
1083MP=1802
1084BP=3140
1085Density=9.05
1086IE=6.10
1087AR=175.7
1088
1089[69]
1090Name=Thulium
1091Symbol=Tm
1092Weight=168.93421
1093Block=f
1094acidbeh=0
1095az=0
1096date=1879
1097Group=5
1098EN=1.25
1099MP=1818
1100BP=2223
1101Density=9.32
1102IE=6.18
1103AR=174.6
1104
1105[70]
1106Name=Ytterbium
1107Symbol=Yb
1108Weight=173.04
1109Block=f
1110acidbeh=0
1111az=0
1112date=1878
1113Group=6
1114EN=1.1
1115MP=1092
1116BP=1469
1117Density=9.32
1118IE=6.254
1119AR=194
1120
1121[71]
1122Name=Lutetium
1123Symbol=Lu
1124Weight=174.967
1125Block=f
1126acidbeh=0
1127az=0
1128date=1907
1129Group=7
1130EN=1.27
1131MP=1936
1132BP=3668
1133Density=9.84
1134IE=5.426
1135AR=173.4
1136
1137[72]
1138Name=Hafnium
1139Symbol=Hf
1140Weight=178.49
1141Block=d
1142acidbeh=2
1143az=0
1144date=1923
1145Group=4
1146EN=1.3
1147MP=2504
1148BP=4875
1149Density=13.31
1150IE=7.0
1151AR=156.4
1152
1153[73]
1154Name=Tantalum
1155Symbol=Ta
1156Weight=180.9479
1157Block=d
1158acidbeh=2
1159az=0
1160date=1802
1161Group=5
1162EN=1.5
1163MP=3293
1164BP=5730
1165Density=16.68
1166IE=7.89
1167AR=143
1168
1169[74]
1170Name=Tungsten
1171Symbol=W
1172Weight=183.84
1173Block=d
1174acidbeh=2
1175az=0
1176date=1783
1177Group=6
1178EN=2.36
1179MP=3695
1180BP=5825
1181Density=19.26
1182IE=7.98
1183AR=137.0
1184
1185[75]
1186Name=Rhenium
1187Symbol=Re
1188Weight=186.207
1189Block=d
1190acidbeh=2
1191az=0
1192date=1925
1193Group=7
1194EN=1.9
1195MP=3455
1196BP=5870
1197Density=21.03
1198IE=7.88
1199AR=137.0
1200
1201[76]
1202Name=Osmium
1203Symbol=Os
1204Weight=190.23
1205Block=d
1206acidbeh=2
1207az=0
1208date=1804
1209Group=8
1210EN=2.2
1211MP=3300
1212BP=5300
1213Density=22.61
1214IE=8.7
1215AR=135
1216
1217[77]
1218Name=Iridium
1219Symbol=Ir
1220Weight=192.217
1221Block=d
1222acidbeh=0
1223az=0
1224date=1804
1225Group=8
1226EN=2.20
1227MP=2720
1228BP=4700
1229Density=22.65
1230IE=9.1
1231AR=135.7
1232
1233[78]
1234Name=Platinum
1235Symbol=Pt
1236Weight=195.078
1237Block=d
1238acidbeh=0
1239az=0
1240date=1735
1241Group=8
1242EN=2.28
1243MP=2042.1
1244BP=4100
1245Density=21.45
1246IE=9.0
1247AR=138
1248
1249[79]
1250Name=Gold
1251Symbol=Au
1252Weight=196.96654
1253Block=d
1254acidbeh=0
1255az=0
1256date=0
1257Group=1
1258EN=2.54
1259MP=1337.58
1260BP=3130
1261Density=19.32
1262IE=9.225
1263AR=144.2
1264
1265[80]
1266Name=Mercury
1267Symbol=Hg
1268Weight=200.59
1269Block=d
1270acidbeh=0
1271az=1
1272date=0
1273Group=2
1274EN=2.00
1275MP=234.31
1276BP=629.88
1277Density=13.55
1278IE=10.437
1279AR=160
1280
1281[81]
1282Name=Thallium
1283Symbol=Tl
1284Weight=204.3833
1285Block=p
1286acidbeh=2
1287az=0
1288date=1861
1289Group=3
1290EN=2.04
1291MP=577
1292BP=1746
1293Density=11.85
1294IE=6.108
1295AR=170.4
1296
1297[82]
1298Name=Lead
1299Symbol=Pb
1300Weight=207.2
1301Block=p
1302acidbeh=2
1303az=0
1304date=0
1305Group=4
1306EN=2.33
1307MP=600.65
1308BP=2023
1309Density=11.34
1310IE=7.416
1311AR=175
1312
1313[83]
1314Name=Bismuth
1315Symbol=Bi
1316Weight=208.98038
1317Block=p
1318acidbeh=0
1319az=0
1320date=0
1321Group=5
1322EN=2.02
1323MP=544.59
1324BP=1837
1325Density=9.80
1326IE=7.289
1327AR=155
1328
1329[84]
1330Name=Polonium
1331Symbol=Po
1332Weight=208.9824
1333Block=p
1334acidbeh=2
1335az=3
1336date=1898
1337Group=6
1338EN=2.0
1339MP=527
1340BP=
1341Density=9.20
1342IE=8.42
1343AR=167.5
1344
1345[85]
1346Name=Astatine
1347Symbol=At
1348Weight=209.9871
1349Block=p
1350acidbeh=3
1351az=3
1352date=1940
1353Group=7
1354EN=2.2
1355MP=575
1356BP=610
1357Density=
1358IE=9.5
1359AR=
1360
1361[86]
1362Name=Radon
1363Symbol=Rd
1364Weight=222.0176
1365Block=p
1366acidbeh=1
1367az=3
1368date=1898
1369Group=8
1370EN=
1371MP=202
1372BP=211.4
1373Density=9.23
1374IE=10.748
1375AR=
1376
1377[87]
1378Name=Francium
1379Symbol=Fr
1380Weight=223.0197
1381Block=s
1382acidbeh=0
1383az=3
1384date=1939
1385Group=1
1386EN=0.7
1387MP=300
1388BP=950
1389Density=
1390IE=4.0
1391AR=270
1392
1393[88]
1394Name=Radium
1395Symbol=Ra
1396Weight=226.0254
1397Block=s
1398acidbeh=0
1399az=3
1400date=1898
1401Group=2
1402EN=0.89
1403MP=973
1404BP=1413
1405Density=5.50
1406IE=5.279
1407AR=223
1408
1409[89]
1410Name=Actinium
1411Symbol=Ac
1412Weight=227.0278
1413Block=f
1414acidbeh=0
1415az=3
1416date=1899
1417Group=3
1418EN=1.1
1419MP=1324
1420BP=3470
1421Density=10.07
1422IE=6.9
1423AR=187.8
1424
1425[90]
1426Name=Thorium
1427Symbol=Th
1428Weight=232.0381
1429Block=f
1430acidbeh=0
1431az=3
1432date=1828
1433Group=4
1434EN=1.3
1435MP=2028
1436BP=5060
1437Density=11.72
1438IE=6.95
1439AR=179.8
1440
1441[91]
1442Name=Protactinium
1443Symbol=Pa
1444Weight=231.03588
1445Block=f
1446acidbeh=0
1447az=3
1448date=1917
1449Group=5
1450EN=1.5
1451MP=1845
1452BP=4300
1453Density=15.37
1454IE=NA
1455AR=180.6
1456
1457[92]
1458Name=Uranium
1459Symbol=U
1460Weight=238.02891
1461Block=f
1462acidbeh=0
1463az=3
1464date=1789
1465Group=6
1466EN=1.38
1467MP=1408
1468BP=4407
1469Density=18.97
1470IE=6.08
1471AR=138.5
1472
1473[93]
1474Name=Neptunium
1475Symbol=Np
1476Weight=237.0482
1477Block=f
1478acidbeh=0
1479az=3
1480date=1940
1481Group=7
1482EN=1.36
1483MP=912
1484BP=4175
1485Density=20.48
1486IE=
1487AR=131
1488
1489[94]
1490Name=Plutonium
1491Symbol=Pu
1492Weight=244.0642
1493Block=f
1494acidbeh=0
1495az=3
1496date=1940
1497Group=8
1498EN=1.28
1499MP=913
1500BP=3505
1501Density=19.74
1502IE=5.8
1503AR=151
1504
1505[95]
1506Name=Americium
1507Symbol=Am
1508Weight=243.0614
1509Block=f
1510acidbeh=0
1511az=4
1512date=1945
1513Group=8
1514EN=1.3
1515MP=1449
1516BP=2880
1517Density=13.67
1518IE=6.0
1519AR=184
1520
1521[96]
1522Name=Curium
1523Symbol=Cm
1524Weight=247.0703
1525Block=f
1526acidbeh=0
1527az=4
1528date=1944
1529Group=8
1530EN=1.3
1531MP=1620
1532BP=
1533Density=13.51
1534IE=
1535AR=
1536
1537[97]
1538Name=Berkelium
1539Symbol=Bk
1540Weight=247.0703
1541Block=f
1542acidbeh=0
1543az=4
1544date=1949
1545Group=1
1546EN=1.3
1547MP=
1548BP=
1549Density=13.25
1550IE=
1551AR=
1552
1553[98]
1554Name=Californium
1555Symbol=Cf
1556Weight=251.0796
1557Block=f
1558acidbeh=0
1559az=4
1560date=1950
1561Group=2
1562EN=1.3
1563MP=1170
1564BP=
1565Density=15.1
1566IE=
1567AR=
1568
1569[99]
1570Name=Einsteinium
1571Symbol=Es
1572Weight=252.0829
1573Block=f
1574acidbeh=0
1575az=4
1576date=1952
1577Group=3
1578EN=1.3
1579MP=1130
1580BP=
1581Density=
1582IE=
1583AR=
1584
1585[100]
1586Name=Fermium
1587Symbol=Fm
1588Weight=257.0951
1589Block=f
1590acidbeh=0
1591az=4
1592date=1953
1593Group=4
1594EN=1.3
1595MP=1800
1596BP=
1597Density=
1598IE=
1599AR=
1600
1601[101]
1602Name=Mendelevium
1603Symbol=Md
1604Weight=258.0986
1605Block=f
1606acidbeh=0
1607az=4
1608date=1955
1609Group=5
1610EN=1.3
1611MP=1100
1612BP=
1613Density=
1614IE=
1615AR=
1616
1617[102]
1618Name=Nobelium
1619Symbol=No
1620Weight=259.1009
1621Block=f
1622acidbeh=0
1623az=4
1624date=1957
1625Group=6
1626EN=1.3
1627MP=1100
1628BP=
1629Density=
1630IE=
1631AR=
1632
1633[103]
1634Name=Lawrencium
1635Symbol=Lr
1636Weight=262.110
1637Block=f
1638acidbeh=0
1639az=4
1640date=1961
1641Group=7
1642EN=1.3
1643MP=1900
1644BP=
1645Density=
1646IE=
1647AR=
1648
1649[104]
1650Name=Rutherfordium
1651Symbol=Rf
1652Weight=261.1089
1653Block=d
1654acidbeh=2
1655az=4
1656date=1969
1657Group=4
1658EN=
1659MP=
1660BP=
1661Density=
1662IE=
1663AR=
1664
1665[105]
1666Name=Dubnium
1667Symbol=Db
1668Weight=262.1144
1669Block=d
1670acidbeh=2
1671az=4
1672date=1970
1673Group=5
1674EN=
1675MP=
1676BP=
1677Density=
1678IE=
1679AR=
1680
1681[106]
1682Name=Seaborgium
1683Symbol=Sg
1684Weight=263.1186
1685Block=d
1686acidbeh=2
1687az=4
1688date=1974
1689Group=6
1690EN=
1691MP=
1692BP=
1693Density=
1694IE=
1695AR=
1696
1697[107]
1698Name=Bohrium
1699Symbol=Bh
1700Weight=262.1231
1701Block=d
1702acidbeh=2
1703az=4
1704date=1976
1705Group=7
1706EN=
1707MP=
1708BP=
1709Density=
1710IE=
1711AR=
1712
1713[108]
1714Name=Hassium
1715Symbol=Hs
1716Weight=265.1306
1717Block=d
1718acidbeh=2
1719az=4
1720date=1984
1721Group=8
1722EN=
1723MP=
1724BP=
1725Density=
1726IE=
1727AR=
1728
1729[109]
1730Name=Meitnerium
1731Symbol=Mt
1732Weight=266.1378
1733Block=d
1734acidbeh=0
1735az=4
1736date=1982
1737Group=8
1738EN=
1739MP=
1740BP=
1741Density=
1742IE=
1743AR=
1744
1745[110]
1746Name=Ununnilium
1747Symbol=Uun
1748Weight=0
1749Block=d
1750acidbeh=0
1751az=4
1752date=1987
1753Group=8
1754EN=
1755MP=
1756BP=
1757Density=
1758IE=
1759AR=
1760
1761[111]
1762Name=Unununium
1763Symbol=Uuu
1764Weight=0
1765Block=d
1766acidbeh=0
1767az=4
1768date=1994
1769Group=1
1770EN=
1771MP=
1772BP=
1773Density=
1774IE=
1775AR=
1776
1777[112]
1778Name=Ununbium
1779Symbol=Uub
1780Weight=0
1781Block=d
1782acidbeh=0
1783az=4
1784date=1996
1785Group=2
1786EN=
1787MP=
1788BP=
1789Density=
1790IE=
1791AR=
1792
1793[113]
1794Name=Unnamed
1795Symbol=Uut
1796Weight=0
1797Block=p
1798acidbeh=0
1799az=4
1800date=3333
1801Group=3
1802EN=
1803MP=
1804BP=
1805Density=
1806IE=
1807AR=
1808
1809[114]
1810Name=Ununquadium
1811Symbol=Uuq
1812Weight=0
1813Block=p
1814acidbeh=0
1815az=4
1816date=1996
1817Group=4
1818EN=
1819MP=
1820BP=
1821Density=
1822IE=
1823AR=
1824
1825[115]
1826Name=Unnamed
1827Symbol=Uup
1828Weight=0
1829Block=p
1830acidbeh=0
1831az=4
1832date=3333
1833Group=5
1834EN=
1835MP=
1836BP=
1837Density=
1838IE=
1839AR=
1840
1841[116]
1842Name=Ununhexium
1843Symbol=Uuh
1844Weight=0
1845Block=p
1846acidbeh=0
1847az=4
1848date=1996
1849Group=6
1850EN=
1851MP=
1852BP=
1853Density=
1854IE=
1855AR=
1856
1857[117]
1858Name=Unnamed
1859Symbol=Uus
1860Weight=0
1861Block=p
1862acidbeh=0
1863az=4
1864date=3333
1865Group=7
1866EN=
1867MP=
1868BP=
1869Density=
1870IE=
1871AR=
1872
1873[118]
1874Name=Ununoctium
1875Symbol=Uuo
1876Weight=0
1877Block=p
1878acidbeh=0
1879az=4
1880date=1996
1881Group=8
1882EN=
1883MP=
1884BP=
1885Density=
1886IE=
1887AR=