kim-api 2.3.0+AppleClang.AppleClang.GNU
An Application Programming Interface (API) for the Knowledgebase of Interatomic Models (KIM).
Loading...
Searching...
No Matches
Data Types | Functions/Subroutines | Variables
kim_model_module Module Reference

Provides the primary interface to a KIM API Model object and is meant to be used by simulators. More...

Data Types

interface  kim_clear_then_refresh
 Clear influence distance and neighbor list pointers and refresh Model object after parameter changes. More...
 
interface  kim_compute
 Call the Model's MODEL_ROUTINE_NAME::Compute routine. More...
 
interface  kim_compute_arguments_create
 Create a new ComputeArguments object for the Model object. More...
 
interface  kim_compute_arguments_destroy
 Destroy a previously Model::ComputeArgumentsCreate'd object. More...
 
interface  kim_extension
 Call the Model's MODEL_ROUTINE_NAME::Extension routine. More...
 
interface  kim_get_influence_distance
 Get the Model's influence distance. More...
 
interface  kim_get_neighbor_list_values
 Get Model's neighbor list values. More...
 
interface  kim_get_number_of_neighbor_lists
 Get Model's number of neighbor lists. More...
 
interface  kim_get_number_of_parameters
 Get the number of parameter arrays provided by the Model. More...
 
interface  kim_get_parameter
 Get a parameter value from the Model. More...
 
interface  kim_get_parameter_metadata
 Get the metadata associated with one of the Model's parameter arrays. More...
 
interface  kim_get_simulator_buffer_pointer
 Get the Simulator's buffer pointer from the Model object. More...
 
interface  kim_get_species_support_and_code
 Get the Model's support and code for the requested SpeciesName. More...
 
interface  kim_get_units
 Get the Model's base unit values. More...
 
interface  kim_is_routine_present
 Determine presence and required status of the given ModelRoutineName. More...
 
type  kim_model_handle_type
 Provides the primary interface to a KIM API Model object and is meant to be used by simulators. More...
 
interface  kim_pop_log_verbosity
 Pop a LogVerbosity from the Model object's Log object verbosity stack. More...
 
interface  kim_push_log_verbosity
 Push a new LogVerbosity onto the Model object's Log object verbosity stack. More...
 
interface  kim_set_log_id
 Set the identity of the Log object associated with the Model object. More...
 
interface  kim_set_parameter
 Set a parameter value for the Model. More...
 
interface  kim_set_simulator_buffer_pointer
 Set the Simulator's buffer pointer within the Model object. More...
 
interface  kim_to_string
 Get a string representing the internal state of the Model object. More...
 
interface  kim_write_parameterized_model
 Call the Model's MODEL_ROUTINE_NAME::WriteParameterizedModel routine. More...
 
interface  operator(.eq.)
 Compares kim_model_handle_type's for equality. More...
 
interface  operator(.ne.)
 Compares kim_model_handle_type's for inequality. More...
 

Functions/Subroutines

recursive subroutine, public kim_model_create (numbering, requested_length_unit, requested_energy_unit, requested_charge_unit, requested_temperature_unit, requested_time_unit, model_name, requested_units_accepted, model_handle, ierr)
 Create a new KIM API Model object.
 
recursive subroutine, public kim_model_destroy (model_handle)
 Destroy a previously Model::Create'd object.
 

Variables

type(kim_model_handle_type), save, public, protected kim_model_null_handle
 NULL handle for use in comparisons.
 

Detailed Description

Provides the primary interface to a KIM API Model object and is meant to be used by simulators.

See also
KIM::Model, KIM_Model
Since
2.0

Function/Subroutine Documentation

◆ kim_model_create()

recursive subroutine, public kim_model_module::kim_model_create ( type(kim_numbering_type), intent(in)  numbering,
type(kim_length_unit_type), intent(in)  requested_length_unit,
type(kim_energy_unit_type), intent(in)  requested_energy_unit,
type(kim_charge_unit_type), intent(in)  requested_charge_unit,
type(kim_temperature_unit_type), intent(in)  requested_temperature_unit,
type(kim_time_unit_type), intent(in)  requested_time_unit,
character(len=*, kind=c_char), intent(in)  model_name,
integer(c_int), intent(out)  requested_units_accepted,
type(kim_model_handle_type), intent(out)  model_handle,
integer(c_int), intent(out)  ierr 
)

Create a new KIM API Model object.

A Fortran PM must provide a KIM::MODEL_ROUTINE_NAME::Create routine. The interface for this is given here.

A PM not employing a MD should use the following interface (see also KIM::ModelCreateFunction, KIM_ModelCreateFunction)

interface
recursive subroutine create( &
model_create_handle, requested_length_unit, requested_energy_unit, &
requested_charge_unit, requested_temperature_unit, &
requested_time_unit, ierr) bind(c)
use, intrinsic :: iso_c_binding
implicit none
type(kim_model_create_handle_type), intent(in) :: model_create_handle
type(kim_length_unit_type), intent(in), value :: requested_length_unit
type(kim_energy_unit_type), intent(in), value :: requested_energy_unit
type(kim_charge_unit_type), intent(in), value :: requested_charge_unit
type(kim_temperature_unit_type), intent(in), value :: &
requested_temperature_unit
type(kim_time_unit_type), intent(in), value :: requested_time_unit
integer(c_int), intent(out) :: ierr
end subroutine create
end interface

A MD should use the following interface (see also KIM::ModelDriverCreateFunction, KIM_ModelDriverCreateFunction)

interface
recursive subroutine create( &
model_driver_create_handle, requested_length_unit, &
requested_energy_unit, requested_charge_unit, &
requested_temperature_unit, requested_time_unit, ierr) bind(c)
use, intrinsic :: iso_c_binding
implicit none
type(kim_model_driver_create_handle_type), intent(in) :: &
model_create_handle
type(kim_length_unit_type), intent(in), value :: requested_length_unit
type(kim_energy_unit_type), intent(in), value :: requested_energy_unit
type(kim_charge_unit_type), intent(in), value :: requested_charge_unit
type(kim_temperature_unit_type), intent(in), value :: &
requested_temperature_unit
type(kim_time_unit_type), intent(in), value :: requested_time_unit
integer(c_int), intent(out) :: ierr
end subroutine create
end interface
See also
KIM::Model::Create, KIM_Model_Create
Since
2.0

Definition at line 391 of file kim_model_module.f90.

◆ kim_model_destroy()

recursive subroutine, public kim_model_module::kim_model_destroy ( type(kim_model_handle_type), intent(inout)  model_handle)

Destroy a previously Model::Create'd object.

A Fortran PM must provide a KIM::MODEL_ROUTINE_NAME::Destroy routine. The interface for this is given here (see also KIM::ModelDestroyFunction, KIM_ModelDestroyFunction).

interface
recursive subroutine destroy(model_destroy_handle, ierr) bind(c)
use, intrinsic :: iso_c_binding
implicit none
type(kim_model_destroy_handle_type), intent(in) :: model_destroy_handle
integer(c_int), intent(out) :: ierr
end subroutine destroy
end interface
See also
KIM::Model::Destroy, KIM_Model_Destroy
Since
2.0

Definition at line 470 of file kim_model_module.f90.

Variable Documentation

◆ kim_model_null_handle

type(kim_model_handle_type), save, public, protected kim_model_module::kim_model_null_handle

NULL handle for use in comparisons.

Since
2.0

Definition at line 85 of file kim_model_module.f90.