KIM API V2
LennardJones612.hpp
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 Development
5 // 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 LICENSE.CDDL.
13 // If applicable, add the following below this CDDL HEADER, with the fields
14 // enclosed by brackets "[]" replaced with your own identifying information:
15 //
16 // Portions Copyright (c) [yyyy] [name of copyright owner]. All rights reserved.
17 //
18 // CDDL HEADER END
19 //
20 
21 //
22 // Copyright (c) 2015, Regents of the University of Minnesota.
23 // All rights reserved.
24 //
25 // Contributors:
26 // Ryan S. Elliott
27 // Andrew Akerson
28 //
29 
30 
31 #ifndef LENNARD_JONES_612_HPP_
32 #define LENNARD_JONES_612_HPP_
33 
35 
36 extern "C"
37 {
39  KIM::ModelDriverCreate * const modelDriverCreate,
40  KIM::LengthUnit const requestedLengthUnit,
41  KIM::EnergyUnit const requestedEnergyUnit,
42  KIM::ChargeUnit const requestedChargeUnit,
43  KIM::TemperatureUnit const requestedTemperatureUnit,
44  KIM::TimeUnit const requestedTimeUnit);
45 }
46 
48 
50 {
51  public:
53  KIM::ModelDriverCreate* const modelDriverCreate,
54  KIM::LengthUnit const requestedLengthUnit,
55  KIM::EnergyUnit const requestedEnergyUnit,
56  KIM::ChargeUnit const requestedChargeUnit,
57  KIM::TemperatureUnit const requestedTemperatureUnit,
58  KIM::TimeUnit const requestedTimeUnit,
59  int* const ier);
61 
62  // no need to make these "extern" since KIM will only access them
63  // via function pointers. "static" is required so that there is not
64  // an implicit this pointer added to the prototype by the C++ compiler
65  static int Destroy(KIM::ModelDestroy * const modelDestroy);
66  static int Refresh(KIM::ModelRefresh * const modelRefresh);
67  static int Compute(
68  KIM::ModelCompute const * const modelCompute,
69  KIM::ModelComputeArguments const * const modelComputeArguments);
70  static int ComputeArgumentsCreate(
71  KIM::ModelCompute const * const modelCompute,
72  KIM::ModelComputeArgumentsCreate * const modelComputeArgumentsCreate);
73  static int ComputeArgumentsDestroy(
74  KIM::ModelCompute const * const modelCompute,
75  KIM::ModelComputeArgumentsDestroy * const modelComputeArgumentsDestroy);
76 
77  private:
78  LennardJones612Implementation* implementation_;
79 };
80 
81 #endif // LENNARD_JONES_612_HPP_
static int Refresh(KIM::ModelRefresh *const modelRefresh)
LennardJones612(KIM::ModelDriverCreate *const modelDriverCreate, KIM::LengthUnit const requestedLengthUnit, KIM::EnergyUnit const requestedEnergyUnit, KIM::ChargeUnit const requestedChargeUnit, KIM::TemperatureUnit const requestedTemperatureUnit, KIM::TimeUnit const requestedTimeUnit, int *const ier)
static int ComputeArgumentsCreate(KIM::ModelCompute const *const modelCompute, KIM::ModelComputeArgumentsCreate *const modelComputeArgumentsCreate)
static int Destroy(KIM::ModelDestroy *const modelDestroy)
int model_driver_create(KIM::ModelDriverCreate *const modelDriverCreate, KIM::LengthUnit const requestedLengthUnit, KIM::EnergyUnit const requestedEnergyUnit, KIM::ChargeUnit const requestedChargeUnit, KIM::TemperatureUnit const requestedTemperatureUnit, KIM::TimeUnit const requestedTimeUnit)
static int ComputeArgumentsDestroy(KIM::ModelCompute const *const modelCompute, KIM::ModelComputeArgumentsDestroy *const modelComputeArgumentsDestroy)
static int Compute(KIM::ModelCompute const *const modelCompute, KIM::ModelComputeArguments const *const modelComputeArguments)