Model Management
Low-level wrappers for constructing, configuring, and executing KIM-API models.
KIM_API.ComputeArguments — TypeComputeArgumentsWrapper for KIM-API compute arguments pointer.
This mutable struct holds a pointer to a KIM-API compute arguments instance, which contains all the data needed for model calculations including particle positions, species, and output arrays.
Fields
p::Ptr{Cvoid}: C pointer to the KIM-API compute arguments
KIM_API.Model — TypeModelWrapper for KIM-API model pointer.
This mutable struct holds a pointer to a KIM-API model instance. The pointer should be initialized using create_model() and destroyed using destroy_model!() to prevent memory leaks.
Fields
p::Ptr{Cvoid}: C pointer to the KIM-API model
KIM_API.compute! — Methodcompute!(model::Model, args::ComputeArguments)Execute the model computation.
KIM_API.create_compute_arguments — Methodcreate_compute_arguments(model::Model) -> ComputeArgumentsCreate compute arguments for the model.
KIM_API.create_model — Methodcreate_model(numbering, length_unit, energy_unit, charge_unit, temperature_unit, time_unit, model_name) -> (Model, Bool)Create a new KIM-API model instance with specified units.
Arguments
numbering::Numbering: Indexing scheme (zeroBased or oneBased)length_unit::LengthUnit: Length unit (A, Bohr, cm, m, nm)energy_unit::EnergyUnit: Energy unit (eV, J, kcal_mol, etc.)charge_unit::ChargeUnit: Charge unit (C, e, statC)temperature_unit::TemperatureUnit: Temperature unit (K)time_unit::TimeUnit: Time unit (fs, ps, ns, s)model_name::String: Name of the KIM model to load
Returns
Model: The created model instanceBool: Whether the specified units were accepted by the model
Throws
ErrorException: If model creation fails
Example
model, accepted = create_model(
zeroBased, A, eV, e, K, ps,
"SW_StillingerWeber_1985_Si__MO_405512056662_006"
)
if !accepted
error("Model rejected the specified units")
endKIM_API.destroy_compute_arguments! — Methoddestroy_compute_arguments!(model::Model, args::ComputeArguments)Destroy compute arguments.
KIM_API.destroy_model! — Methoddestroy_model!(model::Model)Destroy a Model and free memory. TODO: Is this needed? The model should automatically be destroyed when the Julia process exits.
KIM_API.get_argument_support_status — Methodget_argument_support_status(args::ComputeArguments, arg_name::ComputeArgumentName) -> SupportStatusGet the support status for a compute argument.
KIM_API.get_influence_distance — Methodget_influence_distance(model::Model) -> Float64Get the influence distance (cutoff) from the model.
KIM_API.get_neighbor_list_pointers — Methodget_neighbor_list_pointers(model::Model) -> (n_lists, cutoffs, will_not_request)Get neighbor list information from the model.
KIM_API.set_argument_pointer! — Methodset_argument_pointer!(args::ComputeArguments, arg_name::ComputeArgumentName, ptr)Set a double argument pointer.
KIM_API.set_argument_pointer! — Methodset_argument_pointer!(args::ComputeArguments, arg_name::ComputeArgumentName, ptr)Set an integer argument pointer.
KIM_API.set_callback_pointer! — Methodset_callback_pointer!(args::ComputeArguments, callback::ComputeCallbackName,
language::LanguageName, func_ptr, data_ptr)Set a callback function pointer.