Cooper, Rushton and Grimes Actinide Potential Model (v1.2)

We have developed a potential model describing a range of actinide oxides which includes many-body effects to improve the description of their thermophysical properties. The model has been developed to describe the following oxides and as of v1.2 of the model, their solid solutions: CeO₂, ThO₂, UO₂, NpO₂, PuO₂, AmO₂ and CmO₂.

This software repository provides scripts and computer programs to support the use of the model in commonly used simulation codes and to allow it to be extended.

For more information about the potential model see our website at

Table of Contents

Getting Started

  • Install pre-requisites:

    • The tabulation script depends on the atsim.potentials python package. This must be installed before attempting to tabulate the potentials.
    • atsim.potentials can be installed using the python package manager pip by running the following command:

      pip install atsim.potentials

  • Download and unzip actinide potentials tabulation code:

  • Or use mercurial to create a working copy of this repository.

Using the actinide_tabulate Script

Tabulations are created using the actinide_tabulate python script. This is invoked from the command line by typing:

    python -m actinide_tabulate

See the DL_POLY and LAMMPS sections below for specific examples of how to use the script.

The script can take a number of additional options to customise the table files it produced:

      --nr NR          Number of rows used to tabulate density and pair-potential
      --dr DR          Step-size between density and pair potential functions (in
      --nrho NRHO      Number of rows in embedding function.
      --drho DRHO      Step-size in density function.

Modifying Potential Parameters

The parameters used by the actinide_tabulate script are contained within the Cooper_Rushton_Grimes.csv file in the root directory of the tabulation package. This is a comma separated file containing three blocks (indicated by a line #BLOCK_NAME):

  • #Atom-Data: describes charges and masses for different species. The columns within this block are as follows:

    • species: (string) giving label for different elements within model.
    • charge: (float) atomic charge.
    • mass: (float) atomic mass in amu.
    • atomic_number: (int) atomic number of element.
  • #Many-Body: parameters relating to the EAM component of the model. See the model description for a complete description of the meaning of these columns:

    • species: (string) label referring to species from the #Atom-Data block.
    • G: (float) EAM embedding function parameter.
    • n: (float) Density function parameter.
  • #Pair-Potentials: parameters relating to the pairwise component of the model.

    • speciesA: (string) label referring to species from the #Atom-Data block for first species in a particular atom pair.
    • speciesB: (string) label referring to species from the #Atom-Data block for second species in a particular atom pair.
    • A: (float) Buckingham potential parameter.
    • rho: (float) Buckingham ϱ parameter.
    • C: (float) Buckingham C parameter.
    • D: (float) Morse potential parameter.
    • gamma: (float) Morse γ parameter.
    • r0: (float) Morse equilibrium bond length parameter.

To modify the model it should just be a case of editing or adding rows as appropriate to the csv file.



The examples/dlpoly/ directory contains DL_POLY input files, these are provided to allow users to get up and running quickly with the model.

Single actinide examples are provided for each of the actinide oxides in the model, namely Am, Ce, Cm, Np, Th, Pu and U. These can be found in the examples/dl_poly/MO2 directories, where M is the actinide species. These each contain an 8⨉8⨉8 super-cell NPT equilibration at 300K.

Additionally, a mixed oxide example is provided in the examples/dl_poly/UThO2 directory for a 50% uranium, 50% thorium mixed oxide composition.

Single oxide tabulation (examples/dl_poly/UO2)

This example will show how to tabulate the potential model for an 8⨉8⨉8 UO₂ super-cell. The same process can be repeated to run the other examples by specifying a different directory name.

The files in the examples/dl_poly/UO2 directory are as follows :

  • CONTROL - provides simulation parameters.
  • CONFIG - Structure file.

In order to run a DL_POLY simulation two more files are required and these will be generated as part of this example. These are:

  • FIELD - defines atomic masses, charges and potentials.
  • TABEAM - tabulated version of the embedded atom model used by the potential model.
Generating the FIELD and TABEAM files:
  1. In a terminal go to the actinide_potentials directory then type:
    python -m actinide_tabulate DLPOLY examples/dlpoly/UO2

  2. The script will run, generating the necessary FIELD and TABEAM files inside the examples/dlpoly/UO2 directory.


  • This command tells the actinide_tabulate script that a DLPOLY tabulation is required.
  • The second argument (examples/dlpoly/UO2), tells the script to look inside the relevant sub-directory within examples for a valid CONFIG file.
  • The CONFIG file is parsed by the script to find which atomic species are present. This information is then used to generate the FIELD. This is effectively a list of masses and charges for the atoms given in the same order as the CONFIG file. The metal section at the end of the FIELD file tells DL_POLY to read the tabulated potentials stored in the TABEAM file.
  • The TABEAM file is created, containing only those species found within the CONFIG.
Running the simulation

Inside the terminal, cd into the examples/dlpoly/UO2 directory. Then run DL_POLY :


Mixed oxide tabulation (examples/dlpoly/UThO2)

The CONFIG file in the examples/dl_poly/UThO2 directory contains a uranium dioxide super-cell in which 50% of the U atoms have been randomly substituted by Th. The same process as before is used to create the files required by a simulation:

  1. From the actinide_potentials directory execute:
    python -m actinide_tabulate DLPOLY examples/dlpoly/UThO2

  2. Go into the examples/dlpoly/UThO2 directory and then run DLPOLY:


The examples/lammps directory contains examples for the lammps simulation code. Unlike dlpoly all species can be included in the same table file.

Mixed oxide tabulation (examples/lammps/ThUO2)

To create the lammps tabulation:

  1. From the actinide_potentials directory type:
    python -m actinide_tabulate LAMMPS examples/lammps/ThUO2/CeThUNpPuAmCmO.eam.alloy

  2. This will write a table file into examples/lammps/ThUO2/CeThUNpPuAmCmO.eam

  3. cd into examples/lammps/ThUO2/ and run the simulation:
    lammps -in EAM_NPT.lmpin -log EAM_NPT.lmpout


  • Charges are not stored in the table file. These must be specified in your lammps input file or structure file. See line 18 of the lammps input file for how this is achieved in the current example.
  • The structure file specifies the atomic mass of the various species: they are not taken from the Cooper_Rushton_Grimes.csv data file.
  • For convenience, the structure file specifies species IDs for all the elements contained in the table file. This means that the pair_coeff specification (line 32, lammps input file) is a little more complex than what would be used in most cases. For instance if the structure file had contained O, U and Th (with species IDs of 1,2 and 3) then the following pair_coeff command could have been used:
      pair_coeff   *    *    eam/alloy  CeThUNpPuAmCmO.eam.alloy  O U Th