class DynmatTask(QETask): def __init__(self, filename = None,configString = None, cleanOutDir = False,\ sectionName = None): QETask.__init__(self, filename, configString, cleanOutDir) self.setSerial() configDic = { 'dynmatInput': 'dyn.in', 'dynmatOutput': 'dyn.out', # 'dynmatfildyn': None, # 'dynmatfilout': None, # 'dynmatfilmol': None, # 'dynmatfilxsf': None, } # QE input file's path containing variables' defaults (will be moved to # QE input parser) self._path_defaults = { 'fildyn': 'matdyn', 'filout': 'dynmat.out', 'filmol': 'dynmat.mold', 'filxsf': 'dynmat.axsf', } if sectionName == None: name = self.name() else: name = sectionName self.setting.section(name, configDic) self.input = QEInput(filename = self.setting.get('dynmatInput'), type = 'dynmat') self.output = QEOutput(self.setting, type = 'dynmat') #self._cmdStr = "dynmat.x < " + self.setting.dynmatInput #+ " > " + \ # self.setting.dynmatOutput def cmdLine(self): if self.setting.get('dynmatOutput') == self.setting.get('filout'): raise NameError('Naming conflict: Change dynmatOutput value') return self._getCmdLine('dynmat.x', 'dynmatInput', 'dynmatOutput') def name(self): return 'dynmat.x' def syncSetting(self): """ When this method is called on launch(), the input file is already parsed and will be saved before the run... """ self.input.parse() for varName in self._path_defaults.keys(): self.setting.syncPathInNamelist(varName, 'input', varName, \ self.input, self._path_defaults)
class DynmatTask(QETask): def __init__(self, filename = None,configString = None, cleanOutDir = False,\ sectionName = None): QETask.__init__(self, filename, configString, cleanOutDir) self.setSerial() configDic = { 'dynmatInput': 'dyn.in', 'dynmatOutput': 'dyn.out', # 'dynmatfildyn': None, # 'dynmatfilout': None, # 'dynmatfilmol': None, # 'dynmatfilxsf': None, } # QE input file's path containing variables' defaults (will be moved to # QE input parser) self._path_defaults = { 'fildyn': 'matdyn', 'filout': 'dynmat.out', 'filmol': 'dynmat.mold', 'filxsf': 'dynmat.axsf', } if sectionName == None: name = self.name() else: name = sectionName self.setting.section(name, configDic) self.input = QEInput(filename=self.setting.get('dynmatInput'), type='dynmat') self.output = QEOutput(self.setting, type='dynmat') #self._cmdStr = "dynmat.x < " + self.setting.dynmatInput #+ " > " + \ # self.setting.dynmatOutput def cmdLine(self): if self.setting.get('dynmatOutput') == self.setting.get('filout'): raise NameError('Naming conflict: Change dynmatOutput value') return self._getCmdLine('dynmat.x', 'dynmatInput', 'dynmatOutput') def name(self): return 'dynmat.x' def syncSetting(self): """ When this method is called on launch(), the input file is already parsed and will be saved before the run... """ self.input.parse() for varName in self._path_defaults.keys(): self.setting.syncPathInNamelist(varName, 'input', varName, \ self.input, self._path_defaults)
class DOSTask(QETask): def __init__(self, filename = None,configString = None, cleanOutDir = False,\ sectionName = None): QETask.__init__(self, filename, configString, cleanOutDir) self.setSerial() configDic = { 'dosInput' : 'dos.in', 'dosOutput': 'dos.out', #'dosfldos' : None } # QE input file's path containing variables' defaults (will be moved to # QE input parser) self._path_defaults = { 'fldos': 'fldos.dos', 'outdir': './', 'prefix': 'pwscf', } if sectionName == None: name = self.name() else: name = sectionName self.setting.section(name, configDic) self.input = QEInput(self.setting.get('dosInput'), type = 'dos') self.output = QEOutput(self.setting, type='dos') # self._cmdStr = self.setting.paraPrefix + " dos.x " + \ # " -inp " + \ # self.setting.dosInput + " > " + \ # self.setting.dosOutput + "< /dev/null" def cmdLine(self): return self._getCmdLine('dos.x', 'dosInput', 'dosOutput') def name(self): return 'dos.x' def syncSetting(self): """ When this method is called on launch(), the input file is already parsed and will be saved before the run... """ self.input.parse() for varName in self._path_defaults.keys(): self.setting.syncPathInNamelist(varName, 'inputpp', varName, \ self.input, self._path_defaults)
class Q2RTask(QETask): def __init__(self, filename = None,configString = None, cleanOutDir = False,\ sectionName = None): QETask.__init__(self, filename, configString, cleanOutDir) self.setSerial() configDic = { 'q2rInput': 'q2r.in', 'q2rOutput': 'q2r.out', # 'fildyn': None, # 'flfrc': None } # QE input file's path containing variables' defaults (will be moved to # QE input parser) self._path_defaults = { 'fildyn': None, 'flfrc': None, } if sectionName == None: name = self.name() else: name = sectionName self.setting.section(name, configDic) self.input = QEInput(filename=self.setting.get('q2rInput'), type='q2r') self.output = QEOutput(self.setting, type='q2r') #self._cmdStr = "q2r.x < " + self.setting.q2rInput + " > " + \ # self.setting.q2rOutput def cmdLine(self): return self._getCmdLine('q2r.x', 'q2rInput', 'q2rOutput') def name(self): return 'q2r.x' def syncSetting(self): """ When this method is called on launch(), the input file is already parsed and will be saved before the run... """ self.input.parse() for varName in self._path_defaults.keys(): self.setting.syncPathInNamelist(varName, 'input', varName, \ self.input, self._path_defaults)