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, seeoptional.qd.dissociate.core_atom
) within a radius r from aforementioned core atom (seeoptional.qd.dissociate.lig_core_dist
andoptional.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.
- ΔGtot = ΔE1 + ΔΔG2 = ΔE1 + (ΔG2 − ΔE2).
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
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
orint
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:
- The SMILES string must contain a single charged atom; unpredictable behaviour can occur otherwise.
- 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
orlist
[int
], optional- Default value –
None
Alternative to
dissociate.lig_core_dist<optional.qd.dissociate.lig_core_dist>
anddissociate.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
The yaml format uses
null
rather thanNone
as in Python.optional.qd.dissociate.core_core_dist
- Parameter
- Type -
float
orint
, optional- Default value –
None
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
orint
, optional- Default value –
None
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>
.
optional.qd.dissociate.lig_pairs
- Parameter
- Type -
int
, optional- Default value –
None
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>
anddissociate.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>
of5.0
Ångström, the following options can be interpreted as following:optional: qd: dissociate: 7: vertice 8: edge 10: faceCore atoms with
7
other neighbouring core atoms (within a radius of5.0
Ångström) are marked as"vertice"
, the ones with8
neighbours are marked as"edge"
and the ones with10
neighbours as"face"
.optional.qd.dissociate.qd_opt
- Parameter
- Type -
bool
- Default value –
False
Whether to optimize the quantum dot and XYn -dissociated quantum dot.
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 value –
True
Whether to keep or delete all BDE files after all calculations are finished.
optional.qd.dissociate.xyn_pre_opt
- Parameter
- Type -
bool
- Default value –
True
Pre-optimize the XYn fragment with UFF.
Note
Requires AMS.
optional.qd.dissociate.job1
- Parameter
- Type -
type
,str
orbool
- Default value –
AMSJob<scm.plams.interfaces.adfsuite.ams.AMSJob>
A
type
object of aJob<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 toAMSJob<scm.plams.interfaces.adfsuite.ams.AMSJob>
, whileFalse
is equivalent tooptional.qd.dissociate
=False
.optional.qd.dissociate.s1
- Parameter
- Type -
dict
,str
orbool
- Default value – See below
s1: input: mopac: model: PM7 ams: system: charge: 0The 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, whileFalse
is equivalent tooptional.qd.dissociate
=False
.optional.qd.dissociate.job2
- Parameter
- Type -
type
,str
orbool
- Default value –
AMSJob<scm.plams.interfaces.adfsuite.ams.AMSJob>
A
type
object of aJob<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 toAMSJob<scm.plams.interfaces.adfsuite.ams.AMSJob>
, whileFalse
will skip the thermochemical analysis completely.optional.qd.dissociate.s2
- Parameter
- Type -
dict
,str
orbool
- Default value – See below
s2: input: uff: library: uff ams: system: charge: 0 bondorders: _1: nullThe 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, whileFalse
will skip the thermochemical analysis completely.
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__
dissociate_ligand
MolDissociater
MolDissociater.remove_bulk
MolDissociater.assign_topology
MolDissociater.get_pairs_closest
MolDissociater.get_pairs_distance
MolDissociater.combinations
MolDissociater.__call__