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

# sc\_mPW91XFunctional(3)

Implements a modified 1991 Perdew-Wang exchange functional.

## NAME

sc::mPW91XFunctional - Implements a modified 1991 Perdew-Wang exchange functional.

## SYNOPSIS

`#include <functional.h>`

Inherits **sc::DenFunctional**.

### Public Types

enum **Func** { **B88**, **PW91**, **mPW91** }\

### Public Member Functions

**mPW91XFunctional** ()\
 Construct an mPW exchange functional.  **mPW91XFunctional** (Func variant)\
 Construct an mPW form exchange functional using the given functional variant.  **mPW91XFunctional** (const **Ref**\< **KeyVal** \> &)\
 Construct an mPW form exchange functional.  **mPW91XFunctional** (**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.  int **need\_density\_gradient** ()\
 void **point** (const **PointInputData** &, **PointOutputData** &)\
 void **init\_constants** (Func)\

### Protected Member Functions

void **spin\_contrib** (const **PointInputData::SpinData** &, double &mpw, double &dmpw\_dr, double &dmpw\_dg)\

### Protected Attributes

double **b**\
 double **beta**\
 double **c**\
 double **d**\
 double **a\_x**\
 double **x\_d\_coef**\

### Additional Inherited Members

## Detailed Description

Implements a modified 1991 Perdew-Wang exchange functional.

C. Adamo and V. Barone, J. Chem. Phys., 108(2), pp. 664-674, 1998.

## Constructor & Destructor Documentation

### sc::mPW91XFunctional::mPW91XFunctional (Func variant)

Construct an mPW form exchange functional using the given functional variant. The variant can be B88, PW91, or mPW91.

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

Construct an mPW form exchange functional. The following keywords are recognized:

- `constants`

  This can be B88 to give the Becke88 exchange functional; PW91, to give results similar to the PW91 exchange functional; or mPW91, to give the new functional developed by Adamo and Barone.

- `b`

  - `beta`

  - `c`

  - `d`

  - `x_d_coef`

  The coefficient of $x^d$, where $x$ is the reduced gradient.

## Member Function Documentation

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

Reimplemented from **sc::DenFunctional**.

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

Implements **sc::DenFunctional**.

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

## Author

Generated automatically by Doxygen for MPQC from the source code.
