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

# sc\_SumDenFunctional(3)

The SumDenFunctional computes energies and densities using the a sum of energy density functions method.

## NAME

sc::SumDenFunctional - The **SumDenFunctional** computes energies and densities using the a sum of energy density functions method.

## SYNOPSIS

`#include <functional.h>`

Inherits **sc::DenFunctional**.

Inherited by **sc::StdDenFunctional**.

### Public Member Functions

**SumDenFunctional** (const **Ref**\< **KeyVal** \> &)\
 This **KeyVal** constructor reads the following keywords:  **SumDenFunctional** (**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.  void **set\_spin\_polarized** (int)\
 void **set\_compute\_potential** (int)\
 int **need\_density\_gradient** ()\
 void **point** (const **PointInputData** &, **PointOutputData** &)\
 void **print** (std::ostream &=**ExEnv::out0**()) const\
 Print the object.  double **a0** () const\
 Override the **DenFunctional::a0()** member, so that a0's in contributing functionals can be added in as well.

### Protected Attributes

int **n\_**\
 **Ref**\< **DenFunctional** \> \* **funcs\_**\
 double \* **coefs\_**\

### Additional Inherited Members

## Detailed Description

The **SumDenFunctional** computes energies and densities using the a sum of energy density functions method.

## Constructor & Destructor Documentation

### sc::SumDenFunctional::SumDenFunctional (const Ref\< KeyVal \> &)

This **KeyVal** constructor reads the following keywords:

- `funcs`

  Specifies an array of **DenIntegrator** objects.

- `coefs`

  Specifies the coefficient of each **DenIntegrator** object.

- `a0`

  Specifies the coefficient of the Hartree-Fock exchange. This is nonzero for hybrid functionals. The default is zero.

For example, the B3LYP functional can be specified with the following input:

```
functional<SumDenFunctional>: (
  a0 = 0.2
  coefs = [ 0.8 0.72 0.19 0.81 ]
  funcs: [
    <SlaterXFunctional>:()
    <Becke88XFunctional>:()
    <VWN1LCFunctional>:( rpa = 1 )
    <LYPCFunctional>:()
  ]
)
```

## Member Function Documentation

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

Override the **DenFunctional::a0()** member, so that a0's in contributing functionals can be added in as well.

Reimplemented from **sc::DenFunctional**.

### int sc::SumDenFunctional::need\_density\_gradient ()` [virtual]`

Reimplemented from **sc::DenFunctional**.

### void sc::SumDenFunctional::point (const PointInputData &, PointOutputData &)` [virtual]`

Implements **sc::DenFunctional**.

### void sc::SumDenFunctional::print (std::ostream & = ExEnv::out0`()`) const` [virtual]`

Print the object.

Reimplemented from **sc::DescribedClass**.

Reimplemented in **sc::StdDenFunctional**.

### void sc::SumDenFunctional::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::DenFunctional**.

Reimplemented in **sc::StdDenFunctional**.

### void sc::SumDenFunctional::set\_compute\_potential (int)` [virtual]`

Reimplemented from **sc::DenFunctional**.

### void sc::SumDenFunctional::set\_spin\_polarized (int)` [virtual]`

Reimplemented from **sc::DenFunctional**.

## Author

Generated automatically by Doxygen for MPQC from the source code.
