Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > 247b28499c443e092731ffba814075f2 > files > 613

mpqc-html-2.3.1-9mdv2010.0.i586.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>MPQC: sc::R12IntsAcc Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css">
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.9 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div class="tabs">
    <ul>
      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    </ul>
  </div>
  <div class="navpath"><b>sc</b>::<a class="el" href="classsc_1_1R12IntsAcc.html">R12IntsAcc</a>
  </div>
</div>
<div class="contents">
<h1>sc::R12IntsAcc Class Reference</h1><!-- doxytag: class="sc::R12IntsAcc" --><!-- doxytag: inherits="sc::SavableState" --><a class="el" href="classsc_1_1R12IntsAcc.html" title="R12IntsAcc accumulates transformed (MO) integrals stored as (ijxy) where i, j, x...">R12IntsAcc</a> accumulates transformed (MO) integrals stored as (ijxy) where i, j, x, and, y lie in spaces I, J, X, and Y, respectively.  
<a href="#_details">More...</a>
<p>
<code>#include &lt;<a class="el" href="r12ia_8h_source.html">r12ia.h</a>&gt;</code>
<p>
<div class="dynheader">
Inheritance diagram for sc::R12IntsAcc:</div>
<div class="dynsection">

<p><center><img src="classsc_1_1R12IntsAcc.png" usemap="#sc::R12IntsAcc_map" border="0" alt=""></center>
<map name="sc::R12IntsAcc_map">
<area href="classsc_1_1SavableState.html" alt="sc::SavableState" shape="rect" coords="0,168,120,192">
<area href="classsc_1_1DescribedClass.html" alt="sc::DescribedClass" shape="rect" coords="0,112,120,136">
<area href="classsc_1_1RefCount.html" alt="sc::RefCount" shape="rect" coords="0,56,120,80">
<area href="classsc_1_1Identity.html" alt="sc::Identity" shape="rect" coords="0,0,120,24">
</map>
</div>

<p>
<a href="classsc_1_1R12IntsAcc-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Public Types</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1R12IntsAcc.html#0aaf14d80bff5f6aad89c6fb2a0e4ea7">tbint_type</a> { <b>eri</b> = 0, 
<b>r12</b> = 1, 
<b>r12t1</b> = 2, 
<b>r12t2</b> = 3
 }</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Types of two-body operators that <a class="el" href="classsc_1_1R12IntsAcc.html" title="R12IntsAcc accumulates transformed (MO) integrals stored as (ijxy) where i, j, x...">R12IntsAcc</a> understands. <br></td></tr>
