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_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-2.3.0 package.
28//
29
30
31#ifndef KIM_MODEL_EXTENSION_HPP_
32#define KIM_MODEL_EXTENSION_HPP_
33
34#include <sstream>
35#include <string>
36
37namespace KIM
38{
39// Forward declarations
40class LogVerbosity;
41class Model;
42class ModelCompute;
43class ModelCreate;
44class ModelDestroy;
45class ModelDriverCreate;
46class ModelRefresh;
47class ModelWriteParameterizedModel;
48class ComputeArguments;
49class ModelComputeArguments;
50class ModelComputeArgumentsCreate;
51class ModelComputeArgumentsDestroy;
52class ModelExtensionImplementation;
53
54
63{
64 public:
73 void GetExtensionID(std::string const ** const extensionID) const;
74
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
230
231 ModelExtensionImplementation * pimpl;
232}; // class ModelExtension
233} // namespace KIM
234
235#endif // KIM_MODEL_EXTENSION_HPP_
Provides the primary interface to a KIM API ComputeArguments object and is meant to be used by simula...
An Extensible Enumeration for the LogVerbosity's supported by the KIM API.
Provides the interface to a KIM API ComputeArguments object for use by models within their MODEL_ROUT...
Provides the interface to a KIM API ComputeArguments object for use by models within their MODEL_ROUT...
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...
Provides the interface to a KIM API Model object for use by models within their MODEL_ROUTINE_NAME::C...
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...
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.
KIM::ModelCreate * ModelCreate()
Convert the ModelExtension interface to the Model object to a ModelCreate interface.
KIM::ModelDriverCreate * ModelDriverCreate()
Convert the ModelExtension interface to the Model object to a ModelDriverCreate interface.
KIM::ModelWriteParameterizedModel * ModelWriteParameterizedModel()
Convert the ModelExtension interface to the Model object to a ModelWriteParameterizedModel interface.
KIM::ModelDestroy * ModelDestroy()
Convert the ModelExtension interface to the Model object to a ModelDestroy interface.
void GetModelBufferPointer(void **const ptr) const
Get the Model's buffer pointer within the Model object.
KIM::ModelComputeArguments * ModelComputeArguments(ComputeArguments *const computeArguments) const
Convert the ModelExtension interface to the Model object to a ModelComputeArguments interface.
KIM::ModelRefresh * ModelRefresh()
Convert the ModelExtension interface to the Model object to a ModelRefresh interface.
KIM::Model * Model()
Convert the ModelExtension interface to the Model object to a Model interface.
void LogEntry(LogVerbosity const logVerbosity, std::stringstream const &message, int const lineNumber, std::string const &fileName) const
This is an overloaded member function, provided for convenience. It differs from the above function o...
void GetExtensionID(std::string const **const extensionID) const
Get the extension identification string.
KIM::ModelComputeArgumentsCreate * ModelComputeArgumentsCreate(ComputeArguments *const computeArguments) const
Convert the ModelExtension interface to the Model object to a ModelComputeArgumentsCreate interface.
KIM::ModelCompute * ModelCompute()
Convert the ModelExtension interface to the Model object to a ModelCompute interface.
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.
KIM::ModelComputeArgumentsDestroy * ModelComputeArgumentsDestroy(ComputeArguments *const computeArguments) const
Convert the ModelExtension interface to the Model object to a ModelComputeArgumentsDestroy interface.
Provides the primary interface to a KIM API Model object and is meant to be used by simulators.
Definition: KIM_Model.hpp:59
Provides the interface to a KIM API Model object for use by models within their MODEL_ROUTINE_NAME::R...
Provides the interface to a KIM API Model object for use by models within their MODEL_ROUTINE_NAME::W...