当前位置: 首页>>代码示例>>Python>>正文


Python Molecule.add_quantum方法代码示例

本文整理汇总了Python中molecule.Molecule.add_quantum方法的典型用法代码示例。如果您正苦于以下问题:Python Molecule.add_quantum方法的具体用法?Python Molecule.add_quantum怎么用?Python Molecule.add_quantum使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在molecule.Molecule的用法示例。


在下文中一共展示了Molecule.add_quantum方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: QChem

# 需要导入模块: from molecule import Molecule [as 别名]
# 或者: from molecule.Molecule import add_quantum [as 别名]
class QChem(object):
    """
    Class for facilitating Q-Chem calculations.  I wrote this
    because it was helpful to execute a chain of calculations on a
    single geometry.
    """
    def __init__(self, fin, ftype=None, charge=None, mult=None, method=None,
                 basis=None, qcin=None, qcout=None, qcdir=None, readsave=None,
                 readguess=True, clean=False, qcsave=True):
        """
        Create a QChem object.

        Parameters
        ----------
        fin : str
            Name of input .xyz or .in file (other coordinate files in
            molecule.py supported as well).  The .in file will contain
            settings for the Q-Chem calculation whereas the .xyz file
            does not; in this case, default fields are filled in, but
            the user must procide charge / mult / method / basis.
        ftype : str, optional
            Force the Molecule class to read the input file as this format.
        charge : int, optional
            Net charge.  Required if xyz coordinates are provided.  If
            Q-Chem input and charge are both provided, this will override.
        mult : int, optional
            Spin multiplicity.  Required if xyz coordinates are provided.
            If Q-Chem input and mult are both provided, this will override.
        method : str, optional
            Electronic structure method (e.g. b3lyp).  This is written
            to the "method" field in the Q-Chem input file - supported
            by Q-Chem 4.2 and later.  Required if xyz coordinate are
            provided.  If Q-Chem input and method are both provided, this
            will override.
        basis : str, optional
            Gaussian basis set (e.g. 6-31g*).  This is written to the
            "basis" field in the Q-Chem input file.  Required if xyz
            coordinate are provided.  If Q-Chem input and basis
            are both provided, this will override.
        qcin : str, optional
            Base name of Q-Chem input files to be written.  If not provided,
            will use "fin" (extension will be changed to ".qcin" if necessary
            to avoid overwriting input file.)
        qcout : str, optional
            Base name of Q-Chem output files.  If not provided, will use "qcin"
            base name and ".out" extension.
        qcdir : str, optional
            Base name of Q-Chem temporary folder.  If not provided, will use "qcin"
            base name and ".d" extension.  NOTE: This folder will be removed prior
            to calculation start!  Also, will create a ".dsav" folder used to recover
            from failed calculations, think of it as a "save game file".
        readsave : str or bool, optional
            If set to True, the "qcdsav" (i.e. qcdir+"sav") folder will automatically
            be used to initialize this calculation.
            If string, this is a folder containing Q-Chem files used to initialize
            this calculation.  This folder will be copied to "self.qcdsav" and self.qcdsav
            will NOT be removed prior to calculation start.
            If not provided, self.qcdsav will be removed prior to calculation start.
        readguess : bool, optional
            Write "scf_guess read" to Q-Chem input file.  If readsave is provided,
            then the very first calculation will read the SCF guess as well.
        clean : bool, optional
            When set, this calculation never updates qcdsav.  However, if readsave is
            provided it will still be used to initialize each calculation.  Use this
            if you never want the calculation result to depend on the previous state.
            Note that this is relatively uncommon (e.g. if we want to run a series
            of calculations without reading the SCF guess from the previous one.)
        qcsave : bool, optional
            Append the "-save" argument to the system call to Q-Chem.  This results
            in more files being saved to qcdir.
        """
        # Name of the input file.
        self.fin = fin
        # Molecule object from loading the input file.
        self.M = Molecule(fin, ftype)
        if 'elem' not in self.M.Data.keys():
            raise RuntimeError('Input file contains no atoms')
        # Q-Chem input file that will be written for each Q-Chem execution.
        # If the original input file happens to also be a Q-Chem input file,
        # then use the suffix 'qcin' add an underscore so we
        # don't accidentally overwrite our original file.
        if qcin == None:
            qcin = os.path.splitext(fin)[0]+'.in'
        if qcin == fin and fin.endswith('.in'):
            self.qcin = os.path.splitext(fin)[0]+'.qcin'
        elif qcin == fin:
            raise RuntimeError('Please do not provide a file with extension .qcin')
        else:
            self.qcin = qcin
        # Keep track of the number of calculations done.
        self.ncalc = 0
        # Whether a Hessian calculation has been done.
        self.haveH = 0
        # Set Q-Chem calculation options ($rem variables).
        if 'qcrems' not in self.M.Data.keys():
            if method == None or basis == None or charge == None or mult == None:
                raise RuntimeError('Must provide charge/mult/method/basis!')
            # Print a Q-Chem template file.
            prepare_template(qcrem_default, '.qtemp.in', charge, mult, method, basis, molecule=self.M)
            self.M.add_quantum('.qtemp.in')
#.........这里部分代码省略.........
开发者ID:leeping,项目名称:qchem-utils,代码行数:103,代码来源:qchem.py


注:本文中的molecule.Molecule.add_quantum方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。