00001 // QMcBeaver 00002 // 00003 // Constructed by 00004 // 00005 // Michael Todd Feldmann 00006 // and 00007 // David Randall "Chip" Kent IV 00008 // 00009 // Copyright 2000. All rights reserved. 00010 // 00011 // drkent@users.sourceforge.net mtfeldmann@users.sourceforge.net 00012 00013 #ifndef QMCJastrowElectronNuclear_H 00014 #define QMCJastrowElectronNuclear_H 00015 00016 #include <string> 00017 00018 #include "Array1D.h" 00019 #include "Array2D.h" 00020 #include "QMCInput.h" 00021 #include "QMCJastrowParameters.h" 00022 #include "QMCWalkerData.h" 00023 00024 using namespace std; 00025 00045 class QMCJastrowElectronNuclear 00046 { 00047 public: 00048 QMCJastrowElectronNuclear(); 00049 00050 ~QMCJastrowElectronNuclear(); 00051 00057 void initialize(QMCInput * input); 00058 00067 void evaluate( QMCJastrowParameters & JP, 00068 QMCWalkerData * wData, 00069 Array2D<double> & X); 00070 00071 double jastrowOnGrid(QMCJastrowParameters & JP, 00072 int Electron, 00073 Array2D<double> & R, 00074 Array2D<double> & grid, 00075 Array1D<double> & integrand); 00076 00081 double get_p_a_ln(int ai); 00082 00087 Array2D<double> * get_p2_xa_ln(int ai); 00088 00093 double get_p3_xxa_ln(int ai); 00094 00095 protected: 00096 Array1D<double> p_a; 00097 Array1D< Array2D<double> > p2_xa; 00098 Array1D<double> p3_xxa; 00099 }; 00100 00101 #endif