Skip to content

A KIM test written in C++. Just an assortment of features I want to test.

Notifications You must be signed in to change notification settings

t-brink/kim-mytest

Repository files navigation

A simple program to use and test models from the KIM project.

The Makefile assumes that nlopt (https://nlopt.readthedocs.io/) and its
headers are installed in standard system paths.

************************************************************************

Commands that are read by the main program's command line:

box
===

box <name>
    <lattice> <lattice constant> <cubic box?>
    <repeat a> <repeat b> <repeat c>
    <periodic a?> <periodic b?> <periodic c?>
    <atom type> [<atom type> ...]

Create a new box with a given pre-defined lattice. Options with a
question mark are booleans (true/false).


random_box
==========

random_box <name>
           <periodic a?> <periodic b?> <periodic c?>
           <minimum distance between atoms>
           <atom type> [<atom type> ...]

Create a box randomly filled with atoms with a minimum distance
between them. The box is a cube with side length equal to five times
the minimum distance. If more than one atom type is provided, they are
chosen randomly for the atoms.


copy_box
========

copy_box <src> <dst>

Copy a box named <src> and name the copy <dst>.


delete_atom
===========

delete_atom <box name> [<i>]

Delete atom <i> from the given box. If <i> is not provided, delete a
random atom.


model
=====

model <name> <box name> <KIM model name>

Init a KIM model (wrapper). Needs an existing box.


change_box
==========

change_box <model name> <box name>

Associate the given box to the given model.


switch_boxes
============

Not implemented.


deform_box
==========

deform_box <model name> <Dxx> <Dyy> <Dzz> <Dyz> <Dxz> <Dxy>

Deform the box registered with the provided model. The values are the
deformation matrix in Voigt notation, where the deformation matrix is
defined as the sum of the strain matrix ε and the identity matrix I.


write_box
=========

write_box <box name> <file name>

Write the given box to a file in extended XYZ format.


compute
=======

compute <model name> [<n iterations>]

Compute and store values for the given model using its currently
associated box.

Optionally, the compute can be repeated n times. This is mostly useful
for benchmarking (after all the result should be the same every
time). If n is greater than 1, the walltime needed to do all the
calculations is printed.


check_testfile
==============

TODO   


optimize_positions
==============

TODO   


bulk_modulus_energy
==============

TODO   


bulk_modulus_pressure
==============

TODO   


stiffness_tensor
==============

TODO   


numer_forces_deriv
==============

TODO   


numer_forces_deriv_fast
==============

TODO   


diff_total_energy_vs_particle_energy
==============

TODO   


diff_total_virial_vs_particle_virial
==============

TODO   


diff_total_virial_vs_virial_from_forces
==============

TODO   


diff_total_virial_vs_virial_from_dEdr
==============

TODO   


print
=====

print <msg>

Print <msg> to screen. Here, <msg> is everything after "print "
(including one space) up to the next newline character (excluded).


println
=======

println <msg>

Like "print", but also print a newline.

About

A KIM test written in C++. Just an assortment of features I want to test.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published