Analysis

NQCDynamics.Analysis.Diatomic.com_velocity_conditionMethod
com_velocity_condition(x::AbstractArray, indices::Vector{Int}, simulation::AbstractSimulation; surface_normal::AbstractVector=[0,0,1])

Evaluates true if the centre of mass velocity vector of the diatomic molecule points to the surface.
source
NQCDynamics.Analysis.Diatomic.get_desorption_frameMethod
get_desorption_frame(trajectory::Vector, diatomic_indices::Vector{Int}, simulation::AbstractSimulation;surface_normal::Vector=[0,0,1], surface_distance_threshold=5.0*u"Å")

Determines the index in a trajectory where surface desorption begins.

This is evaluated using two conditions:

  1. In the trajectory, the diatomic must be surface_distance_threshold or further away from the highest other atom. (In surface_normal direction).

  2. Desorption begins at the turning point of the centre of mass velocity component along surface_normal, indicating overall movement away from the surface.

source
NQCDynamics.Analysis.Diatomic.surface_distance_conditionMethod
surface_distance_condition(x::AbstractArray, indices::Vector{Int}, simulation::AbstractSimulation; surface_distance_threshold=5.0*u"Å")

Checks that the diatomic molecule is at least `surface_distance_threshold` away from the highest substrate atom in the simulation.
source
NQCDynamics.Analysis.Diatomic.transform_UMethod
transform_U(config::Matrix, index1::Int, index2::Int, sim::Simulation)

Builds diatomic Cartesian to internal coordinate transformation matrix as described in the SI of 10.1021/jacsau.0c00066

source