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:
- nlinfo()¶
- Returns:
The nlinfo.
- Return type:
dict
- predictEffectivePotential(configuration, calculator)¶
Use the defined model to predict the effective potential of a configuration.
- Parameters:
configuration (MoleculeConfiguration | BulkConfiguration | DeviceConfiguration) – The configuration for which to predict the electron density.
calculator (Calculator) – The calculator used to predict the electron density.
- 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.
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