asimtools.asimmodules.geometry_optimization package

asimtools.asimmodules.geometry_optimization.ase_cubic_eos_optimization module

Calculate the equation of state, fit it and extract the equilibrium volume, energy and bulk modulus. This script is based on the example provided on the ASE website: https://wiki.fysik.dtu.dk/ase/tutorials/db/db.html

author: mkphuthi@github.com

asimtools.asimmodules.geometry_optimization.ase_cubic_eos_optimization.ase_cubic_eos_optimization(calculator: Dict, image: Dict, npoints: int | None = 5, eos_string: str | None = 'sj', eps: float | None = 0.04, scales: Sequence | None = None, plot: bool | None = True) Dict[source]

Generate the energy-volume equation of state (energy calculations not parallelized)

Parameters:
  • calculator (Dict) – Calculator specification, see asimtools.calculators.load_calc()

  • image (Dict) – Image specification, see asimtools.utils.get_atoms()

  • npoints (Optional[int], optional) – Number of energy points to calculate, must be >5, defaults to 5

  • eos_string (Optional[str], optional) – eos_string as specified for ase.eos.calculate_eos(), defaults to ‘sj’

  • eps (Optional[float], optional) – eps as sepecified for ase, defaults to 0.04

  • scales – array of values to scale the unit cell by (not volume)

  • plot (Optional[bool], optional) – Whether to plot eos or not, defaults to True

Returns:

Equilibrium energy, volume, bulk modulus and factor by which to scale lattice parameter to get equilibrium structure

Return type:

Dict

asimtools.asimmodules.geometry_optimization.atom_relax module

Relaxes the given atomic structure using ASE’s built-in structure optimizers

asimtools.asimmodules.geometry_optimization.atom_relax.atom_relax(calculator: Dict, image: Dict, optimizer: str = 'GPMin', properties: Tuple[str] = ('energy', 'forces'), fmax: float = 0.02, steps: int = 1000, prefix: str | None = None) Dict[source]

Relaxes the given tomic structure using ASE’s built-in structure optimizers

Parameters:
  • calculator (Dict) – Calculator specification, see asimtools.calculators.load_calc()

  • image (Dict) – Image specification, see asimtools.utils.get_atoms()

  • prefix (str, optional) – Prefix of output files, defaults to ‘’

  • optimizer (str, optional) – ASE Optimizer class, defaults to ‘GPMin’

  • fmax (float, optional) – Force convergence threshold in optimizer, defaults to 0.02

  • steps (int, optional) – Maximum number of steps to run, defaults to 1000

Returns:

Dictionary of results

Return type:

Dict

asimtools.asimmodules.geometry_optimization.cell_relax module

Relaxes structure using ASE

Author: mkphuthi@github.com

asimtools.asimmodules.geometry_optimization.cell_relax.cell_relax(calculator: Dict, image: Dict, optimizer: str = 'BFGS', fmax: float = 0.002, steps: int = 1000, mask: Sequence | None = None, prefix: str | None = None) Dict[source]

Relax cell using ASE Optimizer

Parameters:
  • calculator (Dict) – Calculator specification, see asimtools.calculators.load_calc()

  • image (Dict) – Image specification, see asimtools.utils.get_atoms()

  • prefix (str, optional) – Prefix to output files, defaults to ‘’

  • optimizer (str, optional) – Optimizer class to use from ase.optimize, defaults to ‘BFGS’

  • fmax (float, optional) – Maximum stress in eV/$AA^3$, defaults to 0.002

  • steps (int, optional) – Maximum number of steps to run, defaults to 1000

  • mask (Optional[Sequence], optional) – Mask to constrain cell deformation while relaxing, defaults to None

Returns:

Dictionary of results including, final energy, stress and output files

Return type:

Dict

asimtools.asimmodules.geometry_optimization.optimize module

Relaxes both atoms and cell coordinates simultaneously.

Author: mkphuthi@github.com

asimtools.asimmodules.geometry_optimization.optimize.optimize(calculator: Dict, image: Dict, optimizer: str = 'BFGS', fmax: float = 0.003, optimizer_args: Dict | None = None, steps: int = 1000, expcellfilter_args: Dict | None = None) Dict[source]

Relaxes cell (and atoms) using ase.constraints.ExpCellFilter while retaining symmetry

Parameters:
  • calculator (Dict) – Calculator specification, see asimtools.calculators.load_calc()

  • image (Dict) – Image specification, see asimtools.utils.get_atoms()

  • optimizer (str, optional) – Any optimizer from ase.optimize, defaults to ‘BFGS’

  • fmax (float, optional) – fmax in optimizer, defaults to 0.003 which is ~0.48GPa

  • optimizer_args (Optional[Dict], optional) – arguments for optimizer, defaults to None

  • steps (int, optional) – Max. number of steps to run, defaults to 1000

  • expcellfilter_args (Optional[Dict], optional) – arguments for ase.constraints.ExpCellFilter, defaults to None

Returns:

Results including relaxed structure energy

Return type:

Dict

asimtools.asimmodules.geometry_optimization.symmetric_cell_relax module

Relaxes structure using ASE while retaining symmetry. Requires ASE>=3.23

Author: mkphuthi@github.com

asimtools.asimmodules.geometry_optimization.symmetric_cell_relax.symmetric_cell_relax(calculator: Dict, image: Dict, optimizer: str = 'BFGS', fmax: float = 0.003, optimizer_args: Dict | None = None, fixsymmetry_args: Dict | None = None, expcellfilter_args: Dict | None = None) Dict[source]

Relaxes cell (and atoms) using ase.constraints.ExpCellFilter while retaining symmetry

Parameters:
  • calculator (Dict) – Calculator specification, see asimtools.calculators.load_calc()

  • image (Dict) – Image specification, see asimtools.utils.get_atoms()

  • optimizer (str, optional) – Any optimizer from ase.optimize, defaults to ‘BFGS’

  • fmax (float, optional) – fmax in optimizer, defaults to 0.003 which is ~0.48GPa

  • fixsymmetry_args (Optional[Dict], optional) – arguments for ase.constraints.FixSymmetry, defaults to None

  • expcellfilter_args (Optional[Dict], optional) – arguments for ase.constraints.ExpCellFilter, defaults to None

Returns:

Results including relaxed structure energy

Return type:

Dict

Module contents