Skip to content

Latest commit

 

History

History
executable file
·
393 lines (275 loc) · 14.1 KB

5_bde.rst

File metadata and controls

executable file
·
393 lines (275 loc) · 14.1 KB

Bond Dissociation Energy

Calculate the bond dissociation energy (BDE) of ligands attached to the surface of the core. The calculation consists of five distinct steps:

1. Dissociate all combinations of n ligands (Y, see optional.qd.dissociate.lig_count) a nd an atom from the core (X, see optional.qd.dissociate.core_atom) within a radius r from aforementioned core atom (see optional.qd.dissociate.lig_core_dist and optional.qd.dissociate.core_core_dist). The dissociated compound has the general structure of XYn.

2. Optimize the geometry of XYn at the first level of theory (1). Default: ADF MOPAC [1, 2, 3].

3. Calculate the "electronic" contribution to the BDE (ΔE) at the first level of theory (1): ADF MOPAC [1, 2, 3]. This step consists of single point calculations of the complete quantum dot, XYn and all XYn-dissociated quantum dots.

4. Calculate the thermalchemical contribution to the BDE (ΔΔG) at the second level of theory (2). Default: ADF UFF [4, 5]. This step consists of geometry optimizations and frequency analyses of the same compounds used for step 3.

  1. ΔGtot = ΔE1 + ΔΔG2 = ΔE1 + (ΔG2 − ΔE2).

Default Settings

optional:
    qd:
        dissociate:
            core_atom: Cd
            core_index: null
            lig_count: 2
            core_core_dist: 5.0  # Ångström
            lig_core_dist: 5.0  # Ångström
            lig_core_pairs: 1
            topology: {}

            keep_files: True
            job1: AMSJob
            s1: True
            job2: AMSJob
            s2: True

Arguments

optional.qd.dissociate

optional:
    qd:
        dissociate:
            core_atom: Cd
            core_index: null
            lig_count: 2
            lig_pairs: 1
            core_core_dist: null  # Ångström
            lig_core_dist: 5.0  # Ångström
            topology:
                7: vertice
                8: edge
                10: face

optional.qd.dissociate.core_atom

Parameter
  • Type - str or int

The atomic number or atomic symbol of the core atoms (X) which are to be dissociated. The core atoms are dissociated in combination with n ligands (Y, see dissociate.lig_count<optional.qd.dissociate.lig_count>). Yields a compound with the general formula XYn.

Atomic indices can also be manually specified with dissociate.core_index<optional.qd.dissociate.core_index>

If one is interested in dissociating ligands in combination with a molecular species (e.g. X = NR4+) the atomic number (or symbol) can be substituted for a SMILES string represting a poly-atomic ion (e.g. tetramethyl ammonium: C[N+](C)(C)C).

If a SMILES string is provided it must satisfy the following 2 requirements:

  1. The SMILES string must contain a single charged atom; unpredictable behaviour can occur otherwise.
  2. The provided structure (including its bonds) must be present in the core.

Warning

This argument has no value be default and thus must be provided by the user.

optional.qd.dissociate.lig_count

Parameter
  • Type - int

The number of ligands, n, which is to be dissociated in combination with a single core atom (X, see dissociate.core_atom<optional.qd.dissociate.core_atom>).

Yields a compound with the general formula XYn.

Warning

This argument has no value be default and thus must be provided by the user.

optional.qd.dissociate.core_index

Parameter
  • Type - int or list [int], optional
  • Default valueNone

Alternative to dissociate.lig_core_dist<optional.qd.dissociate.lig_core_dist> and dissociate.core_atom<optional.qd.dissociate.core_atom>. Manually specify the indices of all to-be dissociated atoms in the core. Core atoms will be dissociated in combination with the n closest ligands.

Note

Atom numbering follows the PLAMS [1, 2] convention of starting from 1 rather than 0.

Note

The yaml format uses null rather than None as in Python.

optional.qd.dissociate.core_core_dist

Parameter
  • Type - float or int, optional
  • Default valueNone

The maximum to be considered distance (Ångström) between atoms in dissociate.core_atom<optional.qd.dissociate.core_atom>. Used for determining the topology of the core atom

(see dissociate.topology<optional.qd.dissociate.topology>) and whether it is exposed to the surface of the core or not. It is recommended to use a radius which encapsulates a single (complete) shell of neighbours.

If not specified (or equal to 0.0) CAT will attempt to guess a suitable value based on the cores' radial distribution function.

optional.qd.dissociate.lig_core_dist

Parameter
  • Type - float or int, optional
  • Default valueNone

Dissociate all combinations of a single core atom (see dissociate.core_atom<optional.qd.dissociate.core_atom>) and the n closests ligands within a user-specified radius.

Serves as an alternative to dissociate.lig_core_dist<optional.qd.dissociate.lig_pairs>, which removes a set number of combinations rather than everything withing a certain radius.

