Name

LCAOCalculator — Class for representing calculations using the ATK-DFT numerical orbital model for configurations of the type MoleculeConfiguration and BulkConfiguration.

Synopsis

Namespace: NanoLanguage
LCAOCalculator(
basis_set,
exchange_correlation,
charge,
numerical_accuracy_parameters,
iteration_control_parameters,
poisson_solver,
checkpoint_handler
)

Description

The constructor for the LCAOCalculator.

LCAOCalculator Arguments

basis_set

An object describing the basis set used for the LCAO calculation.

Type: LCAOBasisParameters

Default: LDABasis.DoubleZetaPolarized
exchange_correlation

The choice of Exchange-Correlation for this calculation.

Type: An instance of the Exchange-Correlation.

Default: LDA.PZ
charge

The charge of the system, a charge of -1 corresponds to one extra electron.

Type: float

Default: 0.0
numerical_accuracy_parameters

The NumericalAccuracyParameters used for the DFT calculation.

Type: NumericalAccuracyParameters

Default: A default NumericalAccuracyParameters object.
iteration_control_parameters

The IterationControlParameters used for the DFT calculation. For non-self-consistent calculations set this parameter to NonSelfConsistent.

Type: IterationControlParameters

Default: A default IterationControlParameters object.
poisson_solver

The Poisson solver used to determine the electrostatic potential.

Type: MultigridSolver | FastFourierSolver | FastFourier2DSolver

Default: BulkConfiguration without Metallic and Dielectric Regions=FastFourierSolver, BulkConfiguration with Metallic and Dielectric Regions=MultigridSolver([PeriodicBoundaryCondition]*3), MoleculeConfiguration without Metallic Regions=MultigridSolver([MultipoleBoundaryCondition]*3), MoleculeConfiguration with Metallic Regions=MultigridSolver([NeumannBoundaryCondition]*3)
checkpoint_handler

The CheckpointHandler used for specifying the save-file and the time interval between saving the calculation during the scf-loop.

Type: CheckpointHandler

Default: A default CheckpointHandler object.

LCAOCalculator Methods

A LCAOCalculator object provides the following methods:

  • This object supports cloning. See the section called “Cloning of ATK Python objects”.

  • basisSet(): Return the basis set.

  • charge(): Return the charge of the system.

  • checkpointHandler(): Return the checkpoint handler.

  • exchangeCorrelation(): Return the exchange-correlation

  • iterationControlParameters(): Query method for the IterationControlParameters.

  • numericalAccuracyParameters(): Query method for the NumericalAccuracyParameters.

  • poissonSolver(): Return the Poisson solver.

  • setBasisSet(): Set the basis set.

  • setCheckpointHandler(): Set the checkpoint handler.

  • setExchangeCorrelation(): Set the exchange-correlation

  • setIterationControlParameters(): Set the iteration control parameters.

  • setNumericalAccuracyParameters(): Set the numerical accuracy parameters.

  • setPoissonSolver(): Set the poisson solver.

Usage Examples

Define an LCAOCalculator with user defined basis set

basis_set = [
    LDABasis.Hydrogen_DoubleZetaPolarized,
    LDABasis.Oxygen_DoubleZetaPolarized,
    LDABasis.Nitrogen_DoubleZeta,
    LDABasis.Carbon_SingleZeta,
    ]

calculator = LCAOCalculator(
    basis_set=basis_set,
    )

Restart an LCAO calculation using the self-consistent state from a previous calculation

# Read in the BulkConfiguration with the old scf state
old_calculation=nlread("filename.nc",BulkConfiguration)[0]

# Define the BulkConfiguration with similar number of atoms
new_calculation=BulkConfiguration(...)

# extract the old calculator
old_calculator = old_calculation.calculator()

# make a clone of the old calculator
new_calculator = old_calculator()

# Attach the calculator and use the old initial state
new_calculation.setCalculator(new_calculator, initial_state=old_calculation)

Notes