ERKALE
ERKALE - DFT from Hel
 All Classes Functions Variables Friends Pages
emd_gto.h
1 /*
2  * This source code is part of
3  *
4  * E R K A L E
5  * -
6  * DFT from Hel
7  *
8  * Written by Susi Lehtola, 2010-2012
9  * Copyright (c) 2010-2012, Susi Lehtola
10  *
11  * This program is free software; you can redistribute it and/or
12  * modify it under the terms of the GNU General Public License
13  * as published by the Free Software Foundation; either version 2
14  * of the License, or (at your option) any later version.
15  */
16 
17 #ifndef ERKALE_EMDGTO
18 #define ERKALE_EMDGTO
19 
20 #include "../basis.h"
21 #include "emd.h"
22 
23 #include <complex>
24 #include <vector>
25 
29  std::vector<contr_t> c;
31  int lambda;
32  public:
34  RadialGaussian(int lambda, int l);
37 
39  void add_term(const contr_t & term);
41  void print() const;
42 
44  std::complex<double> get(double p) const;
45 };
46 
48 std::vector< std::vector<size_t> > find_identical_functions(const BasisSet & bas);
49 
51 std::vector< std::vector<ylmcoeff_t> > form_clm(const BasisSet & bas);
52 
54 std::vector< std::vector<RadialGaussian> > form_radial(const BasisSet & bas);
55 
59  std::vector< std::vector<RadialGaussian> > radf;
60 
62  void update_pointers();
63  public:
67  GaussianEMDEvaluator(const BasisSet & bas, const arma::cx_mat & P, int l=0, int m=0);
69  GaussianEMDEvaluator(const std::vector< std::vector<RadialGaussian> > & radf, const std::vector< std::vector<size_t> > & idfuncsv, const std::vector< std::vector<ylmcoeff_t> > & clm, const std::vector<size_t> & locv, const std::vector<coords_t> & coord, const arma::cx_mat & Pv, int l=0, int m=0);
72 
79 };
80 
81 #endif
GaussianEMDEvaluator()
Dummy constructor.
Definition: emd_gto.cpp:275
std::vector< std::vector< RadialGaussian > > radf
The radial functions.
Definition: emd_gto.h:59
void print() const
Print expansion.
Definition: emd_gto.cpp:49
GaussianEMDEvaluator & operator=(const GaussianEMDEvaluator &rhs)
Definition: emd_gto.cpp:338
~RadialGaussian()
Destructor.
Definition: emd_gto.cpp:25
~GaussianEMDEvaluator()
Destructor.
Definition: emd_gto.cpp:334
Class for (basis set independent) normalized radial wfs.
Definition: emd.h:41
void update_pointers()
Update the pointer lists.
Definition: emd_gto.cpp:349
RadialGaussian(int lambda, int l)
Constructor.
Definition: emd_gto.cpp:21
Gaussian radial function.
Definition: emd_gto.h:27
arma::cx_mat P
The density matrix.
Definition: emd.h:142
int lambda
The value of lambda.
Definition: emd_gto.h:31
EMD in Gaussian basis set.
Definition: emd_gto.h:57
Basis set.
Definition: basis.h:187
void add_term(const contr_t &term)
Add a term.
Definition: emd_gto.cpp:28
std::vector< contr_t > c
The contraction.
Definition: emd_gto.h:29
Structure for contractions.
Definition: basis.h:160
int l
l value
Definition: emd.h:44
Radial EMD evaluator.
Definition: emd.h:122