castep_param_io/param/geom_opt/
geom_frequency_est.rs

1use castep_param_derive::KeywordDisplayStruct;
2use derive_builder::Builder;
3use serde::{Deserialize, Serialize};
4
5use crate::param::FrequencyUnit;
6
7#[derive(
8    Debug, Clone, Copy, PartialEq, PartialOrd, Serialize, Deserialize, KeywordDisplayStruct, Builder,
9)]
10#[builder(setter(into, strip_option), default)]
11#[keyword_display(field = "GEOM_FREQUENCY_EST", display_format = "{:20.15} {}", from=f64, default_value=50.0)]
12/// This keyword provides an estimate of the average phonon frequency at the gamma
13/// point. It is used to initialize the Hessian for BFGS geometry optimization with
14/// ionic relaxation. One expects to achieve faster convergence of the geometry
15/// optimization if the value is realistic. The idea is that this single number
16/// represents the whole of the Hessian in a compact form.
17/// The value of the estimated frequency is provided in the CASTEP output after
18/// the geometry optimization run, and this value can be used as an input parameter
19/// for a new calculation on a similar system. An example would be a study of
20/// different configurations of a self-interstitial defect in silicon.
21/// # Note
22/// The value of the estimated frequency as returned by CASTEP should not be
23/// interpreted as an actual frequency of any real vibrational mode.
24/// # Default
25/// 50 THz
26/// # Example
27/// `GEOM_FREQUENCY_EST : 17.54 THz`
28pub struct GeomFrequencyEst {
29    pub est: f64,
30    #[keyword_display(is_option = true)]
31    pub unit: Option<FrequencyUnit>,
32}