Calculators
NQCDynamics.Calculators
— ModuleCalculators
This module exists to bridge the gap between the Models
and the Dynamics
.
Here, we provide functions and types for evaluating and storing quantities obtained from the Models
. In addition any further manipulation of those quantities, such as computing eigenvalues, is included here.
This module is largely needed to facilitate integration of both ring polymer and classical dynamics to allow using the same models and functions for both. Specific ring polymer types are provided that have the extra fields and methods needed to evaluate the quantities for each bead.
NQCDynamics.Calculators.quantities
— ConstantEach of the quantities specified here has functions: get_quantity(calculator, r)
evaluate_quantity!(calculator, r)!
The user should access only the former. This will ensure quantities are correctly evaluated and cached accordingly.
The latter is called by the former and is where the details required to calculate the quantity are found.
NQCDynamics.Calculators.AbstractCalculator
— TypeAbstractCalculator{M<:Model}
Top-level type for all calculators.
Each concrete calculator contains the Model
and the fields to store the quantities obtained from the model.
NQCDynamics.Calculators.evaluate_nonadiabatic_coupling
— MethodReferences
- HammesSchifferTullyJChemPhys10146571994 Eq. (32)
- SubotnikBellonziAnnuRevPhyschem673872016, section 2.3
NQCDynamics.Calculators.update_electronics!
— MethodEvaluates all electronic properties for the current position r
.
Properties evaluated:
- Diabatic potential
- Diabatic derivative
- Eigenvalues and eigenvectors
- Adiabatic derivative
- Nonadiabatic coupling
This should no longer be used, instead access the quantities directly with get_quantity(calc, r)
.