To minimize the amount of manual editing of my input files I've started to modify the menus in ECCE. One thing that was missing before was the option of selecting a solvation model for Gaussian jobs. I've added that now.
I will eventually submit my changes upstreams, but for now I'll just post a clunky list of changes that I've made:
There are two files to edit:
apps/scripts/codereg/ged03theory.py.
Add the following right after the DFT options section and before the MP options section (ca line number 273 in my case)
Also add the following to the def CheckDependency(self) block, right before the "if (EcceGlobals.Category == "MP" or" line:
Edit apps/scripts/parsers/ai.gauss03 and put the following somewhere in the file.
And you're done:
I will eventually submit my changes upstreams, but for now I'll just post a clunky list of changes that I've made:
There are two files to edit:
apps/scripts/codereg/ged03theory.py.
Add the following right after the DFT options section and before the MP options section (ca line number 273 in my case)
#Theory options solvation -CAO
sovSizer = EcceBoxSizer(self,
label = "Solvation",
cols = 2)
sovLeftSizer = EcceVBoxSizer()
sovRightSizer = EcceVBoxSizer()
#Use solvation
self.useSCRF = EcceCheckBox(self, #useCosmo
label = " Use SCRF"
name = "ES.Theory.SCF.UseSCRF",
default = False)
sovLeftSizer.AddWidget(self.useSCRF,
border = EcceGlobals.BorderDefault)
#SCRF type
scrfChoice = ["PCM",
"CPCM",
"IPCM",
"SCIPCM",
"SMD",
"Dipole"]
self.scrf = EcceComboBox(self,
choices = scrfChoice,
name = "ES.Theory.SCF.SCRF",
label = "SCRF type:",
default = 0)
sovRightSizer.AddWidget(self.scrf,
border = EcceGlobals.BorderDefault)
#Solvent type
solventChoice = ["Water",
"Acetonitrile",
"Methanol",
"Ethanol",
"Manual",
"Benzene",
"Chloroform",
"Diethylether",
"Dichloromethane",
"Dichloroethane",
"Carbontetrachloride",
"Toluene",
"Chlorobenzene",
"Nitromethane",
"Heptane",
"Aniline",
"Acetone",
"Tetrahydrofuran",
"Dimethylsulfoxide",
"Argon",
"Krypton",
"Xenon",
"n-Octanol",
"1-Butanol"
"Cyclohexane",
"Isoquinoline",
"Quinoline",
]
self.solvent = EcceComboBox(self,
choices = solventChoice,
name = "ES.Theory.SCF.Solvent",
label = "Solvent:",
default = 0)
sovRightSizer.AddWidget(self.solvent,
border = EcceGlobals.BorderDefault)
self.scrfDielec = EcceFloatInput(self,
default = 78.4,
name = "ES.Theory.SCF.Dielectric",
label = "Dielectric Constant:",
hardRange = "(0..)",
unit = "Debye")
sovRightSizer.AddWidget(self.scrfDielec,
border = EcceGlobals.BorderDefault)
sovSizer.AddWidget(sovLeftSizer,
flag = wx.ALL)
sovSizer.AddWidget(sovRightSizer,
flag = wx.ALL)
self.panelSizer.Add(sovSizer)
#End theory options solvation -CAO
Also add the following to the def CheckDependency(self) block, right before the "if (EcceGlobals.Category == "MP" or" line:
# SCRF solvation -- CAO
if EcceGlobals.Category == "DFT" or EcceGlobals.Category == "SCF":
self.solvent.Enable(self.useSCRF.GetValue())
self.scrf.Enable(self.useSCRF.GetValue())
self.scrfDielec.Enable(self.useSCRF.GetValue() and
self.solvent.GetValue() == "Manual")
# end SCRF
Edit apps/scripts/parsers/ai.gauss03 and put the following somewhere in the file.
Also add the following right below the "$route .= &SCFOptions;" line:
##############################################################################
#
# Description:
# SCRF options field -CAO
#
##############################################################################
sub SCRFOptions {
my($options,$result);
$result = "";
$options = "";
#scrf type
if ($AbiDict{"ES.Theory.SCF.UseSCRF"}) {
if ($AbiDict{"ES.Theory.SCF.SCRF"} eq "" ) {
$options .= "PCM,";
}
else {$options .= ($AbiDict{"ES.Theory.SCF.SCRF"}).","};
# solvent/dielectric
if ($AbiDict{"ES.Theory.SCF.Solvent"} eq "Manual") {
if (defined($AbiDict{"ES.Theory.SCF.Dielectric"})) {
$options .= "Dielectric=".$AbiDict{"ES.Theory.SCF.Dielectric"}."";
} }
elsif ($AbiDict{"ES.Theory.SCF.Solvent"} eq "") {
$options .= "Solvent=water"; }
else { $options .= "Solvent=".$AbiDict{"ES.Theory.SCF.Solvent"};
}
if ($options ne "") {
$result = "SCRF=(";
$result .= $options;
$result .= ") ";
}
return $result;
}
}
$route .= &SCRFOptions;
And you're done:
ConversionConversion EmoticonEmoticon