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