Calculators

Routines for calculating a variety of intrinsic properties of grain boundaries, and quantities relating to impurities present at boundaries.

imeall.calc_bulk_dissolution_energy.calc_bulk_dissolution(args)[source]

Calculate the bulk dissolution energy for hydrogen in a tetrahedral position in bcc iron. :param args: determine applied strain to unit cell. :type args: list

imeall.calc_chemoelastic.calc_chemoelast(input_file)[source]

Adds the structure type using an ovitos script to the Atoms object and calculates the breakdown of the energy contributions.

Parameters:input_file (str) – Relaxed grain boundary structure file.
Returns:[(chemical_energy/total_energy)*gb_energy, (elastic_energy/total_energy)*gb_energy, gb_energy]
Return type:list(float)
imeall.calc_chemoelastic.calc_chemomechanical(ats)[source]

Calculate elastic and chemical contributions to the total energy. Requires Atoms object with a Potential capable of returning a per atom energy. Atoms object must have at least structure_type and local_energy properties. For a bcc lattice structure_type=3.

Parameters:ats (Atoms) –
Returns:[(chemical_energy/total_energy)*gb_energy, (elastic_energy/total_energy)*gb_energy, gb_energy]
Return type:list
imeall.calc_chemoelastic.strain_energy(ats, cursor_step=0.2)[source]

Create an array tracking the accumulation of energy above the bulk energy along the z-axis. For interfacial structures this has pronounced speakes in the region of the interface.

Parameters:
  • ats (Atoms) –
  • cursor_step (float) – step distance along z to add atomic energies to the cumulative energy.
Returns:

Cumulative energy distribution along the z-axis.

Return type:

list

imeall.calc_elast_dipole.calc_elast_dipole_dft(input_file, vasp_calc=True)[source]

Reads OUTCAR file in the same directory with one shot forces induced by removal of defect. Reads defect position from .xyz file (which contains the defect) defined by input_file calculates and returns the elastic dipole tensor of the defect.

Parameters:input_file (str) – name of input .xyz file containing defect cell.
Returns:Elastic Dipole Tensor 3x3 numpy array.
imeall.calc_elast_dipole.calc_elast_dipole_eam(input_file, force_tol, relax_cell)[source]

Calculate elastic dipole using an Embedded Atom Potential.

Parameters:
  • input_file (str) – Name of .xyz file contains unitcell with defect.
  • force_tol (float) – Force tolerance to stop relaxation.
  • relax_cell (bool) – Relax lattice vectors.
Returns:

Elastic Dipole Tensor 3x3 numpy array.

imeall.calc_elast_dipole.find_h_atom(ats)[source]

Finds the hydrogen atom in .xyz file and returns its Atom object.

Parameters:ats (Atoms) –
Returns:Atom object.
class imeall.calc_elast_dipole.ElasticDipole[source]
compute_vacancy_dipole(defect, ats, pot=None, forces=array([], dtype=float64))[source]

Compute dipole tensor from induced forces.

Parameters:
  • defect (Atom) – Atom object of defect atom.
  • ats (Atoms) – If forces are absent the :py:class:Atoms object must have defect present.
  • pot (Potential, optional) – Potential for calculating interatomic forces if required.
  • forces (numpy.array, optional) – numpy array of forces if already available.
Returns:

3x3 numpy array of G the dipole tensor.

relax_defect_cell(ats, output_name='defect_cell_relaxed.xyz', force_tol=0.0001, relax_cell=False)[source]

Accepts atoms object with an attached calculator.Minimize forces.

Parameters:
  • ats (Atoms) – Atoms with defect to relax.
  • output_name (str, optional) – Filename to print relaxed atoms structure to.
  • force_tol (float, optional) – Force tolerance to stop relaxation.
  • relax_cell (bool, optional) – Relax lattice parameters.
Returns:

A relaxed Atoms object.

Return type:

Atoms