kim-api  2.3.1-git+v2.3.0-git-2-g378406f9.GNU.GNU.
An Application Programming Interface (API) for the Knowledgebase of Interatomic Models (KIM).
KIM_EnergyUnit.hpp
Go to the documentation of this file.
1 //
2 // KIM-API: An API for interatomic models
3 // Copyright (c) 2013--2022, Regents of the University of Minnesota.
4 // All rights reserved.
5 //
6 // Contributors:
7 // Ryan S. Elliott
8 //
9 // SPDX-License-Identifier: LGPL-2.1-or-later
10 //
11 // This library is free software; you can redistribute it and/or
12 // modify it under the terms of the GNU Lesser General Public
13 // License as published by the Free Software Foundation; either
14 // version 2.1 of the License, or (at your option) any later version.
15 //
16 // This library is distributed in the hope that it will be useful,
17 // but WITHOUT ANY WARRANTY; without even the implied warranty of
18 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
19 // Lesser General Public License for more details.
20 //
21 // You should have received a copy of the GNU Lesser General Public License
22 // along with this library; if not, write to the Free Software Foundation,
23 // Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
24 //
25 
26 //
27 // Release: This file is part of the kim-api.git repository.
28 //
29 
30 
31 #ifndef KIM_ENERGY_UNIT_HPP_
32 #define KIM_ENERGY_UNIT_HPP_
33 
34 #include <string>
35 
36 namespace KIM
37 {
47 {
48  public:
59 
63  EnergyUnit();
64 
70  EnergyUnit(int const id);
71 
80  EnergyUnit(std::string const & str);
81 
91  bool Known() const;
92 
101  bool operator==(EnergyUnit const & rhs) const;
102 
111  bool operator!=(EnergyUnit const & rhs) const;
112 
124  std::string const & ToString() const;
125 }; // class EnergyUnit
126 
129 namespace ENERGY_UNIT
130 {
137 extern EnergyUnit const unused;
138 
145 extern EnergyUnit const amu_A2_per_ps2;
146 
153 extern EnergyUnit const erg;
154 
161 extern EnergyUnit const eV;
162 
169 extern EnergyUnit const Hartree;
170 
177 extern EnergyUnit const J;
178 
185 extern EnergyUnit const kcal_mol;
186 
196 void GetNumberOfEnergyUnits(int * const numberOfEnergyUnits);
197 
212 int GetEnergyUnit(int const index, EnergyUnit * const energyUnit);
213 
218 {
223  bool operator()(EnergyUnit const & a, EnergyUnit const & b) const
224  {
225  return a.energyUnitID < b.energyUnitID;
226  }
227 }; // struct Comparator
228 } // namespace ENERGY_UNIT
229 } // namespace KIM
230 
231 #endif // KIM_ENERGY_UNIT_HPP_
int energyUnitID
Integer identifying the specific EnergyUnit represented.
void GetNumberOfEnergyUnits(int *const numberOfEnergyUnits)
Get the number of standard EnergyUnit&#39;s defined by the KIM API.
EnergyUnit const J
The standard Joule unit of energy.
EnergyUnit const Hartree
The standard Hartree unit of energy.
Structure provided for use with std::map.
EnergyUnit const amu_A2_per_ps2
The standard amu*A /ps unit of energy.
std::string const & ToString() const
Converts the object to a string.
An Extensible Enumeration for the EnergyUnit&#39;s supported by the KIM API.
EnergyUnit const kcal_mol
The standard kilocalorie per mole unit of energy.
int GetEnergyUnit(int const index, EnergyUnit *const energyUnit)
Get the identity of each defined standard EnergyUnit.
EnergyUnit const unused
Indicates that a EnergyUnit is not used.
bool operator==(EnergyUnit const &rhs) const
Compares EnergyUnit objects for equality.
EnergyUnit const eV
The standard electronvolt unit of energy.
EnergyUnit const erg
The standard erg unit of energy.
bool operator()(EnergyUnit const &a, EnergyUnit const &b) const
Provides an (logically unmeaningful) ordering for EnergyUnit objects so that they can be stored in a ...
bool Known() const
Determines if the object is a quantity known to the KIM API.
EnergyUnit()
Create an uninitialized EnergyUnit object.
bool operator!=(EnergyUnit const &rhs) const
Compares EnergyUnit objects for inequality.