KIM API V2
KIM_ModelDriverCreate.hpp
Go to the documentation of this file.
1 //
2 // CDDL HEADER START
3 //
4 // The contents of this file are subject to the terms of the Common Development
5 // and Distribution License Version 1.0 (the "License").
6 //
7 // You can obtain a copy of the license at
8 // http://www.opensource.org/licenses/CDDL-1.0. See the License for the
9 // specific language governing permissions and limitations under the License.
10 //
11 // When distributing Covered Code, include this CDDL HEADER in each file and
12 // include the License file in a prominent location with the name LICENSE.CDDL.
13 // If applicable, add the following below this CDDL HEADER, with the fields
14 // enclosed by brackets "[]" replaced with your own identifying information:
15 //
16 // Portions Copyright (c) [yyyy] [name of copyright owner]. All rights reserved.
17 //
18 // CDDL HEADER END
19 //
20 
21 //
22 // Copyright (c) 2016--2018, Regents of the University of Minnesota.
23 // All rights reserved.
24 //
25 // Contributors:
26 // Ryan S. Elliott
27 //
28 
29 //
30 // Release: This file is part of the kim-api-v2.0.0-beta.1 package.
31 //
32 
33 
34 #ifndef KIM_MODEL_DRIVER_CREATE_HPP_
35 #define KIM_MODEL_DRIVER_CREATE_HPP_
36 
37 #include <string>
38 #include <sstream>
39 
40 #ifndef KIM_FUNC_HPP_
41 #include "KIM_func.hpp"
42 #endif
43 
44 
45 namespace KIM
46 {
47 // Forward declarations
48 class LogVerbosity;
49 class LanguageName;
50 class Numbering;
51 class SpeciesName;
52 class SupportStatus;
53 class LengthUnit;
54 class EnergyUnit;
55 class ChargeUnit;
56 class TemperatureUnit;
57 class TimeUnit;
58 class ModelDriverCreateImplementation;
59 
60 
62 {
63  public:
64  void GetNumberOfParameterFiles(int * const numberOfParameterFiles) const;
65  int GetParameterFileName(int const index,
66  std::string const ** const parameterFileName) const;
67 
68  int SetModelNumbering(Numbering const numbering);
69 
70  void SetInfluenceDistancePointer(double const * const influenceDistance);
71 
72  void SetNeighborListPointers(int const numberOfNeighborLists,
73  double const * const cutoffs,
74  int const * const paddingNeighborHints,
75  int const * const halfListHints);
76 
77  int SetRefreshPointer(LanguageName const languageName, func * const fptr);
78  int SetDestroyPointer(LanguageName const languageName, func * const fptr);
79  int SetComputeArgumentsCreatePointer(LanguageName const languageName,
80  func * const fptr);
81  int SetComputeArgumentsDestroyPointer(LanguageName const languageName,
82  func * const fptr);
83  int SetComputePointer(LanguageName const languageName, func * const fptr);
84 
85  int SetSpeciesCode(SpeciesName const speciesName, int const code);
86 
87  int SetParameterPointer(int const extent, int * const ptr,
88  std::string const & description);
89  int SetParameterPointer(int const extent, double * const ptr,
90  std::string const & description);
91 
92  void SetModelBufferPointer(void * const ptr);
93 
94  int SetUnits(LengthUnit const lengthUnit,
95  EnergyUnit const energyUnit,
96  ChargeUnit const chargeUnit,
97  TemperatureUnit const temperatureUnit,
98  TimeUnit const timeUnit);
99 
100  int ConvertUnit(
101  LengthUnit const fromLengthUnit,
102  EnergyUnit const fromEnergyUnit,
103  ChargeUnit const fromChargeUnit,
104  TemperatureUnit const fromTemperatureUnit,
105  TimeUnit const fromTimeUnit,
106  LengthUnit const toLengthUnit,
107  EnergyUnit const toEnergyUnit,
108  ChargeUnit const toChargeUnit,
109  TemperatureUnit const toTemperatureUnit,
110  TimeUnit const toTimeUnit,
111  double const lengthExponent,
112  double const energyExponent,
113  double const chargeExponent,
114  double const temperatureExponent,
115  double const timeExponent,
116  double * const conversionFactor) const;
117 
118  void LogEntry(LogVerbosity const logVerbosity, std::string const & message,
119  int const lineNumber, std::string const & fileName) const;
120  void LogEntry(LogVerbosity const logVerbosity,
121  std::stringstream const & message,
122  int const lineNumber, std::string const & fileName) const;
123 
124  std::string const & String() const;
125 
126  private:
127  // do not allow copy constructor or operator=
129  void operator=(ModelDriverCreate const &);
130 
133 
134  ModelDriverCreateImplementation * pimpl;
135 }; // class ModelDriverCreate
136 } // namespace KIM
137 #endif // KIM_MODEL_DRIVER_CREATE_HPP_
int SetParameterPointer(int const extent, int *const ptr, std::string const &description)
int SetComputeArgumentsCreatePointer(LanguageName const languageName, func *const fptr)
int ConvertUnit(LengthUnit const fromLengthUnit, EnergyUnit const fromEnergyUnit, ChargeUnit const fromChargeUnit, TemperatureUnit const fromTemperatureUnit, TimeUnit const fromTimeUnit, LengthUnit const toLengthUnit, EnergyUnit const toEnergyUnit, ChargeUnit const toChargeUnit, TemperatureUnit const toTemperatureUnit, TimeUnit const toTimeUnit, double const lengthExponent, double const energyExponent, double const chargeExponent, double const temperatureExponent, double const timeExponent, double *const conversionFactor) const
int SetDestroyPointer(LanguageName const languageName, func *const fptr)
int SetRefreshPointer(LanguageName const languageName, func *const fptr)
void GetNumberOfParameterFiles(int *const numberOfParameterFiles) const
void SetModelBufferPointer(void *const ptr)
void LogEntry(LogVerbosity const logVerbosity, std::string const &message, int const lineNumber, std::string const &fileName) const
int SetModelNumbering(Numbering const numbering)
int SetComputePointer(LanguageName const languageName, func *const fptr)
int GetParameterFileName(int const index, std::string const **const parameterFileName) const
std::string const & String() const
int SetUnits(LengthUnit const lengthUnit, EnergyUnit const energyUnit, ChargeUnit const chargeUnit, TemperatureUnit const temperatureUnit, TimeUnit const timeUnit)
void SetNeighborListPointers(int const numberOfNeighborLists, double const *const cutoffs, int const *const paddingNeighborHints, int const *const halfListHints)
int SetSpeciesCode(SpeciesName const speciesName, int const code)
int SetComputeArgumentsDestroyPointer(LanguageName const languageName, func *const fptr)
void SetInfluenceDistancePointer(double const *const influenceDistance)
void() func()
Definition: KIM_func.hpp:40