Remove FD check in BsplineFunctor.

git-svn-id: https://subversion.assembla.com/svn/qmcdev/trunk@3584 e5b18d87-469d-4833-9cc0-8cdfa06e9491
This commit is contained in:
Ken Esler 2009-02-21 00:07:41 +00:00
parent f8365ed649
commit 37bf4e69db
5 changed files with 29 additions and 24 deletions

View File

@ -1,8 +1,9 @@
#GNU compilers
IF(CMAKE_COMPILER_IS_GNUCXX)
ADD_DEFINITIONS(-Drestrict=__restrict__ -DADD_ -DINLINE_ALL=inline)
SET(CMAKE_CXX_FLAGS "-O6 -ftemplate-depth-60 -Drestrict=__restrict__ -fstrict-aliasing -funroll-all-loops -finline-limit=1000 -ffast-math -Wno-deprecated ")
SET(CMAKE_C_FLAGS "-O3 -Drestrict=__restrict__ -fstrict-aliasing -funroll-all-loops -finline-limit=1000 -ffast-math -std=gnu99 -fomit-frame-pointer ")
# SET(CMAKE_CXX_FLAGS "-O3 -ftemplate-depth-60 -Drestrict=__restrict__ -fstrict-aliasing -funroll-all-loops -finline-limit=1000 -ffast-math -Wno-deprecated ")
SET(CMAKE_CXX_FLAGS "-g -O3 -ftemplate-depth-60 -Drestrict=__restrict__ -funroll-all-loops -finline-limit=1000 -Wno-deprecated ")
SET(CMAKE_C_FLAGS "-O3 -Drestrict=__restrict__ -funroll-all-loops -finline-limit=1000 -std=gnu99 -fomit-frame-pointer ")
IF(HAVE_POSIX_MEMALIGN)
SET(CMAKE_TRY_GNU_CC_FLAGS "-mmmx")

View File

@ -15,19 +15,19 @@ SET(INTEL_COMPILER 1)
ADD_DEFINITIONS(-DADD_ -DINLINE_ALL=inline -DMPICH_SKIP_MPICXX)
#enable Interprocedural (IP) Optimizations
#-ipo_obj force generation of real object files (requires -ipo)
#SET(CMAKE_CXX_FLAGS "-restrict -unroll -fno-alias -O3 -Ob=1 -ansi -ipo -ipo_obj -cxxlib-icc")
#SET(CMAKE_CC_FLAGS "-restrict -unroll -fno-alias -O3 -Ob=1 -ansi -ipo -ipo_obj")
#SET(CMAKE_CXX_FLAGS "-restrict -unroll -fno-alias -g -ansi")
#SET(CMAKE_CC_FLAGS "-restrict -unroll -fno-alias -g -ansi")
#SET(CMAKE_CXX_FLAGS "-restrict -unroll -fno-alias -O3 -cxxlib-icc")
#SET(CMAKE_CXX_FLAGS "-restrict -unroll -fno-alias -O3 -ansi -fno-fnalias -ivdep_parallel -Ob=2")
#SET(CMAKE_CXX_FLAGS "-restrict -unroll -fno-alias -O3 -ivdep_parallel -Ob=2")
#SET(CMAKE_CXX_FLAGS "-restrict -unroll -fno-alias -O3 -Ob=2 -qp")
#SET(CMAKE_CXX_FLAGS "-restrict -unroll -fno-alias -O3 -Ob=2 -cxxlib-icc")
#SET(CMAKE_CXX_FLAGS "-restrict -unroll -fno-alias -O3")
#SET(CMAKE_CXX_FLAGS "-unroll -O3 -Ob=1 -ansi -ipo -ipo_obj -cxxlib-icc")
#SET(CMAKE_CC_FLAGS " -unroll -O3 -Ob=1 -ansi -ipo -ipo_obj")
#SET(CMAKE_CXX_FLAGS " -unroll -g -ansi")
#SET(CMAKE_CC_FLAGS " -unroll -g -ansi")
#SET(CMAKE_CXX_FLAGS " -unroll -O3 -cxxlib-icc")
#SET(CMAKE_CXX_FLAGS " -unroll -O3 -ansi -fno-fnalias -ivdep_parallel -Ob=2")
#SET(CMAKE_CXX_FLAGS " -unroll -O3 -ivdep_parallel -Ob=2")
#SET(CMAKE_CXX_FLAGS " -unroll -O3 -Ob=2 -qp")
#SET(CMAKE_CXX_FLAGS " -unroll -O3 -Ob=2 -cxxlib-icc")
#SET(CMAKE_CXX_FLAGS " -unroll -O3")
# common options for intel compilers
SET(INTEL_OPTS "-g -restrict -unroll -fno-alias -O3 -ip")
SET(INTEL_OPTS "-g -restrict -unroll -O3 -ip")
IF(${CMAKE_SYSTEM_PROCESSOR} MATCHES "i386")
SET(CMAKE_CXX_FLAGS "${INTEL_OPTS}")

