Crates.io | rgaussian16 |
lib.rs | rgaussian16 |
version | 0.1.3 |
source | src |
created_at | 2021-10-18 19:15:29.596245 |
updated_at | 2021-10-20 14:33:55.278562 |
description | Interface for the Gaussian16 quantum chemical package. This structure provides functions for auto generating input, and running the external program g16. |
homepage | |
repository | https://github.com/JurassicBunny/rgaussian16 |
max_upload_size | |
id | 466987 |
size | 14,972 |
Interface for the Gaussian16 quantum chemical package.
This structure provides functions for auto generating input, and
running the external program g16
.
As configuration is tied to Gaussian, multiple Gaussian objects may be used to extract different results form Gaussian16. This greatly simplifies the processes of interfacing with the quantum chemical package.
An example configuration file.
config.yaml:
---
mem: "136GB"
cpu: "0-47"
gpu: ~
checkpoint: "output.chk"
key_words: "#p WB97XD/Def2tzvpp SCF=XQC"
title: "single point"
charge: 0
multiplicity: 3
Gaussian16 may be run with graphical processing units (gpus). In-order to generate
input for gpu targeted calculations, replace ~
with the appropriate string. For
example, changing the above configurations gpu field to "0=0"
will instruct Gaussian16
to utilize one gpu controlled by cpu number 0.
For more information about running Gaussain16 with gpus, please read: https://gaussian.com/gpu/
Generate Gaussian object write input and run g16
:
use rgaussian16::Gaussion;
fn main() -> Result<()> {
let input_file = std::fs::File::create("input.com")?;
let output_file = std::fs::File::create("output.out")?;
let job1_config = std::fs::File::open("config.yaml")?;
let job1_interface = Gaussion::new(config)?;
job1_interface.gen_input(input_file)?;
job1_interface.run(input_file, output_file)?;
Ok(())
}