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_FunctionTypes.h
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 */
5 /* Development 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 */
13 /* LICENSE.CDDL. */
14 /* If applicable, add the following below this CDDL HEADER, with the fields */
15 /* enclosed by brackets "[]" replaced with your own identifying information: */
16 /* */
17 /* Portions Copyright (c) [yyyy] [name of copyright owner]. */
18 /* All rights reserved. */
19 /* */
20 /* CDDL HEADER END */
21 /* */
22 
23 /* */
24 /* Copyright (c) 2016--2019, Regents of the University of Minnesota. */
25 /* All rights reserved. */
26 /* */
27 /* Contributors: */
28 /* Ryan S. Elliott */
29 /* */
30 
31 /* */
32 /* Release: This file is part of the kim-api.git repository. */
33 /* */
34 
35 
36 #ifndef KIM_FUNCTION_TYPES_H_
37 #define KIM_FUNCTION_TYPES_H_
38 
39 /* Forward declarations */
40 #ifndef KIM_LENGTH_UNIT_DEFINED_
41 #define KIM_LENGTH_UNIT_DEFINED_
42 
48 #endif
49 
50 #ifndef KIM_ENERGY_UNIT_DEFINED_
51 #define KIM_ENERGY_UNIT_DEFINED_
52 
58 #endif
59 
60 #ifndef KIM_CHARGE_UNIT_DEFINED_
61 #define KIM_CHARGE_UNIT_DEFINED_
62 
68 #endif
69 
70 #ifndef KIM_TEMPERATURE_UNIT_DEFINED_
71 #define KIM_TEMPERATURE_UNIT_DEFINED_
72 
78 #endif
79 
80 #ifndef KIM_TIME_UNIT_DEFINED_
81 #define KIM_TIME_UNIT_DEFINED_
82 
87 typedef struct KIM_TimeUnit KIM_TimeUnit;
88 #endif
89 
90 #ifndef KIM_MODEL_CREATE_DEFINED_
91 #define KIM_MODEL_CREATE_DEFINED_
92 
98 #endif
99 
100 #ifndef KIM_MODEL_DRIVER_CREATE_DEFINED_
101 #define KIM_MODEL_DRIVER_CREATE_DEFINED_
102 
108 #endif
109 
110 #ifndef KIM_MODEL_COMPUTE_DEFINED_
111 #define KIM_MODEL_COMPUTE_DEFINED_
112 
118 #endif
119 
120 #ifndef KIM_MODEL_EXTENSION_DEFINED_
121 #define KIM_MODEL_EXTENSION_DEFINED_
122 
128 #endif
129 
130 #ifndef KIM_MODEL_COMPUTE_ARGUMENTS_CREATE_DEFINED_
131 #define KIM_MODEL_COMPUTE_ARGUMENTS_CREATE_DEFINED_
132 
138 #endif
139 
140 #ifndef KIM_MODEL_COMPUTE_ARGUMENTS_DEFINED_
141 #define KIM_MODEL_COMPUTE_ARGUMENTS_DEFINED_
142 
148 #endif
149 
150 #ifndef KIM_MODEL_REFRESH_DEFINED_
151 #define KIM_MODEL_REFRESH_DEFINED_
152 
158 #endif
159 
160 #ifndef KIM_MODEL_WRITE_PARAMETERIZED_MODEL_DEFINED_
161 #define KIM_MODEL_WRITE_PARAMETERIZED_MODEL_DEFINED_
162 
169 #endif
170 
171 #ifndef KIM_MODEL_COMPUTE_ARGUMENTS_DESTROY_DEFINED_
172 #define KIM_MODEL_COMPUTE_ARGUMENTS_DESTROY_DEFINED_
173 
180 #endif
181 
182 #ifndef KIM_MODEL_DESTROY_DEFINED_
183 #define KIM_MODEL_DESTROY_DEFINED_
184 
190 #endif
191 
192 
200 typedef void(KIM_Function)(void); /* Generic function pointer */
201 
209 typedef int
211  KIM_LengthUnit const requestedLengthUnit,
212  KIM_EnergyUnit const requestedEnergyUnit,
213  KIM_ChargeUnit const requestedChargeUnit,
214  KIM_TemperatureUnit const requestedTemperatureUnit,
215  KIM_TimeUnit const requestedTimeUnit);
216 
225  KIM_ModelDriverCreate * const modelDriverCreate,
226  KIM_LengthUnit const requestedLengthUnit,
227  KIM_EnergyUnit const requestedEnergyUnit,
228  KIM_ChargeUnit const requestedChargeUnit,
229  KIM_TemperatureUnit const requestedTemperatureUnit,
230  KIM_TimeUnit const requestedTimeUnit);
231 
241  KIM_ModelCompute const * const modelCompute,
242  KIM_ModelComputeArgumentsCreate * const modelComputeArgumentsCreate);
243 
252  KIM_ModelCompute const * const modelCompute,
253  KIM_ModelComputeArguments const * const modelComputeArguments);
254 
263 typedef int KIM_GetNeighborListFunction(void * const dataObject,
264  int const numberOfNeighborLists,
265  double const * const cutoffs,
266  int const neighborListIndex,
267  int const particleNumber,
268  int * const numberOfNeighbors,
269  int const ** const neighborsOfParticle);
270 
279 typedef int KIM_ProcessDEDrTermFunction(void * const dataObject,
280  double const de,
281  double const r,
282  double const * const dx,
283  int const i,
284  int const j);
285 
295 typedef int KIM_ProcessD2EDr2TermFunction(void * const dataObject,
296  double const de,
297  double const * const r,
298  double const * const dx,
299  int const * const i,
300  int const * const j);
301 
309 typedef int
311  void * const extensionStructure);
312 
321 typedef int KIM_ModelRefreshFunction(KIM_ModelRefresh * const modelRefresh);
322 
333  modelWriteParameterizedModel);
334 
344  KIM_ModelCompute const * const modelCompute,
345  KIM_ModelComputeArgumentsDestroy * const modelComputeArgumentsDestroy);
346 
354 typedef int KIM_ModelDestroyFunction(KIM_ModelDestroy * const modelDestroy);
355 
356 #endif /* KIM_FUNCTION_TYPES_H_ */
int KIM_ModelComputeArgumentsCreateFunction(KIM_ModelCompute const *const modelCompute, KIM_ModelComputeArgumentsCreate *const modelComputeArgumentsCreate)
Prototype for MODEL_ROUTINE_NAME::ComputeArgumentsCreate routine.
int KIM_ProcessD2EDr2TermFunction(void *const dataObject, double const de, double const *const r, double const *const dx, int const *const i, int const *const j)
Prototype for COMPUTE_CALLBACK_NAME::ProcessD2EDr2Term routine.
void() KIM_Function(void)
Generic function type.
int KIM_ModelDriverCreateFunction(KIM_ModelDriverCreate *const modelDriverCreate, KIM_LengthUnit const requestedLengthUnit, KIM_EnergyUnit const requestedEnergyUnit, KIM_ChargeUnit const requestedChargeUnit, KIM_TemperatureUnit const requestedTemperatureUnit, KIM_TimeUnit const requestedTimeUnit)
Prototype for MODEL_ROUTINE_NAME::Create routine.
An Extensible Enumeration for the EnergyUnit's supported by the KIM API.
struct KIM_ModelExtension KIM_ModelExtension
Forward declaration.
int KIM_ModelExtensionFunction(KIM_ModelExtension *const modelExtension, void *const extensionStructure)
Prototype for MODEL_ROUTINE_NAME::Extension routine.
int KIM_ModelCreateFunction(KIM_ModelCreate *const modelCreate, KIM_LengthUnit const requestedLengthUnit, KIM_EnergyUnit const requestedEnergyUnit, KIM_ChargeUnit const requestedChargeUnit, KIM_TemperatureUnit const requestedTemperatureUnit, KIM_TimeUnit const requestedTimeUnit)
Prototype for MODEL_ROUTINE_NAME::Create routine.
An Extensible Enumeration for the LengthUnit's supported by the KIM API.
struct KIM_ModelCompute KIM_ModelCompute
Forward declaration.
An Extensible Enumeration for the ChargeUnit's supported by the KIM API.
struct KIM_ModelComputeArgumentsCreate KIM_ModelComputeArgumentsCreate
Forward declaration.
struct KIM_ModelDestroy KIM_ModelDestroy
Forward declaration.
int KIM_GetNeighborListFunction(void *const dataObject, int const numberOfNeighborLists, double const *const cutoffs, int const neighborListIndex, int const particleNumber, int *const numberOfNeighbors, int const **const neighborsOfParticle)
Prototype for COMPUTE_CALLBACK_NAME::GetNeighborList routine.
int KIM_ModelComputeArgumentsDestroyFunction(KIM_ModelCompute const *const modelCompute, KIM_ModelComputeArgumentsDestroy *const modelComputeArgumentsDestroy)
Prototype for MODEL_ROUTINE_NAME::ComputeArgumentsDestroy routine.
struct KIM_ModelCreate KIM_ModelCreate
Forward declaration.
int KIM_ModelWriteParameterizedModelFunction(KIM_ModelWriteParameterizedModel const *const modelWriteParameterizedModel)
Prototype for MODEL_ROUTINE_NAME::WriteParameterizedModel routine.
An Extensible Enumeration for the TimeUnit's supported by the KIM API.
Definition: KIM_TimeUnit.h:46
struct KIM_ModelComputeArgumentsDestroy KIM_ModelComputeArgumentsDestroy
Forward declaration.
struct KIM_ModelRefresh KIM_ModelRefresh
Forward declaration.
int KIM_ProcessDEDrTermFunction(void *const dataObject, double const de, double const r, double const *const dx, int const i, int const j)
Prototype for COMPUTE_CALLBACK_NAME::ProcessDEDrTerm routine.
int KIM_ModelComputeFunction(KIM_ModelCompute const *const modelCompute, KIM_ModelComputeArguments const *const modelComputeArguments)
Prototype for MODEL_ROUTINE_NAME::Compute routine.
int KIM_ModelRefreshFunction(KIM_ModelRefresh *const modelRefresh)
Prototype for MODEL_ROUTINE_NAME::Refresh routine.
struct KIM_ModelWriteParameterizedModel KIM_ModelWriteParameterizedModel
Forward declaration.
int KIM_ModelDestroyFunction(KIM_ModelDestroy *const modelDestroy)
Prototype for MODEL_ROUTINE_NAME::Destroy routine.
An Extensible Enumeration for the TemperatureUnit's supported by the KIM API.
struct KIM_ModelDriverCreate KIM_ModelDriverCreate
Forward declaration.
struct KIM_ModelComputeArguments KIM_ModelComputeArguments
Forward declaration.