---
name: "sc_DenFunctional"
section: "3"
platform: "linux"
package: "libsc-doc"
version: "2.3.1-22"
release: "Debian 12 (Bookworm)"
platforms: ["linux"]
url: "https://new.carta.tech/sc_DenFunctional"
---

# sc\_DenFunctional(3)

An abstract base class for density functionals.

## NAME

sc::DenFunctional - An abstract base class for density functionals.

## SYNOPSIS

`#include <functional.h>`

Inherits **sc::SavableState**.

Inherited by **sc::Becke88XFunctional**, **sc::G96XFunctional**, **sc::LSDACFunctional**, **sc::LYPCFunctional**, **sc::NElFunctional**, **sc::NewP86CFunctional**, **sc::P86CFunctional**, **sc::PBECFunctional**, **sc::PBEXFunctional**, **sc::PW86XFunctional**, **sc::PW91CFunctional**, **sc::PW91XFunctional**, **sc::SlaterXFunctional**, **sc::SumDenFunctional**, **sc::XalphaFunctional**, and **sc::mPW91XFunctional**.

### Public Member Functions

**DenFunctional** (const **Ref**\< **KeyVal** \> &)\
 **DenFunctional** (**StateIn** &)\
 void **save\_data\_state** (**StateOut** &)\
 Save the base classes (with save\_data\_state) and the members in the same order that the **StateIn** CTOR initializes them.  virtual void **set\_spin\_polarized** (int i)\
 virtual void **set\_compute\_potential** (int i)\
 virtual int **need\_density\_gradient** ()\
 virtual int **need\_density\_hessian** ()\
 virtual void **point** (const **PointInputData** &, **PointOutputData** &)=0\
 void **gradient** (const **PointInputData** &, **PointOutputData** &, double \*gradient, int acenter, **GaussianBasisSet** \*basis, const double \*dmat\_a, const double \*dmat\_b, int ncontrib, const int \*contrib, int ncontrib\_bf, const int \*contrib\_bf, const double \*bs\_values, const double \*bsg\_values, const double \*bsh\_values)\
 virtual double **a0** () const\
 Returns the fraction of Hartee-Fock exchange to be included.  void **fd\_point** (const **PointInputData** &, **PointOutputData** &)\
 int **test** (const **PointInputData** &)\
 int **test** ()\

### Protected Member Functions

void **do\_fd\_point** (**PointInputData** &id, double &in, double &out, double lower\_bound, double upper\_bound)\

### Protected Attributes

int **spin\_polarized\_**\
 int **compute\_potential\_**\
 double **a0\_**\

### Additional Inherited Members

## Detailed Description

An abstract base class for density functionals.

## Member Function Documentation

### virtual double sc::DenFunctional::a0 () const` [virtual]`

Returns the fraction of Hartee-Fock exchange to be included.

Reimplemented in **sc::SumDenFunctional**.

### void sc::DenFunctional::save\_data\_state (StateOut &)` [virtual]`

Save the base classes (with save\_data\_state) and the members in the same order that the **StateIn** CTOR initializes them. This must be implemented by the derived class if the class has data.

Reimplemented from **sc::SavableState**.

Reimplemented in **sc::NElFunctional**, **sc::SumDenFunctional**, **sc::StdDenFunctional**, **sc::LSDACFunctional**, **sc::PBECFunctional**, **sc::PW91CFunctional**, **sc::P86CFunctional**, **sc::NewP86CFunctional**, **sc::SlaterXFunctional**, **sc::VWNLCFunctional**, **sc::VWN1LCFunctional**, **sc::VWN2LCFunctional**, **sc::VWN3LCFunctional**, **sc::VWN4LCFunctional**, **sc::VWN5LCFunctional**, **sc::PW92LCFunctional**, **sc::PZ81LCFunctional**, **sc::XalphaFunctional**, **sc::Becke88XFunctional**, **sc::LYPCFunctional**, **sc::PW86XFunctional**, **sc::PBEXFunctional**, **sc::PW91XFunctional**, **sc::mPW91XFunctional**, and **sc::G96XFunctional**.

## Author

Generated automatically by Doxygen for MPQC from the source code.
