SDAIonicStepper.h 1.47 KB
Newer Older
Francois Gygi committed
1 2
////////////////////////////////////////////////////////////////////////////////
//
Francois Gygi committed
3 4 5 6
// Copyright (c) 2008 The Regents of the University of California
//
// This file is part of Qbox
//
Francois Gygi committed
7 8
// Qbox is distributed under the terms of the GNU General Public License
// as published by the Free Software Foundation, either version 2 of
Francois Gygi committed
9 10 11 12 13 14
// the License, or (at your option) any later version.
// See the file COPYING in the root directory of this distribution
// or <http://www.gnu.org/licenses/>.
//
////////////////////////////////////////////////////////////////////////////////
//
Francois Gygi committed
15 16 17
// SDAIonicStepper.h:
//
////////////////////////////////////////////////////////////////////////////////
Francois Gygi committed
18
// $Id: SDAIonicStepper.h,v 1.12 2008-09-08 15:56:19 fgygi Exp $
Francois Gygi committed
19 20 21 22 23

#ifndef SDAIONICSTEPPER_H
#define SDAIONICSTEPPER_H

#include "IonicStepper.h"
24 25
#include "LineMinimizer.h"
#include <vector>
Francois Gygi committed
26 27 28 29

class SDAIonicStepper : public IonicStepper
{
  private:
30

Francois Gygi committed
31
  bool first_step_;
32 33 34 35 36 37
  std::vector<std::vector< double> > rc_;
  std::vector<std::vector< double> > pc_;
  std::vector<std::vector< double> > fc_;
  double ec_, fpc_;
  double alpha_, sigma1_, sigma2_;
  LineMinimizer linmin_;
38

Francois Gygi committed
39
  public:
40

41
  SDAIonicStepper(Sample& s) : IonicStepper(s), first_step_(true),
Francois Gygi committed
42 43
  sigma1_(0.1), sigma2_(0.3)
  {
44 45 46
    linmin_.set_sigma1(sigma1_);
    linmin_.set_sigma2(sigma2_);
  }
Francois Gygi committed
47

48 49
  void compute_r(double e0, const std::vector<std::vector< double> >& f0);
  void compute_v(double e0, const std::vector<std::vector< double> >& f0) {}
Francois Gygi committed
50 51 52
};

#endif