<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="9a9728d3515d2afb28e36586ff394661"></a><!-- doxytag: member="sc::R12IntsAcc::R12IntsAcc" ref="9a9728d3515d2afb28e36586ff394661" args="(int num_te_types, int ni, int nj, int nx, int ny)" -->
&nbsp;</td><td class="memItemRight" valign="bottom"><b>R12IntsAcc</b> (int num_te_types, int ni, int nj, int nx, int ny)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="02649523126914df416092455f50e91f"></a><!-- doxytag: member="sc::R12IntsAcc::R12IntsAcc" ref="02649523126914df416092455f50e91f" args="(StateIn &amp;)" -->
&nbsp;</td><td class="memItemRight" valign="bottom"><b>R12IntsAcc</b> (<a class="el" href="classsc_1_1StateIn.html">StateIn</a> &amp;)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1R12IntsAcc.html#ff229420e6823f3c0a6b5d7423081930">save_data_state</a> (<a class="el" href="classsc_1_1StateOut.html">StateOut</a> &amp;)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Save the base classes (with save_data_state) and the members in the same order that the <a class="el" href="classsc_1_1StateIn.html" title="Restores objects that derive from SavableState.">StateIn</a> CTOR initializes them.  <a href="#ff229420e6823f3c0a6b5d7423081930"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="103114d6027d488f5f3265cf192ef689"></a><!-- doxytag: member="sc::R12IntsAcc::num_te_types" ref="103114d6027d488f5f3265cf192ef689" args="() const " -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1R12IntsAcc.html#103114d6027d488f5f3265cf192ef689">num_te_types</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The number of types of integrals that are being handled together. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="4f407decbb8a95e7eafa8fa9828557cb"></a><!-- doxytag: member="sc::R12IntsAcc::ni" ref="4f407decbb8a95e7eafa8fa9828557cb" args="() const " -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1R12IntsAcc.html#4f407decbb8a95e7eafa8fa9828557cb">ni</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Rank of index space i. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="3234543f4162029c325fb5c854c33328"></a><!-- doxytag: member="sc::R12IntsAcc::nj" ref="3234543f4162029c325fb5c854c33328" args="() const " -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1R12IntsAcc.html#3234543f4162029c325fb5c854c33328">nj</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Rank of index space j. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="e8a747739a241ccf69ef0bafc8f99dda"></a><!-- doxytag: member="sc::R12IntsAcc::nx" ref="e8a747739a241ccf69ef0bafc8f99dda" args="() const " -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1R12IntsAcc.html#e8a747739a241ccf69ef0bafc8f99dda">nx</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Rank of index space x. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="f98cdeab6942f249b9b06a756306069f"></a><!-- doxytag: member="sc::R12IntsAcc::ny" ref="f98cdeab6942f249b9b06a756306069f" args="() const " -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1R12IntsAcc.html#f98cdeab6942f249b9b06a756306069f">ny</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Rank of index space y. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="c6d6894062d87794215e1a9f60631a22"></a><!-- doxytag: member="sc::R12IntsAcc::blocksize" ref="c6d6894062d87794215e1a9f60631a22" args="() const " -->
size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1R12IntsAcc.html#c6d6894062d87794215e1a9f60631a22">blocksize</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Size of each block of the integrals of one type, in double words. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="003a15c1804e38437eda18a993f6cfdb"></a><!-- doxytag: member="sc::R12IntsAcc::next_orbital" ref="003a15c1804e38437eda18a993f6cfdb" args="() const " -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1R12IntsAcc.html#003a15c1804e38437eda18a993f6cfdb">next_orbital</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The index of the first orbital in the next integrals batch to be stored. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1R12IntsAcc.html#0e158dafcf2c4ab03fdc20c5f2d43085">store_memorygrp</a> (<a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; <a class="el" href="classsc_1_1MemoryGrp.html">MemoryGrp</a> &gt; &amp;mem, int ni, const size_t blksize=0)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Stores all pair block of integrals held in mem in a layout assumed throughout <a class="el" href="classsc_1_1MBPT2__R12.html" title="The MBPT2_R12 class implements several linear R12 second-order perturbation theory...">MBPT2_R12</a>.  <a href="#0e158dafcf2c4ab03fdc20c5f2d43085"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="eef3cc221b4da98837587049f0c6b3d9"></a><!-- doxytag: member="sc::R12IntsAcc::store_pair_block" ref="eef3cc221b4da98837587049f0c6b3d9" args="(int i, int j, double *ints)=0" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1R12IntsAcc.html#eef3cc221b4da98837587049f0c6b3d9">store_pair_block</a> (int i, int j, double *ints)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">All member functions of this class and its children indices i and j don't include frozen orbitals Stores an ij pair block of integrals (assumes the block resides locally). <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="1137d2d9e8defbeccaee102b16b9cdaa"></a><!-- doxytag: member="sc::R12IntsAcc::commit" ref="1137d2d9e8defbeccaee102b16b9cdaa" args="()" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1R12IntsAcc.html#1137d2d9e8defbeccaee102b16b9cdaa">commit</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Commit the content of the accumulator for reading. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="6c2c34ce969bbf9f75be39225562f4bb"></a><!-- doxytag: member="sc::R12IntsAcc::is_committed" ref="6c2c34ce969bbf9f75be39225562f4bb" args="()" -->
bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1R12IntsAcc.html#6c2c34ce969bbf9f75be39225562f4bb">is_committed</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Has the content of the accumulator been commited for reading? <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="6e3175ec0a7550b5455b50361a4af166"></a><!-- doxytag: member="sc::R12IntsAcc::activate" ref="6e3175ec0a7550b5455b50361a4af166" args="()" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1R12IntsAcc.html#6e3175ec0a7550b5455b50361a4af166">activate</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Call before starting to read content. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="d757038d76e066d0701ab83a963d02e5"></a><!-- doxytag: member="sc::R12IntsAcc::deactivate" ref="d757038d76e066d0701ab83a963d02e5" args="()" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1R12IntsAcc.html#d757038d76e066d0701ab83a963d02e5">deactivate</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Call when done reading content. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="6a59f7e381de8de55eb1b42abd14a38a"></a><!-- doxytag: member="sc::R12IntsAcc::is_active" ref="6a59f7e381de8de55eb1b42abd14a38a" args="()" -->
const bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1R12IntsAcc.html#6a59f7e381de8de55eb1b42abd14a38a">is_active</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Check if can read content. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="602d34fd0dfc3880b94cc376db2122bd"></a><!-- doxytag: member="sc::R12IntsAcc::retrieve_pair_block" ref="602d34fd0dfc3880b94cc376db2122bd" args="(int i, int j, tbint_type oper_type)=0" -->
virtual double *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1R12IntsAcc.html#602d34fd0dfc3880b94cc376db2122bd">retrieve_pair_block</a> (int i, int j, <a class="el" href="classsc_1_1R12IntsAcc.html#0aaf14d80bff5f6aad89c6fb2a0e4ea7">tbint_type</a> oper_type)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Retrieves an ij pair block of integrals. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="78dfd72cb2939a0aaf9bbd47d3a6b37a"></a><!-- doxytag: member="sc::R12IntsAcc::release_pair_block" ref="78dfd72cb2939a0aaf9bbd47d3a6b37a" args="(int i, int j, tbint_type oper_type)=0" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1R12IntsAcc.html#78dfd72cb2939a0aaf9bbd47d3a6b37a">release_pair_block</a> (int i, int j, <a class="el" href="classsc_1_1R12IntsAcc.html#0aaf14d80bff5f6aad89c6fb2a0e4ea7">tbint_type</a> oper_type)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Releases an ij pair block of integrals (if needed). <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="b827b3eed2394cb818779c70d207cb63"></a><!-- doxytag: member="sc::R12IntsAcc::is_local" ref="b827b3eed2394cb818779c70d207cb63" args="(int i, int j) const =0" -->
virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1R12IntsAcc.html#b827b3eed2394cb818779c70d207cb63">is_local</a> (int i, int j) const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Is this block stored locally? <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="32bd6648a9794c5b4e7400c4e211b9c5"></a><!-- doxytag: member="sc::R12IntsAcc::is_avail" ref="32bd6648a9794c5b4e7400c4e211b9c5" args="(int i, int j) const =0" -->
virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1R12IntsAcc.html#32bd6648a9794c5b4e7400c4e211b9c5">is_avail</a> (int i, int j) const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Is this block available to this task? <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="6568244564b1e1e0e8db07652db34716"></a><!-- doxytag: member="sc::R12IntsAcc::has_access" ref="6568244564b1e1e0e8db07652db34716" args="(int proc) const =0" -->
virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1R12IntsAcc.html#6568244564b1e1e0e8db07652db34716">has_access</a> (int proc) const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Does this task have access to all the integrals? <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1R12IntsAcc.html#7b76123eb288225b8c4b5da97a87d819">tasks_with_access</a> (vector&lt; int &gt; &amp;twa_map) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the total number of tasks with access to integrals.  <a href="#7b76123eb288225b8c4b5da97a87d819"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="7c7021b241a62e48d5a654d2c2aed120"></a><!-- doxytag: member="sc::R12IntsAcc::can_restart" ref="7c7021b241a62e48d5a654d2c2aed120" args="() const =0" -->
virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1R12IntsAcc.html#7c7021b241a62e48d5a654d2c2aed120">can_restart</a> () const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Can this specialization be used in restarts? <br></td></tr>
<tr><td colspan="2"><br><h2>Static Public Attributes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="b2e903e2769802c3b5bd67fbc40a620e"></a><!-- doxytag: member="sc::R12IntsAcc::max_num_te_types_" ref="b2e903e2769802c3b5bd67fbc40a620e" args="" -->
static const int&nbsp;</td><td class="memItemRight" valign="bottom"><b>max_num_te_types_</b> = 4</td></tr>

