qimpy.dft.electrons.xc.functional.Functional

class Functional(needs_sigma=False, needs_lap=False, needs_tau=False, has_exchange=False, has_correlation=False, has_kinetic=False, has_energy=True, scale_factor=1.0, name='', _apply=None, _apply_spin=None)

Bases: object

Base class for exchange-correlation functional components.

Parameters:
  • needs_sigma (bool) –

  • needs_lap (bool) –

  • needs_tau (bool) –

  • has_exchange (bool) –

  • has_correlation (bool) –

  • has_kinetic (bool) –

  • has_energy (bool) –

  • scale_factor (float) –

  • name (str) –

  • _apply (Callable[[Tensor, Tensor, Tensor, Tensor, bool, float], float] | None) –

  • _apply_spin (Callable[[Tensor, Tensor, Tensor, Tensor, bool, float], float] | None) –

__init__(needs_sigma=False, needs_lap=False, needs_tau=False, has_exchange=False, has_correlation=False, has_kinetic=False, has_energy=True, scale_factor=1.0, name='', _apply=None, _apply_spin=None)
Parameters:
  • needs_sigma (bool) –

  • needs_lap (bool) –

  • needs_tau (bool) –

  • has_exchange (bool) –

  • has_correlation (bool) –

  • has_kinetic (bool) –

  • has_energy (bool) –

  • scale_factor (float) –

  • name (str) –

  • _apply (Callable[[Tensor, Tensor, Tensor, Tensor, bool, float], float] | None) –

  • _apply_spin (Callable[[Tensor, Tensor, Tensor, Tensor, bool, float], float] | None) –

Return type:

None

Methods

__init__

Attributes

has_correlation

Whether functional includes correlation

has_energy

Whether functional has meaningful total energy

has_exchange

Whether functional includes exchange

has_kinetic

Whether functional includes kinetic energy

name

Optional name of functional used for reporting initialization

needs_lap

Whether functional needs Laplacian \(\nabla^2 n\)

needs_sigma

Whether functional needs gradient \(\sigma\)

needs_tau

Whether functional needs KE density \(\tau\)

scale_factor

Scale factor in energy and potential

has_correlation: bool = False

Whether functional includes correlation

has_energy: bool = True

Whether functional has meaningful total energy

has_exchange: bool = False

Whether functional includes exchange

has_kinetic: bool = False

Whether functional includes kinetic energy

name: str = ''

Optional name of functional used for reporting initialization

needs_lap: bool = False

Whether functional needs Laplacian \(\nabla^2 n\)

needs_sigma: bool = False

Whether functional needs gradient \(\sigma\)

needs_tau: bool = False

Whether functional needs KE density \(\tau\)

scale_factor: float = 1.0

Scale factor in energy and potential