Skip to main content
`Ctrl`+`K`

# Stuff for testing things

class ase.calculators.test.FreeElectrons(restart=None, ignore_bad_restart_file=<object object>, label=None, atoms=None, directory='.', **kwargs)

  Free-electron band calculator.

  Parameters:

  nvalence: int

    Number of electrons

  kpts: dict

    K-point specification.

  Example: >>> from ase.calculators.test import FreeElectrons >>> calc = FreeElectrons(nvalence=1, kpts={‘path’: ‘GXL’})

  Basic calculator implementation.

  restart: str

    Prefix for restart file. May contain a directory. Default is None: don’t restart.

  ignore_bad_restart_file: bool

    Deprecated, please do not use. Passing more than one positional argument to Calculator() is deprecated and will stop working in the future. Ignore broken or missing restart file. By default, it is an error if the restart file is missing or broken.

  directory: str or PurePath

    Working directory in which to read and write files and perform calculations.

  label: str

    Name used for all files. Not supported by all calculators. May contain a directory, but please use the directory parameter for that instead.

  atoms: Atoms object

    Optional Atoms object to which the calculator will be attached. When restarting, atoms will get its positions and unit-cell updated from file.

  calculate(atoms, properties, system_changes)

    Do the calculation.

    properties: list of str

      List of what needs to be calculated. Can be any combination of ‘energy’, ‘forces’, ‘stress’, ‘dipole’, ‘charges’, ‘magmom’ and ‘magmoms’.

    system_changes: list of str

      List of what has changed since last calculation. Can be any combination of these six: ‘positions’, ‘numbers’, ‘cell’, ‘pbc’, ‘initial_charges’ and ‘initial_magmoms’.

    Subclasses need to implement this, but can ignore properties and system_changes if they want. Calculated properties should be inserted into results dictionary like shown in this dummy example:

        self.results = {'energy': 0.0,
                        'forces': np.zeros((len(atoms), 3)),
                        'stress': np.zeros(6),
                        'dipole': np.zeros(3),
                        'charges': np.zeros(len(atoms)),
                        'magmom': 0.0,
                        'magmoms': np.zeros(len(atoms))}

    The subclass implementation should first call this implementation to set the atoms attribute and create any missing directories.

  default_parameters: Dict[str, Any] = {'gridsize': 7, 'kpts': array([[0., 0., 0.]]), 'nbands': 20, 'nvalence': 0.0}

    Default parameters

  get_eigenvalues(kpt, spin=0)
  get_fermi_level()
  get_ibz_k_points()
  get_number_of_spins()
  implemented_properties: List[str] = ['energy']

    Properties calculator can handle (energy, forces, …)