Package: qcop
Quantum Chemistry OperateA package for operating Quantum Chemistry programs usingqciostandardized data structures. Compatible withTeraChem,psi4,QChem,NWChem,ORCA,Molpro,geomeTRICand many more.qcopworks in harmony with a suite of other quantum chemistry tools for fast, structured, and interoperable quantum chemistry.The QC Suite of Programsqcio- Beautiful and user friendly data structures for quantum chemistry.qcparse- A library for efficient parsing of quantum chemistry data into structuredqcioobjects.qcop- A package for operating quantum chemistry programs usingqciostandardized data structures. Compatible withTeraChem,psi4,QChem,NWChem,ORCA,Molpro,geomeTRICand many more.BigChem- A distributed application for running quantum chemistry calculations at scale across clusters of computers or the cloud. Bring multi-node scaling to your favorite quantum chemistry program.ChemCloud- Aweb applicationand associatedPython clientfor exposing a BigChem cluster securely over the internet.InstallationpipinstallqcopQuickstartqcopuses theqciodata structures to drive quantum chemistry programs in a standardized way. This allows for a simple and consistent interface to a wide variety of quantum chemistry programs. See theqciolibrary for documentation on the input and output data structures.Thecomputefunction is the main entry point for the library and is used to run a calculation.fromqcioimportMolecule,ProgramInputfromqcopimportcompute# Create the moleculeh2o=Molecule.open("h2o.xyz")# Define the program inputprog_input=ProgramInput(molecule=h2o,calctype="energy",model={"method":"hf","basis":"sto-3g"},keywords={"purify":"no","restricted":False},)# Run the calculationoutput=compute("terachem",prog_input,collect_files=True)# Inspect the outputoutput.input_data# Input data used by the QC programoutput.success# Whether the calculation succeededoutput.results# All structured results from the calculationoutput.stdout# Stdout log from the calculationoutput.pstdout# Shortcut to print out the stdout in human readable formatoutput.files# Any files returned by the calculationoutput.provenance# Provenance information about the calculationoutput.extras# Any extra information not in the schemaoutput.traceback# Stack trace if calculation failedoutput.ptraceback# Shortcut to print out the traceback in human readable formatAlternatively, thecompute_argsfunction can be used to run a calculation with the input data structures passed in as arguments rather than as a singleProgramInputobject.fromqcioimportMoleculefromqcopimportcompute_args# Create the moleculeh2o=Molecule.open("h2o.xyz")# Run the calculationoutput=compute_args("terachem",h2o,calctype="energy",model={"method":"hf","basis":"sto-3g"},keywords={"purify":"no","restricted":False},files={...},collect_files=True)The behavior ofcompute()andcompute_args()can be tuned by passing in keyword arguments likecollect_filesshown above. Keywords can modify which scratch directory location to use, whether to delete or keep the scratch files after a calculation completes, what files to collect from a calculation, whether to print the program stdout in real time as the program executes, and whether to propagate a wavefunction through a series of calculations. Keywords also include hooks for passing in update functions that can be called as a program executes in real time. See thecompute method docstringfor more details.See the/examplesdirectory for more examples.SupportIf you have any issues withqcopor would like to request a feature, please open anissue.