# sc::TwoBodyMOIntsTransform Class Reference

TwoBodyMOIntsTransform computes two-body integrals in MO basis using parallel integrals-direct AO->MO transformation. More...

`#include <transform_tbint.h>`

Inheritance diagram for sc::TwoBodyMOIntsTransform:

List of all members.

## Public Member Functions

| TwoBodyMOIntsTransform (StateIn &)
| TwoBodyMOIntsTransform (const std::string &name, const Ref< MOIntsTransformFactory > &factory, const Ref< MOIndexSpace > &space1, const Ref< MOIndexSpace > &space2, const Ref< MOIndexSpace > &space3, const Ref< MOIndexSpace > &space4)
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.
std::string | name () const
| Returns the name of the transform.
virtual std::string | type () const =0
| Returns a short label which uniquely identifies the type of transform.
Ref< MemoryGrp > | mem () const
| Returns the MemoryGrp object.
Ref< MessageGrp > | msg () const
| Returns the MessageGrp object.
Ref< R12IntsAcc > | ints_acc () const
| Returns the integrals accumulator object.
Ref< MOIndexSpace > | space1 () const
| Returns MOIndexSpace object 1.
Ref< MOIndexSpace > | space2 () const
| Returns MOIndexSpace object 2.
Ref< MOIndexSpace > | space3 () const
| Returns MOIndexSpace object 3.
Ref< MOIndexSpace > | space4 () const
| Returns MOIndexSpace object 4.
double | print_percent () const
| Returns the update print frequency.
int | batchsize () const
| Returns the batchsize for each pass of the transformation.
int | debug () const
| Returns the debug level.
bool | dynamic () const
| Returns whether to use dynamic load balancing.
int | num_te_types () const
| Returns the number of types of two body integrals computed.
virtual const size_t | memgrp_blksize () const =0
| Returns the number of bytes allocated for each ij-block of integrals of one type in MemoryGrp.
void | set_top_mole (const Ref< MolecularEnergy > &top_mole)
| Specifies the top-level MolecularEnergy object to use for checkpointing.
void | set_num_te_types (const int num_te_types)
| Specifies how many integral types computed by TwoBodyInt to be transformed Default is 1.
void | set_memory (const size_t memory)
void | set_debug (int debug)
void | set_dynamic (bool dynamic)
void | set_print_percent (double print_percent)
virtual void | compute ()=0
| Computes transformed integrals.
virtual void | check_int_symm (double threshold=TwoBodyMOIntsTransform::zero_integral) const =0 throw (ProgrammingError)
| Check symmetry of transformed integrals.
virtual void | obsolete ()
| Make the transform obsolete. Next call to compute() will recompute.
DistShellPair::SharedData * | shell_pair_data ()
| Returns a that data that must be shared between all DistShellPair objects.

## Protected Member Functions

unsigned int | restart_orbital () const
| returns index in range of space1_ where to start the transformation
void | init_vars ()
void | reinit_acc ()
void | alloc_mem (const size_t localmem)
void | dealloc_mem ()
int | compute_transform_batchsize_ (size_t mem_static, int rank_i)
void | memory_report (std::ostream &os=ExEnv::out0()) const
| Generates a report on memory for the transform : user-specified limits, projected and actual use.
void | mospace_report (std::ostream &os=ExEnv::out0()) const
| Generates a report on MO spaces for the transform.
void | print_header (std::ostream &os=ExEnv::out0()) const
| Prints out standard header.
void | print_footer (std::ostream &os=ExEnv::out0()) const
| Prints out standard footer.

## Static Protected Member Functions

static int | compute_nij (const int rank_i, const int rank_j, const int nproc, const int me)

## Protected Attributes

std::string | name_
Ref< MOIntsTransformFactory > | factory_
Ref< MolecularEnergy > | top_mole_
Ref< MessageGrp > | msg_
Ref< MemoryGrp > | mem_
Ref< ThreadGrp > | thr_
Ref< R12IntsAcc > | ints_acc_
Ref< MOIndexSpace > | space1_
Ref< MOIndexSpace > | space2_
Ref< MOIndexSpace > | space3_
Ref< MOIndexSpace > | space4_
int | num_te_types_
size_t | memory_
bool | dynamic_
double | print_percent_
DistShellPair::SharedData | spdata_
int | debug_
MOIntsTransformFactory::StoreMethod | ints_method_
std::string | file_prefix_
size_t | mem_static_
int | batchsize_
int | npass_

## Static Protected Attributes

static const double | zero_integral = 1.0e-12
| By default, integrals smaller than zero_integral are considered zero.

## Classes

struct | MOSpaces
| Predefined enumerated type for the MO spaces. More...

## Detailed Description

TwoBodyMOIntsTransform computes two-body integrals in MO basis using parallel integrals-direct AO->MO transformation.

## Member Function Documentation

void sc::TwoBodyMOIntsTransform::memory_report | ( | std::ostream & | os = `ExEnv::out0()` | ) | const`[protected]`

Generates a report on memory for the transform : user-specified limits, projected and actual use.

Assumes formatting info from ExEnv::out0().

void sc::TwoBodyMOIntsTransform::mospace_report | ( | std::ostream & | os = `ExEnv::out0()` | ) | const`[protected]`

Generates a report on MO spaces for the transform.

Assumes formatting info from ExEnv::out0().

void sc::TwoBodyMOIntsTransform::print_header | ( | std::ostream & | os = `ExEnv::out0()` | ) | const`[protected]`

Prints out standard header.

Call at the beginning of compute().

void sc::TwoBodyMOIntsTransform::print_footer | ( | std::ostream & | os = `ExEnv::out0()` | ) | const`[protected]`

Prints out standard footer.

Call at the end of compute().

void sc::TwoBodyMOIntsTransform::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::TwoBodyMOIntsTransform_ijxy, sc::TwoBodyMOIntsTransform_ikjy, and sc::TwoBodyMOIntsTransform_ixjy.

virtual const size_t sc::TwoBodyMOIntsTransform::memgrp_blksize | ( |  | ) | const`[pure virtual]`

Returns the number of bytes allocated for each ij-block of integrals of one type in MemoryGrp.

It's guaranteed to be divisible by sizeof(double).

Implemented in sc::TwoBodyMOIntsTransform_ijxy, sc::TwoBodyMOIntsTransform_ikjy, and sc::TwoBodyMOIntsTransform_ixjy.

void sc::TwoBodyMOIntsTransform::set_num_te_types | ( | const int | num_te_types | ) |

Specifies how many integral types computed by TwoBodyInt to be transformed Default is 1.

DistShellPair::SharedData* sc::TwoBodyMOIntsTransform::shell_pair_data | ( |  | ) | `[inline]`

Returns a that data that must be shared between all DistShellPair objects.

## Member Data Documentation

const double sc::TwoBodyMOIntsTransform::zero_integral = 1.0e-12`[static, protected]`

By default, integrals smaller than zero_integral are considered zero.

This constant is only used in checking integrals, not computing them.

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

- transform_tbint.h