KohnShamMethod — Represents the parameters that controls the density-functional electronic structure calculation of molecules and bulk systems.
The KohnShamMethod class is used to represent
parameters that control the density-functional electronic structure calculation of
molecules and bulk systems. The returned object is used as an input parameter to
executeSelfConsistentCalculation() which
performs the actual self-consistent calculation. Alternatively, the
apply() method of the KohnShamMethod object (see below) can also be used.
The method is in principle independent of the atomic geometry, which for the systems in question are defined by BulkConfiguration, MoleculeConfiguration, and PeriodicAtomConfiguration. There is, however, some connection via the Brillouin zone integration parameters (see below). These only apply to bulk systems, of course, but should be chosen to match the geometry of the system, as the parameters are different for a nanotube and a bulk crystal).
List of arguments
A dictionary of basis set parameters.
Default: Parameters corresponding to basisSetParameters() supplied with no arguments.
The type of exchange correlation functionals to be used.
Default: LDA.PZ
A dictionary with electron density parameters, such as mesh cut-off and initial spin.
Default: Parameters corresponding to electronDensityParameters() supplied with no arguments.
Eigenstate occupation parameters such as the electron temperature.
Default: Parameters corresponding to eigenstateOccupationParameters() supplied with no arguments.
Parameters for the two-center integrals.
Default: Parameters corresponding to twoCenterIntegralParameters() supplied with no arguments.
Parameters used to control the mixing in the self-consistent field calculation.
Default: Parameters corresponding to iterationMixingParameters() supplied with no arguments.
Parameters used to determine the convergence criteria of the self-consistent field calculation.
Default: Parameters corresponding to iterationControlParameters() supplied with no arguments.
The padding factor used for solving the Poisson equation. Default
Default: Parameters corresponding to poissonEquationParameters() supplied with no arguments.
Defines the k-point mesh in the Brillouin zone. This has no default value and must be specified using the function brillouinZoneIntegrationParameters().
Default:
None
Set up a method applicable for molecule systems only:
from ATK.KohnSham import * dft_method = KohnShamMethod( poisson_equation_parameters = poissonEquationParameters(padding_factor=0.2), basis_set_parameters = basisSetParameters(type=SingleZeta), exchange_correlation_type = GGA.PBE )
Set up a method applicable for a bulk system only configuration:
from ATK.KohnSham import * dft_method = KohnShamMethod( basis_set_parameters = basisSetParameters(type=SingleZeta), brillouin_zone_integration_parameters = brillouinZoneIntegrationParameters((3,3,3)) )
Set up a general method applicable for both molecule and bulk systems:
from ATK.KohnSham import * dft_method = KohnShamMethod( basis_set_parameters = basisSetParameters(type=SingleZeta), exchange_correlation_type = GGA.PBE, )
If poisson_equation_parameters is specified, the returned KohnShamMethod can only be used for molecular
systems. The same is true if the electron_density_parameters contain a
specification of a fixed_spin. Conversely, if
brillouin_zone_integration_parameters are specified, the
returned method can only be used for bulk systems. Naturally, these two parameter
groups cannot be combined in the same method.
The basis_set_parameters may be specified in two different ways:
A single dictionary returned directly by basisSetParameters().
A list of such dictionaries in order to define individual basis set parameters for different elements
For more information, see basisSetParameters().
The KohnShamMethod object is used as input when performing a self-consistent density-functional calculation using executeSelfConsistentCalculation():
configuration = ... method = KohnShamMethod(...) scf = executeSelfConsistentCalculation(configuration,method,...)
Alternatively, it is also possible to use the
KohnShamMethod to perform the calculation by using its
apply() method:
configuration = ... method = KohnShamMethod(...) scf = method.apply(configuration)
The apply() method takes a single argument, which either
is of the type BulkConfiguration, MoleculeConfiguration, or PeriodicAtomConfiguration.
The returned object from the apply() method is equivalent
to the object returned from executeSelfConsistentCalculation() and is used as input for various kinds of analysis
calculations, such as calculateTotalEnergy().
The main difference between these two different ways of performing the calculation
presently lies in the way the verbosity level and the name of the checkpoint file
is specified. The function executeSelfConsistentCalculation() takes an argument runtime_parameters for
specifying these parameters for the actual self-consistent iteration. The
apply() method, on the other hand, uses the globally set
verbosity level and
checkpoint file
name.