Skip to content

BigChem Algorithms

BigChem implements some of its own concurrent algorithms that leverage its horizontally scalable backend infrastructure. These include a parallel hessian algorithm and parallel frequency analysis algorithm. To use them submit a hessian calculation to ChemCloud using bigchem as the engine. See examples the parallel_hessian.py and parallel_frequency_analysis.py scripts in the examples directory.

Hessian

from qcio import DualProgramInput, ProgramOutput, Structure

from chemcloud import CCClient

water = Structure(
    symbols=["O", "H", "H"],
    geometry=[
        [0.0000, 0.00000, 0.0000],
        [0.2774, 0.89290, 0.2544],
        [0.6067, -0.23830, -0.7169],
    ],
)

client = CCClient()

prog_inp = DualProgramInput(
    structure=water,
    calctype="hessian",
    subprogram="psi4",
    subprogram_args={"model": {"method": "b3lyp", "basis": "6-31g"}},
)


# Submit calculation
future_result = client.compute("bigchem", prog_inp)
prog_output: ProgramOutput = future_result.get()

# ProgramOutput object containing all returned data
print(prog_output)
print(prog_output.results.hessian)
# Frequency data always included too
print(f"Wavenumbers: {prog_output.results.freqs_wavenumber}")
print(prog_output.results.normal_modes_cartesian)
print(prog_output.results.gibbs_free_energy)

Frequency Analysis

from qcio import DualProgramInput, ProgramOutput, Structure

from chemcloud import CCClient

water = Structure(
    symbols=["O", "H", "H"],
    geometry=[
        [0.0000, 0.00000, 0.0000],
        [0.2774, 0.89290, 0.2544],
        [0.6067, -0.23830, -0.7169],
    ],
)

client = CCClient()

prog_inp = DualProgramInput(
    structure=water,
    calctype="hessian",
    subprogram="psi4",
    subprogram_args={"model": {"method": "b3lyp", "basis": "6-31g"}},
)


# Submit calculation
future_result = client.compute("bigchem", prog_inp)
prog_output: ProgramOutput = future_result.get()

# ProgramOutput object containing all returned data
print(prog_output)
print(f"Wavenumbers: {prog_output.results.freqs_wavenumber}")
print(prog_output.results.normal_modes_cartesian)
print(prog_output.results.gibbs_free_energy)

Keywords for the BigChem algorithms:

Keyword Type Description Default Value
dh float Displacement for gradient geometries for finite difference 5.0e-3
temperature float Temperature passed to the harmonic free energy module 300.0
pressure float Pressure passed to the harmonic free energy module 1.0