A Python client for volcengine quantum chemistry service.
Project description
volcengine-qcclient
A Python client for volcano engine quantum chemistry service.
Installation
pip install volcengine-qcclient
Usage
High-level SDK.
- run GPU4PySCF tasks.
import os
import requests
import h5py
import tarfile
from volcengine_qcclient import QcBatchJob
# download_output download output of qc task to ./{task_id}/ dir.
def download_output(url, task_id):
os.mkdir(f"./{task_id}")
if ".h5" in url:
output_h5 = f"./{task_id}/output.h5"
open(output_h5, 'wb').write(requests.get(url).content)
elif "tar.gz" in url:
output_targz = f"./{task_id}/output.tar.gz"
open(output_targz, 'wb').write(requests.get(url).content)
with tarfile.open(output_targz, 'r:gz') as tar:
tar.extractall(path=f"./{task_id}")
os.remove(output_targz)
else:
print("unsupported file type")
if __name__ == '__main__':
ak = "{volc_ak}"
sk = "{volc_sk}"
# init batch_job
batch_job = QcBatchJob(ak=ak, sk=sk)
# load molecules.
molecules = [
'''
3
Water molecule
O 0.00000 0.00000 0.11779
H 0.00000 0.75545 -0.47116
H 0.00000 -0.75545 -0.47116
'''
]
batch_job.load_molecules(from_list=molecules)
# set task config.
task_config = {
"spin": 0,
"charge": 0,
"basis": "def2-tzvpp",
}
# submit task.
task_type = "sp"
task_ids = batch_job.submit(task_type=task_type, task_config=task_config)
print(task_ids)
# wait for task to finish.
batch_job.wait()
# get tasks when batch_job finished.
tasks = batch_job.get_tasks()
print(tasks)
# download output to ./{task_id}/
task = tasks[0]
download_output(task["OutputUrl"], task["Id"])
# operation with output.
if task_type in ["sp", "opt"]:
with h5py.File(f"./{task['Id']}/output.h5", 'r') as f:
print(f.keys())
elif task_type == "pysisyphus":
# print keys in `final_hessian.h5`.
with h5py.File(f"./{task['Id']}/final_hessian.h5", 'r') as f:
print(f.keys())
# print keys in `optimization.h5`
with h5py.File(f"./{task['Id']}/final_hessian.h5", 'r') as f:
print(f.keys())
# print final_geometry.xyz
with open(f"./{task['Id']}/final_geometry.xyz", 'r') as f:
print(f.read())
- run pysisyphus tasks.
import os
import requests
import h5py
import tarfile
from volcengine_qcclient import QcBatchJob
# download_output download output of qc task to ./{task_id}/ dir.
def download_output(url, task_id):
os.mkdir(f"./{task_id}")
if ".h5" in url:
output_h5 = f"./{task_id}/output.h5"
open(output_h5, 'wb').write(requests.get(url).content)
elif "tar.gz" in url:
output_targz = f"./{task_id}/output.tar.gz"
open(output_targz, 'wb').write(requests.get(url).content)
with tarfile.open(output_targz, 'r:gz') as tar:
tar.extractall(path=f"./{task_id}")
os.remove(output_targz)
else:
print("unsupported file type")
if __name__ == '__main__':
ak = "{volc_ak}"
sk = "{volc_sk}"
# init batch_job
batch_job = QcBatchJob(ak=ak, sk=sk)
# load molecules.
molecules = [
'''
3
Water molecule
O 0.00000 0.00000 0.11779
H 0.00000 0.75545 -0.47116
H 0.00000 -0.75545 -0.47116
'''
]
batch_job.load_molecules(from_list=molecules)
# set task config.
task_config = {}
# submit task.
task_type = "pysisyphus"
task_ids = batch_job.submit(task_type=task_type, task_config=task_config)
print(task_ids)
# wait for task to finish.
batch_job.wait()
# get tasks when batch_job finished.
tasks = batch_job.get_tasks()
print(tasks)
# download output to ./{task_id}/
task = tasks[0]
download_output(task["OutputUrl"], task["Id"])
# operation with output.
if task_type in ["sp", "opt"]:
with h5py.File(f"./{task['Id']}/output.h5", 'r') as f:
print(f.keys())
elif task_type == "pysisyphus":
# print keys in `final_hessian.h5`.
with h5py.File(f"./{task['Id']}/final_hessian.h5", 'r') as f:
print(f.keys())
# print keys in `optimization.h5`
with h5py.File(f"./{task['Id']}/final_hessian.h5", 'r') as f:
print(f.keys())
# print final_geometry.xyz
with open(f"./{task['Id']}/final_geometry.xyz", 'r') as f:
print(f.read())
Low level SDK:
see low-level.md
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 Distributions
No source distribution files available for this release.See tutorial on generating distribution archives.
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file volcengine_qcclient-0.1.11-py3-none-any.whl.
File metadata
- Download URL: volcengine_qcclient-0.1.11-py3-none-any.whl
- Upload date:
- Size: 8.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1d33d5295fe6d67d52681aaac2b293825718f4d75514b44e9cfa4ea614e3a875
|
|
| MD5 |
28f40fe1bfe6b4d4e6464fd8aef12271
|
|
| BLAKE2b-256 |
e402c9828d5e5fada6042e1c35c843b596395db06d6297f4386a0ccc485fd2af
|