예제 #1
0
파일: SCM_ori.py 프로젝트: dsvatunek/PyFrag
    def run_job(self,
                settings,
                settings_2=None,
                inputArgues=None,
                others=None,
                job_name='',
                **kwargs):
        """
        Execute ADF job.

        :param settings: user input settings.
        :type settings: |Settings|
        :param mol: Molecule to run the simulation
        :type mol: Plams Molecule
        :parameter input_file_name: The user can provide a name for the
                                    job input.
        :type input_file_name: String
        :parameter out_file_name: The user can provide a name for the
                                  job output.
        :type out_file_name: String
        :returns: :class:`~qmworks.packages.SCM.ADF_Result`
        """

        fragmentset = Settings()
        complexset = Settings()
        fragmentset.input = settings.specific.fragment
        complexset.input = settings_2.specific.complex
        job = PyFragJob(fragmentset, complexset, inputArgues, others)
        result = job.run()
        return result
예제 #2
0
    def run_job(settings, mol, job_name="DFTBjob"):
        """
        Execute an DFTB job with the *ADF* quantum package.

        :param settings: user input settings.
        :type settings: |Settings|
        :param mol: Molecule to run the simulation
        :type mol: Plams Molecule
        :parameter input_file_name: The user can provide a name for the
                                   job input.
        :type input_file_name: String
        :parameter out_file_name: The user can provide a name for the
                                 job output.
        :type out_file_name: String
        :returns: :class:`~qmworks.packages.SCM.DFTB_Result`
        """
        dftb_settings = Settings()
        dftb_settings.input = settings.specific.dftb
        job = plams.DFTBJob(name=job_name,
                            molecule=mol,
                            settings=dftb_settings)

        result = job.run()
        if job.status in ["failed", "crashed"]:
            builtins.config.jm.remove_job(job)

        return DFTB_Result(dftb_settings,
                           mol,
                           result.job.name,
                           plams_dir=result.job.path)
예제 #3
0
    def run_job(settings, mol, job_name="ADFjob"):
        """
        Execute ADF job.

        :param settings: user input settings.
        :type settings: |Settings|
        :param mol: Molecule to run the simulation
        :type mol: Plams Molecule
        :parameter input_file_name: The user can provide a name for the
                                    job input.
        :type input_file_name: String
        :parameter out_file_name: The user can provide a name for the
                                  job output.
        :type out_file_name: String
        :returns: :class:`~qmworks.packages.SCM.ADF_Result`
        """
        adf_settings = Settings()
        adf_settings.input = settings.specific.adf
        job = plams.ADFJob(name=job_name, molecule=mol, settings=adf_settings)
        result = job.run()
        path_t21 = result._kf.path

        adf_result = ADF_Result(
            adf_settings,
            mol,
            result.job.name,
            path_t21,
            plams_dir=result.job.path,
            status=job.status,
        )

        return adf_result
예제 #4
0
    def run_job(settings, mol, job_name="gamess_job", work_dir=None):
        """
        Call the Cp2K binary using plams interface.

        :param settings: Job Settings.
        :type settings: :class:`~qmworks.Settings`
        :param mol: molecular Geometry
        :type mol: plams Molecule
        :param input_file_name: Optional name for the input.
        :type input_file_name: String
        :param out_file_name: Optional name for the output.
        :type out_file_name: String
        :return: Package.Result
        """
        gamess_settings = Settings()
        gamess_settings.input = settings.specific.gamess
        job = plams.GamessJob(molecule=mol,
                              name=job_name,
                              settings=gamess_settings)
        r = job.run()

        result = Gamess_Result(
            gamess_settings,
            mol,
            r.job.name,
            plams_dir=r.job.path,
            work_dir=work_dir,
            status=job.status,
        )

        return result
예제 #5
0
    def run_job(settings, mol, job_name='cp2k_job',
                work_dir=None, **kwargs):
        """
        Call the Cp2K binary using plams interface.

        :param settings: Job Settings.
        :type settings: :class:`~qmworks.Settings`
        :param mol: molecular Geometry
        :type mol: plams Molecule
        :param hdf5_file: Path to the HDF5 file that contains the
        numerical results.
        :type hdf5_file: String
        :param input_file_name: Optional name for the input.
        :type input_file_name: String
        :param out_file_name: Optional name for the output.
        :type out_file_name: String
        :param store_in_hdf5: wether to store the output arrays in HDF5 format.
        :type store_in_hdf5: Bool
        """
        # Yet another work directory

        # Input modifications
        cp2k_settings = Settings()
        cp2k_settings.input = settings.specific.cp2k
        job = plams.Cp2kJob(name=job_name, settings=cp2k_settings,
                            molecule=mol)
        r = job.run()

        work_dir = work_dir if work_dir is not None else job.path

        result = CP2K_Result(cp2k_settings, mol, job_name, r.job.path,
                             work_dir, status=job.status)

        return result
