DDHCustomExchangeCorrelation

class DDHCustomExchangeCorrelation(screening_length=PhysicalQuantity(0.11, 1 / Bohr), exx_fraction=0.25, number_of_spins=1, spin_orbit=None, ddh_parameters=None, local_ddh=None, ddh_variance=None, vacuum_exx_fraction=None, metallic_correction=None)

Initialize the base object with the correct number of spins, and with the only Exchange and Correlation currently allowed for this class, i.e. the HSE ones.

Parameters:
  • screening_length (PhysicalQuantity of type inverse length) – The screening length defined for the coulomb kernel.
    Default: The HSE06 value of 0.11 * Bohr**-1.

  • exx_fraction (float) – The fraction of exact exchange to be added in with the PBE exchange
    Default: The HSE06 value of 0.25.

  • number_of_spins (1 | 2) – The number of spins to be used in the calculation.
    Default: 1.

  • spin_orbit (bool) – If True spin-orbit coupling is considered.
    Default: False.

  • ddh_parameters (list) – The dielectric dependent hybrid functional parameters.

  • local_ddh (bool) – If True the local algorithm is used.
    Default: False.

  • ddh_variance (float) – The gaussian variance of the local dielectric estimator.
    Default: 2.12.

  • vacuum_exx_fraction (float) – The fraction of exact exchange to be used in vacuum
    Default: The HSE06 value of 0.25.

cParameter(grid_descriptor=None)

return the param C.

Parameters:

grid_descriptor (NLEngine.GridDescriptor) – The grid descriptor.

cloneAsPolarized()

Create a new functional with all the same settings, but polarized spin.

cloneAsSpinOrbit()

Create a new functional with all the same settings, but with Spin-Orbit coupling included.

correlation()
Returns:

The correlation functional class

Return type:

Correlation

defaultDielectricDependentHybridFractionVariance()
Returns:

The default gaussian variance of the local dielectric estimator.

Return type:

float

defaultExactExchangeFraction()
Returns:

The default exact exchange fraction that is mixed in with PBE exchange.

Return type:

float

defaultScreeningLength()
Returns:

The default screening length defined for the coulomb kernel.

Return type:

PhysicalQuantity of type inverse length

densityCheckThreshold()
Returns:

The density safe guard.

Return type:

float

dftHalfEnabled()
Returns:

Whether DFT-1/2 is enabled.

Type:

bool

dielectricDependentHybridFraction(dielectric_estimator)

Determines the dielectric dependent hybrid functional fraction.

Parameters:

dielectric_estimator (float) – The dielectric estimator.

Returns:

The exact exchange fraction.

Return type:

float

dielectricDependentHybridFractionVariance()
Returns:

The gaussian variance of the local dielectric estimator.

Return type:

float

dielectricDependentHybridFunctional()

Overwrite base class method.

Returns:

True, then a dielectric dependent hybrid functional is used.

Return type:

dict

dielectricDependentHybridParameters()
Returns:

The dielectric dependent hybrid hybrid parameters.

Return type:

list

dielectricDependentHybridVacuumEstimator()
Returns:

The estimator value corresponding to the vacuum exx fraction.

Return type:

float

dielectricDependentHybridVacuumExactExchangeFraction()
Returns:

The fraction of exact exchange to be used in vacuum.

Return type:

float

exactExchangeFraction()
Returns:

The part of exact exchange that is mixed in with PBE exchange.

Return type:

float

exchange()
Returns:

The exchange functional class

Return type:

Exchange

hubbardTerm()
Returns:

The Hubbard term used.

Return type:

Onsite | OnsiteShell | Dual | DualShell | None

localDielectricDependentHybrid()
Returns:

True, then local dielectric dependent hybrid functional algorihm.

Return type:

bool

maximumPotential()

Set maximum potential value allowed for the TB09. The value to use as the maximum allowed value for the potential in points with density lower than threshold.

Returns:

The density safe guard.

Return type:

float

static metallicCorrection()
Returns:

Always false, metallic corrections use a subclass.

Return type:

bool

minimumPotential()

Set minimum potential value allowed for the TB09. The value to use as the minimum allowed value for the potential in points with density lower than threshold.

Returns:

The density safe guard.

Return type:

float

nlprint(stream=<_io.TextIOWrapper name='<stdout>' mode='w' encoding='utf-8'>)

Print a string representation of the ExchangeCorrelation instance.

Parameters:

stream (A stream that supports strings being written to using write.) – The stream the exchange-correlation should be written to.
Default: sys.stdout

numberOfSpins()
Returns:

The number of spins.

Return type:

1 | 2 | 4

params()

Get the parameters

screeningLength()
Returns:

The screening length defined for the coulomb kernel.

Return type:

PhysicalQuantity of type inverse length

spinOrbit()
Returns:

Boolean determining if spin-orbit is enabled (True) or not (False).

Return type:

bool.

spinType()
Returns:

The spin type.

Return type:

NLEngine.POLARIZED | NLEngine.NONCOLLINEAR | NLEngine.UNPOLARIZED

uniqueString()

Return a unique string representing the state of the object.

unscreenedExchange()

Whether the exchange functional in use is unscreened.

Usage Examples

Defining the original dielectric dependent hybrid functional defined in [1]:

exchange_correlation = DDHCustomExchangeCorrelation(
    screening_length=0.11 * Bohr**-1,
    exx_fraction=0.25,
    number_of_spins=1,
    ddh_parameters=(0.121983, 0.0, 0.0, 0.0, 0.130711)
)

where the exact exchange mixing parameter is obtained as

\[\alpha = 0.121983 + 0.130711 \bar{g}^{4},\]

Performing a calculation using the local spatial dependent dielectric dependent hybrid functional defined in [2] specify:

exchange_correlation = DDHCustomExchangeCorrelation(
    screening_length=0.11 * Bohr**-1,
    exx_fraction=0.25,
    number_of_spins=1,
    ddh_parameters=(0.121983, 0.0, 0.0, 0.0, 0.130711)
    local_ddh=True,
    ddh_variance=2.12
)