# sc::SumDenFunctional Class Reference

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

`#include <functional.h>`

Inheritance diagram for sc::SumDenFunctional:

List of all members.

## 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_

## 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

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.

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.

The documentation for this class was generated from the following file:

- functional.h