View File

@ -80,7 +80,6 @@ namespace qmcplusplus {
ZeroVarianceForce::Return_t
ZeroVarianceForce::evaluate(ParticleSet& P)
{
RealType lapl = Sum(P.L) + Dot(P.G, P.G);
for (int ion=0; ion < Nnuc; ion++) {
GradType grad = Psi.evalGradSource(P, Ions, ion, grad_grad_psi, lapl_grad_psi);
for (int dim=0; dim < OHMMS_DIM; dim++)

View File

@ -349,6 +349,12 @@ namespace qmcplusplus {
Phi->evaluateGradSource (P, FirstIndex, LastIndex, source, iat,
grad_source_psiM, grad_grad_source_psiM,
grad_lapl_source_psiM);
// HACK HACK HACK
// Phi->evaluate(P, FirstIndex, LastIndex, psiM, dpsiM, d2psiM);
// LogValue=InvertWithLog(psiM.data(),NumPtcls,NumOrbitals,
// WorkSpace.data(),Pivot.data(),PhaseValue);
// Compute matrices
phi_alpha_Minv = 0.0; grad_phi_Minv = 0.0;
lapl_phi_Minv = 0.0; grad_phi_alpha_Minv = 0.0;

View File

@ -202,16 +202,16 @@ namespace qmcplusplus {
inline real_type
evaluate(real_type r, real_type& dudr, real_type& d2udr2, real_type &d3udr3) {
if (r >= cutoff_radius) {
dudr = d2udr2 = 0.0;
dudr = d2udr2 = d3udr3 = 0.0;
return 0.0;
}
real_type eps = 1.0e-5;
// real_type eps = 1.0e-5;
// real_type dudr_FD = (evaluate(r+eps)-evaluate(r-eps))/(2.0*eps);
// real_type d2udr2_FD = (evaluate(r+eps)+evaluate(r-eps)-2.0*evaluate(r))/(eps*eps);
real_type d3udr3_FD = (-1.0*evaluate(r+1.0*eps)
+2.0*evaluate(r+0.5*eps)
-2.0*evaluate(r-0.5*eps)
+1.0*evaluate(r-1.0*eps))/(eps*eps*eps);
// real_type d3udr3_FD = (-1.0*evaluate(r+1.0*eps)
// +2.0*evaluate(r+0.5*eps)
// -2.0*evaluate(r-0.5*eps)
// +1.0*evaluate(r-1.0*eps))/(eps*eps*eps);
r *= DeltaRInv;
real_type ipart, t;
@ -245,10 +245,9 @@ namespace qmcplusplus {
// cerr << "Error in BsplineFunction: r = " << r << " d2udr2 = " << dudr
// << " d2udr2_FD = " << d2udr2_FD << " rcut = " << cutoff_radius << endl;
if (std::fabs(d3udr3_FD-d3udr3) > 1.0e-4)
cerr << "Error in BsplineFunction: r = " << r << " d3udr3 = " << dudr
<< " d3udr3_FD = " << d3udr3_FD << " rcut = " << cutoff_radius << endl;
// if (std::fabs(d3udr3_FD-d3udr3) > 1.0e-4)
// cerr << "Error in BsplineFunction: r = " << r << " d3udr3 = " << dudr
// << " d3udr3_FD = " << d3udr3_FD << " rcut = " << cutoff_radius << endl;
return
(SplineCoefs[i+0]*(A[ 0]*tp[0] + A[ 1]*tp[1] + A[ 2]*tp[2] + A[ 3]*tp[3])+