Bond Dissociation Energy
BDE workflow - Bond Dissociation Energy calculations.
BDEEntry
dataclass
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.
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[BDEResult]
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'
|
multistage_opt_settings
|
MultiStageOptSettings | None
|
explicit method sequence to use instead of the one |
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
|
destination folder |
None
|
max_credits
|
int | None
|
maximum credits for the workflow |
None
|
webhook_url
|
str | None
|
URL that Rowan will POST to when the workflow completes |
None
|
is_draft
|
bool
|
save as a draft without starting execution |
False
|
Returns:
| Type | Description |
|---|---|
Workflow[BDEResult]
|
submitted workflow |
Raises:
| Type | Description |
|---|---|
HTTPStatusError
|
request to the API fails |
find_ch_bonds
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) |
Examples:
find_cx_bonds
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) |
Examples:
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) |
Examples:
mol = Molecule.from_smiles("O") # water
bonds = find_bonds(mol, 8, 1, 1.1) # O-H bonds
# [(1, 2), (1, 3)]
Same-element searches return unique undirected bonds without self-pairs:
>>> peroxide = stjames.Molecule.from_smiles("OO")
>>> find_bonds(peroxide, 8, 8, 1.7)
[(1, 2)]