Python wrapper for Q-Chem
Project description
PyQchem
Python wrapper for Q-Chem (https://www.q-chem.com)
Online manual: https://pyqchem.readthedocs.io/
Main features
- Easy to use clean python interface for Q-Chem
- No special q-chem installation needed (reads Q-Chem environment)
- Output parsers for different type of calculations
- Custom basis set and guess support using high level interface
- Calculation Cache system powered by SQLite database
- python 2.7.x/3.5+ compatibility
Installation instructions
- Requirements
- numpy
- scipy
- matplotlib
- requests
- lxml
- wfnsympy (optional)
- paramiko (optional)
- pymatgen (optional)
2a. From pypi repository (recommended)
pip install pyqchem --user
2b. Installation from source
python setup.py install --user
Examples
Simple pythonic API to define your input
from pyqchem import Structure, QchemInput, get_output_from_qchem
from pyqchem.parsers.basic import basic_parser_qchem
molecule = Structure(coordinates=[[0.0, 0.0, 0.0],
[0.0, 0.0, 0.9]],
symbols=['H', 'H'],
charge=0,
multiplicity=1)
qc_input = QchemInput(molecule,
jobtype='sp',
exchange='hf',
basis='6-31G')
data = get_output_from_qchem(qc_input,
processors=4,
parser=basic_parser_qchem)
# obtain a python dictionary
print('Energy: ', data['scf_energy'])
Link calculations in powerful workflows
from pyqchem import QchemInput, get_output_from_qchem
from pyqchem.parsers.parser_optimization import basic_optimization
from pyqchem.parsers.parser_frequencies import basic_frequencies
from pyqchem.tools import get_geometry_from_pubchem
molecule = get_geometry_from_pubchem('aspirin')
qc_input = QchemInput(molecule,
jobtype='opt',
exchange='hf',
basis='sto-3g',
geom_opt_tol_gradient=300,
geom_opt_tol_energy=100,
geom_opt_tol_displacement=1200)
parsed_data, electronic_structure = get_output_from_qchem(qc_input,
processors=4,
parser=basic_optimization,
read_fchk=True)
qc_input = QchemInput(parsed_data['optimized_molecule'],
jobtype='freq',
exchange='hf',
basis='sto-3g',
scf_guess=electronic_structure['coefficients'])
parsed_data = get_output_from_qchem(qc_input,
processors=4,
parser=basic_frequencies)
for i, mode in enumerate(parsed_data['modes']):
print('mode: {}'.format(i+1))
print('frequency (cm-1): {:10.2f}'.format(mode['frequency']))
print('force constant (mdyne/A): {:10.5f}\n'.format(mode['force_constant']))
Custom basis support
from pyqchem import QchemInput, Structure
from pyqchem.basis import get_basis_from_BSE
molecule = Structure(coordinates=[[0.0, 0.0, 0.0000],
[0.0, 0.0, 1.5811]],
symbols=['Se', 'H'],
charge=-1,
multiplicity=1)
basis_custom = get_basis_from_BSE(molecule, 'cc-pVTZ')
qc_input = QchemInput(molecule,
jobtype='sp',
exchange='hf',
basis=basis_custom)
Handle qchem errors
from pyqchem import get_output_from_qchem
from pyqchem.errors import OutputError, ParserError
from pyqchem.parsers.parser_rasci import parser_rasci
try:
parsed_data = get_output_from_qchem(qc_input,
processors=4,
parser=parser_rasci,
)
except OutputError as e:
print('Calculation ended with errors. Error lines:')
print(e.error_lines)
# Try to parse your output anyway
try:
parsed_data = parser_rasci(e.full_output)
except ParserError:
print('Failed parsing')
exit()
print('Energy: ', parsed_data['scf_energy'])
Additional example scripts are found at the examples folder
Contact info
Abel Carreras
abelcarreras83@gmail.com
Donostia International Physics Center (DIPC)
Donostia-San Sebastian (Spain)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
pyqchem-0.9.6.tar.gz
(53.7 kB
view details)
Built Distribution
pyqchem-0.9.6-py3-none-any.whl
(59.8 kB
view details)
File details
Details for the file pyqchem-0.9.6.tar.gz
.
File metadata
- Download URL: pyqchem-0.9.6.tar.gz
- Upload date:
- Size: 53.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.9.19
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b1fac68bd44d02b2e082d5b728a56a8a3e278b0579d309fb2f80d46133af4488 |
|
MD5 | 74a6f562dd0d70902abd7a63b960ebfa |
|
BLAKE2b-256 | 6602a93cd064c6571779a1831a26f6c6959e8c10bde56ab57908578f15631b03 |
File details
Details for the file pyqchem-0.9.6-py3-none-any.whl
.
File metadata
- Download URL: pyqchem-0.9.6-py3-none-any.whl
- Upload date:
- Size: 59.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.9.19
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5f15393c85ae41f66c2fa2a9e14b28dbad827003bce67ea15bb27f36b4c82ed0 |
|
MD5 | 96120f8aeed430d68b855addb673aa51 |
|
BLAKE2b-256 | 49ca7ba1cafa789f621f17cfd26ca6b248247fd71c690dc03587df70515dd587 |