pub enum RunMode {
Normal,
Read,
NoRead,
Stable,
InterRead,
CoordinateDrive,
PathOptimization,
FixDE,
}Expand description
Execution mode for MECP calculations.
Different run modes are optimized for different scenarios, particularly around SCF convergence and wavefunction stability. The choice depends on:
- Whether you’re doing a fresh calculation or restarting
- If you have convergence problems
- If you’re studying open-shell systems
- If you’re doing reaction path following
Variants§
Normal
Standard MECP optimization with two-phase workflow
Phase 1: Pre-point calculations WITHOUT checkpoint reading to generate initial wavefunctions Phase 2: Main optimization loop WITH checkpoint reading for faster SCF convergence
Program-specific behavior:
-
Gaussian: Generates .chk files in Phase 1, uses
guess=readin Phase 2 -
ORCA: Generates .gbw files in Phase 1, uses
!moreadin Phase 2 -
XTB: Runs pre-point for initialization, no checkpoint files needed
-
BAGEL: Validates model file in Phase 1, uses same model in Phase 2
-
Custom: Follows Gaussian-like behavior (depends on interface configuration)
-
Recommended for most calculations
-
Balanced between speed and robustness
Read
Restart from existing checkpoint file
- Skips pre-point calculations
- Use for restarting interrupted calculations
- Faster start but requires valid checkpoint
NoRead
Fresh SCF at each step (no checkpoint reading)
- Slower but more robust
- Use for difficult SCF convergence
- Helpful when wavefunctions oscillate
Stable
Pre-point calculations for wavefunction stability
- Runs stability checks before optimization
- Use for unstable wavefunctions
- Essential for problematic systems
InterRead
Interleaved reading for open-shell singlets
- Runs state B first, copies to A
- Adds
guess=(read,mix)for state A - Essential for open-shell singlet calculations
CoordinateDrive
Systematically drive a reaction coordinate
- Varies a geometric parameter stepwise
- Generates energy profile along reaction path
- Use with drive_type, drive_atoms, drive_start, drive_end
PathOptimization
Optimize entire reaction path using NEB
- Creates initial path via coordinate driving
- Optimizes using Nudged Elastic Band method
- Identifies transition states and intermediates
FixDE
Constrain energy difference to target value
- Sets target ΔE using fix_de parameter
- Study avoided crossings
- Generate diabatic PES
Trait Implementations§
Source§impl<'de> Deserialize<'de> for RunMode
impl<'de> Deserialize<'de> for RunMode
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl Copy for RunMode
impl Eq for RunMode
impl StructuralPartialEq for RunMode
Auto Trait Implementations§
impl Freeze for RunMode
impl RefUnwindSafe for RunMode
impl Send for RunMode
impl Sync for RunMode
impl Unpin for RunMode
impl UnsafeUnpin for RunMode
impl UnwindSafe for RunMode
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read more§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.