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).
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 int model_driver_create(KIM::ModelDriverCreate * const modelDriverCreate,
38  KIM::LengthUnit const requestedLengthUnit,
39  KIM::EnergyUnit const requestedEnergyUnit,
40  KIM::ChargeUnit const requestedChargeUnit,
41  KIM::TemperatureUnit const requestedTemperatureUnit,
42  KIM::TimeUnit const requestedTimeUnit);
43 }
44 
46 
48 {
49  public:
50  LennardJones612(KIM::ModelDriverCreate * const modelDriverCreate,
51  KIM::LengthUnit const requestedLengthUnit,
52  KIM::EnergyUnit const requestedEnergyUnit,
53  KIM::ChargeUnit const requestedChargeUnit,
54  KIM::TemperatureUnit const requestedTemperatureUnit,
55  KIM::TimeUnit const requestedTimeUnit,
56  int * const ier);
58 
59  // no need to make these "extern" since KIM will only access them
60  // via function pointers. "static" is required so that there is not
61  // an implicit this pointer added to the prototype by the C++ compiler
62  static int Destroy(KIM::ModelDestroy * const modelDestroy);
63  static int Refresh(KIM::ModelRefresh * const modelRefresh);
64  static int
65  Compute(KIM::ModelCompute const * const modelCompute,
66  KIM::ModelComputeArguments const * const modelComputeArguments);
67  static int ComputeArgumentsCreate(
68  KIM::ModelCompute const * const modelCompute,
69  KIM::ModelComputeArgumentsCreate * const modelComputeArgumentsCreate);
70  static int ComputeArgumentsDestroy(
71  KIM::ModelCompute const * const modelCompute,
72  KIM::ModelComputeArgumentsDestroy * const modelComputeArgumentsDestroy);
73 
74  private:
75  LennardJones612Implementation * implementation_;
76 };
77 
78 #endif // LENNARD_JONES_612_HPP_
Provides the interface to a KIM API Model object for use by models within their MODEL_ROUTINE_NAME::R...
An Extensible Enumeration for the TemperatureUnit's supported by the KIM API.
static int Refresh(KIM::ModelRefresh *const modelRefresh)
An Extensible Enumeration for the TimeUnit's supported by the KIM API.
An Extensible Enumeration for the LengthUnit's supported by the KIM API.
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)
Provides the interface to a KIM API Model object for use by models within their MODEL_ROUTINE_NAME::D...
Provides the interface to a KIM API Model object for use by models within their MODEL_ROUTINE_NAME::C...
static int ComputeArgumentsCreate(KIM::ModelCompute const *const modelCompute, KIM::ModelComputeArgumentsCreate *const modelComputeArgumentsCreate)
Provides the interface to a KIM API Model object for use by models within their MODEL_ROUTINE_NAME::C...
Provides the interface to a KIM API ComputeArguments object for use by models within their MODEL_ROUT...
static int Destroy(KIM::ModelDestroy *const modelDestroy)
An Extensible Enumeration for the EnergyUnit's supported by the KIM API.
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)
Provides the interface to a KIM API ComputeArguments object for use by models within their MODEL_ROUT...
static int ComputeArgumentsDestroy(KIM::ModelCompute const *const modelCompute, KIM::ModelComputeArgumentsDestroy *const modelComputeArgumentsDestroy)
Provides the interface to a KIM API ComputeArguments object for use by models within their MODEL_ROUT...
An Extensible Enumeration for the ChargeUnit's supported by the KIM API.
static int Compute(KIM::ModelCompute const *const modelCompute, KIM::ModelComputeArguments const *const modelComputeArguments)