Ground calculator#
- class fireballpy.BaseFireball(*, atomsystem, fdatafiles, kpoints, verbose=False, total_charge=0, correction=None, charges_method=None, dipole_method='improved', initial_charges=None, mixer_kws=None)[source]#
Base Fireball class to be interfaced with any high-level package such as ASE.
- Parameters:
- atomsystemAtomSystem
Class with all the information of species, atomic numbers, positions and cell of the system.
- fdatafilesFDataFiles
Class with all the information on the location of the basis functions.
- kpointsKPoints
Class with all the information of the coordinates of the k-points as well as their associated weights.
- verbosebool, optional
If
True
information of the convergence of the SCF loop will be printed on screen. Default isFalse
.- total_chargeint, optional
Total charge of the system in elementary charge units (1 extra electron would be
total_charge = -1
). By default this is 0.- correctiondict | bool | None, optional
By default (
None
) will apply DFT3 correction for the selected FData if optimized parameters are available (seeavailable_fdatas()
). Also, it may be a dictionary with the parameters for DFTD3 correction The dictionary must contain the keys'kind'
(right now it can only be'dftd3'
),'damping'
and either'method'
or'params_tweaks'
. It may be forcefully shut down by providingFalse
. For more information, see Simple DFT-D3 documentation.- charges_methodstr | None, optional
How the autoconsistency in the charges will be performed. By default depends on the FData (
None
). If a custom FData is selected, then this parameter must be specified. For more information see here.- dipole_methodstr, optional
Whether to use (
dipole='improved'
) or not (dipole='legacy'
) the improved dipole description. By default'improved'
except for periodic systems as it is not yet implemented and thus it will be ignored.- initial_chargesArrayLike[float], optional
A (natoms, nshells) array with the charges of each of the atom shells (0 if no shell for that atom is defined).
- mixer_kwsdict, optional
Dictionary with the mixer parameters. More information here.
Methods
run_scf(fix_charges=False)
Run the SCF loop and store energy and charge related quantities.
calc_forces(fix_charges=False)
Compute the forces and store them.
update_coords(positions)
Update the coordinates in the Fortran module.
Notes
If you use this code in a publication please cite us [Lewis2011].
[Lewis2011]James. P. Lewis, et al., “Advances and applications in the FIREBALL ab initio tight-binding molecular-dynamics formalism”, Phys. Status Solidi B, 248(9):1989-2007, 2011. DOI: 10.1002/pssb.201147259
- calc_forces(fix_charges=False)[source]#
Check if SCF is computed, execute the loop if not, then compute and store forces.
- Parameters:
- fix_chargesbool
If
True
then only one SCF loop iteration will be performed. IfFalse
(default) then it will perform the usual computation. In general it is useful to fix the charges when making postprocessing.
- run_scf(fix_charges=False)[source]#
Check if SCF is computed, execute the loop if not, then store energy, fermi_level, partial charges, shell charges and eigenvalues.
- Parameters:
- fix_chargesbool
If
True
then only one SCF loop iteration will be performed. IfFalse
(default) then it will perform the usual computation. In general it is useful to fix the charges when making postprocessing.