~ubuntu-branches/ubuntu/oneiric/mpqc/oneiric

« back to all changes in this revision

Viewing changes to src/lib/chemistry/qc/mbptr12/transform_ikjy.h

  • Committer: Bazaar Package Importer
  • Author(s): Michael Banck
  • Date: 2005-11-27 11:41:49 UTC
  • mfrom: (1.1.2 upstream)
  • Revision ID: james.westby@ubuntu.com-20051127114149-zgz9r3gk50w8ww2q
Tags: 2.3.0-1
* New upstream release.
* debian/rules (SONAME): Activate awk snippet for automatic so-name
  detection again, resulting in a bump to `7' and making a `c2a' for
  the C++ allocator change unnecessary; closes: #339232.
* debian/patches/00list (08_gcc-4.0_fixes): Removed, no longer needed.
* debian/rules (test): Remove workarounds, do not abort build if tests
  fail.
* debian/ref: Removed.
* debian/control.in (libsc): Added Conflict against libsc6c2.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
//
 
2
// transform_ikjy.h
 
3
//
 
4
// Copyright (C) 2004 Edward Valeev
 
5
//
 
6
// Author: Edward Valeev <edward.valeev@chemistry.gatech.edu>
 
7
// Maintainer: EV
 
8
//
 
9
// This file is part of the SC Toolkit.
 
10
//
 
11
// The SC Toolkit is free software; you can redistribute it and/or modify
 
12
// it under the terms of the GNU Library General Public License as published by
 
13
// the Free Software Foundation; either version 2, or (at your option)
 
14
// any later version.
 
15
//
 
16
// The SC Toolkit is distributed in the hope that it will be useful,
 
17
// but WITHOUT ANY WARRANTY; without even the implied warranty of
 
18
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
19
// GNU Library General Public License for more details.
 
20
//
 
21
// You should have received a copy of the GNU Library General Public License
 
22
// along with the SC Toolkit; see the file COPYING.LIB.  If not, write to
 
23
// the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
 
24
//
 
25
// The U.S. Government is granted a limited license as per AL 91-7.
 
26
//
 
27
 
 
28
#ifdef __GNUG__
 
29
#pragma interface
 
30
#endif
 
31
 
 
32
#ifndef _chemistry_qc_mbptr12_transformikjy_h
 
33
#define _chemistry_qc_mbptr12_transformikjy_h
 
34
 
 
35
#include <string>
 
36
#include <util/ref/ref.h>
 
37
#include <util/class/scexception.h>
 
38
#include <chemistry/qc/mbptr12/transform_tbint.h>
 
39
 
 
40
using namespace std;
 
41
 
 
42
namespace sc {
 
43
 
 
44
  /** TwoBodyMOIntsTransform_ikjy computes (ik|jy) integrals
 
45
      using parallel integrals-direct AO->MO transformation. */
 
46
 
 
47
class TwoBodyMOIntsTransform_ikjy : public TwoBodyMOIntsTransform {
 
48
 
 
49
  // Initialize the MO integrals accumulator
 
50
  void init_acc();
 
51
  // Compute required dynamic memory for a given batch size
 
52
  distsize_t compute_transform_dynamic_memory_(int ni) const;
 
53
  
 
54
public:
 
55
 
 
56
  TwoBodyMOIntsTransform_ikjy(StateIn&);
 
57
  TwoBodyMOIntsTransform_ikjy(const std::string& name, const Ref<MOIntsTransformFactory>& factory,
 
58
                              const Ref<MOIndexSpace>& space1, const Ref<MOIndexSpace>& space2,
 
59
                              const Ref<MOIndexSpace>& space3, const Ref<MOIndexSpace>& space4);
 
60
  ~TwoBodyMOIntsTransform_ikjy();
 
61
 
 
62
  void save_data_state(StateOut&);
 
63
 
 
64
  /// Implementation of TwoBodyMOIntsTransform::type()
 
65
  std::string type() const { return "ikjy"; }
 
66
  /** Returns the number of bytes allocated for each ij-block of integrals of one type
 
67
      in MemoryGrp */
 
68
  const size_t memgrp_blksize() const;
 
69
 
 
70
  /// Computes transformed integrals
 
71
  void compute();
 
72
  /// Check symmetry of transformed integrals
 
73
  void check_int_symm(double threshold = TwoBodyMOIntsTransform::zero_integral) const throw (ProgrammingError);
 
74
};
 
75
 
 
76
}
 
77
 
 
78
#endif
 
79
 
 
80
// Local Variables:
 
81
// mode: c++
 
82
// c-file-style: "CLJ"
 
83
// End:
 
84
 
 
85