MPQC  3.0.0-alpha
r12technology.h
1 //
2 // r12technology.h
3 //
4 // Copyright (C) 2007 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_mbptr12_r12technology_h
29 #define _chemistry_qc_mbptr12_r12technology_h
30 
31 #include <util/state/state.h>
32 #include <chemistry/qc/basis/intdescr.h>
33 #include <math/optimize/gaussianfit.h>
34 
35 namespace sc {
36 
37 // //////////////////////////////////////////////////////////////////////////
38 
40 class R12Technology: virtual public SavableState {
41  public:
42 
50  enum Projector {Projector_0 = 0,
51  Projector_1 = 1,
52  Projector_2 = 2,
53  Projector_3 = 3};
54  enum StandardApproximation {
55  //StdApprox_A = 0, // is now obsolete
56  StdApprox_Ap = 1,
57  StdApprox_App = 2,
58  StdApprox_B = 3,
59  StdApprox_C = 4,
60  StdApprox_Cp = 5
61  };
62  enum ABSMethod {ABS_CABS = 2,
63  ABS_CABSPlus = 3};
64 
67  OrbProdGG_ij = 0,
68  OrbProdGG_pq = 1,
69  };
70 
73  OrbProdgg_ij = 0,
74  OrbProdgg_pq = 1,
75  };
76 
77  enum PositiveDefiniteB {
78  PositiveDefiniteB_no = 0,
79  PositiveDefiniteB_yes = 1,
80  PositiveDefiniteB_weak = 2
81  };
82 
83  enum GeminalAmplitudeAnsatz {
84  GeminalAmplitudeAnsatz_fullopt = 0,
85  GeminalAmplitudeAnsatz_fixed = 1,
86  GeminalAmplitudeAnsatz_scaledfixed = 2
87  };
88 
89  enum H0_dk_approx_pauli {
90  H0_dk_approx_pauli_true = 0,
91  H0_dk_approx_pauli_fHf = 1,
92  H0_dk_approx_pauli_fHf_Q = 2,
93  H0_dk_approx_pauli_false = 3
94  };
95 
99  class R12Ansatz : virtual public SavableState {
100  public:
140  R12Ansatz(const Ref<KeyVal>&);
142  R12Ansatz(StateIn&);
144  R12Ansatz();
145  ~R12Ansatz();
146 
147  void save_data_state(StateOut&);
148  void print(std::ostream& o =ExEnv::out0()) const;
149 
150  R12Technology::Projector projector() const;
151  bool diag() const;
152  R12Technology::GeminalAmplitudeAnsatz amplitudes() const;
153  bool wof() const;
154  R12Technology::OrbitalProduct_GG orbital_product_GG() const;
155  R12Technology::OrbitalProduct_gg orbital_product_gg() const;
156 
157  private:
158  R12Technology::Projector projector_;
159  bool diag_;
160  R12Technology::GeminalAmplitudeAnsatz amplitudes_;
161  bool scaled_; //<
162  bool wof_;
163  R12Technology::OrbitalProduct_GG orbital_product_GG_;
164  R12Technology::OrbitalProduct_gg orbital_product_gg_;
165  }; // end of R12Ansatz declaration
166 
167 
168  class GeminalDescriptor : public RefCount {
169  private:
170  std::string type_;
176  std::vector<std::string> params_;
177  public:
179  ~GeminalDescriptor(){}
180  GeminalDescriptor(const std::string& type, const std::vector<std::string> &params);
181  GeminalDescriptor(const GeminalDescriptor& source);
182  std::string type() const;
183  std::vector<std::string> params() const;
184  void print(std::ostream &o=ExEnv::out0());
185  };
186 
187  static bool invalid(const Ref<GeminalDescriptor>& gdesc);
188  static bool R12(const Ref<GeminalDescriptor>& gdesc);
189  static bool STG(const Ref<GeminalDescriptor>& gdesc);
190  static bool G12(const Ref<GeminalDescriptor>& gdesc);
192  static double single_slater_exponent(const Ref<GeminalDescriptor>& gdesc);
193 
198  class CorrelationFactor : public RefCount {
199  public:
201  //typedef IntParamsG12::PrimitiveGeminal PrimitiveGeminal;
202  //typedef IntParamsG12::ContractedGeminal ContractedGeminal;
204  //typedef std::vector<ContractedGeminal> CorrelationParameters;
205 
206  CorrelationFactor(const std::string& label, const Ref<GeminalDescriptor> &geminaldescriptor);
208  virtual ~CorrelationFactor();
209 
210  // return true if this is equivalent to cf
211  virtual bool equiv(const Ref<CorrelationFactor>& cf) const =0;
212 
214  const std::string& label() const;
216  virtual unsigned int nfunctions() const;
218  virtual unsigned int nprimitives(unsigned int c) const;
219 
221  virtual double value(unsigned int c, double r12) const =0;
222 
226  virtual Ref<TwoBodyIntDescr> tbintdescr(const Ref<Integral>& IF, unsigned int f) const;
230  virtual Ref<TwoBodyIntDescr> tbintdescr(const Ref<Integral>& IF, unsigned int fbra, unsigned int fket) const;
232  virtual unsigned int max_num_tbint_types() const =0;
233 
234  //
235  // These functions are used to map the logical type of integrals ([T1,F12], etc.) to concrete types as produced by TwoBodyInt
236  //
237 
239  virtual TwoBodyOper::type tbint_type_eri() const;
241  virtual TwoBodyOper::type tbint_type_f12() const;
243  virtual TwoBodyOper::type tbint_type_t1f12() const;
245  virtual TwoBodyOper::type tbint_type_t2f12() const;
247  virtual TwoBodyOper::type tbint_type_f12eri() const;
249  virtual TwoBodyOper::type tbint_type_f12f12() const;
251  virtual TwoBodyOper::type tbint_type_f12t1f12() const;
255 
257  void print(std::ostream& os = ExEnv::out0()) const;
258  Ref<GeminalDescriptor> geminaldescriptor();
259 
260  protected:
261  std::string label_;
262  Ref<GeminalDescriptor> geminaldescriptor_;
263 
265  virtual void print_params(std::ostream& os, unsigned int f) const;
266 
267  };
268 
271  public:
273 
275  bool equiv(const Ref<CorrelationFactor>& cf) const;
277  unsigned int max_num_tbint_types() const { return 1; }
279  double value(unsigned int c, double r12) const;
281  Ref<TwoBodyIntDescr> tbintdescr(const Ref<Integral>& IF, unsigned int f) const;
283  Ref<TwoBodyIntDescr> tbintdescr(const Ref<Integral>& IF, unsigned int fbra, unsigned int fket) const;
284  };
285 
288  public:
290 
292  bool equiv(const Ref<CorrelationFactor>& cf) const;
294  unsigned int max_num_tbint_types() const { return 4; }
301  Ref<TwoBodyIntDescr> tbintdescr(const Ref<Integral>& IF, unsigned int f) const;
302  Ref<TwoBodyIntDescr> tbintdescr(const Ref<Integral>& IF, unsigned int f, unsigned int g) const;
304  double value(unsigned int c, double r12) const;
305  };
306 
308  template<class IntParam>
310  typedef typename IntParam::PrimitiveGeminal PrimitiveGeminal;
311  typedef typename IntParam::ContractedGeminal ContractedGeminal;
312  typedef std::vector<ContractedGeminal> ContractedGeminals;
313 
314  // 2 parameters are equivalent if their values differ by less than epsilon
315  static double epsilon;
316  static bool equiv(const ContractedGeminals& A,
317  const ContractedGeminals& B);
318 
319  private:
320  static bool equiv(const PrimitiveGeminal& A,
321  const PrimitiveGeminal& B);
322  };
323 
327  public:
330  typedef IntParamsG12::ContractedGeminal ContractedGeminal;
332  typedef std::vector<ContractedGeminal> CorrelationParameters;
333 
334  G12CorrelationFactor(const CorrelationParameters& params, const Ref<GeminalDescriptor> &geminaldescriptor = 0);
335 
337  bool equiv(const Ref<CorrelationFactor>& cf) const;
339  unsigned int nfunctions() const;
341  const ContractedGeminal& function(unsigned int c) const;
343  unsigned int nprimitives(unsigned int c) const;
345  const PrimitiveGeminal& primitive(unsigned int c, unsigned int p) const;
347  unsigned int max_num_tbint_types() const { return 6; }
361  Ref<TwoBodyIntDescr> tbintdescr(const Ref<Integral>& IF, unsigned int f) const;
363  Ref<TwoBodyIntDescr> tbintdescr(const Ref<Integral>& IF, unsigned int fbra, unsigned int fket) const;
365  double value(unsigned int c, double r12) const;
366 
367  private:
368  CorrelationParameters params_;
369 
371  void print_params(std::ostream& os, unsigned int f) const;
372 
373  };
374 
378  public:
381  typedef IntParamsG12::ContractedGeminal ContractedGeminal;
383  typedef std::vector<ContractedGeminal> CorrelationParameters;
384 
385  G12NCCorrelationFactor(const CorrelationParameters& params, const Ref<GeminalDescriptor> &geminaldescriptor = 0);
386 
388  bool equiv(const Ref<CorrelationFactor>& cf) const;
390  unsigned int nfunctions() const;
392  const ContractedGeminal& function(unsigned int c) const;
394  unsigned int nprimitives(unsigned int c) const;
396  const PrimitiveGeminal& primitive(unsigned int c, unsigned int p) const;
398  unsigned int max_num_tbint_types() const { return 6; }
410  Ref<TwoBodyIntDescr> tbintdescr(const Ref<Integral>& IF, unsigned int f) const;
412  Ref<TwoBodyIntDescr> tbintdescr(const Ref<Integral>& IF, unsigned int fbra, unsigned int fket) const;
414  double value(unsigned int c, double r12) const;
415 
416  static ContractedGeminal product(const ContractedGeminal& A,
417  const ContractedGeminal& B);
418 
419  private:
420  CorrelationParameters params_;
421 
423  void print_params(std::ostream& os, unsigned int f) const;
424 
425  };
426 
428  private:
429  const char* invalid_id_; // = "invalid"
430  const char* r12_id_; // = "R12"
431  const char* stg_id_; // = "STG"
432  const char* g12_id_; // = "G12"
433  public:
435  Ref<GeminalDescriptor> null_geminal();
436  Ref<GeminalDescriptor> r12_geminal();
437  Ref<GeminalDescriptor> slater_geminal(double gamma);
438  Ref<GeminalDescriptor> slater_geminal(const std::vector<double> &gamma);
439  Ref<GeminalDescriptor> gaussian_geminal(double gamma);
440  Ref<GeminalDescriptor> contracted_gaussian_geminal(const std::vector<double> &coeff,
441  const std::vector<double> &gamma);
442  Ref<GeminalDescriptor> gaussian_geminal(const G12CorrelationFactor::CorrelationParameters &corrparams);
443  };
444 
445  template<class CF>
446  static Ref<CF> direct_product(const Ref<CF>& A, const Ref<CF>& B) {
447  const unsigned int nf_A = A->nfunctions();
448  const unsigned int nf_B = B->nfunctions();
449  typedef typename CF::CorrelationParameters CorrParams;
450  CorrParams corrparams;
451  for (int f = 0; f < nf_A; ++f) {
452  for (int g = 0; g < nf_B; ++g) {
453  corrparams.push_back(CF::product(A->function(f), B->function(g)));
454  }
455  }
456  return new CF(corrparams);
457  }
458 
459  private:
460 
461  // implements KeyVal constructor
462  void init_from_kv(const Ref<KeyVal>& keyval,
463  bool abs_eq_obs = true,
464  bool vbs_eq_obs = true);
465 
466  bool abs_eq_obs_;
467  bool vbs_eq_obs_;
468 
469  Ref<CorrelationFactor> corrfactor_;
470  StandardApproximation stdapprox_;
471  Ref<R12Ansatz> ansatz_;
472  ABSMethod abs_method_;
473  double abs_lindep_tol_;
474  int abs_nlindep_;
475  unsigned int maxnabs_;
476  bool gbc_;
477  bool ebc_;
478  bool coupling_;
479  bool compute_1rdm_; // compute mp2r12 1e density
480  bool coupling_1rdm_f12b_; // compute coupling contri. to ccsd-f12b 1e density
481  bool omit_P_;
482  H0_dk_approx_pauli H0_dk_approx_pauli_;
483  bool H0_dk_keep_;
484  bool safety_check_;
485  PositiveDefiniteB posdef_B_;
486 
487  // for debugging purposes only
488  bool omit_B_;
489 
490  // no need to store this guy
491 #if 0
492  // determines the weight function used to fit the correlation factor
493  struct GTGFitWeight {
494  typedef enum {TewKlopper, Cusp} Type;
495  };
496  GTGFitWeight::Type gtg_fit_weight_;
497 #endif
498 
499  public:
500  R12Technology(StateIn&);
654  R12Technology(const Ref<KeyVal>&);
655  R12Technology(const Ref<KeyVal>&,
656  const Ref<GaussianBasisSet>& bs,
657  const Ref<GaussianBasisSet>& vbs,
658  const Ref<GaussianBasisSet>& abs
659  );
660  ~R12Technology();
661 
662  void save_data_state(StateOut&);
663 
664  const Ref<CorrelationFactor>& corrfactor() const;
666  void corrfactor(const Ref<CorrelationFactor>&);
667  unsigned int maxnabs() const;
668  bool gbc() const;
669  bool ebc() const;
670  bool coupling() const;
671  bool compute_1rdm() const;
672  bool coupling_1rdm_f12b() const;
673  ABSMethod abs_method() const;
674  int abs_nlindep() const;
675  double abs_lindep_tol() const;
676  StandardApproximation stdapprox() const;
677  const Ref<R12Ansatz>& ansatz() const;
678  bool spinadapted() const;
679  bool omit_P() const;
680  H0_dk_approx_pauli H0_dk_approx() const;
681  bool H0_dk_keep() const;
682  bool safety_check() const;
683  PositiveDefiniteB posdef_B() const;
684 
685  //
686  // these are for debugging only
687  //
688  // omit expensive parts of B
689  bool omit_B() const;
690 
691  // This checks if ints is suitable for R12 calculations. Throws, if false.
692  void check_integral_factory(const Ref<Integral>& ints);
693 
694  void print(std::ostream&o=ExEnv::out0()) const;
695 
696  static Ref<GaussianBasisSet> make_auto_cabs(const Ref<GaussianBasisSet>& bs);
701  static std::string default_cabs_name(const std::string& obs_name);
707  static double default_stg_exponent(const std::string& obs_name);
708 };
709 
710 template <class IntParam> double R12Technology::CorrParamCompare<IntParam>::epsilon(1e-6);
711 
712 template<class IntParam>
713  bool R12Technology::CorrParamCompare<IntParam>::equiv(
714  const ContractedGeminals& A,
715  const ContractedGeminals& B) {
716  unsigned int nf = A.size();
717  if (nf != B.size())
718  return false;
719 
720  for (unsigned int f = 0; f < nf; ++f) {
721  const ContractedGeminal& Af = A[f];
722  const ContractedGeminal& Bf = B[f];
723  unsigned int np = Af.size();
724  if (np != Bf.size())
725  return false;
726  for (unsigned int p = 0; p < np; ++p) {
727  if (!equiv(Af[p], Bf[p]))
728  return false;
729  }
730  }
731 
732  return true;
733  }
734 
735 }
736 
737 #endif
738 
739 // Local Variables:
740 // mode: c++
741 // c-file-style: "CLJ"
742 // End:
sc::R12Technology::CorrelationFactor::tbint_type_t1f12
virtual TwoBodyOper::type tbint_type_t1f12() const
Returns TwoBodyOper::type corresponding to integrals over [T1,f12].
sc::R12Technology::G12CorrelationFactor::tbint_type_f12t1f12
TwoBodyOper::type tbint_type_f12t1f12() const
Reimplementation of CorrelationFactor::tbint_type_f12t1f12()
sc::R12Technology::R12CorrelationFactor::tbint_type_t1f12
TwoBodyOper::type tbint_type_t1f12() const
Reimplementation of CorrelationFactor::tbint_type_t1f12()
sc::R12Technology::NullCorrelationFactor::equiv
bool equiv(const Ref< CorrelationFactor > &cf) const
Implementation of CorrelationFactor::equiv()
sc::R12Technology::R12CorrelationFactor
R12CorrelationFactor stands for no correlation factor.
Definition: r12technology.h:287
sc::R12Technology::G12NCCorrelationFactor::PrimitiveGeminal
IntParamsG12::PrimitiveGeminal PrimitiveGeminal
Definitions of primitive and contracted Geminals.
Definition: r12technology.h:380
sc::R12Technology::R12CorrelationFactor::tbint_type_f12
TwoBodyOper::type tbint_type_f12() const
Reimplementation of CorrelationFactor::tbint_type_f12()
sc::R12Technology::R12Ansatz::save_data_state
void save_data_state(StateOut &)
Save the base classes (with save_data_state) and the members in the same order that the StateIn CTOR ...
sc::R12Technology::G12NCCorrelationFactor::CorrelationParameters
std::vector< ContractedGeminal > CorrelationParameters
Vector of contracted 2 particle functions.
Definition: r12technology.h:383
sc::R12Technology::NullCorrelationFactor::tbintdescr
Ref< TwoBodyIntDescr > tbintdescr(const Ref< Integral > &IF, unsigned int f) const
Overload of CorrelationFactor::tbintdescr(f)
sc::R12Technology::G12NCCorrelationFactor::tbint_type_f12f12
TwoBodyOper::type tbint_type_f12f12() const
Reimplementation of CorrelationFactor::tbint_type_f12f12()
sc::R12Technology::G12NCCorrelationFactor::tbintdescr
Ref< TwoBodyIntDescr > tbintdescr(const Ref< Integral > &IF, unsigned int f) const
Overload of CorrelationFactor::tbintdescr(f)
sc::R12Technology::single_slater_exponent
static double single_slater_exponent(const Ref< GeminalDescriptor > &gdesc)
Returns a single Slater type geminal exponent. Throws if geminal is not of Slater type and if there i...
sc::R12Technology::G12NCCorrelationFactor
G12NCCorrelationFactor stands for Gaussian geminals correlation factor, usable with methods that do n...
Definition: r12technology.h:377
sc::R12Technology::G12NCCorrelationFactor::tbint_type_f12f12_anti
TwoBodyOper::type tbint_type_f12f12_anti() const
Reimplementation of CorrelationFactor::tbint_type_f12f12_anti()
sc::R12Technology::R12Ansatz::R12Ansatz
R12Ansatz()
The default constructor creates orbital-invariant ansatz with projector 2.
sc::R12Technology::CorrelationFactor::tbint_type_f12f12
virtual TwoBodyOper::type tbint_type_f12f12() const
Returns TwoBodyOper::type corresponding to integrals over f12^2.
sc::R12Technology::G12NCCorrelationFactor::value
double value(unsigned int c, double r12) const
Implementation of CorrelationFactor::value()
sc::R12Technology::G12NCCorrelationFactor::tbint_type_f12t1f12
TwoBodyOper::type tbint_type_f12t1f12() const
Reimplementation of CorrelationFactor::tbint_type_f12t1f12()
sc::R12Technology::R12CorrelationFactor::tbintdescr
Ref< TwoBodyIntDescr > tbintdescr(const Ref< Integral > &IF, unsigned int f) const
Returns TwoBodyIntDescr needed to compute matrix elements where correlation function f appears in eit...
sc::R12Technology::G12CorrelationFactor
G12CorrelationFactor stands for Gaussian geminals correlation factor, usable with methods that requir...
Definition: r12technology.h:326
sc::R12Technology::CorrelationFactor::tbint_type_f12t1f12
virtual TwoBodyOper::type tbint_type_f12t1f12() const
Returns TwoBodyOper::type corresponding to integrals over [f12,[T1,f12]].
sc::Ref
A template class that maintains references counts.
Definition: ref.h:361
sc::R12Technology::GeminalDescriptor
Definition: r12technology.h:168
sc::R12Technology::G12CorrelationFactor::tbintdescr
Ref< TwoBodyIntDescr > tbintdescr(const Ref< Integral > &IF, unsigned int f) const
Overload of CorrelationFactor::tbintdescr(f)
sc::R12Technology::CorrelationFactor::tbint_type_eri
virtual TwoBodyOper::type tbint_type_eri() const
Returns TwoBodyOper::type corresponding to electron repulsion integrals.
sc::R12Technology::CorrelationFactor::max_num_tbint_types
virtual unsigned int max_num_tbint_types() const =0
Returns the maximum number of two-body integral types produced by the appropriate integral evaluator.
sc::R12Technology::CorrelationFactor::nfunctions
virtual unsigned int nfunctions() const
Returns the number of contracted two-particle functions in the set.
sc::R12Technology::G12NCCorrelationFactor::max_num_tbint_types
unsigned int max_num_tbint_types() const
Implementation of CorrelationFactor::max_num_tbint_types()
Definition: r12technology.h:398
sc::R12Technology::print
void print(std::ostream &o=ExEnv::out0()) const
Print the object.
sc::R12Technology::G12NCCorrelationFactor::equiv
bool equiv(const Ref< CorrelationFactor > &cf) const
Implementation of CorrelationFactor::equiv()
sc::R12Technology::CorrelationFactor::label
const std::string & label() const
Returns label.
sc::R12Technology::R12Ansatz::print
void print(std::ostream &o=ExEnv::out0()) const
Print the object.
sc::R12Technology::G12NCCorrelationFactor::tbint_type_f12eri
TwoBodyOper::type tbint_type_f12eri() const
Reimplementation of CorrelationFactor::tbint_type_f12eri()
sc::R12Technology::save_data_state
void save_data_state(StateOut &)
Save the base classes (with save_data_state) and the members in the same order that the StateIn CTOR ...
sc::R12Technology::NullCorrelationFactor::max_num_tbint_types
unsigned int max_num_tbint_types() const
Implementation of CorrelationFactor::max_num_tbint_types()
Definition: r12technology.h:277
sc::R12Technology::CorrelationFactor::tbint_type_f12eri
virtual TwoBodyOper::type tbint_type_f12eri() const
Returns TwoBodyOper::type corresponding to integrals over f12/r12.
sc::R12Technology::G12NCCorrelationFactor::tbint_type_f12
TwoBodyOper::type tbint_type_f12() const
Reimplementation of CorrelationFactor::tbint_type_f12()
sc::R12Technology::G12CorrelationFactor::tbint_type_t2f12
TwoBodyOper::type tbint_type_t2f12() const
Reimplementation of CorrelationFactor::tbint_type_t2f12()
sc::R12Technology::G12CorrelationFactor::PrimitiveGeminal
IntParamsG12::PrimitiveGeminal PrimitiveGeminal
Definitions of primitive and contracted Geminals.
Definition: r12technology.h:329
sc::R12Technology::CorrelationFactor::print_params
virtual void print_params(std::ostream &os, unsigned int f) const
Print out parameters of function f. Base implementation prints nothing.
sc::R12Technology::G12CorrelationFactor::max_num_tbint_types
unsigned int max_num_tbint_types() const
Implementation of CorrelationFactor::max_num_tbint_types()
Definition: r12technology.h:347
sc::R12Technology::CorrelationFactor
CorrelationFactor is a set of one or more two-particle functions of the interparticle distance.
Definition: r12technology.h:198
sc::R12Technology::CorrParamCompare
Compares CorrelationParamaters corresponding to IntParam.
Definition: r12technology.h:309
sc::R12Technology::G12CorrelationFactor::nprimitives
unsigned int nprimitives(unsigned int c) const
Reimplementation of CorrelationFactor::nprimitives()
sc::R12Technology::G12CorrelationFactor::nfunctions
unsigned int nfunctions() const
Reimplementation of CorrelationFactor::nfunctions()
sc::R12Technology::G12CorrelationFactor::tbint_type_f12eri
TwoBodyOper::type tbint_type_f12eri() const
Reimplementation of CorrelationFactor::tbint_type_f12eri()
sc::R12Technology::G12CorrelationFactor::tbint_type_t1f12
TwoBodyOper::type tbint_type_t1f12() const
Reimplementation of CorrelationFactor::tbint_type_t1f12()
sc::R12Technology::R12CorrelationFactor::value
double value(unsigned int c, double r12) const
Implementation of CorrelationFactor::value()
sc::R12Technology::CorrelationFactor::tbint_type_t2f12
virtual TwoBodyOper::type tbint_type_t2f12() const
Returns TwoBodyOper::type corresponding to integrals over [T2,f12].
sc::R12Technology::CorrelationFactor::tbintdescr
virtual Ref< TwoBodyIntDescr > tbintdescr(const Ref< Integral > &IF, unsigned int f) const
Returns TwoBodyIntDescr needed to compute matrix elements where correlation function f appears in eit...
sc::StateIn
Definition: statein.h:79
sc::R12Technology::G12NCCorrelationFactor::primitive
const PrimitiveGeminal & primitive(unsigned int c, unsigned int p) const
Returns std::pair<primitive_parameter,coefficient> in primitive p of contraction c.
sc::R12Technology::G12CorrelationFactor::value
double value(unsigned int c, double r12) const
Implementation of CorrelationFactor::value()
sc::R12Technology::OrbitalProduct_gg
OrbitalProduct_gg
space of orbital products from which geminal substitutions are allowed
Definition: r12technology.h:72
sc::R12Technology::NullCorrelationFactor::value
double value(unsigned int c, double r12) const
Implementation of CorrelationFactor::value()
sc::R12Technology::NullCorrelationFactor
NullCorrelationFactor stands for no correlation factor; only for test.
Definition: r12technology.h:270
sc::R12Technology::CorrelationFactor::value
virtual double value(unsigned int c, double r12) const =0
Computes value of function c when electrons are at distance r12.
sc::R12Technology::CorrelationFactor::tbint_type_f12
virtual TwoBodyOper::type tbint_type_f12() const
Returns TwoBodyOper::type corresponding to integrals over correlation operator.
sc::R12Technology::G12CorrelationFactor::CorrelationParameters
std::vector< ContractedGeminal > CorrelationParameters
Vector of contracted 2 particle functions.
Definition: r12technology.h:332
sc::R12Technology::G12CorrelationFactor::tbint_type_f12f12
TwoBodyOper::type tbint_type_f12f12() const
Reimplementation of CorrelationFactor::tbint_type_f12f12()
sc::R12Technology::R12CorrelationFactor::equiv
bool equiv(const Ref< CorrelationFactor > &cf) const
Implementation of CorrelationFactor::equiv()
sc::StateOut
Definition: stateout.h:71
sc::R12Technology::G12CorrelationFactor::tbint_type_f12
TwoBodyOper::type tbint_type_f12() const
Reimplementation of CorrelationFactor::tbint_type_f12()
sc::R12Technology::default_cabs_name
static std::string default_cabs_name(const std::string &obs_name)
tries to translate a library basis set label to the corresponding default value for the CABS
sc::R12Technology::G12NCCorrelationFactor::nfunctions
unsigned int nfunctions() const
Reimplementation of CorrelationFactor::nfunctions()
sc::IntParamsG12::PrimitiveGeminal
std::pair< double, double > PrimitiveGeminal
std::pair< g, c > as in c * exp( - g*r12^2)
Definition: intparams.h:147
sc::R12Technology
R12Technology describes technical features of the R12 approach.
Definition: r12technology.h:40
sc::R12Technology::G12CorrelationFactor::equiv
bool equiv(const Ref< CorrelationFactor > &cf) const
Implementation of CorrelationFactor::equiv()
sc::TwoBodyOper::type
type
types of known two-body operators
Definition: operator.h:318
sc::R12Technology::R12CorrelationFactor::max_num_tbint_types
unsigned int max_num_tbint_types() const
Implementation of CorrelationFactor::max_num_tbint_types()
Definition: r12technology.h:294
sc::R12Technology::R12Ansatz
R12Ansatz specifies the manner in which the R12 geminals are constructed.
Definition: r12technology.h:99
sc::R12Technology::CorrelationFactor::nprimitives
virtual unsigned int nprimitives(unsigned int c) const
Returns the number of primitive functions in contraction c.
sc::R12Technology::CorrelationFactor::print
void print(std::ostream &os=ExEnv::out0()) const
print the correlation factor
sc::ExEnv::out0
static std::ostream & out0()
Return an ostream that writes from node 0.
sc::SavableState
Base class for objects that can save/restore state.
Definition: state.h:45
sc::R12Technology::default_stg_exponent
static double default_stg_exponent(const std::string &obs_name)
tries to translate a library basis set label to the corresponding default value for the F12 exponent
sc::RefCount
The base class for all reference counted objects.
Definition: ref.h:192
sc::R12Technology::CorrelationFactor::tbint_type_f12f12_anti
virtual TwoBodyOper::type tbint_type_f12f12_anti() const
Returns TwoBodyOper::type corresponding to integrals over f12*f12' antisymmetrized wrt exponents,...
sc::R12Technology::Projector
Projector
Projector of R12 methods: 0: Q_{12} = 1 1: Q_{12} = (1 - P_1)(1 - P_2) 2: Q_{12} = (1 - V_1 V_2)(1 - ...
Definition: r12technology.h:50
sc::R12Technology::G12CorrelationFactor::primitive
const PrimitiveGeminal & primitive(unsigned int c, unsigned int p) const
Returns std::pair<primitive_parameter,coefficient> in primitive p of contraction c.
sc::R12Technology::G12NCCorrelationFactor::nprimitives
unsigned int nprimitives(unsigned int c) const
Reimplementation of CorrelationFactor::nprimitives()
sc::R12Technology::R12CorrelationFactor::tbint_type_t2f12
TwoBodyOper::type tbint_type_t2f12() const
Reimplementation of CorrelationFactor::tbint_type_t2f12()
sc::R12Technology::OrbitalProduct_GG
OrbitalProduct_GG
geminal generating space
Definition: r12technology.h:66
sc
Contains all MPQC code up to version 3.
Definition: mpqcin.h:14
sc::R12Technology::GeminalDescriptorFactory
Definition: r12technology.h:427

Generated at Sun Jan 26 2020 23:23:59 for MPQC 3.0.0-alpha using the documentation package Doxygen 1.8.16.