File: properties.hh

package info (click to toggle)
gelemental 1.2.0-5
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 3,412 kB
  • ctags: 705
  • sloc: sh: 11,797; cpp: 5,255; makefile: 197
file content (153 lines) | stat: -rw-r--r-- 4,855 bytes parent folder | download | duplicates (9)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
//! \file properties.hh
//! Categories and properties.
/*
 * This file is part of libelemental, a periodic table library with detailed
 * information on elements.
 *
 * Copyright (C) 2006-2007 Kevin Daughtridge <kevin@kdau.com>
 * Copyright (C) 2003 Jonas Frantz <jonas.frantz@welho.com>
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, see <http://www.gnu.org/licenses/>.
 */

#ifndef LIBELEMENTAL__PROPERTIES_HH
#define LIBELEMENTAL__PROPERTIES_HH

#ifndef LIBELEMENTAL__ELEMENT_HH
#error "properties.hh must be included from element.hh."
#endif

#include <list>

//******************************************************************************

namespace Elemental {

//! The categories of available properties of the chemical elements.
extern std::list<Category*> CATEGORIES;

//! \defgroup Properties Properties
//@{

//******************************************************************************
//! \name General Properties
//@{

extern Category C_GENERAL;
/* Translators: This should be translated to the name most commonly used in
 * scientific contexts in your language. If this is different from the
 * official name, the official name will be presented untranslated in a
 * second entry. */
extern Property<Message> P_NAME;
extern Property<String> P_OFFICIAL_NAME;
/* Translators: This name is not available for translation. It will not be
 * presented if it is equal to the translated primary name. */
extern Property<String> P_ALTERNATE_NAME;
extern Property<std::string> P_SYMBOL;
extern Property<AtomicNumber> P_NUMBER;	
extern Property<Series> P_SERIES;
extern Property<Int> P_GROUP;
extern Property<Int> P_PERIOD;
extern Property<Block> P_BLOCK;

//@}
//******************************************************************************
//! \name Historical Properties
//@{

extern Category C_HISTORICAL;
extern Property<Event> P_DISCOVERY;
extern Property<Message> P_DISCOVERED_BY;
// Translators: See po/README for translation issues.
extern Property<Message> P_ETYMOLOGY;

//@}
//******************************************************************************
//! \name Physical Properties
//@{

extern Category C_PHYSICAL;
extern Property<Phase> P_PHASE;
extern Property<Float> P_DENSITY_SOLID;
extern Property<Float> P_DENSITY_LIQUID;
extern Property<Float> P_DENSITY_GAS;
extern Property<Message> P_APPEARANCE;

//@}
//******************************************************************************
//! \name Thermal Properties
//@{

extern Category C_THERMAL;
extern Property<Float> P_MELTING_POINT;
extern Property<Float> P_BOILING_POINT;
extern Property<Float> P_FUSION_HEAT;
extern Property<Float> P_VAPORIZATION_HEAT;
extern Property<Float> P_SPECIFIC_HEAT;
extern Property<Float> P_THERMAL_CONDUCTIVITY;
extern Property<Float> P_DEBYE_TEMPERATURE;

//@}
//******************************************************************************
//! \name Atomic Properties
//@{

extern Category C_ATOMIC;
extern Property<Float> P_ATOMIC_MASS;
extern Property<Float> P_ATOMIC_VOLUME;
extern Property<Float> P_ATOMIC_RADIUS;
extern Property<Float> P_COVALENT_RADIUS;
extern Property<Float> P_VAN_DER_WAALS_RADIUS;
extern Property<String> P_IONIC_RADII;

//@}
//******************************************************************************
//! \name Crystallographic Properties
//@{

extern Category C_CRYSTALLOGRAPHIC;
extern Property<LatticeType> P_LATTICE_TYPE;
extern Property<Int> P_SPACE_GROUP;
extern Property<FloatList> P_LATTICE_EDGES;
extern Property<FloatList> P_LATTICE_ANGLES;
extern Property<Float> P_LATTICE_VOLUME;

//@}
//******************************************************************************
//! \name Electronic Properties
//@{

extern Category C_ELECTRONIC;
// Superscripts should be denoted by the tag <tt>\<sup\>\</sup\></tt>.
extern Property<String> P_CONFIGURATION;
extern Property<IntList> P_OXIDATION_STATES;
extern Property<Float> P_ELECTRONEGATIVITY;
extern Property<Float> P_ELECTRON_AFFINITY;
extern Property<Float> P_FIRST_ENERGY;

//@}
//******************************************************************************
//! \name Miscellaneous Properties
//@{

extern Category C_MISCELLANEOUS;
extern Property<ColorValue> P_COLOR;
extern Property<Message> P_NOTES;

//@}
//@}

} // namespace Elemental

#endif // LIBELEMENTAL__PROPERTIES_HH