Cutoff Base Class
The user-facing Cutoff Functions chapter documents the concrete cutoff
classes (Cut_Cos, Cut_Poly, Cut_Tanh, …). The base class
below is the API hook for adding new cutoff functions.
-
class Cut_Base
Base class to be inherited by all cutoffs
Subclassed by tadah::models::Cut_Cos, tadah::models::Cut_CosS, tadah::models::Cut_Dummy, tadah::models::Cut_PT, tadah::models::Cut_Poly, tadah::models::Cut_PolyS, tadah::models::Cut_SinInv, tadah::models::Cut_Tanh
Public Functions
-
inline virtual double calc_drcut(double)
Closed-form derivative of f_c(r) with respect to r_cut.
Used by HPO analytical / hybrid gradients to chain RCUT2B / RCUT_MB through descriptors that consume the cutoff. Default is 0 (Cut_Dummy is piecewise-constant in rcut almost everywhere). Smooth cutoffs override.
-
inline virtual double calc_prime_drcut(double)
Closed-form mixed derivative d(df_c/dr)/d r_cut, at fixed r.
Required by force-row chain rule in HPO analytical / hybrid gradients: d2_base::calc_dXijdri (the radial force-descriptor coefficient) is a product G * f_c’(r) + … so chaining RCUT through the force chain needs d(f_c’(r))/d rcut on top of df_c/d rcut already exposed via calc_drcut. Default is 0 (Cut_Dummy’s calc_prime is identically zero). Smooth cutoffs override.
-
inline virtual double calc_double_prime(double)
Closed-form second derivative d^2 f_c / dr^2 at fixed rcut.
Required by F_mEnv::calc_d2F to close the radial-θ force chain for DM_mEAD<F_mEnv> configs: F’’(rho) = fcut’’(rho)*B(rho)
2 fcut’(rho)*B’(rho) + fcut(rho)*B’’(rho), and B’’(rho) is already available; only fcut’’(rho) was missing. Default is 0 (Cut_Dummy’s f is piecewise-constant; its second derivative is identically zero away from r=rcut). Smooth cutoffs override.
-
inline virtual Kind kind() const
Behavioural kind; drives test dispatch without string comparisons.
-
inline virtual double val_at_rcut() const
Expected value of calc() at exactly r == rcut.
-
inline virtual double calc_drcut(double)