kim-api 2.3.0+AppleClang.AppleClang.GNU
An Application Programming Interface (API) for the Knowledgebase of Interatomic Models (KIM).
Loading...
Searching...
No Matches
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-2.3.0 package.
28//
29
30
31#ifndef KIM_ENERGY_UNIT_HPP_
32#define KIM_ENERGY_UNIT_HPP_
33
34#include <string>
35
36namespace KIM
37{
47{
48 public:
59
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
129namespace ENERGY_UNIT
130{
137extern EnergyUnit const unused;
138
145extern EnergyUnit const amu_A2_per_ps2;
146
153extern EnergyUnit const erg;
154
161extern EnergyUnit const eV;
162
169extern EnergyUnit const Hartree;
170
177extern EnergyUnit const J;
178
185extern EnergyUnit const kcal_mol;
186
196void GetNumberOfEnergyUnits(int * const numberOfEnergyUnits);
197
212int 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_
An Extensible Enumeration for the EnergyUnit's supported by the KIM API.
bool Known() const
Determines if the object is a quantity known to the KIM API.
bool operator!=(EnergyUnit const &rhs) const
Compares EnergyUnit objects for inequality.
EnergyUnit(std::string const &str)
Create an EnergyUnit object corresponding to the provided string. If the string does not match one of...
EnergyUnit(int const id)
Create a EnergyUnit object with the specified id.
bool operator==(EnergyUnit const &rhs) const
Compares EnergyUnit objects for equality.
EnergyUnit()
Create an uninitialized EnergyUnit object.
std::string const & ToString() const
Converts the object to a string.
int energyUnitID
Integer identifying the specific EnergyUnit represented.
EnergyUnit const eV
The standard electronvolt unit of energy.
EnergyUnit const amu_A2_per_ps2
The standard amu*A /ps unit of energy.
void GetNumberOfEnergyUnits(int *const numberOfEnergyUnits)
Get the number of standard EnergyUnit's defined by the KIM API.
EnergyUnit const unused
Indicates that a EnergyUnit is not used.
EnergyUnit const erg
The standard erg unit of energy.
EnergyUnit const J
The standard Joule unit of energy.
int GetEnergyUnit(int const index, EnergyUnit *const energyUnit)
Get the identity of each defined standard EnergyUnit.
EnergyUnit const kcal_mol
The standard kilocalorie per mole unit of energy.
EnergyUnit const Hartree
The standard Hartree unit of energy.
Structure provided for use with std::map.
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 ...