EffectivePotentialPredictor

Included in QATK.Calculators.DFT, QATK.MLDFT

class EffectivePotentialPredictor(model, probe_count=None, gpu_acceleration=None)

Class for parameters needed for an effective potential predictor.

Parameters:
  • model (GridValuesModel) – Class specifying the effective potential model and its the parameters.

  • probe_count (int, optional) – Number of probe graph nodes to use,
    Default: 5000.

  • gpu_acceleration (Enabled | Disabled | Automatic, optional) – Whether to use GPU acceleration. If set to Automatic, the predictor will use the GPU if available.
    Default: Automatic

gpuAcceleration()

Return whether to use CUDA-supported GPU acceleration.

Returns:

The GPU acceleration flag.

Return type:

Enabled | Disabled | Automatic

model()

Return the parameters for the ml model.

Returns:

The model parameters.

Return type:

GridValuesModel

nlinfo()
Returns:

The nlinfo.

Return type:

dict

predictEffectivePotential(configuration, calculator)

Use the defined model to predict the effective potential of a configuration.

Parameters:
Returns:

The predicted effective potential as an MPI shared scalar field.

Return type:

NLEngine.MPISharedScalarField

probeCount()

Return the number of probes to use for the grid prediction.

Returns:

The number of probes.

Return type:

int

uniqueString()

Return a unique string representing the state of the object.

Notes

Using a machine learned effective potential predictor can significantly speed up the convergence of the self-consistent field (SCF) procedure in density functional theory (DFT) calculations or even allow for non-self-consistent calculations in some cases. The effective potential predictor predicts the effective potential on a real-space grid based on the atomic configuration of the system. The predicted effective potential is then used as the initial guess for the SCF procedure in a DFT calculation.

The way to use a effective potential predictor in a DFT calculation is to create an instance of the EffectivePotentialPredictor class and pass it to the AlgorithmParameters used in the DFT calculation. For example,

model = PretrainedGridValuesModels.effective_potential_Cu

grid_values_predictor = EffectivePotentialPredictor(
  model=model,
)

algorithm_parameters = AlgorithmParameters(grid_values_predictor=grid_values_predictor)

where PretrainedGridValuesModels.effective_potential_Cu is a pre-trained effective potential model included in QuantumATK.

Application of an effective potential predictor is supported for both CPU-and GPU-based DFT calculations in QuantumATK. However, note that running on a GPU is significantly faster.

Use of an effective potential predictor is supported for only LCAO DFT calculations in QuantumATK, and currently only for normconserving pseudopotentials.

MGGA functionals cannot be used together with the effective potential predictor. Other XC funcitonals are supported, but we recommend using the same XC functional as used during training of the effective potential model for best results.

Pretrained models

QuantumATK includes a single pre-trained effective potential predictor that can be used directly in DFT calculations:

Cu (Y-2026)
  • Model name: PretrainedGridValuesModels.effective_potential_Cu

  • Description: Effective potential model trained for Cu only. The model is trained on bulk and slab configurations with including configurations with displaced atoms obtained from Molecular Dynamics simulations as well as structures with vacancies. Very good results can be obtained from non-selfconsistent calculations, especially for Device Configurations. Covers only Cu.

  • Pseudopotential: PseudoDojo

  • Basis set: Medium

  • Exchange correlation: PBE

  • Spin: Unpolarized

Usage Examples

Use the pre-trained effective_potential_Cu model for a non-self-consistent DFT-NEGF calculation of a Cu slab with surface disorder. The calculation does not perform self-consistent DFT-NEGF calculation, but instead uses the predicted effective potential from the machine learned model directly. This leads to a very significant speedup of the calculation while still providing accurate results.

The figure below shows the Cu device configuration and the calculated transmission spectrum obtained from the non-self-consistent DFT-NEGF calculation with the machine learned effective potential predictor and from a self-consistent calculation. Transmission spectra for both pristine and surface disordered Cu slabs are shown, demonstrating that the machine learned effective potential predictor can accurately capture the effect of surface disorder on the transmission.

../../../_images/cu_structure_and_transmissions_pristine_and_disorder.png

The ML non-SCF transmission spectrum for the disordered Cu slab was calculated using this workflow Device_Copper_ML_disorder.hdf5 with the following script representation: Cu_device_ML_non-scf.py