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

« back to all changes in this revision

Viewing changes to src/lib/chemistry/qc/intcca/int2e.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
// int1e.h
 
3
//
 
4
// Copyright (C) 2004 Sandia National Laboratories.
 
5
//
 
6
// Author: Joseph Kenny <jpkenny@sandia.gov>
 
7
// Maintainer: JPK
 
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_intcca_int2e_h
 
33
#define _chemistry_qc_intcca_int2e_h
 
34
 
 
35
#include <sidl_cxx.hh>
 
36
#include <Chemistry_QC_GaussianBasis_IntegralEvaluatorFactory.hh>
 
37
#include <Chemistry_QC_GaussianBasis_IntegralEvaluator4.hh>
 
38
#include <Chemistry_QC_GaussianBasis_DerivCenters.hh>
 
39
#include <Chemistry_Chemistry_QC_GaussianBasis_DerivCenters.hh>
 
40
#include <MPQC_GaussianBasis_Molecular.hh>
 
41
#include <chemistry/qc/basis/integral.h>
 
42
 
 
43
using namespace std;
 
44
using namespace MPQC;
 
45
using namespace Chemistry;
 
46
using namespace Chemistry::QC::GaussianBasis;
 
47
 
 
48
namespace sc {
 
49
 
 
50
class Integral;
 
51
 
 
52
/** Int2eCCA adapts CCA integrals components for use within SC.  It is
 
53
    used by TwoBodyIntCCA and TwoBodyDerivIntCCA to implement the 
 
54
    IntegralCCA class. */
 
55
class Int2eCCA: public RefCount {
 
56
 
 
57
  private:
 
58
    IntegralEvaluatorFactory eval_factory_;
 
59
    Ref<GaussianBasisSet> bs1_;
 
60
    Ref<GaussianBasisSet> bs2_;
 
61
    Ref<GaussianBasisSet> bs3_;
 
62
    Ref<GaussianBasisSet> bs4_;
 
63
    GaussianBasis_Molecular cca_bs1_;
 
64
    GaussianBasis_Molecular cca_bs2_;
 
65
    GaussianBasis_Molecular cca_bs3_;
 
66
    GaussianBasis_Molecular cca_bs4_;
 
67
    sidl::array<double> sidl_buffer_;
 
68
    double *buffer_;
 
69
    bool use_opaque_;
 
70
    void copy_buffer(int);
 
71
    IntegralEvaluator4 erep_;
 
72
    IntegralEvaluator4 erep_1der_;
 
73
    IntegralEvaluator4 *erep_ptr_;
 
74
    IntegralEvaluator4 *erep_1der_ptr_;
 
75
    Chemistry_QC_GaussianBasis_DerivCenters cca_dc_;
 
76
    int redundant_;
 
77
    void remove_redundant(int,int,int,int);
 
78
 
 
79
  protected:
 
80
    Integral *integral_;
 
81
 
 
82
  public:
 
83
    Int2eCCA(Integral *integral,
 
84
             const Ref<GaussianBasisSet>&b1,
 
85
             const Ref<GaussianBasisSet>&b2,
 
86
             const Ref<GaussianBasisSet>&b3,
 
87
             const Ref<GaussianBasisSet>&b4,
 
88
             int order, size_t storage, IntegralEvaluatorFactory, 
 
89
             bool, string );
 
90
    ~Int2eCCA() {};
 
91
    double *buffer() { return buffer_; }
 
92
    void compute_erep( int is, int js, int ks, int ls );
 
93
    void compute_erep_1der( int is, int js, int ks, int ls,
 
94
                            Chemistry::QC::GaussianBasis::DerivCenters &dc);
 
95
    int redundant() const { return redundant_; }
 
96
    void set_redundant(int i) { redundant_ = i; }
 
97
 
 
98
};
 
99
 
 
100
}
 
101
 
 
102
#endif
 
103
 
 
104
// Local Variables:
 
105
// mode: c++
 
106
// End: