Skip to main content
Docs

Search guides and API endpoints, for example “Idempotency-Key” or “submit job”.

    Tools · Quantum Chemistry

    PySCF Electronic Structure

    Hartree–Fock, DFT, TDDFT, optimization, frequencies, and charges with PySCF / GPU4PySCF
    On this page

    Prices, workflows, and method papersOpen in the app

    Run it from the API

    Submit with Submit a job and the job_type below. Price it first with Estimate job reservation cost: submitting reserves that amount from your wallet, and the charge settles at the actual runtime.

    PySCF Electronic Structure pyscf-electronic

    Job type
    pyscf-electronic
    Hardware
    cput4l4a10 (default)l40sa100-40gba100-80gbh100h200b200
    Typical runtime
    2 h on Nvidia A10

    Payload

    Payload fields
    FieldTypeDescription
    moderequiredstring

    One of: "energy", "opt", "freq", "tddft", "properties", "charges"

    input_data[]required(string | object)[]

    Limits: min items 1, max items 20

    input_formatrequiredstring

    One of: "sdf", "mol", "mol2", "molblock"

    methodstring

    Default: "b3lyp-d3"One of: "hf", "b3lyp-d3", "wb97x-v"

    basisstring

    Default: "def2-svp"One of: "def2-svp", "def2-tzvp"

    chargeinteger

    Default: 0Limits: ≥ -20

    multiplicityinteger

    Default: 1Limits: ≥ 1, ≤ 11

    mp2boolean

    Default: false

    nstatesinteger

    Default: 10Limits: ≥ 1, ≤ 50

    charge_modelstring

    Default: "resp"One of: "resp", "esp", "chelpg"

    Example

    from cognichem_client import CogniChem
    
    client = CogniChem.from_env()  # reads COGNICHEM_API_KEY
    payload = {
        "mode": "energy",
        "input_data": [
            "ethanol\n     RDKit          3D\n\n  9  8  0  0  0  0  0  0  0 … (813 characters)",
        ],
        "input_format": "molblock",
        "method": "hf",
        "basis": "def2-svp",
        "charge": 0,
        "multiplicity": 1,
        "mp2": False,
    }
    
    estimate = client.jobs.estimate(job_type="pyscf-electronic", payload=payload, resource="a10")
    print(f"Reserves ${estimate.cost:.2f}")
    
    job = client.jobs.submit(
        job_name="my-pyscf-electronic-run",
        job_type="pyscf-electronic",
        payload=payload,
        resource="a10",
    )
    status = client.jobs.wait(job.process_id)
    if status.status == "completed":
        client.jobs.result(job.process_id, save_path=".")

    Sample data from the job catalog; long values are shortened here. Each job_name must be unique among your jobs.

    Workflow inputs

    • Molecules (list)SDF, MOL, MOL2, MOLBLOCK

    Workflow outputs

    • ArchiveZIP
    • MoleculesSDF
    • TableCSV