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_LengthUnit.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_LENGTH_UNIT_HPP_
32 #define KIM_LENGTH_UNIT_HPP_
33 
34 #include <string>
35 
36 namespace KIM
37 {
47 {
48  public:
59 
63  LengthUnit();
64 
70  LengthUnit(int const id);
71 
79  LengthUnit(std::string const & str);
80 
89  bool Known() const;
90 
98  bool operator==(LengthUnit const & rhs) const;
99 
107  bool operator!=(LengthUnit const & rhs) const;
108 
119  std::string const & ToString() const;
120 }; // class LengthUnit
121 
124 namespace LENGTH_UNIT
125 {
131 extern LengthUnit const unused;
132 
138 extern LengthUnit const A;
139 
145 extern LengthUnit const Bohr;
146 
152 extern LengthUnit const cm;
153 
159 extern LengthUnit const m;
160 
166 extern LengthUnit const nm;
167 
177 void GetNumberOfLengthUnits(int * const numberOfLengthUnits);
178 
193 int GetLengthUnit(int const index, LengthUnit * const lengthUnit);
194 
199 {
204  bool operator()(LengthUnit const & a, LengthUnit const & b) const
205  {
206  return a.lengthUnitID < b.lengthUnitID;
207  }
208 }; // struct Comparator
209 } // namespace LENGTH_UNIT
210 } // namespace KIM
211 
212 #endif // KIM_LENGTH_UNIT_HPP_
int GetLengthUnit(int const index, LengthUnit *const lengthUnit)
Get the identity of each defined standard LengthUnit.
void GetNumberOfLengthUnits(int *const numberOfLengthUnits)
Get the number of standard LengthUnit&#39;s defined by the KIM API.
LengthUnit()
Create an uninitialized LengthUnit object.
bool operator==(LengthUnit const &rhs) const
Compares LengthUnit objects for equality.
LengthUnit const nm
The standard nanometer unit of length.
LengthUnit const unused
Indicates that a LengthUnit is not used.
LengthUnit const Bohr
The standard Bohr unit of length.
An Extensible Enumeration for the LengthUnit&#39;s supported by the KIM API.
bool operator!=(LengthUnit const &rhs) const
Compares LengthUnit objects for inequality.
LengthUnit const m
The standard meter unit of length.
LengthUnit const A
The standard angstrom unit of length.
bool Known() const
Determines if the object is a quantity known to the KIM API.
bool operator()(LengthUnit const &a, LengthUnit const &b) const
Provides an (logically unmeaningful) ordering for LengthUnit objects so that they can be stored in a ...
LengthUnit const cm
The standard centimeter unit of length.
int lengthUnitID
Integer identifying the specific LengthUnit represented.
std::string const & ToString() const
Converts the object to a string.
Structure provided for use with std::map.