Skip to content

pd_allyl

pd_allyl

Pd-allyl amination: 21 Pd-catalyzed allylic amination transition-state structures.

Wahlers et al. Nat. Commun. 2021, 12, 6508 (DOI 10.1038/s41467-021-27065-2) TSFF reference system. Ships as a standalone OPT-substructure .fld that must be composed with the licensed MM3 base force field (see :func:~q2mm.benchmarks.systems._forcefield.compose_opt_with_mm3_base).

load_molecules

load_molecules(*, data_roots: ExternalDataRoots | None = None) -> list[Molecule]

Load the 21 Pd-allyl amination TS molecules (Wahlers Ch 3).

Source code in q2mm/benchmarks/systems/pd_allyl.py
def load_molecules(*, data_roots: ExternalDataRoots | None = None) -> list[Molecule]:
    """Load the 21 Pd-allyl amination TS molecules (Wahlers Ch 3)."""
    return load_gaussian_molecules(_training_set_dir(data_roots))

load

load(*, data_roots: ExternalDataRoots | None = None, starting_point: StartingPoint = 'qfuerza', qfuerza_replace_with: float = 1.0, functional_form: str | None = None, objective_profile: str = REPOSITORY_OBJECTIVE_PROFILE) -> BenchmarkCase

Build the Pd-allyl :class:~q2mm.benchmarks.cases.BenchmarkCase.

Parameters:

Name Type Description Default
data_roots ExternalDataRoots | None

Explicit locations for the (non-distributed) dissertation supporting information and licensed MM3 base force field; falls back to Q2MM_SUPPORTING_INFO / Q2MM_MM3_BASE when omitted.

None
starting_point StartingPoint

"qfuerza" (default, Farrugia 2025) overwrites active OPT bond/angle values with multi-molecule QFUERZA estimates; "published" keeps the literature OPT values verbatim.

'qfuerza'
qfuerza_replace_with float

Replacement value (Hartree/Bohr²) for the most-negative TS-Hessian eigenvalue during QFUERZA projection (Limé & Norrby Method C; default 1.0).

1.0
functional_form str | None

Optional override ("harmonic" or "mm3").

None
objective_profile str

Canonical publication objective-profile identifier.

REPOSITORY_OBJECTIVE_PROFILE

Returns:

Type Description
BenchmarkCase

A fully-populated :class:~q2mm.benchmarks.cases.BenchmarkCase.

Source code in q2mm/benchmarks/systems/pd_allyl.py
def load(
    *,
    data_roots: ExternalDataRoots | None = None,
    starting_point: StartingPoint = "qfuerza",
    qfuerza_replace_with: float = 1.0,
    functional_form: str | None = None,
    objective_profile: str = REPOSITORY_OBJECTIVE_PROFILE,
) -> BenchmarkCase:
    """Build the Pd-allyl :class:`~q2mm.benchmarks.cases.BenchmarkCase`.

    Args:
        data_roots: Explicit locations for the (non-distributed)
            dissertation supporting information and licensed MM3 base
            force field; falls back to ``Q2MM_SUPPORTING_INFO`` /
            ``Q2MM_MM3_BASE`` when omitted.
        starting_point: ``"qfuerza"`` (default, Farrugia 2025) overwrites
            active OPT bond/angle values with multi-molecule QFUERZA
            estimates; ``"published"`` keeps the literature OPT values
            verbatim.
        qfuerza_replace_with: Replacement value (Hartree/Bohr²) for the
            most-negative TS-Hessian eigenvalue during QFUERZA
            projection (Limé & Norrby Method C; default ``1.0``).
        functional_form: Optional override (``"harmonic"`` or ``"mm3"``).
        objective_profile: Canonical publication objective-profile identifier.

    Returns:
        A fully-populated :class:`~q2mm.benchmarks.cases.BenchmarkCase`.

    """
    publication_metadata = publication_record(KEY, objective_profile, starting_point)
    resolved_roots = ExternalDataRoots() if data_roots is None else data_roots
    molecules = load_molecules(data_roots=resolved_roots)
    composed_ff, opt_only_ff = compose_opt_with_mm3_base(
        resolve_wahlers_opt_path(_CHAPTER, _OPT_FILENAME, resolved_roots),
        resolve_mm3_base_path(resolved_roots),
        metal=METAL,
    )
    return assemble_published_case(
        key=KEY,
        name=NAME,
        molecules=molecules,
        composed_ff=composed_ff,
        opt_only_ff=opt_only_ff,
        stationary_point=StationaryPointKind.TRANSITION_STATE,
        starting_point=starting_point,
        qfuerza_replace_with=qfuerza_replace_with,
        functional_form=functional_form,
        metadata=METADATA,
        publication_metadata=publication_metadata,
        metal=METAL,
        default_forms=DEFAULT_FORMS,
        description=DESCRIPTION,
    )