CheMPS2
TensorF1.h
1 /*
2  CheMPS2: a spin-adapted implementation of DMRG for ab initio quantum chemistry
3  Copyright (C) 2013-2016 Sebastian Wouters
4 
5  This program is free software; you can redistribute it and/or modify
6  it under the terms of the GNU General Public License as published by
7  the Free Software Foundation; either version 2 of the License, or
8  (at your option) any later version.
9 
10  This program is distributed in the hope that it will be useful,
11  but WITHOUT ANY WARRANTY; without even the implied warranty of
12  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  GNU General Public License for more details.
14 
15  You should have received a copy of the GNU General Public License along
16  with this program; if not, write to the Free Software Foundation, Inc.,
17  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 */
19 
20 #ifndef TENSORF1_CHEMPS2_H
21 #define TENSORF1_CHEMPS2_H
22 
23 #include "Tensor.h"
24 #include "TensorT.h"
25 #include "TensorL.h"
26 #include "TensorOperator.h"
27 #include "SyBookkeeper.h"
28 
29 namespace CheMPS2{
35  class TensorF1 : public TensorOperator{
36 
37  public:
38 
40 
44  TensorF1(const int boundary_index, const int Idiff, const bool moving_right, const SyBookkeeper * denBK);
45 
47  virtual ~TensorF1();
48 
49  //Make new TensorF1 (vs update)
51  void makenew(TensorT * denT);
52 
53  //Make new TensorF1 (vs update)
57  void makenew(TensorL * denL, TensorT * denT, double * workmem);
58 
59  private:
60 
61  //makenew when movingright
62  void makenewRight(TensorL * denL, TensorT * denT, double * workmem);
63 
64  //makenew when movingleft
65  void makenewLeft(TensorL * denL, TensorT * denT, double * workmem);
66 
67  //makenew when movingright
68  void makenewRight(TensorT * denT);
69 
70  //makenew when movingleft
71  void makenewLeft(TensorT * denT);
72 
73  };
74 }
75 
76 #endif
Definition: CASPT2.h:42
virtual ~TensorF1()
Destructor.
Definition: TensorF1.cpp:38
void makenew(TensorT *denT)
Definition: TensorF1.cpp:40
bool moving_right
Whether or not moving right.
TensorF1(const int boundary_index, const int Idiff, const bool moving_right, const SyBookkeeper *denBK)
Constructor.
Definition: TensorF1.cpp:27