Spaces:
Running
Running
Download md.html from EricBoi/mlip-visualization: direct link, hf CLI and curl.
- Browser
- Download file 7.2 kB
-
https://huggingface.co/spaces/EricBoi/mlip-visualization/resolve/main/md.html
- Command line
-
hf download hf://spaces/EricBoi/mlip-visualization/md.html
-
curl -L -o md.html https://huggingface.co/spaces/EricBoi/mlip-visualization/resolve/main/md.html
7.2 kB
| <html lang="en"> | |
| <head> | |
| <meta charset="utf-8" /> | |
| <meta name="viewport" content="width=device-width, initial-scale=1" /> | |
| <script> | |
| // a copy of this page cached from before a deploy asks for bundles the deploy removed: reload once (src/app/boot.ts) | |
| addEventListener('error', (e) => { | |
| const u = e.target && (e.target.src || e.target.href); | |
| if (!u || !/\/assets\//.test(u)) return; | |
| try { if (sessionStorage.getItem('mlipviz-stale')) return; sessionStorage.setItem('mlipviz-stale', '1'); } catch (_) { return; } | |
| location.reload(); | |
| }, true); | |
| </script> | |
| <title>MLIP Dynamics</title> | |
| <meta name="description" content="Molecular dynamics (NVE) and diffusion Monte Carlo with machine-learning interatomic potentials, in your browser." /> | |
| <script> | |
| // the saved theme (or the system's), before the first paint; see src/viz/theme.ts | |
| try { const t = localStorage.getItem('mlipviz-theme'); document.documentElement.dataset.theme = t === 'light' || t === 'dark' ? t : matchMedia('(prefers-color-scheme: light)').matches ? 'light' : 'dark'; } catch (e) {} | |
| </script> | |
| <script type="module" crossorigin src="./assets/md-CwURKBHq.js"></script> | |
| <link rel="modulepreload" crossorigin href="./assets/xyz-BkjxBniX.js"> | |
| <link rel="stylesheet" crossorigin href="./assets/xyz-CMSHb8Wz.css"> | |
| <link rel="stylesheet" crossorigin href="./assets/md-D-QfxpVl.css"> | |
| </head> | |
| <body class="md mode-md"> | |
| <header> | |
| <a class="brand" href="./" title="Back to the network visualiser">MLIP<span>viz</span></a> | |
| <nav id="modes" title="What to run"> | |
| <button data-mode="md" class="on" title="Classical molecular dynamics at constant energy">NVE dynamics</button> | |
| <button data-mode="dmc" title="Diffusion Monte Carlo: the quantum vibrational ground state">Diffusion Monte Carlo</button> | |
| </nav> | |
| <label title="The kind of model">Model <select id="kind"></select></label> | |
| <label title="Which trained weights">Weights <select id="model"></select></label> | |
| <label>Structure <select id="structure"></select></label> | |
| <label class="file">Open .xyz…<input id="xyz-file" type="file" accept=".xyz,.extxyz" /></label> | |
| <label class="md-only" id="force-mode-wrap" title="How forces are computed">Forces <select id="force-mode"> | |
| <option value="conservative">conservative (−∂E/∂r)</option> | |
| <option value="direct">direct (non-conservative)</option></select></label> | |
| <label class="md-only" title="Initial temperature: Maxwell–Boltzmann velocities, no net momentum">T₀ <input id="temperature" type="number" value="300" min="0" max="5000" step="50" /> K</label> | |
| <label class="md-only" title="Time step (applies immediately)">Δt <input id="dt" type="number" value="0.5" min="0.05" max="5" step="0.05" /> fs</label> | |
| <label class="dmc-only" title="Target number of walkers (all are evaluated in batched passes)">Walkers <input id="walkers" type="number" value="500" min="20" max="20000" step="100" /></label> | |
| <label class="dmc-only" title="Imaginary time step, atomic units (applies immediately)">Δτ <input id="dtau" type="number" value="10" min="0.5" max="50" step="1" /> a.u.</label> | |
| <button id="run" class="on" title="Run or pause (Space)">Pause</button> | |
| <button id="restart" title="Start again from the starting structure (R)">Restart</button> | |
| <button id="theme" title="Theme"></button> | |
| <div id="status">starting…</div> | |
| </header> | |
| <main> | |
| <section id="stage"> | |
| <div id="traj"></div> | |
| <div id="clock"></div> | |
| <div id="md-loading" hidden> | |
| <div class="loader-title"></div> | |
| <div class="loader-stage"></div> | |
| <div class="loader-bar"><i></i></div> | |
| </div> | |
| </section> | |
| <aside id="panel"> | |
| <div class="tiles md-only"> | |
| <div class="tile"><small>Temperature</small><b id="t-now">–</b><span id="t-mean"></span></div> | |
| <div class="tile"><small>Energy drift</small><b id="drift">–</b><span id="drift-max"></span></div> | |
| <div class="tile" title="Simulated nanoseconds per day of wall-clock time at this rate"><small>Speed</small><b id="speed">–</b><span id="ms"></span></div> | |
| <div class="tile flops-tile"><small>Compute</small><b id="flops">–</b><span id="flops-detail"></span></div> | |
| </div> | |
| <div class="tiles dmc-only"> | |
| <div class="tile" title="Mean of E_ref − V_min over the second half of the run, with a blocking error"><small>Zero-point energy</small><b id="zpe">–</b><span id="zpe-detail"></span></div> | |
| <div class="tile"><small>Walkers</small><b id="walkers-now">–</b><span id="walkers-detail"></span></div> | |
| <div class="tile" title="Walker energies evaluated per day of wall-clock time at this rate"><small>Throughput</small><b id="samples">–</b><span id="samples-detail"></span></div> | |
| <div class="tile flops-tile"><small>Compute</small><b id="dmc-flops">–</b><span id="dmc-flops-detail"></span></div> | |
| </div> | |
| <figure class="md-only"> | |
| <figcaption>Energy, eV, relative to the total at t = 0</figcaption> | |
| <div id="energy-chart"></div> | |
| </figure> | |
| <figure class="md-only"> | |
| <figcaption>Temperature, K</figcaption> | |
| <div id="temp-chart"></div> | |
| </figure> | |
| <figure class="dmc-only"> | |
| <figcaption>Reference energy E_ref − V_min, cm⁻¹</figcaption> | |
| <div id="eref-chart"></div> | |
| </figure> | |
| <figure class="dmc-only"> | |
| <figcaption>Walkers</figcaption> | |
| <div id="pop-chart"></div> | |
| </figure> | |
| <p class="note md-only"> | |
| Velocity Verlet at constant N, V and E. When the forces are the gradient of the energy and Δt is small | |
| enough, the total energy stays flat while kinetic and potential energy swap. From a relaxed start about | |
| half the initial kinetic energy goes into the potential, so the temperature settles near T₀/2. Direct | |
| forces are not a gradient, so the total energy drifts with them, and so it does with too large a Δt. | |
| </p> | |
| <p class="note dmc-only"> | |
| Diffusion Monte Carlo for the nuclei. The structure is relaxed on the model's surface, then each walker, | |
| a copy of the molecule, takes Gaussian steps of variance ħ²Δτ/m and is copied or removed with weight | |
| exp(−Δτ (V − E<sub>ref</sub>)). E<sub>ref</sub> is adjusted to keep the number of walkers near the | |
| target, and its average above the minimum is the zero-point energy. The cloud shows the walkers aligned | |
| on the minimum; hydrogens spread the most. Walkers far below the minimum are in a hole in the model's | |
| surface and are removed. | |
| </p> | |
| <p class="note" id="flops-note"> | |
| FLOPs are counted from the shapes of the kernels the model runs, with a multiply-add as 2. The rate is | |
| over the whole step, so it also covers the neighbour list, data transfers and reading back the results. | |
| </p> | |
| </aside> | |
| </main> | |
| </body> | |
| </html> | |