import os import sys import htmlTools import olex import olx import olex_core import gui import shutil import time from olexFunctions import OV def begin_new_line(): temp = ''' ''' temp += htmlTools.MakeHoverButton('btn-info@NoSpherA2 Option 1',"spy.make_help_box -name='NoSpherA2 Option 1' -popout='False' -helpTxt='Options'") temp +=''' ''' return temp def end_line(): return '''
''' def input_combo(name,items,value,onchange): temp = ''' ''' return temp def checkbox(name,label,checked,oncheck,onuncheck,width=20): temp = '''
%s
'''%label return temp def make_hybrid_GUI(softwares_list_string): parts = OV.ListParts() if parts != None: parts = list(parts) if len(parts) <= 1: return begin_new_line() + "Hybrid is not possible with less than two parts!" + end_line() t = begin_new_line() + \ checkbox( "iterative", "Iterative", "spy.GetParam(\'snum.NoSpherA2.full_HAR\')", "spy.SetParam(\'snum.NoSpherA2.full_HAR\',\'True\')>>html.Update()", "spy.SetParam(\'snum.NoSpherA2.full_HAR\',\'False\')>>html.Update()" ) + ''' ''' full_har = OV.GetParam('snum.NoSpherA2.full_HAR') if full_har == True: t +=''' Max Cycles ''' else: t +=''' ''' t += ''' CPUs ''' t += input_combo( "NoSpherA2_cpus@refine", "spy.NoSpherA2.getCPUListStr()", "spy.GetParam(\'snum.NoSpherA2.ncpus\')", "spy.SetParam(\'snum.NoSpherA2.ncpus\', html.GetValue(\'~name~\'))") t +=''' Mem(Gb) ''' t += end_line() + begin_new_line() +''' Integr. Accuracy ''' t += input_combo( "NoSpherA2_becke_accuracy@refine", "'Low;Normal;High;Max'", "spy.GetParam(\'snum.NoSpherA2.becke_accuracy\')", "spy.SetParam(\'snum.NoSpherA2.becke_accuracy\', html.GetValue(\'~name~\'))") t += ''' ''' t += checkbox("H_Aniso", "H Aniso", "spy.GetParam(\'snum.NoSpherA2.h_aniso\')", "spy.SetParam(\'snum.NoSpherA2.h_aniso\',\'True\')", "spy.SetParam(\'snum.NoSpherA2.h_aniso\',\'False\')") t += checkbox("H_Afix 0", "No Afix", "spy.GetParam(\'snum.NoSpherA2.h_afix\')", "spy.SetParam(\'snum.NoSpherA2.h_afix\',\'True\')", "spy.SetParam(\'snum.NoSpherA2.h_afix\',\'False\')") t += end_line() for i in parts: if i == 0: continue t += begin_new_line() + "" + "Part %d"%i softwares_list = "Please Select" + str(softwares_list_string).replace("Hybrid;","") t += ''' Software ''' t += ''' ''' t += input_combo( "NoSpherA2_software_Part%d@refine"%(i+1), softwares_list, "spy.GetParam(\'snum.NoSpherA2.Hybrid.software_Part%d\')"%i, "spy.SetParam(\'snum.NoSpherA2.Hybrid.software_Part%d\',html.GetValue(\'~name~\'))>>html.Update()"%i) t += "\n\n" selected_software = OV.GetParam('snum.NoSpherA2.Hybrid.software_Part%d'%i) t += end_line() + begin_new_line() if selected_software != "discambMATT": if selected_software != "ELMOdb": t += ''' Basis Set ''' t += input_combo( "NoSpherA2_basis_Part%d@refine"%i, "spy.NoSpherA2.getBasisListStr()", "spy.GetParam(\'snum.NoSpherA2.Hybrid.basis_name_Part%d\')"%i, "spy.SetParam(\'snum.NoSpherA2.Hybrid.basis_name_Part%d\',html.GetValue(\'~name~\'))"%i) t += ''' Method ''' t += input_combo( "NoSpherA2_method_Part%d@refine"%i, "spy.NoSpherA2.get_functional_list(spy.GetParam(\'snum.NoSpherA2.Hybrid.software_Part%d\'))"%i, "spy.GetParam(\'snum.NoSpherA2.Hybrid.method_Part%d\')"%i, "spy.SetParam(\'snum.NoSpherA2.Hybrid.method_Part%d\',html.GetValue(\'~name~\'))"%i) t += ''' ''' t += checkbox("NoSpherA2_ORCA_Relativistics_PART%d@refine"%i, "Relativitics", "spy.GetParam(\'snum.NoSpherA2.Hybrid.Relativistic_Part%d\')"%i, "spy.SetParam(\'snum.NoSpherA2.Hybrid.Relativistic_Part%d\',\'True\')"%i, "spy.SetParam(\'snum.NoSpherA2.Hybrid.Relativistic_Part%d\',\'False\')"%i) t += end_line() + begin_new_line() + ''' Charge Multiplicity ''' if "ORCA" in selected_software: t += end_line() + begin_new_line() +''' SCF Thresh. ''' t += input_combo("NoSpherA2_ORCA_SCF_Conv_Part%d@refine"%i, "\'NoSpherA2SCF;SloppySCF;LooseSCF;NormalSCF;StrongSCF;TightSCF;VeryTightSCF;ExtremeSCF\'", "spy.GetParam(\'snum.NoSpherA2.Hybrid.ORCA_SCF_Conv_Part%d\')"%i, "spy.SetParam(\'snum.NoSpherA2.Hybrid.ORCA_SCF_Conv_Part%d', html.GetValue(\'~name~\'))"%i) t += ''' SCF Strategy ''' t += input_combo("NoSpherA2_ORCA_SCF_Strategy_Part%d@refine"%i, "\'EasyConv;NormalConv;SlowConv;VerySlowConv\'", "spy.GetParam(\'snum.NoSpherA2.Hybrid.ORCA_SCF_Strategy_Part%d\')"%i, "spy.SetParam(\'snum.NoSpherA2.Hybrid.ORCA_SCF_Strategy_Part%d\', html.GetValue(\'~name~\'))"%i) t += ''' Solvation ''' t += input_combo("NoSpherA2_ORCA_Solvation@refine", "\'Vacuum;Water;Acetone;Acetonitrile;Ammonia;Benzene;CCl4;CH2CL2;Chloroform;Cyclohexane;DMF;DMSO;Ethanol;Hexane;Methanol;Octanol;Pyridine;THF;Toluene\'", "spy.GetParam(\'snum.NoSpherA2.ORCA_Solvation\')", "spy.SetParam(\'snum.NoSpherA2.ORCA_Solvation\', html.GetValue(\'~name~\'))") t += "\n\n" elif "pySCF" in selected_software: t += end_line() + begin_new_line() + ''' Damping ''' t += input_combo("NoSpherA2_Hybrid_pySCF_Damping_Part%d@refine"%i, "\'0.6;0.7;0.85;0.93\'", "spy.GetParam(\'snum.NoSpherA2.Hybrid.pySCF_Damping_Part%d\')"%i, "spy.SetParam(\'snum.NoSpherA2.Hybrid.pySCF_Damping_Part%d\', html.GetValue(\'~name~\'))"%i) t += ''' Solvation ''' t += input_combo("NoSpherA2_ORCA_Solvation@refine", "\'Vacuum;Water; Acetonitrile;Methanol;Ethanol;IsoQuinoline;Quinoline;Chloroform;DiethylEther;Dichloromethane;DiChloroEthane;CarbonTetraChloride;Benzene;Toluene;ChloroBenzene;NitroMethane;Heptane;CycloHexane;Aniline;Acetone;TetraHydroFuran;DiMethylSulfoxide;Argon;Krypton;Xenon;n-Octanol;1,1,1-TriChloroEthane;1,1,2-TriChloroEthane;1,2,4-TriMethylBenzene;1,2-DiBromoEthane;1,2-EthaneDiol;1,4-Dioxane;1-Bromo-2-MethylPropane;1-BromoOctane;1-BromoPentane;1-BromoPropane;1-Butanol;1-ChloroHexane;1-ChloroPentane;1-ChloroPropane;1-Decanol;1-FluoroOctane;1-Heptanol;1-Hexanol;1-Hexene;1-Hexyne;1-IodoButane;1-IodoHexaDecane;1-IodoPentane;1-IodoPropane;1-NitroPropane;1-Nonanol;1-Pentanol;1-Pentene;1-Propanol;2,2,2-TriFluoroEthanol;2,2,4-TriMethylPentane;2,4-DiMethylPentane;2,4-DiMethylPyridine;2,6-DiMethylPyridine;2-BromoPropane;2-Butanol;2-ChloroButane;2-Heptanone;2-Hexanone;2-MethoxyEthanol;2-Methyl-1-Propanol;2-Methyl-2-Propanol;2-MethylPentane;2-MethylPyridine;2-NitroPropane;2-Octanone;2-Pentanone;2-Propanol;2-Propen-1-ol;3-MethylPyridine;3-Pentanone;4-Heptanone;4-Methyl-2-Pentanone;4-MethylPyridine;5-Nonanone;AceticAcid;AcetoPhenone;a-ChloroToluene;Anisole;Benzaldehyde;BenzoNitrile;BenzylAlcohol;BromoBenzene;BromoEthane;Bromoform;Butanal;ButanoicAcid;Butanone;ButanoNitrile;ButylAmine;ButylEthanoate;CarbonDiSulfide;Cis-1,2-DiMethylCycloHexane;Cis-Decalin;CycloHexanone;CycloPentane;CycloPentanol;CycloPentanone;Decalin-mixture;DiBromomEthane;DiButylEther;DiEthylAmine;DiEthylSulfide;DiIodoMethane;DiIsoPropylEther;DiMethylDiSulfide;DiPhenylEther;DiPropylAmine;e-1,2-DiChloroEthene;e-2-Pentene;EthaneThiol;EthylBenzene;EthylEthanoate;EthylMethanoate;EthylPhenylEther;FluoroBenzene;Formamide;FormicAcid;HexanoicAcid;IodoBenzene;IodoEthane;IodoMethane;IsoPropylBenzene;m-Cresol;Mesitylene;MethylBenzoate;MethylButanoate;MethylCycloHexane;MethylEthanoate;MethylMethanoate;MethylPropanoate;m-Xylene;n-ButylBenzene;n-Decane;n-Dodecane;n-Hexadecane;n-Hexane;NitroBenzene;NitroEthane;n-MethylAniline;n-MethylFormamide-mixture;n,n-DiMethylAcetamide;n,n-DiMethylFormamide;n-Nonane;n-Octane;n-Pentadecane;n-Pentane;n-Undecane;o-ChloroToluene;o-Cresol;o-DiChloroBenzene;o-NitroToluene;o-Xylene;Pentanal;PentanoicAcid;PentylAmine;PentylEthanoate;PerFluoroBenzene;p-IsoPropylToluene;Propanal;PropanoicAcid;PropanoNitrile;PropylAmine;PropylEthanoate;p-Xylene;Pyridine;sec-ButylBenzene;tert-ButylBenzene;TetraChloroEthene;TetraHydroThiophene-s,s-dioxide;Tetralin;Thiophene;Thiophenol;trans-Decalin;TriButylPhosphate;TriChloroEthene;TriEthylAmine;Xylene-mixture;z-1,2-DiChloroEthene\'", "spy.GetParam(\'snum.NoSpherA2.ORCA_Solvation\')", "spy.SetParam(\'snum.NoSpherA2.ORCA_Solvation\', html.GetValue(\'~name~\'))") t += "\n" else: #HAVE TO FINISCH ELMO LATER t += ''' Basis Set $+ html.Snippet("gui/snippets/input-combo", "name=NoSpherA2_basis@refine", "items='6-31G;6-31G**;6-311G;6-311G**;cc-pVDZ;extrabasis'", "value=spy.GetParam(\'snum.NoSpherA2.basis_name\')", "onchange=spy.NoSpherA2.change_basisset(html.GetValue(\'~name~\'))>>html.Update()") $- ''' t += end_line() else: t += "So far no further options for discambMATT" + end_line() return t