diff --git a/lammps-stable_29Aug2024/colvars-refman-lammps.css b/lammps-stable_29Aug2024/colvars-refman-lammps.css new file mode 100644 index 00000000..9bf71f91 --- /dev/null +++ b/lammps-stable_29Aug2024/colvars-refman-lammps.css @@ -0,0 +1,721 @@ + +/* start css.sty */ +.phvr8t-x-x-109{ font-family: sans-serif;} +.phvr8t-x-x-109{ font-family: sans-serif;} +.zptmcm7t-x-x-109{ font-weight: bold; font-style: italic;} +.zptmcm7t-x-x-109{ font-weight: bold; font-style: italic;} +.zptmcm7t-x-x-109{ font-weight: bold; font-style: italic;} +.zptmcm7t-x-x-80{font-size:72%; font-weight: bold; font-style: italic;} +.zptmcm7t-x-x-80{ font-weight: bold; font-style: italic;} +.zptmcm7t-x-x-80{ font-weight: bold; font-style: italic;} +.zptmcm7t-x-x-60{font-size:54%; font-weight: bold; font-style: italic;} +.zptmcm7t-x-x-60{ font-weight: bold; font-style: italic;} +.zptmcm7t-x-x-60{ font-weight: bold; font-style: italic;} +.zptmcm7m-x-x-109{ font-weight: bold; font-style: italic;} +.zptmcm7m-x-x-109{ font-weight: bold; font-style: italic;} +.zptmcm7m-x-x-109{ font-weight: bold; font-style: italic;} +.zptmcm7m-x-x-80{font-size:72%; font-weight: bold; font-style: italic;} +.zptmcm7m-x-x-80{ font-weight: bold; font-style: italic;} +.zptmcm7m-x-x-80{ font-weight: bold; font-style: italic;} +.zptmcm7m-x-x-60{font-size:54%; font-weight: bold; font-style: italic;} +.zptmcm7m-x-x-60{ font-weight: bold; font-style: italic;} +.zptmcm7m-x-x-60{ font-weight: bold; font-style: italic;} +.zptmcm7y-x-x-109{ font-weight: bold; font-style: italic;} +.zptmcm7y-x-x-109{ font-weight: bold; font-style: italic;} +.zptmcm7y-x-x-109{ font-weight: bold; font-style: italic;} +.zptmcm7y-x-x-80{font-size:72%; font-weight: bold; font-style: italic;} +.zptmcm7y-x-x-80{ font-weight: bold; font-style: italic;} +.zptmcm7y-x-x-80{ font-weight: bold; font-style: italic;} +.zptmcm7y-x-x-60{font-size:54%; font-weight: bold; font-style: italic;} +.zptmcm7y-x-x-60{ font-weight: bold; font-style: italic;} +.zptmcm7y-x-x-60{ font-weight: bold; font-style: italic;} +.zptmcm7v-x-x-109{ font-weight: bold; font-style: italic;} +.zptmcm7v-x-x-109{ font-weight: bold; font-style: italic;} +.zptmcm7v-x-x-109{ font-weight: bold; font-style: italic;} +.zptmcm7v-x-x-80{font-size:72%; font-weight: bold; font-style: italic;} +.zptmcm7v-x-x-80{ font-weight: bold; font-style: italic;} +.zptmcm7v-x-x-80{ font-weight: bold; font-style: italic;} +.zptmcm7v-x-x-60{font-size:54%; font-weight: bold; font-style: italic;} +.zptmcm7v-x-x-60{ font-weight: bold; font-style: italic;} +.zptmcm7v-x-x-60{ font-weight: bold; font-style: italic;} +.msam-10x-x-109{} +.msam-10x-x-80{font-size:72%;} +.msam-7x-x-85{font-size:54%;} +.msbm-10x-x-109{} +.msbm-10x-x-80{font-size:72%;} +.msbm-7x-x-85{font-size:54%;} +.ptmb7t-x-x-109{ font-weight: bold;} +.ptmb7t-x-x-109{ font-weight: bold;} +.ptmb7t-x-x-80{font-size:72%; font-weight: bold;} +.ptmb7t-x-x-80{ font-weight: bold;} +.phvb8t-x-x-109{font-family: sans-serif; font-weight: bold;} +.phvb8t-x-x-109{font-family: sans-serif; font-weight: bold;} +.phvb8t-x-x-248{font-size:225%;font-family: sans-serif; font-weight: bold;} +.phvb8t-x-x-248{font-family: sans-serif; font-weight: bold;} +.phvr8t-x-x-120{font-size:109%; font-family: sans-serif;} +.phvr8t-x-x-120{ font-family: sans-serif;} +.ectt-1095{ font-family: monospace,monospace;} +.ectt-1095{ font-family: monospace,monospace;} +.ectt-1095{ font-family: monospace,monospace;} +.phvro8t-x-x-109{ font-family: sans-serif; font-style: oblique;} +.ecit-1095{ font-style: italic; font-family: monospace,monospace;} +.ecit-1095{ font-style: italic; font-family: monospace,monospace;} +.ecit-1095{ font-style: italic; font-family: monospace,monospace;} +.cmtt-10x-x-109{font-family: monospace,monospace;} +.cmtt-10x-x-109{font-family: monospace,monospace;} +.cmtt-8{font-size:72%;font-family: monospace,monospace;} +.cmtt-8{font-family: monospace,monospace;} +.cmss-10x-x-109{ font-family: sans-serif;} +.ectt-1000{font-size:90%; font-family: monospace,monospace;} +.ectt-1000{ font-family: monospace,monospace;} +.ectt-1000{ font-family: monospace,monospace;} +p{margin-top:0;margin-bottom:0} +p.indent{text-indent:0;} +p + p{margin-top:1em;} +p + div, p + pre {margin-top:1em;} +div + p, pre + p {margin-top:1em;} +a { overflow-wrap: break-word; word-wrap: break-word; word-break: break-word; hyphens: auto; } +@media print {div.crosslinks {visibility:hidden;}} +a img { border-top: 0; border-left: 0; border-right: 0; } +center { margin-top:1em; margin-bottom:1em; } +td center { margin-top:0em; margin-bottom:0em; } +.Canvas { position:relative; } +math { text-indent: 0em; } +li p.indent { text-indent: 0em } +li p:first-child{ margin-top:0em; } +li p:last-child, li div:last-child { margin-bottom:0.5em; } +li p~ul:last-child, li p~ol:last-child{ margin-bottom:0.5em; } +.enumerate1 {list-style-type:decimal;} +.enumerate2 {list-style-type:lower-alpha;} +.enumerate3 {list-style-type:lower-roman;} +.enumerate4 {list-style-type:upper-alpha;} +div.newtheorem { margin-bottom: 2em; margin-top: 2em;} +.obeylines-h,.obeylines-v {white-space: nowrap; } +div.obeylines-v p { margin-top:0; margin-bottom:0; } +.overline{ text-decoration:overline; } +.overline img{ border-top: 1px solid black; } +td.displaylines {text-align:center; white-space:nowrap;} +.centerline {text-align:center;} +.rightline {text-align:right;} +pre.verbatim {font-family: monospace,monospace; text-align:left; clear:both; } +.fbox {padding-left:3.0pt; padding-right:3.0pt; text-indent:0pt; border:solid black 0.4pt; } +div.fbox {display:table} +div.center div.fbox {text-align:center; clear:both; padding-left:3.0pt; padding-right:3.0pt; text-indent:0pt; border:solid black 0.4pt; } +div.minipage{width:100%;} +div.center, div.center div.center {text-align: center; margin-left:1em; margin-right:1em;} +div.center div {text-align: left;} +div.flushright, div.flushright div.flushright {text-align: right;} +div.flushright div {text-align: left;} +div.flushleft {text-align: left;} +.underline{ text-decoration:underline; } +.underline img{ border-bottom: 1px solid black; margin-bottom:1pt; } +.framebox-c, .framebox-l, .framebox-r { padding-left:3.0pt; padding-right:3.0pt; text-indent:0pt; border:solid black 0.4pt; } +.framebox-c {text-align:center;} +.framebox-l {text-align:left;} +.framebox-r {text-align:right;} +span.thank-mark{ vertical-align: super } +span.footnote-mark sup.textsuperscript, span.footnote-mark a sup.textsuperscript{ font-size:80%; } +div.tabular, div.center div.tabular {text-align: center; margin-top:0.5em; margin-bottom:0.5em; } +table.tabular td p{margin-top:0em;} +table.tabular {margin-left: auto; margin-right: auto;} +td p:first-child{ margin-top:0em; } +td p:last-child{ margin-bottom:0em; } +div.td00{ margin-left:0pt; margin-right:0pt; } +div.td01{ margin-left:0pt; margin-right:5pt; } +div.td10{ margin-left:5pt; margin-right:0pt; } +div.td11{ margin-left:5pt; margin-right:5pt; } +table[rules] {border-left:solid black 0.4pt; border-right:solid black 0.4pt; } +td.td00{ padding-left:0pt; padding-right:0pt; } +td.td01{ padding-left:0pt; padding-right:5pt; } +td.td10{ padding-left:5pt; padding-right:0pt; } +td.td11{ padding-left:5pt; padding-right:5pt; } +table[rules] {border-left:solid black 0.4pt; border-right:solid black 0.4pt; } +.hline hr, .cline hr{ height : 0px; margin:0px; } +.hline td, .cline td{ padding: 0; } +.hline hr, .cline hr{border:none;border-top:1px solid black;} +.tabbing-right {text-align:right;} +div.float, div.figure {margin-left: auto; margin-right: auto;} +div.float img {text-align:center;} +div.figure img {text-align:center;} +.marginpar,.reversemarginpar {width:20%; float:right; text-align:left; margin-left:auto; margin-top:0.5em; font-size:85%; text-decoration:underline;} +.marginpar p,.reversemarginpar p{margin-top:0.4em; margin-bottom:0.4em;} +.reversemarginpar{float:left;} +.equation td{text-align:center; vertical-align:middle; } +td.eq-no{ width:5%; } +table.equation { width:100%; } +div.math-display, div.par-math-display{text-align:center;} +mtr.hline mtd{ border-bottom:black solid 1px; padding-top:2px; padding-bottom:0em; } +mtr.hline mtd mo{ display:none } +math .texttt { font-family: monospace; } +math .textit { font-style: italic; } +math .textsl { font-style: oblique; } +math .textsf { font-family: sans-serif; } +math .textbf { font-weight: bold; } +mo.MathClass-op + mi{margin-left:0.3em} +mi + mo.MathClass-op{margin-left:0.3em} + math mstyle[mathvariant="bold"] { font-weight: bold; font-style: normal; } + math mstyle[mathvariant="normal"] { font-weight: normal; font-style: normal; } +.partToc a, .partToc, .likepartToc a, .likepartToc {line-height: 200%; font-weight:bold; font-size:110%;} +.chapterToc a, .chapterToc, .likechapterToc a, .likechapterToc, .appendixToc a, .appendixToc {line-height: 200%; font-weight:bold;} +.index-item, .index-subitem, .index-subsubitem {display:block} +div.caption {text-indent:-2em; margin-left:3em; margin-right:1em; text-align:left;} +div.caption span.id{font-weight: bold; white-space: nowrap; } +h1.partHead{text-align: center} +p.bibitem { text-indent: -2em; margin-left: 2em; margin-top:0.6em; margin-bottom:0.6em; } +p.bibitem-p { text-indent: 0em; margin-left: 2em; margin-top:0.6em; margin-bottom:0.6em; } +.paragraphHead, .likeparagraphHead { margin-top:2em; font-weight: bold;} +.subparagraphHead, .likesubparagraphHead { font-weight: bold;} +.verse{white-space:nowrap; margin-left:2em} +div.maketitle {text-align:center;} +h2.titleHead{text-align:center;} +div.maketitle{ margin-bottom: 2em; } +div.author, div.date {text-align:center;} +div.thanks{text-align:left; margin-left:10%; font-size:85%; font-style:italic; } +div.author{white-space: nowrap;} +div.abstract p {margin-left:5%; margin-right:5%;} +div.abstract {width:100%;} +.abstracttitle{text-align:center;margin-bottom:1em;} +.equation-star td{text-align:center; vertical-align:middle; } +table.equation-star { width:100%; } +mtd.align-odd{margin-left:2em; text-align:right;} +mtd.align-even{margin-right:2em; text-align:left;} +.boxed{border: 1px solid black; padding-left:2px; padding-right:2px;} +.rotatebox{display: inline-block;} +.mdframed{margin-top:1em;margin-bottom:1em;} +div.tabular, div.center div.tabular {text-align: center; margin-top:0.5em; margin-bottom:0.5em; } +table.tabular td p{margin-top:0em;} +table.tabular {margin-left: auto; margin-right: auto;} +td p:first-child{ margin-top:0em; } +td p:last-child{ margin-bottom:0em; } +div.td00{ margin-left:0pt; margin-right:0pt; } +div.td01{ margin-left:0pt; margin-right:5pt; } +div.td10{ margin-left:5pt; margin-right:0pt; } +div.td11{ margin-left:5pt; margin-right:5pt; } +table[rules] {border-left:solid black 0.4pt; border-right:solid black 0.4pt; } +td.td00{ padding-left:0pt; padding-right:0pt; } +td.td01{ padding-left:0pt; padding-right:5pt; } +td.td10{ padding-left:5pt; padding-right:0pt; } +td.td11{ padding-left:5pt; padding-right:5pt; } +table[rules] {border-left:solid black 0.4pt; border-right:solid black 0.4pt; } +.hline hr, .cline hr{ height : 0px; margin:0px; } +.hline td, .cline td{ padding: 0; } +.hline hr, .cline hr{border:none;border-top:1px solid black;} + body { font-family: sans-serif; } li { margin-bottom:1em; } .heading { background-color: rgb(215, 215, 215); } @media only screen and (max-width: 959px) { .inner { max-width: 100%; margin: 0 auto; } .diagram { width: 100%; } .cover { width: 100%; } } @media (min-width: 960px) { .inner { max-width: 960px; margin: 0 auto; } .diagram { width: 720px; } .cover { width: 512px; } } +span#colorbox1{background-color:rgb(214,214,214);} +#mdframed-1{border:2.0pt solid #800080; background-color: #FFF2FF; color:#000000;} +#mdframed-2{border:2.0pt solid #800080; background-color: #FFF2FF; color:#000000;} +span#colorbox2{background-color:#F2CCF2;} +#mdframed-3{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +span#colorbox3{background-color:#F2CCF2;} +span#colorbox4{background-color:#F2CCF2;} +span#colorbox5{background-color:#F2CCF2;} +span#colorbox6{background-color:#F2CCF2;} +span#colorbox7{background-color:#F2CCF2;} +#mdframed-4{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-5{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-6{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-7{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-8{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-9{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-10{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-11{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-12{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-13{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-14{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-15{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-16{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-17{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-18{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-19{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-20{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-21{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-22{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-23{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-24{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-25{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-26{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-27{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-28{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-29{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-30{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-31{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-32{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +span#colorbox8{background-color:#F2CCF2;} +span#colorbox9{background-color:#F2CCF2;} +span#colorbox10{background-color:#F2CCF2;} +span#colorbox11{background-color:#F2CCF2;} +#mdframed-33{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-34{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-35{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-36{border:2.0pt solid #0D3300; background-color: #F2FFCC; color:#000000;} +#mdframed-37{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-38{border:2.0pt solid #0D3300; background-color: #F2FFCC; color:#000000;} +#mdframed-39{border:2.0pt solid #0D3300; background-color: #F2FFCC; color:#000000;} +#mdframed-40{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-41{border:2.0pt solid #800080; background-color: #FFF2FF; color:#000000;} +span#colorbox12{background-color:#F2CCF2;} +span#colorbox13{background-color:#F2CCF2;} +span#colorbox14{background-color:#F2CCF2;} +span#colorbox15{background-color:#F2CCF2;} +span#colorbox16{background-color:#F2CCF2;} +span#colorbox17{background-color:#F2CCF2;} +span#colorbox18{background-color:#F2CCF2;} +span#colorbox19{background-color:#F2CCF2;} +span#colorbox20{background-color:#F2CCF2;} +span#colorbox21{background-color:#F2CCF2;} +span#colorbox22{background-color:#F2CCF2;} +span#colorbox23{background-color:#F2CCF2;} +span#colorbox24{background-color:#F2CCF2;} +span#colorbox25{background-color:#F2CCF2;} +span#colorbox26{background-color:#F2CCF2;} +span#colorbox27{background-color:#F2CCF2;} +span#colorbox28{background-color:#F2CCF2;} +span#colorbox29{background-color:#F2CCF2;} +span#colorbox30{background-color:#F2CCF2;} +span#colorbox31{background-color:#F2CCF2;} +span#colorbox32{background-color:#F2CCF2;} +span#colorbox33{background-color:#F2CCF2;} +span#colorbox34{background-color:#F2CCF2;} +span#colorbox35{background-color:#F2CCF2;} +span#colorbox36{background-color:#F2CCF2;} +span#colorbox37{background-color:#F2CCF2;} +span#colorbox38{background-color:#F2CCF2;} +span#colorbox39{background-color:#F2CCF2;} +span#colorbox40{background-color:#F2CCF2;} +span#colorbox41{background-color:#F2CCF2;} +span#colorbox42{background-color:#F2CCF2;} +span#colorbox43{background-color:#F2CCF2;} +span#colorbox44{background-color:#F2CCF2;} +span#colorbox45{background-color:#F2CCF2;} +span#colorbox46{background-color:#F2CCF2;} +span#colorbox47{background-color:#F2CCF2;} +span#colorbox48{background-color:#F2CCF2;} +span#colorbox49{background-color:#F2CCF2;} +span#colorbox50{background-color:#F2CCF2;} +span#colorbox51{background-color:#F2CCF2;} +span#colorbox52{background-color:#F2CCF2;} +span#colorbox53{background-color:#F2CCF2;} +span#colorbox54{background-color:#F2CCF2;} +span#colorbox55{background-color:#F2CCF2;} +span#colorbox56{background-color:#F2CCF2;} +span#colorbox57{background-color:#F2CCF2;} +span#colorbox58{background-color:#F2CCF2;} +span#colorbox59{background-color:#F2CCF2;} +span#colorbox60{background-color:#F2CCF2;} +span#colorbox61{background-color:#F2CCF2;} +span#colorbox62{background-color:#F2CCF2;} +span#colorbox63{background-color:#F2CCF2;} +span#colorbox64{background-color:#F2CCF2;} +span#colorbox65{background-color:#F2CCF2;} +span#colorbox66{background-color:#F2CCF2;} +span#colorbox67{background-color:#F2CCF2;} +span#colorbox68{background-color:#F2CCF2;} +span#colorbox69{background-color:#F2CCF2;} +span#colorbox70{background-color:#F2CCF2;} +span#colorbox71{background-color:#F2CCF2;} +span#colorbox72{background-color:#F2CCF2;} +span#colorbox73{background-color:#F2CCF2;} +span#colorbox74{background-color:#F2CCF2;} +span#colorbox75{background-color:#F2CCF2;} +span#colorbox76{background-color:#F2CCF2;} +span#colorbox77{background-color:#F2CCF2;} +span#colorbox78{background-color:#F2CCF2;} +span#colorbox79{background-color:#F2CCF2;} +span#colorbox80{background-color:#F2CCF2;} +span#colorbox81{background-color:#F2CCF2;} +span#colorbox82{background-color:#F2CCF2;} +span#colorbox83{background-color:#F2CCF2;} +span#colorbox84{background-color:#F2CCF2;} +span#colorbox85{background-color:#F2CCF2;} +span#colorbox86{background-color:#F2CCF2;} +span#colorbox87{background-color:#F2CCF2;} +span#colorbox88{background-color:#F2CCF2;} +span#colorbox89{background-color:#F2CCF2;} +span#colorbox90{background-color:#F2CCF2;} +span#colorbox91{background-color:#F2CCF2;} +span#colorbox92{background-color:#F2CCF2;} +span#colorbox93{background-color:#F2CCF2;} +span#colorbox94{background-color:#F2CCF2;} +span#colorbox95{background-color:#F2CCF2;} +span#colorbox96{background-color:#F2CCF2;} +span#colorbox97{background-color:#F2CCF2;} +span#colorbox98{background-color:#F2CCF2;} +span#colorbox99{background-color:#F2CCF2;} +span#colorbox100{background-color:#F2CCF2;} +span#colorbox101{background-color:#F2CCF2;} +span#colorbox102{background-color:#F2CCF2;} +span#colorbox103{background-color:#F2CCF2;} +span#colorbox104{background-color:#F2CCF2;} +span#colorbox105{background-color:#F2CCF2;} +span#colorbox106{background-color:#F2CCF2;} +span#colorbox107{background-color:#F2CCF2;} +span#colorbox108{background-color:#F2CCF2;} +span#colorbox109{background-color:#F2CCF2;} +span#colorbox110{background-color:#F2CCF2;} +span#colorbox111{background-color:#F2CCF2;} +span#colorbox112{background-color:#F2CCF2;} +span#colorbox113{background-color:#F2CCF2;} +span#colorbox114{background-color:#F2CCF2;} +span#colorbox115{background-color:#F2CCF2;} +span#colorbox116{background-color:#F2CCF2;} +span#colorbox117{background-color:#F2CCF2;} +span#colorbox118{background-color:#F2CCF2;} +span#colorbox119{background-color:#F2CCF2;} +span#colorbox120{background-color:#F2CCF2;} +span#colorbox121{background-color:#F2CCF2;} +span#colorbox122{background-color:#F2CCF2;} +span#colorbox123{background-color:#F2CCF2;} +span#colorbox124{background-color:#F2CCF2;} +span#colorbox125{background-color:#F2CCF2;} +span#colorbox126{background-color:#F2CCF2;} +span#colorbox127{background-color:#F2CCF2;} +span#colorbox128{background-color:#F2CCF2;} +span#colorbox129{background-color:#F2CCF2;} +span#colorbox130{background-color:#F2CCF2;} +span#colorbox131{background-color:#F2CCF2;} +span#colorbox132{background-color:#F2CCF2;} +span#colorbox133{background-color:#F2CCF2;} +span#colorbox134{background-color:#F2CCF2;} +span#colorbox135{background-color:#F2CCF2;} +span#colorbox136{background-color:#F2CCF2;} +span#colorbox137{background-color:#F2CCF2;} +span#colorbox138{background-color:#F2CCF2;} +span#colorbox139{background-color:#F2CCF2;} +span#colorbox140{background-color:#F2CCF2;} +span#colorbox141{background-color:#F2CCF2;} +span#colorbox142{background-color:#F2CCF2;} +span#colorbox143{background-color:#F2CCF2;} +span#colorbox144{background-color:#F2CCF2;} +span#colorbox145{background-color:#F2CCF2;} +span#colorbox146{background-color:#F2CCF2;} +span#colorbox147{background-color:#F2CCF2;} +span#colorbox148{background-color:#F2CCF2;} +span#colorbox149{background-color:#F2CCF2;} +span#colorbox150{background-color:#F2CCF2;} +span#colorbox151{background-color:#F2CCF2;} +span#colorbox152{background-color:#F2CCF2;} +span#colorbox153{background-color:#F2CCF2;} +span#colorbox154{background-color:#F2CCF2;} +span#colorbox155{background-color:#F2CCF2;} +span#colorbox156{background-color:#F2CCF2;} +span#colorbox157{background-color:#F2CCF2;} +#mdframed-42{border:2.0pt solid #800080; background-color: #FFF2FF; color:#000000;} +span#colorbox158{background-color:#F2CCF2;} +span#colorbox159{background-color:#F2CCF2;} +span#colorbox160{background-color:#F2CCF2;} +span#colorbox161{background-color:#F2CCF2;} +span#colorbox162{background-color:#F2CCF2;} +span#colorbox163{background-color:#F2CCF2;} +#mdframed-43{border:2.0pt solid #800080; background-color: #FFF2FF; color:#000000;} +span#colorbox164{background-color:#F2CCF2;} +span#colorbox165{background-color:#F2CCF2;} +span#colorbox166{background-color:#F2CCF2;} +span#colorbox167{background-color:#F2CCF2;} +#mdframed-44{border:2.0pt solid #800080; background-color: #FFF2FF; color:#000000;} +span#colorbox168{background-color:#F2CCF2;} +span#colorbox169{background-color:#F2CCF2;} +span#colorbox170{background-color:#F2CCF2;} +span#colorbox171{background-color:#F2CCF2;} +span#colorbox172{background-color:#F2CCF2;} +#mdframed-45{border:2.0pt solid #800080; background-color: #FFF2FF; color:#000000;} +span#colorbox173{background-color:#F2CCF2;} +span#colorbox174{background-color:#F2CCF2;} +span#colorbox175{background-color:#F2CCF2;} +span#colorbox176{background-color:#F2CCF2;} +span#colorbox177{background-color:#F2CCF2;} +span#colorbox178{background-color:#F2CCF2;} +#mdframed-46{border:2.0pt solid #800080; background-color: #FFF2FF; color:#000000;} +span#colorbox179{background-color:#F2CCF2;} +span#colorbox180{background-color:#F2CCF2;} +span#colorbox181{background-color:#F2CCF2;} +span#colorbox182{background-color:#F2CCF2;} +span#colorbox183{background-color:#F2CCF2;} +span#colorbox184{background-color:#F2CCF2;} +span#colorbox185{background-color:#F2CCF2;} +span#colorbox186{background-color:#F2CCF2;} +#mdframed-47{border:2.0pt solid #800080; background-color: #FFF2FF; color:#000000;} +span#colorbox187{background-color:#F2CCF2;} +span#colorbox188{background-color:#F2CCF2;} +span#colorbox189{background-color:#F2CCF2;} +span#colorbox190{background-color:#F2CCF2;} +span#colorbox191{background-color:#F2CCF2;} +span#colorbox192{background-color:#F2CCF2;} +span#colorbox193{background-color:#F2CCF2;} +span#colorbox194{background-color:#F2CCF2;} +span#colorbox195{background-color:#F2CCF2;} +span#colorbox196{background-color:#F2CCF2;} +span#colorbox197{background-color:#F2CCF2;} +span#colorbox198{background-color:#F2CCF2;} +span#colorbox199{background-color:#F2CCF2;} +span#colorbox200{background-color:#F2CCF2;} +span#colorbox201{background-color:#F2CCF2;} +span#colorbox202{background-color:#F2CCF2;} +span#colorbox203{background-color:#F2CCF2;} +span#colorbox204{background-color:#F2CCF2;} +span#colorbox205{background-color:#F2CCF2;} +span#colorbox206{background-color:#F2CCF2;} +span#colorbox207{background-color:#F2CCF2;} +span#colorbox208{background-color:#F2CCF2;} +span#colorbox209{background-color:#F2CCF2;} +span#colorbox210{background-color:#F2CCF2;} +span#colorbox211{background-color:#F2CCF2;} +span#colorbox212{background-color:#F2CCF2;} +span#colorbox213{background-color:#F2CCF2;} +span#colorbox214{background-color:#F2CCF2;} +span#colorbox215{background-color:#F2CCF2;} +span#colorbox216{background-color:#F2CCF2;} +span#colorbox217{background-color:#F2CCF2;} +span#colorbox218{background-color:#F2CCF2;} +span#colorbox219{background-color:#F2CCF2;} +#mdframed-48{border:2.0pt solid #800080; background-color: #FFF2FF; color:#000000;} +#mdframed-49{border:2.0pt solid #800080; background-color: #FFF2FF; color:#000000;} +span#colorbox220{background-color:#F2CCF2;} +span#colorbox221{background-color:#F2CCF2;} +span#colorbox222{background-color:#F2CCF2;} +span#colorbox223{background-color:#F2CCF2;} +span#colorbox224{background-color:#F2CCF2;} +span#colorbox225{background-color:#F2CCF2;} +span#colorbox226{background-color:#F2CCF2;} +span#colorbox227{background-color:#F2CCF2;} +span#colorbox228{background-color:#F2CCF2;} +span#colorbox229{background-color:#F2CCF2;} +span#colorbox230{background-color:#F2CCF2;} +span#colorbox231{background-color:#F2CCF2;} +#mdframed-50{border:2.0pt solid #800080; background-color: #FFF2FF; color:#000000;} +span#colorbox232{background-color:#F2CCF2;} +span#colorbox233{background-color:#F2CCF2;} +span#colorbox234{background-color:#F2CCF2;} +span#colorbox235{background-color:#F2CCF2;} +span#colorbox236{background-color:#F2CCF2;} +span#colorbox237{background-color:#F2CCF2;} +span#colorbox238{background-color:#F2CCF2;} +span#colorbox239{background-color:#F2CCF2;} +span#colorbox240{background-color:#F2CCF2;} +span#colorbox241{background-color:#F2CCF2;} +span#colorbox242{background-color:#F2CCF2;} +span#colorbox243{background-color:#F2CCF2;} +span#colorbox244{background-color:#F2CCF2;} +span#colorbox245{background-color:#F2CCF2;} +span#colorbox246{background-color:#F2CCF2;} +span#colorbox247{background-color:#F2CCF2;} +span#colorbox248{background-color:#F2CCF2;} +span#colorbox249{background-color:#F2CCF2;} +span#colorbox250{background-color:#F2CCF2;} +span#colorbox251{background-color:#F2CCF2;} +span#colorbox252{background-color:#F2CCF2;} +span#colorbox253{background-color:#F2CCF2;} +span#colorbox254{background-color:#F2CCF2;} +span#colorbox255{background-color:#F2CCF2;} +span#colorbox256{background-color:#F2CCF2;} +span#colorbox257{background-color:#F2CCF2;} +span#colorbox258{background-color:#F2CCF2;} +span#colorbox259{background-color:#F2CCF2;} +span#colorbox260{background-color:#F2CCF2;} +span#colorbox261{background-color:#F2CCF2;} +span#colorbox262{background-color:#F2CCF2;} +span#colorbox263{background-color:#F2CCF2;} +span#colorbox264{background-color:#F2CCF2;} +span#colorbox265{background-color:#F2CCF2;} +span#colorbox266{background-color:#F2CCF2;} +#mdframed-51{border:2.0pt solid #800080; background-color: #FFF2FF; color:#000000;} +span#colorbox267{background-color:#F2CCF2;} +span#colorbox268{background-color:#F2CCF2;} +span#colorbox269{background-color:#F2CCF2;} +span#colorbox270{background-color:#F2CCF2;} +span#colorbox271{background-color:#F2CCF2;} +span#colorbox272{background-color:#F2CCF2;} +span#colorbox273{background-color:#F2CCF2;} +span#colorbox274{background-color:#F2CCF2;} +span#colorbox275{background-color:#F2CCF2;} +span#colorbox276{background-color:#F2CCF2;} +span#colorbox277{background-color:#F2CCF2;} +span#colorbox278{background-color:#F2CCF2;} +span#colorbox279{background-color:#F2CCF2;} +span#colorbox280{background-color:#F2CCF2;} +span#colorbox281{background-color:#F2CCF2;} +span#colorbox282{background-color:#F2CCF2;} +span#colorbox283{background-color:#F2CCF2;} +span#colorbox284{background-color:#F2CCF2;} +span#colorbox285{background-color:#F2CCF2;} +span#colorbox286{background-color:#F2CCF2;} +span#colorbox287{background-color:#F2CCF2;} +#mdframed-52{border:2.0pt solid #800080; background-color: #FFF2FF; color:#000000;} +span#colorbox288{background-color:#F2CCF2;} +span#colorbox289{background-color:#F2CCF2;} +#mdframed-53{border:2.0pt solid #800080; background-color: #FFF2FF; color:#000000;} +span#colorbox290{background-color:#F2CCF2;} +span#colorbox291{background-color:#F2CCF2;} +span#colorbox292{background-color:#F2CCF2;} +span#colorbox293{background-color:#F2CCF2;} +span#colorbox294{background-color:#F2CCF2;} +span#colorbox295{background-color:#F2CCF2;} +span#colorbox296{background-color:#F2CCF2;} +span#colorbox297{background-color:#F2CCF2;} +span#colorbox298{background-color:#F2CCF2;} +span#colorbox299{background-color:#F2CCF2;} +span#colorbox300{background-color:#F2CCF2;} +span#colorbox301{background-color:#F2CCF2;} +span#colorbox302{background-color:#F2CCF2;} +span#colorbox303{background-color:#F2CCF2;} +span#colorbox304{background-color:#F2CCF2;} +span#colorbox305{background-color:#F2CCF2;} +span#colorbox306{background-color:#F2CCF2;} +span#colorbox307{background-color:#F2CCF2;} +span#colorbox308{background-color:#F2CCF2;} +span#colorbox309{background-color:#F2CCF2;} +span#colorbox310{background-color:#F2CCF2;} +span#colorbox311{background-color:#F2CCF2;} +span#colorbox312{background-color:#F2CCF2;} +span#colorbox313{background-color:#F2CCF2;} +span#colorbox314{background-color:#F2CCF2;} +span#colorbox315{background-color:#F2CCF2;} +span#colorbox316{background-color:#F2CCF2;} +span#colorbox317{background-color:#F2CCF2;} +span#colorbox318{background-color:#F2CCF2;} +span#colorbox319{background-color:#F2CCF2;} +span#colorbox320{background-color:#F2CCF2;} +span#colorbox321{background-color:#F2CCF2;} +span#colorbox322{background-color:#F2CCF2;} +span#colorbox323{background-color:#F2CCF2;} +span#colorbox324{background-color:#F2CCF2;} +span#colorbox325{background-color:#F2CCF2;} +span#colorbox326{background-color:#F2CCF2;} +span#colorbox327{background-color:#F2CCF2;} +span#colorbox328{background-color:#F2CCF2;} +span#colorbox329{background-color:#F2CCF2;} +span#colorbox330{background-color:#F2CCF2;} +span#colorbox331{background-color:#F2CCF2;} +span#colorbox332{background-color:#F2CCF2;} +#mdframed-54{border:2.0pt solid #800080; background-color: #FFF2FF; color:#000000;} +#mdframed-55{border:2.0pt solid #800080; background-color: #FFF2FF; color:#000000;} +#mdframed-56{border:2.0pt solid #800080; background-color: #FFF2FF; color:#000000;} +span#colorbox333{background-color:#F2CCF2;} +span#colorbox334{background-color:#F2CCF2;} +span#colorbox335{background-color:#F2CCF2;} +span#colorbox336{background-color:#F2CCF2;} +span#colorbox337{background-color:#F2CCF2;} +span#colorbox338{background-color:#F2CCF2;} +span#colorbox339{background-color:#F2CCF2;} +span#colorbox340{background-color:#F2CCF2;} +span#colorbox341{background-color:#F2CCF2;} +span#colorbox342{background-color:#F2CCF2;} +span#colorbox343{background-color:#F2CCF2;} +span#colorbox344{background-color:#F2CCF2;} +span#colorbox345{background-color:#F2CCF2;} +span#colorbox346{background-color:#F2CCF2;} +span#colorbox347{background-color:#F2CCF2;} +span#colorbox348{background-color:#F2CCF2;} +span#colorbox349{background-color:#F2CCF2;} +span#colorbox350{background-color:#F2CCF2;} +span#colorbox351{background-color:#F2CCF2;} +span#colorbox352{background-color:#F2CCF2;} +#mdframed-57{border:2.0pt solid #800080; background-color: #FFF2FF; color:#000000;} +#mdframed-58{border:2.0pt solid #800080; background-color: #FFF2FF; color:#000000;} +span#colorbox353{background-color:#F2CCF2;} +span#colorbox354{background-color:#F2CCF2;} +span#colorbox355{background-color:#F2CCF2;} +span#colorbox356{background-color:#F2CCF2;} +span#colorbox357{background-color:#F2CCF2;} +span#colorbox358{background-color:#F2CCF2;} +span#colorbox359{background-color:#F2CCF2;} +span#colorbox360{background-color:#F2CCF2;} +span#colorbox361{background-color:#F2CCF2;} +span#colorbox362{background-color:#F2CCF2;} +span#colorbox363{background-color:#F2CCF2;} +span#colorbox364{background-color:#F2CCF2;} +span#colorbox365{background-color:#F2CCF2;} +span#colorbox366{background-color:#F2CCF2;} +span#colorbox367{background-color:#F2CCF2;} +span#colorbox368{background-color:#F2CCF2;} +span#colorbox369{background-color:#F2CCF2;} +span#colorbox370{background-color:#F2CCF2;} +span#colorbox371{background-color:#F2CCF2;} +span#colorbox372{background-color:#F2CCF2;} +span#colorbox373{background-color:#F2CCF2;} +span#colorbox374{background-color:#F2CCF2;} +span#colorbox375{background-color:#F2CCF2;} +#mdframed-59{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-60{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-61{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-62{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-63{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-64{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-65{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-66{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-67{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-68{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-69{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-70{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-71{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-72{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-73{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-74{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-75{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-76{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-77{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-78{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-79{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-80{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-81{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-82{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-83{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-84{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-85{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-86{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-87{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-88{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-89{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-90{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-91{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-92{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-93{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-94{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-95{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-96{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-97{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-98{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-99{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-100{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-101{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-102{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-103{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-104{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-105{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-106{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-107{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-108{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-109{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-110{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-111{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-112{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-113{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-114{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-115{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-116{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-117{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-118{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-119{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-120{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-121{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-122{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-123{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-124{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-125{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-126{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-127{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-128{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-129{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-130{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-131{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-132{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-133{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-134{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-135{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-136{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-137{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-138{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-139{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-140{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +#mdframed-141{border:2.0pt solid #FF991A; background-color: #FFF5E5; color:#000000;} +/* end css.sty */ + diff --git a/lammps-stable_29Aug2024/colvars-refman-lammps.html b/lammps-stable_29Aug2024/colvars-refman-lammps.html new file mode 100644 index 00000000..54e3d5d5 --- /dev/null +++ b/lammps-stable_29Aug2024/colvars-refman-lammps.html @@ -0,0 +1,5748 @@ + + +
+
COLLECTIVE VARIABLES MODULE
+
Reference manual for LAMMPS
+
Code version: 2024-06-04
+
Updated versions of this manual: [GROMACS] [LAMMPS] [NAMD] [Tinker-HP] [VMD]
Alejandro Bernardin, Haochuan Chen, Jeffrey R. Comer, Giacomo Fiorin, Haohao Fu, Jérôme
+Hénin, Axel Kohlmeyer, Fabrizio Marinelli, Hubert Santuz, Joshua V. Vermaas, Andrew D.
+White
+
(PDF version) + + +
+
++
+ ++
In molecular dynamics simulations, it is often useful to reduce the large number of degrees of freedom +of a physical system into few parameters whose statistical distributions can be analyzed individually, or +used to define biasing potentials to alter the dynamics of the system in a controlled manner. These have +been called ‘order parameters', ‘collective variables', ‘(surrogate) reaction coordinates', and many other +terms. +
Here we use primarily the term ‘collective variable', often shortened to +colvar, to indicate any differentiable function of atomic Cartesian coordinates, +, with + between + and +, the +total number of atoms:
+ | (1) |
This manual documents the collective variables module (Colvars), a software that provides an implementation +for the functions +with a focus on flexibility, robustness and high performance. The module is designed to perform multiple +tasks concurrently during or after a simulation, the most common of which are:
+Detailed explanations of the design of the Colvars module are provided in reference [1]. Please cite +this reference whenever publishing work that makes use of this module, alongside any other publications +for specific features being, according to the usage summary printed when running a Colvars-enabled MD +simulation or analysis. +
+
+ ++
The Colvars configuration is a plain text file or string that defines collective variables, biases, and +general parameters of the Colvars module. It is passed to the module using back-end-specific commands +documented in section 3. +
+Example: steering two groups of atoms away from each other. + Now let us look at a complete, non-trivial configuration. Suppose that we want to run a steered MD +experiment where a small molecule is pulled away from a protein binding site. In Colvars terms, this is +done by applying a moving restraint to the distance between the two objects. The configuration will +contain two blocks, one defining the distance variable (see section 4 and 4.3.1), and the other the moving +harmonic restraint (6.6).
+++indexFile index.ndx
colvar {
name dist
distance {
group1 { atomNumbersRange 42-55 }
group2 { indexGroup C-alpha_15-30 }
}
}
harmonic {
colvars dist
forceConstant 20.0
centers 4.0 # initial distance
targetCenters 15.0 # final distance
targetNumSteps 500000
}
Reading this input in plain English: the variable here named dist consists in a distance +function between the centers of two groups: the ligand (atoms 42 to 55) and the +-carbon +atoms of residues 15 to 30 in the protein (selected from the index group “C-alpha_15-30"). To + + +the “dist" variable, we apply a harmonic potential of force constant 20 energy unit/length +unit, +initially centered around a value of 4 length unit, which will increase to 15 length unit over 500,000 +simulation steps. +
The atom selection keywords are detailed in section 5. If the selection is too complex to implement +only via internal keywords, an external index file may be created following the NDX format used in +GROMACS (see 3.8.2) or by using the group2ndx LAMMPS command. +
+Example: using multiple variables and multiple biasing/analysis methods together. + A more complex example configuration is included below, showing how a variable +may be constructed by combining multiple existing functions, and how multiple +variables or multiple biases may be used concurrently. The colvar indicated below as +“" +is defined as the difference between two distances (see 4.3): the first distance +() is +taken between the center of mass of atoms 1 and 2 and that of atoms 3 to 5, the second +() +between atom 7 and the center of mass of atoms 8 to 10 (see 5). The difference + is obtained by multiplying +the two by a coefficient +or , respectively (see +4.15). The colvar called “" +is the coordination number calculated between atoms 1 to 10 and atoms 11 to 20. A harmonic restraint (see 6.6) is +applied to both and +: to allow using the +same force constant , +both and + are scaled by their +respective fluctuation widths +and . The +values of “" +are also recorded throughout the simulation as a joint 2-dimensional histogram (see 6.11).
+colvar {+
# difference of two distances
name d
width 0.2 # estimated fluctuation width
distance {
componentCoeff 1.0
group1 { atomNumbers 1 2 }
group2 { atomNumbers 3 4 5 }
}
distance {
componentCoeff -1.0
group1 { atomNumbers 7 }
group2 { atomNumbers 8 9 10 }
}
}
colvar {
name c
coordNum {
cutoff 6.0
group1 { atomNumbersRange 1-10 }
group2 { atomNumbersRange 11-20 }
tolerance 1.0e-6
pairListFrequency 1000
}
}
harmonic {
colvars d c
centers 3.0 4.0
forceConstant 5.0
}
histogram {
colvars c
}
+
+ ++
Here, we document the syntax of the commands and parameters used to set up and use +the Colvars module in LAMMPS [2]. One of these parameters is the configuration file or the +configuration text for the module itself, whose syntax is described in 3.4 and in the following +sections. +
+ ++
The “internal units" of the Colvars module are the units in which values are expressed in the +configuration file, and in which collective variable values, energies, etc. are expressed in the output and +colvars trajectory files. Generally the Colvars module uses internally the same units as its back-end +MD engine, with the exception of VMD, where different unit sets are supported to allow for +easy setup, visualization and analysis of Colvars simulations performed with any simulation +engine. +
Note that angles are expressed in degrees, and derived quantities such as force constants are based +on degrees as well. Some colvar components have default values, expressed in Ångström +(Å) in this documentation. They are converted to the current length unit, if different from Å. +Atomic coordinates read from XYZ files (and PDB files where applicable) are expected to be +expressed in Ångström, no matter what unit system is in use by the back-end (LAMMPS) or the +Colvars Module. They are converted internally to the current length unit as needed. Note that +force constants in harmonic and harmonicWalls biases (6.6) are rescaled according to the +width parameter of colvars, so that they are formally in energy units, although if width is +given its default value of 1.0, force constants are effectively expressed in energy unit/(colvar +unit). +
To avoid errors due to reading configuration files written in a different unit system, it can be specified +within the input: +
++
To enable a Colvars-based calculation, the following line must be added to the LAMMPS configuration +file:
+fix Colvars all colvars configfile [keyword value pairs ...]+
where the fix ID is here set to the string “Colvars", because there can only be one instance of fix +colvars in a LAMMPS run. +
The value of the configfile keyword is the name of the configuration file for the Colvars module. You +may also provide the lowercase string “none" to create an empty module, and define the configuration via +fix_modify (see 3.3). +
Other optional keywords for fix colvars are: +
+All of the above keywords except for the name of the configuration file may also be given (or +overridden) using fix_modify, as well as new Colvars configuration files (see 3.3 for more +details). +
+ ++
After the first initialization of the Colvars module, the internal state of Colvars objects may +be queried or modified in a LAMMPS script (here, “Colvars" is the ID of the fix colvars +instance):
+fix_modify Colvars method arg1 arg2 ...
+
+where method +is the name of a specific procedure and arg1, arg2, …are its required and/or optional arguments. +
Each fix_modify command may be used in either one of two ways: +
fix_modify Colvars seed 111111 tstat NPT+
variable freq index 10000+
dump myDump all atom/zstd ${freq} dump.atom.zstd
fix_modify Colvars config "colvarsTrajFrequency ${freq}"
fix_modify can be run on a previously created instance of fix colvars at any time. However, +because the fix is not fully initialized until the beginning of the next simulation step, only the variables and +biases that were created prior to the most recent run or minimize command will be accessible. This fact +is true even if a Colvars configuration file that defines those variables and biases was already given in the +LAMMPS script. Should you want to trigger an immediate initialization of the Colvars module, consider +running “run 0". +
In the remainder of this section, the most frequently used commands of the Colvars scripting interface
+are discussed and exemplified. For a full list of scripting commands available, see section 7.
+
+
+
To define new collective variables and/or biases for immediate use in the current session, +configuration can be loaded from an external configuration file:
+fix_modify Colvars configfile "colvars-file.in"+
This can in principle be called at any time, if only flags internal to Colvars are being modified. In +practice, when new atoms or any new atomic properties (e.g. total forces) are being requested, +initialization steps will be required that are not carried out during a simulation. Therefore, it is generally +good practice in a simulation to change the Colvars configuration outside the scope between segments of +the same computation. +
To load the configuration directly from a string the “config" method may be used:
+fix_modify Colvars config "keyword { ... }"+
This method is particularly useful to dynamically define the Colvars configuration within a LAMMPS script. +For example, when running an ensemble of umbrella sampling simulations in LAMMPS, it may be +convenient to use an identical script and define the specific window through environment +variables. +
In the following example, the environment variable “SLURM_ARRAY_TASK_ID" is set in a Slurm array job +to increasing values starting at 0. The value of this variable is used to define the window's numeric index, +and the umbrella restraint center beginning at 2.00 for the first window, and increasing in increments of +0.25 for all other windows:
+variable window getenv SLURM_ARRAY_TASK_ID+
fix_modify Colvars config """
harmonic {
name us_${window}
colvars xi
centers [expr 2.0 + 0.25 * ${window}]
...
}"""
+
After a configuration is fully defined, the “load" method may be used to load a state file from a +previous simulation that contains e.g. data from history-dependent biases), to either continue that +simulation or analyze its results:
+fix_modify Colvars load "oldjob.colvars.state" ++
or more simply using the prefix of the state file itself:
+fix_modify Colvars load "oldjob" ++
Note that the Colvars state is already loaded automatically as part of the LAMMPS restart file, when +this is read via the LAMMPS read_restart command; the “load" method allows to load a different state +file after the fact. +
The “save" method, analogous to “load", allows to save all restart information to a state file. This +is normally not required during a simulation if colvarsRestartFrequency is defined (either +directly or indirectly by the LAMMPS restart frequency). Because not only a state file (used to +continue simulations) but also other data files (used to analyze the trajectory) are written, it is +generally recommended to call the save method using a prefix, rather than a complete file +name:
+fix_modify Colvars save "job" ++
+
For computational efficiency the Colvars module keeps internal copies of the numeric IDs, masses, +charges, positions, and optionally total forces of the atoms requested for a Colvars computation. At each +simulation step, up-to-date versions of these properties are copied from the central memory of +LAMMPS into the internal memory of the Colvars module. In a post-processing workflow or +outside a simulation (e.g. when using VMD), this copy can be carried out as part of the update +method:
+fix_modify Colvars update+
which also performs the (re-)computation of all variables and biases defined in Colvars. + + +
For example, the current sequence of numeric IDs of the atoms processed by Colvars can be obtained +as:
+fix_modify Colvars getatomids+
and their current positions as:
+fix_modify Colvars getatompositions+
This may prove useful to test the correctness of the coordinates passed to Colvars, particularly in regard +to periodic boundary conditions (5.3). There is currently no mechanism to modify the above fields via the +scripting interface, but such capability will be added in the future. +
While running a simulation, or when setting one up in VMD, it is possible to examine all the forces that +were last applied by Colvars to the atoms, or are about to be applied:
+fix_modify Colvars getatomappliedforces+
where the length and order of this sequence matches that provided by the getatomids method. A simpler +way of testing the stability of a Colvars configuration before or during a simulation makes use of +aggregated data, such as the energy:
+fix_modify Colvars getenergy+
the root-mean-square of the Colvars applied forces:
+fix_modify Colvars getatomappliedforcesrms+
or the maximum norm of the applied forces:
+fix_modify Colvars getatomappliedforcesmax+
which can be matched to a specific atom via its numeric ID obtained as:
+fix_modify Colvars getatomappliedforcesmaxid+
See 7.1 for a complete list of scripting commands used to manage atomic data and runtime +parameters of the Colvars module. +
+ ++
After one or more collective variables are defined, they can be accessed with the following +syntax.
+fix_modify Colvars colvar "name" method arg1 arg2 ...
+
+where “name" +is the name of the variable. +
For example, to recompute the collective variable “xi" after a change in its parameters, the following +command can be used:
+fix_modify Colvars colvar "xi" update+
This ordinarily is not needed during a simulation run, where all variables are recomputed at every step +(along with biasing forces acting on them). However, when analyzing an existing trajectory, e.g. in VMD, a +call to update is generally required. +
While in all typical cases all configuration of the variables is done with the “config" or “configfile" +methods, a limited set of changes can be enacted at runtime using:
+fix_modify Colvars colvar "name" modifycvcs arg1 arg2 ... ++
where each argument is a string passed to the function or functions that are used to compute the variable, +and are called colvar components, or CVCs (4.1). For example, a variable “DeltaZ" made of a single +“distanceZ" component can be made periodic with a period equal to the unit cell dimension along the +-axis:
+fix_modify Colvars colvar "DeltaZ" modifycvcs "period ${Lz}"+
Please note that this option is currently limited to changing the values of the polynomial superposition +parameters componentCoeff, or of the componentExp to update on the fly, of period, wrapAround or +forceNoPBC options for components where it is relevant. Furthermore, because the call above uses an +immediate expansion of the variable “${Lz}", its value will not be updated during a constant-pressure +simulation. +
If the variable is computed using many components, it is possible to selectively turn some of them on +or off:
+fix_modify Colvars colvar "name" cvcflags flags ++
where “flags" +is a list of 0/1 values, one per component. +
Important: None of the changes enacted by the “modifycvcs" or “cvcflags" methods will be saved to +state files, and will be lost when restarting a simulation, deleting the corresponding collective variable, or +resetting the module with the “reset" method. + + +
+ ++
As soon as a colvar “xi" and its associated biasing potentials are up to date (i.e. during a MD run, or +after the respective “update" methods have been called), the force applied onto the colvar is known and +may be accessed through the getappliedforce method:
+fix_modify Colvars colvar "xi" getappliedforce+
See also the use of the outputAppliedForce option to have this force be saved to file during a +simulation. +
Aside from the biasing methods already implemented within Colvars (6) this force may be incremented +ad hoc:
+fix_modify Colvars colvar "xi" addforce force ++
where “force" +is a scalar or a vector (depending on the type of variable “xi"). Although this would offer in principle a way +to add custom forces to a variable, fix_modify is executed outside the run or minimize commands, and +the given force will be reset during a simulation. +
For certain types of variable, the force applied directly on a colvar may be combined with those acting +indirectly on it via the interatomic force field, making up the total force. When the outputTotalForce +keyword is enabled, or when a biasing method that makes explicit use of the total force is enabled, the +total force may be obtained as:
+fix_modify Colvars colvar "xi" gettotalforce+
Note that not all types of variable support total-force computation, and the value of the total force may not +be available immediately within the same simulation step: see the documentation of outputTotalForce +for more details. +
See 7.2 for a complete list of scripting commands used to manage collective variables. +
+ ++
Because biases depend only upon data internal to the Colvars module (i.e. they do not need atomic +coordinates from LAMMPS), it is generally easy to create them or update their configuration at any time. +For example, given the most current value of the variable “xi", an already-defined harmonic restraint on it +named “h_xi" can be updated as:
+fix_modify Colvars bias "h_xi" update+
During a running simulation this step is not needed, because an automatic update of each bias is already +carried out. +
+ ++
Some types of bias are history-dependent, and the magnitude of their forces depends not only on the +values of their corresponding variables, but also on previous simulation history. It is thus useful to +load information from a state file that contains information specifically for one bias only, for +example:
+fix_modify Colvars bias "metadynamics1" load "old.colvars.state"+
or alternatively, using the prefix of the file instead of its full name:
+fix_modify Colvars bias "metadynamics1" load "old"+
A corresponding “save" function is also available:
+fix_modify Colvars bias "metadynamics1" save "new"+
Please note that the file above must contain only the state information for that particular bias: loading a +state file for the whole module is not allowed. +
This pair of functions is also used internally by Colvars to implement e.g. multiple-walker +metadynamics (6.5.7), but they can be called from a scripted function to implement alternative coupling +schemes. +
See 7.3 for a complete list of scripting commands used to manage biases. +
+ ++
Configuration for the Colvars module is passed using an external file. Configuration lines follow the +format “keyword value" or “keyword { ... }", where the keyword and its value must be separated by +one or more space characters. The following formatting rules apply: +
++
The following keywords are available in the global context of the Colvars configuration, i.e. they are +not nested inside other keywords:
++
Several of the sampling methods implemented in Colvars are time- or history-dependent, i.e. they +work by accumulating data as a simulation progresses, and use these data to determine their biasing +forces. If the simulation engine uses a checkpoint or restart file (as GROMACS and LAMMPS do), any +data needed by Colvars are embedded into that file. Otherwise, a dedicated state file can be loaded into +Colvars directly. +
When a dedicated Colvars state file is used, it may be in either one of two formats:
+In either format, the state file contains accumulated data as well as the step number at the end of the +run. The step number read from a state file overrides any value that LAMMPS provides, and will be +incremented if the simulation proceeds. This means that the step number used internally by Colvars may +not always match the step number reported by LAMMPS. +
+ +For continuing a Colvars-based simulation, the recommended method is using the standard LAMMPS +read_restart command, which reads the Colvars state data from the LAMMPS restart file (in binary +format). +
read_restart filename
+Alternatively, restarting from a Colvars-specific state file is also possible by providing the input +keyword to the fix colvars command:
+fix Colvars all colvars configfile input input_prefix+
When the “input" keyword is used, the contents of the file +input_prefix.colvar.state +override the information read from the LAMMPS restart file. Finally, a state file may also be loaded after +initialization through the “fix_modify" command:
+fix_modify Colvars input new_input_prefix+
+
In some cases, it is useful to modify the configuration of variables or biases between consecutive runs, +for example by adding or removing a restraint. Some special provisions will happen in that case. When a +state file is loaded, no information is available about any newly added variable or bias, which will +thus remain uninitialized until the first compute step. Conversely, any information that the +state file may contain about variables or biases that are no longer defined will be silently +ignored. Please note that these checks are performed based only on the names of variables and +biases: it is your responsibility to ensure that these names have consistent definitions between +runs. +
The flexibility just described carries some limitations: namely, it is only supported when reading +text-format Colvars state files. Instead, restarting from binary files (such as the LAMMPS restart file) after +a configuration change will trigger an error. It is also important to remind that when switching to a different +build of LAMMPS, the binary format may change slightly, even if the release version is the +same. + + +
To work around the potential issues just described, a text-format Colvars state file should be loaded. +This can be achieved by providing an explicit input keyword when initializing the Colvars fix (see +3.2), which will instruct Colvars to use the given filename, instead of the LAMMPS restart file. +Furthermore, the fix_modify scripting command allows to load a Colvars file after initialization +(3.3.2). +
+ ++
When the output prefix output is defined, the following output files are written during a simulation +run: +
++
This section summarizes the file formats of various files that Colvars may be reading or +writing. +
+ ++
Configuration files are text files that are generally read as input by LAMMPS. Starting from version +2017-02-01, changes in newline encodings are handled transparently, i.e. it is possible to typeset a +configuration file in Windows (CR-LF newlines) and then use it with Linux or macOS (LF-only +newlines). +
Formatted state files, although not written manually, follow otherwise the same text format as +configuration files. Binary state files can only be read by the Colvars code itself. +
+ ++
For atom selections that cannot be specified only by using internal Colvars keywords, external index +files may also be used following the NDX format used in GROMACS: + + +
+[ group_1_name ]+
i1 i2 i3 i4 ...
... ... iN
[ group_2_name ]
...
where i1 through iN are 1-based indices. Each group name may not contain spaces or tabs: otherwise, a +parsing error will be raised. +
Multiple index files may be provided to Colvars, each using the keyword indexFile. Two index files +may contain groups with the same names, however these must also represent identical atom selections, +i.e. the same sequence of indices including order. +
Other than with GROMACS, an index group may also be generated from the VMD command-line +interface, using the helper function write_index_group provided in the colvartools folder:
+source colvartools/write_index_group.tcl+
set sel [atomselect top "resname XXX and not hydrogen"]
write_index_group indexfile.ndx $sel "Ligand"
In LAMMPS, NDX files may also be generated from internal groups via the group2ndx +command. +
+ +XYZ coordinate files are text files with the extension “.xyz". They are read by the Colvars module using +an internal reader, and expect the following format: +
+ | |||
Comment | line | ||
+ | |||
+ | |||
… | +|||
+ | |||
where is the number of atomic +coordinates in the file and is +the chemical element of the -th +atom. Because +is not used in Colvars, any string that does not contain tabs or spaces is acceptable. +
Note: all XYZ coordinates are assumed to be expressed in Å units, regardless of the units currently +used by LAMMPS. +
An XYZ file may contain either one of the following scenarios: + + +
XYZ-file coordinates are read directly by Colvars and stored internally as double-precision floating +point numbers. +
+ ++
Many simulation methods and analysis tools write files that contain functions of the collective variables +tabulated on a grid (e.g. potentials of mean force or multidimensional histograms) for the purpose of +analyzing results. Such files are produced by ABF (6.2), metadynamics (6.5), multidimensional +histograms (6.11), as well as any restraint with optional thermodynamic integration support +(6.1). +
In some cases, these files may also be read as input of a new simulation. Suitable input files for
+this purpose are typically generated as output files of previous simulations, or directly by
+the user in the specific case of ensemble-biased metadynamics (6.5.5). This section
+explains the “multicolumn" format used by these files. For a multidimensional function
+,
+,
+… the
+multicolumn grid format is defined as follows:
+
# | + | |||||
# | + | |||||
# | + | |||||
# | … | … | … | … | ||
# | + | |||||
+ | ||||||
… | f(, , …, ) | + | ||||
… | f(, , …, ) | |||||
… | … | … | … | … | ||
+ | ||||||
Lines beginning with the character “#" are the header of the file. + +is the number of collective variables sampled by the grid. For each variable +, + +is the lowest value sampled by the grid (i.e. the left-most boundary of the grid along +), + is the width of each +grid step along , + is the number +of points and +is a flag whose value is 1 or 0 depending on whether the grid is periodic along +. In +most situations:
+How the grid's boundaries affect the sequence of points depends on how the contents of the file were +computed. In many cases, such as histograms and PMFs computed by metadynamics (6.5.5), the values +of +in the first few columns correspond to the midpoints of the corresponding bins, +i.e. . +However, there is a slightly different format in PMF files computed by ABF (6.2) or +other biases that use thermodynamic integration (6.1). In these cases, it is free-energy +gradients that are accumulated on an (npoints)-long grid along each variable +: after these +gradients are integrated, the resulting PMF is discretized on a slightly larger grid with (npoints+1) points +along +(unless the interval is periodic). Therefore, the grid's outer edges extend by + +above and below the specified boundaries, so that for instance + in the header appears +to be shifted back by + + +compared to what would be expected. Please keep this difference in mind when comparing PMFs +computed by different methods. +
After the header, the rest of the file contains values of the tabulated function
+,
+,
+…, one for each line.
+The first columns
+contain values of ,
+,
+… and the last column contains
+the value of the function .
+Points are sorted in ascending order with the fastest-changing values at the right (“C-style" order). Each sweep of the
+right-most variable
+is terminated by an empty line. For two dimensional grid files, this allows quick visualization by programs
+such as GNUplot.
+
Example 1: multicolumn text file for a one-dimensional histogram with lowerBoundary = 15, +upperBoundary = 48 and width = 0.1. +
+# | 1 | + | |||
# | 15 | 0.1 | 330 | 0 | |
+ | |||||
15.05 | 6.14012e-07 | ||||
15.15 | 7.47644e-07 | + | |||
… | … | ||||
47.85 | 1.65944e-06 | + | |||
47.95 | 1.46712e-06 | ||||
+ | |||||
Example 2: multicolumn text file for a two-dimensional histogram of two dihedral angles (periodic interval +with 6 +bins): +
+# | 2 | + | |||
# | -180.0 | 6.0 | 30 | 1 | |
# | -180.0 | 6.0 | 30 | 1 | +|
-177.0 | -177.0 | 8.97117e-06 | + | ||
-177.0 | -171.0 | 1.53525e-06 | |||
… | … | … | + | ||
-177.0 | 177.0 | 2.442956-06 | |||
+ | |||||
-171.0 | -177.0 | 2.04702e-05 | |||
… | … | … | + | ||
+
The Colvars trajectory file (with a suffix .colvars.traj) is a plain text file (scientific +notation with 14-digit precision) whose columns represent quantities such as colvar +values, applied forces, or individual restraints' energies. Under most scenarios, plotting +or analyzing this file is straightforward: for example, the following contains a variable +“" and the energy +of a restraint “":
+# step A E_rA+
0 1.42467449615693e+01 6.30982865292123e+02
100 1.42282559728026e+01 6.20640585041317e+02
…
Occasionally, if the Colvars configuration is changed mid-run certain quantities may be +added or removed, changing the column layout. Labels in comment lines can assist in such +cases: for example, consider the trajectory above with the addition of a second variable, +“", after +10,000 steps:
+# step A E_rA+
0 1.42467449615693e+01 6.30982865292123e+02
100 1.42282559728026e+01 6.20640585041317e+02
…
# step A B E_rA
10000 1.38136915830229e+01 9.99574098859265e-01 4.11184644791030e+02
10100 1.36437184346326e+01 9.99574091957314e-01 3.37726286543895e+02 +
Analyzing the above file with standard tools is possible, but laborious: a convenience script is provided +for this and related purposes. It may be used either as a command-line tool or as a Python +module:
+>>> from plot_colvars_traj import Colvars_traj+
>>> traj = Colvars_traj('test.colvars.traj')
>>> print(traj['A'].steps, traj['A'].values)
[ 0 100 ... 10000 10100] [14.246745 14.228256 ... 13.813692 13.643718]
>>> print(traj['B'].steps, traj['B'].values)
[10000 10100] [0.999574 0.9995741]
+
+ ++
A collective variable is defined by the keyword colvar followed by its configuration options contained +within curly braces:
+colvar {+
name xi
other options
function_name {
parameters
atom selection
}
}
There are multiple ways of defining a variable:
+Choosing a component (function) is the only parameter strictly required to define a collective variable. It is +also highly recommended to specify a name for the variable:
++
In this context, the function that computes a colvar is called a component. A component's choice +and definition consists of including in the variable's configuration a keyword indicating the +type of function (e.g. rmsd), followed by a definition block specifying the atoms involved (see +5) and any additional parameters (cutoffs, “reference" values, …). At least one component +must be chosen to define a variable: if none of the keywords listed below is found, an error is +raised. +
The following components implement functions with a scalar value (i.e. a real number): +
+Some components do not return scalar, but vector values:
+The types of components used in a colvar (scalar or not) determine the properties of that colvar, and +particularly which biasing or analysis methods can be applied. +
What if “X" is not listed? If a function type is not available on this list, it may be possible to +define it as a polynomial superposition of existing ones (see 4.15), a custom function (see +4.16). +
In the rest of this section, all available component types are listed, along with their physical units and +their ranges of values, if limited. Such ranges are often used to define automatically default sampling +intervals, for example by setting the parameters lowerBoundary and upperBoundary in the parent +colvar. +
For each type of component, the available configurations keywords are listed: when two components +share certain keywords, the second component references to the documentation of the first one that uses +that keyword. The very few keywords that are available for all types of components are listed in a separate +section 4.12. +
+ ++
In all colvar components described below, the following rules apply concerning periodic boundary +conditions (PBCs): +
+ +
+
The distance {...} block defines a distance component between the two atom groups, group1 and +group2. +
List of keywords (see also 4.2, 4.12, 4.13 and 4.15 for additional options):
+The value returned is a positive number (in length unit), ranging from + to the +largest possible interatomic distance within the chosen boundary conditions (with PBCs, the minimum +image convention is used unless the forceNoPBC option is set). +
+ ++
The distanceZ {...} block defines a distance projection component, which can be seen as +measuring the distance between two groups projected onto an axis, or the position of a group along such +an axis. The axis can be defined using either one reference group and a constant vector, or dynamically +based on two reference groups. One of the groups can be set to a dummy atom to allow the use of an +absolute Cartesian coordinate. +
List of keywords (see also 4.2, 4.12, 4.13 and 4.15 for additional options):
+This component returns a number (in length unit) whose range is determined by the chosen boundary conditions. For +instance, if the +axis is used in a simulation with periodic boundaries, the returned value ranges between + and +, where + is the box +length along +(this behavior is disabled if forceNoPBC is set). +
+ ++
The distanceXY {...} block defines a distance projected on a plane, and accepts the same +keywords as the component distanceZ, i.e. main, ref, either ref2 or axis, and oneSiteTotalForce. It +returns the norm of the projection of the distance vector between main and ref onto the plane orthogonal +to the axis. The axis is defined using the axis parameter or as the vector joining ref and ref2 (see +distanceZ above). +
List of keywords (see also 4.2, 4.12, 4.13 and 4.15 for additional options):
++
The distanceVec component computes the 3-dimensional vector joining the centers of +mass of group1 and group2. Its values are therefore multi-dimensional and are subject to the +restrictions listed in 4.14. Moreover, when computing differences between two different values of +a distanceVec variable the minimum-image convention is assumed (unless forceNoPBC is +enabled). +
List of keywords (see also 4.2, 4.12, 4.13 and 4.15 for additional options):
++
The distanceDir {...} block defines a distance unit vector component, which accepts the same +keywords as the component distance: group1, group2, and forceNoPBC. It returns a 3-dimensional unit +vector , +with . +
List of keywords (see also 4.2, 4.12, 4.13 and 4.15 for additional options):
++
The distanceInv {...} block defines a generalized mean distance between +two groups of atoms 1 and 2, where each distance is taken to the power +:
+ + | (2) |
where is the +distance between atoms +and in groups 1 and +2 respectively, and +is an even integer. +
List of keywords (see also 4.2, 4.12, 4.13 and 4.15 for additional options):
+This component returns a number ranging from +to the largest possible distance within the chosen boundary conditions. +
+ ++ +
+
The angle {...} block defines an angle, and contains the three blocks group1, group2 +and group3, defining the three groups. It returns an angle (in degrees) within the interval +. +
List of keywords (see also 4.2, 4.12, 4.13 and 4.15 for additional options):
++
The dipoleAngle {...} block defines an angle, and contains the three blocks group1, group2 and group3, +defining the three groups, being group1 the group where dipole is calculated. It returns an angle (in degrees) within +the interval . +
List of keywords (see also 4.2, 4.12, 4.13 and 4.15 for additional options):
++
The dihedral {...} block defines a torsional angle, and contains the blocks group1, group2, +group3 and group4, defining the four groups. It returns an angle (in degrees) within the interval +. The +Colvars module calculates all the distances between two angles taking into account periodicity. For +instance, reference values for restraints or range boundaries can be defined by using any real number of +choice. +
List of keywords (see also 4.2, 4.12, 4.13 and 4.15 for additional options):
++
The polarTheta {...} block defines the polar angle in spherical coordinates, for the center of mass +of a group of atoms described by the block atoms. It returns an angle (in degrees) within the interval +. To +obtain spherical coordinates in a frame of reference tied to another group of atoms, use the fittingGroup +(5.2) option within the atoms block. An example is provided in file examples/11_polar_angles.in of the +Colvars public repository. +
List of keywords (see also 4.2, 4.12, 4.13 and 4.15 for additional options):
++
The polarPhi {...} block defines the azimuthal angle in spherical coordinates, for the center of +mass of a group of atoms described by the block atoms. It returns an angle (in degrees) within the interval +. The +Colvars module calculates all the distances between two angles taking into account periodicity. For +instance, reference values for restraints or range boundaries can be defined by using any real number +of choice. To obtain spherical coordinates in a frame of reference tied to another group of +atoms, use the fittingGroup (5.2) option within the atoms block. An example is provided in file +examples/11_polar_angles.in of the Colvars public repository. +
List of keywords (see also 4.2, 4.12, 4.13 and 4.15 for additional options):
++ +
+
The coordNum {...} block defines a coordination number (or number of contacts), which calculates the +function , where + is the “cutoff" +distance, and +and are +exponents that can control its long range behavior and stiffness [3]. This function is summed over all pairs +of atoms in group1 and group2:
+ | (3) |
List of keywords (see also 4.2, 4.12, 4.13 and 4.15 for additional options):
+This component returns a dimensionless number, which ranges from +approximately 0 (all interatomic distances are much larger than the cutoff) to + (all distances are less +than the cutoff), or +if group2CenterOnly is used. For performance reasons, at least one of group1 and group2 should be of +limited size or group2CenterOnly should be used: the cost of the loop over all pairs grows as +. Setting + +ameliorates this to some degree, although every pair is still checked to regenerate the pair +list. +
+ ++
The selfCoordNum {...} block defines a coordination number similarly to the component coordNum, +but the function is summed over atom pairs within group1:
+ | (4) |
The keywords accepted by selfCoordNum are a subset of those accepted by coordNum, namely group1 +(here defining all of the atoms to be considered), cutoff, expNumer, and expDenom. +
List of keywords (see also 4.2, 4.12, 4.13 and 4.15 for additional options):
+This component returns a dimensionless number, which ranges from +approximately 0 (all interatomic distances much larger than the cutoff) to + (all distances +within the cutoff). For performance reasons, group1 should be of limited size, because the cost of the loop over all +pairs grows as . +
+ ++
The hBond {...} block defines a hydrogen bond, implemented as a coordination number (eq. 3) +between the donor and the acceptor atoms. Therefore, it accepts the same options cutoff +(with a different default value of 3.3 Å), expNumer (with a default value of 6) and expDenom +(with a default value of 8). Unlike coordNum, it requires two atom numbers, acceptor and +donor, to be defined. It returns a dimensionless number, with values between 0 (acceptor +and donor far outside the cutoff distance) and 1 (acceptor and donor much closer than the +cutoff). +
List of keywords (see also 4.2, 4.12, 4.13 and 4.15 for additional options):
++ +
+
The block rmsd {...} defines the root mean square replacement (RMSD) of a +group of atoms with respect to a reference structure. For each set of coordinates +, +the colvar component rmsd calculates the optimal rotation + that best superimposes +the coordinates onto a set +of reference coordinates . +Both the current and the reference coordinates are centered on their centers of geometry, + and +. The +root mean square displacement is then defined as:
+ | (5) |
The optimal rotation +is calculated within the formalism developed in reference [4], which guarantees a continuous dependence +of with +respect to . +
List of keywords (see also 4.2, 4.12, 4.13 and 4.15 for additional options):
+This component returns a positive real number (in length unit). +
+ +In the standard usage as described above, the rmsd component calculates a minimum RMSD, that is, +current coordinates are optimally fitted onto the same reference coordinates that are used to compute the +RMSD value. The fit itself is handled by the atom group object, whose parameters are automatically set +by the rmsd component. For very specific applications, however, it may be useful to control +the fitting process separately from the definition of the reference coordinates, to evaluate +various types of non-minimal RMSD values. This can be achieved by setting the related options +(refPositions, etc.) explicitly in the atom group block. This allows for the following non-standard +cases: +
+
+
The block eigenvector {...} defines the projection of the coordinates of a group of +atoms (or more precisely, their deviations from the reference coordinates) onto a vector in +, where + is the +number of atoms in the group. The computed quantity is the total projection:
+ | (6) |
where, as in the rmsd component, +is the optimal rotation matrix, +and +are the centers of geometry of the current and reference positions respectively, and + +are the components of the vector for each atom. Example choices for + are an +eigenvector of the covariance matrix (essential mode), or a normal mode of the system. It is assumed that +: otherwise, the Colvars +module centers the +automatically when reading them from the configuration. +
List of keywords (see also 4.2, 4.12, 4.13 and 4.15 for additional options):
++
The block gyration {...} defines the parameters for calculating the radius of gyration of a group of atomic positions + with respect to their +center of geometry, : +
+ | (7) |
This component must contain one atoms {...} block to define the atom group, and returns a positive +number, expressed in length unit. +
List of keywords (see also 4.2, 4.12, 4.13 and 4.15 for additional options):
++
The block inertia {...} defines the parameters for calculating the total moment of inertia of a group of atomic positions + with respect to their +center of geometry, : +
+ | (8) |
Note that all atomic masses are set to 1 for simplicity. This component must contain one +atoms {...} block to define the atom group, and returns a positive number, expressed in length +unit. +
List of keywords (see also 4.2, 4.12, 4.13 and 4.15 for additional options):
+The dipoleMagnitude {...} block defines the dipole magnitude of a group of atoms (norm of the dipole moment's +vector), being atoms the group where dipole magnitude is calculated. It returns the magnitude in elementary +charge +times length unit. +
List of keywords (see also 4.2, 4.12, 4.13 and 4.15 for additional options):
++
The block inertiaZ {...} defines the parameters for calculating the component along the axis + of the moment of inertia of a group +of atomic positions with respect +to their center of geometry, : +
+ | (9) |
Note that all atomic masses are set to 1 for simplicity. This component must contain one +atoms {...} block to define the atom group, and returns a positive number, expressed in length +unit. +
List of keywords (see also 4.2, 4.12, 4.13 and 4.15 for additional options):
++
The variables discussed in this section quantify the rotations of macromolecules (or other quasi-rigid +objects) from a given set of reference coordinates to the current coordinates. Such rotations are +computed following the same method used for best-fit RMSDs (see rmsd and fittingGroup). The +underlying mathematical formalism is described in reference [4], and the implementation in +reference [1]. +
The first of the functions described is the orientation, which describes the full rotation as a unit +quaternion , +i.e. 4 numbers with one constraint (3 degrees of freedom). The quaternion + +is one of only two representations that are both complete and accurate, the other being a + + + unit matrix with 3 independent +parameters. Although +is used internally in the Colvars module for features such as the rmsd function and the fittingGroup +option, its direct use as a collective variable is more difficult, and mostly limited to fixed or moving +restraints. +
The two functions orientationAngle and orientationProj, with the latter being +the cosine of the former, represent the amplitude of the full rotation described by +, +regardless of the direction of its axis. As one-dimensional scalar variables, both orientationAngle and +orientationProj are a much reduced simplification of the full rotation. However, they can be used in a +variety of methods including both restraints and PMF computations. +
A slightly more complete parametrization is achieved by decomposing the full rotation into the two parameters, +tilt and spinAngle. These quantify the amplitudes of two independent sub-rotations away from a certain axis +, and around the same +axis , respectively. +The axis is chosen +by the user, and is by default the Z axis: under that choice, tilt is equivalent to the sine of the Euler “pitch" angle +, and spinAngle to the sum +of the other two angles, . +This parameterization is mathematically well defined for almost all full rotations, including small ones when +the current coordinates are almost completely aligned with the reference ones. However, a mathematical +singularity prevents using the spinAngle function near configurations where the value of tilt tilt is -1 (i.e. a +-180 rotation around +an axis orthogonal to ). +For these reasons, tilt and spinAngle are useful when the allowed rotations are known to have +approximately the same axis, and differ only in the magnitude of the corresponding angle. In +this use case, spinAngle measures the angle of the sub-rotation around the chosen axis +, whereas tilt measures +the dot product between +and the actual axis of the full rotation. +
Lastly, the traditional Euler angles are also available as the functions eulerPhi, eulerTheta and +eulerPsi. Altogether, these are sufficient to represent all three degrees of freedom of a full rotation. +However, they also suffer from the potential “gimbal lock" problem, which emerges whenever +, which +includes also the case where the full rotation is small. Under such conditions, the angles + and + +are both ill-defined and cannot be used as collective variables. For these reasons, +it is highly recommended that Euler angles are used only in simulations where their +range of applicability is known ahead of time, and excludes configurations where + +altogether. +
+ ++
The block orientation {...} returns the same optimal rotation used in the rmsd component to superimpose the coordinates + onto a set of reference +coordinates . Such component +returns a four dimensional vector , +with ; this quaternion +expresses the optimal rotation +according to the formalism in reference [4]. The quaternion + can also be +written as , where + is the angle and + the normalized axis of rotation; +for example, a rotation of 90 +around the axis is +expressed as “(0.707, 0.0, 0.0, 0.707)". The script quaternion2rmatrix.tcl provides Tcl functions for converting +to and from a +rotation matrix in a format suitable for usage in VMD. +
As for the component rmsd, the available options are atoms, refPositionsFile and refPositions. +
Note: refPositions and refPositionsFile define the set of positions from which the optimal rotation +is calculated, but this rotation is not applied to the coordinates of the atoms involved: it is used instead to +define the variable itself. +
List of keywords (see also 4.2, 4.12, 4.13 and 4.15 for additional options):
+Tip: stopping the rotation of a protein. To stop the rotation of an elongated macromolecule in +solution (and use an anisotropic box to save water molecules), it is possible to define a colvar with an +orientation component, and restrain it through the harmonic bias around the identity rotation, (1.0, +0.0, 0.0, 0.0). Only the overall orientation of the macromolecule is affected, and not its internal +degrees of freedom. The user should also take care that the macromolecule is composed by a single +chain, or disable wrapAll otherwise. +
+ ++
The block orientationAngle {...} accepts the same base options as the component +orientation: atoms, refPositions, refPositionsFile. The returned value is the angle of rotation + +between the current and the reference positions. This angle is expressed in degrees within the range +[0:180]. +
List of keywords (see also 4.2, 4.12, 4.13 and 4.15 for additional options):
++
The block orientationProj {...} accepts the same base options as the component orientation: +atoms, refPositions, refPositionsFile. The returned value is the cosine of the angle of rotation + +between the current and the reference positions. The range of values is [-1:1]. +
List of keywords (see also 4.2, 4.12, 4.13 and 4.15 for additional options):
++
The complete rotation described by orientation can optionally be decomposed into two +sub-rotations: one is a “spin" rotation around e, and the other a “tilt" rotation around an axis +orthogonal to e. The component spinAngle measures the angle of the “spin" sub-rotation around +e. +
List of keywords (see also 4.2, 4.12, 4.13 and 4.15 for additional options):
+The component spinAngle returns an angle (in degrees) within the periodic interval +. +
Note: the value of spinAngle is a continuous function almost everywhere, +with the exception of configurations with the corresponding “tilt" angle equal to +180 (i.e. the tilt +component is equal to ): +in those cases, spinAngle is undefined. If such configurations are expected, consider +defining a tilt colvar using the same axis e, and restraining it with a lower wall away from +. +
+ ++
The component tilt measures the cosine of the angle of the “tilt" sub-rotation, which +combined with the “spin" sub-rotation provides the complete rotation of a group of atoms. +The cosine of the tilt angle rather than the tilt angle itself is implemented, because the latter +is unevenly distributed even for an isotropic system: consider as an analogy the angle + in the +spherical coordinate system. The component tilt relies on the same options as spinAngle, +including the definition of the axis e. The values of tilt are real numbers in the interval +: the value + represents an orientation fully +parallel to e (tilt angle = 0), +and the value +represents an anti-parallel orientation. +
List of keywords (see also 4.2, 4.12, 4.13 and 4.15 for additional options):
++
Assuming the axes of the original frame are denoted as x, y, z and the axes of the rotated frame as X, +Y, Z, the line of nodes, N, can be defined as the intersection of the plane xy and XY. The axis +perpendicular to N and z is defined as P. In this case, as illustrated in the figure below, the complete +rotation described by orientation can optionally be decomposed into three Euler angles: +
++
Although Euler angles are more straightforward to use than quaternions, they are also potentially
+subject to the “gimbal lock" problem:
https://en.wikipedia.org/wiki/Gimbal_lock
which arises whenever ,
+including the common case when the simulated coordinates are near the reference coordinates.
+Therefore, a safe use of Euler angles as collective variables requires the use of restraints to avoid
+such singularities, such as done in reference [6] and in the protein-ligand binding NAMD
+tutorial.
+
The eulerPhi component accepts exactly the same options as orientation, and measures the +rotation angle from the x axis to the N axis. This angle is expressed in degrees within the periodic range +. +
List of keywords (see also 4.2, 4.12, 4.13 and 4.15 for additional options):
++
This component accepts exactly the same options as orientation, and measures the +rotation angle from the P axis to the Z axis. This angle is expressed in degrees within the range +. +
Warning: When this angle reaches +or , the +definition of orientation by euler angles suffers from the gimbal lock issue. You may need to apply a +restraint to keep eulerTheta away from the singularities. +
List of keywords (see also 4.2, 4.12, 4.13 and 4.15 for additional options):
++
This component accepts exactly the same options as orientation, and measures the rotation angle +from the N axis to the X axis. This angle is expressed in degrees within the periodic range +. +
List of keywords (see also 4.2, 4.12, 4.13 and 4.15 for additional options):
++ +
+
The cartesian {...} block defines a component returning a flat vector +containing the Cartesian coordinates of all participating atoms, in the order +. +
List of keywords (see also 4.2, 4.12, 4.13 and 4.15 for additional options):
++
The distancePairs {...} block defines a +-dimensional +variable that includes all mutual distances between the atoms of two groups. +
List of keywords (see also 4.2, 4.12, 4.13 and 4.15 for additional options):
+This component returns a -dimensional +vector of numbers, each ranging from +to the largest possible distance within the chosen boundary conditions. +
+ ++
The geometric path collective variables define the progress along a path, +, and the distance +from the path, . +These CVs are proposed by Leines and Ensing[7] , which differ from that[8] proposed +by Branduardi et al., and utilize a set of geometric algorithms. The path is defined +as a series of frames in the atomic Cartesian coordinate space or the CV space. + and + are +computed as +
++ | (10) |
+ | (11) |
where +is the vector connecting the current position to the closest frame, + +is the vector connecting the second closest frame to the current position, + +is the vector connecting the closest frame to the third closest frame, and + +is the vector connecting the second closest frame to the closest frame. + and + +are the current index of the closest frame and the total number of frames, +respectively. If the current position is on the left of the closest reference frame, the + in + turns to +the positive sign. Otherwise it turns to the negative sign. +
The equations above assume: (i) the frames are equidistant and (ii) the second and the third closest +frames are neighbouring to the closest frame. When these assumptions are not satisfied, this set of path +CV should be used carefully. +
+ ++
In the gspath {...} and the gzpath {...} block all vectors, namely + and + +are defined in atomic Cartesian coordinate space. More specifically, +, where + is the +-th atom specified +in the atoms block. , + + +where means +the -th atom +of the -th +reference frame. +
List of keywords (see also 4.2, 4.12, 4.13 and 4.15 for additional options):
++
List of keywords (see also 4.2, 4.12, 4.13 and 4.15 for additional options):
+The usage of gzpath and gspath is illustrated below:
+colvar {+
# Progress along the path
name gs
# The path is defined by 5 reference frames (from string-00.pdb to string-04.pdb)
# Use atomic coordinate from atoms 1, 2 and 3 to compute the path
gspath {
atoms {atomnumbers { 1 2 3 }}
refPositionsFile1 string-00.pdb
refPositionsFile2 string-01.pdb
refPositionsFile3 string-02.pdb
refPositionsFile4 string-03.pdb
refPositionsFile5 string-04.pdb
}
}
colvar {
# Distance from the path
name gz
# The path is defined by 5 reference frames (from string-00.pdb to string-04.pdb)
# Use atomic coordinate from atoms 1, 2 and 3 to compute the path
gzpath {
atoms {atomnumbers { 1 2 3 }}
refPositionsFile1 string-00.pdb
refPositionsFile2 string-01.pdb
refPositionsFile3 string-02.pdb
refPositionsFile4 string-03.pdb
refPositionsFile5 string-04.pdb
}
}
+
This is a helper CV which can be defined as a linear combination of other CVs. It maybe useful when +you want to define the gspathCV {...} and the gzpathCV {...} as combinations of other CVs. Total +forces (required by ABF) of this CV are not available. + + +
+ ++
This is a helper CV which can be defined as a mathematical expression (see 4.16) of other CVs by +using customFunction. Currently only the scalar type of customFunction is supported. If customFunction +is not provided, this component falls back to linearCombination. It maybe useful when you want to define +the gspathCV {...}, the gzpathCV {...} and NeuralNetwork {...} as combinations of other CVs. Total +forces (required by ABF) of this CV are not available. +
+ ++
In the gspathCV {...} and the gzpathCV {...} block all vectors, namely + and + are defined in CV space. +More specifically, , +where is +the -th CV. +, where + means the +-th CV of +the -th +reference frame. It should be note that these two CVs requires the pathFile option, which specifies a +path file. Each line in the path file contains a set of space-seperated CV value of the reference frame. The +sequence of reference frames matches the sequence of the lines. +
List of keywords (see also 4.2, 4.12, 4.13 and 4.15 for additional options):
++
List of keywords (see also 4.2, 4.12, 4.13 and 4.15 for additional options):
+The usage of gzpathCV and gspathCV is illustrated below:
+colvar {+
# Progress along the path
name gs
# Path defined by the CV space of two dihedral angles
gspathCV {
pathFile ./path.txt
dihedral {
name 001
group1 {atomNumbers {5}}
group2 {atomNumbers {7}}
group3 {atomNumbers {9}}
group4 {atomNumbers {15}}
}
dihedral {
name 002
group1 {atomNumbers {7}}
group2 {atomNumbers {9}}
group3 {atomNumbers {15}}
group4 {atomNumbers {17}}
}
}
}
colvar {
# Distance from the path
name gz
gzpathCV {
pathFile ./path.txt
dihedral {
name 001
group1 {atomNumbers {5}}
group2 {atomNumbers {7}}
group3 {atomNumbers {9}}
group4 {atomNumbers {15}}
}
dihedral {
name 002
group1 {atomNumbers {7}}
group2 {atomNumbers {9}}
group3 {atomNumbers {15}}
group4 {atomNumbers {17}}
}
}
}
+
The arithmetic path collective variable in CV space uses a similar formula as the one proposed by Branduardi[8] et al., +except that it computes +and in +CV space instead of RMSDs in Cartesian space. Moreover, this implementation allows different +coefficients for each CV components as described in [9]. Assuming a path is composed of + reference frames and +defined in an -dimensional CV +space, then the equations of +and of +the path are +
++ | (12) |
+ | (13) |
where is the +coefficient(weight) of the -th +CV, is the value +of -th CV of +-th reference frame +and is the value of +-th CV of current frame. + is a parameter to +smooth the variation of +and . It should be +noted that the index +ranges from to +, and the definition +of is normalized +by . Consequently, +the scope of +is . +
+ ++
This colvar component computes the +variable. +
List of keywords (see also 4.2, 4.12, 4.13 and 4.15 for additional options):
++
This colvar component computes the +variable. Options are the same as in 4.10.1. +
The usage of azpathCV and aspathCV is illustrated below: + + +
+colvar {+
# Progress along the path
name as
# Path defined by the CV space of two dihedral angles
aspathCV {
pathFile ./path.txt
weights {1.0 1.0}
lambda 0.005
dihedral {
name 001
group1 {atomNumbers {5}}
group2 {atomNumbers {7}}
group3 {atomNumbers {9}}
group4 {atomNumbers {15}}
}
dihedral {
name 002
group1 {atomNumbers {7}}
group2 {atomNumbers {9}}
group3 {atomNumbers {15}}
group4 {atomNumbers {17}}
}
}
}
colvar {
# Distance from the path
name az
azpathCV {
pathFile ./path.txt
weights {1.0 1.0}
lambda 0.005
dihedral {
name 001
group1 {atomNumbers {5}}
group2 {atomNumbers {7}}
group3 {atomNumbers {9}}
group4 {atomNumbers {15}}
}
dihedral {
name 002
group1 {atomNumbers {7}}
group2 {atomNumbers {9}}
group3 {atomNumbers {15}}
group4 {atomNumbers {17}}
}
}
}
+
This CV computes a special case of Eq. 12, where + is the +-th atomic +position, is the +-th atomic position of +the -th reference frame. +The subtraction is +actually calculated as , +where is a +3x3 rotation matrix that minimizes the RMSD between the current atomic positions of simulation and the +-th reference +frame. Bold +is used since an atomic position is a vector. +
List of keywords (see also 4.2, 4.12, 4.13 and 4.15 for additional options):
++
Similar to aspath, this CV computes a special case of Eq. 13, and shares the same options as +aspath. +
The usage of azpath and aspath is illustrated below:
+colvar {+
# Progress along the path
name as
# The path is defined by 5 reference frames (from string-00.pdb to string-04.pdb)
# Use atomic coordinate from atoms 1, 2 and 3 to compute the path
aspath {
atoms {atomnumbers { 1 2 3 }}
refPositionsFile1 string-00.pdb
refPositionsFile2 string-01.pdb
refPositionsFile3 string-02.pdb
refPositionsFile4 string-03.pdb
refPositionsFile5 string-04.pdb
}
}
colvar {
# Distance from the path
name az
# The path is defined by 5 reference frames (from string-00.pdb to string-04.pdb)
# Use atomic coordinate from atoms 1, 2 and 3 to compute the path
azpath {
atoms {atomnumbers { 1 2 3 }}
refPositionsFile1 string-00.pdb
refPositionsFile2 string-01.pdb
refPositionsFile3 string-02.pdb
refPositionsFile4 string-03.pdb
refPositionsFile5 string-04.pdb
}
}
+
This colvar component computes a non-linear combination of other scalar colvar components, where +the transformation is defined by a dense neural network.[10] The network can be optimized using any +framework, and its parameters are provided to Colvars in plain text files, as detailed below. +An example Python script to export the parameters of a TensorFlow model is provided in +colvartools/extract_weights_biases.py in the Colvars source tree. +
+The output of the -th +node of a -th +layer that has +nodes is computed by +
++ | (14) |
where is the activation +function of the -th +layer, is the weight of +-th node with respect +to the -th output of +previous layer, and +is the bias of -th +node of -th +layer. +
List of keywords (see also 4.2, 4.12, 4.13 and 4.15 for additional options):
+An example of configuration using NeuralNetwork is shown below:
+colvar {+
# Define a neural network with 2 layers
# The inputs are two torsion angles
# and the first node at the output layer is used as the final CV
name nn_output_1
NeuralNetwork {
output_component 0
layer1_WeightsFile dense_1_weights.txt
layer1_BiasesFile dense_1_biases.txt
layer1_activation tanh
layer2_WeightsFile dense_2_weights.txt
layer2_BiasesFile dense_2_biases.txt
layer2_activation tanh
# The component coefficient is used for normalization
componentCoeff 180.0
dihedral {
name 001
# normalization factor 1.0/180.0
componentCoeff 0.00555555555555555556
group1 {atomNumbers {5}}
group2 {atomNumbers {7}}
group3 {atomNumbers {9}}
group4 {atomNumbers {15}}
}
dihedral {
name 002
# normalization factor 1.0/180.0
componentCoeff 0.00555555555555555556
group1 {atomNumbers {7}}
group2 {atomNumbers {9}}
group3 {atomNumbers {15}}
group4 {atomNumbers {17}}
}
}
}
+
The following options can be used for any of the above colvar components in order to obtain a +polynomial combination.
++
Certain components, such as dihedral or dihedral, compute angles that lie in a periodic interval +between +and . +When computing pairwise distances between values of those angles (e.g. for the sake of computing +restraint potentials, or sampling PMFs), periodicity is taken into account by following the minimum-image +convention. +
Additionally, several other components, such as distanceZ, support optional periodicity if this is +provided in the configuration. +
The following keywords can be used within periodic components, or within custom variables +(4.16)). + + +
+Note: using linear/polynomial combinations of periodic components (see 4.15), or other custom or +scripted function may invalidate the periodicity. Use such combinations carefully: estimate the range of +possible values of each component in a given simulation, and make use of wrapAround to limit this +problem whenever possible. +
+ ++
When one of the following components are used, the defined colvar returns a value that is not a scalar +number:
+The distance between two 3-dimensional unit vectors is computed as the angle +between them. The distance between two quaternions is computed as the angle +between the two 4-dimensional unit vectors: because the orientation represented by + is the same as the +one represented by , +distances between two quaternions are computed considering the closest of the two symmetric +images. +
Non-scalar components carry the following restrictions:
+Note: while these restrictions apply to individual colvars based on non-scalar components, no limit is +set to the number of scalar colvars. To compute multi-dimensional histograms and PMFs, use sets of +scalar colvars of arbitrary size. +
+ +In addition to the restrictions due to the type of value computed (scalar or non-scalar), a final restriction +can arise when calculating total force (outputTotalForce option or application of a abf bias). total forces +are available currently only for the following components: distance, distanceZ, distanceXY, angle, +dihedral, rmsd, eigenvector and gyration. + + +
+
To extend the set of possible definitions of colvars +, multiple +components +can be summed with the formula:
+ | (15) |
where each component appears with a unique coefficient + (1.0 by default) the +positive integer exponent +(1 by default). +
Any set of components can be combined within a colvar, provided that they return the same type of +values (scalar, unit vector, vector, or quaternion). By default, the colvar is the sum of its components. +Linear or polynomial combinations (following equation (15)) can be obtained by setting the following +parameters, which are common to all components:
+Example: To define the average of a colvar across different parts of the system, +simply define within the same colvar block a series of components of the same type +(applied to different atom groups), and assign to each component a componentCoeff of +. + + +
+ ++
Collective variables may be defined by specifying a custom function of multiple components, i.e. an +analytical expression that is more general than the linear combinations described in 4.15. Such +expression is parsed and calculated by Lepton, the lightweight expression parser written by +Peter Eastman (https://simtk.org/projects/lepton) that produces efficient evaluation +routines for both the expression and its derivatives. Although Lepton is generally available +in most applications and builds where Colvars is included, it is best to check section 9 to +confirm. +
+The expression may use the collective variable components as variables, referred to by their +user-defined name. Scalar elements of vector components may be accessed by appending a 1-based +index to their name, as in the example below. When implementing generic functions of Cartesian +coordinates rather than functions of existing components, the cartesian component may be particularly +useful. A scalar-valued custom variable may be manually defined as periodic by providing the keyword +period, and the optional keyword wrapAround, with the same meaning as in periodic components (see +4.13 for details). A vector variable may be defined by specifying the customFunction parameter +several times: each expression defines one scalar element of the vector colvar, as in this +example: + + +
+colvar {+
name custom
# A 2-dimensional vector function of a scalar x and a 3-vector r
customFunction cos(x) * (r1 + r2 + r3)
customFunction sqrt(r1 * r2)
distance {
name x
group1 { atomNumbers 1 }
group2 { atomNumbers 50 }
}
distanceVec {
name r
group1 { atomNumbers 10 11 12 }
group2 { atomNumbers 20 21 22 }
}
}
Numeric constants may be given in either decimal or exponential form (e.g. 3.12e-2). An expression
+may be followed by definitions for intermediate values that appear in the expression, separated by
+semicolons. For example, the expression:
a^2 + a*b + b^2; a = a1 + a2; b = b1 + b2
is exactly equivalent to:
(a1 + a2)^2 + (a1 + a2) * (b1 + b2) + (b1 + b2)^2.
The definition of an intermediate value may itself involve other intermediate values. All uses of a value
+must appear before that value's definition.
+
Lepton supports the usual arithmetic operators +, -, *, /, and ^ (power), as well as the following +functions: +
++
+sqrt | Square root | +
exp | Exponential | +
log | Natural logarithm | +
erf | Error function |
erfc | Complementary error function | +
sin | Sine (angle in radians) | +
cos | Cosine (angle in radians) | +
sec | Secant (angle in radians) | +
csc | Cosecant (angle in radians) | +
tan | Tangent (angle in radians) | +
cot | Cotangent (angle in radians) | +
asin | Inverse sine (in radians) | +
acos | Inverse cosine (in radians) | +
atan | Inverse tangent (in radians) | +
atan2 | Two-argument inverse tangent (in radians) | +
sinh | Hyperbolic sine | +
cosh | Hyperbolic cosine | +
tanh | Hyperbolic tangent | +
abs | Absolute value | +
floor | Floor | +
ceil | Ceiling | +
min | Minimum of two values | +
max | Maximum of two values | +
delta | if , 0 otherwise | +
step | if , 1 if | +
select | if , otherwise | +
+
Many algorithms require the definition of two boundaries and a bin width for each colvar, which are +necessary to compute discrete “states" for a collective variable's otherwise continuous values. The +following keywords define these parameters for a specific variable, and will be used by all bias that refer to +that variable unless otherwise specified. +
+Further, many restraints such as harmonic potentials (6.6), harmonic walls (6.8) and linear + restraints (6.9) also use this parameter to define the expected fluctuations of the colvar, + allowing to express the force constant in terms of this unit. This is most useful with multi-dimensional + restraints acting on variables that have very different units (for examples, working with length +unit and degrees + simultaneously): a single force constant can be used for all, which is converted to the respective + unit of each variable when forces are applied (the are printed at initialization time. +
+
+
The following options enable extended-system dynamics, where a colvar is coupled to an +additional degree of freedom (fictitious particle) by a harmonic spring. This extended coordinate +masks the colvar and replaces it transparently from the perspective of biasing and analysis +methods. Biasing forces are then applied to the extended degree of freedom, and the actual +geometric colvar (function of Cartesian coordinates) only feels the force from the harmonic +spring. This is particularly useful when combined with an abf bias to perform eABF simulations +(6.3). + + +
Note that for some biases (harmonicWalls, histogram), this masking behavior is controlled by the +keyword bypassExtendedLagrangian. Specifically for harmonicWalls, the default behavior is to bypass +extended Lagrangian coordinates and act directly on the actual colvars. +
++
+
+
Run-time calculations of statistical properties that depend explicitly on time can be performed for +individual collective variables. Currently, several types of time correlation functions, running averages and +running standard deviations are implemented. For run-time computation of histograms, please see the +histogram bias (6.11). + + +
++
+ ++
To define collective variables, atoms are usually selected as groups. Each group is defined using an +identifying keyword that is unique in the context of the specific colvar component (e.g. for a distance +component, the two groups are identified by the group1 and group2 keywords). +
The group's identifying keyword is followed by a brace-delimited block containing selection keywords +and other parameters, one of which is name:
+Other keywords are documented in the following sections. +
In the example below, the gyration component uses the identifying keyword atoms to define its +associated group, which is defined based on the index group named “Protein-H". Optionally, the group is +also given the unique name “my_protein", so that atom groups defined later in the Colvars configuration +may refer to it.
+colvar {+
name rgyr
gyration {
atoms {
name my_protein
indexGroup Protein-H
}
}
}
+
Selection keywords may be used individually or in combination with each other, and each can be
+repeated any number of times. Selection is incremental: each keyword adds the corresponding
+atoms to the selection, so that different sets of atoms can be combined. However, atoms
+included by multiple keywords are only counted once. Below is an example configuration
+for an atom group called “atoms". Note: this is an unusually varied combination of selection
+keywords, demonstrating how they can be combined together: most simulations only use one of
+them.
atoms {+
# add atoms 1 and 3 to this group (note: first atom in the system is 1)
atomNumbers {
1 3
}
# add atoms starting from 20 up to and including 50
atomNumbersRange 20-50
# add index group (requires a .ndx file to be provided globally)
indexGroup Water
}
The resulting selection includes atoms 1 and 3, those between 20 and 50, and those in the index +group called “Water". The indices of this group are read from the file provided by the global keyword +indexFile. +
The complete list of selection keywords available in LAMMPS is: +
++
The following options define an automatic calculation of an optimal translation (centerToReference) or +optimal rotation (rotateToReference), that superimposes the positions of this group to a provided set of +reference coordinates. Alternately, centerToOrigin applies a translation to place the geometric +center of the group at (0, 0, 0). This can allow, for example, to effectively remove from certain +colvars the effects of molecular tumbling and of diffusion. Given the set of atomic positions +, the colvar + can be defined on a set of +roto-translated positions . + + + is the geometric +center of the , + is the optimal rotation matrix +to the reference positions and +is the geometric center of the reference positions. +
Components that are defined based on pairwise distances are naturally invariant under global +roto-translations. Other components are instead affected by global rotations or translations: however, they +can be made invariant if they are expressed in the frame of reference of a chosen group of atoms, using +the centerToReference and rotateToReference options. Finally, a few components are defined by +convention using a roto-translated frame (e.g. the minimal RMSD): for these components, +centerToReference and rotateToReference are enabled by default. In typical applications, the default +settings result in the expected behavior. +
+Warning on rotating frames of reference and periodic boundary conditions. +rotateToReference affects coordinates that depend on minimum-image distances in periodic +boundary conditions (PBC). After rotation of the coordinates, the periodic cell vectors become irrelevant: +the rotated system is effectively non-periodic. A safe way to handle this is to ensure that the relevant +inter-group distance vectors remain smaller than the half-size of the periodic cell. If this is not desirable, +one should avoid the rotating frame of reference, and apply orientational restraints to the reference group +instead, in order to keep the orientation of the reference group consistent with the orientation of the +periodic cell. +
+Warning on rotating frames of reference and ABF. + Note that centerToReference and rotateToReference may affect the Jacobian derivative of colvar +components in a way that is not taken into account by default. Be careful when using these options in ABF +simulations or when using total force values. +
+The following options have default values appropriate for the vast majority of applications, and are only +provided to support rare, special cases.
++
In simulations with periodic boundary conditions (PBCs), Colvars computes all distances between two +points following the nearest-image convention, using PBC parameters provided by LAMMPS. However, +many common variables rely on a consistent definition of the center of mass or geometry of a group of +atoms. This requires the use of unwrapped coordinates, which are not subject to “jumps" when they +diffuse across periodic boundaries. +
LAMMPS controls the internal availability of unwrapped coordinates using the unwrap keyword in 3.2, +which defaults to yes. The user should determine whether it is appropriate to maintain the default value of +unwrap, depending on the specifics of each system. +
In general, internal coordinate wrapping by LAMMPS does not affect the calculation of colvars if each +atom group satisfies one or more of the following: +
+
In simulations performed with MD simulation engines such as GROMACS, LAMMPS or NAMD, the +computation of energy and forces is distributed (i.e., parallelized) over multiple nodes, as well as over the +CPU/GPU cores of each node. When Colvars is enabled, atomic coordinates are collected on a single +CPU core, where collective variables and their biases are computed. This means that in the +case of simulations that are already being run over large numbers of nodes, or inside a GPU, +a Colvars calculation may produce a significant overhead. This overhead comes from the +combined cost of two operation: transmitting atomic coordinates, and computing functions of the +same. +
Performance can be improved in multiple ways: +
++
+ ++
A biasing or analysis method can be applied to existing collective variables by using the following +configuration:
+biastype {+
name name +
colvars xi1 xi2 ...
parameters
}
The keyword biastype +indicates the method of choice. There can be multiple instances of the same method, e.g. using multiple +harmonic blocks allows defining multiple restraints. +
All biasing and analysis methods implemented recognize the following options:
++
The methods implemented here provide a variety of estimators of conformational free-energies. These +are carried out at run-time, or with the use of post-processing tools over the generated output files. The +specifics of each estimator are discussed in the documentation of each biasing or analysis +method. +
A special case is the traditional thermodynamic integration (TI) method, used for example to compute +potentials of mean force (PMFs). Most types of restraints (6.6, 6.8, 6.9, ...) as well as metadynamics (6.5) +can optionally use TI alongside their own estimator, based on the keywords documented +below. +
+In adaptive biasing force (ABF) (6.2) the above keywords are not recognized, because their +functionality is either included already (conventional ABF) or not available (extended-system +ABF). +
+ ++
For a full description of the Adaptive Biasing Force method, see reference [12]. For details about this +implementation, see references [13] and [14]. When publishing research that makes use of this +functionality, please cite references [12] and [14]. +
An alternate usage of this feature is the application of custom tabulated biasing potentials to one or +more colvars. See inputPrefix and updateBias below. +
Combining ABF with the extended Lagrangian feature (4.19) of the variables produces the +extended-system ABF variant of the method (6.3). +
ABF is based on the thermodynamic integration (TI) scheme for computing +free energy profiles. The free energy as a function of a set of collective variables + is defined from the +canonical distribution of , +: +
++ | (16) |
In the TI formalism, the free energy is obtained from its gradient, which is generally calculated in the form of the +average of a force +exerted on , taken +over an iso- +surface: +
++ | (17) |
Several formulae that take the form of (17) have been proposed. This implementation +relies partly on the classic formulation [15], and partly on a more versatile scheme originating +in a work by Ruiz-Montero et al. [16], generalized by den Otter [17] and extended to +multiple variables by Ciccotti et al. [18]. Consider a system subject to constraints of the form +. Let + be arbitrarily chosen +vector fields () +verifying, for all , +, and +: +
+ ++
+then the following holds [18]: +
++ | (20) |
where is the potential +energy function. +can be interpreted as the direction along which the force acting on variable + is measured, +whereas the second term in the average corresponds to the geometric entropy contribution that appears as a Jacobian +correction in the classic formalism [15]. Condition (18) states that the direction along which the total force on + is measured is orthogonal to +the gradient of , which means +that the force measured on +does not act on . +
Equation (19) implies that constraint forces are orthogonal to the directions along which the free +energy gradient is measured, so that the measurement is effectively performed on unconstrained degrees +of freedom. +
In the framework of ABF, is +accumulated in bins of finite size , +thereby providing an estimate of the free energy gradient according to equation (17). The biasing +force applied along the collective variables to overcome free energy barriers is calculated +as: +
++ | (21) |
where +denotes the current estimate of the free energy gradient at the current point + in the collective +variable subspace, and +is a scaling factor that is ramped from 0 to 1 as the local number of samples + +increases to prevent non-equilibrium effects in the early phase of the simulation, when the gradient +estimate has a large variance. See the fullSamples parameter below for details. +
As sampling of the phase space proceeds, the estimate + is +progressively refined. The biasing force introduced in the equations of motion guarantees that in the bin centered +around , +the forces acting along the selected collective variables average to zero over time. Eventually, as the +underlying free energy surface is canceled by the adaptive bias, evolution of the system along + is +governed mainly by diffusion. Although this implementation of ABF can in principle be used in +arbitrary dimension, a higher-dimension collective variable space is likely to be difficult to +sample and visualize. Most commonly, the number of variables is one or two, sometimes +three. +
+ ++
The following conditions must be met for an ABF simulation to be possible and to produce an accurate +estimate of the free energy profile. Note that these requirements do not apply when using the +extended-system ABF method (6.3). +
+
+
ABF depends on parameters from each collective variable to define the grid on which free energy +gradients are computed: see 4.17 for detauls. Other parameters to control the ABF runtime can be set in +the ABF configuration block: +
++
The ABF bias produces the following files, all in multicolumn text format (3.8.4):
+Also in the case of one-dimensional calculations, the ABF bias can report its current energy via +outputEnergy; in higher dimensions, such computation is not implemented and the energy reported is +zero. + + +
If several ABF biases are defined concurrently, their name is inserted to produce unique filenames for +output, as in output.abf1.grad. This should not be done routinely and could lead to meaningless results: +only do it if you know what you are doing! +
If the colvar space has been partitioned into sections (windows) in which independent ABF +simulations have been run, the resulting data can be merged using the inputPrefix option described +above (a run of 0 steps is enough). +
+ ++
The ABF method only produces an estimate of the free energy gradient. The free energy surface itself +can be computed depending on the value of integrate and related options. +
++ + | (22) |
wehere is the estimated + gradient at time , + and + is corresponding free energy surface. The free energy surface is written under the file name + <outputName>.pmf, in a plain text format (see 3.8.4) that can be read by most data plotting and + + + analysis programs (e.g. Gnuplot). Periodic boundary conditions are applied to periodic coordinates, + and Neumann boundary conditions otherwise (imposed free energy gradient at the boundary + of the domain). The grid used for free energy discretization is extended by one point + along non-periodic coordinates, but not along periodic coordinates. See ref. [19] for + details. +
In dimension 4 or greater, integrating the discretized gradient becomes non-trivial. The +standalone utility abf_integrate is provided to perform that task. Because 4D ABF calculations +are uncommon, this tool is practically deprecated by the Poisson integration described +above. +
abf_integrate reads the gradient data and uses it to perform a Monte-Carlo (M-C) simulation in +discretized collective variable space (specifically, on the same grid used by ABF to discretize the free +energy gradient). By default, a history-dependent bias (similar in spirit to metadynamics) is used: at each +M-C step, the bias at the current position is incremented by a preset amount (the hill height). Upon +convergence, this bias counteracts optimally the underlying gradient; it is negated to obtain the estimate +of the free energy surface. +
abf_integrate is invoked using the command-line:
abf_integrate <gradient_file> [-n <nsteps>] [-t <temp>] [-m (0|1)] [-h <hill_height>] [-f
+<factor>]
+
The gradient file name is provided first, followed by other parameters in any order. They are described +below, with their default value in square brackets:
+Using the default values of all parameters should give reasonable results in most cases. +
abf_integrate produces the following output files:
+Note: Typically, the “deviation" vector field does not vanish as the integration converges. This happens +because the numerical estimate of the gradient does not exactly derive from a potential, due to numerical +approximations used to obtain it (finite sampling and discretization on a grid). See Ref.[19] for +details. +
+ ++
Extended-system ABF (eABF) is a variant of ABF (6.2) where the bias is not applied +directly to the collective variable, but to an extended coordinate (“fictitious variable") + that +evolves dynamically according to Newtonian or Langevin dynamics. Such an extended coordinate is +enabled for a given colvar using the extendedLagrangian and associated keywords (4.19). The theory of +eABF and the present implementation are documented in detail in reference [20]. + + +
Defining an ABF bias on a colvar wherein the extendedLagrangian option is active will perform eABF +automatically; there is no dedicated option. +
The extended variable is +coupled to the colvar by the +harmonic potential . Under eABF +dynamics, the adaptive bias on +is the running estimate of the average spring force:
+ | (23) |
where the angle brackets indicate a canonical average conditioned by +. +At long simulation times, eABF produces a flat histogram of the extended variable +, and a flattened +histogram of , +whose exact shape depends on the strength of the coupling as defined by extendedFluctuation +in the colvar. Coupling should be somewhat loose for faster exploration and convergence, +but strong enough that the bias does help overcome barriers along the colvar +.[20] +Distribution of the colvar may be assessed by plotting its histogram, which is written to +the output.zcount file in every eABF simulation. Note that a histogram bias (6.11) +applied to an extended-Lagrangian colvar will access the extended degree of freedom +, not the original +colvar ; +however, the joint histogram may be explicitly requested by listing the name of the colvar twice in a row +within the colvars parameter of the histogram block. +
The eABF PMF is that of the coordinate , +it is not exactly the free energy profile of . +That quantity can be calculated based on the CZAR estimator. +
+ ++
The corrected z-averaged restraint (CZAR) estimator is described in detail in reference [20]. It is +computed automatically in eABF simulations, regardless of the number of colvars involved. Note that ABF +may also be applied on a combination of extended and non-extended colvars; in that case, CZAR still +provides an unbiased estimate of the free energy gradient. +
CZAR estimates the free energy gradient as:
+ | (24) |
where is the colvar, + is the extended variable +harmonically coupled to +with a force constant , +and is the observed +distribution (histogram) of , +affected by the eABF bias. +
Parameters for the CZAR estimator are:
+Similar to ABF, the CZAR estimator produces two output files in multicolumn text format (3.8.4): +
+The sampling histogram associated with the CZAR estimator is the +-histogram, +which is written in the file output.zcount. +
+ ++
This implements the Adiabatic Bias Molecular Dynamics (ABMD) method of Marchi and Ballone [21], +sometimes referred to as ratchet-and-pawl or ratcheted MD. ABMD is a non-equilibrium process that +enhances the motion of a scalar colvar in a given direction. For simplicity, the case of an increasing value +is described below, but enhancing downward motion of the variable is also supported via the decreasing +flag. +
ABMD does not directly push the variable forward, but prevents it from backtracking by applying a time-dependent +half-harmonic potential , +the center of which is the highest value attained by the variable so far (its high-water mark). This design +implies that the bias is conservative at all times and therefore exerts zero net work, hence the “adiabatic" +qualifier: +
++ | (25) |
where is the high-water +mark at time , bounded by a +user-defined stopping value : +
++ | (26) |
Note: because the ABMD potential in eq. 25 is never defined for more than one variable, no internal unit conversion +is applied to : +this behavior is different from other restraints available in Colvars, such as the harmonic wall restraints in +6.8. +
Besides the name of the biased variable specified by the colvars keyword, the tunable parameters of ABMD are the +force constant and +the stopping value , +set by the following user keywords: +
+ABMD also supports the following common bias parameters:
++
The metadynamics method uses a history-dependent potential [22] that generalizes to +any type of colvars the conformational flooding [23] and local elevation [24] methods, +originally formulated to use as colvars the principal components of a covariance matrix +or a set of dihedral angles, respectively. The metadynamics potential on the colvars + is +defined as:
+ | (27) |
where +is the history-dependent potential acting on the current values of the colvars +, +and depends only parametrically on the previous values of the colvars. + is constructed as a +sum of -dimensional +repulsive Gaussian “hills", whose height is a chosen energy constant +, +and whose centers are the previously explored configurations +. +
During the simulation, the system evolves towards the nearest minimum of the “effective" potential of mean +force , +which is the sum of the “real" underlying potential of mean force + and the the +metadynamics potential, . +Therefore, at any given time the probability of observing the configuration + is proportional +to : +this is also the probability that a new Gaussian “hill" is added at that configuration. +If the simulation is run for a sufficiently long time, each local minimum is canceled out +by the sum of the Gaussian “hills". At that stage the “effective" potential of mean force + is constant, and + is an estimator of the “real" +potential of mean force , +save for an additive constant:
+ | (28) |
Such estimate of the free energy can be provided by enabling writeFreeEnergyFile. +Assuming that the set of collective variables includes all relevant degrees of freedom, the +predicted error of the estimate is a simple function of the correlation times of the colvars +, and of the user-defined +parameters , + and + + + +[25]. In typical applications, a good rule of thumb can be to choose the ratio + much smaller +than , where + is the longest +among 's +correlation times: +then dictates the resolution of the calculated PMF. +
If the metadynamics parameters are chosen correctly, after an equilibration time, +, +the estimator provided by eq. 28 oscillates on time around the “real" free energy, thereby a +better estimate of the latter can be obtained as the time average of the bias potential after + +[26, 27]:
+ | (29) |
where +is the time after which the bias potential grows (approximately) evenly during the simulation and + is the +total simulation time. The free energy calculated according to eq. 29 can thus be obtained averaging on +time multiple time-dependent free energy estimates, that can be printed out through the keyword +keepFreeEnergyFiles. An alternative is to obtain the free energy profiles by summing the hills +added during the simulation; the hills trajectory can be printed out by enabling the option +writeHillsTrajectory. +
+ ++
In typical scenarios the Gaussian hills of a metadynamics potential are interpolated and summed +together onto a grid, which is much more efficient than computing each hill independently at every +step (the keyword useGrids is on by default). This numerical approximation typically yields +negligible errors in the resulting PMF [1]. However, due to the finite thickness of the Gaussian +function, the metadynamics potential would suddenly vanish each time a variable exceeds its grid +boundaries. +
To avoid such discontinuity the Colvars metadynamics code will keep an explicit copy +of each hill that straddles a grid's boundary, and will use it to compute metadynamics +forces outside the grid. This measure is taken to protect the accuracy and stability of +a metadynamics simulation, except in cases of “natural" boundaries (for example, the + interval +of an angle colvar) or when the flags hardLowerBoundary and hardUpperBoundary are explicitly set +by the user. Unfortunately, processing explicit hills alongside the potential and force grids +could easily become inefficient, slowing down the simulation and increasing the state file's +size. +
In general, it is a good idea to define a repulsive potential to avoid hills from coming too close to the
+grid's boundaries, for example as a harmonicWalls restraint (see 6.8).
+
Example: Using harmonic walls to protect the grid's boundaries.
+colvar {+
name r
distance { ... }
upperBoundary 15.0
width 0.2
}
metadynamics {
name meta_r
colvars r
hillWeight 0.001
hillWidth 2.0
}
harmonicWalls {
name wall_r
colvars r
upperWalls 13.0
upperWallConstant 2.0
}
In the colvar r, the distance function used has a lowerBoundary automatically set to 0 by +default, thus the keyword lowerBoundary itself is not mandatory and hardLowerBoundary +is set to yes internally. However, upperBoundary does not have such a “natural" choice of +value. The metadynamics potential meta_r will individually process any hill whose center is too +close to the upperBoundary, more precisely within fewer grid points than 6 times the Gaussian + + + +parameter plus one. It goes without saying that if the colvar r represents a distance between two +freely-moving molecules, it will cross this “threshold" rather frequently. +
In this example, where the value of hillWidth +() amounts +to 2 grid points, the threshold is 6+1 = 7 grid points away from upperBoundary. In explicit units, the width +of is + 0.2 Å, and the +threshold is 15.0 - 70.2 += 13.6 Å. +
The wall_r restraint included in the example prevents this: the position of its upperWall is 13 Å, i.e. 3 grid +points below the buffer's threshold (13.6 Å). For the chosen value of upperWallConstant, the energy of the wall_r +bias at r = += 13.6 Å is:
+ |
which results in a relative probability + that r +crosses the threshold. The probability that r exceeds upperBoundary, which is further away, has +also become vanishingly small. At that point, you may want to set hardUpperBoundary to +yes for r, and let meta_r know that no special treatment near the grid's boundaries will be +needed. +
What is the impact of the wall restraint onto the PMF? Not a very complicated one: the PMF reconstructed +by metadynamics will simply show a sharp increase in free-energy where the wall potential kicks in +(r +13 Å). You may then choose between using the PMF only up until that point and discard the rest, or +subtracting the energy of the harmonicWalls restraint from the PMF itself. Keep in mind, however, that the +statistical convergence of metadynamics may be less accurate where the wall potential is +strong. +
In summary, although it would be simpler to set the wall's position upperWall and the grid's boundary +upperBoundary to the same number, the finite width of the Gaussian hills calls for setting the former +strictly within the latter. +
+ ++
To enable a metadynamics-based calculation, a metadynamics {...} block must be included in the +Colvars configuration file. +
By default, metadynamics bias energy and forces will be recorded onto a grid, the parameters of +which can be defined within the definition of each colvar, as described in 4.17. +
Other required keywords will be specified within the metadynamics block: these +are colvars (the names of the variables involved), hillWeight (the weight parameter +), and the +widths +of the Gaussian hills in each dimension that can be given either as the single dimensionless parameter +hillWidth, or explicitly for each colvar with gaussianSigmas. +
++
When interpolating grids are enabled (default behavior), the PMF is written by default every +colvarsRestartFrequency steps to the file output.pmf in multicolumn text format (3.8.4). The following +two options allow to disable or control this behavior and to track statistical convergence: +
+The following options control the computational cost of metadynamics calculations, but do not affect +results. Default values are chosen to minimize such cost with no loss of accuracy. + +
+
The ensemble-biased metadynamics (EBMetaD) approach [28] is designed to reproduce a target +probability distribution along selected collective variables. Standard metadynamics can be seen as a +special case of EBMetaD with a flat distribution as target. This is achieved by weighing the Gaussian +functions used in the metadynamics approach by the inverse of the target probability distribution:
+ + | (30) |
where is the target +probability distribution and +its corresponding differential entropy. The method is designed so that during the simulation the resulting distribution of +the collective variable +converges to . +A practical application of EBMetaD is to reproduce an “experimental" probability distribution, +for example the distance distribution between spectroscopic labels inferred from Förster +resonance energy transfer (FRET) or double electron-electron resonance (DEER) experiments +[28]. +
The PMF along +can be estimated from the bias potential and the target ditribution [28]:
+ | (31) |
and obtained by enabling writeFreeEnergyFile. Similarly to eq. 29, a more accurate estimate of the +free energy can be obtained by averaging (after an equilibration time) multiple time-dependent free +energy estimates (see keepFreeEnergyFiles). +
The following additional options define the configuration for the ensemble-biased metadynamics +approach:
+ As with standard metadynamics, multidimensional probability distributions can be targeted using a
+
+
+single metadynamics block using multiple colvars and a multidimensional target distribution file (see
+3.8.4). Instead, multiple probability distributions on different variables can be targeted separately in
+the same simulation by introducing multiple metadynamics blocks with the ebMeta option.
+
+
Example: EBmetaD configuration for a single variable.
+colvar {+
name r
distance {
group1 { atomNumbers 991 992 }
group2 { atomNumbers 1762 1763 }
}
upperBoundary 100.0
width 0.1
}
metadynamics {
name ebmeta
colvars r
hillWeight 0.01
hillWidth 3.0
ebMeta on
targetDistFile targetdist1.dat
ebMetaEquilSteps 500000
}
where targetdist1.dat is a text file in “multicolumn" format (3.8.4) with the same width as the variable r
+(0.1 in this case):
# | 1 | + | |||
# | 0.0 | 0.1 | 1000 | 0 | |
+ | |||||
0.05 | 0.0012 | +||||
0.15 | 0.0014 | +||||
… | … | +||||
99.95 | 0.0010 | +||||
+ | |||||
Tip: Besides setting a meaningful value for targetDistMinVal, the exploration of unphysically low +values of the target distribution (which would lead to very large hills and possibly numerical instabilities) +can be also prevented by restricting sampling to a given interval, using e.g. harmonicWalls restraint +(6.8). +
+ +The following options define the configuration for the “well-tempered" metadynamics approach +[29]: + +
Metadynamics calculations can be performed concurrently by multiple replicas that share a common +history. This variant of the method is called multiple-walker metadynamics [30]: the Gaussian hills of all +replicas are periodically combined into a single biasing potential, intended to converge to a single +PMF. +
In the implementation here described [1], replicas communicate through files. This arrangement +allows launching the replicas either (1) as a bundle (i.e. a single job in a cluster's queueing system) or (2) +as fully independent runs (i.e. as separate jobs for the queueing system). One advantage of the use case +(1) is that an identical Colvars configuration can be used for all replicas (otherwise, replicaID needs to + + +be manually set to a different string for each replica). However, the use case (2) is less demanding in +terms of high-performance computing resources: a typical scenario would be a computer +cluster (including virtual servers from a cloud provider) where not all nodes are connected to +each other at high speed, and thus each replica runs on a small group of nodes or a single +node. +
Whichever way the replicas are started (coupled or not), a shared filesystem is needed so that each
+replica can read the files created by the others: paths to these files are stored in the shared file
+replicasRegistry. This file, and those listed in it, are read every replicaUpdateFrequency steps. Each
+time the Colvars state file is written (for example, colvarsRestartFrequency steps), the file
+named:
output.colvars.name.replicaID.state
is written as well; this file contains only the state of the metadynamics bias, which the other replicas will
+read in turn. In between the times when this file is modified/replaced, new hills are also temporarily written
+to the file named:
output.colvars.name.replicaID.hills
Both files are only used for communication, and may be deleted after the replica begins writing files with a
+new output.
+
Example: Multiple-walker metadynamics with file-based communication.
metadynamics {+
name mymtd
colvars x
hillWeight 0.001
newHillFrequency 1000
hillWidth 3.0
multipleReplicas on
replicasRegistry /shared-folder/mymtd-replicas.txt
replicaUpdateFrequency 50000 # Best if larger than newHillFrequency
}
The following are the multiple-walkers related options: +
++
The harmonic biasing method may be used to enforce fixed or moving restraints, including variants of +Steered and Targeted MD. Within energy minimization runs, it allows for restrained minimization, e.g. to +calculate relaxed potential energy surfaces. In the context of the Colvars module, harmonic potentials are + + +meant according to their textbook definition:
+ | (32) |
There are two noteworthy aspects of this expression: +
This property can be used for setting the force constant in umbrella-sampling ensemble runs: + if the restraint centers are chosen in increments of , + the resulting distributions of + are most often optimally overlapped. In regions where the underlying free-energy landscape + induces highly skewed distributions of , + additional windows may be added as needed, with spacings finer than .
Beyond one dimension, the use of a scaled harmonic potential also allows a standard definition of a +multi-dimensional restraint with a unified force constant:
+ | (33) |
If one-dimensional or homogeneous multi-dimensional restraints are defined, and there are no other uses for the +parameter , width can be +left at its default value of . +
A harmonic restraint is defined by a harmonic {...} block, which may contain the following keywords: +
+Tip: A complex set of restraints can be applied to a system, by defining several colvars, and applying +one or more harmonic restraints to different groups of colvars. In some cases, dozens of colvars can be +defined, but their value may not be relevant: to limit the size of the colvars trajectory file, it may be wise to +disable outputValue for such “ancillary" variables, and leave it enabled only for “relevant" +ones. +
+ ++
The following options allow to change gradually the centers of the harmonic restraints during a +simulations. When the centers are changed continuously, a steered MD in a collective variable space is +carried out. +
+Note on restarting moving restraint simulations: Information about the current step and stage of a +simulation with moving restraints is stored in the restart file (state file). Thus, such simulations can be run +in several chunks, and restarted directly using the same colvars configuration file. In case of a restart, the +values of parameters such as targetCenters, targetNumSteps, etc. should not be changed +manually. +
+ ++
The centers of the harmonic restraints can also be changed in discrete stages: in this cases a +one-dimensional umbrella sampling simulation is performed. The sampling windows in simulation are +calculated in sequence. The colvars trajectory file may then be used both to evaluate the correlation times +between consecutive windows, and to calculate the frequency distribution of the colvar of interest in each +window. Furthermore, frequency distributions on a predefined grid can be automatically obtained by using +the histogram bias (see 6.11). +
To activate an umbrella sampling simulation, the same keywords as in the previous section can be +used, with the addition of the following:
++
The force constant of the harmonic restraint may also be changed to equilibrate [31]. +
++
If the restraint centers or force constant are changed continuosly (targetNumStages undefined) it is +possible to record the net work performed by the changing restraint:
++
The harmonicWalls {...} bias is closely related to the harmonic bias (see 6.6), with the following two +differences: (i) instead of a center a lower wall and/or an upper wall are defined, outside of which the bias +implements a half-harmonic potential;
+ | (34) |
where
+and are
+the lower and upper wall thresholds, respectively; (ii) because an interval between two walls is defined,
+only scalar variables can be used (but any number of variables can be defined, and the wall bias is
+intrinsically multi-dimensional).
+
Note: this bias replaces the keywords lowerWall, lowerWallConstant, upperWall and +upperWallConstant defined in the colvar context. Those keywords are deprecated. +
The harmonicWalls bias implements the following options:
+Example 1: harmonic walls for one variable with two different force constants.
+harmonicWalls {+
name mywalls
colvars dist
lowerWalls 22.0
upperWalls 38.0
lowerWallConstant 2.0
upperWallConstant 10.0
}
Example 2: harmonic walls for two variables with a single force constant.
+harmonicWalls {+
name mywalls
colvars phi psi
lowerWalls -180.0 0.0
upperWalls 0.0 180.0
forceConstant 5.0
}
+
The linear keyword defines a linear potential:
+ | (35) |
whose force is simply given by the constant +itself:
+ | (36) |
This type of bias is therefore most useful in situations where a constant force is desired. As all other +restraints, it can be defined on one or more CVs, with each contribution added to the total potential and the +parameters +determining the relative magnitude for each. +
Example: A possible use case of the linear bias is mimicking a constant electric field acting on a +specific particle, or the center of mass of many particles. In the following example, a linear restraint is +applied on a distanceZ variable (4.3.2), generating a constant force parallel to the Z axis of magnitude +5 energy unit/length unit:
+colvar {+
name z
distanceZ {
...
}
}
linear {
colvars z
forceConstant 5.0
centers 0.0
}
Another useful application of a linear restraint is to enforce experimental constraints in a simulation, +with a lower non-equilibrium work than e.g. harmonic restraints [32]. There is generally a unique strength +of bias for each CV center, which means you must know the bias force constant specifically for the center +of the CV. This force constant may be found by using experiment directed simulation described in section + + +6.10. +
++
Experiment directed simulation applies a linear bias with a changing force constant. Please cite White +and Voth [33] when using this feature. As opposed to that reference, the force constant here is scaled by +the width corresponding to the biased colvar. In White and Voth, each force constant is scaled by the +colvars set center. The bias converges to a linear bias, after which it will be the minimal possible bias. You +may also stop the simulation, take the median of the force constants (ForceConst) found in the +colvars trajectory file, and then apply a linear bias with that constant. All the notes about units +described in sections 6.9 and 6.6 apply here as well. This is not a valid simulation of any +particular statistical ensemble and is only an optimization algorithm until the bias has +converged. +
++
The histogram feature is used to record the distribution of a set of collective variables in the form of a +N-dimensional histogram. Defining such a histogram is generally useful for analysis purposes, but it has +no effect on the simulation. +
Example 1: the two-dimensional histogram of a distance and an angle can be generated +using the configuration below. The histogram code requires that each variable is a scalar +number that is confined within a pre-defined interval. The interval's boundaries may be +specified by hand (e.g. through lowerBoundary and upperBoundary in the variable definition), +or auto-detected based on the type of function. In this example, the lower boundary for the +distance variable “r" is automatically set to zero, and interval for the three-body angle “theta" is + and +: however, that +an upper boundary for the distance “r" still needs to be specified manually. The grid spacings for the two variables +are length +unitand , +respectively.
+colvar {+
name r
width 0.2
upperBoundary 20.0
distance { ... }
}
colvar {
name theta
width 3.0
dihedral { ... }
}
histogram {
name hist2d
colvars r theta
}
Example 2: This example is similar to the previous one, but with the important difference +that the parameters for the histogram's grid are defined explicitly for this histogram instance. +Therefore, this histogram's grid may differ from the one defined from parameters embedded in +the colvar { ... } block (for example, narrower intervals and finer grid spacings may be +selected).
+colvar {+
name r
upperBoundary 20.0
distance { ... }
}
colvar {
name theta
dihedral { ... }
}
histogram {
name hist2d
colvars r theta
histogramGrid {
widths 0.1 1.0
lowerBoundaries 2.0 30.0
upperBoundaries 10.0 90.0
}
}
The standard keywords below are used to control the histogram's computation and to select the +variables that are sampled. See also 6.11.1 for keywords used to define the grid, 6.11.2 for output +parameters and 6.11.3 for more advanced keywords. +
++
Grid parameters for the histogram may be provided at the level of the individual variables, or via a +dedicated configuration block histogramGrid { …} inside the configuration of this histogram. The options +supported inside this block are: +
++
The accumulated histogram is written in the Colvars state file, allowing for its accumulation +across continued runs. Additionally, the following files are written depending on the histogram's +dimensionality: +
++
As with any other biasing and analysis method, when a histogram is applied to an extended-system +colvar (4.19), it accesses the value of the extended coordinate rather than that of the actual +colvar. This can be overridden by enabling the bypassExtendedLagrangian option. A joint +histogram of the actual colvar and the extended coordinate may be collected by specifying the +colvar name twice in a row in the colvars parameter (e.g. colvars myColvar myColvar): +the first instance will be understood as the actual colvar, and the second, as the extended +coordinate. +
++
The histogramRestraint bias implements a continuous potential of many variables (or of a single +high-dimensional variable) aimed at reproducing a one-dimensional statistical distribution that is provided by the +user. The +variables +are interpreted as multiple observations of a random variable + +with unknown probability distribution. The potential is minimized when the histogram +, estimated as a sum of Gaussian +functions centered at , is equal +to the reference histogram : +
+ | (37) |
+ | (38) |
When used in combination with a distancePairs multi-dimensional variable, this bias +implements the refinement algorithm against ESR/DEER experiments published by Shen et al +[34]. +
This bias behaves similarly to the histogram bias with the gatherVectorColvars option, with the +important difference that all variables are gathered, resulting in a one-dimensional histogram. Future +versions will include support for multi-dimensional histograms. +
The list of options is as follows:
++
+ +This section lists all the commands used in LAMMPS to control the behavior of the Colvars module from +within a run script using the fix_modify command. + + +
+
fix_modify Colvars addenergy <E>+
Add an energy to the MD engine (no effect in VMD)
Parameters
E : float - Amount of energy to add
fix_modify Colvars config <conf>+
Read configuration from the given string
Parameters
conf : string - Configuration string
fix_modify Colvars configfile <conf_file>+
Read configuration from a file
Parameters
conf_file : string - Path to configuration file
fix_modify Colvars delete+
Delete this Colvars module instance (VMD only)
fix_modify Colvars featurereport+
Return a summary of Colvars features used so far and their citations
Returns
report : string - Feature report and citations
fix_modify Colvars frame [frame]+
Get or set current frame number (VMD only)
Parameters
frame : integer - Frame number (optional)
Returns
frame : integer - Frame number
fix_modify Colvars getatomappliedforces+
Get the list of forces applied by Colvars to atoms
Returns
forces : array of arrays of floats - Atomic forces
fix_modify Colvars getatomappliedforcesmax+
Get the maximum norm of forces applied by Colvars to atoms
Returns
force : float - Maximum atomic force
fix_modify Colvars getatomappliedforcesmaxid+
Get the atom ID with the largest applied force
Returns
id : int - ID of the atom with the maximum atomic force
fix_modify Colvars getatomappliedforcesrms+
Get the root-mean-square norm of forces applied by Colvars to atoms
Returns
force : float - RMS atomic force
fix_modify Colvars resetatomappliedforces+
Reset forces applied by Colvars to atoms
fix_modify Colvars getatomids+
Get the list of indices of atoms used in Colvars
Returns
indices : array of ints - Atom indices
fix_modify Colvars getatomcharges+
Get the list of charges of atoms used in Colvars
Returns
charges : array of floats - Atomic charges
fix_modify Colvars getatommasses+
Get the list of masses of atoms used in Colvars
Returns
masses : array of floats - Atomic masses
fix_modify Colvars getatompositions+
Get the list of cached positions of atoms used in Colvars
Returns
positions : array of arrays of floats - Atomic positions
fix_modify Colvars getatomtotalforces+
Get the list of cached total forces of atoms used in Colvars
Returns
forces : array of arrays of floats - Atomic total foces
fix_modify Colvars getconfig+
Get the module's configuration string read so far
Returns
conf : string - Current configuration string
fix_modify Colvars getenergy+
Get the current Colvars energy
Returns
E : float - Amount of energy (internal units)
fix_modify Colvars getnumactiveatomgroups+
Get the number of atom groups that currently have positive ref counts
Returns
count : integer - Total number of atom groups
fix_modify Colvars getnumactiveatoms+
Get the number of atoms that currently have positive ref counts
Returns
count : integer - Total number of atoms
fix_modify Colvars getnumatoms+
Get the number of requested atoms, including those not in use now
Returns
count : integer - Total number of atoms
fix_modify Colvars getstepabsolute+
Get the current step number of the simulation (including restarts)
Returns
step : int - Absolute step number
fix_modify Colvars getsteprelative+
Get the current step number from the start of this job
Returns
step : int - Relative step number
fix_modify Colvars help [command]+
Get the help string of the Colvars scripting interface
Parameters
command : string - Get the help string of this specific command (optional) +
Returns
help : string - Help string
fix_modify Colvars languageversion+
Get the C++ language version number
Returns
version : string - C++ language version
fix_modify Colvars list [param]+
Return a list of all variables or biases
Parameters
param : string - "colvars" or "biases"; default is "colvars" (optional)
Returns
list : sequence of strings - List of elements
fix_modify Colvars listcommands+
Get the list of script functions, prefixed with "cv_", "colvar_" or "bias_" +
Returns
list : sequence of strings - List of commands
fix_modify Colvars listindexfiles+
Get a list of the index files loaded in this session
Returns
list : sequence of strings - List of index file names
fix_modify Colvars listinputfiles+
Get a list of all input/configuration files loaded in this session
Returns
list : sequence of strings - List of file names
fix_modify Colvars load <prefix>+
Load data from a state file into all matching colvars and biases
Parameters
prefix : string - Path to existing state file or input prefix
fix_modify Colvars loadfromstring <buffer>+
Load state data from a string into all matching colvars and biases
Parameters
buffer : string - String buffer containing the state information
fix_modify Colvars molid [molid]+
Get or set the molecule ID on which Colvars is defined (VMD only)
Parameters
molid : integer - New molecule ID; -1 means undefined (optional)
Returns
molid : integer - Current molecule ID
fix_modify Colvars printframe+
Return the values that would be written to colvars.traj
Returns
values : string - The values
fix_modify Colvars printframelabels+
Return the labels that would be written to colvars.traj
Returns
Labels : string - The labels
fix_modify Colvars reset+
Delete all internal configuration
fix_modify Colvars resetindexgroups+
Clear the index groups loaded so far, allowing to replace them
fix_modify Colvars save <prefix>+
Change the prefix of all output files and save them
Parameters
prefix : string - Output prefix with trailing ".colvars.state" gets removed) +
fix_modify Colvars savetostring+
Write the Colvars state to a string and return it
Returns
state : string - The saved state
fix_modify Colvars targettemperature [T]+
Get/set target temperature, overriding internally what the MD engine reports +
Parameters
T : float - New target temperature in K (internal use) (optional)
Returns
T : float - Current target temperature in K
fix_modify Colvars timestep [dt]+
Get/set integration timestep, overriding internally what the MD engine reports +
Parameters
dt : float - New integration timestep in MD engine units (optional)
Returns
dt : float - Current integration timestep in MD engine units
fix_modify Colvars units [units]+
Get or set the current Colvars unit system
Parameters
units : string - The new unit system (optional)
Returns
units : string - The current unit system
fix_modify Colvars update+
Recalculate colvars and biases
fix_modify Colvars version+
Get the Colvars Module version string
Returns
version : string - Colvars version
+
fix_modify Colvars colvar name addforce <force>+
Apply the given force onto this colvar (no effects outside run)
Parameters
force : float or array - Applied force; must match colvar dimensionality
Returns
force : float or array - Applied force; matches colvar dimensionality
fix_modify Colvars colvar name communicateforces+
Communicate bias forces from this colvar to atoms
fix_modify Colvars colvar name cvcflags <flags>+
Enable or disable individual components by setting their active flags
Parameters
flags : integer array - Zero/nonzero value disables/enables the CVC
fix_modify Colvars colvar name delete+
Delete this colvar, along with all biases that depend on it
fix_modify Colvars colvar name get <feature>+
Get the value of the given feature for this colvar
Parameters
feature : string - Name of the feature
Returns
state : 1/0 - State of the given feature
fix_modify Colvars colvar name getappliedforce+
Return the total of the forces applied to this colvar
Returns
force : float - Applied force; matches the colvar dimensionality
fix_modify Colvars colvar name resetbiasforce+
Return the total of the forces applied to this colvar
fix_modify Colvars colvar name getatomgroups+
Return the atom indices used by this colvar as a list of lists
Returns
groups : array of arrays of ints - Atom indices
fix_modify Colvars colvar name getatomids+
Return the list of atom indices used by this colvar
Returns
indices : array of ints - Atom indices
fix_modify Colvars colvar name getconfig+
Return the configuration string of this colvar
Returns
conf : string - Current configuration string
fix_modify Colvars colvar name getgradients+
Return the atomic gradients of this colvar
Returns
gradients : array of arrays of floats - Atomic gradients
fix_modify Colvars colvar name gettotalforce+
Return the sum of internal and external forces to this colvar
Returns
force : float - Total force; matches the colvar dimensionality
fix_modify Colvars colvar name getvolmapids+
Return the list of volumetric map indices used by this colvar
fix_modify Colvars colvar name help [command]+
Get a help summary or the help string of one colvar subcommand
Parameters
command : string - Get the help string of this specific command (optional) +
Returns
help : string - Help string
fix_modify Colvars colvar name modifycvcs <confs>+
Modify configuration of individual components by passing string arguments +
Parameters
confs : sequence of strings - New configurations; empty strings are skipped +
fix_modify Colvars colvar name run_ave+
Get the current running average of the value of this colvar
Returns
value : float or array - Averaged value; matches the colvar dimensionality +
fix_modify Colvars colvar name set <feature> <value>+
Set the given feature of this colvar to a new value
Parameters
feature : string - Name of the feature
value : string - String representation of the new feature value
fix_modify Colvars colvar name state+
Print a string representation of the feature state of this colvar
Returns
state : string - The feature state
fix_modify Colvars colvar name type+
Get the type description of this colvar
Returns
type : string - Type description
fix_modify Colvars colvar name update+
Recompute this colvar and return its up-to-date value
Returns
value : float or array - Current value; matches the colvar dimensionality +
fix_modify Colvars colvar name value+
Get the current value of this colvar
Returns
value : float or array - Current value; matches the colvar dimensionality +
fix_modify Colvars colvar name width+
Get the width of this colvar
Returns
width : float - Value of the width
+
fix_modify Colvars bias name bin+
Get the current grid bin index (flattened if more than 1d)
Returns
bin : integer - Bin index
fix_modify Colvars bias name bincount [index]+
Get the number of samples at the given grid bin (1D ABF only for now)
Parameters
index : integer - Grid index; defaults to current bin (optional)
Returns
samples : integer - Number of samples
fix_modify Colvars bias name local_sample_count [radius]+
Get the number of samples around the current binsamples : integer - Number of samples +
Parameters
radius : integer - Sum over radius bins around current bin (optional)
fix_modify Colvars bias name binnum+
Get the total number of grid points of this bias (1D ABF only for now)
Returns
Bins : integer - Number of grid points
fix_modify Colvars bias name delete+
Delete this bias
fix_modify Colvars bias name energy+
Get the current energy of this bias
Returns
E : float - Energy value
fix_modify Colvars bias name get <feature>+
Get the value of the given feature for this bias
Parameters
feature : string - Name of the feature
Returns
state : 1/0 - State of the given feature
fix_modify Colvars bias name getconfig+
Return the configuration string of this bias
Returns
conf : string - Current configuration string
fix_modify Colvars bias name help [command]+
Get a help summary or the help string of one bias subcommand
Parameters
command : string - Get the help string of this specific command (optional) +
Returns
help : string - Help string
fix_modify Colvars bias name load <prefix>+
Load data into this bias
Parameters
prefix : string - Read from a file with this name or prefix
fix_modify Colvars bias name loadfromstring <buffer>+
Load state data into this bias from a string
Parameters
buffer : string - String buffer containing the state information
fix_modify Colvars bias name save <prefix>+
Save data from this bias into a file with the given prefix
Parameters
prefix : string - Prefix for the state file of this bias
fix_modify Colvars bias name savetostring+
Save data from this bias into a string and return it
Returns
state : string - The bias state
fix_modify Colvars bias name set <feature> <value>+
Set the given feature of this bias to a new value
Parameters
feature : string - Name of the feature
value : string - String representation of the new feature value
fix_modify Colvars bias name share+
Share bias information with other replicas (multiple-walker scheme)
fix_modify Colvars bias name state+
Print a string representation of the feature state of this bias
Returns
state : string - String representation of the bias features
fix_modify Colvars bias name type+
Print the type of this bias object
Returns
type : string - Type of this bias object (e.g. metadynamics)
fix_modify Colvars bias name update+
Recompute this bias and return its up-to-date energy
Returns
E : float - Energy value
+
+ ++
The following is a list of syntax changes in Colvars since its first release. Many of the older keywords +are still recognized by the current code, thanks to specific compatibility code. This is not a list of new +features: its primary purpose is to make you aware of those improvements that affect the use of old +configuration files with new versions of the code. +
Note: if you are using any of the NAMD and VMD tutorials:
https://www.ks.uiuc.edu/Training/Tutorials/
please be aware that several of these tutorials are not actively maintained: for those cases, this list will
+help you reconcile any inconsistencies.
+
+
+ ++
The Colvars module is typically built using the recipes of each supported software package: for this +reason, no installation instructions are needed, and the vast majority of the features described in this +manual are supported in the most common builds of each package. +
This section lists the few cases where the choice of compilation settings affects the availability +features in the Colvars module. +
++
++
+ [1] Giacomo Fiorin, Michael L. Klein, and Jérôme Hénin. Using collective variables to + drive molecular dynamics simulations. Mol. Phys., 111(22-23):3345--3362, 2013. +
++ [2] Aidan P. Thompson, H. Metin Aktulga, Richard Berger, Dan S. Bolintineanu, W. Michael + Brown, Paul S. Crozier, Pieter J. in't Veld, Axel Kohlmeyer, Stan G. Moore, Trung Dac + Nguyen, Ray Shan, Mark J. Stevens, Julien Tranchida, Christian Trott, and Steven J. + Plimpton. LAMMPS - a flexible simulation tool for particle-based materials modeling at the + atomic, meso, and continuum scales. Comp. Phys. Comm., 271:108171, 2022. +
++ [3] M. Iannuzzi, A. Laio, and M. Parrinello. Efficient exploration of reactive potential energy + surfaces using car-parrinello molecular dynamics. Phys. Rev. Lett., 90(23):238302, 2003. +
++ [4] E A Coutsias, C Seok, and K A Dill. Using quaternions to calculate RMSD. J. Comput. +Chem., 25(15):1849--1857, 2004. +
++ [5] Mina Ebrahimi and Jérôme Hénin. Symmetry-adapted restraints for binding free energy + calculations. Journal of Chemical Theory and Computation, 18(4):2494--2502, 2022. +
++ [6] Haohao Fu, Wensheng Cai, Jérôme Hénin, Benoît Roux, and Christophe Chipot. + New coarse variables for the accurate determination of standard binding free energies. J. +Chem. Theory. Comput., 13(11):5173--5178, 2017. +
++ [7] G. D. Leines and B. Ensing. Path finding on high-dimensional free energy landscapes. + Phys. Rev. Lett., 109:020601, 2012. +
++ [8] Davide Branduardi, Francesco Luigi Gervasio, and Michele Parrinello. From a to b in free + energy space. J Chem Phys, 126(5):054103, 2007. + + +
++ [9] F. Comitani L. Hovan and F. L. Gervasio. Defining an optimal metric for the path + collective variables. J. Chem. Theory Comput., 15:25--32, 2019. +
++ [10] Haochuan Chen, Han Liu, Heying Feng, Haohao Fu, Wensheng Cai, Xueguang Shao, + and Christophe Chipot. Mlcv: Bridging Machine-Learning-Based Dimensionality Reduction + and Free-Energy Calculation. J. Chem. Inf. Model., 62(1):1--8, 2022. +
++ [11] Marco Jacopo Ferrarotti, Sandro Bottaro, Andrea Pérez-Villa, and Giovanni Bussi. + Accurate multiple time step in biased molecular simulations. Journal of chemical theory and +computation, 11:139--146, 2015. +
++ [12] Eric Darve, David Rodríguez-Gómez, and Andrew Pohorille. Adaptive biasing force + method for scalar and vector free energy calculations. J. Chem. Phys., 128(14):144120, + 2008. +
++ [13] J. Hénin and C. Chipot. Overcoming free energy barriers using unconstrained molecular + dynamics simulations. J. Chem. Phys., 121:2904--2914, 2004. +
++ [14] Jérôme Hénin, Giacomo Fiorin, Christophe Chipot, and Michael L. Klein. Exploring + multidimensional free energy landscapes using time-dependent biases on collective + variables. J. Chem. Theory Comput., 6(1):35--47, 2010. +
++ [15] A. Carter, E, G. Ciccotti, J. T. Hynes, and R. Kapral. Constrained reaction coordinate + dynamics for the simulation of rare events. Chem. Phys. Lett., 156:472--477, 1989. +
++ [16] M. J. Ruiz-Montero, D. Frenkel, and J. J. Brey. Efficient schemes to compute diffusive + barrier crossing rates. Mol. Phys., 90:925--941, 1997. +
++ [17] W. K. den Otter. Thermodynamic integration of the free energy along a reaction + coordinate in cartesian coordinates. J. Chem. Phys., 112:7283--7292, 2000. + + +
++ [18] Giovanni Ciccotti, Raymond Kapral, and Eric Vanden-Eijnden. Blue moon sampling, + vectorial reaction coordinates, and unbiased constrained dynamics. ChemPhysChem, + 6(9):1809--1814, 2005. +
++ [19] J. Hénin. Fast and accurate multidimensional free energy integration. J. Chem. Theory +Comput., 2021. +
++ [20] Adrien Lesage, Tony Lelièvre, Gabriel Stoltz, and Jérôme Hénin. Smoothed biasing + forces yield unbiased free energies with the extended-system adaptive biasing force method. + J. Phys. Chem. B, 121(15):3676--3685, 2017. +
++ [21] Massimo Marchi and Pietro Ballone. Adiabatic bias molecular dynamics: A method + to navigate the conformational space of complex molecular systems. J. Chem. Phys., + 110(8):3697--3702, 1999. +
++ [22] A. Laio and M. Parrinello. Escaping free-energy minima. Proc. Natl. Acad. Sci. USA, + 99(20):12562--12566, 2002. +
++ [23] Helmut Grubmüller. Predicting slow structural transitions in macromolecular systems: + Conformational flooding. Phys. Rev. E, 52(3):2893--2906, Sep 1995. +
++ [24] T. Huber, A. E. Torda, and W.F. van Gunsteren. Local elevation - A method for improving + the searching properties of molecular-dynamics simulation. Journal of Computer-Aided +Molecular Design, 8(6):695--708, DEC 1994. +
++ [25] G. Bussi, A. Laio, and M. Parrinello. Equilibrium free energies from nonequilibrium + metadynamics. Phys. Rev. Lett., 96(9):090601, 2006. +
++ [26] Fabrizio Marinelli, Fabio Pietrucci, Alessandro Laio, and Stefano Piana. A kinetic model of + trp-cage folding from multiple biased molecular dynamics simulations. PLOS Computational +Biology, 5(8):1--18, 2009. + + +
++ [27] Yanier Crespo, Fabrizio Marinelli, Fabio Pietrucci, and Alessandro Laio. Metadynamics + convergence law in a multidimensional system. Phys. Rev. E, 81:055701, May 2010. +
++ [28] Fabrizio Marinelli and José D. Faraldo-Gómez. Ensemble-biased metadynamics: + A molecular simulation method to sample experimental distributions. Biophys. J., + 108(12):2779--2782, 2015. +
++ [29] Alessandro Barducci, Giovanni Bussi, and Michele Parrinello. Well-tempered + metadynamics: A smoothly converging and tunable free-energy method. Phys. Rev. Lett., + 100:020603, 2008. +
++ [30] P. Raiteri, A. Laio, F. L. Gervasio, C. Micheletti, and M. Parrinello. Efficient + reconstruction of complex free energy landscapes by multiple walkers metadynamics. J. +Phys. Chem. B, 110(8):3533--9, 2006. +
++ [31] Yuqing Deng and Benoît Roux. Computations of standard binding free energies with + molecular dynamics simulations. J. Phys. Chem. B, 113(8):2234--2246, 2009. +
++ [32] Jed W. Pitera and John D. Chodera. On the use of experimental observations to bias + simulated ensembles. J. Chem. Theory Comput., 8:3445--3451, 2012. +
++ [33] Andrew D. White and Gregory A. Voth. Efficient and minimal method to bias molecular + simulations with experimental data. J. Chem. Theory Comput., 10(8):3023----3030, 2014. +
++ [34] Rong Shen, Wei Han, Giacomo Fiorin, Shahidul M Islam, Klaus Schulten, and Benoît + Roux. Structural refinement of proteins by restrained molecular dynamics simulations with + non-interacting molecular fragments. PLoS Comput. Biol., 11(10):e1004368, 2015. +
+