Main Page Class Hierarchy Compound List File List Compound Members Related Pages

# sc::MBPT2_R12 Class Reference

The MBPT2_R12 class implements several linear R12 second-order perturbation theory methods. More...

`#include <mbptr12.h>`

Inheritance diagram for sc::MBPT2_R12:

[legend]
Collaboration diagram for sc::MBPT2_R12:

[legend]
List of all members.

## Public Methods

| MBPT2_R12 (StateIn &)
| MBPT2_R12 (const Ref< KeyVal > &)
| The KeyVal constructor. More...
| ~MBPT2_R12 ()
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. More...
Ref< GaussianBasisSet > | aux_basis () const
LinearR12::StandardApproximation | stdapprox () const
bool | spinadapted () const
R12IntEvalInfo::StoreMethod | r12ints_method () const
char * | r12ints_file () const
double | corr_energy ()
double | r12_corr_energy ()
RefSymmSCMatrix | density ()
| Returns the SO density.
void | obsolete ()
| Marks all results as being out of date. More...
int | gradient_implemented () const
int | value_implemented () const
| Information about the availability of values, gradients, and hessians.
void | print (std::ostream &o=ExEnv::out0()) const
| Print information about the object.

## Protected Methods

void | compute ()
| Recompute at least the results that have compute true and are not already computed. More...

## Detailed Description

The MBPT2_R12 class implements several linear R12 second-order perturbation theory methods.

## Constructor & Destructor Documentation

sc::MBPT2_R12::MBPT2_R12 | ( | const Ref< KeyVal > & |  | ) |

The KeyVal constructor.

`stdapprox`
  This gives a string that must take on one of the values below. The default is A.

  `A`
    Use second order M\o{}ller-Plesset perturbation theory with linear R12 terms in standard approximation A (MP2-R12/A). Only energies can be computed with the MP2-R12/A method.

  `A'`
    Use second order M\o{}ller-Plesset perturbation theory with linear R12 terms in standard approximation A' (MP2-R12/A'). This will cause MP2-R12/A energies to be computed also. Only energies can be computed with the MP2-R12/A' method.

  `B`
    Use second order M\o{}ller-Plesset perturbation theory with linear R12 terms in standard approximation B. This method is not implemented yet.

`spinadapted`
  This specifies whether to compute spin-adapted or spin-orbital pair energies. Default is to compute spin-adapted energies.

`aux_basis`
  This specifies the auxiliary basis to be used for the resolution of the identity. Default is to use the same basis as for the orbital expansion.

`r12ints`
  This specifies how to store transformed MO integrals. Valid values are:

  `mem-posix`
    Store integrals in memory for single-pass situations and in a binary file on task 0's node using POSIX I/O for multipass situations. `posix` is usually less efficient than `mpi` for distributed parallel multipass runs since the I/O is performed by one task only. However, this method guaranteed to work in all types of environments, hence `mem-posix` is the default.

  `posix`
    Store integrals in a binary file on task 0's node using POSIX I/O. This method is different from `mem-posix` in that it forces the integrals out to disk even if they could be stored in memory. `posix` should only be used for benchmarking and testing purposes.

  `mem-mpi`
    Store integrals in memory for single-pass situations and in a binary file using MPI-I/O for multipass situations. This method assumes the availability of MPI-I/O. `mem-mpi` is the preferred choice in distributed environments which have MPI-I/O available.

  `mpi`
    Store integrals in a binary file using MPI-I/O. This method is different from `mem-mpi` in that it forces the integrals out to disk even if they could be stored in memory. `mpi` should only be used for benchmarking and testing purposes.

  `mem`
    Store integrals in memory. Can only be used with single-pass transformations. This method should only be used for testing purposes

  If `r12ints` is not specified, then `mem-posix` method will be used. If user wishes to use MPI-I/O, pending its availability, for higher parallel efficiency, `r12ints` should be explicitly set to `mem-mpi`.

`r12ints_file`
  This specifies which file to use to store transformed MO integrals if `r12ints=posix-io` or `r12ints=mpi-io` is used. Default is "./<inputbasename>.r12ints.dat", where <inputbasename> is the name of the input file without ".in". If MPI-I/O is used then it is user's responsibility to ensure that the file resides on a file system that supports MPI-I/O.

## Member Function Documentation

void sc::MBPT2_R12::compute | ( |  | ) | `[protected, virtual]`

| Recompute at least the results that have compute true and are not already computed. This should only be called by Result's members. Reimplemented from sc::MBPT2.

void sc::MBPT2_R12::obsolete | ( |  | ) | `[virtual]`

| Marks all results as being out of date. Any subsequent access to results will cause Compute::compute() to be called. Reimplemented from sc::MBPT2.

void sc::MBPT2_R12::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::MBPT2.

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

- mbptr12.h