kim-api  2.1.4-git+v2.1.3-git-3-g4c859c7f.GNU
An Application Programming Interface (API) for the Knowledgebase of Interatomic Models (KIM).
KIM_ModelExtension.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--2019, 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.git repository.
31 //
32 
33 
34 #ifndef KIM_MODEL_EXTENSION_HPP_
35 #define KIM_MODEL_EXTENSION_HPP_
36 
37 #include <sstream>
38 #include <string>
39 
40 namespace KIM
41 {
42 // Forward declarations
43 class LogVerbosity;
44 class Model;
45 class ModelCompute;
46 class ModelCreate;
47 class ModelDestroy;
48 class ModelDriverCreate;
49 class ModelRefresh;
50 class ModelWriteParameterizedModel;
51 class ComputeArguments;
52 class ModelComputeArguments;
53 class ModelComputeArgumentsCreate;
54 class ModelComputeArgumentsDestroy;
55 class ModelExtensionImplementation;
56 
57 
66 {
67  public:
76  void GetExtensionID(std::string const ** const extensionID) const;
77 
84  KIM::Model * Model();
85 
94 
103 
112 
121 
130 
139 
148  ModelComputeArguments(ComputeArguments * const computeArguments) const;
149 
158  ModelComputeArgumentsCreate(ComputeArguments * const computeArguments) const;
159 
168  ModelComputeArgumentsDestroy(ComputeArguments * const computeArguments) const;
169 
186  void GetModelBufferPointer(void ** const ptr) const;
187 
203  void LogEntry(LogVerbosity const logVerbosity,
204  std::string const & message,
205  int const lineNumber,
206  std::string const & fileName) const;
207 
209  void LogEntry(LogVerbosity const logVerbosity,
210  std::stringstream const & message,
211  int const lineNumber,
212  std::string const & fileName) const;
213 
224  std::string const & ToString() const;
225 
226  private:
227  // do not allow copy constructor or operator=
229  void operator=(ModelExtension const &);
230 
231  ModelExtension();
232  ~ModelExtension();
233 
234  ModelExtensionImplementation * pimpl;
235 }; // class ModelExtension
236 } // namespace KIM
237 
238 #endif // KIM_MODEL_EXTENSION_HPP_
KIM::ModelComputeArgumentsCreate * ModelComputeArgumentsCreate(ComputeArguments *const computeArguments) const
Convert the ModelExtension interface to the Model object to a ModelComputeArgumentsCreate interface...
Provides the interface to a KIM API Model object for use by models within their MODEL_ROUTINE_NAME::R...
void GetModelBufferPointer(void **const ptr) const
Get the Model&#39;s buffer pointer within the Model object.
KIM::ModelCreate * ModelCreate()
Convert the ModelExtension interface to the Model object to a ModelCreate interface.
Provides the interface to a KIM API Model object for use by models within their MODEL_ROUTINE_NAME::W...
KIM::ModelWriteParameterizedModel * ModelWriteParameterizedModel()
Convert the ModelExtension interface to the Model object to a ModelWriteParameterizedModel interface...
KIM::ModelComputeArguments * ModelComputeArguments(ComputeArguments *const computeArguments) const
Convert the ModelExtension interface to the Model object to a ModelComputeArguments interface...
KIM::Model * Model()
Convert the ModelExtension interface to the Model object to a Model interface.
KIM::ModelCompute * ModelCompute()
Convert the ModelExtension interface to the Model object to a ModelCompute interface.
KIM::ModelDestroy * ModelDestroy()
Convert the ModelExtension interface to the Model object to a ModelDestroy interface.
KIM::ModelRefresh * ModelRefresh()
Convert the ModelExtension interface to the Model object to a ModelRefresh interface.
Provides the interface to a KIM API Model object for use by models within their MODEL_ROUTINE_NAME::D...
Provides the interface to a KIM API Model object for use by models within their MODEL_ROUTINE_NAME::C...
An Extensible Enumeration for the LogVerbosity&#39;s supported by the KIM API.
Provides the interface to a KIM API Model object for use by models within their MODEL_ROUTINE_NAME::C...
Provides the primary interface to a KIM API Model object and is meant to be used by simulators...
Definition: KIM_Model.hpp:61
void LogEntry(LogVerbosity const logVerbosity, std::string const &message, int const lineNumber, std::string const &fileName) const
Write a log entry into the log file.
Provides the interface to a KIM API ComputeArguments object for use by models within their MODEL_ROUT...
KIM::ModelComputeArgumentsDestroy * ModelComputeArgumentsDestroy(ComputeArguments *const computeArguments) const
Convert the ModelExtension interface to the Model object to a ModelComputeArgumentsDestroy interface...
Provides the interface to a KIM API Model object for use by models within their MODEL_ROUTINE_NAME::E...
std::string const & ToString() const
Get a string representing the internal state of the Model object.
Provides the interface to a KIM API ComputeArguments object for use by models within their MODEL_ROUT...
Provides the primary interface to a KIM API ComputeArguments object and is meant to be used by simula...
Provides the interface to a KIM API ComputeArguments object for use by models within their MODEL_ROUT...
Provides the interface to a KIM API Model object for use by models within their MODEL_ROUTINE_NAME::C...
KIM::ModelDriverCreate * ModelDriverCreate()
Convert the ModelExtension interface to the Model object to a ModelDriverCreate interface.
void GetExtensionID(std::string const **const extensionID) const
Get the extension identification string.