MPQC 3.0.0-alpha
Loading...
Searching...
No Matches
femo.h
1//
2// femo.h
3//
4// Copyright (C) 2008 Edward Valeev
5//
6// Author: Edward Valeev <evaleev@vt.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#ifndef _chemistry_qc_wfn_femo_h
29#define _chemistry_qc_wfn_femo_h
30
31#include <vector>
32#include <math/scmat/matrix.h>
33
34namespace sc {
35
38
41 class FEMO : public RefCount {
42 public:
45 FEMO(int nalpha, int nbeta,
46 const RefDiagSCMatrix& evalsa, const RefDiagSCMatrix& evalsb = 0);
47 ~FEMO() {}
48
50 double E() const;
52 int nalpha() const;
54 int nbeta() const;
56 int nalpha(int i) const;
58 int nbeta(int i) const;
59
60 private:
61 FEMO() {}
62
63 double E_;
64 int nalpha_;
65 int nbeta_;
66 // # of electrons per irrep
67 std::vector<int> alphapi_;
68 std::vector<int> betapi_;
69
70 };
71
78 public:
79 HundsFEMOSeeker(int nelectron, double Etol, bool allow_closed_shell,
80 const RefDiagSCMatrix& evalsa, const RefDiagSCMatrix& evalsb = 0);
82 const Ref<FEMO>& result() const { return result_; }
83
84 // the default tolerance
85 static double tolerance;
86 private:
87 Ref<FEMO> result_;
88 };
89
91 // end of addtogroup ChemistryElectronicStructureOneBody
92
93}
94
95#endif /* header guard */
Describes a simple the free-electron molecular orbital model that can be used to guess the lowest-ene...
Definition femo.h:41
int nalpha() const
returns the number of alpha electrons
int nbeta() const
returns the number of beta electrons
FEMO(int nalpha, int nbeta, const RefDiagSCMatrix &evalsa, const RefDiagSCMatrix &evalsb=0)
Construct a FEMO state using the eigenvalues.
double E() const
returns the energy
int nalpha(int i) const
returns the number of alpha electrons in irrep i
int nbeta(int i) const
returns the number of beta electrons in irrep i
Finds the FEMO configuration that corresponds to the maximum multiplicity.
Definition femo.h:77
The base class for all reference counted objects.
Definition ref.h:192
The RefDiagSCMatrix class is a smart pointer to an DiagSCMatrix specialization.
Definition matrix.h:389
A template class that maintains references counts.
Definition ref.h:361
Contains all MPQC code up to version 3.
Definition mpqcin.h:14

Generated at Wed Sep 25 2024 02:45:30 for MPQC 3.0.0-alpha using the documentation package Doxygen 1.12.0.