index | modules | gitlab | page source

# Stuff for testing things

class `ase.calculators.test.``FreeElectrons`(restart=None, ignore_bad_restart_file=False, label=None, atoms=None, directory='.', **kwargs)

  Free-electron band calculator.

  Parameters:

  nvalence: int
    Number of electrons
  kpts: dict
    K-point specification.

  Example:

      >>> 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
    Ignore broken or missing restart file. By default, it is an error if the restart file is missing or broken.
  directory: str
    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.

  `default_parameters` = {'gridsize': 7, 'kpts': array([[0., 0., 0.]]), 'nbands': 20, 'nvalence': 0.0}
  `get_eigenvalues`(kpt, spin=0)
  `get_fermi_level`()
  `get_ibz_k_points`()
  `get_number_of_spins`()
  `implemented_properties` = ['energy']

Documentation v: 3.19.0

Versions
  3.20.0b1 (development)
  3.19.0 (latest stable)