pyxtal.optimize.common module

Common utlities for global search

pyxtal.optimize.common.check_stable_structure(xtal, c_info, w_dir, job_tag, skip_ani, optimizer, disps=[0.5, 5.0], random=False, verbose=False)[source]

Check the stability of input xtal based on lattice mutation

pyxtal.optimize.common.compute(row, pmg, work_dir, skf_dir, info=None)[source]

perform the benchmark for a ase db row object

Arg:

row: ase db

pyxtal.optimize.common.compute_par(row, pmg, work_dir, skf_dir, queue, compute)[source]
Parameters:
  • xtal

  • queue

pyxtal.optimize.common.load_reference_from_db(db_name, code=None)[source]

Load the reference data from the db file

Parameters:
  • db_name (str) – database path

  • code (str) – code name

Returns:

a list of args

pyxtal.optimize.common.mutator(xtal, smiles, opt_lat, ref_pxrd=None, dr=0.125, random_state=None)[source]

A random mutation.

pyxtal.optimize.common.optimizer(struc, atom_info, workdir, tag='job_0', opt_lat=True, calculators=None, max_time=180, skip_ani=False, pre_opt=False)[source]

Structural relaxation for each individual pyxtal structure.

Parameters:
  • struc – pyxtal

  • workdir – working directory

  • calculators – e.g., [‘CHARMM’, ‘GULP’]

Returns:

a dictionary with xtal, energy and time

pyxtal.optimize.common.optimizer_par(xtals, ids, mutates, job_tags, randomizer, optimizer, smiles, block, num_block, atom_info, workdir, sgs, comp, lattice, torsions, molecules, sites, ref_pmg, matcher, ref_pxrd, use_hall, skip_ani, check_stable, pre_opt)[source]

A routine used for parallel structure optimization

Parameters:
  • xtals – list of xtals

  • ids – list of structure ids

pyxtal.optimize.common.optimizer_single(xtal, id, mutate, job_tag, randomizer, optimizer, smiles, block, num_block, atom_info, workdir, sgs, comp, lattice, torsions, molecules, sites, ref_pmg, matcher, ref_pxrd, use_hall, skip_ani, check_stable, pre_opt)[source]

A routine used for individual structure optimization

Parameters:
  • xtal

  • id – structure id

  • randomizer

  • optimizer

pyxtal.optimize.common.randomizer(smiles, sgs, comp, lattice=None, block=None, num_block=None, torsions=None, molecules=None, sites=None, use_hall=False, factor=1.1, random_state=None)[source]

A random structure generation engine

Parameters:
  • smiles – e.g. [‘CCCCC’, ‘CC’]

  • sgs – e.g. [2, 4, 14]

  • comp – e.g. [0.5, 0.5]

  • lattice – pyxtal.Lattice object

  • block

  • num_block

  • torsions

  • molecules – pre-specified pyxtal_molecule object

Returns:

PyXtal object

pyxtal.optimize.common.refine_struc(xtal, smiles, calculator)[source]

refine the structure with the ML calculator

Parameters:
  • xtal (-) – pyxtal structure

  • calculator (-) – ANI_relax or MACE_relax