Skip to content

Bond Dissociation Energy

BDE workflow - Bond Dissociation Energy calculations.

BDEEntry dataclass

BDEEntry(
    fragment_idxs: tuple[int, ...], energy: float | None = None
)

A bond dissociation energy result.

BDEResult dataclass

BDEResult(
    workflow_data: dict[str, Any],
    workflow_type: str,
    workflow_uuid: str,
    complete: bool = True,
)

Bases: WorkflowResult

Result from a Bond-Dissociation Energy (BDE) workflow.

energy property

energy: float | None

Energy of the molecule (Hartree).

bdes property

bdes: list[BDEEntry]

Bond dissociation energies.

submit_bde_workflow

submit_bde_workflow(
    initial_molecule: StructureInput,
    mode: str = "omol25_conserving_s",
    multistage_opt_settings: MultiStageOptSettings | None = None,
    fragment_indices: list[list[int]] | None = None,
    all_CH: bool = False,
    all_CX: bool = False,
    name: str = "BDE Workflow",
    folder_uuid: str | None = None,
    folder: Folder | None = None,
    max_credits: int | None = None,
    webhook_url: str | None = None,
    is_draft: bool = False,
) -> Workflow

Submits a Bond-Dissociation Energy (BDE) workflow to the API.

Parameters:

Name Type Description Default
initial_molecule StructureInput

Molecule to calculate BDEs for.

required
mode str

Level of theory to run the calculation at, given as a method string: - omol25_conserving_s — neural network potential (default) - g_xtb//gfn2_xtb — semiempirical - r2scan3c//gfn2_xtb — DFT single point on a semiempirical geometry

'omol25_conserving_s'
multistage_opt_settings MultiStageOptSettings | None

Explicit method sequence to use instead of the one mode would pick — the optimization stage(s) followed by a final singlepoint, given as a MultiStageOptSettings. When omitted, the sequence is built automatically from mode. When supplied, it replaces that sequence.

None
fragment_indices list[list[int]] | None

1-indexed atoms of each fragment to dissociate. Each fragment must connect to the rest of the molecule by a single bond.

None
all_CH bool

Whether to dissociate all C-H bonds.

False
all_CX bool

Whether to dissociate all C-X bonds (X = halogen).

False
name str

Name of the workflow.

'BDE Workflow'
folder_uuid str | None

UUID of the folder to place the workflow in.

None
folder Folder | None

Folder object to store the workflow in.

None
max_credits int | None

Maximum number of credits to use for the workflow.

None
webhook_url str | None

URL that Rowan will POST to when the workflow completes.

None
is_draft bool

If True, submit the workflow as a draft without starting execution.

False

Returns:

Type Description
Workflow

Workflow object representing the submitted workflow.

Raises:

Type Description
requests.HTTPError

if the request to the API fails.

find_ch_bonds

find_ch_bonds(
    molecule: StructureInput, distance_max: float = 1.2
) -> list[tuple[int, int]]

Find all C-H bonds in a molecule.

Parameters:

Name Type Description Default
molecule StructureInput

Molecule to search (Molecule, stjames.Molecule, or dict).

required
distance_max float

Maximum C-H distance to consider a bond (A).

1.2

Returns:

Type Description
list[tuple[int, int]]

List of (carbon_index, hydrogen_index) tuples (1-based indices).

Example::

mol = Molecule.from_smiles("CCO")  # ethanol
bonds = find_ch_bonds(mol)
# [(1, 4), (1, 5), (1, 6), (2, 7), (2, 8)]

find_cx_bonds

find_cx_bonds(molecule: StructureInput) -> list[tuple[int, int]]

Find all C-X bonds in a molecule (X = F, Cl, Br, I, At, Ts).

Parameters:

Name Type Description Default
molecule StructureInput

Molecule to search (Molecule, stjames.Molecule, or dict).

required

Returns:

Type Description
list[tuple[int, int]]

List of (carbon_index, halogen_index) tuples (1-based indices).

Example::

mol = Molecule.from_smiles("CCCl")  # chloroethane
bonds = find_cx_bonds(mol)
# [(2, 3)]

find_bonds

find_bonds(
    molecule: StructureInput,
    element_a: int,
    element_b: int,
    distance_max: float,
) -> list[tuple[int, int]]

Find all bonds between two element types in a molecule.

Parameters:

Name Type Description Default
molecule StructureInput

Molecule to search (Molecule, stjames.Molecule, or dict).

required
element_a int

Atomic number of first element.

required
element_b int

Atomic number of second element.

required
distance_max float

Maximum distance to consider a bond (A).

required

Returns:

Type Description
list[tuple[int, int]]

List of (atom_a_index, atom_b_index) tuples (1-based indices).

Example::

mol = Molecule.from_smiles("O")  # water
bonds = find_bonds(mol, 8, 1, 1.1)  # O-H bonds
# [(1, 2), (1, 3)]