예제 #6
0
파일: SCM.py 프로젝트: miroi/qmworks
    def run_job(self, settings, mol, job_name='DFTBjob'):
        """
        Execute an DFTB job with the *ADF* quantum package.

        :param settings: user input settings.
        :type settings: |Settings|
        :param mol: Molecule to run the simulation
        :type mol: Plams Molecule
        :parameter input_file_name: The user can provide a name for the
                                   job input.
        :type input_file_name: String
        :parameter out_file_name: The user can provide a name for the
                                 job output.
        :type out_file_name: String
        :returns: :class:`~qmworks.packages.SCM.DFTB_Result`
        """
        dftb_settings = Settings()
        dftb_settings.input = settings.specific.dftb
        result = plams.DFTBJob(name=job_name,
                               molecule=mol,
                               settings=dftb_settings).run()

        return DFTB_Result(dftb_settings,
                           mol,
                           result.job.name,
                           plams_dir=result.job.path)
예제 #7
0
파일: dirac.py 프로젝트: miroi/qmworks
    def run_job(self, settings, mol, input_file_name=None, out_file_name=None):

        dirac_settings = Settings()
        dirac_settings.input = settings.specific.dirac
        check_dirac_input(dirac_settings)
        result = plams.DiracJob(settings=dirac_settings, molecule=mol).run()

        return DIRAC_Result(dirac_settings, mol, result)
예제 #8
0
    def run_job(self,
                settings,
                mol,
                work_dir=None,
                project_name=None,
                hdf5_file="quantum.hdf5",
                input_file_name=None,
                out_file_name=None,
                store_in_hdf5=True,
                nHOMOS=None,
                nLUMOS=None,
                job_name='cp2k_job'):
        """
        Call the Cp2K binary using plams interface.

        :param settings: Job Settings.
        :type settings: :class:`~qmworks.Settings`
        :param mol: molecular Geometry
        :type mol: plams Molecule
        :param hdf5_file: Path to the HDF5 file that contains the
        numerical results.
        :type hdf5_file: String
        :param input_file_name: Optional name for the input.
        :type input_file_name: String
        :param out_file_name: Optional name for the output.
        :type out_file_name: String
        :param store_in_hdf5: wether to store the output arrays in HDF5 format.
        :type store_in_hdf5: Bool
        """
        cp2k_settings = Settings()
        cp2k_settings.input = settings.specific.cp2k
        job = plams.Cp2kJob(name=job_name,
                            settings=cp2k_settings,
                            molecule=mol)
        runner = plams.JobRunner(parallel=True)
        r = job.run(runner)
        r.wait()

        work_dir = work_dir if work_dir is not None else job.path
        output_file = join(job.path, job._filename('out'))

        if store_in_hdf5:
            dump_to_hdf5(hdf5_file,
                         settings,
                         work_dir,
                         output_file,
                         nHOMOS,
                         nLUMOS,
                         project_name=project_name)

        return CP2K_Result(cp2k_settings,
                           mol,
                           job_name,
                           r.job.path,
                           work_dir,
                           path_hdf5=hdf5_file,
                           project_name=project_name)
예제 #9
0
파일: orca.py 프로젝트: miroi/qmworks
    def run_job(self, settings, mol, job_name="ORCAjob"):

        orca_settings = Settings()
        orca_settings.input = settings.specific.orca

        result = plams.ORCAJob(molecule=mol,
                               settings=orca_settings,
                               name=job_name).run()

        return ORCA_Result(orca_settings, mol, result.job.name,
                           result.job.path)
예제 #10
0
    def run_job(settings, mol, job_name="ORCAjob"):

        orca_settings = Settings()
        orca_settings.input = settings.specific.orca

        job = plams.ORCAJob(molecule=mol, settings=orca_settings, name=job_name)
        result = job.run()

        return ORCA_Result(
            orca_settings,
            mol,
            result.job.name,
            plams_dir=result.job.path,
            status=job.status,
        )
예제 #11
0
    def run_job(settings, mol, job_name="dirac_job"):

        dirac_settings = Settings()
        dirac_settings.input = settings.specific.dirac
        dirac_settings.ignore_molecule
        job = plams.DiracJob(name=job_name,
                             settings=dirac_settings,
                             molecule=mol)
        result = job.run()

        return DIRAC_Result(
            dirac_settings,
            mol,
            result.job.name,
            plams_dir=result.job.path,
            status=job.status,
        )
예제 #12
0
파일: gamess.py 프로젝트: miroi/qmworks
    def run_job(self,
                settings,
                mol,
                work_dir=None,
                project_name=None,
                hdf5_file="quantum.hdf5",
                store_in_hdf5=True,
                job_name='gamess_job'):
        """
        Call the Cp2K binary using plams interface.

        :param settings: Job Settings.
        :type settings: :class:`~qmworks.Settings`
        :param mol: molecular Geometry
        :type mol: plams Molecule
        :param hdf5_file: Path to the HDF5 file that contains the
        numerical results.
        :type hdf5_file: String
        :param input_file_name: Optional name for the input.
        :type input_file_name: String
        :param out_file_name: Optional name for the output.
        :type out_file_name: String
        :param store_in_hdf5: wether to store the output arrays in HDF5 format.
        :type store_in_hdf5: Bool
        """
        gamess_settings = Settings()
        gamess_settings.input = settings.specific.gamess
        job = plams.GamessJob(molecule=mol,
                              name=job_name,
                              settings=gamess_settings)
        runner = plams.JobRunner(parallel=True)
        r = job.run(runner)
        r.wait()

        return Gamess_Result(gamess_settings,
                             mol,
                             r.job.name,
                             plams_dir=r.job.path,
                             work_dir=work_dir,
                             path_hdf5=hdf5_file,
                             project_name=project_name)