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 file is part of Psi4.
12  *
13  * Psi4 is free software; you can redistribute it and/or modify
14  * it under the terms of the GNU Lesser General Public License as published by
15  * the Free Software Foundation, version 3.
16  *
17  * Psi4 is distributed in the hope that it will be useful,
18  * but WITHOUT ANY WARRANTY; without even the implied warranty of
19  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20  * GNU Lesser General Public License for more details.
21  *
22  * You should have received a copy of the GNU Lesser General Public License along
23  * with Psi4; if not, write to the Free Software Foundation, Inc.,
24  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
25  *
26  * @END LICENSE
27  */
28 
29 #ifndef _psi_src_lib_libmoinfo_slater_determinant_h_
30 #define _psi_src_lib_libmoinfo_slater_determinant_h_
31 
37 // C LIBS
38 #include <cstdlib>
39 // STL
40 #include <vector>
41 #include <string>
42 
43 namespace psi {
44 
46 public:
47 // SlaterDeterminant();
48 // SlaterDeterminant(SlaterDeterminant& det);
49  SlaterDeterminant(int alfa_sym_,int beta_sym_,std::vector<bool> alfa_bits_,std::vector<bool> beta_bits_);
51 
52  // Get functions
53  int get_alfa_sym() const {return alfa_sym;}
54  int get_beta_sym() const {return beta_sym;}
55  size_t get_alfa_string() const {return alfa_string;}
56  size_t get_beta_string() const {return beta_string;}
57  std::vector<bool> get_alfa_bits() const {return alfa_bits;}
58  std::vector<bool> get_beta_bits() const {return beta_bits;}
59 
60  // Set functions
61  void set_alfa_bits(std::vector<bool> alfa_bits_) {alfa_bits = alfa_bits_;}
62  void set_beta_bits(std::vector<bool> beta_bits_) {beta_bits = beta_bits_;}
63 
64  // Properties
65  bool is_closed_shell();
66 
67  // Print functions
68  std::string get_label();
69 private:
70  // Class private functions
71  void startup();
72  void cleanup();
73  char get_occupation_symbol(int i);
74  // Class private data
75  int alfa_sym; // Symmetry of the alfa string
76  int beta_sym; // Symmetry of the beta string
77  size_t alfa_string; // Address of the alfa string
78  size_t beta_string; // Address of the beta string
79  std::vector<bool> alfa_bits; // Bit representation of the alfa string
80  std::vector<bool> beta_bits; // Bit representation of the beta string
81 };
82 
83 }
84 
85 #endif // _psi_src_lib_libmoinfo_slater_determinant_h_
char get_occupation_symbol(int i)
Definition: slater_determinant.cc:87
size_t alfa_string
Definition: slater_determinant.h:77
int get_alfa_sym() const
Definition: slater_determinant.h:53
std::vector< bool > get_alfa_bits() const
Definition: slater_determinant.h:57
void startup()
Definition: slater_determinant.cc:64
size_t get_alfa_string() const
Definition: slater_determinant.h:55
~SlaterDeterminant()
Definition: slater_determinant.cc:59
Definition: pointgrp.h:106
std::vector< bool > beta_bits
Definition: slater_determinant.h:80
void set_beta_bits(std::vector< bool > beta_bits_)
Definition: slater_determinant.h:62
int alfa_sym
Definition: slater_determinant.h:75
Definition: slater_determinant.h:45
int beta_sym
Definition: slater_determinant.h:76
bool is_closed_shell()
Definition: slater_determinant.cc:72
size_t beta_string
Definition: slater_determinant.h:78
std::vector< bool > get_beta_bits() const
Definition: slater_determinant.h:58
std::string get_label()
Definition: slater_determinant.cc:77
std::vector< bool > alfa_bits
Definition: slater_determinant.h:79
int get_beta_sym() const
Definition: slater_determinant.h:54
void set_alfa_bits(std::vector< bool > alfa_bits_)
Definition: slater_determinant.h:61
SlaterDeterminant(int alfa_sym_, int beta_sym_, std::vector< bool > alfa_bits_, std::vector< bool > beta_bits_)
Definition: slater_determinant.cc:51
void cleanup()
Definition: slater_determinant.cc:68
size_t get_beta_string() const
Definition: slater_determinant.h:56