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.