Psi4
slater_determinant.h
Go to the documentation of this file.
1 /*
2  * @BEGIN LICENSE
3  *
4  * Psi4: an open-source quantum chemistry software package
5  *
6  * Copyright (c) 2007-2017 The Psi4 Developers.
7  *
8  * The copyrights for code used from other parties are included in
9  * the corresponding files.
10  *
11  * This program is free software; you can redistribute it and/or modify
12  * it under the terms of the GNU General Public License as published by
13  * the Free Software Foundation; either version 2 of the License, or
14  * (at your option) any later version.
15  *
16  * This program 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 General Public License for more details.
20  *
21  * You should have received a copy of the GNU General Public License along
22  * with this program; if not, write to the Free Software Foundation, Inc.,
23  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
24  *
25  * @END LICENSE
26  */
27 
28 #ifndef _psi_src_lib_libmoinfo_slater_determinant_h_
29 #define _psi_src_lib_libmoinfo_slater_determinant_h_
30 
36 // C LIBS
37 #include <cstdlib>
38 // STL
39 #include <vector>
40 #include <string>
41 
42 namespace psi {
43 
45 public:
46 // SlaterDeterminant();
47 // SlaterDeterminant(SlaterDeterminant& det);
48  SlaterDeterminant(int alfa_sym_,int beta_sym_,std::vector<bool> alfa_bits_,std::vector<bool> beta_bits_);
50 
51  // Get functions
52  int get_alfa_sym() const {return alfa_sym;}
53  int get_beta_sym() const {return beta_sym;}
54  size_t get_alfa_string() const {return alfa_string;}
55  size_t get_beta_string() const {return beta_string;}
56  std::vector<bool> get_alfa_bits() const {return alfa_bits;}
57  std::vector<bool> get_beta_bits() const {return beta_bits;}
58 
59  // Set functions
60  void set_alfa_bits(std::vector<bool> alfa_bits_) {alfa_bits = alfa_bits_;}
61  void set_beta_bits(std::vector<bool> beta_bits_) {beta_bits = beta_bits_;}
62 
63  // Properties
64  bool is_closed_shell();
65 
66  // Print functions
67  std::string get_label();
68 private:
69  // Class private functions
70  void startup();
71  void cleanup();
72  char get_occupation_symbol(int i);
73  // Class private data
74  int alfa_sym; // Symmetry of the alfa string
75  int beta_sym; // Symmetry of the beta string
76  size_t alfa_string; // Address of the alfa string
77  size_t beta_string; // Address of the beta string
78  std::vector<bool> alfa_bits; // Bit representation of the alfa string
79  std::vector<bool> beta_bits; // Bit representation of the beta string
80 };
81 
82 }
83 
84 #endif // _psi_src_lib_libmoinfo_slater_determinant_h_
char get_occupation_symbol(int i)
Definition: slater_determinant.cc:86
size_t alfa_string
Definition: slater_determinant.h:76
int get_alfa_sym() const
Definition: slater_determinant.h:52
std::vector< bool > get_alfa_bits() const
Definition: slater_determinant.h:56
void startup()
Definition: slater_determinant.cc:63
size_t get_alfa_string() const
Definition: slater_determinant.h:54
~SlaterDeterminant()
Definition: slater_determinant.cc:58
Definition: pointgrp.h:105
std::vector< bool > beta_bits
Definition: slater_determinant.h:79
void set_beta_bits(std::vector< bool > beta_bits_)
Definition: slater_determinant.h:61
int alfa_sym
Definition: slater_determinant.h:74
Definition: slater_determinant.h:44
int beta_sym
Definition: slater_determinant.h:75
bool is_closed_shell()
Definition: slater_determinant.cc:71
size_t beta_string
Definition: slater_determinant.h:77
std::vector< bool > get_beta_bits() const
Definition: slater_determinant.h:57
std::string get_label()
Definition: slater_determinant.cc:76
std::vector< bool > alfa_bits
Definition: slater_determinant.h:78
int get_beta_sym() const
Definition: slater_determinant.h:53
void set_alfa_bits(std::vector< bool > alfa_bits_)
Definition: slater_determinant.h:60
SlaterDeterminant(int alfa_sym_, int beta_sym_, std::vector< bool > alfa_bits_, std::vector< bool > beta_bits_)
Definition: slater_determinant.cc:50
void cleanup()
Definition: slater_determinant.cc:67
size_t get_beta_string() const
Definition: slater_determinant.h:55