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--2020, 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-2.2.1 package.                   */
33 /*                                                                            */
34 
35 
36 #ifndef KIM_MODEL_COMPUTE_ARGUMENTS_H_
37 #define KIM_MODEL_COMPUTE_ARGUMENTS_H_
38 
39 /* Forward declarations */
40 #ifndef KIM_LOG_VERBOSITY_DEFINED_
41 #define KIM_LOG_VERBOSITY_DEFINED_
42 /**
43  ** \brief Forward declaration.
44  **
45  ** \since 2.0
46  **/
47 typedef struct KIM_LogVerbosity KIM_LogVerbosity;
48 #endif
49 
50 #ifndef KIM_COMPUTE_ARGUMENT_NAME_DEFINED_
51 #define KIM_COMPUTE_ARGUMENT_NAME_DEFINED_
52 /**
53  ** \brief Forward declaration.
54  **
55  ** \since 2.0
56  **/
57 typedef struct KIM_ComputeArgumentName KIM_ComputeArgumentName;
58 #endif
59 
60 #ifndef KIM_COMPUTE_CALLBACK_NAME_DEFINED_
61 #define KIM_COMPUTE_CALLBACK_NAME_DEFINED_
62 /**
63  ** \brief Forward declaration.
64  **
65  ** \since 2.0
66  **/
67 typedef struct KIM_ComputeCallbackName KIM_ComputeCallbackName;
68 #endif
69 
70 
71 #ifndef KIM_MODEL_COMPUTE_ARGUMENTS_DEFINED_
72 #define KIM_MODEL_COMPUTE_ARGUMENTS_DEFINED_
73 /**
74  ** \brief \copybrief KIM::ModelComputeArguments
75  **
76  ** \sa KIM::ModelComputeArguments,
77  ** kim_model_compute_arguments_module::kim_model_compute_arguments_handle_type
78  **
79  ** \since 2.0
80  **/
81 typedef struct KIM_ModelComputeArguments KIM_ModelComputeArguments;
82 #endif
83 
84 /**
85  ** \brief \copybrief KIM::ModelComputeArguments::GetNeighborList
86  **
87  ** \sa KIM::ModelComputeArguments::GetNeighborList,
88  ** kim_model_compute_arguments_module::kim_get_neighbor_list
89  **
90  ** \since 2.0
91  **/
92 int KIM_ModelComputeArguments_GetNeighborList(
93     KIM_ModelComputeArguments const * const modelComputeArguments,
94     int const neighborListIndex,
95     int const particleNumber,
96     int * const numberOfNeighbors,
97     int const ** const neighborsOfParticle);
98 
99 /**
100  ** \brief \copybrief KIM::ModelComputeArguments::ProcessDEDrTerm
101  **
102  ** \sa KIM::ModelComputeArguments::ProcessDEDrTerm,
103  ** kim_model_compute_arguments_module::kim_process_dedr_term
104  **
105  ** \since 2.0
106  **/
107 int KIM_ModelComputeArguments_ProcessDEDrTerm(
108     KIM_ModelComputeArguments const * const modelComputeArguments,
109     double const de,
110     double const r,
111     double const * const dx,
112     int const i,
113     int const j);
114 
115 /**
116  ** \brief \copybrief KIM::ModelComputeArguments::ProcessD2EDr2Term
117  **
118  ** \sa KIM::ModelComputeArguments::ProcessD2EDr2Term,
119  ** kim_model_compute_arguments_module::kim_process_d2edr2_term
120  **
121  ** \since 2.0
122  **/
123 int KIM_ModelComputeArguments_ProcessD2EDr2Term(
124     KIM_ModelComputeArguments const * const modelComputeArguments,
125     double const de,
126     double const * const r,
127     double const * const dx,
128     int const * const i,
129     int const * const j);
130 
131 /**
132  ** \brief \copybrief KIM::ModelComputeArguments::GetArgumentPointer
133  **
134  ** \sa KIM::ModelComputeArguments::GetArgumentPointer,
135  ** kim_model_compute_arguments_module::kim_get_argument_pointer
136  **
137  ** \since 2.0
138  **/
139 int KIM_ModelComputeArguments_GetArgumentPointerInteger(
140     KIM_ModelComputeArguments const * const modelComputeArguments,
141     KIM_ComputeArgumentName const computeArgumentName,
142     int ** const ptr);
143 
144 /**
145  ** \brief \copybrief KIM::ModelComputeArguments::GetArgumentPointer
146  **
147  ** \sa KIM::ModelComputeArguments::GetArgumentPointer,
148  ** kim_model_compute_arguments_module::kim_get_argument_pointer
149  **
150  ** \since 2.0
151  **/
152 int KIM_ModelComputeArguments_GetArgumentPointerDouble(
153     KIM_ModelComputeArguments const * const modelComputeArguments,
154     KIM_ComputeArgumentName const computeArgumentName,
155     double ** const ptr);
156 
157 /**
158  ** \brief \copybrief KIM::ModelComputeArguments::IsCallbackPresent
159  **
160  ** \sa KIM::ModelComputeArguments::IsCallbackPresent,
161  ** kim_model_compute_arguments_module::kim_is_callback_present
162  **
163  ** \since 2.0
164  **/
165 int KIM_ModelComputeArguments_IsCallbackPresent(
166     KIM_ModelComputeArguments const * const modelComputeArguments,
167     KIM_ComputeCallbackName const computeCallbackName,
168     int * const present);
169 
170 /**
171  ** \brief \copybrief KIM::ModelComputeArguments::SetModelBufferPointer
172  **
173  ** \sa KIM::ModelComputeArguments::SetModelBufferPointer,
174  ** kim_model_compute_arguments_module::kim_set_model_buffer_pointer
175  **
176  ** \since 2.0
177  **/
178 void KIM_ModelComputeArguments_SetModelBufferPointer(
179     KIM_ModelComputeArguments * const modelComputeArguments, void * const ptr);
180 
181 /**
182  ** \brief \copybrief KIM::ModelComputeArguments::GetModelBufferPointer
183  **
184  ** \sa KIM::ModelComputeArguments::GetModelBufferPointer,
185  ** kim_model_compute_arguments_module::kim_get_model_buffer_pointer
186  **
187  ** \since 2.0
188  **/
189 void KIM_ModelComputeArguments_GetModelBufferPointer(
190     KIM_ModelComputeArguments const * const modelComputeArguments,
191     void ** const ptr);
192 
193 /**
194  ** \brief \copybrief KIM::ModelComputeArguments::LogEntry
195  **
196  ** \sa KIM::ModelComputeArguments::LogEntry,
197  ** kim_model_compute_arguments_module::kim_log_entry
198  **
199  ** \since 2.0
200  **/
201 void KIM_ModelComputeArguments_LogEntry(
202     KIM_ModelComputeArguments const * const modelComputeArguments,
203     KIM_LogVerbosity const logVerbosity,
204     char const * const message,
205     int const lineNumber,
206     char const * const fileName);
207 
208 /**
209  ** \brief \copybrief KIM::ModelComputeArguments::ToString
210  **
211  ** \sa KIM::ModelComputeArguments::ToString,
212  ** kim_model_compute_arguments_module::kim_to_string
213  **
214  ** \since 2.0
215  **/
216 char const * KIM_ModelComputeArguments_ToString(
217     KIM_ModelComputeArguments const * const modelComputeArguments);
218 
219 #endif /* KIM_MODEL_COMPUTE_ARGUMENTS_H_ */
220