1414* adapt = style name of this fix command
1515* N = adapt simulation settings every this many timesteps
1616* one or more attribute/arg pairs may be appended
17- * attribute = *pair * or *bond * or *angle * or *improper * or *kspace * or *atom *
17+ * attribute = *pair * or *bond * or *angle * or *dihedral * or * improper * or *kspace * or *atom *
1818
1919 .. parsed-literal ::
2020
@@ -33,6 +33,11 @@ Syntax
3333 aparam = parameter to adapt over time
3434 I = type angle to set parameter for (integer or type label)
3535 v_name = variable with name that calculates value of aparam
36+ *dihedral * args = dstyle dparam I v_name
37+ dstyle = dihedral style name (e.g., quadratic)
38+ dparam = parameter to adapt over time
39+ I = type dihedral to set parameter for (integer or type label)
40+ v_name = variable with name that calculates value of iparam
3641 *improper * args = istyle iparam I v_name
3742 istyle = improper style name (e.g., cvff)
3843 iparam = parameter to adapt over time
@@ -433,6 +438,48 @@ this fix uses to reset theta0 needs to generate values in radians.
433438
434439----------
435440
441+ .. versionadded :: TBD
442+
443+ The *dihedral * keyword uses the specified variable to change the value of
444+ a dihedral coefficient over time, very similar to how the *angle * keyword
445+ operates. The only difference is that now a dihedral coefficient for a
446+ given dihedral type is adapted.
447+
448+ A wild-card asterisk can be used in place of or in conjunction with the
449+ dihedral type argument to set the coefficients for multiple dihedral types.
450+ This takes the form "\* " or "\* n" or "m\* " or "m\* n". If :math: `N` is
451+ the number of dihedral types, then an asterisk with no numeric values means
452+ all types from 1 to :math: `N`. A leading asterisk means all types from
453+ 1 to n (inclusive). A trailing asterisk means all types from m to
454+ :math: `N` (inclusive). A middle asterisk means all types from m to n
455+ (inclusive).
456+
457+ If :doc: `dihedral_style hybrid <dihedral_hybrid >` is used, *dstyle * should be a
458+ sub-style name. The dihedral styles that currently work with fix adapt are:
459+
460+ +------------------------------------------------------------------------+-------------------------+----------------+
461+ | :doc: `charmm <dihedral_charmm >` | k,n,d | type dihedrals |
462+ +------------------------------------------------------------------------+-------------------------+----------------+
463+ | :doc: `charmmfsw <dihedral_charmm >` | k,n,d | type dihedrals |
464+ +------------------------------------------------------------------------+-------------------------+----------------+
465+ | :doc: `class2 <dihedral_class2 >` | k1,k2,k3,phi1,phi2,phi3 | type dihedrals |
466+ +------------------------------------------------------------------------+-------------------------+----------------+
467+ | :doc: `cosine/squared/restricted <dihedral_cosine_squared_restricted >` | k,phi0 | type dihedrals |
468+ +------------------------------------------------------------------------+-------------------------+----------------+
469+ | :doc: `helix <dihedral_helix >` | a,b,c | type dihedrals |
470+ +------------------------------------------------------------------------+-------------------------+----------------+
471+ | :doc: `multi/harmonic <dihedral_multi_harmonic >` | a1,a2,a3,a4,a5 | type dihedrals |
472+ +------------------------------------------------------------------------+-------------------------+----------------+
473+ | :doc: `opls <dihedral_opls >` | k1,k2,k3,k4 | type dihedrals |
474+ +------------------------------------------------------------------------+-------------------------+----------------+
475+ | :doc: `quadratic <dihedral_quadratic >` | k,phi0 | type dihedrals |
476+ +------------------------------------------------------------------------+-------------------------+----------------+
477+
478+ Note that internally, phi0 is stored in radians, so the variable
479+ this fix use to reset phi0 needs to generate values in radians.
480+
481+ ----------
482+
436483.. versionadded :: 2Apr2025
437484
438485The *improper * keyword uses the specified variable to change the value of
0 commit comments