<tr><td colspan="2"><br><h2>Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="2e6a81bb0b3866094331f22c9020b1d3"></a><!-- doxytag: member="sc::R12IntsAcc::ntasks" ref="2e6a81bb0b3866094331f22c9020b1d3" args="() const =0" -->
virtual int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1R12IntsAcc.html#2e6a81bb0b3866094331f22c9020b1d3">ntasks</a> () const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">total number of tasks <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="e53c1cd34479be1a55e3c6ba4bcca631"></a><!-- doxytag: member="sc::R12IntsAcc::taskid" ref="e53c1cd34479be1a55e3c6ba4bcca631" args="() const =0" -->
virtual int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1R12IntsAcc.html#e53c1cd34479be1a55e3c6ba4bcca631">taskid</a> () const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">ID of this task. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="56f275eba386748e85b5c8620e4de1dd"></a><!-- doxytag: member="sc::R12IntsAcc::inc_next_orbital" ref="56f275eba386748e85b5c8620e4de1dd" args="(int ni)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1R12IntsAcc.html#56f275eba386748e85b5c8620e4de1dd">inc_next_orbital</a> (int ni)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The index of the first orbital in the next integrals batch to be stored. <br></td></tr>
<tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="766d7fff386ba2adb7ae9ad1687cfb85"></a><!-- doxytag: member="sc::R12IntsAcc::ni_" ref="766d7fff386ba2adb7ae9ad1687cfb85" args="" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>ni_</b></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="8dd868f1dfbc9f8b5b96c4f924f395a5"></a><!-- doxytag: member="sc::R12IntsAcc::nj_" ref="8dd868f1dfbc9f8b5b96c4f924f395a5" args="" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>nj_</b></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="bb86576ac0802a2f2108082841a19648"></a><!-- doxytag: member="sc::R12IntsAcc::nx_" ref="bb86576ac0802a2f2108082841a19648" args="" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>nx_</b></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="b4864c679bfef8fdef19520d9c5f8020"></a><!-- doxytag: member="sc::R12IntsAcc::ny_" ref="b4864c679bfef8fdef19520d9c5f8020" args="" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>ny_</b></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="e5dbb6ca2b4fc753085e6b203347edc8"></a><!-- doxytag: member="sc::R12IntsAcc::nxy_" ref="e5dbb6ca2b4fc753085e6b203347edc8" args="" -->
size_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>nxy_</b></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a9baf23270f80f9d0879922f5213c213"></a><!-- doxytag: member="sc::R12IntsAcc::blksize_" ref="a9baf23270f80f9d0879922f5213c213" args="" -->
size_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>blksize_</b></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="4130f1afd78a201e1f954c376c4abf06"></a><!-- doxytag: member="sc::R12IntsAcc::blocksize_" ref="4130f1afd78a201e1f954c376c4abf06" args="" -->
size_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>blocksize_</b></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="7a283565b6532a5a1614e93291ecda54"></a><!-- doxytag: member="sc::R12IntsAcc::next_orbital_" ref="7a283565b6532a5a1614e93291ecda54" args="" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>next_orbital_</b></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="b53254be629a29b916a37702e1306c6f"></a><!-- doxytag: member="sc::R12IntsAcc::committed_" ref="b53254be629a29b916a37702e1306c6f" args="" -->
bool&nbsp;</td><td class="memItemRight" valign="bottom"><b>committed_</b></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="419d3026c903401a18b51c6b3f973ca2"></a><!-- doxytag: member="sc::R12IntsAcc::active_" ref="419d3026c903401a18b51c6b3f973ca2" args="" -->
bool&nbsp;</td><td class="memItemRight" valign="bottom"><b>active_</b></td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
<a class="el" href="classsc_1_1R12IntsAcc.html" title="R12IntsAcc accumulates transformed (MO) integrals stored as (ijxy) where i, j, x...">R12IntsAcc</a> accumulates transformed (MO) integrals stored as (ijxy) where i, j, x, and, y lie in spaces I, J, X, and Y, respectively. 
<p>
ijxy is only the storage format, the actual type may be (ix|jy), (ij|xy), etc.<p>
Transformed integrals are usually computed using a parallel MO integrals transformation procedure. In general, such transformations will require multiple passes through AO integrals. Each pass produces a batch of transformed integrals. For example, a batch in direct parallel MP2 energy algorithm is a set of integrals {(ix|jy)} in which i indices are in a finite subrange of O and x, j, and y take any of their allowed values. For example, if batch I contains all integrals (ix|jy) with i greater than or equal m but less than n, then batch I+1 contains integrals (ix|jy) with i greater than n. Integrals in batch 0 have indices i greater than or equal to 0.<p>
After each pass the MO integrals are contained in a <a class="el" href="classsc_1_1MemoryGrp.html" title="The MemoryGrp abstract class provides a way of accessing distributed memory in a...">MemoryGrp</a> object. The object is "stored" in accumulator using <code>store_memorygrp(Ref&lt;MemoryGrp&gt;&amp; mem, int ni)</code>. After all batches have been stored, the content of <a class="el" href="classsc_1_1R12IntsAcc.html" title="R12IntsAcc accumulates transformed (MO) integrals stored as (ijxy) where i, j, x...">R12IntsAcc</a> needs to be "committed" using <code><a class="el" href="classsc_1_1R12IntsAcc.html#1137d2d9e8defbeccaee102b16b9cdaa" title="Commit the content of the accumulator for reading.">commit()</a></code>. After that blocks of MO integrals can be accessed using <code>retrieve_pair_block</code>. <hr><h2>Member Function Documentation</h2>
<a class="anchor" name="ff229420e6823f3c0a6b5d7423081930"></a><!-- doxytag: member="sc::R12IntsAcc::save_data_state" ref="ff229420e6823f3c0a6b5d7423081930" args="(StateOut &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void sc::R12IntsAcc::save_data_state           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classsc_1_1StateOut.html">StateOut</a> &amp;&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Save the base classes (with save_data_state) and the members in the same order that the <a class="el" href="classsc_1_1StateIn.html" title="Restores objects that derive from SavableState.">StateIn</a> CTOR initializes them. 
<p>
This must be implemented by the derived class if the class has data. 
<p>Reimplemented from <a class="el" href="classsc_1_1SavableState.html#f9e0c212322d3c0f43e2dcb33e111acf">sc::SavableState</a>.</p>

