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 QMCCorrelationFunctionParameters_H 00014 #define QMCCorrelationFunctionParameters_H 00015 00016 #include <iostream> 00017 #include <string> 00018 00019 #include "Array1D.h" 00020 #include "QMCCorrelationFunctionFactory.h" 00021 #include "StringManipulation.h" 00022 00023 using namespace std; 00024 00025 00036 class QMCCorrelationFunctionParameters 00037 { 00038 public: 00043 QMCCorrelationFunctionParameters(); 00044 00045 00053 QMCCorrelationFunctionParameters(const QMCCorrelationFunctionParameters & 00054 rhs); 00055 00056 00062 ~QMCCorrelationFunctionParameters(); 00063 00064 00071 Array1D < double > getParameters(); 00072 00078 Array1D < Complex > getPoles(); 00079 00080 00088 string getParticle1Type(); 00089 00090 00098 string getParticle2Type(); 00099 00100 00108 int getTotalNumberOfParameters(); 00109 00110 00120 QMCCorrelationFunction * getCorrelationFunction(); 00121 00125 bool isUsed(); 00126 00133 void setParameters(Array1D<double> & params); 00134 00135 00141 void setParticle1Type(string val); 00142 00143 00149 void setParticle2Type(string val); 00150 00151 00161 bool isSingular(); 00162 00163 00170 void operator = (const QMCCorrelationFunctionParameters & rhs); 00171 00172 00181 bool read(istream & strm, bool nucCuspReplacement); 00182 00183 00188 friend ostream & operator << (ostream & strm, 00189 QMCCorrelationFunctionParameters & rhs); 00190 00191 private: 00192 void initializeCorrelationFunctionParameters(); 00193 void setCorrelationFunction(); 00194 00195 Array1D < string > ParticleTypes; 00196 00197 int NumberOfParameterTypes; 00198 Array1D < int > NumberOfParameters; 00199 Array1D < double > Parameters; 00200 Array1D < int > BeginningIndexOfParameterType; 00201 int TotalNumberOfParameters; 00202 00203 int NumberOfConstantTypes; 00204 Array1D < int > NumberOfConstants; 00205 Array1D < double > Constants; 00206 Array1D < int > BeginningIndexOfConstantType; 00207 int TotalNumberOfConstants; 00208 00209 string CorrelationFunctionType; 00210 QMCCorrelationFunction* CorrelationFunction; 00211 }; 00212 00213 #endif