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_ModelExtension.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_MODEL_EXTENSION_HPP_
32 #define KIM_MODEL_EXTENSION_HPP_
33 
34 #include <sstream>
35 #include <string>
36 
37 namespace KIM
38 {
39 // Forward declarations
40 class LogVerbosity;
41 class Model;
42 class ModelCompute;
43 class ModelCreate;
44 class ModelDestroy;
45 class ModelDriverCreate;
46 class ModelRefresh;
47 class ModelWriteParameterizedModel;
48 class ComputeArguments;
49 class ModelComputeArguments;
50 class ModelComputeArgumentsCreate;
51 class ModelComputeArgumentsDestroy;
52 class ModelExtensionImplementation;
53 
54 
63 {
64  public:
73  void GetExtensionID(std::string const ** const extensionID) const;
74 
81  KIM::Model * Model();
82 
91 
100 
109 
118 
127 
136 
145  ModelComputeArguments(ComputeArguments * const computeArguments) const;
146 
155  ModelComputeArgumentsCreate(ComputeArguments * const computeArguments) const;
156 
165  ModelComputeArgumentsDestroy(ComputeArguments * const computeArguments) const;
166 
183  void GetModelBufferPointer(void ** const ptr) const;
184 
200  void LogEntry(LogVerbosity const logVerbosity,
201  std::string const & message,
202  int const lineNumber,
203  std::string const & fileName) const;
204 
206  void LogEntry(LogVerbosity const logVerbosity,
207  std::stringstream const & message,
208  int const lineNumber,
209  std::string const & fileName) const;
210 
221  std::string const & ToString() const;
222 
223  private:
224  // do not allow copy constructor or operator=
226  void operator=(ModelExtension const &);
227 
228  ModelExtension();
229  ~ModelExtension();
230 
231  ModelExtensionImplementation * pimpl;
232 }; // class ModelExtension
233 } // namespace KIM
234 
235 #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:58
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.