The number of ligands dissociated in combination with a single core atom is controlled by dissociate.lig_count<optional.qd.dissociate.lig_count>.

image

optional.qd.dissociate.lig_pairs

Parameter
  • Type - int, optional
  • Default valueNone

Dissociate a user-specified number of combinations of a single core atom (see dissociate.core_atom<optional.qd.dissociate.core_atom>) and the n closests ligands.

Serves as an alternative to dissociate.lig_core_dist<optional.qd.dissociate.lig_core_dist>, removing a preset number of (closest) pairs rather than all combinations within a certain radius.

The number of ligands dissociated in combination with a single core atom is controlled by dissociate.lig_count<optional.qd.dissociate.lig_count>.

optional.qd.dissociate.topology

Parameter
  • Type - dict
  • Default value{}

A dictionary which translates the number neighbouring core atoms (see dissociate.core_atom<optional.qd.dissociate.core_atom> and dissociate.core_core_dist<optional.qd.dissociate.core_core_dist>) into a topology. Keys represent the number of neighbours, values represent the matching topology.

Example

Given a dissociate.core_core_dist<optional.qd.dissociate.core_core_dist> of 5.0 Ångström, the following options can be interpreted as following:

optional:
    qd:
        dissociate:
            7: vertice
            8: edge
            10: face

Core atoms with 7 other neighbouring core atoms (within a radius of 5.0 Ångström) are marked as "vertice", the ones with 8 neighbours are marked as "edge" and the ones with 10 neighbours as "face".

optional.qd.dissociate.qd_opt

Parameter
  • Type - bool
  • Default valueFalse

Whether to optimize the quantum dot and XYn -dissociated quantum dot.

Arguments - Job Customization

optional.qd.dissociate

optional:
    qd:
        dissociate:
            keep_files: True
            job1: AMSJob
            s1: True
            job2: AMSJob
            s2: True

optional.qd.dissociate.keep_files

Parameter
  • Type - bool
  • Default valueTrue

Whether to keep or delete all BDE files after all calculations are finished.

optional.qd.dissociate.xyn_pre_opt

Parameter
  • Type - bool
  • Default valueTrue

Pre-optimize the XYn fragment with UFF.

Note

Requires AMS.

optional.qd.dissociate.job1

Parameter
  • Type - type, str or bool
  • Default valueAMSJob<scm.plams.interfaces.adfsuite.ams.AMSJob>

A type object of a Job<scm.plams.core.basejob.Job> subclass, used for calculating the "electronic" component (ΔE1) of the bond dissociation energy. Involves single point calculations.

Alternatively, an alias can be provided for a specific job type (see Type Aliases).

Setting it to True will default to AMSJob<scm.plams.interfaces.adfsuite.ams.AMSJob>, while False is equivalent to optional.qd.dissociate = False.

optional.qd.dissociate.s1

Parameter
  • Type - dict, str or bool
  • Default value – See below
s1:
    input:
        mopac:
            model: PM7
        ams:
            system:
                charge: 0

The job settings used for calculating the "electronic" component (ΔE1) of the bond dissociation energy.

Alternatively, a path can be provided to .json or .yaml file containing the job settings.

Setting it to True will default to the ["MOPAC"] block in CAT/data/templates/qd.yaml, while False is equivalent to optional.qd.dissociate = False.

optional.qd.dissociate.job2

Parameter
  • Type - type, str or bool
  • Default valueAMSJob<scm.plams.interfaces.adfsuite.ams.AMSJob>

A type object of a Job<scm.plams.core.basejob.Job> subclass, used for calculating the thermal component (ΔΔG2) of the bond dissociation energy. Involves a geometry reoptimizations and frequency analyses.

Alternatively, an alias can be provided for a specific job type (see Type Aliases).

Setting it to True will default to AMSJob<scm.plams.interfaces.adfsuite.ams.AMSJob>, while False will skip the thermochemical analysis completely.

optional.qd.dissociate.s2

Parameter
  • Type - dict, str or bool
  • Default value – See below
s2:
    input:
        uff:
            library: uff
        ams:
            system:
                charge: 0
                bondorders:
                    _1: null

The job settings used for calculating the thermal component (ΔΔG2) of the bond dissociation energy.

Alternatively, a path can be provided to .json or .yaml file containing the job settings.

Setting it to True will default to the the MOPAC block in CAT/data/templates/qd.yaml, while False will skip the thermochemical analysis completely.

Index

nanoCAT.bde.dissociate_xyn

dissociate_ligand MolDissociater MolDissociater.remove_bulk MolDissociater.assign_topology MolDissociater.get_pairs_closest MolDissociater.get_pairs_distance MolDissociater.combinations MolDissociater.__call__

API

dissociate_ligand

MolDissociater

MolDissociater.remove_bulk

MolDissociater.assign_topology

MolDissociater.get_pairs_closest

MolDissociater.get_pairs_distance

MolDissociater.combinations

MolDissociater.__call__