Skip to content

Scan

Scan workflow - perform potential energy surface scans.

ScanResult dataclass

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

Bases: WorkflowResult

Result from a scan workflow.

scan_point_uuids property

scan_point_uuids: list[str]

UUIDs of scan point calculations.

scan_points property

scan_points: list[Calculation]

All scan point calculations.

.. note:: Makes one API call per scan point on first access. Results are cached. Call clear_cache() to refresh.

messages property

messages: list[Message]

Any messages or warnings from the workflow.

get_energies

get_energies(
    relative: bool = False,
) -> list[tuple[float, float | None]]

Get scan coordinate values paired with energies.

Parameters:

Name Type Description Default
relative bool

If True, return relative energies in kcal/mol (relative to the lowest energy point). If False (default), return absolute energies in Hartree.

False

Returns:

Type Description
list[tuple[float, float | None]]

List of (coordinate, energy) tuples. Coordinate is the scanned value (e.g., bond distance in Angstrom, angle in degrees).

submit_scan_workflow

submit_scan_workflow(
    initial_molecule: StructureInput,
    scan_settings: ScanSettingsInput | list[ScanSettingsInput],
    scan_settings_2d: ScanSettingsInput
    | list[ScanSettingsInput]
    | None = None,
    calculation_engine: str | None = None,
    calculation_method: Method | str = "omol25_conserving_s",
    basis_set: BasisSet | str | None = None,
    corrections: list[str] | None = None,
    solvent: SolventInput = None,
    mode: Mode | str = "auto",
    constraints: list[Constraint] | None = None,
    wavefront_propagation: bool = True,
    name: str = "Scan 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 scan workflow to the API.

Parameters:

Name Type Description Default
initial_molecule StructureInput

Molecule to scan.

required
scan_settings ScanSettingsInput | list[ScanSettingsInput]

coordinate(s) to scan. Pass one ScanSettings (or dict) for a 1D scan, or a list to scan several coordinates simultaneously (concerted); concerted coordinates must all use the same number of points.

required
scan_settings_2d ScanSettingsInput | list[ScanSettingsInput] | None

optional additional coordinate(s) scanned as a second dimension, forming a 2D grid with scan_settings. Same single-or-list form as scan_settings.

None
calculation_engine str | None

Engine to use for the calculation.

None
calculation_method Method | str

Method to use for the calculation.

'omol25_conserving_s'
basis_set BasisSet | str | None

Basis set, see BasisSet.

None
corrections list[str] | None

Dispersion corrections, see Correction.

None
solvent SolventInput

Solvent to use for the calculation.

None
mode Mode | str

geometry-optimization mode controlling convergence thresholds for each constrained optimization, see Mode. Defaults to auto (normally rapid).

'auto'
constraints list[Constraint] | None

additional geometric constraints held fixed during every scan-point optimization, beyond the scanned coordinate, see Constraint.

None
wavefront_propagation bool

Whether to use wavefront propagation in the scan.

True
name str

Name of the workflow.

'Scan Workflow'
folder_uuid str | None

UUID of the folder to store 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.