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 
34 #include "KIM_UnitSystem.hpp"
36 #include "KIM_ModelRefresh.hpp"
37 #include "KIM_ModelDestroy.hpp"
38 #include "KIM_ModelCompute.hpp"
39 
40 extern "C"
41 {
43  KIM::ModelDriverCreate * const modelDriverCreate,
44  KIM::LengthUnit const requestedLengthUnit,
45  KIM::EnergyUnit const requestedEnergyUnit,
46  KIM::ChargeUnit const requestedChargeUnit,
47  KIM::TemperatureUnit const requestedTemperatureUnit,
48  KIM::TimeUnit const requestedTimeUnit);
49 }
50 
52 
54 {
55  public:
57  KIM::ModelDriverCreate* const modelDriverCreate,
58  KIM::LengthUnit const requestedLengthUnit,
59  KIM::EnergyUnit const requestedEnergyUnit,
60  KIM::ChargeUnit const requestedChargeUnit,
61  KIM::TemperatureUnit const requestedTemperatureUnit,
62  KIM::TimeUnit const requestedTimeUnit,
63  int* const ier);
65 
66  // no need to make these "extern" since KIM will only access them
67  // via function pointers. "static" is required so that there is not
68  // an implicit this pointer added to the prototype by the C++ compiler
69  static int Destroy(KIM::ModelDestroy * const modelDestroy);
70  static int Refresh(KIM::ModelRefresh * const modelRefresh);
71  static int Compute(KIM::ModelCompute const * const modelCompute);
72 
73  private:
74  LennardJones612Implementation* implementation_;
75 };
76 
77 #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 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 Compute(KIM::ModelCompute const *const modelCompute)