Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
99 commits
Select commit Hold shift + click to select a range
8fdb693
Adding example bpm/zero bond style
jtclemm Jun 17, 2026
95937ee
Merge branch 'develop' into port-peri-to-bpm
akohlmey Jun 17, 2026
682f8b3
BPM/peri Stage 0: scaffold bond_style bpm/peri (PMB, zero force)
akohlmey Jun 18, 2026
9c385c7
BPM/peri: hard pair handshake + modernized error messages
akohlmey Jun 18, 2026
1a4f21d
BPM/peri Stage 1a: PMB force law
akohlmey Jun 18, 2026
1ed77b7
BPM/peri Stage 1b: per-type-pair (#984) bond breaking
akohlmey Jun 18, 2026
70269f8
BPM/peri Stage 2: pair_style bpm/peri short-range contact
akohlmey Jun 18, 2026
b5dae46
BPM/peri Stage 3: LPS state-based model + dilatation
akohlmey Jun 18, 2026
5e36b26
BPM/peri: error message suggests 'all' for the d_vfrac property/atom fix
akohlmey Jun 18, 2026
4ea34ef
BPM/peri Stage 4: VES viscoelastic model (evolving history)
akohlmey Jun 18, 2026
fb2cb1d
BPM/peri Stage 5: EPS elastic-plastic model + peridynamic stress fix
akohlmey Jun 18, 2026
9e9cc8d
BPM/peri: dimensionally-consistent EPS plastic return mapping
akohlmey Jun 18, 2026
41cd313
BPM/peri Stage 6: volume-weighted damage diagnostic
akohlmey Jun 18, 2026
8264349
BPM/peri Stage 7: documentation, examples, attribution, and citations
akohlmey Jun 18, 2026
70c6af0
BPM/peri Stage 8: generic BPM pair+bond test harness (unittest/bpm)
akohlmey Jun 18, 2026
ee327ca
BPM/peri Stage 9: review cleanup (factor taper, fix shutdown leak)
akohlmey Jun 18, 2026
d88ece2
BPM/peri: performance benchmark vs legacy PERI + transition-guide note
akohlmey Jun 18, 2026
f6dc3a2
BPM: document bond_style bpm/zero
akohlmey Jun 18, 2026
81338dc
BPM/peri: refuse rRESPA, add horizon consistency check, optional d_theta
akohlmey Jun 18, 2026
78989d5
BPM/peri tests: add lps_dilatation analytic model + restart round-trip
akohlmey Jun 18, 2026
27eaee1
BPM/peri: performance optimizations (pair force caching, reciprocal w…
akohlmey Jun 18, 2026
ba06026
BPM tests: add lps_force analytic model + bond_style bpm/zero coverage
akohlmey Jun 18, 2026
9d9a624
BPM tests: add bond_style bpm/spring and bpm/spring/plastic coverage
akohlmey Jun 18, 2026
8dbfd6c
unittest: fix test_error_stats include after the shared-infra move
akohlmey Jun 18, 2026
6f92e20
BPM/peri: say "excluded" not "censored" for special-bond skipping
akohlmey Jun 18, 2026
6de0dd1
BPM/doc: say "exclude" not "censor" for special-bond/lifetime skipping
akohlmey Jun 18, 2026
40c6b63
Revert pair_tracker.rst wording change (moved to the doc-updates PR)
akohlmey Jun 18, 2026
c1db2e6
add another peri/eps unittest
akohlmey Jun 19, 2026
3147814
Merge branch 'develop' into port-peri-to-bpm
akohlmey Jun 20, 2026
b1c3b57
removed dead code and reduce compiler warnings
akohlmey Jun 21, 2026
a67a475
Merge branch 'develop' into port-peri-to-bpm
akohlmey Jun 30, 2026
cb5bbc8
BPM: point peri/eps plastic-update comment to the PERI derivation
akohlmey Jun 30, 2026
04229bd
BPM/PERI docs: note the faster bpm/peri alternative in the legacy PER…
akohlmey Jun 30, 2026
ca0dd9f
Merge remote-tracking branch 'github/develop' into port-peri-to-bpm
akohlmey Jul 3, 2026
ac3f5c8
Merge branch 'develop' into port-peri-to-bpm
akohlmey Jul 4, 2026
e0fadf6
silence compiler warning
akohlmey Jul 6, 2026
d640e74
apply clang-format
akohlmey Jul 6, 2026
f8f8f81
make certain that r0 is always initialized and thus we don't return g…
akohlmey Jul 6, 2026
ac249c1
Merge branch 'develop' into port-peri-to-bpm
akohlmey Jul 10, 2026
d258803
remove pair style agni from the distribution
akohlmey Jul 13, 2026
3375fc9
remove ML-RANN package from the distribution
akohlmey Jul 13, 2026
40b5c7b
clean up some more ML-RANN entries
akohlmey Jul 13, 2026
8a62020
replace ML-RANN based test with EAM based test
akohlmey Jul 13, 2026
5743787
finally fix input validation test using Tersoff instead
akohlmey Jul 13, 2026
c8c7e3f
Merge branch 'develop' into remove-agni-and-ml-rann
akohlmey Jul 15, 2026
73124ba
replace granular region images with cleaner new versions from dump image
akohlmey Jul 16, 2026
9db5e48
add color map to breakable example
akohlmey Jul 16, 2026
e871177
fix accidental linewrap
akohlmey Jul 16, 2026
d53d144
remove bogus "modulus" keyword
akohlmey Jul 16, 2026
f99b2db
add point dipole visualization demo and update input
akohlmey Jul 16, 2026
9d13f70
update dump image settings
akohlmey Jul 17, 2026
0013193
add dump_modify gtrans keyword to set transparency of rendered grids
akohlmey Jul 17, 2026
cdd370b
change epsilon so that tests pass on ARM64
akohlmey Jul 15, 2026
35c8935
fix variable shadow bug
akohlmey Jul 17, 2026
c806152
improve invalid triangle error message
akohlmey Jul 17, 2026
143d3ec
avoid crash when estimating memory usage
akohlmey Jul 17, 2026
03169e2
skip importing degenerate triangles rather then just erroring out
akohlmey Jul 17, 2026
3d3ebc7
avoid corrupting the connectivity list from repeated coordinates
akohlmey Jul 17, 2026
e29ea5f
check memory pools for overflows
akohlmey Jul 17, 2026
66944cb
correctly compute and set the buffer size for border and exchange com…
akohlmey Jul 18, 2026
2a56dfc
correct warning about increasing communication cutoff
akohlmey Jul 18, 2026
89c96e0
fix copy-n-paste bug
akohlmey Jul 18, 2026
976ca27
add missing checks for chunk pool overflows
akohlmey Jul 18, 2026
34022a8
we don't need to check data for chunck overflows that has already bee…
akohlmey Jul 18, 2026
42cc5bc
update visualization, set communication cutoff as needed
akohlmey Jul 18, 2026
93c4759
update log files
akohlmey Jul 18, 2026
2f20e5a
add note about remeshing STL files for 3d-printing
akohlmey Jul 18, 2026
53b4c09
add cement mixer drum input example
akohlmey Jul 18, 2026
a0bdf1d
small updates
akohlmey Jul 18, 2026
de44835
improve error and warning messages in fix pour
akohlmey Jul 18, 2026
b162d1f
add commented out visualization commands
akohlmey Jul 18, 2026
359db72
turn error of missing connected surface atoms into warning
akohlmey Jul 18, 2026
056359e
update mixer-drum input to avoid issues
akohlmey Jul 18, 2026
e1e0a37
improve visuals by rotating drum to the other direction, speed up rot…
akohlmey Jul 18, 2026
ac062be
Small clean ups for peri pair style, test pushing commit
jtclemm Jul 19, 2026
e0575c5
forgot to comment out dump_modify
akohlmey Jul 19, 2026
ff6a056
correct links into the new LAMMPS homepage
akohlmey Jul 19, 2026
2d21f58
improve settings for fewer artifacts
akohlmey Jul 20, 2026
ede49b0
support extracting colloid pair style settings
akohlmey Jul 20, 2026
bc10f49
update examples for visualization showcase on home page
akohlmey Jul 20, 2026
526f1f6
correct indentation
akohlmey Jul 20, 2026
fd4d009
More small clean ups
jtclemm Jul 20, 2026
3fae457
removing damage peri compute
jtclemm Jul 20, 2026
5f8ec0f
apply RAII principle and avoid a lot of pointer chasing
akohlmey Jul 21, 2026
be68f6a
make sure *all* pointers are initialized to null in the initializer list
akohlmey Jul 21, 2026
4d431d4
removing files
jtclemm Jul 21, 2026
0f89abf
Updating examples to remove compute damage peri
jtclemm Jul 21, 2026
b9026b4
improve visualizations
akohlmey Jul 21, 2026
904d513
Merge branch 'develop' into port-peri-to-bpm
akohlmey Jul 21, 2026
2b81677
make shared file inclusion consistent
akohlmey Jul 21, 2026
ddf6133
update dump image visualization
akohlmey Jul 21, 2026
5b165b4
silence compiler warning
akohlmey Jul 21, 2026
9cad4b1
small doc tweaks, add local TOC to Peridynamics howto page
akohlmey Jul 21, 2026
fa26886
Merge branch 'develop' into remove-agni-and-ml-rann
akohlmey Jul 21, 2026
0165185
provide more details about the status of ML-RANN
akohlmey Jul 21, 2026
c1959e9
allow string style variables to self-reference by performing the subs…
akohlmey Jul 21, 2026
3024721
Merge pull request #5045 from akohlmey/port-peri-to-bpm
akohlmey Jul 21, 2026
d76d25f
Merge pull request #5096 from akohlmey/collected-small-changes
akohlmey Jul 21, 2026
d3b14f6
Merge pull request #5090 from akohlmey/remove-agni-and-ml-rann
akohlmey Jul 21, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion cmake/packaging/org.lammps.lammps-gui.yml
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,6 @@ modules:
- -D PKG_ML-IAP=yes
- -D PKG_ML-PACE=yes
- -D PKG_ML-POD=yes
- -D PKG_ML-RANN=yes
- -D PKG_ML-SNAP=yes
- -D PKG_ML-UF3=yes
- -D PKG_MOFFF=yes
Expand Down
1 change: 0 additions & 1 deletion cmake/presets/all_off.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,6 @@ set(ALL_PACKAGES
ML-PACE
ML-POD
ML-QUIP
ML-RANN
ML-SNAP
ML-UF3
ML-RUNNER
Expand Down
1 change: 0 additions & 1 deletion cmake/presets/all_on.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,6 @@ set(ALL_PACKAGES
ML-PACE
ML-POD
ML-QUIP
ML-RANN
ML-SNAP
ML-UF3
ML-RUNNER
Expand Down
1 change: 0 additions & 1 deletion cmake/presets/mingw-cross.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,6 @@ set(WIN_PACKAGES
ML-HDNNP
ML-IAP
ML-POD
ML-RANN
ML-SNAP
ML-UF3
MOFFF
Expand Down
2 changes: 2 additions & 0 deletions doc/src/Commands_bond.rst
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,11 @@ parenthesis: g = GPU, i = INTEL, k = KOKKOS, o = OPENMP, t = OPT.
*
*
*
* :doc:`bpm/peri <bond_bpm_peri>`
* :doc:`bpm/rotational <bond_bpm_rotational>`
* :doc:`bpm/spring <bond_bpm_spring>`
* :doc:`bpm/spring/plastic <bond_bpm_spring_plastic>`
* :doc:`bpm/zero <bond_bpm_zero>`
* :doc:`class2 (ko) <bond_class2>`
* :doc:`fene (iko) <bond_fene>`
* :doc:`fene/expand (ko) <bond_fene_expand>`
Expand Down
3 changes: 1 addition & 2 deletions doc/src/Commands_pair.rst
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ parenthesis: g = GPU, i = INTEL, k = KOKKOS, o = OPENMP, t = OPT.
*
*
* :doc:`adp (ko) <pair_adp>`
* :doc:`agni (o) <pair_agni>`
* :doc:`aip/water/2dm (t) <pair_aip_water_2dm>`
* :doc:`airebo (io) <pair_airebo>`
* :doc:`airebo/bc (o) <pair_airebo>`
Expand All @@ -46,6 +45,7 @@ parenthesis: g = GPU, i = INTEL, k = KOKKOS, o = OPENMP, t = OPT.
* :doc:`born/coul/wolf (gko) <pair_born>`
* :doc:`born/coul/wolf/cs (go) <pair_cs>`
* :doc:`born/gauss (ko) <pair_born_gauss>`
* :doc:`bpm/peri <pair_bpm_peri>`
* :doc:`bpm/spring <pair_bpm_spring>`
* :doc:`brownian (ko) <pair_brownian>`
* :doc:`brownian/poly (o) <pair_brownian>`
Expand Down Expand Up @@ -270,7 +270,6 @@ parenthesis: g = GPU, i = INTEL, k = KOKKOS, o = OPENMP, t = OPT.
* :doc:`polymorphic <pair_polymorphic>`
* :doc:`python <pair_python>`
* :doc:`quip <pair_quip>`
* :doc:`rann <pair_rann>`
* :doc:`reaxff (ko) <pair_reaxff>`
* :doc:`rebo (io) <pair_airebo>`
* :doc:`rebomos (o) <pair_rebomos>`
Expand Down
35 changes: 35 additions & 0 deletions doc/src/Commands_removed.rst
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,33 @@ stop LAMMPS and print a suitable error message in most cases, when a
style/command is used that has been removed or will replace the command
with the direct alternative (if available) and print a warning.

ML-RANN package
---------------

.. deprecated:: TBD

.. index:: pair_style rann

The ML-RANN package and its pair style *rann* have been removed because
they were unmaintained in LAMMPS for a long time and caused to much work
to keep it aligned with the LAMMPS coding conventions. The ML-RANN
developers are maintaining an independent fork of their code. They plan
to submit a second generation of their package when it is ready. Until
then we recommend to use the LAMMPS 22Jul2025 stable version if you want
to use this package.

Pair style agni
---------------

.. deprecated:: TBD

.. index:: pair_style agni
.. index:: pair_style agni/omp

The pair style *agni* has been removed since it was unmaintained
for a long time and its developers have moved on to alternate
machine learning potentials that are more efficient and accurate.

amber2lmp tools
---------------

Expand All @@ -34,6 +61,10 @@ ATC, AWPMD, and POEMS packages

.. deprecated:: 10Sep2025

.. index:: fix poems
.. index:: fix atc
.. index:: pair_style awpmd/cut

The ATC, AWPMD, and POEMS packages are removed because they were
unmaintained for a long time and their legacy C++ programming style
started to create problems with modern C++ compilers. LAMMPS version 22
Expand Down Expand Up @@ -126,6 +157,8 @@ MSCG package

.. deprecated:: 21Nov2023

.. index:: fix mscg

The MSCG package has been removed from LAMMPS since it was unmaintained
for many years and instead superseded by the `OpenMSCG software
<https://software.rcc.uchicago.edu/mscg/>`_ of the Voth group at the
Expand All @@ -136,6 +169,8 @@ LATTE package

.. deprecated:: 15Jun2023

.. index:: fix latte

The LATTE package with the fix latte command was removed from LAMMPS.
This functionality has been superseded by :doc:`fix mdi/qm <fix_mdi_qm>`
and :doc:`fix mdi/qmmm <fix_mdi_qmmm>` from the :ref:`MDI package
Expand Down
34 changes: 34 additions & 0 deletions doc/src/Howto_granular_surfaces.rst
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,40 @@ or Lines section, then triangles/lines will be read in and distributed
along with any particles the data file includes, assuming an appropriate
:doc:`atom_style <atom_style>` has been specified, as explained below.

.. image:: img/mixer-drum.jpg
:width: 50%

.. admonition:: Re-using STL files for 3d-printing

There are a large number of STL files published and available for
download that were generated for 3d-printing (see the cement mixer
drum above for example, that was created for printing a cement truck
toy model). Those can in principle be used with LAMMPS, but there
are a couple of quirks to watch out for. Those STL files may contain
degenerate triangles; this is not a problem for 3d-printing but for
LAMMPS. LAMMPS will either try to ignore those triangles or stop
with an error. Another issue are duplicate triangles. Those will
double the force in LAMMPS which is not likely what you want.
Finally, those STL files may have very long and narrow triangles.
These force LAMMPS to have a very large neighbor list and a long
communication cutoff (both are detected and warnings or errors are
printed).

Thus in many cases, it is advisable to *remesh* the STL file, i.e.
recreate the surface(s) with more regular and fewer triangles. One
option to do this is by using `MeshLab or PyMeshLab
<https://meshlab.net>`_. Here is an example:

.. code-block:: Python

import pymeshlab
ms = pymeshlab.MeshSet()
ms.load_new_mesh('input.stl')
ms.meshing_isotropic_explicit_remeshing(iterations=5,
targetlen=pymeshlab.PercentageValue(1.0) # target edge length as % of bbox diagonal
)
ms.save_current_mesh("output.stl")

----------

Surface attributes
Expand Down
155 changes: 150 additions & 5 deletions doc/src/Howto_peri.rst
Original file line number Diff line number Diff line change
@@ -1,9 +1,18 @@
Peridynamics with LAMMPS
========================

This Howto is based on the Sandia report 2010-5549 by Michael L. Parks,
Pablo Seleson, Steven J. Plimpton, Richard B. Lehoucq, and
Stewart A. Silling.
.. note::

Most of the content in this Howto document is is based on the Sandia
report 2010-5549 by Michael L. Parks, Pablo Seleson,
Steven J. Plimpton, Richard B. Lehoucq, and Stewart A. Silling.

----

.. contents:: Available topics
:local:

----

Overview
""""""""
Expand Down Expand Up @@ -79,6 +88,138 @@ Some notes on this input example:
:doc:`timestep <timestep>` command.


BPM-based peridynamics
""""""""""""""""""""""

.. versionadded:: TBD

The same four constitutive models are also available through the
:doc:`bond_style bpm/peri <bond_bpm_peri>` command, which recasts
peridynamics within the :doc:`BPM (bonded particle model) package
<Howto_bpm>`. Peridynamic bonds become real LAMMPS bonds, so the model
uses the standard :doc:`atom_style bond <atom_style>` (no dedicated atom
style) and the domains of solid bodies can be controlled using standard
LAMMPS commands such as :doc:`create_bonds <create_bonds>` or
:doc:`delete_bonds <delete_bonds>` or by reading bonds from a data file.
This allows one to create distinct solid bodies within arbitrary
distances or create small flaws within a body like a crack or void. Each
bond stores per-bond reference state in :doc:`restart files <restart>`,
and gains BPM tooling such as broken-bond dumps. The constitutive law
is the first :doc:`bond_coeff <bond_coeff>` argument (*pmb*, *lps*,
*ves*, or *eps*), and a companion :doc:`pair_style bpm/peri
<pair_bpm_peri>` provides the short-range contact force.

Migrating inputs from the PERI package to BPM
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Here is the minimal example above expressed in the BPM framework:

.. code-block:: LAMMPS

units si
dimension 3
boundary s s s
atom_style bond
atom_modify map array
special_bonds lj 0.0 1.0 1.0 coul 0.0 1.0 1.0
newton on off
neighbor 0.0010 bin
lattice sc 0.0005
region target cylinder y 0.0 0.0 0.0050 -0.0050 0.0 units box
create_box 1 target bond/types 1 extra/bond/per/atom 60 extra/special/per/atom 100
create_atoms 1 region target

# nodal mass (per-type) and nodal volume (the lone user-declared input)
mass * 2.75e-7
fix vol all property/atom d_vfrac d_damage ghost yes
set group all d_vfrac 1.25e-10

pair_style bpm/peri
pair_coeff * * 1.6863e22 0.0015001
create_bonds many all all 1 0.0 0.0015001
special_bonds lj 0.0 1.0 1.0 coul 1.0 1.0 1.0

bond_style bpm/peri
bond_coeff 1 pmb 1.6863e22 0.0015001 0.0005 0.25
compute dmg all property/atom d_damage
fix 1 all nve
timestep 1.0e-7

Notes specific to the BPM formulation:

- The nodal volume must be declared by the user as a :doc:`fix
property/atom <fix_property_atom>` named *vfrac* (group *all*, ghost
communication on) **before** the bond style is defined. This is *input*
data: it is populated by :doc:`set <set>` (uniform) or :doc:`read_data
<read_data>` (per-node) during input parsing, before any *run*, so it
cannot be auto-created the way the internal bookkeeping fields are. The
general rule is: input-data per-atom properties are user-declared;
purely internal ones (*s0*, *smin*, *vinter*, and the *eps* *lambda*)
are auto-created by the bond style.
- Because the styles never read the mass (only the integrator does), the
nodal mass is supplied independently: a uniform per-type :doc:`mass
<mass>` equal to density times nodal volume (here :math:`2200 \times
1.25\times10^{-10} = 2.75\times10^{-7}`), or, for variable mass,
:doc:`atom_style hybrid sphere bond <atom_style>` with per-atom *rmass*.
- The peridynamic bonds are created with :doc:`create_bonds many
<create_bonds>` out to the horizon; *extra/bond/per/atom* must be large
enough for the peridynamic coordination number (often 30-60 or more).
- :doc:`newton <newton>` must be *bond off* and the two-stage
*special_bonds* idiom (coul weight 0 during *create_bonds*, then 1) is
required, as for all BPM bond styles.
- When a body fragments, pieces can leave the domain. The legacy PERI
package tolerates lost atoms silently; in the BPM framework this is an
explicit, opt-in choice. To let a shattering simulation continue, use a
fixed (non-shrink-wrap) box with margin and, *after* the
:doc:`thermo_style <thermo_style>` command (which resets these settings),
add ``thermo_modify lost ignore`` and ``thermo_modify lost/bond ignore``;
the latter drops the dangling bonds of an atom that has left the domain so
the remaining bonds are unaffected. See the ``examples/bpm/peri`` decks.

Migrating a PERI input to the BPM framework is mostly a one-to-one
translation:

.. list-table::
:header-rows: 1
:widths: 50 50

* - PERI package
- BPM framework
* - ``atom_style peri``
- ``atom_style bond`` (+ ``fix property/atom d_vfrac``)
* - ``pair_style peri/pmb`` (+ ``pair_coeff``)
- ``pair_style bpm/peri`` + ``bond_style bpm/peri`` (model keyword)
* - ``set group all volume V``
- ``set group all d_vfrac V``
* - ``set group all density D``
- ``mass * (D*V)`` (uniform) or per-atom *rmass*
* - bonds implicit in the pair neighbor list
- explicit ``create_bonds many all all <type> 0.0 <horizon>``
* - ``compute damage/atom``
- ``fix property/atom d_damage`` + ``compute property/atom d_damage``

The two implementations follow the same constitutive equations. The
analytic elastic response (dilatation, energy) agrees; for the *eps*
model the BPM implementation uses a dimensionally-consistent plastic
return mapping that is stable under sustained plastic flow.

Performance expectations
^^^^^^^^^^^^^^^^^^^^^^^^

The BPM implementation is found to be consistently faster than the
legacy PERI pair styles by a significant marging. On a periodic
16x16x16 simple-cubic block (4096 nodes, 122 bonds per node) the
per-step force cost is roughly 3.6x (pmb), 5.4x (lps), 4.4x (ves) and
5.9x (eps) lower than the corresponding ``peri/*`` pair style on a
single MPI rank, and about 4x lower on four ranks. The legacy styles
walk a double-counted partner list (each bond visited from both
endpoints) and combine bond and contact in one pass, whereas the BPM
bond style visits each bond once and the contact ``pair_style bpm/peri``
carries a separate, nearly empty short-range list. The forward
communication of the per-step dilatation and break state for the
state-based models is a negligible fraction of the cost. See
``examples/bpm/peri/benchmark`` for the input decks.

Peridynamic Model of a Continuum
""""""""""""""""""""""""""""""""

Expand Down Expand Up @@ -769,8 +910,12 @@ created for steps 300, 600, and 2000 this way.

|periimage1| |periimage2| |periimage3|

For interactive visualization, the `Ovito <https://ovito.org>`_ is very
convenient to use. Below are steps to create a visualization of the
For interactive visualization, `OVITO <https://ovito.org>`_ is very
convenient to use. As of 2026, many advanced visualizations can now
also be created with LAMMPS directly using the :doc:`dump image command
<dump_image>`. See the :doc:`Howto_viz` page for details.

Below are steps to create a visualization of the
:ref:`same example from below <periexample>` now using the generated
trajectory in the ``dump.peri`` file.

Expand Down
2 changes: 1 addition & 1 deletion doc/src/Intro_website.rst
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ available online are listed below.
* `LAMMPS highlights with images <https://www.lammps.org/gallery/pictures/>`_
* `LAMMPS highlights with movies <https://www.lammps.org/gallery/movies/>`_
* `Workshops <https://www.lammps.org/workshops/>`_
* `Tutorials <https://www.lammps.org/tutorials/>`_
* `Tutorials <https://www.lammps.org/documentation/tutorials/>`_

* `Pre- and post-processing tools for LAMMPS <https://www.lammps.org/ecosystem/prepost/>`_
* `Other software usable with LAMMPS <https://www.lammps.org/ecosystem/tools/>`_
Expand Down
Binary file added doc/src/JPG/dipole-arrows.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
15 changes: 5 additions & 10 deletions doc/src/Packages.rst
Original file line number Diff line number Diff line change
Expand Up @@ -338,11 +338,6 @@ whether an extra library is needed to build and use the package:
- :doc:`pair_style hdnnp <pair_hdnnp>`
- ``PACKAGES/hdnnp``
- ext
* - :ref:`ML-RUNNER <PKG-ML-RUNNER>`
- Second-, third-, and fourth-generation high-dimensional neural network potentials
- :doc:`pair_style runner <pair_runner>`
- ``PACKAGES/runner``
- ext
* - :ref:`ML-IAP <PKG-ML-IAP>`
- multiple machine learning potentials
- :doc:`pair_style mliap <pair_mliap>`
Expand All @@ -363,11 +358,11 @@ whether an extra library is needed to build and use the package:
- :doc:`pair_style quip <pair_quip>`
- ``PACKAGES/quip``
- ext
* - :ref:`ML-RANN <PKG-ML-RANN>`
- Pair style for RANN potentials
- :doc:`pair rann <pair_rann>`
- ``PACKAGES/rann``
- no
* - :ref:`ML-RUNNER <PKG-ML-RUNNER>`
- Second-, third-, and fourth-generation high-dimensional neural network potentials
- :doc:`pair_style runner <pair_runner>`
- ``PACKAGES/runner``
- ext
* - :ref:`ML-SNAP <PKG-ML-SNAP>`
- quantum-fitted potential
- :doc:`pair_style snap <pair_snap>`
Expand Down
Loading