</div>
</div><p>
<a class="anchor" name="0e158dafcf2c4ab03fdc20c5f2d43085"></a><!-- doxytag: member="sc::R12IntsAcc::store_memorygrp" ref="0e158dafcf2c4ab03fdc20c5f2d43085" args="(Ref&lt; MemoryGrp &gt; &amp;mem, int ni, const size_t blksize=0)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void sc::R12IntsAcc::store_memorygrp           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; <a class="el" href="classsc_1_1MemoryGrp.html">MemoryGrp</a> &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>mem</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>ni</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const size_t&nbsp;</td>
          <td class="paramname"> <em>blksize</em> = <code>0</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Stores all pair block of integrals held in mem in a layout assumed throughout <a class="el" href="classsc_1_1MBPT2__R12.html" title="The MBPT2_R12 class implements several linear R12 second-order perturbation theory...">MBPT2_R12</a>. 
<p>
Let's suppose the number of tasks is nproc, nj is the number of j indices, ni is the number of i indices of integrals held in mem at the moment. Then all integrals with a given i and j are stored on task (i*nj+j)/nproc and this ij block is (i*nj+j)nproc -th block on this task. Each ij block contains num_te_types_ subblocks of integrals. Each subblock of integrals has blksize bytes allocated for it. Note that blksize may be larger than blksize_ because an ij-block of partially transformed integrals may be larger than the block of fully transformed integrals. 
</div>
</div><p>
<a class="anchor" name="7b76123eb288225b8c4b5da97a87d819"></a><!-- doxytag: member="sc::R12IntsAcc::tasks_with_access" ref="7b76123eb288225b8c4b5da97a87d819" args="(vector&lt; int &gt; &amp;twa_map) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int sc::R12IntsAcc::tasks_with_access           </td>
          <td>(</td>
          <td class="paramtype">vector&lt; int &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>twa_map</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns the total number of tasks with access to integrals. 
<p>
If task i has access to the integrals, then twa_map[i] is its index among the tasks with access, -1 otherwise. 
</div>
</div><p>
<hr>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="r12ia_8h_source.html">r12ia.h</a></ul>
</div>
<hr>
<address>
<small>

Generated at Wed Oct 14 14:12:15 2009 for <a
href="http://www.mpqc.org">MPQC</a>
2.3.1 using the documentation package <a
href="http://www.doxygen.org">Doxygen</a>
1.5.9.

</small>
</address>
</body>
</html>