/usr/include/sc/chemistry/qc/mbptr12/transform_factory.h is in libsc-dev 2.3.1-16.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 | //
// transform_factory.h
//
// Copyright (C) 2004 Edward Valeev
//
// Author: Edward Valeev <edward.valeev@chemistry.gatech.edu>
// Maintainer: EV
//
// This file is part of the SC Toolkit.
//
// The SC Toolkit is free software; you can redistribute it and/or modify
// it under the terms of the GNU Library General Public License as published by
// the Free Software Foundation; either version 2, or (at your option)
// any later version.
//
// The SC Toolkit is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public License
// along with the SC Toolkit; see the file COPYING.LIB. If not, write to
// the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
//
// The U.S. Government is granted a limited license as per AL 91-7.
//
#ifdef __GNUG__
#pragma interface
#endif
#ifndef _chemistry_qc_mbptr12_transformfactory_h
#define _chemistry_qc_mbptr12_transformfactory_h
#include <string>
#include <util/ref/ref.h>
#include <util/group/memory.h>
#include <chemistry/molecule/energy.h>
#include <chemistry/qc/basis/integral.h>
#include <chemistry/qc/mbptr12/moindexspace.h>
using namespace std;
namespace sc {
class TwoBodyMOIntsTransform;
/** MOIntsTransformFactory is a factory that produces MOIntsTransform objects. */
class MOIntsTransformFactory : virtual public SavableState {
public:
/// Describes the method of storing transformed MO integrals.
enum StoreMethod { mem_posix = 0, posix = 1, mem_mpi = 2, mpi = 3, mem_only = 4 };
private:
Ref<MolecularEnergy> top_mole_; // Top-level molecular energy to enable checkpointing
Ref<Integral> integral_;
Ref<MessageGrp> msg_;
Ref<MemoryGrp> mem_;
Ref<ThreadGrp> thr_;
Ref<MOIndexSpace> space1_;
Ref<MOIndexSpace> space2_;
Ref<MOIndexSpace> space3_;
Ref<MOIndexSpace> space4_;
size_t memory_;
bool dynamic_;
double print_percent_;
int debug_;
StoreMethod ints_method_;
std::string file_prefix_;
public:
MOIntsTransformFactory(StateIn&);
MOIntsTransformFactory(const Ref<Integral>& integral,
const Ref<MOIndexSpace>& space1, const Ref<MOIndexSpace>& space2 = 0,
const Ref<MOIndexSpace>& space3 = 0, const Ref<MOIndexSpace>& space4 = 0);
~MOIntsTransformFactory();
void save_data_state(StateOut&);
/// Sets the orbital spaces
void set_spaces(const Ref<MOIndexSpace>& space1, const Ref<MOIndexSpace>& space2 = 0,
const Ref<MOIndexSpace>& space3 = 0, const Ref<MOIndexSpace>& space4 = 0);
/// Specifies the top-level MolecularEnergy object to use for checkpointing
void set_top_mole(const Ref<MolecularEnergy>& top_mole) { top_mole_ = top_mole; }
/// Sets the method of storing transformed MO integrals. Default method is mem_posix.
void set_ints_method(const StoreMethod method) { ints_method_ = method; }
/// Sets the name of the file to hold the integrals.
void set_file_prefix(const std::string& prefix) { file_prefix_ = prefix; }
void set_debug(int debug) { debug_ = debug; }
void set_dynamic(bool dynamic) { dynamic_ = dynamic; }
void set_print_percent(double print_percent) { print_percent_ = print_percent; }
void set_memory(size_t nbytes) { memory_ = nbytes; }
/// Returns the Integral factory
Ref<Integral> integral() const { return integral_; };
/// Returns the method of storing transformed MO integrals.
const StoreMethod ints_method() const { return ints_method_; }
/// Sets the name of the file to hold the integrals.
const std::string file_prefix() const { return file_prefix_; }
const int debug() const { return debug_; }
const bool dynamic() const { return dynamic_; }
const double print_percent() const { return print_percent_; }
const size_t memory() const { return memory_; }
/// Returns MOIndexSpace object 1
Ref<MOIndexSpace> space1() const;
/// Returns MOIndexSpace object 2
Ref<MOIndexSpace> space2() const;
/// Returns MOIndexSpace object 3
Ref<MOIndexSpace> space3() const;
/// Returns MOIndexSpace object 4
Ref<MOIndexSpace> space4() const;
/** Creates an TwoBodyMOIntsTransform object that will compute (pq|rs) integrals
stored in qs blocks for each pr */
Ref<TwoBodyMOIntsTransform> twobody_transform_13(const std::string& id);
/** Creates an TwoBodyMOIntsTransform object that will compute (pq|rs) integrals
stored in rs blocks for each pq */
Ref<TwoBodyMOIntsTransform> twobody_transform_12(const std::string& id);
};
}
#include <chemistry/qc/mbptr12/transform_tbint.h>
#endif
// Local Variables:
// mode: c++
// c-file-style: "CLJ"
// End:
|