From: <ha...@us...> - 2009-03-13 16:31:25
|
Revision: 10713 http://jmol.svn.sourceforge.net/jmol/?rev=10713&view=rev Author: hansonr Date: 2009-03-13 16:31:22 +0000 (Fri, 13 Mar 2009) Log Message: ----------- version=11.7.29_dev # bug fix: MO calculations skips d2+ orbital due to integer division. Modified Paths: -------------- trunk/Jmol/src/org/jmol/quantum/MOCalculation.java Modified: trunk/Jmol/src/org/jmol/quantum/MOCalculation.java =================================================================== --- trunk/Jmol/src/org/jmol/quantum/MOCalculation.java 2009-03-13 16:26:27 UTC (rev 10712) +++ trunk/Jmol/src/org/jmol/quantum/MOCalculation.java 2009-03-13 16:31:22 UTC (rev 10713) @@ -547,9 +547,8 @@ zz [(2048 * alpha^7) / (9 * pi^3))]^(1/4) */ - final float norm1 = (float) Math.pow( - 2048.0 / (Math.PI * Math.PI * Math.PI), 0.25); - final float norm2 = norm1 / (float) Math.sqrt(3); + final float norm1 = (float) Math.pow(2048.0 / (Math.PI * Math.PI * Math.PI), 0.25); + final float norm2 = (float) (norm1 / Math.sqrt(3)); // Normalization constant that shows up for dx^2-y^2 final float root34 = (float) Math.sqrt(0.75); @@ -634,8 +633,8 @@ final float norm1 = (float) Math.pow( 32768.0 / (Math.PI * Math.PI * Math.PI), 0.25); - final float norm3 = norm1 / (float) Math.sqrt(15); - final float norm2 = norm1 / (float) Math.sqrt(3); + final float norm2 = (float) (norm1 / Math.sqrt(3)); + final float norm3 = (float) (norm1 / Math.sqrt(15)); float mxxx = moCoefficients[moCoeff++]; float myyy = moCoefficients[moCoeff++]; @@ -733,8 +732,8 @@ final float norm1 = (float) Math.pow( 32768.0 / (Math.PI * Math.PI * Math.PI), 0.25); - final float norm2 = norm1 / (float) Math.sqrt(3); - final float norm3 = norm1 / (float) Math.sqrt(15); + final float norm2 = (float) (norm1 / Math.sqrt(3)); + final float norm3 = (float) (norm1 / Math.sqrt(15)); // Linear combination coefficients for the various Cartesian gaussians final float c0_xxz_yyz = (float) (3.0 / (2.0 * Math.sqrt(5))); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2010-02-01 20:10:30
|
Revision: 12289 http://jmol.svn.sourceforge.net/jmol/?rev=12289&view=rev Author: hansonr Date: 2010-02-01 20:10:23 +0000 (Mon, 01 Feb 2010) Log Message: ----------- comments out Modified Paths: -------------- trunk/Jmol/src/org/jmol/quantum/MOCalculation.java Modified: trunk/Jmol/src/org/jmol/quantum/MOCalculation.java =================================================================== --- trunk/Jmol/src/org/jmol/quantum/MOCalculation.java 2010-02-01 20:00:24 UTC (rev 12288) +++ trunk/Jmol/src/org/jmol/quantum/MOCalculation.java 2010-02-01 20:10:23 UTC (rev 12289) @@ -171,7 +171,6 @@ float volume = stepBohr[0] * stepBohr[1] * stepBohr[2] / bohr_per_angstrom / bohr_per_angstrom / bohr_per_angstrom; t = t * volume; - System.out.println("MOCalculation " + t); //processMep(nuclearCharges); } @@ -897,8 +896,7 @@ int b = slater.y; int c = slater.z; int d = slater.r; - if (Logger.debugging) - System.out.println("MOCALC " + slaterIndex + " atomNo=" + (atomIndex+1) + "\tx^" + a + " y^"+ b + " z^" + c + " r^" + d + "\tzeta=" + (-minuszeta) + "\tcoef=" + coef); + // System.out.println("MOCALC " + slaterIndex + " atomNo=" + (atomIndex+1) + "\tx^" + a + " y^"+ b + " z^" + c + " r^" + d + "\tzeta=" + (-minuszeta) + "\tcoef=" + coef); //+ " minmax " + xMin + " " + xMax + " " + yMin + " " + yMax + " " + zMin + " " + zMax if (a == -2) /* if dz2 */ for (int ix = xMax; --ix >= xMin;) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2010-03-25 05:22:06
|
Revision: 12693 http://jmol.svn.sourceforge.net/jmol/?rev=12693&view=rev Author: hansonr Date: 2010-03-25 05:22:00 +0000 (Thu, 25 Mar 2010) Log Message: ----------- Modified Paths: -------------- trunk/Jmol/src/org/jmol/quantum/MOCalculation.java Modified: trunk/Jmol/src/org/jmol/quantum/MOCalculation.java =================================================================== --- trunk/Jmol/src/org/jmol/quantum/MOCalculation.java 2010-03-25 05:13:43 UTC (rev 12692) +++ trunk/Jmol/src/org/jmol/quantum/MOCalculation.java 2010-03-25 05:22:00 UTC (rev 12693) @@ -177,7 +177,7 @@ float volume = stepBohr[0] * stepBohr[1] * stepBohr[2]; // / bohr_per_angstrom / bohr_per_angstrom / bohr_per_angstrom; t = t * volume; - System.out.println("total ElectronDensity = " + t); + Logger.info("Integrated density = " + t); //processMep(nuclearCharges); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2011-02-02 14:09:22
|
Revision: 15108 http://jmol.svn.sourceforge.net/jmol/?rev=15108&view=rev Author: hansonr Date: 2011-02-02 14:09:16 +0000 (Wed, 02 Feb 2011) Log Message: ----------- NWCHEM reader fix Modified Paths: -------------- trunk/Jmol/src/org/jmol/quantum/MOCalculation.java Modified: trunk/Jmol/src/org/jmol/quantum/MOCalculation.java =================================================================== --- trunk/Jmol/src/org/jmol/quantum/MOCalculation.java 2011-02-02 14:04:29 UTC (rev 15107) +++ trunk/Jmol/src/org/jmol/quantum/MOCalculation.java 2011-02-02 14:09:16 UTC (rev 15108) @@ -335,22 +335,27 @@ double df = (el == 3 ? 15 : el == 2 ? 3 : 1); double f = df * Math.pow(Math.PI, 1.5) / Math.pow(2, el); double p = 0.75 + el / 2.0; - sum = 0; - for (int ig1 = 0; ig1 < nGaussians; ig1++) { - double alpha1 = gaussians[gaussianPtr + ig1][0]; - double c1 = gaussians[gaussianPtr + ig1][cpt]; - double f1 = Math.pow(alpha1, p); - for (int ig2 = 0; ig2 < nGaussians; ig2++) { - double alpha2 = gaussians[gaussianPtr + ig2][0]; - double c2 = gaussians[gaussianPtr + ig2][cpt]; - double f2 = Math.pow(alpha2, p); - sum += c1 * f1 * c2 * f2 / Math.pow(alpha1 + alpha2, 2 * p); + if (nGaussians == 1) { + sum = Math.pow(2, -2 * p) * Math.pow(gaussians[gaussianPtr][cpt], 2); + } else { + sum = 0; + for (int ig1 = 0; ig1 < nGaussians; ig1++) { + double alpha1 = gaussians[gaussianPtr + ig1][0]; + double c1 = gaussians[gaussianPtr + ig1][cpt]; + double f1 = Math.pow(alpha1, p); + for (int ig2 = 0; ig2 < nGaussians; ig2++) { + double alpha2 = gaussians[gaussianPtr + ig2][0]; + double c2 = gaussians[gaussianPtr + ig2][cpt]; + double f2 = Math.pow(alpha2, p); + sum += c1 * f1 * c2 * f2 / Math.pow(alpha1 + alpha2, 2 * p); + if (nGaussians == 1) + System.out.println(c1 + " " + f1 + " " + c2 + " " + f2); + } } } sum = 1 / Math.sqrt(f * sum); if (Logger.debugging) - Logger.debug("\t\t\tnormalization for l=" + el + " nGaussians=" - + nGaussians + " is " + sum); + Logger.debug("\t\t\tnormalization for l=" + el + " nGaussians=" + nGaussians + " is " + sum); return sum; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2011-02-04 21:57:45
|
Revision: 15125 http://jmol.svn.sourceforge.net/jmol/?rev=15125&view=rev Author: hansonr Date: 2011-02-04 21:57:39 +0000 (Fri, 04 Feb 2011) Log Message: ----------- Modified Paths: -------------- trunk/Jmol/src/org/jmol/quantum/MOCalculation.java Modified: trunk/Jmol/src/org/jmol/quantum/MOCalculation.java =================================================================== --- trunk/Jmol/src/org/jmol/quantum/MOCalculation.java 2011-02-04 15:15:23 UTC (rev 15124) +++ trunk/Jmol/src/org/jmol/quantum/MOCalculation.java 2011-02-04 21:57:39 UTC (rev 15125) @@ -719,7 +719,8 @@ norm1 = norm2 * ROOT3; norm4 = -1; } else { - // same as above, except for norm4. Needs checking + // same as above, except for norm4. + // norm4 verified using CeO2.log norm1 = Math.pow(2048.0 / (Math.PI * Math.PI * Math.PI), 0.25); norm2 = norm1 / ROOT3; norm4 = 1; @@ -941,6 +942,7 @@ norm1 = Math.pow(32768.0 / (Math.PI * Math.PI * Math.PI), 0.25); norm2 = norm1 / Math.sqrt(3); norm3 = norm1 / Math.sqrt(15); + // norm4 verified for Gaussian using CeO2.log norm4 = 1; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2011-09-27 04:17:37
|
Revision: 16157 http://jmol.svn.sourceforge.net/jmol/?rev=16157&view=rev Author: hansonr Date: 2011-09-27 04:17:31 +0000 (Tue, 27 Sep 2011) Log Message: ----------- MO reader testing Modified Paths: -------------- trunk/Jmol/src/org/jmol/quantum/MOCalculation.java Modified: trunk/Jmol/src/org/jmol/quantum/MOCalculation.java =================================================================== --- trunk/Jmol/src/org/jmol/quantum/MOCalculation.java 2011-09-27 04:17:03 UTC (rev 16156) +++ trunk/Jmol/src/org/jmol/quantum/MOCalculation.java 2011-09-27 04:17:31 UTC (rev 16157) @@ -124,7 +124,7 @@ private double moFactor = 1; private boolean havePoints; - boolean testing; + boolean testing = true; public MOCalculation() { } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2011-09-27 22:17:53
|
Revision: 16170 http://jmol.svn.sourceforge.net/jmol/?rev=16170&view=rev Author: hansonr Date: 2011-09-27 22:17:46 +0000 (Tue, 27 Sep 2011) Log Message: ----------- Modified Paths: -------------- trunk/Jmol/src/org/jmol/quantum/MOCalculation.java Modified: trunk/Jmol/src/org/jmol/quantum/MOCalculation.java =================================================================== --- trunk/Jmol/src/org/jmol/quantum/MOCalculation.java 2011-09-27 22:15:03 UTC (rev 16169) +++ trunk/Jmol/src/org/jmol/quantum/MOCalculation.java 2011-09-27 22:17:46 UTC (rev 16170) @@ -149,6 +149,7 @@ this.coefs = coefs; this.isElectronDensity = (partialCharges != null); this.doNormalize = doNormalize; + Logger.info("Normalizing AOs: " + doNormalize + " slaters = " + (slaters != null)); countsXYZ = volumeData.getVoxelCounts(); initialize(countsXYZ[0], countsXYZ[1], countsXYZ[2], points); voxelData = volumeData.getVoxelData(); @@ -215,6 +216,7 @@ if (slaters == null) { // each STO shell is the combination of one or more gaussians int nShells = shells.size(); + //Logger.info("Processing " + nShells + " Gaussian shells"); for (int i = 0; i < nShells; i++) processShell(i); return; @@ -231,6 +233,8 @@ return true; } nwChemMode = (calculationType.indexOf("NWCHEM") >= 0); + if (nwChemMode) + Logger.info("Normalization of contractions (NWCHEM)"); /*if (calculationType.indexOf("5D") >= 0) { Logger .error("QuantumCalculation.checkCalculationType: can't read 5D basis sets yet: " This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2012-11-24 00:00:20
|
Revision: 17760 http://jmol.svn.sourceforge.net/jmol/?rev=17760&view=rev Author: hansonr Date: 2012-11-24 00:00:13 +0000 (Sat, 24 Nov 2012) Log Message: ----------- Modified Paths: -------------- trunk/Jmol/src/org/jmol/quantum/MOCalculation.java Modified: trunk/Jmol/src/org/jmol/quantum/MOCalculation.java =================================================================== --- trunk/Jmol/src/org/jmol/quantum/MOCalculation.java 2012-11-23 23:16:09 UTC (rev 17759) +++ trunk/Jmol/src/org/jmol/quantum/MOCalculation.java 2012-11-24 00:00:13 UTC (rev 17760) @@ -327,9 +327,9 @@ } private void setTemp(float occupancy) { - for (int ix = xMax; --ix >= xMin;) { - for (int iy = yMax; --iy >= yMin;) { - for (int iz = zMax; --iz >= zMin;) { + for (int ix = nX; --ix >= 0;) { + for (int iy = nY; --iy >= 0;) { + for (int iz = nZ; --iz >= 0;) { float value = voxelDataTemp[ix][iy][iz]; voxelData[ix][iy][iz] += value * value * occupancy; voxelDataTemp[ix][iy][iz] = 0; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2012-11-24 00:03:55
|
Revision: 17761 http://jmol.svn.sourceforge.net/jmol/?rev=17761&view=rev Author: hansonr Date: 2012-11-24 00:03:48 +0000 (Sat, 24 Nov 2012) Log Message: ----------- Modified Paths: -------------- trunk/Jmol/src/org/jmol/quantum/MOCalculation.java Modified: trunk/Jmol/src/org/jmol/quantum/MOCalculation.java =================================================================== --- trunk/Jmol/src/org/jmol/quantum/MOCalculation.java 2012-11-24 00:00:13 UTC (rev 17760) +++ trunk/Jmol/src/org/jmol/quantum/MOCalculation.java 2012-11-24 00:03:48 UTC (rev 17761) @@ -331,6 +331,8 @@ for (int iy = nY; --iy >= 0;) { for (int iz = nZ; --iz >= 0;) { float value = voxelDataTemp[ix][iy][iz]; + if (value == 0) + continue; voxelData[ix][iy][iz] += value * value * occupancy; voxelDataTemp[ix][iy][iz] = 0; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2012-11-24 00:04:47
|
Revision: 17762 http://jmol.svn.sourceforge.net/jmol/?rev=17762&view=rev Author: hansonr Date: 2012-11-24 00:04:40 +0000 (Sat, 24 Nov 2012) Log Message: ----------- Modified Paths: -------------- trunk/Jmol/src/org/jmol/quantum/MOCalculation.java Modified: trunk/Jmol/src/org/jmol/quantum/MOCalculation.java =================================================================== --- trunk/Jmol/src/org/jmol/quantum/MOCalculation.java 2012-11-24 00:03:48 UTC (rev 17761) +++ trunk/Jmol/src/org/jmol/quantum/MOCalculation.java 2012-11-24 00:04:40 UTC (rev 17762) @@ -205,7 +205,7 @@ moCoefficients = coefs[(int) linearCombination[i + 1] - 1]; process(); if (isSquaredLinear) - setTemp(1); + addValuesSquared(1); } } } @@ -326,7 +326,7 @@ } } - private void setTemp(float occupancy) { + private void addValuesSquared(float occupancy) { for (int ix = nX; --ix >= 0;) { for (int iy = nY; --iy >= 0;) { for (int iz = nZ; --iz >= 0;) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |