Exemplo n.º 1
0
def molec_properties(geom, charge, mult, method, basis, prog,
                     # molecule options
                     mol_options=(),
                     # machine options
                     memory=1, comment='', machine_options=(),
                     # theory options
                     orb_type=None,
                     scf_options=(), casscf_options=(), corr_options=(),
                     # generic options
                     gen_lines=None,
                     # job options
                     job_options=()):
    """ Molecular Properties input string
    :param geom: cartesian or z-matrix geometry
    :type geom: tuple
    :param charge: molecular charge
    :type charge: int
    :param mult: spin multiplicity
    :type mult: int
    :param method: electronic structure method
    :type method: str
    :param basis: basis set
    :type basis: str
    :param prog: electronic structure program to use as a backend
    :type prog: str
    :param mol_options: options for the molecule block
    :type mol_options: tuple[str]
    ;param memory: memory in GB
    :type memory: int
    :param comment: a comment string to be placed at the top of the file
    :type comment: str
    :param machine_options: machine directives (num procs, num threads, etc.)
    :type machine_options: tuple[str]
    :param orb_type: 'R' indicates restricted orbitals, 'U' indicates
        unrestricted orbitals; can also be 'RR', 'RU', or 'UU' where the first
        character sets R/U for singlets and the second sets R/U for multiplets
    :type orb_type: str
    :param scf_options: scf method directives
    :type scf_options: tuple[str]
    :param casscf_options: casscf method directives
    :type casscf_options: tuple[str]
    :param corr_options: correlation method directives
    :type corr_options: tuple[str]
    :param gen_lines: generic lines for the input file
    :type gen_lines: tuple[str]
    :type gen_lines: dct[idx]=[str]
    """
    prog, method, basis, orb_restricted = _process_theory_specifications(
        prog, method, basis, mult, orb_type)

    return pm.call_module_function(
        prog, MODULE_NAME, module_template.molec_properties,
        # *args
        geom, charge, mult, method, basis,
        # **kwargs
        mol_options=mol_options, memory=memory, comment=comment,
        machine_options=machine_options, orb_restricted=orb_restricted,
        scf_options=scf_options, casscf_options=casscf_options,
        corr_options=corr_options,
        gen_lines=gen_lines, job_options=job_options)
Exemplo n.º 2
0
def error_list(prog):
    """ list of errors that be identified from the output file

    :param prog: the electronic structure program to use as a backend
    :type prog: str
    """
    return pm.call_module_function(prog, MODULE_NAME,
                                   module_template.error_list)
Exemplo n.º 3
0
def gradient(prog, output_string):
    """ read gradient from the output string

    :param prog: electronic structure program to use as a backend
    :type prog: str
    :param output_string: the program output string
    :type output_string: str
    """
    return pm.call_module_function(
        prog,
        MODULE_NAME,
        module_template.gradient,
        # *args
        output_string)
Exemplo n.º 4
0
def has_normal_exit_message(prog, output_string):
    """ does this output string have a normal exit message?

    :param prog: electronic structure program to use as a backend
    :type prog: str
    :param output_string: the program output string
    :type output_string: str
    """
    return pm.call_module_function(
        prog,
        MODULE_NAME,
        module_template.has_normal_exit_message,
        # *args
        output_string)
Exemplo n.º 5
0
def opt_zmatrix(prog, output_string):
    """ read optimized zmatrix from the output string

    :param prog: electronic structure program to use as a backend
    :type prog: str
    :param output_string: the program output string
    :type output_string: str
    """
    return pm.call_module_function(
        prog,
        MODULE_NAME,
        module_template.opt_zmatrix,
        # *args
        output_string)
Exemplo n.º 6
0
def polarizability(prog, output_string):
    """ read polarizability from the output string

    :param prog: electronic structure program to use as a backend
    :type prog: str
    :param output_string: the program output string
    :type output_string: str
    """
    return pm.call_module_function(
        prog,
        MODULE_NAME,
        module_template.polarizability,
        # *args
        output_string)
Exemplo n.º 7
0
def normal_coords(prog, output_string):
    """ read normal modes from the output string

    :param prog: electronic structure program to use as a backend
    :type prog: str
    :param output_string: the program output string
    :type output_string: str
    """
    return pm.call_module_function(
        prog,
        MODULE_NAME,
        module_template.normal_coords,
        # *args
        output_string)
Exemplo n.º 8
0
def harmonic_frequencies(prog, output_string):
    """ read harmonic_frequencies from the output string

    :param prog: electronic structure program to use as a backend
    :type prog: str
    :param output_string: the program output string
    :type output_string: str
    """
    return pm.call_module_function(
        prog,
        MODULE_NAME,
        module_template.harmonic_frequencies,
        # *args
        output_string)
Exemplo n.º 9
0
def has_error_message(prog, error, output_string):
    """ does this output string have an error message?
    :param prog: electronic structure program to use as a backend
    :type prog: str
    :param error: a key indicating the type of error message
    :type error: str
    :param output_string: the program output string
    :type output_string: str
    """
    return pm.call_module_function(
        prog,
        MODULE_NAME,
        module_template.has_error_message,
        # *args
        error,
        output_string)
Exemplo n.º 10
0
def energy(prog, method, output_string):
    """ read energy from the output string

    :param prog: electronic structure program to use as a backend
    :type prog: str
    :param method: electronic structure method
    :type method: str
    :param output_string: the program output string
    :type output_string: str
    """
    prog = prog.lower()
    method = method.lower()
    return pm.call_module_function(
        prog,
        MODULE_NAME,
        module_template.energy,
        # *args
        method,
        output_string)
Exemplo n.º 11
0
def check_convergence_messages(prog, error, success, output_string):
    """ does this output string have an error message?

    :param prog: electronic structure program to use as a backend
    :type prog: str
    :param error: a key indicating the type of error message
    :type error: str
    :param success: a key indicating the type of success message
    :type success: str
    :param output_string: the program output string
    :type output_string: str
    """
    return pm.call_module_function(
        prog,
        MODULE_NAME,
        module_template.check_convergence_messages,
        # *args
        error,
        success,
        output_string)
Exemplo n.º 12
0
def energy(
        geom,
        charge,
        mult,
        method,
        basis,
        prog,
        # molecule options
        mol_options=(),
        # machine options
        memory=1,
        comment='',
        machine_options=(),
        # theory options
        orb_restricted=None,
        scf_options=(),
        casscf_options=(),
        corr_options=(),
        # generic options
        gen_lines=None):
    """ energy input string

    :param geom: cartesian or z-matrix geometry
    :type geom: tuple
    :param charge: molecular charge
    :type charge: int
    :param mult: spin multiplicity
    :type mult: int
    :param method: electronic structure method
    :type method: str
    :param basis: basis set
    :type basis: str
    :param prog: electronic structure program to use as a backend
    :type prog: str
    :param mol_options: options for the molecule block
    :type mol_options: tuple[str]
    ;param memory: memory in GB
    :type memory: int
    :param comment: a comment string to be placed at the top of the file
    :type comment: str
    :param machine_options: machine directives (num procs, num threads, etc.)
    :type machine_options: tuple[str]
    :param orb_restricted: whether the SCF orbitals are spin-restricted
    :type orb_restricted: bool
    :param scf_options: scf method directives
    :type scf_options: tuple[str]
    :param casscf_options: casscf method directives
    :type casscf_options: tuple[str]
    :param corr_options: correlation method directives
    :type corr_options: tuple[str]
    :param gen_lines: generic lines for the input file
    :type gen_lines: dct[idx]=[str]
    """
    prog, method, basis, orb_restricted = _process_theory_specifications(
        prog, method, basis, mult, orb_restricted)

    return pm.call_module_function(
        prog,
        MODULE_NAME,
        module_template.energy,
        # *args
        geom,
        charge,
        mult,
        method,
        basis,
        # **kwargs
        mol_options=mol_options,
        memory=memory,
        comment=comment,
        machine_options=machine_options,
        orb_restricted=orb_restricted,
        scf_options=scf_options,
        casscf_options=casscf_options,
        corr_options=corr_options,
        gen_lines=gen_lines)
Exemplo n.º 13
0
def irc(
        geom,
        charge,
        mult,
        method,
        basis,
        prog,
        # molecule options
        mol_options=(),
        # machine options
        memory=1,
        comment='',
        machine_options=(),
        # theory options
        orb_restricted=None,
        scf_options=(),
        casscf_options=(),
        corr_options=(),
        # generic options
        gen_lines=None,
        # job options
        job_options=(),
        frozen_coordinates=(),
        irc_direction=None):
    """ irc input string

    :param geom: cartesian or z-matrix geometry
    :type geom: tuple
    :param charge: molecular charge
    :type charge: int
    :param mult: spin multiplicity
    :type mult: int
    :param method: electronic structure method
    :type method: str
    :param basis: basis set
    :type basis: str
    :param prog: electronic structure program to use as a backend
    :type prog: str
    :param mol_options: options for the molecule block
    :type mol_options: tuple[str]
    ;param memory: memory in GB
    :type memory: int
    :param comment: a comment string to be placed at the top of the file
    :type comment: str
    :param machine_options: machine directives (num procs, num threads, etc.)
    :type machine_options: tuple[str]
    :param orb_restricted: whether the SCF orbitals are spin-restricted
    :type orb_restricted: bool
    :param scf_options: scf method directives
    :type scf_options: tuple[str]
    :param casscf_options: casscf method directives
    :type casscf_options: tuple[str]
    :param corr_options: correlation method directives
    :type corr_options: tuple[str]
    :param job_options: geometry optimization routine directives
    :type job_options: tuple[str]
    :param frozen_coordinates: only with z-matrix geometries; list of
        coordinate names to freeze
    :type fozen_coordinates: tuple[str]
    :param irc_direction: direction along imaginary mode eigenvector to move
    :type irc_direction: string
    :param gen_lines: generic lines for the input file
    :type gen_lines: dct[idx]=[str]
    """
    prog, method, basis, orb_restricted = _process_theory_specifications(
        prog, method, basis, mult, orb_restricted)

    return pm.call_module_function(
        prog,
        MODULE_NAME,
        module_template.irc,
        # *args
        geom,
        charge,
        mult,
        method,
        basis,
        # **kwargs
        mol_options=mol_options,
        memory=memory,
        comment=comment,
        machine_options=machine_options,
        orb_restricted=orb_restricted,
        scf_options=scf_options,
        casscf_options=casscf_options,
        corr_options=corr_options,
        gen_lines=gen_lines,
        job_options=job_options,
        frozen_coordinates=frozen_coordinates,
        irc_direction=irc_direction)
Exemplo n.º 14
0
def program_version(prog, output_string):
    """ get the name of the electronic structure code from the output
    """
    return pm.call_module_function(prog, MODULE_NAME,
                                   module_template.program_version,
                                   output_string)