From: <gu...@us...> - 2009-06-24 20:23:38
|
Revision: 11109 http://jmol.svn.sourceforge.net/jmol/?rev=11109&view=rev Author: gutow Date: 2009-06-24 20:21:39 +0000 (Wed, 24 Jun 2009) Log Message: ----------- new feature: Gamess file reader now translates internal basis set and calculation methods representations into roughly literature standard for Pople & Dunning basis sets as well as perturbation, CI and CC calculation methods. This is dumped to calculationType. Modified Paths: -------------- trunk/Jmol/src/org/jmol/adapter/readers/more/GamessReader.java trunk/Jmol/src/org/jmol/viewer/Jmol.properties Modified: trunk/Jmol/src/org/jmol/adapter/readers/more/GamessReader.java =================================================================== --- trunk/Jmol/src/org/jmol/adapter/readers/more/GamessReader.java 2009-06-24 17:26:42 UTC (rev 11108) +++ trunk/Jmol/src/org/jmol/adapter/readers/more/GamessReader.java 2009-06-24 20:21:39 UTC (rev 11109) @@ -259,6 +259,14 @@ String Runtype = (String) calcOptions.get("contrl_options_RUNTYP"); String igauss = (String) calcOptions.get("basis_options_IGAUSS"); String gbasis = (String) calcOptions.get("basis_options_GBASIS"); + boolean DFunc = !((String) calcOptions.get("basis_options_NDFUNC")).contentEquals("0"); + boolean PFunc = !((String) calcOptions.get("basis_options_NPFUNC")).contentEquals("0"); + boolean FFunc = !((String) calcOptions.get("basis_options_NFFUNC")).contentEquals("0"); + String DFTtype = (String) calcOptions.get("contrl_options_DFTTYP"); + int perturb = parseInt((String) calcOptions.get("contrl_options_MPLEVL")); + String CItype = (String) calcOptions.get("contrl_options_CITYP"); + String CCtype = (String) calcOptions.get("contrl_options_CCTYP"); + if (igauss == null && SCFtype == null) return; @@ -266,17 +274,100 @@ calculationType = ""; if (igauss != null) { - if (calculationType.length() > 0) - calculationType += " "; - calculationType += igauss + "-" - + TextFormat.simpleReplace(gbasis, "N", ""); - // Q: "N" here means what? + if (!igauss.contentEquals("0")) { + if (calculationType.length() > 0) + calculationType += " "; + calculationType += igauss + "-" + + TextFormat.simpleReplace(gbasis, "N", ""); + // Q: "N" here means what? Some people use it in the notation, not + // common. + if (((String) calcOptions.get("basis_options_DIFFSP")).contentEquals("T")) { + // check if we have diffuse S on H's too => "++" instead of "+" + if (((String) calcOptions.get("basis_options_DIFFS")).contentEquals("T")) + calculationType += "+"; + calculationType += "+"; + } + calculationType += "G"; + // append (d,p) , (d), (f,d,p), etc. to indicate polarization. + // not using * and ** notation as it is inconsistent. + if (DFunc || PFunc || FFunc) { + calculationType += "("; + if (FFunc) { + calculationType += "f"; + if (DFunc || PFunc) + calculationType += ","; + } + if (DFunc) { + calculationType += "d"; + if (PFunc) + calculationType += ","; + } + if (PFunc) + calculationType += "p"; + calculationType += ")"; + } + } + if (igauss.contentEquals("0")) { // we have a non Pople basis set. + // most common translated to standard notation, others in GAMESS + // internal format. + boolean recognized = false; + if (calculationType.length() > 0) + calculationType += " "; + if (gbasis.startsWith("ACC")) + calculationType += "aug-cc-p"; + if (gbasis.startsWith("CC")) + calculationType+="cc-p"; + if ((gbasis.startsWith("ACC") || gbasis.startsWith("CC")) + && gbasis.endsWith("C")) + calculationType += "C"; + if (gbasis.contains("CCD")){ + calculationType += "VDZ"; + recognized = true; + } + if (gbasis.contains("CCT")){ + calculationType += "VTZ"; + recognized = true; + } + if (gbasis.contains("CCQ")){ + calculationType += "VQZ"; + recognized = true; + } + if (gbasis.contains("CC5")){ + calculationType += "V5Z"; + recognized = true; + } + if (gbasis.contains("CC6")){ + calculationType += "V6Z"; + recognized = true; + } + if (!recognized)calculationType+=gbasis; + } + if (!DFTtype.contains("NONE")){ + if (calculationType.length() > 0) + calculationType += " "; + calculationType+=DFTtype; + } + if (!CItype.contains("NONE")){ + if (calculationType.length() > 0) + calculationType += " "; + calculationType+=CItype; + } + if (!CCtype.contains("NONE")){ + if (calculationType.length() > 0) + calculationType += " "; + calculationType+=CCtype; + } + if (perturb > 0){ + if (calculationType.length() > 0) + calculationType += " "; + calculationType+="MP"+perturb; + } + if (SCFtype != null) { + if (calculationType.length() > 0) + calculationType += " "; + calculationType += SCFtype + " " + Runtype; + } } - if (SCFtype != null) { - if (calculationType.length() > 0) - calculationType += " "; - calculationType += SCFtype + " " + Runtype; - } } protected void readControlInfo() throws Exception { Modified: trunk/Jmol/src/org/jmol/viewer/Jmol.properties =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Jmol.properties 2009-06-24 17:26:42 UTC (rev 11108) +++ trunk/Jmol/src/org/jmol/viewer/Jmol.properties 2009-06-24 20:21:39 UTC (rev 11109) @@ -3,6 +3,10 @@ version=11.7.45_dev +# new feature: Gamess file reader now translates internal basis set and calculation +# methods representations into roughly literature standard for Pople & Dunning basis +# sets as well as perturbation, CI and CC calculation methods. This is dumped to +# calculationType. # new feature: application console buttons: PAUSE, ?, STEP # new feature: SHOW TRACE -- reports stack trace # bug fix: functions with names starting with _ were local instead of global @@ -34,6 +38,7 @@ # as an equivalent of double quotes cannot break existing scripts. -- BH 06/2009 # new feature: print getProperty("PDBInfo","REMARK300") + # ----------------------------------------------------------------------------- #version=11.7.44 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |