KIM API V2
Summary of Differences Between kim-api-v1 and kim-api-v2

Previous Section: Implementation.

Experience with using and supporting the kim-api-v1 package has shown that the package's complexity (in terms of the number of different "modes of operation"; e.g., neighbor lists: half, full, iterator, locator; NBCs: cluster, miopbc, neigh_pure, neigh_rvec; etc.) makes it difficult for new users to become competent kim-api-v1 code developers. This also means that KIM Models will only work with KIM-compliant codes that support the same modes of operation, thereby limiting the utility of the kim-api as a standard. Further, the kim-api's complexity results in Model implementations that are convoluted due to developers' desire to support all modes of operation. This experience has led us to an approach that gives kim-api-v2 a dramatically simplified form, while still retaining a high degree of flexibility. Thus, in regard to feature design and selection for the kim-api-v2 package, we have taken "simplicity" as a guiding principle.

High-level changes between kim-api-v1 and kim-api-v2

Lower-level changes between kim-api-v2 and kim-api-v1

Identifier Name translation table:

kim-api-v1 kim-api-v2 C++ Binding
KIM_API_file_init N/A
KIM_API_string_init KIM::Model::Create
KIM_API_get_version KIM::SEM_VER::GetSemVer
KIM_API_get_version_major N/A
KIM_API_get_version_minor N/A
KIM_API_get_version_prerelease N/A
KIM_API_get_version_build_metadata N/A
N/A KIM::SEM_VER::ParseSemVer
KIM_API_version_newer KIM::SEM_VER::IsLessThan
KIM_API_model_info N/A
KIM_API_allocate N/A
KIM_API_c_free N/A
KIM_API_free KIM::Model::Destroy
KIM_API_print KIM::Model::String, KIM::ModelCreate::String, KIM::ModelCompute::String, KIM::ModelRefresh::String, KIM::ModelDestroy::String
KIM_API_model_compute KIM::Model::Compute
KIM_API_model_destroy N/A
KIM_API_get_model_index_shift N/A
N/A KIM::ModelCreate::SetModelNumbering, KIM::ModelDriverCreate::SetModelNumbering
KIM_API_set_model_buffer KIM::ModelCreate::SetModelBufferPointer, KIM::ModelDriverCreate::SetModelBufferPointer
KIM_API_set_sim_buffer KIM::Model::SetSimulatorBufferPointer
KIM_API_get_model_buffer KIM::ModelCompute::GetModelBufferPointer, KIM::ModelDestroy::GetModelBufferPointer, KIM::ModelRefresh::GetModelBufferPointer
KIM_API_get_sim_buffer KIM::Model::GetSimulatorBufferPointer
KIM_API_is_half_neighbors N/A
KIM_API_set_data KIM::Model::SetArgumentPointer
N/A KIM::ModelCreate::SetArgumentSupportStatus, KIM::ModelDriverCreate::SetArgumentSupportStatus
N/A KIM::ModelCreate::SetCallbackSupportStatus, KIM::ModelDriverCreate::SetCallbackSupportStatus
KIM_API_set_method KIM::Model::SetCallbackPointer
KIM_API_get_data KIM::ModelCompute::GetArgumentPointer
KIM_API_get_method N/A
N/A KIM::ModelCompute::IsCallbackPresent
KIM_API_get_size N/A
KIM_API_get_rank N/A
KIM_API_get_shape N/A
KIM_API_set_shape N/A
KIM_API_set_compute N/A
KIM_API_get_compute N/A
N/A KIM::ModelCreate::SetInfluenceDistancePointer, KIM::ModelDriverCreate::SetInfluenceDistancePointer, KIM::ModelRefresh::SetInfluenceDistancePointer
N/A KIM::Model::GetInfluenceDistance
N/A KIM::Model::GetNeighborListCutoffsPointer
N/A KIM::ModelCreate::SetNeighborListCutoffsPointer, KIM::ModelDriverCreate::SetNeighborListCutoffsPointer, KIM::ModelRefresh::SetNeighborListCutoffsPointer
N/A KIM::Model::GetArgumentSupportStatus
N/A KIM::Model::GetCallbackSupportStatus
N/A KIM::ModelCreate::SetRefreshPointer, KIM::ModelDriverCreate::SetRefreshPointer
N/A KIM::ModelCreate::SetDestroyPointer, KIM::ModelDriverCreate::SetDestroyPointer
N/A KIM::ModelCreate::SetComputePointer, KIM::ModelDriverCreate::SetComputePointer
KIM_API_get_index N/A
KIM_API_model_init N/A
KIM_API_model_reinit KIM::Model::ClearInfluenceDistanceAndCutoffsThenRefreshModel
KIM_API_get_num_model_species N/A
KIM_API_get_model_species KIM::Model::GetSpeciesSupportAndCode
KIM_API_get_num_sim_species N/A
KIM_API_get_sim_species N/A
N/A KIM::ModelDriverCreate::GetNumberOfParameterFiles
N/A KIM::ModelDriverCreate::GetParameterFileName
KIM_API_get_num_params KIM::Model::GetNumberOfParameters
KIM_API_get_parameter KIM::Model::GetParameter
N/A KIM::Model::SetParameter
N/A KIM::Model::GetParameterDataTypeExtentAndDescription
N/A KIM::ModelCreate::SetParameterPointer, KIM::ModelDriverCreate::SetParameterPointer
KIM_API_get_num_free_params N/A
KIM_API_get_free_parameter N/A
KIM_API_get_num_fixed_params N/A
KIM_API_get_fixed_parameter N/A
KIM_API_get_NBC_method N/A
KIM_API_get_species_code KIM::Model::GetSpeciesSupportAndCode
KIM_API_set_species_code KIM::ModelCreate::SetSpeciesCode, KIM::ModelDriverCreate::SetSpeciesCode
KIM_API_get_model_kim_str_len N/A
KIM_API_get_model_kim_str N/A
KIM_API_get_neigh_mode N/A
KIM_API_get_neigh KIM::ModelCompute::GetNeighborList
KIM_API_process_dEdr KIM::ModelCompute::ProcessDEDrTerm
KIM_API_process_d2Edr2 KIM::ModelCompute::ProcessD2EDr2Term
KIM_API_get_status_msg N/A
KIM_API_report_error KIM::Log::LogEntry, KIM::ModelCreate::LogEntry, KIM::ModelCompute::LogEntry, KIM::ModelRefresh::LogEntry, KIM::ModelDestroy::LogEntry
N/A KIM::Model::SetLogID
N/A KIM::Model::PushLogVerbosity
N/A KIM::Model::PopLogVerbosity
KIM_API_get_scale_conversion KIM::ModelCreate::ConvertUnit, KIM::ModelDriverCreate::ConvertUnit
KIM_API_get_unit_handling N/A
KIM_API_get_unit_length KIM::Model::GetUnits
KIM_API_get_unit_energy KIM::Model::GetUnits
KIM_API_get_unit_charge KIM::Model::GetUnits
KIM_API_get_unit_temperature KIM::Model::GetUnits
KIM_API_get_unit_time KIM::Model::GetUnits
N/A KIM::ModelCreate::SetUnits, KIM::ModelDriverCreate::SetUnits
KIM_API_convert_to_act_unit N/A
KIM_API_set_data_by_index N/A
KIM_API_set_method_by_index N/A
KIM_API_get_data_by_index N/A
KIM_API_get_method_by_index N/A
KIM_API_get_size_by_index N/A
KIM_API_get_rank_by_index N/A
KIM_API_get_shape_by_index N/A
KIM_API_set_compute_by_index N/A
KIM_API_get_compute_by_index N/A
KIM_API_getm_compute N/A
KIM_API_setm_compute N/A
KIM_API_getm_compute_by_index N/A
KIM_API_setm_compute_by_index N/A
KIM_API_getm_data N/A
KIM_API_getm_method N/A
KIM_API_setm_data N/A
KIM_API_setm_method N/A
KIM_API_getm_data_by_index N/A
KIM_API_getm_method_by_index N/A
KIM_API_setm_data_by_index N/A
KIM_API_setm_method_by_index N/A
KIM_API_getm_index N/A

Next Section: Browse files.