kim-api  2.3.0+v2.3.0.GNU.GNU.
An Application Programming Interface (API) for the Knowledgebase of Interatomic Models (KIM).
KIM_ModelExtension.h
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_H_
32 #define KIM_MODEL_EXTENSION_H_
33 
34 /* Forward declarations */
35 #ifndef KIM_LOG_VERBOSITY_DEFINED_
36 #define KIM_LOG_VERBOSITY_DEFINED_
37 
43 #endif
44 
45 #ifndef KIM_MODEL_DEFINED_
46 #define KIM_MODEL_DEFINED_
47 
52 typedef struct KIM_Model KIM_Model;
53 #endif
54 
55 #ifndef KIM_MODEL_COMPUTE_DEFINED_
56 #define KIM_MODEL_COMPUTE_DEFINED_
57 
63 #endif
64 
65 #ifndef KIM_MODEL_CREATE_DEFINED_
66 #define KIM_MODEL_CREATE_DEFINED_
67 
73 #endif
74 
75 #ifndef KIM_MODEL_DESTROY_DEFINED_
76 #define KIM_MODEL_DESTROY_DEFINED_
77 
83 #endif
84 
85 #ifndef KIM_MODEL_DRIVER_CREATE_DEFINED_
86 #define KIM_MODEL_DRIVER_CREATE_DEFINED_
87 
93 #endif
94 
95 #ifndef KIM_MODEL_REFRESH_DEFINED_
96 #define KIM_MODEL_REFRESH_DEFINED_
97 
103 #endif
104 
105 #ifndef KIM_MODEL_WRITE_PARAMETERIZED_MODEL_DEFINED_
106 #define KIM_MODEL_WRITE_PARAMETERIZED_MODEL_DEFINED_
107 
114 #endif
115 
116 #ifndef KIM_COMPUTE_ARGUMENTS_DEFINED_
117 #define KIM_COMPUTE_ARGUMENTS_DEFINED_
118 
124 #endif
125 
126 #ifndef KIM_MODEL_COMPUTE_ARGUMENTS_DEFINED_
127 #define KIM_MODEL_COMPUTE_ARGUMENTS_DEFINED_
128 
134 #endif
135 
136 #ifndef KIM_MODEL_COMPUTE_ARGUMENTS_CREATE_DEFINED_
137 #define KIM_MODEL_COMPUTE_ARGUMENTS_CREATE_DEFINED_
138 
144 #endif
145 
146 #ifndef KIM_MODEL_COMPUTE_ARGUMENTS_DESTROY_DEFINED_
147 #define KIM_MODEL_COMPUTE_ARGUMENTS_DESTROY_DEFINED_
148 
155 #endif
156 
157 
158 #ifndef KIM_MODEL_EXTENSION_DEFINED_
159 #define KIM_MODEL_EXTENSION_DEFINED_
160 
169 #endif
170 
180  KIM_ModelExtension const * const modelExtension,
181  char const ** const extensionID);
182 
190 KIM_Model *
191 KIM_ModelExtension_ToModel(KIM_ModelExtension * const modelExtension);
192 
203 
214 
225 
235  KIM_ModelExtension * const modelExtension);
236 
247 
258  KIM_ModelExtension * const modelExtension);
259 
269  KIM_ModelExtension const * const modelExtension,
270  KIM_ComputeArguments * const computeArguments);
272 
282  KIM_ModelExtension const * const modelExtension,
283  KIM_ComputeArguments * const computeArguments);
284 
295  KIM_ModelExtension const * const modelExtension,
296  KIM_ComputeArguments * const computeArguments);
297 
307  KIM_ModelExtension const * const modelCompute, void ** const ptr);
308 
317 void KIM_ModelExtension_LogEntry(KIM_ModelExtension const * const modelCompute,
318  KIM_LogVerbosity const logVerbosity,
319  char const * const message,
320  int const lineNumber,
321  char const * const fileName);
322 
331 char const *
332 KIM_ModelExtension_ToString(KIM_ModelExtension const * const modelCompute);
333 
334 #endif /* KIM_MODEL_EXTENSION_H_ */
struct KIM_ComputeArguments KIM_ComputeArguments
Provides the primary interface to a KIM API ComputeArguments object and is meant to be used by simula...
KIM_ModelComputeArguments * KIM_ModelExtension_ToModelComputeArguments(KIM_ModelExtension const *const modelExtension, KIM_ComputeArguments *const computeArguments)
Convert the ModelExtension interface to the Model object to a ModelComputeArguments interface...
KIM_ModelCreate * KIM_ModelExtension_ToModelCreate(KIM_ModelExtension *const modelExtension)
Convert the ModelExtension interface to the Model object to a ModelCreate interface.
KIM_ModelCompute * KIM_ModelExtension_ToModelCompute(KIM_ModelExtension *const modelExtension)
Convert the ModelExtension interface to the Model object to a ModelCompute interface.
struct KIM_ModelExtension KIM_ModelExtension
Forward declaration.
struct KIM_ModelCompute KIM_ModelCompute
Forward declaration.
struct KIM_ModelComputeArgumentsCreate KIM_ModelComputeArgumentsCreate
Forward declaration.
struct KIM_ModelDestroy KIM_ModelDestroy
Forward declaration.
KIM_ModelWriteParameterizedModel * KIM_ModelExtension_ToModelWriteParameterizedModel(KIM_ModelExtension *const modelExtension)
Convert the ModelExtension interface to the Model object to a ModelWriteParameterizedModel interface...
KIM_ModelRefresh * KIM_ModelExtension_ToModelRefresh(KIM_ModelExtension *const modelExtension)
Convert the ModelExtension interface to the Model object to a ModelRefresh interface.
struct KIM_ModelCreate KIM_ModelCreate
Forward declaration.
KIM_ModelDriverCreate * KIM_ModelExtension_ToModelDriverCreate(KIM_ModelExtension *const modelExtension)
Convert the ModelExtension interface to the Model object to a ModelDriverCreate interface.
An Extensible Enumeration for the LogVerbosity's supported by the KIM API.
KIM_ModelComputeArgumentsDestroy * KIM_ModelExtension_ToModelComputeArgumentsDestroy(KIM_ModelExtension const *const modelExtension, KIM_ComputeArguments *const computeArguments)
Convert the ModelExtension interface to the Model object to a ModelComputeArgumentsDestroy interface...
void KIM_ModelExtension_LogEntry(KIM_ModelExtension const *const modelCompute, KIM_LogVerbosity const logVerbosity, char const *const message, int const lineNumber, char const *const fileName)
Write a log entry into the log file.
KIM_ModelDestroy * KIM_ModelExtension_ToModelDestroy(KIM_ModelExtension *const modelExtension)
Convert the ModelExtension interface to the Model object to a ModelDestroy interface.
KIM_ModelComputeArgumentsCreate * KIM_ModelExtension_ToModelComputeArgumentsCreate(KIM_ModelExtension const *const modelExtension, KIM_ComputeArguments *const computeArguments)
Convert the ModelExtension interface to the Model object to a ModelComputeArgumentsCreate interface...
struct KIM_ModelComputeArgumentsDestroy KIM_ModelComputeArgumentsDestroy
Forward declaration.
struct KIM_ModelRefresh KIM_ModelRefresh
Forward declaration.
void KIM_ModelExtension_GetExtensionID(KIM_ModelExtension const *const modelExtension, char const **const extensionID)
Get the extension identification string.
void KIM_ModelExtension_GetModelBufferPointer(KIM_ModelExtension const *const modelCompute, void **const ptr)
Get the Model's buffer pointer within the Model object.
struct KIM_ModelWriteParameterizedModel KIM_ModelWriteParameterizedModel
Forward declaration.
KIM_Model * KIM_ModelExtension_ToModel(KIM_ModelExtension *const modelExtension)
Convert the ModelExtension interface to the Model object to a Model interface.
struct KIM_ModelDriverCreate KIM_ModelDriverCreate
Forward declaration.
struct KIM_Model KIM_Model
Provides the primary interface to a KIM API Model object and is meant to be used by simulators...
Definition: KIM_Model.h:155
struct KIM_ModelComputeArguments KIM_ModelComputeArguments
Forward declaration.
char const * KIM_ModelExtension_ToString(KIM_ModelExtension const *const modelCompute)
Get a string representing the internal state of the Model object.