Merge branch 'develop' into BPM
This commit is contained in:
@ -1,25 +1,25 @@
|
||||
# FENE beadspring benchmark
|
||||
|
||||
units lj
|
||||
atom_style bond
|
||||
units lj
|
||||
atom_style bond
|
||||
special_bonds fene
|
||||
|
||||
read_data data.chain
|
||||
read_data data.chain
|
||||
|
||||
neighbor 0.4 bin
|
||||
neigh_modify every 1 delay 1
|
||||
neighbor 0.4 bin
|
||||
neigh_modify every 1 delay 1
|
||||
|
||||
bond_style fene
|
||||
bond_coeff 1 30.0 1.5 1.0 1.0
|
||||
bond_coeff 1 30.0 1.5 1.0 1.0
|
||||
|
||||
pair_style lj/cut 1.12
|
||||
pair_modify shift yes
|
||||
pair_coeff 1 1 1.0 1.0 1.12
|
||||
pair_style lj/cut 1.12
|
||||
pair_modify shift yes
|
||||
pair_coeff 1 1 1.0 1.0 1.12
|
||||
|
||||
fix 1 all nve
|
||||
fix 2 all langevin 1.0 1.0 10.0 904297
|
||||
fix 1 all nve
|
||||
fix 2 all langevin 1.0 1.0 10.0 904297
|
||||
|
||||
thermo 100
|
||||
timestep 0.012
|
||||
timestep 0.012
|
||||
|
||||
run 100
|
||||
run 100
|
||||
|
||||
@ -1,32 +1,32 @@
|
||||
# FENE beadspring benchmark
|
||||
|
||||
variable x index 1
|
||||
variable y index 1
|
||||
variable z index 1
|
||||
variable x index 1
|
||||
variable y index 1
|
||||
variable z index 1
|
||||
|
||||
units lj
|
||||
atom_style bond
|
||||
atom_modify map hash
|
||||
units lj
|
||||
atom_style bond
|
||||
atom_modify map hash
|
||||
special_bonds fene
|
||||
|
||||
read_data data.chain
|
||||
read_data data.chain
|
||||
|
||||
replicate $x $y $z
|
||||
replicate $x $y $z
|
||||
|
||||
neighbor 0.4 bin
|
||||
neigh_modify every 1 delay 1
|
||||
neighbor 0.4 bin
|
||||
neigh_modify every 1 delay 1
|
||||
|
||||
bond_style fene
|
||||
bond_coeff 1 30.0 1.5 1.0 1.0
|
||||
bond_coeff 1 30.0 1.5 1.0 1.0
|
||||
|
||||
pair_style lj/cut 1.12
|
||||
pair_modify shift yes
|
||||
pair_coeff 1 1 1.0 1.0 1.12
|
||||
pair_style lj/cut 1.12
|
||||
pair_modify shift yes
|
||||
pair_coeff 1 1 1.0 1.0 1.12
|
||||
|
||||
fix 1 all nve
|
||||
fix 2 all langevin 1.0 1.0 10.0 904297
|
||||
fix 1 all nve
|
||||
fix 2 all langevin 1.0 1.0 10.0 904297
|
||||
|
||||
thermo 100
|
||||
timestep 0.012
|
||||
timestep 0.012
|
||||
|
||||
run 100
|
||||
run 100
|
||||
|
||||
@ -1,33 +1,33 @@
|
||||
# LAMMPS benchmark of granular flow
|
||||
# chute flow of 32000 atoms with frozen base at 26 degrees
|
||||
|
||||
units lj
|
||||
atom_style sphere
|
||||
boundary p p fs
|
||||
newton off
|
||||
comm_modify vel yes
|
||||
units lj
|
||||
atom_style sphere
|
||||
boundary p p fs
|
||||
newton off
|
||||
comm_modify vel yes
|
||||
|
||||
read_data data.chute
|
||||
read_data data.chute
|
||||
|
||||
pair_style gran/hooke/history 200000.0 NULL 50.0 NULL 0.5 0
|
||||
pair_coeff * *
|
||||
pair_style gran/hooke/history 200000.0 NULL 50.0 NULL 0.5 0
|
||||
pair_coeff * *
|
||||
|
||||
neighbor 0.1 bin
|
||||
neigh_modify every 1 delay 0
|
||||
neighbor 0.1 bin
|
||||
neigh_modify every 1 delay 0
|
||||
|
||||
timestep 0.0001
|
||||
timestep 0.0001
|
||||
|
||||
group bottom type 2
|
||||
group active subtract all bottom
|
||||
neigh_modify exclude group bottom bottom
|
||||
group bottom type 2
|
||||
group active subtract all bottom
|
||||
neigh_modify exclude group bottom bottom
|
||||
|
||||
fix 1 all gravity 1.0 chute 26.0
|
||||
fix 2 bottom freeze
|
||||
fix 3 active nve/sphere
|
||||
fix 1 all gravity 1.0 chute 26.0
|
||||
fix 2 bottom freeze
|
||||
fix 3 active nve/sphere
|
||||
|
||||
compute 1 all erotate/sphere
|
||||
thermo_style custom step atoms ke c_1 vol
|
||||
thermo_modify norm no
|
||||
thermo 100
|
||||
compute 1 all erotate/sphere
|
||||
thermo_style custom step atoms ke c_1 vol
|
||||
thermo_modify norm no
|
||||
thermo 100
|
||||
|
||||
run 100
|
||||
run 100
|
||||
|
||||
@ -1,38 +1,38 @@
|
||||
# LAMMPS benchmark of granular flow
|
||||
# chute flow of 32000 atoms with frozen base at 26 degrees
|
||||
|
||||
variable x index 1
|
||||
variable y index 1
|
||||
variable x index 1
|
||||
variable y index 1
|
||||
|
||||
units lj
|
||||
atom_style sphere
|
||||
boundary p p fs
|
||||
newton off
|
||||
comm_modify vel yes
|
||||
units lj
|
||||
atom_style sphere
|
||||
boundary p p fs
|
||||
newton off
|
||||
comm_modify vel yes
|
||||
|
||||
read_data data.chute
|
||||
read_data data.chute
|
||||
|
||||
replicate $x $y 1
|
||||
replicate $x $y 1
|
||||
|
||||
pair_style gran/hooke/history 200000.0 NULL 50.0 NULL 0.5 0
|
||||
pair_coeff * *
|
||||
pair_style gran/hooke/history 200000.0 NULL 50.0 NULL 0.5 0
|
||||
pair_coeff * *
|
||||
|
||||
neighbor 0.1 bin
|
||||
neigh_modify every 1 delay 0
|
||||
neighbor 0.1 bin
|
||||
neigh_modify every 1 delay 0
|
||||
|
||||
timestep 0.0001
|
||||
timestep 0.0001
|
||||
|
||||
group bottom type 2
|
||||
group active subtract all bottom
|
||||
neigh_modify exclude group bottom bottom
|
||||
group bottom type 2
|
||||
group active subtract all bottom
|
||||
neigh_modify exclude group bottom bottom
|
||||
|
||||
fix 1 all gravity 1.0 chute 26.0
|
||||
fix 2 bottom freeze
|
||||
fix 3 active nve/sphere
|
||||
fix 1 all gravity 1.0 chute 26.0
|
||||
fix 2 bottom freeze
|
||||
fix 3 active nve/sphere
|
||||
|
||||
compute 1 all erotate/sphere
|
||||
thermo_style custom step atoms ke c_1 vol
|
||||
thermo_modify norm no
|
||||
thermo 100
|
||||
compute 1 all erotate/sphere
|
||||
thermo_style custom step atoms ke c_1 vol
|
||||
thermo_modify norm no
|
||||
thermo 100
|
||||
|
||||
run 100
|
||||
run 100
|
||||
|
||||
40
bench/in.eam
40
bench/in.eam
@ -1,32 +1,32 @@
|
||||
# bulk Cu lattice
|
||||
|
||||
variable x index 1
|
||||
variable y index 1
|
||||
variable z index 1
|
||||
variable x index 1
|
||||
variable y index 1
|
||||
variable z index 1
|
||||
|
||||
variable xx equal 20*$x
|
||||
variable yy equal 20*$y
|
||||
variable zz equal 20*$z
|
||||
variable xx equal 20*$x
|
||||
variable yy equal 20*$y
|
||||
variable zz equal 20*$z
|
||||
|
||||
units metal
|
||||
atom_style atomic
|
||||
units metal
|
||||
atom_style atomic
|
||||
|
||||
lattice fcc 3.615
|
||||
region box block 0 ${xx} 0 ${yy} 0 ${zz}
|
||||
create_box 1 box
|
||||
create_atoms 1 box
|
||||
lattice fcc 3.615
|
||||
region box block 0 ${xx} 0 ${yy} 0 ${zz}
|
||||
create_box 1 box
|
||||
create_atoms 1 box
|
||||
|
||||
pair_style eam
|
||||
pair_coeff 1 1 Cu_u3.eam
|
||||
pair_style eam
|
||||
pair_coeff 1 1 Cu_u3.eam
|
||||
|
||||
velocity all create 1600.0 376847 loop geom
|
||||
velocity all create 1600.0 376847 loop geom
|
||||
|
||||
neighbor 1.0 bin
|
||||
neighbor 1.0 bin
|
||||
neigh_modify every 1 delay 5 check yes
|
||||
|
||||
fix 1 all nve
|
||||
fix 1 all nve
|
||||
|
||||
timestep 0.005
|
||||
thermo 50
|
||||
timestep 0.005
|
||||
thermo 50
|
||||
|
||||
run 100
|
||||
run 100
|
||||
|
||||
40
bench/in.lj
40
bench/in.lj
@ -1,30 +1,30 @@
|
||||
# 3d Lennard-Jones melt
|
||||
|
||||
variable x index 1
|
||||
variable y index 1
|
||||
variable z index 1
|
||||
variable x index 1
|
||||
variable y index 1
|
||||
variable z index 1
|
||||
|
||||
variable xx equal 20*$x
|
||||
variable yy equal 20*$y
|
||||
variable zz equal 20*$z
|
||||
variable xx equal 20*$x
|
||||
variable yy equal 20*$y
|
||||
variable zz equal 20*$z
|
||||
|
||||
units lj
|
||||
atom_style atomic
|
||||
units lj
|
||||
atom_style atomic
|
||||
|
||||
lattice fcc 0.8442
|
||||
region box block 0 ${xx} 0 ${yy} 0 ${zz}
|
||||
create_box 1 box
|
||||
create_atoms 1 box
|
||||
mass 1 1.0
|
||||
lattice fcc 0.8442
|
||||
region box block 0 ${xx} 0 ${yy} 0 ${zz}
|
||||
create_box 1 box
|
||||
create_atoms 1 box
|
||||
mass 1 1.0
|
||||
|
||||
velocity all create 1.44 87287 loop geom
|
||||
velocity all create 1.44 87287 loop geom
|
||||
|
||||
pair_style lj/cut 2.5
|
||||
pair_coeff 1 1 1.0 1.0 2.5
|
||||
pair_style lj/cut 2.5
|
||||
pair_coeff 1 1 1.0 1.0 2.5
|
||||
|
||||
neighbor 0.3 bin
|
||||
neigh_modify delay 0 every 20 check no
|
||||
neighbor 0.3 bin
|
||||
neigh_modify delay 0 every 20 check no
|
||||
|
||||
fix 1 all nve
|
||||
fix 1 all nve
|
||||
|
||||
run 100
|
||||
run 100
|
||||
|
||||
@ -1,27 +1,27 @@
|
||||
# Rhodopsin model
|
||||
|
||||
units real
|
||||
neigh_modify delay 5 every 1
|
||||
units real
|
||||
neigh_modify delay 5 every 1
|
||||
|
||||
atom_style full
|
||||
bond_style harmonic
|
||||
angle_style charmm
|
||||
dihedral_style charmm
|
||||
improper_style harmonic
|
||||
pair_style lj/charmm/coul/long 8.0 10.0
|
||||
pair_modify mix arithmetic
|
||||
kspace_style pppm 1e-4
|
||||
atom_style full
|
||||
bond_style harmonic
|
||||
angle_style charmm
|
||||
dihedral_style charmm
|
||||
improper_style harmonic
|
||||
pair_style lj/charmm/coul/long 8.0 10.0
|
||||
pair_modify mix arithmetic
|
||||
kspace_style pppm 1e-4
|
||||
|
||||
read_data data.rhodo
|
||||
|
||||
fix 1 all shake 0.0001 5 0 m 1.0 a 232
|
||||
fix 2 all npt temp 300.0 300.0 100.0 &
|
||||
z 0.0 0.0 1000.0 mtk no pchain 0 tchain 1
|
||||
z 0.0 0.0 1000.0 mtk no pchain 0 tchain 1
|
||||
|
||||
special_bonds charmm
|
||||
|
||||
|
||||
thermo 50
|
||||
thermo_style multi
|
||||
thermo_style multi
|
||||
timestep 2.0
|
||||
|
||||
run 100
|
||||
run 100
|
||||
|
||||
@ -1,34 +1,34 @@
|
||||
# Rhodopsin model
|
||||
|
||||
variable x index 1
|
||||
variable y index 1
|
||||
variable z index 1
|
||||
variable x index 1
|
||||
variable y index 1
|
||||
variable z index 1
|
||||
|
||||
units real
|
||||
neigh_modify delay 5 every 1
|
||||
units real
|
||||
neigh_modify delay 5 every 1
|
||||
|
||||
atom_style full
|
||||
atom_modify map hash
|
||||
bond_style harmonic
|
||||
angle_style charmm
|
||||
dihedral_style charmm
|
||||
improper_style harmonic
|
||||
pair_style lj/charmm/coul/long 8.0 10.0
|
||||
pair_modify mix arithmetic
|
||||
kspace_style pppm 1e-4
|
||||
atom_style full
|
||||
atom_modify map hash
|
||||
bond_style harmonic
|
||||
angle_style charmm
|
||||
dihedral_style charmm
|
||||
improper_style harmonic
|
||||
pair_style lj/charmm/coul/long 8.0 10.0
|
||||
pair_modify mix arithmetic
|
||||
kspace_style pppm 1e-4
|
||||
|
||||
read_data data.rhodo
|
||||
|
||||
replicate $x $y $z
|
||||
replicate $x $y $z
|
||||
|
||||
fix 1 all shake 0.0001 5 0 m 1.0 a 232
|
||||
fix 2 all npt temp 300.0 300.0 100.0 &
|
||||
z 0.0 0.0 1000.0 mtk no pchain 0 tchain 1
|
||||
z 0.0 0.0 1000.0 mtk no pchain 0 tchain 1
|
||||
|
||||
special_bonds charmm
|
||||
|
||||
|
||||
thermo 50
|
||||
thermo_style multi
|
||||
thermo_style multi
|
||||
timestep 2.0
|
||||
|
||||
run 100
|
||||
run 100
|
||||
|
||||
@ -440,7 +440,7 @@ if(BUILD_OMP)
|
||||
target_link_libraries(lmp PRIVATE OpenMP::OpenMP_CXX)
|
||||
endif()
|
||||
|
||||
if(PKG_MSCG OR PKG_ATC OR PKG_AWPMD OR PKG_ML-QUIP OR PKG_ML-POD OR PKG_ELECTRODE)
|
||||
if(PKG_MSCG OR PKG_ATC OR PKG_AWPMD OR PKG_ML-QUIP OR PKG_ML-POD OR PKG_ELECTRODE OR BUILD_TOOLS)
|
||||
enable_language(C)
|
||||
if (NOT USE_INTERNAL_LINALG)
|
||||
find_package(LAPACK)
|
||||
|
||||
@ -5,6 +5,10 @@ if(CMAKE_VERSION VERSION_LESS 3.12)
|
||||
set(Python3_VERSION ${PYTHON_VERSION_STRING})
|
||||
endif()
|
||||
else()
|
||||
# use default (or custom) Python executable, if version is sufficient
|
||||
if(Python_VERSION VERSION_GREATER_EQUAL 3.5)
|
||||
set(Python3_EXECUTABLE ${Python_EXECUTABLE})
|
||||
endif()
|
||||
find_package(Python3 COMPONENTS Interpreter QUIET)
|
||||
endif()
|
||||
|
||||
|
||||
@ -4,14 +4,18 @@
|
||||
option(BUILD_DOC "Build LAMMPS HTML documentation" OFF)
|
||||
|
||||
if(BUILD_DOC)
|
||||
# Sphinx 3.x requires at least Python 3.5
|
||||
# Current Sphinx versions require at least Python 3.8
|
||||
if(CMAKE_VERSION VERSION_LESS 3.12)
|
||||
find_package(PythonInterp 3.5 REQUIRED)
|
||||
find_package(PythonInterp 3.8 REQUIRED)
|
||||
set(VIRTUALENV ${PYTHON_EXECUTABLE} -m venv)
|
||||
else()
|
||||
# use default (or custom) Python executable, if version is sufficient
|
||||
if(Python_VERSION VERSION_GREATER_EQUAL 3.8)
|
||||
set(Python3_EXECUTABLE ${Python_EXECUTABLE})
|
||||
endif()
|
||||
find_package(Python3 REQUIRED COMPONENTS Interpreter)
|
||||
if(Python3_VERSION VERSION_LESS 3.5)
|
||||
message(FATAL_ERROR "Python 3.5 and up is required to build the HTML documentation")
|
||||
if(Python3_VERSION VERSION_LESS 3.8)
|
||||
message(FATAL_ERROR "Python 3.8 and up is required to build the HTML documentation")
|
||||
endif()
|
||||
set(VIRTUALENV ${Python3_EXECUTABLE} -m venv)
|
||||
endif()
|
||||
|
||||
@ -49,8 +49,8 @@ if(DOWNLOAD_KOKKOS)
|
||||
list(APPEND KOKKOS_LIB_BUILD_ARGS "-DCMAKE_CXX_EXTENSIONS=${CMAKE_CXX_EXTENSIONS}")
|
||||
list(APPEND KOKKOS_LIB_BUILD_ARGS "-DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}")
|
||||
include(ExternalProject)
|
||||
set(KOKKOS_URL "https://github.com/kokkos/kokkos/archive/3.7.01.tar.gz" CACHE STRING "URL for KOKKOS tarball")
|
||||
set(KOKKOS_MD5 "f140e02b826223b1045207d9bc10d404" CACHE STRING "MD5 checksum of KOKKOS tarball")
|
||||
set(KOKKOS_URL "https://github.com/kokkos/kokkos/archive/3.7.02.tar.gz" CACHE STRING "URL for KOKKOS tarball")
|
||||
set(KOKKOS_MD5 "34d7860d548c06a4040236d959c9f99a" CACHE STRING "MD5 checksum of KOKKOS tarball")
|
||||
mark_as_advanced(KOKKOS_URL)
|
||||
mark_as_advanced(KOKKOS_MD5)
|
||||
GetFallbackURL(KOKKOS_URL KOKKOS_FALLBACK)
|
||||
@ -75,7 +75,7 @@ if(DOWNLOAD_KOKKOS)
|
||||
add_dependencies(LAMMPS::KOKKOSCORE kokkos_build)
|
||||
add_dependencies(LAMMPS::KOKKOSCONTAINERS kokkos_build)
|
||||
elseif(EXTERNAL_KOKKOS)
|
||||
find_package(Kokkos 3.7.01 REQUIRED CONFIG)
|
||||
find_package(Kokkos 3.7.02 REQUIRED CONFIG)
|
||||
target_link_libraries(lammps PRIVATE Kokkos::kokkos)
|
||||
else()
|
||||
set(LAMMPS_LIB_KOKKOS_SRC_DIR ${LAMMPS_LIB_SOURCE_DIR}/kokkos)
|
||||
|
||||
@ -33,6 +33,8 @@ if(BUILD_TOOLS)
|
||||
endif()
|
||||
install(TARGETS msi2lmp DESTINATION ${CMAKE_INSTALL_BINDIR})
|
||||
install(FILES ${LAMMPS_DOC_DIR}/msi2lmp.1 DESTINATION ${CMAKE_INSTALL_MANDIR}/man1)
|
||||
|
||||
add_subdirectory(${LAMMPS_TOOLS_DIR}/phonon ${CMAKE_BINARY_DIR}/phana_build)
|
||||
endif()
|
||||
|
||||
if(BUILD_LAMMPS_SHELL)
|
||||
|
||||
@ -117,8 +117,8 @@ their settings may become outdated, too:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
make mac # build serial LAMMPS on a Mac
|
||||
make mac_mpi # build parallel LAMMPS on a Mac
|
||||
make mac # build serial LAMMPS on macOS
|
||||
make mac_mpi # build parallel LAMMPS on macOS
|
||||
make intel_cpu # build with the INTEL package optimized for CPUs
|
||||
make knl # build with the INTEL package optimized for KNLs
|
||||
make opt # build with the OPT package optimized for CPUs
|
||||
|
||||
@ -52,11 +52,11 @@ can be translated to different output format using the `Sphinx
|
||||
incorporates programmer documentation extracted from the LAMMPS C++
|
||||
sources through the `Doxygen <https://doxygen.nl/>`_ program. Currently
|
||||
the translation to HTML, PDF (via LaTeX), ePUB (for many e-book readers)
|
||||
and MOBI (for Amazon Kindle readers) are supported. For that to work a
|
||||
Python 3 interpreter, the ``doxygen`` tools and internet access to
|
||||
download additional files and tools are required. This download is
|
||||
usually only required once or after the documentation folder is returned
|
||||
to a pristine state with ``make clean-all``.
|
||||
and MOBI (for Amazon Kindle(tm) readers) are supported. For that to work a
|
||||
Python interpreter version 3.8 or later, the ``doxygen`` tools and
|
||||
internet access to download additional files and tools are required.
|
||||
This download is usually only required once or after the documentation
|
||||
folder is returned to a pristine state with ``make clean-all``.
|
||||
|
||||
For the documentation build a python virtual environment is set up in
|
||||
the folder ``doc/docenv`` and various python packages are installed into
|
||||
|
||||
@ -46,6 +46,7 @@ KOKKOS, o = OPENMP, t = OPT.
|
||||
* :doc:`com/chunk <compute_com_chunk>`
|
||||
* :doc:`contact/atom <compute_contact_atom>`
|
||||
* :doc:`coord/atom (k) <compute_coord_atom>`
|
||||
* :doc:`count/type <compute_count_type>`
|
||||
* :doc:`damage/atom <compute_damage_atom>`
|
||||
* :doc:`dihedral <compute_dihedral>`
|
||||
* :doc:`dihedral/local <compute_dihedral_local>`
|
||||
|
||||
@ -13,6 +13,7 @@ of time and requests from the LAMMPS user community.
|
||||
Developer_org
|
||||
Developer_code_design
|
||||
Developer_parallel
|
||||
Developer_atom
|
||||
Developer_comm_ops
|
||||
Developer_flow
|
||||
Developer_write
|
||||
|
||||
88
doc/src/Developer_atom.rst
Normal file
88
doc/src/Developer_atom.rst
Normal file
@ -0,0 +1,88 @@
|
||||
Accessing per-atom data
|
||||
-----------------------
|
||||
|
||||
This page discusses how per-atom data is managed in LAMMPS, how it can
|
||||
be accessed, what communication patters apply, and some of the utility
|
||||
functions that exist for a variety of purposes.
|
||||
|
||||
|
||||
Owned and ghost atoms
|
||||
^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
As described on the :doc:`parallel partitioning algorithms
|
||||
<Developer_par_part>` page, LAMMPS uses a domain decomposition of the
|
||||
simulation domain, either in a *brick* or *tiled* manner. Each MPI
|
||||
process *owns* exactly one subdomain and the atoms within it. To compute
|
||||
forces for tuples of atoms that are spread across sub-domain boundaries,
|
||||
also a "halo" of *ghost* atoms are maintained within a the communication
|
||||
cutoff distance of its subdomain.
|
||||
|
||||
The total number of atoms is stored in `Atom::natoms` (within any
|
||||
typical class this can be referred to at `atom->natoms`. The number of
|
||||
*owned* (or "local" atoms) are stored in `Atom::nlocal`; the number of
|
||||
*ghost* atoms is stored in `Atom::nghost`. The sum of `Atom::nlocal`
|
||||
over all MPI processes should be `Atom::natoms`. This is by default
|
||||
regularly checked by the Thermo class, and if the sum does not match,
|
||||
LAMMPS stops with a "lost atoms" error. For convenience also the
|
||||
property `Atom::nmax` is available, this is the maximum of
|
||||
`Atom::nlocal + Atom::nghost` across all MPI processes.
|
||||
|
||||
Per-atom properties are either managed by the atom style, or individual
|
||||
classes. or as custom arrays by the individual classes. If only access
|
||||
to *owned* atoms is needed, they are usually allocated to be of size
|
||||
`Atom::nlocal`, otherwise of size `Atom::nmax`. Please note that not all
|
||||
per-atom properties are available or updated on *ghost* atoms. For
|
||||
example, per-atom velocities are only updated with :doc:`comm_modify vel
|
||||
yes <comm_modify>`.
|
||||
|
||||
|
||||
Atom indexing
|
||||
^^^^^^^^^^^^^
|
||||
|
||||
When referring to individual atoms, they may be indexed by their local
|
||||
*index*, their index in their `Atom::x` array. This is densely populated
|
||||
containing first all *owned* atoms (index < `Atom::nlocal`) and then all
|
||||
*ghost* atoms. The order of atoms in these arrays can change due to
|
||||
atoms migrating between between subdomains, atoms being added or
|
||||
deleted, or atoms being sorted for better cache efficiency. Atoms are
|
||||
globally uniquely identified by their *atom ID*. There may be multiple
|
||||
atoms with the same atom ID present, but only one of them may be an
|
||||
*owned* atom.
|
||||
|
||||
To find the local *index* of an atom, when the *atom ID* is known, the
|
||||
`Atom::map()` function may be used. It will return the local atom index
|
||||
or -1. If the returned value is between 0 (inclusive) and `Atom::nlocal`
|
||||
(exclusive) it is an *owned* or "local" atom; for larger values the atom
|
||||
is present as a ghost atom; for a value of -1, the atom is not present
|
||||
on the current subdomain at all.
|
||||
|
||||
If multiple atoms with the same tag exist in the same subdomain, they
|
||||
can be found via the `Atom::sametag` array. It points to the next atom
|
||||
index with the same tag or -1 if there are no more atoms with the same
|
||||
tag. The list will be exhaustive when starting with an index of an
|
||||
*owned* atom, since the atom IDs are unique, so there can only be one
|
||||
such atom. Example code to count atoms with same atom ID in subdomain:
|
||||
|
||||
.. code-block:: c++
|
||||
|
||||
for (int i = 0; i < atom->nlocal; ++i) {
|
||||
int count = 0;
|
||||
while (sametag[i] >= 0) {
|
||||
i = sametag[i];
|
||||
++count;
|
||||
}
|
||||
printf("Atom ID: %ld is present %d times\n", atom->tag[i], count);
|
||||
}
|
||||
|
||||
Atom class versus AtomVec classes
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
The `Atom` class contains all kinds of flags and counters about atoms in
|
||||
the system and that includes pointers to **all** per-atom properties
|
||||
available for atoms. However, only a subset of these pointers are
|
||||
non-NULL and which those are depends on the atom style. For each atom
|
||||
style there is a corresponding `AtomVecXXX` class derived from the
|
||||
`AtomVec` base class, where the XXX indicates the atom style. This
|
||||
`AtomVecXXX` class will update the counters and per-atom pointers if
|
||||
atoms are added or removed to the system or migrate between subdomains.
|
||||
|
||||
@ -23,7 +23,6 @@ General howto
|
||||
Howto_library
|
||||
Howto_couple
|
||||
Howto_mdi
|
||||
Howto_bpm
|
||||
Howto_broken_bonds
|
||||
|
||||
Settings howto
|
||||
@ -83,6 +82,7 @@ Packages howto
|
||||
Howto_spherical
|
||||
Howto_granular
|
||||
Howto_body
|
||||
Howto_bpm
|
||||
Howto_polarizable
|
||||
Howto_coreshell
|
||||
Howto_drude
|
||||
|
||||
@ -1,48 +1,56 @@
|
||||
Broken Bonds
|
||||
============
|
||||
|
||||
Typically, bond interactions persist for the duration of a simulation in
|
||||
LAMMPS. However, there are some exceptions that allow for bonds to
|
||||
break, including the :doc:`quartic bond style <bond_quartic>` and the
|
||||
bond styles in the :doc:`BPM package <Howto_bpm>` which contains the
|
||||
:doc:`bpm/spring <bond_bpm_spring>` and :doc:`bpm/rotational
|
||||
<bond_bpm_rotational>` bond styles. In these cases, a bond can be broken
|
||||
if it is stretched beyond a user-defined threshold. LAMMPS accomplishes
|
||||
this by setting the bond type to 0, such that the bond force is no
|
||||
longer computed.
|
||||
Typically, molecular bond interactions persist for the duration of a
|
||||
simulation in LAMMPS. However, some commands break bonds dynamically,
|
||||
including the following:
|
||||
|
||||
Users are normally able to weight the contribution of pair forces to atoms
|
||||
that are bonded using the :doc:`special_bonds command <special_bonds>`.
|
||||
When bonds break, this is not always the case. For the quartic bond style,
|
||||
pair forces are always turned off between bonded particles. LAMMPS does
|
||||
this via a computational sleight-of-hand. It subtracts the pairwise
|
||||
interaction as part of the bond computation. When the bond breaks, the
|
||||
subtraction stops. For this to work, the pairwise interaction must always
|
||||
be computed by the :doc:`pair_style <pair_style>` command, whether the bond
|
||||
is broken or not. This means that :doc:`special_bonds <special_bonds>` must
|
||||
be set to 1,1,1. After the bond breaks, the pairwise interaction between the
|
||||
two atoms is turned on, since they are no longer bonded.
|
||||
* :doc:`bond_style quartic <bond_quartic>`
|
||||
* :doc:`fix bond/break <fix_bond_break>`
|
||||
* :doc:`fix bond/react <fix_bond_react>`
|
||||
* :doc:`BPM package <Howto_bpm>` bond styles
|
||||
|
||||
In the BPM package, one can either turn off all pair interactions between
|
||||
bonded particles or leave them on, overlaying pair forces on top of bond
|
||||
forces. To remove pair forces, the special bond list is dynamically
|
||||
updated. More details can be found on the :doc:`Howto BPM <Howto_bpm>`
|
||||
page.
|
||||
A bond can break if it is stretched beyond a user-defined threshold or
|
||||
more generally if other criteria are met.
|
||||
|
||||
Bonds can also be broken by fixes which change bond topology, including
|
||||
:doc:`fix bond/break <fix_bond_break>` and
|
||||
:doc:`fix bond/react <fix_bond_react>`. These fixes will automatically
|
||||
trigger a rebuild of the neighbor list and update special bond data structures
|
||||
when bonds are broken.
|
||||
For the quartic bond style, when a bond is broken its bond type is set
|
||||
to 0 to effectively break it and pairwise forces between the two atoms
|
||||
in the broken bond are "turned on". Angles, dihedrals, etc cannot be
|
||||
defined for a system when :doc:`bond_style quartic <bond_quartic>` is
|
||||
used.
|
||||
|
||||
Note that when bonds are dumped to a file via the :doc:`dump local <dump>` command, bonds with type 0 are not included. The
|
||||
:doc:`delete_bonds <delete_bonds>` command can also be used to query the
|
||||
status of broken bonds or permanently delete them, e.g.:
|
||||
Similarly, bond styles in the BPM package are also incompatible with
|
||||
angles, dihedrals, etc. and when a bond breaks its type is set to zero.
|
||||
However, in the BPM package one can either turn off all pair interactions
|
||||
between bonded particles or leave them on, overlaying pair forces on
|
||||
top of bond forces. To remove pair forces, the special bond list is
|
||||
dynamically updated. More details can be found on the :doc:`Howto BPM
|
||||
<Howto_bpm>` page.
|
||||
|
||||
The :doc:`fix bond/break <fix_bond_break>` and :doc:`fix bond/react
|
||||
<fix_bond_react>` commands allow breaking of bonds within a molecular
|
||||
topology with may also define angles, dihedrals, etc. These commands
|
||||
update internal topology data structures to remove broken bonds, as
|
||||
well as the appropriate angle, dihedral, etc interactions which
|
||||
include the bond. They also trigger a rebuild of the neighbor list
|
||||
when this occurs, to turn on the appropriate pairwise forces.
|
||||
|
||||
Note that when bonds are dumped to a file via the :doc:`dump local
|
||||
<dump>` command, bonds with type 0 are not included.
|
||||
|
||||
The :doc:`delete_bonds <delete_bonds>` command can be used to query
|
||||
the status of broken bonds with type = 0 or permanently delete them,
|
||||
e.g.:
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
delete_bonds all stats
|
||||
delete_bonds all bond 0 remove
|
||||
|
||||
The compute :doc:`nbond/atom <compute_nbond_atom>` can also be used
|
||||
to tally the current number of bonds per atom, excluding broken bonds.
|
||||
The compute :doc:`count/type <compute_count_type>` command tallies the
|
||||
current number of bonds (or angles, etc) for each bond (angle, etc)
|
||||
type. It also tallies broken bonds with type = 0.
|
||||
|
||||
The compute :doc:`nbond/atom <compute_nbond_atom>` command tallies the
|
||||
current number of bonds each atom is part of, excluding broken bonds
|
||||
with type = 0.
|
||||
|
||||
@ -1,13 +1,13 @@
|
||||
Download an executable for Linux or Mac via Conda
|
||||
-------------------------------------------------
|
||||
Download an executable for Linux or macOS via Conda
|
||||
---------------------------------------------------
|
||||
|
||||
Pre-compiled LAMMPS binaries are available for macOS and Linux via the
|
||||
`Conda <conda_>`_ package management system.
|
||||
|
||||
First, one must set up the Conda package manager on your system. Follow the
|
||||
instructions to install `Miniconda <mini_conda_install_>`_, then create a conda
|
||||
environment (named `my-lammps-env` or whatever you prefer) for your LAMMPS
|
||||
install:
|
||||
First, one must set up the Conda package manager on your system. Follow
|
||||
the instructions to install `Miniconda <mini_conda_install_>`_, then
|
||||
create a conda environment (named `my-lammps-env` or whatever you
|
||||
prefer) for your LAMMPS install:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
|
||||
@ -1,12 +1,12 @@
|
||||
Download an executable for Mac
|
||||
------------------------------
|
||||
Download an executable for macOS
|
||||
--------------------------------
|
||||
|
||||
LAMMPS can be downloaded, built, and configured for OS X on a Mac with
|
||||
`Homebrew <homebrew_>`_. (Alternatively, see the installation
|
||||
instructions for :doc:`downloading an executable via Conda
|
||||
<Install_conda>`.) The following LAMMPS packages are unavailable at
|
||||
this time because of additional requirements not yet met: GPU, KOKKOS,
|
||||
MSCG, MPIIO, POEMS, VORONOI.
|
||||
LAMMPS can be downloaded, built, and configured for macOS with `Homebrew
|
||||
<homebrew_>`_. (Alternatively, see the installation instructions for
|
||||
:doc:`downloading an executable via Conda <Install_conda>`.) The
|
||||
following LAMMPS packages are unavailable at this time because of
|
||||
additional requirements not yet met: GPU, KOKKOS, MSCG, MPIIO, POEMS,
|
||||
VORONOI.
|
||||
|
||||
After installing Homebrew, you can install LAMMPS on your system with
|
||||
the following commands:
|
||||
@ -15,8 +15,9 @@ the following commands:
|
||||
|
||||
brew install lammps
|
||||
|
||||
This will install the executables "lammps_serial" and "lammps_mpi", as well as
|
||||
the LAMMPS "doc", "potentials", "tools", "bench", and "examples" directories.
|
||||
This will install the executables "lammps_serial" and "lammps_mpi", as
|
||||
well as the LAMMPS "doc", "potentials", "tools", "bench", and "examples"
|
||||
directories.
|
||||
|
||||
Once LAMMPS is installed, you can test the installation with the
|
||||
Lennard-Jones benchmark file:
|
||||
|
||||
@ -2,7 +2,7 @@ Download source and documentation as a tarball
|
||||
----------------------------------------------
|
||||
|
||||
You can download a current LAMMPS tarball from the `download page <download_>`_
|
||||
of the `LAMMPS website <lws_>`_.
|
||||
of the `LAMMPS website <lws_>`_ or from GitHub (see below).
|
||||
|
||||
.. _download: https://www.lammps.org/download.html
|
||||
.. _bug: https://www.lammps.org/bug.html
|
||||
@ -17,21 +17,21 @@ tarball occasionally updated. Feature releases occur every 4 to 8
|
||||
weeks. The new contents in all feature releases are listed on the `bug
|
||||
and feature page <bug_>`_ of the LAMMPS homepage.
|
||||
|
||||
Both tarballs include LAMMPS documentation (HTML and PDF files)
|
||||
corresponding to that version.
|
||||
|
||||
Tarballs of older LAMMPS versions can also be downloaded from `this page
|
||||
<older_>`_.
|
||||
|
||||
Once you have a tarball, unzip and untar it with the following
|
||||
Tarballs downloaded from the LAMMPS homepage include the pre-translated
|
||||
LAMMPS documentation (HTML and PDF files) corresponding to that version.
|
||||
|
||||
Once you have a tarball, uncompress and untar it with the following
|
||||
command:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
tar -xzvf lammps*.tar.gz
|
||||
|
||||
This will create a LAMMPS directory with the version date
|
||||
in its name, e.g. lammps-23Jun18.
|
||||
This will create a LAMMPS directory with the version date in its name,
|
||||
e.g. lammps-28Mar23.
|
||||
|
||||
----------
|
||||
|
||||
@ -45,7 +45,8 @@ with the following command, to create a lammps-<version> directory:
|
||||
unzip lammps*.zip
|
||||
|
||||
This version corresponds to the selected LAMMPS feature or stable
|
||||
release.
|
||||
release (as indicated by the matching git tag) and will only contain the
|
||||
source code and no pre-built documentation.
|
||||
|
||||
.. _git: https://github.com/lammps/lammps/releases
|
||||
|
||||
|
||||
@ -136,10 +136,21 @@ Indices and tables
|
||||
:class: note
|
||||
|
||||
The HTML version of the manual makes use of advanced features present
|
||||
in "modern" web browsers. This can lead to incompatibilities with older
|
||||
web browsers (released more than 4 years ago) and specific vendor browsers
|
||||
(e.g. Internet Explorer on Windows; Microsoft Edge works well though)
|
||||
in "modern" web browsers. This leads to incompatibilities with older
|
||||
web browsers and specific vendor browsers (e.g. Internet Explorer on Windows)
|
||||
where parts of the pages are not rendered as expected (e.g. the layout is
|
||||
broken or mathematical expressions not typeset). In that case we
|
||||
recommend to install/use a different/newer web browser or use
|
||||
the `PDF version of the manual <https://docs.lammps.org/Manual.pdf>`_.
|
||||
|
||||
The following web browser versions have been verified to work as
|
||||
expected on Linux, macOS, and Windows where available:
|
||||
|
||||
- Safari version 11.1 and later
|
||||
- Firefox version 54 and later
|
||||
- Chrome version 54 and later
|
||||
- Opera version 41 and later
|
||||
- Edge version 80 and later
|
||||
|
||||
Also Android version 7.1 and later and iOS version 11 and later have
|
||||
been verified to render this website as expected.
|
||||
|
||||
@ -1,23 +1,30 @@
|
||||
Modifying & extending LAMMPS
|
||||
****************************
|
||||
|
||||
LAMMPS is designed in a modular fashion and to be easy to modify or
|
||||
extend with new functionality. In fact, about 95% of its source code
|
||||
are optional. The following pages give basic instructions on what
|
||||
is required when adding new styles of different kinds to LAMMPS.
|
||||
LAMMPS has a modular design, so that it is easy to modify or extend with
|
||||
new functionality. In fact, about 95% of its source code is optional.
|
||||
The following pages give basic instructions on adding new features to
|
||||
LAMMPS. More in-depth explanations and documentation of individual
|
||||
functions and classes are given in :doc:`Developer`.
|
||||
|
||||
If you add a new feature to LAMMPS and think it will be of general
|
||||
interest to other users, we encourage you to submit it for inclusion in
|
||||
LAMMPS as a pull request on our `GitHub site
|
||||
<https://github.com/lammps/lammps>`_, after reading about :doc:`how to
|
||||
prepare your code for submission <Modify_contribute>` and :doc:`the
|
||||
style requirements and recommendations <Modify_style>`.
|
||||
LAMMPS. This process is explained in the following three pages:
|
||||
|
||||
* :doc:`how to prepare and submit your code <Modify_contribute>`
|
||||
* :doc:`requirements for submissions <Modify_requirements>`
|
||||
* :doc:`style guidelines <Modify_style>`
|
||||
|
||||
A summary description of various types of styles in LAMMPS follows.
|
||||
A discussion of implementing specific styles from scratch is given
|
||||
in :doc:`writing new styles <Developer_write>`.
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
Modify_overview
|
||||
Modify_contribute
|
||||
Modify_requirements
|
||||
Modify_style
|
||||
|
||||
.. toctree::
|
||||
|
||||
@ -2,74 +2,59 @@ Submitting new features for inclusion in LAMMPS
|
||||
===============================================
|
||||
|
||||
We encourage LAMMPS users to submit new features they wrote for LAMMPS
|
||||
to be included into the LAMMPS distribution and thus become easily
|
||||
accessible to all LAMMPS users. The LAMMPS source code is managed with
|
||||
git and public development is hosted on `GitHub
|
||||
<https://github.com/lammps/lammps>`_. You can monitor the repository to
|
||||
be notified of releases, follow the ongoing development, and comment on
|
||||
topics of interest to you.
|
||||
to be included in the LAMMPS distribution and thus become easily
|
||||
accessible to all LAMMPS users. The LAMMPS source code is managed
|
||||
with git and public development is hosted on `GitHub
|
||||
<https://github.com/lammps/lammps>`_. You can monitor the repository
|
||||
to be notified of releases, follow the ongoing development, and
|
||||
comment on topics of interest to you.
|
||||
|
||||
This section contains general information regarding the preparation
|
||||
and submission of new features to LAMMPS. If you are new to
|
||||
development in LAMMPS, we recommend you read one of the tutorials on
|
||||
developing a new :doc:`pair style <Developer_write_pair>` or :doc:`fix
|
||||
style <Developer_write_fix>` which provide a friendly introduction to
|
||||
what LAMMPS development entails and common vocabulary used on this
|
||||
section.
|
||||
|
||||
|
||||
Communication with the LAMMPS developers
|
||||
----------------------------------------
|
||||
|
||||
For any larger modifications or programming project, you are encouraged
|
||||
to contact the LAMMPS developers ahead of time in order to discuss
|
||||
implementation strategies and coding guidelines. That will make it
|
||||
easier to integrate your contribution and results in less work for
|
||||
everybody involved. You are also encouraged to search through the list
|
||||
of `open issues on GitHub <https://github.com/lammps/lammps/issues>`_
|
||||
and submit a new issue for a planned feature, so you would not duplicate
|
||||
the work of others (and possibly get scooped by them) or have your work
|
||||
duplicated by others.
|
||||
For any larger modifications or programming project, you are
|
||||
encouraged to contact the LAMMPS developers ahead of time to discuss
|
||||
implementation strategies. That will make it easier to integrate your
|
||||
contribution and typically results in less work for everyone involved.
|
||||
You are also encouraged to search through the list of `open issues on
|
||||
GitHub <https://github.com/lammps/lammps/issues>`_ and submit a new
|
||||
issue for a planned feature, to avoid duplicating work (and possibly
|
||||
being scooped).
|
||||
|
||||
For informal communication with the LAMMPS developers you may ask to
|
||||
join the `LAMMPS developers on Slack <https://lammps.slack.com>`_. This
|
||||
slack work space is by invitation only. Thus for access, please send an
|
||||
e-mail to ``slack@lammps.org`` explaining what part of LAMMPS you are
|
||||
working on. Only discussions related to LAMMPS development are
|
||||
tolerated in that work space, so this is **NOT** for people that look
|
||||
For informal communication with the LAMMPS developers, you may ask to
|
||||
join the `LAMMPS developers on Slack <https://lammps.slack.com>`_.
|
||||
This slack work space is by invitation only. For access, please send
|
||||
an e-mail to ``slack@lammps.org`` explaining what part of LAMMPS you
|
||||
are working on. Only discussions related to LAMMPS development are
|
||||
tolerated in that work space, so this is **NOT** for people looking
|
||||
for help with compiling, installing, or using LAMMPS. Please post a
|
||||
message to the `LAMMPS forum <https://www.lammps.org/forum.html>`_ for
|
||||
those purposes.
|
||||
|
||||
Packages versus individual files
|
||||
--------------------------------
|
||||
|
||||
The remainder of this chapter describes how to add new "style" files of
|
||||
various kinds to LAMMPS. Packages are simply collections of one or more
|
||||
such new class files which are invoked as a new style within a LAMMPS
|
||||
input script. In some cases also collections of supporting functions or
|
||||
classes are included as separate files in a package, especially when
|
||||
they can be shared between multiple styles. If designed correctly, these
|
||||
additions typically do not require any changes to the core code of
|
||||
LAMMPS; they are simply add-on files that are compiled with the rest of
|
||||
LAMMPS. To make those styles work, you may need some trivial changes to
|
||||
the core code; an example of a trivial change is making a parent-class
|
||||
method "virtual" when you derive a new child class from it.
|
||||
|
||||
If you think your new feature or package requires some non-trivial
|
||||
changes in core LAMMPS files, you should communicate with the LAMMPS
|
||||
developers `on Slack <https://lammps.org/slack.html>`_, `on GitHub
|
||||
<https://github.com/lammps/lammps/issues>`_, or `via email
|
||||
<https://www.lammps.org/authors.html>`_, since we may have
|
||||
recommendations about what changes to do where, or may not want to
|
||||
include certain changes for some reason and thus you would need to look
|
||||
for alternatives.
|
||||
|
||||
Time and effort required
|
||||
------------------------
|
||||
|
||||
How quickly your contribution will be integrated can vary a lot. It
|
||||
depends largely on how much effort it will cause the LAMMPS developers
|
||||
to integrate and test it, how many and what kind of changes to the core
|
||||
code are required, how quickly you can address them and of how much
|
||||
interest it is to the larger LAMMPS community. Please see the section
|
||||
on :doc:`LAMMPS programming style and requirements <Modify_style>` for
|
||||
instructions, recommendations, and formal requirements. A small,
|
||||
modular, well written contribution may be integrated within hours, but a
|
||||
complex change that will require a redesign of some core functionality
|
||||
in LAMMPS for a clean integration can take many months until it is
|
||||
considered ready for inclusion (though this is rare).
|
||||
How quickly your contribution will be integrated can vary widely. It
|
||||
depends largely on how much effort is required by the LAMMPS
|
||||
developers to integrate and test it, if any and what kind of changes
|
||||
to the core code are required, how quickly you can address them, and
|
||||
how much interest the contribution is to the larger LAMMPS
|
||||
community. This process can be streamlined by following the
|
||||
:doc:`requirements <Modify_requirements>` and :doc:`style
|
||||
guidelines<Modify_style>`. A small, modular, well written
|
||||
contribution may be integrated within hours, but a complex change that
|
||||
requires a re-design of a core functionality in LAMMPS can take months
|
||||
before inclusion (though this is rare).
|
||||
|
||||
|
||||
Submission procedure
|
||||
@ -78,36 +63,24 @@ Submission procedure
|
||||
All changes to LAMMPS (including those from LAMMPS developers) are
|
||||
integrated via pull requests on GitHub and cannot be merged without
|
||||
passing the automated testing and an approving review by a LAMMPS core
|
||||
developer. Thus before submitting your contribution, you should first
|
||||
make certain, that your added or modified code compiles and works
|
||||
correctly with the latest development version of LAMMPS and contains all
|
||||
bug fixes from it.
|
||||
developer. Before submitting your contribution, you should therefore
|
||||
first ensure that your added or modified code compiles and works
|
||||
correctly with the latest development version of LAMMPS and contains
|
||||
all bug fixes from it.
|
||||
|
||||
Once you have prepared everything, see the :doc:`LAMMPS GitHub Tutorial
|
||||
<Howto_github>` page for instructions on how to submit your changes or
|
||||
new files through a GitHub pull request yourself. If you are unable or
|
||||
unwilling to submit via GitHub yourself, you may also submit patch files
|
||||
or full files to the LAMMPS developers and ask them to submit a pull
|
||||
request on GitHub on your behalf. Then create a gzipped tar file of
|
||||
all changed or added files or a corresponding patch file using
|
||||
'diff -u' or 'diff -c' format and compress it with gzip. Please only
|
||||
use gzip compression, as this works well and is available on all platforms.
|
||||
Once you have prepared everything, see the :doc:`LAMMPS GitHub
|
||||
Tutorial <Howto_github>` page for instructions on how to submit your
|
||||
changes or new files through a GitHub pull request. If you are unable
|
||||
or unwilling to submit via GitHub yourself, you may also send patch
|
||||
files or full files to the `LAMMPS developers
|
||||
<https://www.lammps.org/authors.html>`_ and ask them to submit a pull
|
||||
request on GitHub on your behalf. If this is the case, create a
|
||||
gzipped tar file of all new or changed files or a corresponding patch
|
||||
file using 'diff -u' or 'diff -c' format and compress it with gzip.
|
||||
Please only use gzip compression, as this works well and is available
|
||||
on all platforms. This mode of submission may delay the integration
|
||||
as it depends more on the LAMMPS developers.
|
||||
|
||||
If the new features/files are broadly useful we may add them as core
|
||||
files to LAMMPS or as part of a :doc:`package <Packages_list>`. All
|
||||
packages are listed and described on the :doc:`Packages details
|
||||
<Packages_details>` doc page.
|
||||
|
||||
Licensing
|
||||
---------
|
||||
|
||||
Note that by providing us files to release, you agree to make them
|
||||
open-source, i.e. we can release them under the terms of the GPL
|
||||
(version 2) with the rest of LAMMPS. And similarly as part of a LGPL
|
||||
(version 2.1) distribution of LAMMPS that we make available to
|
||||
developers on request only and with files that are not authorized for
|
||||
that kind of distribution removed (e.g. interface to FFTW). See the
|
||||
:doc:`LAMMPS license <Intro_opensource>` page for details.
|
||||
|
||||
External contributions
|
||||
----------------------
|
||||
@ -115,11 +88,42 @@ External contributions
|
||||
If you prefer to do so, you can also develop and support your add-on
|
||||
feature **without** having it included in the LAMMPS distribution, for
|
||||
example as a download from a website of your own. See the `External
|
||||
LAMMPS packages and tools <https://www.lammps.org/external.html>`_ page
|
||||
of the LAMMPS website for examples of groups that do this. We are happy
|
||||
to advertise your package and website from that page. Simply email the
|
||||
`developers <https://www.lammps.org/authors.html>`_ with info about your
|
||||
package and we will post it there. We recommend to name external
|
||||
packages USER-\<name\> so they can be easily distinguished from bundled
|
||||
packages that do not have the USER- prefix.
|
||||
LAMMPS packages and tools <https://www.lammps.org/external.html>`_
|
||||
page of the LAMMPS website for examples of groups that do this. We
|
||||
are happy to advertise your package and website from that page.
|
||||
Simply email the `developers <https://www.lammps.org/authors.html>`_
|
||||
with info about your package, and we will post it there. We recommend
|
||||
naming external packages USER-\<name\> so they can be easily
|
||||
distinguished from packages in the LAMMPS distribution which do not
|
||||
have the USER- prefix.
|
||||
|
||||
|
||||
Location of files: individual files and packages
|
||||
------------------------------------------------
|
||||
|
||||
We rarely accept new styles in the core src folder. Thus, please
|
||||
review the list of :doc:`available Packages <Packages_details>` to see
|
||||
if your contribution should be added to one of them. It should fit
|
||||
into the general purpose of that package. If it does not fit well, it
|
||||
may be added to one of the EXTRA- packages or the MISC package.
|
||||
|
||||
However, if your project includes many related features that are not
|
||||
covered by one of the existing packages or is dependent on a library
|
||||
(bundled or external), it is best to create a new package with its own
|
||||
directory (with a name like FOO). In addition to your new files, the
|
||||
directory should contain a README text file containing your name and
|
||||
contact information and a brief description of what your new package
|
||||
does.
|
||||
|
||||
|
||||
Changes to core LAMMPS files
|
||||
--------------------------------
|
||||
|
||||
If designed correctly, most additions do not require any changes to
|
||||
the core code of LAMMPS; they are simply add-on files that are
|
||||
compiled with the rest of LAMMPS. To make those styles work, you may
|
||||
need some trivial changes to the core code. An example of a trivial
|
||||
change is making a parent-class method "virtual" when you derive a new
|
||||
child class from it. If your features involve more substantive
|
||||
changes to the core LAMMPS files, it is particularly encouraged that
|
||||
you communicate with the LAMMPS developers early in development.
|
||||
|
||||
@ -80,8 +80,8 @@ There are also several type-specific methods
|
||||
- Optional method to test when particles are in contact. By default, this is when particles overlap.
|
||||
* - ``GranSubModNormal->pulloff_distance()``
|
||||
- Optional method to return the distance at which particles stop interacting. By default, this is when particles no longer overlap.
|
||||
* - ``GranSubModNormal->calculate_area()``
|
||||
- Optional method to return the surface area of the contact. By default, this returns the geometric cross section.
|
||||
* - ``GranSubModNormal->calculate_radius()``
|
||||
- Optional method to return the radius of the contact. By default, this returns the radius of the geometric cross section.
|
||||
* - ``GranSubModNormal->set_fncrit()``
|
||||
- Optional method that defines the critical force to break the contact used by some tangential, rolling, and twisting sub-models. By default, this is the current total normal force including damping.
|
||||
* - ``GranSubModNormal->calculate_forces()``
|
||||
@ -105,9 +105,7 @@ set of files ``gran_sub_mod_custom.h``:
|
||||
|
||||
#ifdef GranSubMod_CLASS
|
||||
// clang-format off
|
||||
GranSubModStyle(hooke/piecewise,
|
||||
GranSubModNormalHookePiecewise,
|
||||
NORMAL);
|
||||
GranSubModStyle(hooke/piecewise,GranSubModNormalHookePiecewise,NORMAL);
|
||||
// clang-format on
|
||||
#else
|
||||
|
||||
@ -119,15 +117,14 @@ set of files ``gran_sub_mod_custom.h``:
|
||||
|
||||
namespace LAMMPS_NS {
|
||||
namespace Granular_NS {
|
||||
|
||||
class GranSubModNormalHookePiecewise : public GranSubModNormal {
|
||||
public:
|
||||
GranSubModNormalHookePiecewise(class GranularModel *, class LAMMPS *);
|
||||
void coeffs_to_local() override;
|
||||
double calculate_forces();
|
||||
protected:
|
||||
double k1, k2, delta_switch;
|
||||
};
|
||||
class GranSubModNormalHookePiecewise : public GranSubModNormal {
|
||||
public:
|
||||
GranSubModNormalHookePiecewise(class GranularModel *, class LAMMPS *);
|
||||
void coeffs_to_local() override;
|
||||
double calculate_forces() override;
|
||||
protected:
|
||||
double k1, k2, delta_switch;
|
||||
};
|
||||
|
||||
} // namespace Granular_NS
|
||||
} // namespace LAMMPS_NS
|
||||
@ -147,7 +144,8 @@ and ``gran_sub_mod_custom.cpp``
|
||||
using namespace LAMMPS_NS;
|
||||
using namespace Granular_NS;
|
||||
|
||||
GranSubModNormalHookePiecewise::GranSubModNormalHookePiecewise(GranularModel *gm, LAMMPS *lmp) : GranSubModNormal(gm, lmp)
|
||||
GranSubModNormalHookePiecewise::GranSubModNormalHookePiecewise(GranularModel *gm, LAMMPS *lmp) :
|
||||
GranSubModNormal(gm, lmp)
|
||||
{
|
||||
num_coeffs = 4;
|
||||
}
|
||||
|
||||
@ -1,42 +1,44 @@
|
||||
Overview
|
||||
========
|
||||
|
||||
The best way to add a new feature to LAMMPS is to find a similar feature
|
||||
and look at the corresponding source and header files to figure out what
|
||||
it does. You will need some knowledge of C++ to be able to understand
|
||||
the high-level structure of LAMMPS and its class organization, but
|
||||
functions (class methods) that do actual computations are mostly written
|
||||
in C-style code and operate on simple C-style data structures (vectors
|
||||
and arrays). A high-level overview of the programming style choices in
|
||||
LAMMPS is :doc:`given elsewhere <Developer_code_design>`.
|
||||
The best way to add a new feature to LAMMPS is to find a similar
|
||||
feature and look at the corresponding source and header files to
|
||||
figure out what it does. You will need some knowledge of C++ to
|
||||
understand the high-level structure of LAMMPS and its class
|
||||
organization. Functions (class methods) that do actual computations
|
||||
are mostly written in C-style code and operate on simple C-style data
|
||||
structures (vectors and arrays). A high-level overview of the
|
||||
programming style choices in LAMMPS is :doc:`given elsewhere
|
||||
<Developer_code_design>`.
|
||||
|
||||
Most of the new features described on the :doc:`Modify <Modify>` doc
|
||||
page require you to write a new C++ derived class (except for exceptions
|
||||
described below, where you can make small edits to existing files).
|
||||
Creating a new class requires 2 files, a source code file (\*.cpp) and a
|
||||
header file (\*.h). The derived class must provide certain methods to
|
||||
work as a new option. Depending on how different your new feature is
|
||||
compared to existing features, you can either derive from the base class
|
||||
itself, or from a derived class that already exists. Enabling LAMMPS to
|
||||
invoke the new class is as simple as putting the two source files in the
|
||||
src directory and re-building LAMMPS.
|
||||
page require you to write a new C++ derived class (except for
|
||||
exceptions described below, where you can make small edits to existing
|
||||
files). Creating a new class requires 2 files, a source code file
|
||||
(\*.cpp) and a header file (\*.h). The derived class must provide
|
||||
certain methods to work as a new option. Depending on how different
|
||||
your new feature is compared to existing features, you can either
|
||||
derive from the base class itself, or from a derived class that
|
||||
already exists. Enabling LAMMPS to invoke the new class is as simple
|
||||
as putting the two source files in the src directory and re-building
|
||||
LAMMPS.
|
||||
|
||||
The advantage of C++ and its object-orientation is that all the code
|
||||
and variables needed to define the new feature are in the 2 files you
|
||||
write, and thus should not make the rest of LAMMPS more complex or
|
||||
cause side-effect bugs.
|
||||
write. Thus, it should not make the rest of LAMMPS more complex or
|
||||
cause bugs through unwanted side effects.
|
||||
|
||||
Here is a concrete example. Suppose you write 2 files pair_foo.cpp
|
||||
and pair_foo.h that define a new class PairFoo that computes pairwise
|
||||
potentials described in the classic 1997 :ref:`paper <Foo>` by Foo, et al.
|
||||
If you wish to invoke those potentials in a LAMMPS input script with a
|
||||
command like
|
||||
Here is a concrete example. Suppose you write 2 files
|
||||
``pair_foo.cpp`` and ``pair_foo.h`` that define a new class
|
||||
``PairFoo`` which computes pairwise potentials described in the
|
||||
classic 1997 :ref:`paper <Foo>` by Foo, *et al.* If you wish to invoke
|
||||
those potentials in a LAMMPS input script with a command like:
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
pair_style foo 0.1 3.5
|
||||
|
||||
then your pair_foo.h file should be structured as follows:
|
||||
then your ``pair_foo.h`` file should be structured as follows:
|
||||
|
||||
.. code-block:: c++
|
||||
|
||||
@ -51,28 +53,27 @@ then your pair_foo.h file should be structured as follows:
|
||||
#endif
|
||||
|
||||
where "foo" is the style keyword in the pair_style command, and
|
||||
PairFoo is the class name defined in your pair_foo.cpp and pair_foo.h
|
||||
files.
|
||||
``PairFoo`` is the class name defined in your ``pair_foo.cpp`` and
|
||||
``pair_foo.h`` files.
|
||||
|
||||
When you re-build LAMMPS, your new pairwise potential becomes part of
|
||||
the executable and can be invoked with a pair_style command like the
|
||||
example above. Arguments like 0.1 and 3.5 can be defined and
|
||||
processed by your new class.
|
||||
|
||||
As illustrated by this example pair style, many kinds of options are
|
||||
referred to in the LAMMPS documentation as the "style" of a particular
|
||||
command.
|
||||
As illustrated by this example, many features referred to in the
|
||||
LAMMPS documentation are called a "style" of a particular command.
|
||||
|
||||
The :doc:`Modify page <Modify>` lists all the common styles in LAMMPS,
|
||||
and discusses the header file for the base class that these styles are
|
||||
derived from. Public variables in that file are ones used and set by
|
||||
the derived classes which are also used by the base class. Sometimes
|
||||
they are also used by the rest of LAMMPS. Pure functions, which means
|
||||
functions declared as virtual in the base class header file which are
|
||||
also set to 0, are functions you **must** implement in your new derived
|
||||
class to give it the functionality LAMMPS expects. Virtual functions
|
||||
that are not set to 0 are functions you may override or not. Those
|
||||
are usually defined with an empty function body.
|
||||
and discusses the header file for the base class that these styles
|
||||
derive from. Public variables in that file can be used and set by the
|
||||
derived classes, and may also be used by the base class. Sometimes
|
||||
they are also accessed by the rest of LAMMPS. Pure functions, which
|
||||
means functions declared as virtual in the base class header file and
|
||||
which are also set to 0, are functions you **must** implement in your
|
||||
new derived class to give it the functionality LAMMPS expects. Virtual
|
||||
functions that are not set to 0 are functions you may override or not.
|
||||
Those are usually defined with an empty function body.
|
||||
|
||||
Additionally, new output options can be added directly to the
|
||||
thermo.cpp, dump_custom.cpp, and variable.cpp files. These are also
|
||||
@ -85,9 +86,9 @@ functionality:
|
||||
post-processing step. Many computations are more easily and more
|
||||
quickly done that way.
|
||||
* Do not try to do anything within the timestepping of a run that is not
|
||||
parallel. For example do not accumulate a bunch of data on a single
|
||||
processor and analyze it. You run the risk of seriously degrading
|
||||
the parallel efficiency this way.
|
||||
parallel. For example, do not accumulate a bunch of data on a single
|
||||
processor and analyze it. That would run the risk of seriously degrading
|
||||
the parallel efficiency.
|
||||
* If your new feature reads arguments or writes output, make sure you
|
||||
follow the unit conventions discussed by the :doc:`units <units>`
|
||||
command.
|
||||
|
||||
384
doc/src/Modify_requirements.rst
Normal file
384
doc/src/Modify_requirements.rst
Normal file
@ -0,0 +1,384 @@
|
||||
Requirements for contributions to LAMMPS
|
||||
========================================
|
||||
|
||||
The following is a summary of the current requirements and
|
||||
recommendations for including contributed source code or documentation
|
||||
into the LAMMPS software distribution.
|
||||
|
||||
Motivation
|
||||
----------
|
||||
|
||||
The LAMMPS developers are committed to provide a software package that
|
||||
is versatile, reliable, high-quality, efficient, portable, and easy to
|
||||
maintain and modify. Achieving all of these goals is challenging
|
||||
since a large part of LAMMPS consists of contributed code from many
|
||||
different authors who may not be professionally trained programmers or
|
||||
familiar with the idiosyncrasies of maintaining a large software
|
||||
package. In addition, changes that interfere with the parallel
|
||||
efficiency of the core code must be avoided. As LAMMPS continues to
|
||||
grow and more features and functionality are added, it is necessary to
|
||||
follow established guidelines when accepting new contributions while
|
||||
also working at the same time to improve the existing code.
|
||||
|
||||
The following requirements and recommendations are provided as a
|
||||
guide. They indicate which individual requirements are strict, and
|
||||
which represent a preference and thus are negotiable or optional.
|
||||
Please feel free to contact the LAMMPS core developers in case you
|
||||
need additional explanations or clarifications, or you need assistance
|
||||
in implementing the (strict) requirements for your contributions.
|
||||
Requirements include:
|
||||
|
||||
* :ref:`Licensing requirements <ReqLicense>` (strict)
|
||||
* :ref:`Integration testing <ReqIntegrationTesting>` (strict)
|
||||
* :ref:`Documentation <ReqDocumentation>` (strict)
|
||||
* :ref:`Programming language standards <ReqProgrammingStandards>` (strict)
|
||||
* :ref:`Build system <ReqBuildSystem>` (strict)
|
||||
* :ref:`Command or style names <ReqNaming>` (strict)
|
||||
* :ref:`Programming style requirements <ReqProgrammingStyle>` (varied)
|
||||
* :ref:`Examples <ReqExamples>` (preferred)
|
||||
* :ref:`Error or warning messages and explanations <ReqErrorMessages>` (preferred)
|
||||
* :ref:`Citation reminder <ReqCitation>` (optional)
|
||||
* :ref:`Testing <ReqUnitTesting>` (optional)
|
||||
|
||||
.. _ReqLicense:
|
||||
|
||||
Licensing requirements (strict)
|
||||
-------------------------------
|
||||
|
||||
Contributing authors agree when submitting a pull request that their
|
||||
contributions can be distributed under the LAMMPS license conditions.
|
||||
This is the GNU public license in version 2 (not 3 or later) for the
|
||||
publicly distributed versions, e.g. on the LAMMPS homepage or on
|
||||
GitHub. We also have a version of LAMMPS under LGPL 2.1 terms which
|
||||
is available on request; this will usually be the latest available or
|
||||
a previous stable version with a few LGPL 2.1 incompatible files
|
||||
removed. More details are found on the :doc:`LAMMPS open-source
|
||||
license page <Intro_opensource>`.
|
||||
|
||||
Your new source files should have the LAMMPS copyright and GPL notice,
|
||||
followed by your name and email address at the top, like other
|
||||
user-contributed LAMMPS source files.
|
||||
|
||||
Contributions may be under a different license as long as that license
|
||||
does not conflict with the aforementioned terms. Contributions that
|
||||
use code with a conflicting license can be split into two parts:
|
||||
|
||||
1. the core parts (i.e. parts that must be in the `src` tree) that are
|
||||
licensed under compatible terms and bundled with the LAMMPS sources
|
||||
2. an external library that must be downloaded and compiled (either
|
||||
separately or as part of the LAMMPS compilation)
|
||||
|
||||
Please note, that this split licensing mode may complicate including
|
||||
the contribution in binary packages.
|
||||
|
||||
.. _ReqIntegrationTesting:
|
||||
|
||||
Integration testing (strict)
|
||||
----------------------------
|
||||
|
||||
Where possible we use available continuous integration tools to search
|
||||
for common programming mistakes, portability limitations, incompatible
|
||||
formatting, and undesired side effects. Contributed code must pass the
|
||||
automated tests on GitHub before it can be merged with the LAMMPS
|
||||
distribution. These tests compile LAMMPS in a variety of environments
|
||||
and settings and run the bundled unit tests. At the discretion of the
|
||||
LAMMPS developer managing the pull request, additional tests may be
|
||||
activated that test for "side effects" on running a collection of
|
||||
input decks and create consistent results. The translation of the
|
||||
documentation to HTML and PDF is also tested.
|
||||
|
||||
This means that contributed source code **must** compile with the most
|
||||
current version of LAMMPS with ``-DLAMMPS_BIGBIG`` in addition to the
|
||||
default setting of ``-DLAMMPS_SMALLBIG``. The code needs to work
|
||||
correctly in both cases, and also in serial and parallel using MPI.
|
||||
|
||||
Some "disruptive" changes may break tests and require updates to the
|
||||
testing tools or scripts or tests themselves. This is rare. If in
|
||||
doubt, contact the LAMMPS developer that is assigned to the pull
|
||||
request.
|
||||
|
||||
.. _ReqDocumentation:
|
||||
|
||||
Documentation (strict)
|
||||
----------------------
|
||||
|
||||
Contributions that add new styles or commands or augment existing ones
|
||||
must include the corresponding new or modified documentation in
|
||||
`ReStructuredText format <rst_>`_ (.rst files in the ``doc/src/``
|
||||
folder). The documentation should be written in American English and the
|
||||
.rst file must only use ASCII characters, so it can be cleanly
|
||||
translated to PDF files (via `sphinx <https://www.sphinx-doc.org>`_ and
|
||||
PDFLaTeX). Special characters may be included via embedded math
|
||||
expression typeset in a LaTeX subset.
|
||||
|
||||
.. _rst: https://www.sphinx-doc.org/en/master/usage/restructuredtext/index.html
|
||||
|
||||
When adding new commands, they need to be integrated into the sphinx
|
||||
documentation system, and the corresponding command tables and lists
|
||||
updated. When translating the documentation into html files there
|
||||
should be no warnings. When adding a new package, some lists
|
||||
describing packages must also be updated as well as a package specific
|
||||
description added. Likewise, if necessary, some package specific
|
||||
build instructions should be included.
|
||||
|
||||
As appropriate, the text files with the documentation can include
|
||||
inline mathematical expressions or figures (see ``doc/JPG`` for
|
||||
examples). Additional PDF files with further details may also be
|
||||
included; see ``doc/PDF`` for examples. The page should also include
|
||||
literature citations as appropriate; see the bottom of
|
||||
``doc/fix_nh.rst`` for examples and the earlier part of the same file
|
||||
for how to format the cite itself. Citation labels must be unique
|
||||
across **all** .rst files. The "Restrictions" section of the page
|
||||
should indicate if your command is only available if LAMMPS is built
|
||||
with the appropriate package. See other command doc files for
|
||||
examples of how to do this.
|
||||
|
||||
Please run at least "make html" and "make spelling" from within the
|
||||
doc/src directory, and carefully inspect and proofread the resulting
|
||||
HTML format doc page before submitting your code. Upon submission of
|
||||
a pull request, checks for error free completion of the HTML and PDF
|
||||
build will be performed and also a spell check, a check for correct
|
||||
anchors and labels, and a check for completeness of references to all
|
||||
styles in their corresponding tables and lists is run. In case the
|
||||
spell check reports false positives, they can be added to the file
|
||||
``doc/utils/sphinx-config/false_positives.txt``
|
||||
|
||||
Contributions that add or modify the library interface or "public"
|
||||
APIs from the C++ code or the Fortran module must include suitable
|
||||
doxygen comments in the source and corresponding changes to the
|
||||
documentation sources for the "Programmer Guide" guide section of the
|
||||
LAMMPS manual.
|
||||
|
||||
If your feature requires some more complex steps and explanations to
|
||||
be used correctly or some external or bundled tools or scripts, we
|
||||
recommend that you also contribute a :doc:`Howto document <Howto>`
|
||||
providing some more background information and some tutorial material.
|
||||
This can also be used to provide more in-depth explanations of models
|
||||
that require use of multiple commands.
|
||||
|
||||
As a rule-of-thumb, the more clear and self-explanatory you make your
|
||||
documentation, README files and examples, and the easier you make it
|
||||
for people to get started, the more likely it is that users will try
|
||||
out your new feature.
|
||||
|
||||
.. _ReqProgrammingStandards:
|
||||
|
||||
Programming language standards (strict)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
The core of LAMMPS is written in C++11 in a style that can be mostly
|
||||
described as "C with classes". Advanced C++ features like operator
|
||||
overloading or excessive use of templates are avoided with the intent to
|
||||
keep the code readable to programmers that have limited C++ programming
|
||||
experience. C++ constructs are acceptable when they help improve the
|
||||
readability and reliability of the code, e.g. when using the
|
||||
`std::string` class instead of manipulating pointers and calling the
|
||||
string functions of the C library. In addition, a collection of
|
||||
convenient :doc:`utility functions and classes <Developer_utils>` for
|
||||
recurring tasks and a collection of :doc:`platform neutral functions
|
||||
<Developer_platform>` for improved portability are provided.
|
||||
Contributions with code requiring more recent C++ standards are only
|
||||
accepted as packages with the post C++11 standard code confined to the
|
||||
package so that it is optional.
|
||||
|
||||
Included Fortran code has to be compatible with the Fortran 2003
|
||||
standard. Since not all platforms supported by LAMMPS provide good
|
||||
support for compiling Fortran files, it should be considered to rewrite
|
||||
these parts as C++ code, if possible and thus allow for a wider adoption
|
||||
of the contribution. As of January 2023, all previously included
|
||||
Fortran code for the LAMMPS executable has been replaced by equivalent
|
||||
C++ code.
|
||||
|
||||
Python code must be compatible with Python 3.5 and later. Large parts
|
||||
of LAMMPS (including the :ref:`PYTHON package <PKG-PYTHON>`) are also
|
||||
compatible with Python 2.7. Compatibility with Python 2.7 is desirable,
|
||||
but compatibility with Python 3.5 is **required**.
|
||||
|
||||
Compatibility with older programming language standards is very
|
||||
important to maintain portability and availability of LAMMPS on many
|
||||
platforms. This applies especially to HPC cluster environments, which
|
||||
tend to be running older software stacks and where LAMMPS users may be
|
||||
required to use those older tools for access to advanced hardware
|
||||
features or not have the option to install newer compilers or libraries.
|
||||
|
||||
.. _ReqBuildSystem:
|
||||
|
||||
Build system (strict)
|
||||
---------------------
|
||||
|
||||
LAMMPS currently supports two build systems: one that is based on
|
||||
:doc:`traditional Makefiles <Build_make>` and one that is based on
|
||||
:doc:`CMake <Build_cmake>`. Therefore, your contribution must be
|
||||
compatible with and support both build systems.
|
||||
|
||||
For a single pair of header and implementation files that are an
|
||||
independent feature, it is usually only required to add them to
|
||||
``src/.gitignore``.
|
||||
|
||||
For traditional make, if your contributed files or package depend on
|
||||
other LAMMPS style files or packages also being installed
|
||||
(e.g. because your file is a derived class from the other LAMMPS
|
||||
class), then an ``Install.sh`` file is also needed to check for those
|
||||
dependencies and modifications to ``src/Depend.sh`` to trigger the checks.
|
||||
See other README and Install.sh files in other directories as
|
||||
examples.
|
||||
|
||||
Similarly, for CMake support, changes may need to be made to
|
||||
``cmake/CMakeLists.txt``, some of the files in ``cmake/presets``, and
|
||||
possibly a file with specific instructions needs to be added to
|
||||
``cmake/Modules/Packages/``. Please check out how this is handled for
|
||||
existing packages and ask the LAMMPS developers if you need assistance.
|
||||
|
||||
.. _ReqNaming:
|
||||
|
||||
Command or style names, file names, and keywords (strict)
|
||||
---------------------------------------------------------
|
||||
|
||||
All user-visible command or style names should be all lower case and
|
||||
should only use letters, numbers, or forward slashes. They should be
|
||||
descriptive and initialisms should be avoided unless they are well
|
||||
established (e.g. lj for Lennard-Jones). For a compute style
|
||||
"some/name" the source files must be called ``compute_some_name.h`` and
|
||||
``compute_some_name.cpp``. The "include guard" in the header file would
|
||||
then be ``LMP_COMPUTE_SOME_NAME_H`` and the class name
|
||||
``ComputeSomeName``.
|
||||
|
||||
.. _ReqProgrammingStyle:
|
||||
|
||||
Programming style requirements (varied)
|
||||
---------------------------------------
|
||||
|
||||
To maintain source code consistency across contributions from many
|
||||
people, there are various programming style requirements for
|
||||
contributions to LAMMPS. Some of these requirements are strict and
|
||||
must be followed, while others are only preferred and thus may be
|
||||
skipped. An in-depth discussion of the style guidelines is provided
|
||||
in the :doc:`programming style doc page <Modify_style>`.
|
||||
|
||||
.. _ReqExamples:
|
||||
|
||||
Examples (preferred)
|
||||
--------------------
|
||||
|
||||
For many new features, it is preferred that example scripts (simple,
|
||||
small, fast to complete on 1 CPU) are included that demonstrate the
|
||||
use of new or extended functionality. These are typically include
|
||||
under the examples or examples/PACKAGES directory and are further
|
||||
described on the :doc:`examples page <Examples>`. Guidelines for
|
||||
input scripts include:
|
||||
|
||||
- commands that generate output should be commented out (except when the
|
||||
output is the sole purpose or the feature, e.g. for a new compute)
|
||||
|
||||
- commands like :doc:`log <log>`, :doc:`echo <echo>`, :doc:`package
|
||||
<package>`, :doc:`processors <processors>`, :doc:`suffix <suffix>` may
|
||||
**not** be used in the input file (exception: "processors * * 1" or
|
||||
similar is acceptable when used to avoid unwanted domain decomposition
|
||||
of empty volumes)
|
||||
|
||||
- outside of the log files, no generated output should be included
|
||||
|
||||
- custom thermo_style settings may not include output measuring CPU or other
|
||||
time as it complicates comparisons between different runs
|
||||
|
||||
- input files should be named ``in.name``, data files should be named
|
||||
``data.name`` and log files should be named ``log.version.name.<compiler>.<ncpu>``
|
||||
|
||||
- the total file size of all the inputs and outputs should be small
|
||||
|
||||
- where possible, potential files from the "potentials" folder or data
|
||||
file from other folders should be re-used through symbolic links
|
||||
|
||||
.. _ReqErrorMessages:
|
||||
|
||||
Error or warning messages and explanations (preferred)
|
||||
------------------------------------------------------
|
||||
|
||||
.. versionchanged:: 4May2022
|
||||
|
||||
Starting with LAMMPS version 4 May 2022, the LAMMPS developers have
|
||||
agreed on a new policy for error and warning messages.
|
||||
|
||||
Previously, all error and warning strings were supposed to be listed in
|
||||
the class header files with an explanation. Those would then be
|
||||
regularly "harvested" and transferred to alphabetically sorted lists in
|
||||
the manual. To avoid excessively long lists and to reduce effort, this
|
||||
came with a requirement to have rather generic error messages (e.g.
|
||||
"Illegal ... command"). To identify the specific cause, the name of the
|
||||
source file and the line number of the error location would be printed,
|
||||
so that one could look up the cause by reading the source code.
|
||||
|
||||
The new policy encourages more specific error messages that ideally
|
||||
indicate the cause directly, and requiring no further lookup. This is
|
||||
aided by the `{fmt} library <https://fmt.dev>`_ enabling Error class
|
||||
methods that take a variable number of arguments and an error text that
|
||||
will be treated like a {fmt} syntax format string. Error messages should
|
||||
still preferably be kept to a single line or two lines at most.
|
||||
|
||||
For more complex explanations or errors that have multiple possible
|
||||
reasons, a paragraph should be added to the `Error_details` page with an
|
||||
error code reference (e.g. ``.. _err0001:``) then the utility function
|
||||
:cpp:func:`utils::errorurl() <LAMMPS_NS::utils::errorurl>` can be used
|
||||
to generate a URL that will directly lead to that paragraph. An error
|
||||
for missing arguments can be easily generated using the
|
||||
:cpp:func:`utils::missing_cmd_args()
|
||||
<LAMMPS_NS::utils::missing_cmd_args>` convenience function.
|
||||
An example for this approach would be the
|
||||
``src/read_data.cpp`` and ``src/atom.cpp`` files that implement the
|
||||
:doc:`read_data <read_data>` and :doc:`atom_modify <atom_modify>`
|
||||
commands and that may create :ref:`"Unknown identifier in data file" <err0001>`
|
||||
errors that may have multiple possible reasons which complicates debugging,
|
||||
and thus require some additional explanation.
|
||||
|
||||
The transformation of existing LAMMPS code to this new scheme is
|
||||
ongoing. Given the size of the LAMMPS code base, it will take a
|
||||
significant amount of time to complete. For new code, however,
|
||||
following the new approach is strongly preferred. The expectation is
|
||||
that the new scheme will make understanding errors easier for LAMMPS
|
||||
users, developers, and maintainers.
|
||||
|
||||
.. _ReqCitation:
|
||||
|
||||
Citation reminder (optional)
|
||||
-----------------------------
|
||||
|
||||
If there is a paper of yours describing your feature (either the
|
||||
algorithm/science behind the feature itself, or its initial usage, or
|
||||
its implementation in LAMMPS), you can add the citation to the \*.cpp
|
||||
source file. See ``src/DIFFRACTION/compute_saed.cpp`` for an example.
|
||||
A BibTeX format citation is stored in a string variable at the top of
|
||||
the file, and a single line of code registering this variable is added
|
||||
to the constructor of the class. When your feature is used, then
|
||||
LAMMPS (by default) will print the brief info and the DOI in the first
|
||||
line to the screen and the full citation to the log file.
|
||||
|
||||
If there is additional functionality (which may have been added later)
|
||||
described in a different publication, additional citation descriptions
|
||||
may be added so long as they are only registered when the
|
||||
corresponding keyword activating this functionality is used.
|
||||
|
||||
With these options, it is possible to have LAMMPS output a specific
|
||||
citation reminder whenever a user invokes your feature from their
|
||||
input script. Please note that you should *only* use this for the
|
||||
*most* relevant paper for a feature and a publication that you or your
|
||||
group authored. E.g. adding a citation in the source code for a paper
|
||||
by Nose and Hoover if you write a fix that implements their integrator
|
||||
is not the intended usage. That kind of citation should just be
|
||||
included in the documentation page you provide describing your
|
||||
contribution. If you are not sure what the best option would be,
|
||||
please contact the LAMMPS developers for advice.
|
||||
|
||||
.. _ReqUnitTesting:
|
||||
|
||||
Testing (optional)
|
||||
------------------
|
||||
|
||||
If your contribution contains new utility functions or a supporting
|
||||
class (i.e. anything that does not depend on a LAMMPS object), new
|
||||
unit tests should be added to a suitable folder in the ``unittest``
|
||||
tree. When adding a new LAMMPS style computing forces or selected
|
||||
fixes, a ``.yaml`` file with a test configuration and reference data
|
||||
should be added for the styles where a suitable tester program already
|
||||
exists (e.g. pair styles, bond styles, etc.). Please see :ref:`this
|
||||
section in the manual <testing>` for more information on how to
|
||||
enable, run, and expand testing.
|
||||
@ -1,350 +1,58 @@
|
||||
LAMMPS programming style and requirements for contributions
|
||||
===========================================================
|
||||
|
||||
The following is a summary of the current requirements and
|
||||
recommendations for including contributed source code or documentation
|
||||
into the LAMMPS software distribution.
|
||||
|
||||
Motivation
|
||||
----------
|
||||
|
||||
The LAMMPS developers are committed to providing a software package that
|
||||
is versatile, reliable, high-quality, efficient, portable, and easy to
|
||||
maintain and modify. Achieving all of these goals is challenging since
|
||||
a large part of LAMMPS consists of contributed code from many different
|
||||
authors and not many of them are professionally trained programmers and
|
||||
familiar with the idiosyncrasies of maintaining a large software
|
||||
package. In addition, changes that interfere with the parallel
|
||||
efficiency of the core code must be avoided. As LAMMPS continues to
|
||||
grow and more features and functionality are added, it becomes a
|
||||
necessity to be more discriminating with new contributions while also
|
||||
working at the same time to improve the existing code.
|
||||
|
||||
The following requirements and recommendations are provided to help
|
||||
maintaining or improving that status. Where possible we utilize
|
||||
available continuous integration tools to search for common programming
|
||||
mistakes, portability limitations, incompatible formatting, and
|
||||
undesired side effects. It is indicated which requirements are strict,
|
||||
and which represent a preference and thus are negotiable or optional.
|
||||
|
||||
Please feel free to contact the LAMMPS core developers in case you need
|
||||
additional explanations or clarifications or in case you need assistance
|
||||
in realizing the (strict) requirements for your contributions.
|
||||
|
||||
Licensing requirements (strict)
|
||||
-------------------------------
|
||||
|
||||
Contributing authors agree when submitting a pull request that their
|
||||
contributions can be distributed under the LAMMPS license
|
||||
conditions. This is the GNU public license in version 2 (not 3 or later)
|
||||
for the publicly distributed versions, e.g. on the LAMMPS homepage or on
|
||||
GitHub. On request we also make a version of LAMMPS available under
|
||||
LGPL 2.1 terms; this will usually be the latest available or a previous
|
||||
stable version with a few LGPL 2.1 incompatible files removed.
|
||||
|
||||
Your new source files should have the LAMMPS copyright, GPL notice, and
|
||||
your name and email address at the top, like other user-contributed
|
||||
LAMMPS source files.
|
||||
|
||||
Contributions may be under a different license for long as that
|
||||
license does not conflict with the aforementioned terms. Contributions
|
||||
that use code with a conflicting license can be split into two parts:
|
||||
|
||||
1. the core parts (i.e. parts that must be in the `src` tree) that are
|
||||
licensed under compatible terms and bundled with the LAMMPS sources
|
||||
2. an external library that must be downloaded and compiled (either
|
||||
separately or as part of the LAMMPS compilation)
|
||||
|
||||
Please note, that this split licensed mode may complicate including the
|
||||
contribution in binary packages.
|
||||
|
||||
Using Pull Requests on GitHub (preferred)
|
||||
-----------------------------------------
|
||||
|
||||
All contributions to LAMMPS are processed as pull requests on GitHub
|
||||
(this also applies to the work of the core LAMMPS developers). A
|
||||
:doc:`tutorial for submitting pull requests on GitHub <Howto_github>` is
|
||||
provided. If this is still problematic, contributors may contact any of
|
||||
the core LAMMPS developers for help or to create a pull request on their
|
||||
behalf. This latter way of submission may delay the integration as it
|
||||
depends on the amount of time required to prepare the pull request and
|
||||
free time available by the LAMMPS developer in question to spend on this
|
||||
task.
|
||||
|
||||
Integration Testing (strict)
|
||||
----------------------------
|
||||
|
||||
Contributed code, like all pull requests, must pass the automated
|
||||
tests on GitHub before it can be merged with the LAMMPS distribution.
|
||||
These tests compile LAMMPS in a variety of environments and settings and
|
||||
run the bundled unit tests. At the discretion of the LAMMPS developer
|
||||
managing the pull request, additional tests may be activated that test
|
||||
for "side effects" on running a collection of input decks and create
|
||||
consistent results. Also, the translation of the documentation to HTML
|
||||
and PDF is tested for.
|
||||
|
||||
More specifically, this means that contributed source code **must**
|
||||
compile with the most current version of LAMMPS with ``-DLAMMPS_BIGBIG``
|
||||
in addition to the default setting of ``-DLAMMPS_SMALLBIG``. The code
|
||||
needs to work correctly in both cases and also in serial and parallel
|
||||
using MPI.
|
||||
|
||||
Some "disruptive" changes may break tests and require updates to the
|
||||
testing tools or scripts or tests themselves. This is rare. If in
|
||||
doubt, contact the LAMMPS developer that is assigned to the pull request
|
||||
for further details and explanations and suggestions of what needs to be
|
||||
done.
|
||||
|
||||
Documentation (strict)
|
||||
----------------------
|
||||
|
||||
Contributions that add new styles or commands or augment existing ones
|
||||
must include the corresponding new or modified documentation in
|
||||
`ReStructuredText format <rst_>`_ (.rst files in the ``doc/src/``
|
||||
folder). The documentation shall be written in American English and the
|
||||
.rst file must use only ASCII characters so it can be cleanly translated
|
||||
to PDF files (via `sphinx <https://www.sphinx-doc.org>`_ and PDFLaTeX).
|
||||
Special characters may be included via embedded math expression typeset
|
||||
in a LaTeX subset.
|
||||
|
||||
.. _rst: https://www.sphinx-doc.org/en/master/usage/restructuredtext/index.html
|
||||
|
||||
When adding new commands, they need to be integrated into the sphinx
|
||||
documentation system, and the corresponding command tables and lists
|
||||
updated. When translating the documentation into html files there should
|
||||
be no warnings. When adding a new package also some lists describing
|
||||
packages must be updated as well as a package specific description added
|
||||
and, if necessary, some package specific build instructions included.
|
||||
|
||||
As appropriate, the text files with the documentation can include inline
|
||||
mathematical expression or figures (see ``doc/JPG`` for examples).
|
||||
Additional PDF files with further details (see ``doc/PDF`` for examples) may
|
||||
also be included. The page should also include literature citations as
|
||||
appropriate; see the bottom of ``doc/fix_nh.rst`` for examples and the
|
||||
earlier part of the same file for how to format the cite itself.
|
||||
Citation labels must be unique across **all** .rst files. The
|
||||
"Restrictions" section of the page should indicate if your command is
|
||||
only available if LAMMPS is built with the appropriate FOO package. See
|
||||
other package doc files for examples of how to do this.
|
||||
|
||||
Please run at least "make html" and "make spelling" and carefully
|
||||
inspect and proofread the resulting HTML format doc page before
|
||||
submitting your code. Upon submission of a pull request, checks for
|
||||
error free completion of the HTML and PDF build will be performed and
|
||||
also a spell check, a check for correct anchors and labels, and a check
|
||||
for completeness of references all styles in their corresponding tables
|
||||
and lists is run. In case the spell check reports false positives they
|
||||
can be added to the file ``doc/utils/sphinx-config/false_positives.txt``
|
||||
|
||||
Contributions that add or modify the library interface or "public" APIs
|
||||
from the C++ code or the Fortran module must include suitable doxygen
|
||||
comments in the source and corresponding changes to the documentation
|
||||
sources for the "Programmer Guide" guide section of the LAMMPS manual.
|
||||
|
||||
Examples (preferred)
|
||||
--------------------
|
||||
|
||||
In most cases, it is preferred that example scripts (simple, small, fast
|
||||
to complete on 1 CPU) are included that demonstrate the use of new or
|
||||
extended functionality. These are typically under the examples or
|
||||
examples/PACKAGES directory. A few guidelines for such example input
|
||||
decks.
|
||||
|
||||
- commands that generate output should be commented out (except when the
|
||||
output is the sole purpose or the feature, e.g. for a new compute).
|
||||
|
||||
- commands like :doc:`log <log>`, :doc:`echo <echo>`, :doc:`package
|
||||
<package>`, :doc:`processors <processors>`, :doc:`suffix <suffix>` may
|
||||
**not** be used in the input file (exception: "processors * * 1" or
|
||||
similar is acceptable when used to avoid unwanted domain decomposition
|
||||
of empty volumes).
|
||||
|
||||
- outside of the log files no generated output should be included
|
||||
|
||||
- custom thermo_style settings may not include output measuring CPU or other time
|
||||
as that makes comparing the thermo output between different runs more complicated.
|
||||
|
||||
- input files should be named ``in.name``, data files should be named
|
||||
``data.name`` and log files should be named ``log.version.name.<compiler>.<ncpu>``
|
||||
|
||||
- the total file size of all the inputs and outputs should be small
|
||||
|
||||
- where possible potential files from the "potentials" folder or data
|
||||
file from other folders should be re-used through symbolic links
|
||||
|
||||
Howto document (optional)
|
||||
-------------------------
|
||||
|
||||
If your feature requires some more complex steps and explanations to be
|
||||
used correctly or some external or bundled tools or scripts, we
|
||||
recommend that you also contribute a :doc:`Howto document <Howto>`
|
||||
providing some more background information and some tutorial material.
|
||||
This can also be used to provide more in-depth explanations for bundled
|
||||
examples.
|
||||
|
||||
As a general rule-of-thumb, the more clear and self-explanatory you make
|
||||
your documentation, README files and examples, and the easier you make
|
||||
it for people to get started, the more likely it is that users will try
|
||||
out your new feature.
|
||||
|
||||
Programming Style Requirements (varied)
|
||||
---------------------------------------
|
||||
|
||||
The LAMMPS developers aim to employ a consistent programming style and
|
||||
naming conventions across the entire code base, as this helps with
|
||||
maintenance, debugging, and understanding the code, both for developers
|
||||
and users.
|
||||
|
||||
The files `pair_lj_cut.h`, `pair_lj_cut.cpp`, `utils.h`, and `utils.cpp`
|
||||
may serve as representative examples.
|
||||
|
||||
Command or Style names, file names, and keywords (mostly strict)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
All user-visible command or style names should be all lower case and
|
||||
should only use letters, numbers, or forward slashes. They should be
|
||||
descriptive and initialisms should be avoided unless they are well
|
||||
established (e.g. lj for Lennard-Jones). For a compute style
|
||||
"some/name" the source files must be called `compute_some_name.h` and
|
||||
`compute_some_name.cpp`. The "include guard" would then be
|
||||
`LMP_COMPUTE_SOME_NAME_H` and the class name `ComputeSomeName`.
|
||||
|
||||
Whitespace and permissions (preferred)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
Source files should not contain TAB characters unless required by the
|
||||
syntax (e.g. in makefiles) and no trailing whitespace. Text files
|
||||
should be added with Unix-style line endings (LF-only). Git will
|
||||
automatically convert those in both directions when running on Windows;
|
||||
use dos2unix on Linux machines to convert files. Text files should have
|
||||
a line ending on the last line.
|
||||
|
||||
All files should have 0644 permissions, i.e writable to the user only
|
||||
and readable by all and no executable permissions. Executable
|
||||
permissions (0755) should only be on shell scripts or python or similar
|
||||
scripts for interpreted script languages.
|
||||
|
||||
You can check for these issues with the python scripts in the
|
||||
:ref:`"tools/coding_standard" <coding_standard>` folder. When run
|
||||
normally with a source file or a source folder as argument, they will
|
||||
list all non-conforming lines. By adding the `-f` flag to the command
|
||||
line, they will modify the flagged files to try removing the detected
|
||||
issues.
|
||||
|
||||
Indentation and Placement of Braces (strongly preferred)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
LAMMPS uses 2 characters per indentation level and lines should be
|
||||
kept within 100 characters wide.
|
||||
|
||||
For new files added to the "src" tree, a `clang-format
|
||||
<https://clang.llvm.org/docs/ClangFormat.html>`_ configuration file is
|
||||
provided under the name `.clang-format`. This file is compatible with
|
||||
clang-format version 8 and later. With that file present files can be
|
||||
reformatted according to the configuration with a command like:
|
||||
`clang-format -i new-file.cpp`. Ideally, this is done while writing the
|
||||
code or before a pull request is submitted. Blocks of code where the
|
||||
reformatting from clang-format yields undesirable output may be
|
||||
protected with placing a pair `// clang-format off` and `// clang-format
|
||||
on` comments around that block.
|
||||
|
||||
Error or warning messages and explanations (preferred)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. versionchanged:: 4May2022
|
||||
|
||||
Starting with LAMMPS version 4 May 2022 the LAMMPS developers have
|
||||
agreed on a new policy for error and warning messages.
|
||||
|
||||
Previously, all error and warning strings were supposed to be listed in
|
||||
the class header files with an explanation. Those would then be
|
||||
regularly "harvested" and transferred to alphabetically sorted lists in
|
||||
the manual. To avoid excessively long lists and to reduce effort, this
|
||||
came with a requirement to have rather generic error messages (e.g.
|
||||
"Illegal ... command"). To identify the specific cause, the name of the
|
||||
source file and the line number of the error location would be printed,
|
||||
so that one could look up the cause by reading the source code.
|
||||
|
||||
The new policy encourages more specific error messages that ideally
|
||||
indicate the cause directly and no further lookup would be needed.
|
||||
This is aided by using the `{fmt} library <https://fmt.dev>`_ to convert
|
||||
the Error class commands so that they take a variable number of arguments
|
||||
and error text will be treated like a {fmt} syntax format string.
|
||||
Error messages should still kept to a single line or two lines at the most.
|
||||
|
||||
For more complex explanations or errors that have multiple possible
|
||||
reasons, a paragraph should be added to the `Error_details` page with an
|
||||
error code reference (e.g. ``.. _err0001:``) then the utility function
|
||||
:cpp:func:`utils::errorurl() <LAMMPS_NS::utils::errorurl>` can be used
|
||||
to generate an URL that will directly lead to that paragraph. An error
|
||||
for missing arguments can be easily generated using the
|
||||
:cpp:func:`utils::missing_cmd_args()
|
||||
<LAMMPS_NS::utils::missing_cmd_args>` convenience function.
|
||||
|
||||
The transformation of existing LAMMPS code to this new scheme is ongoing
|
||||
and - given the size of the LAMMPS source code - will take a significant
|
||||
amount of time until completion. However, for new code following the
|
||||
new approach is strongly preferred. The expectation is that the new
|
||||
scheme will make it easier for LAMMPS users, developers, and
|
||||
maintainers.
|
||||
|
||||
An example for this approach would be the
|
||||
``src/read_data.cpp`` and ``src/atom.cpp`` files that implement the
|
||||
:doc:`read_data <read_data>` and :doc:`atom_modify <atom_modify>`
|
||||
commands and that may create :ref:`"Unknown identifier in data file" <err0001>`
|
||||
errors that seem difficult to debug for users because they may have
|
||||
one of multiple possible reasons, and thus require some additional explanations.
|
||||
|
||||
Programming language standards (required)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
The core of LAMMPS is written in C++11 in a style that can be mostly
|
||||
described as "C with classes". Advanced C++ features like operator
|
||||
overloading or excessive use of templates are avoided with the intent to
|
||||
keep the code readable to programmers that have limited C++ programming
|
||||
experience. C++ constructs are acceptable when they help improving the
|
||||
readability and reliability of the code, e.g. when using the
|
||||
`std::string` class instead of manipulating pointers and calling the
|
||||
string functions of the C library. In addition a collection of
|
||||
convenient :doc:`utility functions and classes <Developer_utils>` for
|
||||
recurring tasks and a collection of
|
||||
:doc:`platform neutral functions <Developer_platform>` for improved
|
||||
portability are provided.
|
||||
|
||||
Included Fortran code has to be compatible with the Fortran 2003
|
||||
standard. Python code must be compatible with Python 3.5. Large parts
|
||||
or LAMMPS (including the :ref:`PYTHON package <PKG-PYTHON>`) are also
|
||||
compatible with Python 2.7. Compatibility with Python 2.7 is
|
||||
desirable, but compatibility with Python 3.5 is **required**.
|
||||
|
||||
Compatibility with these older programming language standards is very
|
||||
important to maintain portability and availability of LAMMPS on many
|
||||
platforms. This applies especially to HPC cluster environments, which
|
||||
tend to be running older software stacks and LAMMPS users may be
|
||||
required to use those older tools for access to advanced hardware
|
||||
features or not have the option to install newer compilers or libraries.
|
||||
|
||||
Programming conventions (varied)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
The following is a collection of conventions that should be applied when
|
||||
writing code for LAMMPS. Following these steps will make it much easier
|
||||
to integrate your contribution. Please have a look at the existing files
|
||||
in packages in the src directory for examples. As a demonstration for
|
||||
how can be adapted to these conventions you may compare the REAXFF
|
||||
package with the what it looked like when it was called USER-REAXC. If
|
||||
you are uncertain, please ask.
|
||||
|
||||
- system headers or from installed libraries are include with angular
|
||||
brackets (example: ``#include <vector>``), while local include file
|
||||
use double quotes (example: ``#include "atom.h"``).
|
||||
|
||||
- when including system header files from the C library use the
|
||||
C++-style names (``<cstdlib>`` or ``<cstring>``) instead of the
|
||||
C-style names (``<stdlib.h>`` or ``<string.h>``)
|
||||
|
||||
- the order of ``#include`` statements in a file ``some_name.cpp`` that
|
||||
implements a class ``SomeName`` defined in a header file
|
||||
LAMMPS programming style
|
||||
========================
|
||||
|
||||
The aim of the LAMMPS developers is to use a consistent programming
|
||||
style and naming conventions across the entire code base, as this
|
||||
helps with maintenance, debugging, and understanding the code, both
|
||||
for developers and users. This page provides a list of standard style
|
||||
choices used in LAMMPS. Some of these standards are required, while
|
||||
others are just preferred. Following these conventions will make it
|
||||
much easier to integrate your contribution. If you are uncertain,
|
||||
please ask.
|
||||
|
||||
The files `pair_lj_cut.h`, `pair_lj_cut.cpp`, `utils.h`, and
|
||||
`utils.cpp` may serve as representative examples.
|
||||
|
||||
Include files (varied)
|
||||
^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
- Header files that define a new LAMMPS style (i.e. that have a
|
||||
``SomeStyle(some/name,SomeName);`` macro in them) should only use
|
||||
the include file for the base class and otherwise use forward
|
||||
declarations and pointers; when interfacing to a library use the
|
||||
PIMPL (pointer to implementation) approach where you have a pointer
|
||||
to a struct that contains all library specific data (and thus
|
||||
requires the library header) but use a forward declaration and
|
||||
define the struct only in the implementation file. This is a
|
||||
**strict** requirement since this is where type clashes between
|
||||
packages and hard-to-find bugs have regularly manifested in the
|
||||
past.
|
||||
|
||||
- Header files, especially those defining a "style", should only use
|
||||
the absolute minimum number of include files and **must not**
|
||||
contain any ``using`` statements. Typically, that would only be the
|
||||
header for the base class. Instead, any include statements should
|
||||
be put in the corresponding implementation files and forward
|
||||
declarations be used. For implementation files, the "include what
|
||||
you use" principle should be employed. However, there is the
|
||||
notable exception that when the ``pointers.h`` header is included
|
||||
(or one of the base classes derived from it) certain headers will
|
||||
always be included and thus do not need to be explicitly specified.
|
||||
These are: `mpi.h`, `cstddef`, `cstdio`, `cstdlib`, `string`,
|
||||
`utils.h`, `vector`, `fmt/format.h`, `climits`, `cinttypes`. This
|
||||
also means any such file can assume that `FILE`, `NULL`, and
|
||||
`INT_MAX` are defined.
|
||||
|
||||
- System headers or headers from installed libraries are included with
|
||||
angular brackets (example: ``#include <vector>``), while local
|
||||
include files use double quotes (example: ``#include "atom.h"``)
|
||||
|
||||
- When including system header files from the C library use the
|
||||
C++-style names (``<cstdlib>`` or ``<cstring>``) instead of the
|
||||
C-style names (``<stdlib.h>`` or ``<string.h>``)
|
||||
|
||||
- The order of ``#include`` statements in a file ``some_name.cpp``
|
||||
that implements a class ``SomeName`` defined in a header file
|
||||
``some_name.h`` should be as follows:
|
||||
|
||||
- ``#include "some_name.h"`` followed by an empty line
|
||||
@ -352,34 +60,70 @@ you are uncertain, please ask.
|
||||
- LAMMPS include files e.g. ``#include "comm.h"`` or ``#include
|
||||
"modify.h"`` in alphabetical order followed by an empty line
|
||||
|
||||
- system header files from the C++ or C standard library followed by
|
||||
- System header files from the C++ or C standard library followed by
|
||||
an empty line
|
||||
|
||||
- ``using namespace LAMMPS_NS`` or other namespace imports.
|
||||
|
||||
Whitespace (preferred)
|
||||
^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
Source files should not contain TAB characters unless required by the
|
||||
syntax (e.g. in makefiles) and no trailing whitespace. Text files
|
||||
should have Unix-style line endings (LF-only). Git will automatically
|
||||
convert those in both directions when running on Windows; use dos2unix
|
||||
on Linux machines to convert files to Unix-style line endings. The
|
||||
last line of text files include a line ending.
|
||||
|
||||
You can check for these issues with the python scripts in the
|
||||
:ref:`"tools/coding_standard" <coding_standard>` folder. When run
|
||||
normally with a source file or a source folder as argument, they will
|
||||
list all non-conforming lines. By adding the `-f` flag to the command
|
||||
line, they will modify the flagged files to try to remove the detected
|
||||
issues.
|
||||
|
||||
Placement of braces (strongly preferred)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
For new files added to the "src" tree, a `clang-format
|
||||
<https://clang.llvm.org/docs/ClangFormat.html>`_ configuration file is
|
||||
provided under the name `.clang-format`. This file is compatible with
|
||||
clang-format version 8 and later. With that file present, files can be
|
||||
reformatted according to the configuration with a command like:
|
||||
`clang-format -i new-file.cpp`. Ideally, this is done while writing
|
||||
the code or before a pull request is submitted. Blocks of code where
|
||||
the reformatting from clang-format yields hard-to-read or otherwise
|
||||
undesirable output may be protected with placing a pair `//
|
||||
clang-format off` and `// clang-format on` comments around that block.
|
||||
|
||||
Miscellaneous standards (varied)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
- I/O is done via the C-style stdio library and **not** iostreams.
|
||||
|
||||
- Do not use so-called "alternative tokens" like ``and``, ``or``,
|
||||
``not`` and similar, but rather use the corresponding operators
|
||||
``&&``, ``||``, and ``!``. The alternative tokens are not available
|
||||
by default on all compilers, and also we want to maintain a consistent
|
||||
programming style.
|
||||
by default on all compilers.
|
||||
|
||||
- Output to the screen and the logfile should be using the corresponding
|
||||
FILE pointers and only be done on MPI rank 0. Use the :cpp:func:`utils::logmesg`
|
||||
convenience function where possible.
|
||||
- Output to the screen and the logfile should use the corresponding
|
||||
FILE pointers and only be done on MPI rank 0. Use the
|
||||
:cpp:func:`utils::logmesg` convenience function where possible.
|
||||
|
||||
- Usage of C++11 `virtual`, `override`, `final` keywords: Please follow the
|
||||
`C++ Core Guideline C.128 <https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Rh-override>`_.
|
||||
- Usage of C++11 `virtual`, `override`, `final` keywords: Please
|
||||
follow the `C++ Core Guideline C.128
|
||||
<https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Rh-override>`_.
|
||||
That means, you should only use `virtual` to declare a new virtual
|
||||
function, `override` to indicate you are overriding an existing virtual
|
||||
function, and `final` to prevent any further overriding.
|
||||
function, `override` to indicate you are overriding an existing
|
||||
virtual function, and `final` to prevent any further overriding.
|
||||
|
||||
- Trivial destructors: Prefer not writing destructors when they are empty and `default`.
|
||||
- Trivial destructors: Do not write destructors when they are empty
|
||||
and `default`.
|
||||
|
||||
.. code-block:: c++
|
||||
|
||||
// don't write destructors for A or B like this
|
||||
|
||||
class A : protected Pointers {
|
||||
public:
|
||||
A();
|
||||
@ -393,6 +137,7 @@ you are uncertain, please ask.
|
||||
};
|
||||
|
||||
// instead, let the compiler create the implicit default destructor by not writing it
|
||||
|
||||
class A : protected Pointers {
|
||||
public:
|
||||
A();
|
||||
@ -403,37 +148,11 @@ you are uncertain, please ask.
|
||||
B();
|
||||
};
|
||||
|
||||
- Header files, especially those defining a "style", should only use
|
||||
the absolute minimum number of include files and **must not** contain
|
||||
any ``using`` statements. Typically that would be only the header for
|
||||
the base class. Instead any include statements should be put into the
|
||||
corresponding implementation files and forward declarations be used.
|
||||
For implementation files, the "include what you use" principle should
|
||||
be employed. However, there is the notable exception that when the
|
||||
``pointers.h`` header is included (or one of the base classes derived
|
||||
from it) certain headers will always be included and thus do not need
|
||||
to be explicitly specified.
|
||||
These are: `mpi.h`, `cstddef`, `cstdio`, `cstdlib`, `string`, `utils.h`,
|
||||
`vector`, `fmt/format.h`, `climits`, `cinttypes`.
|
||||
This also means any such file can assume that `FILE`, `NULL`, and
|
||||
`INT_MAX` are defined.
|
||||
|
||||
- Header files that define a new LAMMPS style (i.e. that have a
|
||||
``SomeStyle(some/name,SomeName);`` macro in them) should only use the
|
||||
include file for the base class and otherwise use forward declarations
|
||||
and pointers; when interfacing to a library use the PIMPL (pointer
|
||||
to implementation) approach where you have a pointer to a struct
|
||||
that contains all library specific data (and thus requires the library
|
||||
header) but use a forward declaration and define the struct only in
|
||||
the implementation file. This is a **strict** requirement since this
|
||||
is where type clashes between packages and hard to find bugs have
|
||||
regularly manifested in the past.
|
||||
|
||||
- Please use clang-format only to reformat files that you have
|
||||
contributed. For header files containing a ``SomeStyle(keyword,
|
||||
ClassName)`` macros it is required to have this macro embedded with a
|
||||
pair of ``// clang-format off``, ``// clang-format on`` commends and
|
||||
the line must be terminated with a semi-colon (;). Example:
|
||||
ClassName)`` macros it is required to have this macro embedded with
|
||||
a pair of ``// clang-format off``, ``// clang-format on`` comments
|
||||
and the line must be terminated with a semicolon (;). Example:
|
||||
|
||||
.. code-block:: c++
|
||||
|
||||
@ -446,92 +165,10 @@ you are uncertain, please ask.
|
||||
#ifndef LMP_RUN_H
|
||||
[...]
|
||||
|
||||
You may also use ``// clang-format on/off`` throughout your files
|
||||
to protect individual sections from being reformatted.
|
||||
You may also use ``// clang-format on/off`` throughout your files to
|
||||
protect individual sections from being reformatted.
|
||||
|
||||
- We rarely accept new styles in the core src folder. Thus please
|
||||
review the list of :doc:`available Packages <Packages_details>` to see
|
||||
if your contribution could be added to be added to one of them. It
|
||||
should fit into the general purposed of that package. If it does not
|
||||
fit well, it may be added to one of the EXTRA- packages or the MISC
|
||||
package.
|
||||
|
||||
|
||||
Contributing a package
|
||||
----------------------
|
||||
|
||||
If your contribution has several related features that are not covered
|
||||
by one of the existing packages or is dependent on a library (bundled or
|
||||
external), it is best to make it a package directory with a name like
|
||||
FOO. In addition to your new files, the directory should contain a
|
||||
README text file. The README should contain your name and contact
|
||||
information and a brief description of what your new package does.
|
||||
|
||||
|
||||
Build system (strongly preferred)
|
||||
---------------------------------
|
||||
|
||||
LAMMPS currently supports two build systems: one that is based on
|
||||
:doc:`traditional Makefiles <Build_make>` and one that is based on
|
||||
:doc:`CMake <Build_cmake>`. Thus your contribution must be compatible
|
||||
with and support both.
|
||||
|
||||
For a single pair of header and implementation files that are an
|
||||
independent feature, it is usually only required to add them to
|
||||
`src/.gitignore``.
|
||||
|
||||
For traditional make, if your contributed files or package depend on
|
||||
other LAMMPS style files or packages also being installed (e.g. because
|
||||
your file is a derived class from the other LAMMPS class), then an
|
||||
Install.sh file is also needed to check for those dependencies and
|
||||
modifications to src/Depend.sh to trigger the checks. See other README
|
||||
and Install.sh files in other directories as examples.
|
||||
|
||||
Similarly for CMake support, changes may need to be made to
|
||||
cmake/CMakeLists.txt, some of the files in cmake/presets, and possibly a
|
||||
file with specific instructions needs to be added to
|
||||
cmake/Modules/Packages/. Please check out how this is handled for
|
||||
existing packages and ask the LAMMPS developers if you need assistance.
|
||||
|
||||
|
||||
Citation reminder (suggested)
|
||||
-----------------------------
|
||||
|
||||
If there is a paper of yours describing your feature (either the
|
||||
algorithm/science behind the feature itself, or its initial usage, or
|
||||
its implementation in LAMMPS), you can add the citation to the \*.cpp
|
||||
source file. See ``src/DIFFRACTION/compute_saed.cpp`` for an example.
|
||||
A BibTeX format citation is stored in a string variable at the top
|
||||
of the file and a single line of code registering this variable is
|
||||
added to the constructor of the class. When your feature is used,
|
||||
by default, LAMMPS will print the brief info and the DOI
|
||||
in the first line to the screen and the full citation to the log file.
|
||||
|
||||
If there is additional functionality (which may have been added later)
|
||||
described in a different publication, additional citation descriptions
|
||||
may be added for as long as they are only registered when the
|
||||
corresponding keyword activating this functionality is used. With these
|
||||
options it is possible to have LAMMPS output a specific citation
|
||||
reminder whenever a user invokes your feature from their input script.
|
||||
Please note that you should *only* use this for the *most* relevant
|
||||
paper for a feature and a publication that you or your group authored.
|
||||
E.g. adding a citation in the code for a paper by Nose and Hoover if you
|
||||
write a fix that implements their integrator is not the intended usage.
|
||||
That latter kind of citation should just be included in the
|
||||
documentation page you provide describing your contribution. If you are
|
||||
not sure what the best option would be, please contact the LAMMPS
|
||||
developers for advice.
|
||||
|
||||
|
||||
Testing (optional)
|
||||
------------------
|
||||
|
||||
If your contribution contains new utility functions or a supporting class
|
||||
(i.e. anything that does not depend on a LAMMPS object), new unit tests
|
||||
should be added to a suitable folder in the ``unittest`` tree.
|
||||
When adding a new LAMMPS style computing forces or selected fixes,
|
||||
a ``.yaml`` file with a test configuration and reference data should be
|
||||
added for the styles where a suitable tester program already exists
|
||||
(e.g. pair styles, bond styles, etc.). Please see
|
||||
:ref:`this section in the manual <testing>` for more information on
|
||||
how to enable, run, and expand testing.
|
||||
- All files should have 0644 permissions, i.e. writable by the user
|
||||
only and readable by all and no executable permissions. Executable
|
||||
permissions (0755) should only be for shell scripts or python or
|
||||
similar scripts for interpreted script languages.
|
||||
|
||||
Binary file not shown.
@ -285,6 +285,16 @@ one or more nodes, each with two GPUs:
|
||||
settings. Experimenting with its options can provide a speed-up for
|
||||
specific calculations. For example:
|
||||
|
||||
.. note::
|
||||
|
||||
The default binsize for :doc:`atom sorting <atom_modify>` on GPUs
|
||||
is equal to the default CPU neighbor binsize (i.e. 2x smaller than the
|
||||
default GPU neighbor binsize). When running simple pair-wise
|
||||
potentials like Lennard Jones on GPUs, using a 2x larger binsize for
|
||||
atom sorting (equal to the default GPU neighbor binsize) and a more
|
||||
frequent sorting than default (e.g. sorting every 100 time steps
|
||||
instead of 1000) may improve performance.
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
mpirun -np 2 lmp_kokkos_cuda_openmpi -k on g 2 -sf kk -pk kokkos newton on neigh half binsize 2.8 -in in.lj # Newton on, half neighbor list, set binsize = neighbor ghost cutoff
|
||||
|
||||
@ -883,9 +883,9 @@ dependencies and redirects the download to the local cache.
|
||||
phonon tool
|
||||
------------------------
|
||||
|
||||
The phonon subdirectory contains a post-processing tool useful for
|
||||
analyzing the output of the :doc:`fix phonon <fix_phonon>` command in
|
||||
the PHONON package.
|
||||
The phonon subdirectory contains a post-processing tool, *phana*, useful
|
||||
for analyzing the output of the :doc:`fix phonon <fix_phonon>` command
|
||||
in the PHONON package.
|
||||
|
||||
See the README file for instruction on building the tool and what
|
||||
library it needs. And see the examples/PACKAGES/phonon directory
|
||||
|
||||
@ -153,6 +153,13 @@ cache locality will be undermined.
|
||||
order of atoms in a :doc:`dump <dump>` file will also typically change
|
||||
if sorting is enabled.
|
||||
|
||||
.. note::
|
||||
|
||||
When running simple pair-wise potentials like Lennard Jones on GPUs
|
||||
with the KOKKOS package, using a larger binsize (e.g. 2x larger than
|
||||
default) and a more frequent reordering than default (e.g. every 100
|
||||
time steps) may improve performance.
|
||||
|
||||
Restrictions
|
||||
""""""""""""
|
||||
|
||||
|
||||
@ -32,13 +32,13 @@ Set the formula(s) LAMMPS uses to compute bond interactions between
|
||||
pairs of atoms. In LAMMPS, a bond differs from a pairwise
|
||||
interaction, which are set via the :doc:`pair_style <pair_style>`
|
||||
command. Bonds are defined between specified pairs of atoms and
|
||||
remain in force for the duration of the simulation (unless the bond
|
||||
breaks which is possible in some bond potentials). The list of bonded
|
||||
atoms is read in by a :doc:`read_data <read_data>` or
|
||||
:doc:`read_restart <read_restart>` command from a data or restart file.
|
||||
By contrast, pair potentials are typically defined between all pairs
|
||||
of atoms within a cutoff distance and the set of active interactions
|
||||
changes over time.
|
||||
remain in force for the duration of the simulation (unless new bonds
|
||||
are created or existing bonds break, which is possible in some fixes
|
||||
and bond potentials). The list of bonded atoms is read in by a
|
||||
:doc:`read_data <read_data>` or :doc:`read_restart <read_restart>`
|
||||
command from a data or restart file. By contrast, pair potentials are
|
||||
typically defined between all pairs of atoms within a cutoff distance
|
||||
and the set of active interactions changes over time.
|
||||
|
||||
Hybrid models where bonds are computed using different bond potentials
|
||||
can be setup using the *hybrid* bond style.
|
||||
|
||||
@ -200,6 +200,7 @@ The individual style names on the :doc:`Commands compute <Commands_compute>` pag
|
||||
* :doc:`com/chunk <compute_com_chunk>` - center of mass for each chunk
|
||||
* :doc:`contact/atom <compute_contact_atom>` - contact count for each spherical particle
|
||||
* :doc:`coord/atom <compute_coord_atom>` - coordination number for each atom
|
||||
* :doc:`count/type <compute_count_type>` - count of atoms or bonds by type
|
||||
* :doc:`damage/atom <compute_damage_atom>` - Peridynamic damage for each atom
|
||||
* :doc:`dihedral <compute_dihedral>` - energy of each dihedral sub-style
|
||||
* :doc:`dihedral/local <compute_dihedral_local>` - angle of each dihedral
|
||||
|
||||
130
doc/src/compute_count_type.rst
Normal file
130
doc/src/compute_count_type.rst
Normal file
@ -0,0 +1,130 @@
|
||||
.. index:: compute count/type
|
||||
|
||||
compute count/type command
|
||||
==========================
|
||||
|
||||
Syntax
|
||||
""""""
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
compute ID group-ID count/type mode
|
||||
|
||||
* ID, group-ID are documented in :doc:`compute <compute>` command
|
||||
* count/type = style name of this compute command
|
||||
* mode = {atom} or {bond} or {angle} or {dihedral} or {improper}
|
||||
|
||||
Examples
|
||||
""""""""
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
compute 1 all count/type atom
|
||||
compute 1 flowmols count/type bond
|
||||
|
||||
Description
|
||||
"""""""""""
|
||||
|
||||
.. versionadded:: TBD
|
||||
|
||||
Define a computation that counts the current number of atoms for each
|
||||
atom type. Or the number of bonds (angles, dihedrals, impropers) for
|
||||
each bond (angle, dihedral, improper) type.
|
||||
|
||||
The former can be useful if atoms are added to or deleted from the
|
||||
system in random ways, e.g. via the :doc:`fix deposit <fix_deposit>`,
|
||||
:doc:`fix pour <fix_pour>`, or :doc:`fix evaporate <fix_evaporate>`
|
||||
commands. The latter can be useful in reactive simulations where
|
||||
molecular bonds are broken or created, as well as angles, dihedrals,
|
||||
impropers.
|
||||
|
||||
Note that for this command, bonds (angles, etc) are the topological
|
||||
kind enumerated in a data file, initially read by the :doc:`read_data
|
||||
<read_data>` command or defined by the :doc:`molecule <molecule>`
|
||||
command. They do not refer to implicit bonds defined on-the-fly by
|
||||
bond-order or reactive pair styles based on the current conformation
|
||||
of small clusters of atoms.
|
||||
|
||||
These commands can turn off topological bonds (angles, etc) by setting
|
||||
their bond (angle, etc) types to negative values. This command
|
||||
includes the turned-off bonds (angles, etc) in the count for each
|
||||
type:
|
||||
|
||||
* :doc:`fix shake <fix_shake>`
|
||||
* :doc:`delete_bonds <delete_bonds>`
|
||||
|
||||
These commands can create and/or break topological bonds (angles,
|
||||
etc). In the case of breaking, they remove the bond (angle, etc) from
|
||||
the system, so that they no longer exist (:doc:`bond_style quartic
|
||||
<bond_quartic>` and :doc:`BPM bond styles <Howto_bpm>` are exceptions,
|
||||
see the discussion below). Thus they are not included in the counts
|
||||
for each type:
|
||||
|
||||
* :doc:`delete_bonds remove <delete_bonds>`
|
||||
* :doc:`bond_style quartic <bond_quartic>`
|
||||
* :doc:`fix bond/react <fix_bond_react>`
|
||||
* :doc:`fix bond/create <fix_bond_create>`
|
||||
* :doc:`fix bond/break <fix_bond_break>`
|
||||
* :doc:`BPM package <Howto_bpm>` bond styles
|
||||
|
||||
----------
|
||||
|
||||
If the {mode} setting is {atom} then the count of atoms for each atom
|
||||
type is tallied. Only atoms in the specified group are counted.
|
||||
|
||||
If the {mode} setting is {bond} then the count of bonds for each bond
|
||||
type is tallied. Only bonds with both atoms in the specified group
|
||||
are counted.
|
||||
|
||||
For {mode} = {bond}, broken bonds with a bond type of zero are also
|
||||
counted. The :doc:`bond_style quartic <bond_quartic>` and :doc:`BPM
|
||||
bond styles <Howto_bpm>` break bonds by doing this. See the :doc:`
|
||||
Howto broken bonds <Howto_broken_bonds>` doc page for more details.
|
||||
Note that the group setting is ignored for broken bonds; all broken
|
||||
bonds in the system are counted.
|
||||
|
||||
If the {mode} setting is {angle} then the count of angles for each
|
||||
angle type is tallied. Only angles with all 3 atoms in the specified
|
||||
group are counted.
|
||||
|
||||
If the {mode} setting is {dihedral} then the count of dihedrals for
|
||||
each dihedral type is tallied. Only dihedrals with all 4 atoms in the
|
||||
specified group are counted.
|
||||
|
||||
If the {mode} setting is {improper} then the count of impropers for
|
||||
each improper type is tallied. Only impropers with all 4 atoms in the
|
||||
specified group are counted.
|
||||
|
||||
----------
|
||||
|
||||
Output info
|
||||
"""""""""""
|
||||
|
||||
This compute calculates a global vector of counts. If the mode is
|
||||
{atom} or {bond} or {angle} or {dihedral} or {improper}, then the
|
||||
vector length is the number of atom types or bond types or angle types
|
||||
or dihedral types or improper types, respectively.
|
||||
|
||||
If the mode is {bond} this compute also calculates a global scalar
|
||||
which is the number of broken bonds with type = 0, as explained above.
|
||||
|
||||
These values can be used by any command that uses global scalar or
|
||||
vector values from a compute as input. See the :doc:`Howto output
|
||||
<Howto_output>` page for an overview of LAMMPS output options.
|
||||
|
||||
The scalar and vector values calculated by this compute are "extensive".
|
||||
|
||||
Restrictions
|
||||
""""""""""""
|
||||
|
||||
none
|
||||
|
||||
Related commands
|
||||
""""""""""""""""
|
||||
|
||||
none
|
||||
|
||||
Default
|
||||
"""""""
|
||||
|
||||
none
|
||||
@ -136,12 +136,12 @@ More information on the similarities and differences can be found in
|
||||
Restrictions
|
||||
""""""""""""
|
||||
|
||||
These computes calculate the stress tensor contributions for pair
|
||||
styles only (i.e., no bond, angle, dihedral, etc. contributions, and in
|
||||
the presence of bonded interactions, the result will be incorrect due to
|
||||
exclusions for special bonds) and requires pairwise force calculations
|
||||
not available for most many-body pair styles.
|
||||
Note that :math:`k`-space calculations are also excluded.
|
||||
These computes calculate the stress tensor contributions for pair styles
|
||||
only (i.e., no bond, angle, dihedral, etc. contributions, and in the
|
||||
presence of bonded interactions, the result may be incorrect due to
|
||||
exclusions for :doc:`special bonds <special_bonds>` excluding pairs of atoms
|
||||
completely). It requires pairwise force calculations not available for most
|
||||
many-body pair styles. Note that :math:`k`-space calculations are also excluded.
|
||||
|
||||
These computes are part of the EXTRA-COMPUTE package. They are only
|
||||
enabled if LAMMPS was built with that package. See the :doc:`Build
|
||||
|
||||
@ -187,16 +187,22 @@ Both the scalar and vector values calculated by this compute are
|
||||
Restrictions
|
||||
""""""""""""
|
||||
|
||||
This compute is part of the TALLY package. It is only enabled if
|
||||
LAMMPS was built with that package. See the :doc:`Build package <Build_package>` page for more info.
|
||||
This compute is part of the TALLY package. It is only enabled if LAMMPS
|
||||
was built with that package. See the :doc:`Build package
|
||||
<Build_package>` page for more info.
|
||||
|
||||
Not all pair styles can be evaluated in a pairwise mode as required by
|
||||
this compute. For example, 3-body and other many-body potentials,
|
||||
such as :doc:`Tersoff <pair_tersoff>` and
|
||||
:doc:`Stillinger-Weber <pair_sw>` cannot be used. :doc:`EAM <pair_eam>`
|
||||
potentials only include the pair potential portion of the EAM
|
||||
interaction when used by this compute, not the embedding term. Also
|
||||
bonded or Kspace interactions do not contribute to this compute.
|
||||
this compute. For example, 3-body and other many-body potentials, such
|
||||
as :doc:`Tersoff <pair_tersoff>` and :doc:`Stillinger-Weber <pair_sw>`
|
||||
cannot be used. :doc:`EAM <pair_eam>` potentials only include the pair
|
||||
potential portion of the EAM interaction when used by this compute, not
|
||||
the embedding term. Also bonded or Kspace interactions do not
|
||||
contribute to this compute.
|
||||
|
||||
These computes are not compatible with accelerated pair styles from the
|
||||
GPU, INTEL, KOKKOS, or OPENMP packages. They will either create an error
|
||||
or print a warning when required data was not tallied in the required way
|
||||
and thus the data acquisition functions from these computes not called.
|
||||
|
||||
When used with dynamic groups, a :doc:`run 0 <run>` command needs to
|
||||
be inserted in order to initialize the dynamic groups before accessing
|
||||
|
||||
@ -63,7 +63,7 @@ like element names.
|
||||
|
||||
The *path* keyword determines which in directories. This is a "path"
|
||||
like other search paths, i.e. it can contain multiple directories
|
||||
separated by a colon (or semi-colon on windows). This keyword is
|
||||
separated by a colon (or semicolon on Windows). This keyword is
|
||||
optional and default to ".", the current directory.
|
||||
|
||||
The *unwrap* option of the :doc:`dump_modify <dump_modify>` command allows
|
||||
|
||||
@ -163,6 +163,8 @@ formulas for the meaning of these parameters:
|
||||
+------------------------------------------------------------------------------+--------------------------------------------------+-------------+
|
||||
| :doc:`harmonic/cut <pair_harmonic_cut>` | k, cutoff | type pairs |
|
||||
+------------------------------------------------------------------------------+--------------------------------------------------+-------------+
|
||||
| :doc:`kim <pair_kim>` | scale | type global |
|
||||
+------------------------------------------------------------------------------+--------------------------------------------------+-------------+
|
||||
| :doc:`lennard/mdf <pair_mdf>` | A,B | type pairs |
|
||||
+------------------------------------------------------------------------------+--------------------------------------------------+-------------+
|
||||
| :doc:`lj/class2 <pair_class2>` | epsilon,sigma | type pairs |
|
||||
|
||||
@ -18,18 +18,21 @@ Syntax
|
||||
* ID, group-ID are documented in :doc:`fix <fix>` command
|
||||
* edpd/source or tdpd/source = style name of this fix command
|
||||
* index (only specified for tdpd/source) = index of chemical species (1 to Nspecies)
|
||||
* keyword = *sphere* or *cuboid*
|
||||
* keyword = *sphere* or *cuboid* or *region*
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
*sphere* values = cx,cy,cz,radius,source
|
||||
*sphere* args = cx cy cz radius source
|
||||
cx,cy,cz = x,y,z center of spherical domain (distance units)
|
||||
radius = radius of a spherical domain (distance units)
|
||||
source = heat source or concentration source (flux units, see below)
|
||||
*cuboid* values = cx,cy,cz,dLx,dLy,dLz,source
|
||||
cx,cy,cz = x,y,z lower left corner of a cuboid domain (distance units)
|
||||
*cuboid* values = cx cy cz dLx dLy dLz source
|
||||
cx,cy,cz = x,y,z center of a cuboid domain (distance units)
|
||||
dLx,dLy,dLz = x,y,z side length of a cuboid domain (distance units)
|
||||
source = heat source or concentration source (flux units, see below)
|
||||
*region* values = region-ID source
|
||||
region = ID of region for heat or concentration source
|
||||
source = heat source or concentration source (flux units, see below)
|
||||
|
||||
Examples
|
||||
""""""""
|
||||
@ -40,6 +43,7 @@ Examples
|
||||
fix 1 all edpd/source cuboid 0.0 0.0 0.0 20.0 10.0 10.0 -0.01
|
||||
fix 1 all tdpd/source 1 sphere 5.0 0.0 0.0 5.0 0.01
|
||||
fix 1 all tdpd/source 2 cuboid 0.0 0.0 0.0 20.0 10.0 10.0 0.01
|
||||
fix 1 all tdpd/source 1 region lower -0.01
|
||||
|
||||
Description
|
||||
"""""""""""
|
||||
@ -57,37 +61,50 @@ heat conduction with a source term (see Fig.12 in :ref:`(Li2014) <Li2014b>`)
|
||||
or diffusion with a source term (see Fig.1 in :ref:`(Li2015) <Li2015b>`), as
|
||||
an analog of a periodic Poiseuille flow problem.
|
||||
|
||||
If the *sphere* keyword is used, the *cx,cy,cz,radius* defines a
|
||||
spherical domain to apply the source flux to.
|
||||
.. deprecated:: TBD
|
||||
|
||||
If the *cuboid* keyword is used, the *cx,cy,cz,dLx,dLy,dLz* defines a
|
||||
cuboid domain to apply the source flux to.
|
||||
The *sphere* and *cuboid* keywords will be removed in a future version
|
||||
of LAMMPS. The same functionality and more can be achieved with a region.
|
||||
|
||||
If the *sphere* keyword is used, the *cx, cy, cz, radius* values define
|
||||
a spherical domain to apply the source flux to.
|
||||
|
||||
If the *cuboid* keyword is used, the *cx, cy, cz, dLx, dLy, dLz* define
|
||||
a cuboid domain to apply the source flux to.
|
||||
|
||||
If the *region* keyword is used, the *region-ID* selects which
|
||||
:doc:`region <region>` to apply the source flux to.
|
||||
|
||||
----------
|
||||
|
||||
Restart, fix_modify, output, run start/stop, minimize info
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
|
||||
No information about this fix is written to :doc:`binary restart files <restart>`. None of the :doc:`fix_modify <fix_modify>` options
|
||||
are relevant to this fix. No global or per-atom quantities are stored
|
||||
by this fix for access by various :doc:`output commands <Howto_output>`.
|
||||
No parameter of this fix can be used with the *start/stop* keywords of
|
||||
the :doc:`run <run>` command. This fix is not invoked during :doc:`energy minimization <minimize>`.
|
||||
No information of these fixes is written to :doc:`binary restart files
|
||||
<restart>`. None of the :doc:`fix_modify <fix_modify>` options are
|
||||
relevant to these fixes. No global or per-atom quantities are stored by
|
||||
these fixes for access by various :doc:`output commands <Howto_output>`.
|
||||
No parameter of these fixes can be used with the *start/stop* keywords
|
||||
of the :doc:`run <run>` command. These fixes are not invoked during
|
||||
:doc:`energy minimization <minimize>`.
|
||||
|
||||
Restrictions
|
||||
""""""""""""
|
||||
|
||||
This fix is part of the DPD-MESO package. It is only enabled if
|
||||
LAMMPS was built with that package. See the :doc:`Build package <Build_package>` page for more info.
|
||||
These fixes are part of the DPD-MESO package. They are only enabled if
|
||||
LAMMPS was built with that package. See the :doc:`Build package
|
||||
<Build_package>` page for more info.
|
||||
|
||||
Fix *edpd/source* must be used with the :doc:`pair_style edpd <pair_mesodpd>` command. Fix *tdpd/source* must be used with the
|
||||
Fix *edpd/source* must be used with the :doc:`pair_style edpd
|
||||
<pair_mesodpd>` command. Fix *tdpd/source* must be used with the
|
||||
:doc:`pair_style tdpd <pair_mesodpd>` command.
|
||||
|
||||
Related commands
|
||||
""""""""""""""""
|
||||
|
||||
:doc:`pair_style edpd <pair_mesodpd>`, :doc:`pair_style tdpd <pair_mesodpd>`,
|
||||
:doc:`compute edpd/temp/atom <compute_edpd_temp_atom>`, :doc:`compute tdpd/cc/atom <compute_tdpd_cc_atom>`
|
||||
:doc:`compute edpd/temp/atom <compute_edpd_temp_atom>`,
|
||||
:doc:`compute tdpd/cc/atom <compute_tdpd_cc_atom>`
|
||||
|
||||
Default
|
||||
"""""""
|
||||
|
||||
@ -19,7 +19,7 @@ Syntax
|
||||
* ex,ey,ez = E-field component values (electric field units)
|
||||
* any of ex,ey,ez can be a variable (see below)
|
||||
* zero or more keyword/value pairs may be appended to args
|
||||
* keyword = *region* or *energy*
|
||||
* keyword = *region* or *energy* or *potential*
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
@ -27,6 +27,8 @@ Syntax
|
||||
region-ID = ID of region atoms must be in to have added force
|
||||
*energy* value = v_name
|
||||
v_name = variable with name that calculates the potential energy of each atom in the added E-field
|
||||
*potential* value = v_name
|
||||
v_name = variable with name that calculates the electric potential of each atom in the added E-field
|
||||
|
||||
Examples
|
||||
""""""""
|
||||
@ -112,7 +114,8 @@ one or more variables, and if you are performing dynamics via the
|
||||
:doc:`run <run>` command. If the keyword is not used, LAMMPS will set
|
||||
the energy to 0.0, which is typically fine for dynamics.
|
||||
|
||||
The *energy* keyword is required if the added force is defined with
|
||||
The *energy* keyword (or *potential* keyword, described below)
|
||||
is required if the added force is defined with
|
||||
one or more variables, and you are performing energy minimization via
|
||||
the "minimize" command for charged particles. It is not required for
|
||||
point-dipoles, but a warning is issued since the minimizer in LAMMPS
|
||||
@ -122,7 +125,7 @@ minimize the orientation of dipoles in an applied electric field.
|
||||
The *energy* keyword specifies the name of an atom-style
|
||||
:doc:`variable <variable>` which is used to compute the energy of each
|
||||
atom as function of its position. Like variables used for *ex*,
|
||||
*ey*, *ez*, the energy variable is specified as v_name, where name
|
||||
*ey*, *ez*, the energy variable is specified as "v_name", where "name"
|
||||
is the variable name.
|
||||
|
||||
Note that when the *energy* keyword is used during an energy
|
||||
@ -133,6 +136,27 @@ due to the electric field were a spring-like F = kx, then the energy
|
||||
formula should be E = -0.5kx\^2. If you don't do this correctly, the
|
||||
minimization will not converge properly.
|
||||
|
||||
.. versionadded:: TBD
|
||||
|
||||
The *potential* keyword can be used as an alternative to the *energy* keyword
|
||||
to specify the name of an atom-style variable, which is used to compute the
|
||||
added electric potential to each atom as a function of its position. The
|
||||
variable should have units of electric field multiplied by distance (that is,
|
||||
in `units real`, the potential should be in volts). As with the *energy*
|
||||
keyword, the variable name is specified as "v_name". The energy added by this
|
||||
fix is then calculated as the electric potential multiplied by charge.
|
||||
|
||||
The *potential* keyword is mainly intended for correct charge
|
||||
equilibration in simulations with :doc:`fix qeq/reaxff<fix_qeq_reaxff>`,
|
||||
since with variable charges the electric potential can be known
|
||||
beforehand but the energy cannot. A small additional benefit is that
|
||||
the *energy* keyword requires an additional conversion to energy units
|
||||
which the *potential* keyword avoids. Thus, when the *potential*
|
||||
keyword is specified, the *energy* keyword must not be used. As with
|
||||
*energy*, the *potential* keyword is not allowed if the added field is a
|
||||
constant vector. The *potential* keyword is not supported by *fix
|
||||
efield/tip4p*.
|
||||
|
||||
----------
|
||||
|
||||
Restart, fix_modify, output, run start/stop, minimize info
|
||||
|
||||
@ -280,24 +280,24 @@ invoked by the :doc:`minimize <minimize>` command.
|
||||
Restrictions
|
||||
""""""""""""
|
||||
|
||||
This command is part of the MDI package. It is only enabled if
|
||||
LAMMPS was built with that package. See the :doc:`Build package
|
||||
This fix is part of the MDI package. It is only enabled if LAMMPS
|
||||
was built with that package. See the :doc:`Build package
|
||||
<Build_package>` page for more info.
|
||||
|
||||
To use LAMMPS as an MDI driver in conjunction with other MDI-enabled
|
||||
codes (MD or QM codes), the :doc:`units <units>` command should be
|
||||
used to specify *real* or *metal* units. This will ensure the correct
|
||||
unit conversions between LAMMPS and MDI units. The other code will
|
||||
also perform similar unit conversions into its preferred units.
|
||||
codes (MD or QM codes), the :doc:`units <units>` command should be used
|
||||
to specify *real* or *metal* units. This will ensure the correct unit
|
||||
conversions between LAMMPS and MDI units. The other code will also
|
||||
perform similar unit conversions into its preferred units.
|
||||
|
||||
LAMMPS can also be used as an MDI driver in other unit choices it
|
||||
supports, e.g. *lj*, but then no unit conversion to MDI units is
|
||||
performed.
|
||||
|
||||
If this fix is used in conjuction with a QM code that does not support
|
||||
periodic boundary conditions (more specifically, a QM code that does
|
||||
not support the ``>CELL`` MDI command), the LAMMPS system must be
|
||||
fully non-periodic. I.e. no dimension of the system can be periodic.
|
||||
If this fix is used in conjunction with a QM code that does not support
|
||||
periodic boundary conditions (more specifically, a QM code that does not
|
||||
support the ``>CELL`` MDI command), the LAMMPS system must be fully
|
||||
non-periodic. I.e. no dimension of the system can be periodic.
|
||||
|
||||
Related commands
|
||||
""""""""""""""""
|
||||
|
||||
@ -251,20 +251,20 @@ minimization, invoked by the :doc:`minimize <minimize>` command.
|
||||
Restrictions
|
||||
""""""""""""
|
||||
|
||||
This command is part of the MDI package. It is only enabled if
|
||||
LAMMPS was built with that package. See the :doc:`Build package
|
||||
This command is part of the MDI package. It is only enabled if LAMMPS
|
||||
was built with that package. See the :doc:`Build package
|
||||
<Build_package>` page for more info.
|
||||
|
||||
To use LAMMPS as an MDI driver in conjunction with other MDI-enabled
|
||||
codes (MD or QM codes), the :doc:`units <units>` command should be
|
||||
used to specify *real* or *metal* units. This will ensure the correct
|
||||
unit conversions between LAMMPS and MDI units. The other code will
|
||||
also perform similar unit conversions into its preferred units.
|
||||
codes (MD or QM codes), the :doc:`units <units>` command should be used
|
||||
to specify *real* or *metal* units. This will ensure the correct unit
|
||||
conversions between LAMMPS and MDI units. The other code will also
|
||||
perform similar unit conversions into its preferred units.
|
||||
|
||||
If this fix is used in conjuction with a QM code that does not support
|
||||
periodic boundary conditions (more specifically, a QM code that does
|
||||
not support the ``>CELL`` MDI command), the LAMMPS system must be
|
||||
fully non-periodic. I.e. no dimension of the system can be periodic.
|
||||
If this fix is used in conjunction with a QM code that does not support
|
||||
periodic boundary conditions (more specifically, a QM code that does not
|
||||
support the ``>CELL`` MDI command), the LAMMPS system must be fully
|
||||
non-periodic. I.e. no dimension of the system can be periodic.
|
||||
|
||||
Related commands
|
||||
""""""""""""""""
|
||||
|
||||
@ -44,6 +44,20 @@ one word. If it contains variables it must be enclosed in double
|
||||
quotes to ensure they are not evaluated when the input script line is
|
||||
read, but will instead be evaluated each time the string is printed.
|
||||
|
||||
.. versionadded:: TBD
|
||||
|
||||
support for vector style variables
|
||||
|
||||
See the :doc:`variable <variable>` command for a description of
|
||||
*equal* and *vector* style variables which are typically the most
|
||||
useful ones to use with the print command. Equal- and vector-style
|
||||
variables can calculate formulas involving mathematical operations,
|
||||
atom properties, group properties, thermodynamic properties, global
|
||||
values calculated by a :doc:`compute <compute>` or :doc:`fix <fix>`,
|
||||
or references to other :doc:`variables <variable>`. Vector-style
|
||||
variables are printed in a bracketed, comma-separated format,
|
||||
e.g. [1,2,3,4] or [12.5,2,4.6,10.1].
|
||||
|
||||
.. note::
|
||||
|
||||
As discussed on the :doc:`Commands parse <Commands_parse>` doc
|
||||
@ -77,15 +91,6 @@ timesteps 10,20,30,100,200,300,1000,2000,etc:
|
||||
|
||||
The specified group-ID is ignored by this fix.
|
||||
|
||||
See the :doc:`variable <variable>` command for a description of
|
||||
*equal* style variables which are the most useful ones to use with the
|
||||
fix print command, since they are evaluated afresh each timestep that
|
||||
the fix print line is output. Equal-style variables calculate
|
||||
formulas involving mathematical operations, atom properties, group
|
||||
properties, thermodynamic properties, global values calculated by a
|
||||
:doc:`compute <compute>` or :doc:`fix <fix>`, or references to other
|
||||
:doc:`variables <variable>`.
|
||||
|
||||
If the *file* or *append* keyword is used, a filename is specified to
|
||||
which the output generated by this fix will be written. If *file* is
|
||||
used, then the filename is overwritten if it already exists. If
|
||||
|
||||
@ -128,9 +128,12 @@ periodic cell dimensions less than 10 Angstroms.
|
||||
|
||||
This fix may be used in combination with :doc:`fix efield <fix_efield>`
|
||||
and will apply the external electric field during charge equilibration,
|
||||
but there may be only one fix efield instance used, it may only use a
|
||||
constant electric field, and the electric field vector may only have
|
||||
components in non-periodic directions.
|
||||
but there may be only one fix efield instance used and the electric field
|
||||
vector may only have components in non-periodic directions. Equal-style
|
||||
variables can be used for electric field vector components without any further
|
||||
settings. Atom-style variables can be used for spatially-varying electric field
|
||||
vector components, but the resulting electric potential must be specified
|
||||
as an atom-style variable using the *potential* keyword for `fix efield`.
|
||||
|
||||
Related commands
|
||||
""""""""""""""""
|
||||
|
||||
@ -148,7 +148,8 @@ formulae). The *specieslist* and *masslimit* keywords cannot both be
|
||||
used in the same *reaxff/species* fix. The *delete_rate_limit*
|
||||
keyword can enforce an upper limit on the overall rate of molecule
|
||||
deletion. The number of deletion occurrences is limited to Nlimit
|
||||
within an interval of Nsteps timesteps. When using the
|
||||
within an interval of Nsteps timesteps. Nlimit can be specified with
|
||||
an equal-style :doc:`variable <variable>`. When using the
|
||||
*delete_rate_limit* keyword, no deletions are permitted to occur
|
||||
within the first Nsteps timesteps of the first run (after reading a
|
||||
either a data or restart file).
|
||||
|
||||
@ -209,7 +209,7 @@ it as a single keyword.
|
||||
|
||||
Optionally, the expression may use "rc" to refer to the cutoff distance
|
||||
for the given wall. Further constants in the expression can be defined
|
||||
in the same string as additional expressions separated by semi-colons.
|
||||
in the same string as additional expressions separated by semicolons.
|
||||
The expression "k*(r-rc)^2;k=100.0" represents a repulsive-only harmonic
|
||||
spring as in fix *wall/harmonic* with a force constant *K* (same as
|
||||
:math:`\epsilon` above) of 100 energy units. More details on the Lepton
|
||||
|
||||
@ -142,7 +142,8 @@ the code will stop with an error message. When this option is set to
|
||||
For a typical application, using the automatic parameter generation
|
||||
will provide simulations that are either inaccurate or slow. Using this
|
||||
option is thus not recommended. For guidelines on how to obtain good
|
||||
parameters, see the :doc:`How-To <Howto_dispersion>` discussion.
|
||||
parameters, see the :doc:`long-range dispersion howto <Howto_dispersion>`
|
||||
discussion.
|
||||
|
||||
----------
|
||||
|
||||
|
||||
@ -71,7 +71,7 @@ Syntax
|
||||
*no_affinity* values = none
|
||||
*kokkos* args = keyword value ...
|
||||
zero or more keyword/value pairs may be appended
|
||||
keywords = *neigh* or *neigh/qeq* or *neigh/thread* or *neigh/transpose* or *newton* or *binsize* or *comm* or *comm/exchange* or *comm/forward* or *comm/pair/forward* or *comm/fix/forward* or *comm/reverse* or *comm/pair/reverse* or *gpu/aware* or *pair/only*
|
||||
keywords = *neigh* or *neigh/qeq* or *neigh/thread* or *neigh/transpose* or *newton* or *binsize* or *comm* or *comm/exchange* or *comm/forward* or *comm/pair/forward* or *comm/fix/forward* or *comm/reverse* or *comm/pair/reverse* or *sort* or *gpu/aware* or *pair/only*
|
||||
*neigh* value = *full* or *half*
|
||||
full = full neighbor list
|
||||
half = half neighbor list built in thread-safe manner
|
||||
@ -102,6 +102,9 @@ Syntax
|
||||
*comm/pair/reverse* value = *no* or *device*
|
||||
*no* = perform communication pack/unpack in non-KOKKOS mode
|
||||
*device* = perform pack/unpack on device (e.g. on GPU)
|
||||
*sort* value = *no* or *device*
|
||||
*no* = perform atom sorting in non-KOKKOS mode
|
||||
*device* = perform atom sorting on device (e.g. on GPU)
|
||||
*gpu/aware* = *off* or *on*
|
||||
*off* = do not use GPU-aware MPI
|
||||
*on* = use GPU-aware MPI (default)
|
||||
@ -554,6 +557,17 @@ pack/unpack communicated data. When running small systems on a GPU,
|
||||
performing the exchange pack/unpack on the host CPU can give speedup
|
||||
since it reduces the number of CUDA kernel launches.
|
||||
|
||||
The *sort* keyword determines whether the host or device performs atom
|
||||
sorting, see the :doc:`atom_modify sort <atom_modify>` command. The
|
||||
value options for the *sort* keyword are *no* or *device* similar to the
|
||||
*comm* keywords above. If a value of *host* is used it will be
|
||||
automatically be changed to *no* since the *sort* keyword does not
|
||||
support *host* mode. The value of *no* will also always be used when
|
||||
running on the CPU, i.e. setting the value to *device* will have no
|
||||
effect if the simulation is running on the CPU. Not all fix styles with
|
||||
extra atom data support *device* mode and in that case a warning will be
|
||||
given and atom sorting will run in *no* mode instead.
|
||||
|
||||
The *gpu/aware* keyword chooses whether GPU-aware MPI will be used. When
|
||||
this keyword is set to *on*, buffers in GPU memory are passed directly
|
||||
through MPI send/receive calls. This reduces overhead of first copying
|
||||
@ -705,12 +719,12 @@ script or via the "-pk intel" :doc:`command-line switch <Run_options>`.
|
||||
|
||||
For the KOKKOS package, the option defaults for GPUs are neigh = full,
|
||||
neigh/qeq = full, newton = off, binsize for GPUs = 2x LAMMPS default
|
||||
value, comm = device, neigh/transpose = off, gpu/aware = on. When
|
||||
LAMMPS can safely detect that GPU-aware MPI is not available, the
|
||||
default value of gpu/aware becomes "off". For CPUs or Xeon Phis, the
|
||||
option defaults are neigh = half, neigh/qeq = half, newton = on,
|
||||
binsize = 0.0, and comm = no. The option neigh/thread = on when there
|
||||
are 16K atoms or less on an MPI rank, otherwise it is "off". These
|
||||
value, comm = device, sort = device, neigh/transpose = off, gpu/aware =
|
||||
on. When LAMMPS can safely detect that GPU-aware MPI is not available,
|
||||
the default value of gpu/aware becomes "off". For CPUs or Xeon Phis, the
|
||||
option defaults are neigh = half, neigh/qeq = half, newton = on, binsize
|
||||
= 0.0, comm = no, and sort = no. The option neigh/thread = on when
|
||||
there are 16K atoms or less on an MPI rank, otherwise it is "off". These
|
||||
settings are made automatically by the required "-k on"
|
||||
:doc:`command-line switch <Run_options>`. You can change them by using
|
||||
the package kokkos command in your input script or via the :doc:`-pk
|
||||
|
||||
@ -26,8 +26,8 @@ Syntax
|
||||
pair_style dpd T cutoff seed
|
||||
pair_style dpd/tstat Tstart Tstop cutoff seed
|
||||
|
||||
* T = temperature (temperature units)
|
||||
* Tstart,Tstop = desired temperature at start/end of run (temperature units)
|
||||
* T = temperature (temperature units) (dpd only)
|
||||
* Tstart,Tstop = desired temperature at start/end of run (temperature units) (dpd/tstat only)
|
||||
* cutoff = global cutoff for DPD interactions (distance units)
|
||||
* seed = random # seed (positive integer)
|
||||
|
||||
@ -40,9 +40,9 @@ Examples
|
||||
pair_coeff * * 3.0 1.0
|
||||
pair_coeff 1 1 3.0 1.0 1.0
|
||||
|
||||
pair_style dpd/tstat 1.0 1.0 2.5 34387
|
||||
pair_coeff * * 1.0
|
||||
pair_coeff 1 1 1.0 1.0
|
||||
pair_style hybrid/overlay lj/cut 2.5 dpd/tstat 1.0 1.0 2.5 34387
|
||||
pair_coeff * * lj/cut 1.0 1.0
|
||||
pair_coeff * * dpd/tstat 1.0
|
||||
|
||||
Description
|
||||
"""""""""""
|
||||
@ -53,7 +53,7 @@ Style *dpd* computes a force field for dissipative particle dynamics
|
||||
Style *dpd/tstat* invokes a DPD thermostat on pairwise interactions,
|
||||
which is equivalent to the non-conservative portion of the DPD force
|
||||
field. This pairwise thermostat can be used in conjunction with any
|
||||
:doc:`pair style <pair_style>`, and in leiu of per-particle thermostats
|
||||
:doc:`pair style <pair_style>`, and instead of per-particle thermostats
|
||||
like :doc:`fix langevin <fix_langevin>` or ensemble thermostats like
|
||||
Nose Hoover as implemented by :doc:`fix nvt <fix_nh>`. To use
|
||||
*dpd/tstat* as a thermostat for another pair style, use the
|
||||
@ -105,14 +105,18 @@ commands:
|
||||
* :math:`\gamma` (force/velocity units)
|
||||
* cutoff (distance units)
|
||||
|
||||
The last coefficient is optional. If not specified, the global DPD
|
||||
The cutoff coefficient is optional. If not specified, the global DPD
|
||||
cutoff is used. Note that sigma is set equal to sqrt(2 T gamma),
|
||||
where T is the temperature set by the :doc:`pair_style <pair_style>`
|
||||
command so it does not need to be specified.
|
||||
|
||||
For style *dpd/tstat*, the coefficients defined for each pair of
|
||||
atoms types via the :doc:`pair_coeff <pair_coeff>` command is the same,
|
||||
except that A is not included.
|
||||
atoms types via the :doc:`pair_coeff <pair_coeff>` command are:
|
||||
|
||||
* :math:`\gamma` (force/velocity units)
|
||||
* cutoff (distance units)
|
||||
|
||||
The cutoff coefficient is optional.
|
||||
|
||||
The GPU-accelerated versions of these styles are implemented based on
|
||||
the work of :ref:`(Afshar) <Afshar>` and :ref:`(Phillips) <Phillips>`.
|
||||
@ -135,6 +139,12 @@ the work of :ref:`(Afshar) <Afshar>` and :ref:`(Phillips) <Phillips>`.
|
||||
numbers are applied and thus the individual forces and therefore
|
||||
also the virial/pressure.
|
||||
|
||||
.. note::
|
||||
|
||||
For more consistent time integration and force computation you may
|
||||
consider using :doc:`fix mvv/dpd <fix_mvv_dpd>` instead of :doc:`fix
|
||||
nve <fix_nve>`.
|
||||
|
||||
----------
|
||||
|
||||
.. include:: accel_styles.rst
|
||||
@ -206,7 +216,9 @@ command for more details.
|
||||
Related commands
|
||||
""""""""""""""""
|
||||
|
||||
:doc:`pair_coeff <pair_coeff>`, :doc:`fix nvt <fix_nh>`, :doc:`fix langevin <fix_langevin>`, :doc:`pair_style srp <pair_srp>`
|
||||
:doc:`pair_style dpd/ext <pair_dpd_ext>`, :doc:`pair_coeff <pair_coeff>`,
|
||||
:doc:`fix nvt <fix_nh>`, :doc:`fix langevin <fix_langevin>`,
|
||||
:doc:`pair_style srp <pair_srp>`, :doc:`fix mvv/dpd <fix_mvv_dpd>`.
|
||||
|
||||
Default
|
||||
"""""""
|
||||
|
||||
@ -18,7 +18,6 @@ Accelerator Variants: dpd/ext/tstat/kk dpd/ext/tstat/omp
|
||||
Syntax
|
||||
""""""
|
||||
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
pair_style dpd/ext T cutoff seed
|
||||
@ -32,16 +31,15 @@ Syntax
|
||||
Examples
|
||||
""""""""
|
||||
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
pair_style dpd/ext 1.0 2.5 34387
|
||||
pair_coeff 1 1 25.0 4.5 4.5 0.5 0.5 1.2
|
||||
pair_coeff 1 2 40.0 4.5 4.5 0.5 0.5 1.2
|
||||
|
||||
pair_style dpd/ext/tstat 1.0 1.0 2.5 34387
|
||||
pair_coeff 1 1 4.5 4.5 0.5 0.5 1.2
|
||||
pair_coeff 1 2 4.5 4.5 0.5 0.5 1.2
|
||||
pair_style hybrid/overlay lj/cut 2.5 dpd/ext/tstat 1.0 1.0 2.5 34387
|
||||
pair_coeff * * lj/cut 1.0 1.0
|
||||
pair_coeff * * 4.5 4.5 0.5 0.5 1.2
|
||||
|
||||
Description
|
||||
"""""""""""
|
||||
@ -128,20 +126,39 @@ the :doc:`pair_style <pair_style>` command so it does not need to be
|
||||
specified.
|
||||
|
||||
For the style *dpd/ext/tstat*, the coefficients defined for each pair of
|
||||
atoms types via the :doc:`pair_coeff <pair_coeff>` command is the same,
|
||||
except that A is not included.
|
||||
atoms types via the :doc:`pair_coeff <pair_coeff>` command are:
|
||||
|
||||
* :math:`\gamma_{\parallel}` (force/velocity units)
|
||||
* :math:`\gamma_{\perp}` (force/velocity units)
|
||||
* :math:`s_{\parallel}` (unitless)
|
||||
* :math:`s_{\perp}` (unitless)
|
||||
* :math:`r_c` (distance units)
|
||||
|
||||
The last coefficient is optional.
|
||||
|
||||
.. note::
|
||||
|
||||
If you are modeling DPD polymer chains, you may want to use the
|
||||
:doc:`pair_style srp <pair_srp>` command in conjunction with these pair
|
||||
styles. It is a soft segmental repulsive potential (SRP) that can
|
||||
styles. It is a soft segmental repulsive potential (SRP) that can
|
||||
prevent DPD polymer chains from crossing each other.
|
||||
|
||||
.. note::
|
||||
|
||||
The virial calculation for pressure when using this pair style includes
|
||||
all the components of force listed above, including the random force.
|
||||
The virial calculation for pressure when using these pair styles
|
||||
includes all the components of force listed above, including the
|
||||
random force. Since the random force depends on random numbers,
|
||||
everything that changes the order of atoms in the neighbor list
|
||||
(e.g. different number of MPI ranks or a different neighbor list
|
||||
skin distance) will also change the sequence in which the random
|
||||
numbers are applied and thus the individual forces and therefore
|
||||
also the virial/pressure.
|
||||
|
||||
.. note::
|
||||
|
||||
For more consistent time integration and force computation you may
|
||||
consider using :doc:`fix mvv/dpd <fix_mvv_dpd>` instead of :doc:`fix
|
||||
nve <fix_nve>`.
|
||||
|
||||
----------
|
||||
|
||||
@ -207,7 +224,7 @@ Related commands
|
||||
|
||||
:doc:`pair_style dpd <pair_dpd>`, :doc:`pair_coeff <pair_coeff>`,
|
||||
:doc:`fix nvt <fix_nh>`, :doc:`fix langevin <fix_langevin>`,
|
||||
:doc:`pair_style srp <pair_srp>`
|
||||
:doc:`pair_style srp <pair_srp>`, :doc:`fix mvv/dpd <fix_mvv_dpd>`.
|
||||
|
||||
**Default:** none
|
||||
|
||||
|
||||
@ -650,13 +650,13 @@ For *heat* *area*, the heat
|
||||
|
||||
.. math::
|
||||
|
||||
Q = k_{s} a \Delta T
|
||||
Q = k_{s} A \Delta T
|
||||
|
||||
|
||||
|
||||
where :math:`\Delta T` is the difference in the two particles' temperature,
|
||||
:math:`k_{s}` is a non-negative numeric value for the conductivity, and
|
||||
:math:`a` is the area of the contact and depends on the normal force model.
|
||||
:math:`A` is the area of the contact and depends on the normal force model.
|
||||
|
||||
Note that the option *none* must either be used in all or none of of the
|
||||
*pair_coeff* calls. See :doc:`fix heat/flow <fix_heat_flow>` and
|
||||
|
||||
@ -76,7 +76,7 @@ instead reference the radii of the two atoms of the pair with "radi" and
|
||||
:doc:`data files <read_data>` or the :doc:`set command <set>`.
|
||||
|
||||
Note that further constants in the expressions can be defined in the
|
||||
same string as additional expressions separated by semi-colons as shown
|
||||
same string as additional expressions separated by semicolons as shown
|
||||
in the examples above.
|
||||
|
||||
The expression `"200.0*(r-1.5)^2"` represents a harmonic potential
|
||||
|
||||
@ -43,8 +43,7 @@ given by
|
||||
.. math::
|
||||
|
||||
E = 4 \epsilon \left[ \left(\frac{\sigma}{r}\right)^{12} -
|
||||
\left(\frac{\sigma}{r}\right)^6 \right]
|
||||
\qquad r < r_c
|
||||
\left(\frac{\sigma}{r}\right)^6 \right] \qquad r < r_c
|
||||
|
||||
:math:`r_c` is the cutoff.
|
||||
|
||||
@ -64,12 +63,24 @@ file or restart files read by the :doc:`read_data <read_data>` or
|
||||
* :math:`\sigma` (distance units)
|
||||
* LJ cutoff (distance units)
|
||||
|
||||
Note that :math:`\sigma` is defined in the LJ formula as the zero-crossing
|
||||
distance for the potential, not as the energy minimum at :math:`2^{\frac{1}{6}} \sigma`.
|
||||
|
||||
The last coefficient is optional. If not specified, the global
|
||||
LJ cutoff specified in the pair_style command is used.
|
||||
|
||||
Note that :math:`\sigma` is defined in the LJ formula as the
|
||||
zero-crossing distance for the potential, *not* as the energy minimum at
|
||||
:math:`r_0 = 2^{\frac{1}{6}} \sigma`. The _same_ potential function becomes:
|
||||
|
||||
.. math::
|
||||
|
||||
E = \epsilon \left[ \left(\frac{r_0}{r}\right)^{12} -
|
||||
2 \left(\frac{r_0}{r}\right)^6 \right] \qquad r < r_c
|
||||
|
||||
When using the minimum as reference width. In the literature both
|
||||
formulations are used, but the describe the same potential, only the
|
||||
:math:`\sigma` value must be computed by :math:`\sigma = r_0 /
|
||||
2^{\frac{1}{6}}` for use with LAMMPS, if this latter formulation is
|
||||
used.
|
||||
|
||||
----------
|
||||
|
||||
A version of these styles with a soft core, *lj/cut/soft*, suitable
|
||||
|
||||
@ -46,6 +46,20 @@ lines of output, the string can be enclosed in triple quotes, as in
|
||||
the last example above. If the text string contains variables, they
|
||||
will be evaluated and their current values printed.
|
||||
|
||||
.. versionadded:: TBD
|
||||
|
||||
support for vector style variables
|
||||
|
||||
See the :doc:`variable <variable>` command for a description of
|
||||
*equal* and *vector* style variables which are typically the most
|
||||
useful ones to use with the print command. Equal- and vector-style
|
||||
variables can calculate formulas involving mathematical operations,
|
||||
atom properties, group properties, thermodynamic properties, global
|
||||
values calculated by a :doc:`compute <compute>` or :doc:`fix <fix>`,
|
||||
or references to other :doc:`variables <variable>`. Vector-style
|
||||
variables are printed in a bracketed, comma-separated format,
|
||||
e.g. [1,2,3,4] or [12.5,2,4.6,10.1].
|
||||
|
||||
.. note::
|
||||
|
||||
As discussed on the :doc:`Commands parse <Commands_parse>` doc
|
||||
@ -60,6 +74,15 @@ will be evaluated and their current values printed.
|
||||
This is also explained on the :doc:`Commands parse
|
||||
<Commands_parse>` doc page.
|
||||
|
||||
If you want the print command to be executed multiple times (with
|
||||
changing variable values), there are 3 options. First, consider using
|
||||
the :doc:`fix print <fix_print>` command, which will print a string
|
||||
periodically during a simulation. Second, the print command can be
|
||||
used as an argument to the *every* option of the :doc:`run <run>`
|
||||
command. Third, the print command could appear in a section of the
|
||||
input script that is looped over (see the :doc:`jump <jump>` and
|
||||
:doc:`next <next>` commands).
|
||||
|
||||
If the *file* or *append* keyword is used, a filename is specified to
|
||||
which the output will be written. If *file* is used, then the
|
||||
filename is overwritten if it already exists. If *append* is used,
|
||||
@ -74,23 +97,6 @@ logfile can be turned on or off as desired. In multi-partition
|
||||
calculations, the *screen* option and the corresponding output only
|
||||
apply to the screen and logfile of the individual partition.
|
||||
|
||||
If you want the print command to be executed multiple times (with
|
||||
changing variable values), there are 3 options. First, consider using
|
||||
the :doc:`fix print <fix_print>` command, which will print a string
|
||||
periodically during a simulation. Second, the print command can be
|
||||
used as an argument to the *every* option of the :doc:`run <run>`
|
||||
command. Third, the print command could appear in a section of the
|
||||
input script that is looped over (see the :doc:`jump <jump>` and
|
||||
:doc:`next <next>` commands).
|
||||
|
||||
See the :doc:`variable <variable>` command for a description of *equal*
|
||||
style variables which are typically the most useful ones to use with
|
||||
the print command. Equal-style variables can calculate formulas
|
||||
involving mathematical operations, atom properties, group properties,
|
||||
thermodynamic properties, global values calculated by a
|
||||
:doc:`compute <compute>` or :doc:`fix <fix>`, or references to other
|
||||
:doc:`variables <variable>`.
|
||||
|
||||
Restrictions
|
||||
""""""""""""
|
||||
none
|
||||
|
||||
@ -132,7 +132,7 @@ files can be written by LAMMPS via the :doc:`dump dcd <dump>` command.
|
||||
The *path* value specifies a list of directories which LAMMPS will
|
||||
search for the molfile plugins appropriate to the specified *style*\ .
|
||||
The syntax of the *path* value is like other search paths: it can
|
||||
contain multiple directories separated by a colon (or semi-colon on
|
||||
contain multiple directories separated by a colon (or semicolon on
|
||||
windows). The *path* keyword is optional and defaults to ".",
|
||||
i.e. the current directory.
|
||||
|
||||
|
||||
@ -92,9 +92,24 @@ The Coulomb factors are applied to any Coulomb (charge interaction)
|
||||
term that the potential calculates. The LJ factors are applied to the
|
||||
remaining terms that the potential calculates, whether they represent
|
||||
LJ interactions or not. The weighting factors are a scaling
|
||||
prefactor on the energy and force between the pair of atoms. A value
|
||||
of 1.0 means include the full interaction; a value of 0.0 means
|
||||
exclude it completely.
|
||||
prefactor on the energy and force between the pair of atoms.
|
||||
|
||||
A value of 1.0 means include the full interaction without flagging the
|
||||
pair as a "special pair"; a value of 0.0 means exclude the pair
|
||||
completely from the neighbor list, except for pair styles that require a
|
||||
:doc:`kspace style <kspace_style>` and pair styles :doc:`amoeba
|
||||
<pair_amoeba>`, :doc:`hippo <pair_amoeba>`, :doc:`thole <pair_thole>`,
|
||||
:doc:`coul/exclude <pair_coul>`, and pair styles that include
|
||||
"coul/dsf" or "coul/wolf".
|
||||
|
||||
.. note::
|
||||
|
||||
To include pairs that would otherwise be excluded (so they are
|
||||
included in the neighbor list for certain analysis compute styles),
|
||||
you can use a very small but non-zero value like 1.0e-100 instead of
|
||||
0.0. Due to using floating-point math, the computed force, energy,
|
||||
and virial contributions from the pairs will be too small to cause
|
||||
differences.
|
||||
|
||||
The first of the 3 coefficients (LJ or Coulombic) is the weighting
|
||||
factor on 1-2 atom pairs, which are pairs of atoms directly bonded to
|
||||
|
||||
@ -11,12 +11,19 @@ Syntax
|
||||
variable name style args ...
|
||||
|
||||
* name = name of variable to define
|
||||
* style = *delete* or *index* or *loop* or *world* or *universe* or *uloop* or *string* or *format* or *getenv* or *file* or *atomfile* or *python* or *timer* or *internal* or *equal* or *vector* or *atom*
|
||||
* style = *delete* or *atomfile* or *file* or *format* or *getenv* or *index* or *internal* or *loop* or *python* or *string* or *timer* or *uloop* or *universe* or *world* or *equal* or *vector* or *atom*
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
*delete* = no args
|
||||
*atomfile* arg = filename
|
||||
*file* arg = filename
|
||||
*format* args = vname fstr
|
||||
vname = name of equal-style variable to evaluate
|
||||
fstr = C-style format string
|
||||
*getenv* arg = one string
|
||||
*index* args = one or more strings
|
||||
*internal* arg = numeric value
|
||||
*loop* args = N
|
||||
N = integer size of loop, loop from 1 to N inclusive
|
||||
*loop* args = N pad
|
||||
@ -27,24 +34,18 @@ Syntax
|
||||
*loop* args = N1 N2 pad
|
||||
N1,N2 = loop from N1 to N2 inclusive
|
||||
pad = all values will be same length, e.g. 050, 051, ..., 100
|
||||
*world* args = one string for each partition of processors
|
||||
*universe* args = one or more strings
|
||||
*python* arg = function
|
||||
*string* arg = one string
|
||||
*timer* arg = no arguments
|
||||
*uloop* args = N
|
||||
N = integer size of loop
|
||||
*uloop* args = N pad
|
||||
N = integer size of loop
|
||||
pad = all values will be same length, e.g. 001, 002, ..., 100
|
||||
*string* arg = one string
|
||||
*format* args = vname fstr
|
||||
vname = name of equal-style variable to evaluate
|
||||
fstr = C-style format string
|
||||
*getenv* arg = one string
|
||||
*file* arg = filename
|
||||
*atomfile* arg = filename
|
||||
*python* arg = function
|
||||
*timer* arg = no arguments
|
||||
*internal* arg = numeric value
|
||||
*equal* or *vector* or *atom* args = one formula containing numbers, thermo keywords, math operations, group functions, atom values and vectors, compute/fix/variable references
|
||||
*universe* args = one or more strings
|
||||
*world* args = one string for each partition of processors
|
||||
|
||||
*equal* or *vector* or *atom* args = one formula containing numbers, thermo keywords, math operations, built-in functions, atom values and vectors, compute/fix/variable references
|
||||
numbers = 0.0, 100, -5.4, 2.8e-4, etc
|
||||
constants = PI, version, on, off, true, false, yes, no
|
||||
thermo keywords = vol, ke, press, etc from :doc:`thermo_style <thermo_style>`
|
||||
@ -66,13 +67,14 @@ Syntax
|
||||
bound(group,dir,region), gyration(group,region), ke(group,reigon),
|
||||
angmom(group,dim,region), torque(group,dim,region),
|
||||
inertia(group,dimdim,region), omega(group,dim,region)
|
||||
special functions = sum(x), min(x), max(x), ave(x), trap(x), slope(x), gmask(x), rmask(x), grmask(x,y), next(x), is_file(name), is_os(name), extract_setting(name), label2type(kind,label)
|
||||
feature functions = is_active(category,feature), is_available(category,feature), is_defined(category,id)
|
||||
special functions = sum(x), min(x), max(x), ave(x), trap(x), slope(x), gmask(x), rmask(x), grmask(x,y), next(x), is_file(name), is_os(name), extract_setting(name), label2type(kind,label), is_typelabel(kind,label)
|
||||
feature functions = is_available(category,feature), is_active(category,feature), is_defined(category,id)
|
||||
atom value = id[i], mass[i], type[i], mol[i], x[i], y[i], z[i], vx[i], vy[i], vz[i], fx[i], fy[i], fz[i], q[i]
|
||||
atom vector = id, mass, type, mol, radius, q, x, y, z, vx, vy, vz, fx, fy, fz
|
||||
compute references = c_ID, c_ID[i], c_ID[i][j], C_ID, C_ID[i]
|
||||
fix references = f_ID, f_ID[i], f_ID[i][j], F_ID, F_ID[i]
|
||||
variable references = v_name, v_name[i]
|
||||
vector initialization = [1,3,7,10] (for *vector* variables only)
|
||||
|
||||
Examples
|
||||
""""""""
|
||||
@ -95,6 +97,7 @@ Examples
|
||||
variable x universe 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
||||
variable x uloop 15 pad
|
||||
variable str format x %.6g
|
||||
variable myvec vector [1,3,7,10]
|
||||
variable x delete
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
@ -252,9 +255,10 @@ commands before the variable would become exhausted. For example,
|
||||
|
||||
----------
|
||||
|
||||
This section describes how all the various variable styles are defined
|
||||
and what they store. Except for the *equal* and *vector* and *atom*
|
||||
styles, which are explained in the next section.
|
||||
The next sections describe in how all the various variable styles are
|
||||
defined and what they store. The styles are listed alphabetically,
|
||||
except for the *equal* and *vector* and *atom* styles, which are
|
||||
explained together after all the others.
|
||||
|
||||
Many of the styles store one or more strings. Note that a single
|
||||
string can contain spaces (multiple words), if it is enclosed in
|
||||
@ -262,111 +266,7 @@ quotes in the variable command. When the variable is substituted for
|
||||
in another input script command, its returned string will then be
|
||||
interpreted as multiple arguments in the expanded command.
|
||||
|
||||
For the *index* style, one or more strings are specified. Initially,
|
||||
the first string is assigned to the variable. Each time a
|
||||
:doc:`next <next>` command is used with the variable name, the next
|
||||
string is assigned. All processors assign the same string to the
|
||||
variable.
|
||||
|
||||
Index-style variables with a single string value can also be set by
|
||||
using the :doc:`command-line switch -var <Run_options>`.
|
||||
|
||||
The *loop* style is identical to the *index* style except that the
|
||||
strings are the integers from 1 to N inclusive, if only one argument N
|
||||
is specified. This allows generation of a long list of runs
|
||||
(e.g. 1000) without having to list N strings in the input script.
|
||||
Initially, the string "1" is assigned to the variable. Each time a
|
||||
:doc:`next <next>` command is used with the variable name, the next
|
||||
string ("2", "3", etc) is assigned. All processors assign the same
|
||||
string to the variable. The *loop* style can also be specified with
|
||||
two arguments N1 and N2. In this case the loop runs from N1 to N2
|
||||
inclusive, and the string N1 is initially assigned to the variable.
|
||||
N1 <= N2 and N2 >= 0 is required.
|
||||
|
||||
For the *world* style, one or more strings are specified. There must
|
||||
be one string for each processor partition or "world". LAMMPS can be
|
||||
run with multiple partitions via the :doc:`-partition command-line
|
||||
switch <Run_options>`. This variable command assigns one string to
|
||||
each world. All processors in the world are assigned the same string.
|
||||
The next command cannot be used with equal-style variables, since
|
||||
there is only one value per world. This style of variable is useful
|
||||
when you wish to run different simulations on different partitions, or
|
||||
when performing a parallel tempering simulation (see the :doc:`temper
|
||||
<temper>` command), to assign different temperatures to different
|
||||
partitions.
|
||||
|
||||
For the *universe* style, one or more strings are specified. There
|
||||
must be at least as many strings as there are processor partitions or
|
||||
"worlds". LAMMPS can be run with multiple partitions via the
|
||||
:doc:`-partition command-line switch <Run_options>`. This variable
|
||||
command initially assigns one string to each world. When a
|
||||
:doc:`next <next>` command is encountered using this variable, the first
|
||||
processor partition to encounter it, is assigned the next available
|
||||
string. This continues until all the variable strings are consumed.
|
||||
Thus, this command can be used to run 50 simulations on 8 processor
|
||||
partitions. The simulations will be run one after the other on
|
||||
whatever partition becomes available, until they are all finished.
|
||||
Universe-style variables are incremented using the files
|
||||
"tmp.lammps.variable" and "tmp.lammps.variable.lock" which you will
|
||||
see in your directory during such a LAMMPS run.
|
||||
|
||||
The *uloop* style is identical to the *universe* style except that the
|
||||
strings are the integers from 1 to N. This allows generation of long
|
||||
list of runs (e.g. 1000) without having to list N strings in the input
|
||||
script.
|
||||
|
||||
For the *string* style, a single string is assigned to the variable.
|
||||
Two differences between this style and using the *index* style exist:
|
||||
a variable with *string* style can be redefined, e.g. by another command later
|
||||
in the input script, or if the script is read again in a loop. The other
|
||||
difference is that *string* performs variable substitution even if the
|
||||
string parameter is quoted.
|
||||
|
||||
For the *format* style, an equal-style or compatible variable is
|
||||
specified along with a C-style format string, e.g. "%f" or "%.10g",
|
||||
which must be appropriate for formatting a double-precision
|
||||
floating-point value and may not have extra characters. The default
|
||||
format is "%.15g". This variable style allows an equal-style variable
|
||||
to be formatted precisely when it is evaluated.
|
||||
|
||||
Note that if you simply wish to print a variable value with desired
|
||||
precision to the screen or logfile via the :doc:`print <print>` or
|
||||
:doc:`fix print <fix_print>` commands, you can also do this by
|
||||
specifying an "immediate" variable with a trailing colon and format
|
||||
string, as part of the string argument of those commands. This is
|
||||
explained on the :doc:`Commands parse <Commands_parse>` doc page.
|
||||
|
||||
For the *getenv* style, a single string is assigned to the variable
|
||||
which should be the name of an environment variable. When the
|
||||
variable is evaluated, it returns the value of the environment
|
||||
variable, or an empty string if it not defined. This style of
|
||||
variable can be used to adapt the behavior of LAMMPS input scripts via
|
||||
environment variable settings, or to retrieve information that has
|
||||
been previously stored with the :doc:`shell putenv <shell>` command.
|
||||
Note that because environment variable settings are stored by the
|
||||
operating systems, they persist even if the corresponding *getenv*
|
||||
style variable is deleted, and also are set for sub-shells executed
|
||||
by the :doc:`shell <shell>` command.
|
||||
|
||||
For the *file* style, a filename is provided which contains a list of
|
||||
strings to assign to the variable, one per line. The strings can be
|
||||
numeric values if desired. See the discussion of the next() function
|
||||
below for equal-style variables, which will convert the string of a
|
||||
file-style variable into a numeric value in a formula.
|
||||
|
||||
When a file-style variable is defined, the file is opened and the
|
||||
string on the first line is read and stored with the variable. This
|
||||
means the variable can then be evaluated as many times as desired and
|
||||
will return that string. There are two ways to cause the next string
|
||||
from the file to be read: use the :doc:`next <next>` command or the
|
||||
next() function in an equal- or atom-style variable, as discussed
|
||||
below.
|
||||
|
||||
The rules for formatting the file are as follows. A comment character
|
||||
"#" can be used anywhere on a line; text starting with the comment
|
||||
character is stripped. Blank lines are skipped. The first "word" of
|
||||
a non-blank line, delimited by white-space, is the "string" assigned
|
||||
to the variable.
|
||||
----------
|
||||
|
||||
For the *atomfile* style, a filename is provided which contains one or
|
||||
more sets of values, to assign on a per-atom basis to the variable.
|
||||
@ -406,6 +306,97 @@ will be assigned to that atom. IDs can be listed in any order.
|
||||
atoms is first set to 0.0. Thus values for atoms whose ID does not
|
||||
appear in the set, will remain 0.0.
|
||||
|
||||
----------
|
||||
|
||||
For the *file* style, a filename is provided which contains a list of
|
||||
strings to assign to the variable, one per line. The strings can be
|
||||
numeric values if desired. See the discussion of the next() function
|
||||
below for equal-style variables, which will convert the string of a
|
||||
file-style variable into a numeric value in a formula.
|
||||
|
||||
When a file-style variable is defined, the file is opened and the
|
||||
string on the first line is read and stored with the variable. This
|
||||
means the variable can then be evaluated as many times as desired and
|
||||
will return that string. There are two ways to cause the next string
|
||||
from the file to be read: use the :doc:`next <next>` command or the
|
||||
next() function in an equal- or atom-style variable, as discussed
|
||||
below.
|
||||
|
||||
The rules for formatting the file are as follows. A comment character
|
||||
"#" can be used anywhere on a line; text starting with the comment
|
||||
character is stripped. Blank lines are skipped. The first "word" of
|
||||
a non-blank line, delimited by white-space, is the "string" assigned
|
||||
to the variable.
|
||||
|
||||
----------
|
||||
|
||||
For the *format* style, an equal-style or compatible variable is
|
||||
specified along with a C-style format string, e.g. "%f" or "%.10g",
|
||||
which must be appropriate for formatting a double-precision
|
||||
floating-point value and may not have extra characters. The default
|
||||
format is "%.15g". This variable style allows an equal-style variable
|
||||
to be formatted precisely when it is evaluated.
|
||||
|
||||
Note that if you simply wish to print a variable value with desired
|
||||
precision to the screen or logfile via the :doc:`print <print>` or
|
||||
:doc:`fix print <fix_print>` commands, you can also do this by
|
||||
specifying an "immediate" variable with a trailing colon and format
|
||||
string, as part of the string argument of those commands. This is
|
||||
explained on the :doc:`Commands parse <Commands_parse>` doc page.
|
||||
|
||||
----------
|
||||
|
||||
For the *getenv* style, a single string is assigned to the variable
|
||||
which should be the name of an environment variable. When the
|
||||
variable is evaluated, it returns the value of the environment
|
||||
variable, or an empty string if it not defined. This style of
|
||||
variable can be used to adapt the behavior of LAMMPS input scripts via
|
||||
environment variable settings, or to retrieve information that has
|
||||
been previously stored with the :doc:`shell putenv <shell>` command.
|
||||
Note that because environment variable settings are stored by the
|
||||
operating systems, they persist even if the corresponding *getenv*
|
||||
style variable is deleted, and also are set for sub-shells executed
|
||||
by the :doc:`shell <shell>` command.
|
||||
|
||||
----------
|
||||
|
||||
For the *index* style, one or more strings are specified. Initially,
|
||||
the first string is assigned to the variable. Each time a
|
||||
:doc:`next <next>` command is used with the variable name, the next
|
||||
string is assigned. All processors assign the same string to the
|
||||
variable.
|
||||
|
||||
Index-style variables with a single string value can also be set by
|
||||
using the :doc:`command-line switch -var <Run_options>`.
|
||||
|
||||
----------
|
||||
|
||||
For the *internal* style a numeric value is provided. This value will
|
||||
be assigned to the variable until a LAMMPS command sets it to a new
|
||||
value. There are currently only two LAMMPS commands that require
|
||||
*internal* variables as inputs, because they reset them:
|
||||
:doc:`create_atoms <create_atoms>` and :doc:`fix controller
|
||||
<fix_controller>`. As mentioned above, an internal-style variable can
|
||||
be used in place of an equal-style variable anywhere else in an input
|
||||
script, e.g. as an argument to another command that allows for
|
||||
equal-style variables.
|
||||
|
||||
----------
|
||||
|
||||
The *loop* style is identical to the *index* style except that the
|
||||
strings are the integers from 1 to N inclusive, if only one argument N
|
||||
is specified. This allows generation of a long list of runs
|
||||
(e.g. 1000) without having to list N strings in the input script.
|
||||
Initially, the string "1" is assigned to the variable. Each time a
|
||||
:doc:`next <next>` command is used with the variable name, the next
|
||||
string ("2", "3", etc) is assigned. All processors assign the same
|
||||
string to the variable. The *loop* style can also be specified with
|
||||
two arguments N1 and N2. In this case the loop runs from N1 to N2
|
||||
inclusive, and the string N1 is initially assigned to the variable.
|
||||
N1 <= N2 and N2 >= 0 is required.
|
||||
|
||||
----------
|
||||
|
||||
For the *python* style a Python function name is provided. This needs
|
||||
to match a function name specified in a :doc:`python <python>` command
|
||||
which returns a value to this variable as defined by its *return*
|
||||
@ -433,25 +424,52 @@ python-style variable can be used in place of an equal-style variable
|
||||
anywhere in an input script, e.g. as an argument to another command
|
||||
that allows for equal-style variables.
|
||||
|
||||
For the *timer* style no additional argument is specified. The value of
|
||||
the variable is set by querying the current elapsed wall time of the
|
||||
simulation. This is done at the point in time when the variable is
|
||||
defined in the input script. If a second timer-style variable is also
|
||||
defined, then a simple formula can be used to calculate the elapsed time
|
||||
between the two timers, as in the example at the top of this manual
|
||||
entry. As mentioned above, timer-style variables can be redefined
|
||||
elsewhere in the input script, so the same pair of variables can be used
|
||||
in a loop or to time a series of operations.
|
||||
----------
|
||||
|
||||
For the *internal* style a numeric value is provided. This value will
|
||||
be assigned to the variable until a LAMMPS command sets it to a new
|
||||
value. There are currently only two LAMMPS commands that require
|
||||
*internal* variables as inputs, because they reset them:
|
||||
:doc:`create_atoms <create_atoms>` and :doc:`fix controller
|
||||
<fix_controller>`. As mentioned above, an internal-style variable can
|
||||
be used in place of an equal-style variable anywhere else in an input
|
||||
script, e.g. as an argument to another command that allows for
|
||||
equal-style variables.
|
||||
For the *string* style, a single string is assigned to the variable.
|
||||
Two differences between this style and using the *index* style exist:
|
||||
a variable with *string* style can be redefined, e.g. by another command later
|
||||
in the input script, or if the script is read again in a loop. The other
|
||||
difference is that *string* performs variable substitution even if the
|
||||
string parameter is quoted.
|
||||
|
||||
----------
|
||||
|
||||
The *uloop* style is identical to the *universe* style except that the
|
||||
strings are the integers from 1 to N. This allows generation of long
|
||||
list of runs (e.g. 1000) without having to list N strings in the input
|
||||
script.
|
||||
|
||||
----------
|
||||
|
||||
For the *universe* style, one or more strings are specified. There
|
||||
must be at least as many strings as there are processor partitions or
|
||||
"worlds". LAMMPS can be run with multiple partitions via the
|
||||
:doc:`-partition command-line switch <Run_options>`. This variable
|
||||
command initially assigns one string to each world. When a
|
||||
:doc:`next <next>` command is encountered using this variable, the first
|
||||
processor partition to encounter it, is assigned the next available
|
||||
string. This continues until all the variable strings are consumed.
|
||||
Thus, this command can be used to run 50 simulations on 8 processor
|
||||
partitions. The simulations will be run one after the other on
|
||||
whatever partition becomes available, until they are all finished.
|
||||
Universe-style variables are incremented using the files
|
||||
"tmp.lammps.variable" and "tmp.lammps.variable.lock" which you will
|
||||
see in your directory during such a LAMMPS run.
|
||||
|
||||
----------
|
||||
|
||||
For the *world* style, one or more strings are specified. There must
|
||||
be one string for each processor partition or "world". LAMMPS can be
|
||||
run with multiple partitions via the :doc:`-partition command-line
|
||||
switch <Run_options>`. This variable command assigns one string to
|
||||
each world. All processors in the world are assigned the same string.
|
||||
The next command cannot be used with equal-style variables, since
|
||||
there is only one value per world. This style of variable is useful
|
||||
when you wish to run different simulations on different partitions, or
|
||||
when performing a parallel tempering simulation (see the :doc:`temper
|
||||
<temper>` command), to assign different temperatures to different
|
||||
partitions.
|
||||
|
||||
----------
|
||||
|
||||
@ -495,36 +513,39 @@ is a valid (though strange) variable formula:
|
||||
|
||||
Specifically, a formula can contain numbers, constants, thermo
|
||||
keywords, math operators, math functions, group functions, region
|
||||
functions, atom values, atom vectors, compute references, fix
|
||||
references, and references to other variables.
|
||||
functions, special functions, feature functions, atom values, atom
|
||||
vectors, compute references, fix references, and references to other
|
||||
variables.
|
||||
|
||||
+--------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||||
| Number | 0.2, 100, 1.0e20, -15.4, etc |
|
||||
+--------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||||
| Constant | PI, version, on, off, true, false, yes, no |
|
||||
+--------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||||
| Thermo keywords | vol, pe, ebond, etc |
|
||||
+--------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||||
| Math operators | (), -x, x+y, x-y, x\*y, x/y, x\^y, x%y, x == y, x != y, x < y, x <= y, x > y, x >= y, x && y, x \|\| y, x \|\^ y, !x |
|
||||
+--------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||||
| Math functions | sqrt(x), exp(x), ln(x), log(x), abs(x), sin(x), cos(x), tan(x), asin(x), acos(x), atan(x), atan2(y,x), random(x,y,z), normal(x,y,z), ceil(x), floor(x), round(x), ramp(x,y), stagger(x,y), logfreq(x,y,z), logfreq2(x,y,z), logfreq3(x,y,z), stride(x,y,z), stride2(x,y,z,a,b,c), vdisplace(x,y), swiggle(x,y,z), cwiggle(x,y,z) |
|
||||
+--------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||||
| Group functions | count(ID), mass(ID), charge(ID), xcm(ID,dim), vcm(ID,dim), fcm(ID,dim), bound(ID,dir), gyration(ID), ke(ID), angmom(ID,dim), torque(ID,dim), inertia(ID,dimdim), omega(ID,dim) |
|
||||
+--------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||||
| Region functions | count(ID,IDR), mass(ID,IDR), charge(ID,IDR), xcm(ID,dim,IDR), vcm(ID,dim,IDR), fcm(ID,dim,IDR), bound(ID,dir,IDR), gyration(ID,IDR), ke(ID,IDR), angmom(ID,dim,IDR), torque(ID,dim,IDR), inertia(ID,dimdim,IDR), omega(ID,dim,IDR) |
|
||||
+--------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||||
| Special functions | sum(x), min(x), max(x), ave(x), trap(x), slope(x), gmask(x), rmask(x), grmask(x,y), next(x), label2type(kind,label) |
|
||||
+--------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||||
| Atom values | id[i], mass[i], type[i], mol[i], x[i], y[i], z[i], vx[i], vy[i], vz[i], fx[i], fy[i], fz[i], q[i] |
|
||||
+--------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||||
| Atom vectors | id, mass, type, mol, x, y, z, vx, vy, vz, fx, fy, fz, q |
|
||||
+--------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||||
| Compute references | c_ID, c_ID[i], c_ID[i][j], C_ID, C_ID[i] |
|
||||
+--------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||||
| Fix references | f_ID, f_ID[i], f_ID[i][j], F_ID, F_ID[i] |
|
||||
+--------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||||
| Other variables | v_name, v_name[i] |
|
||||
+--------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||||
+--------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||||
| Number | 0.2, 100, 1.0e20, -15.4, etc |
|
||||
+--------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||||
| Constant | PI, version, on, off, true, false, yes, no |
|
||||
+--------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||||
| Thermo keywords | vol, pe, ebond, etc |
|
||||
+--------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||||
| Math operators | (), -x, x+y, x-y, x\*y, x/y, x\^y, x%y, x == y, x != y, x < y, x <= y, x > y, x >= y, x && y, x \|\| y, x \|\^ y, !x |
|
||||
+--------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||||
| Math functions | sqrt(x), exp(x), ln(x), log(x), abs(x), sin(x), cos(x), tan(x), asin(x), acos(x), atan(x), atan2(y,x), random(x,y,z), normal(x,y,z), ceil(x), floor(x), round(x), ramp(x,y), stagger(x,y), logfreq(x,y,z), logfreq2(x,y,z), logfreq3(x,y,z), stride(x,y,z), stride2(x,y,z,a,b,c), vdisplace(x,y), swiggle(x,y,z), cwiggle(x,y,z) |
|
||||
+--------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||||
| Group functions | count(ID), mass(ID), charge(ID), xcm(ID,dim), vcm(ID,dim), fcm(ID,dim), bound(ID,dir), gyration(ID), ke(ID), angmom(ID,dim), torque(ID,dim), inertia(ID,dimdim), omega(ID,dim) |
|
||||
+--------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||||
| Region functions | count(ID,IDR), mass(ID,IDR), charge(ID,IDR), xcm(ID,dim,IDR), vcm(ID,dim,IDR), fcm(ID,dim,IDR), bound(ID,dir,IDR), gyration(ID,IDR), ke(ID,IDR), angmom(ID,dim,IDR), torque(ID,dim,IDR), inertia(ID,dimdim,IDR), omega(ID,dim,IDR) |
|
||||
+--------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||||
| Special functions | sum(x), min(x), max(x), ave(x), trap(x), slope(x), gmask(x), rmask(x), grmask(x,y), next(x), is_file(name), is_os(name), extract_setting(name), label2type(kind,label), is_typelabel(kind,label) |
|
||||
+--------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||||
| Feature functions | is_available(category,feature), is_active(category,feature), is_defined(category,id) |
|
||||
+--------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||||
| Atom values | id[i], mass[i], type[i], mol[i], x[i], y[i], z[i], vx[i], vy[i], vz[i], fx[i], fy[i], fz[i], q[i] |
|
||||
+--------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||||
| Atom vectors | id, mass, type, mol, x, y, z, vx, vy, vz, fx, fy, fz, q |
|
||||
+--------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||||
| Compute references | c_ID, c_ID[i], c_ID[i][j], C_ID, C_ID[i] |
|
||||
+--------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||||
| Fix references | f_ID, f_ID[i], f_ID[i][j], F_ID, F_ID[i] |
|
||||
+--------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||||
| Other variables | v_name, v_name[i] |
|
||||
+--------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||||
|
||||
Most of the formula elements produce a scalar value. Some produce a
|
||||
global or per-atom vector of values. Global vectors can be produced
|
||||
@ -574,9 +595,9 @@ will not work, since the *version* has been introduced more recently):
|
||||
if $(version<20140513) then "communicate vel yes" else "comm_modify vel yes"
|
||||
|
||||
The thermo keywords allowed in a formula are those defined by the
|
||||
:doc:`thermo_style custom <thermo_style>` command. Thermo keywords that
|
||||
require a :doc:`compute <compute>` to calculate their values such as
|
||||
"temp" or "press", use computes stored and invoked by the
|
||||
:doc:`thermo_style custom <thermo_style>` command. Thermo keywords
|
||||
that require a :doc:`compute <compute>` to calculate their values such
|
||||
as "temp" or "press", use computes stored and invoked by the
|
||||
:doc:`thermo_style <thermo_style>` command. This means that you can
|
||||
only use those keywords in a variable if the style you are using with
|
||||
the thermo_style command (and the thermo keywords associated with that
|
||||
@ -714,10 +735,12 @@ new timestep. X,y,z > 0 and y < z are required. The generated
|
||||
timesteps are on a base-z logarithmic scale, starting with x, and the
|
||||
y value is how many of the z-1 possible timesteps within one
|
||||
logarithmic interval are generated. I.e. the timesteps follow the
|
||||
sequence x,2x,3x,...y\*x,x\*z,2x\*z,3x\*z,...y\*x\*z,x\*z\^2,2x\*z\^2,etc. For
|
||||
sequence
|
||||
x,2x,3x,...y\*x,x\*z,2x\*z,3x\*z,...y\*x\*z,x\*z\^2,2x\*z\^2,etc. For
|
||||
any current timestep, the next timestep in the sequence is returned.
|
||||
Thus if logfreq(100,4,10) is used in a variable by the :doc:`dump_modify every <dump_modify>` command, it will generate this sequence of
|
||||
output timesteps:
|
||||
Thus if logfreq(100,4,10) is used in a variable by the
|
||||
:doc:`dump_modify every <dump_modify>` command, it will generate this
|
||||
sequence of output timesteps:
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
@ -726,9 +749,10 @@ output timesteps:
|
||||
The logfreq2(x,y,z) function is similar to logfreq, except a single
|
||||
logarithmic interval is divided into y equally-spaced timesteps and
|
||||
all of them are output. Y < z is not required. Thus, if
|
||||
logfreq2(100,18,10) is used in a variable by the :doc:`dump_modify every <dump_modify>` command, then the interval between 100 and
|
||||
1000 is divided as 900/18 = 50 steps, and it will generate the
|
||||
sequence of output timesteps:
|
||||
logfreq2(100,18,10) is used in a variable by the :doc:`dump_modify
|
||||
every <dump_modify>` command, then the interval between 100 and 1000
|
||||
is divided as 900/18 = 50 steps, and it will generate the sequence of
|
||||
output timesteps:
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
@ -970,53 +994,94 @@ types, bond types and so on. For the full list of available keywords
|
||||
*name* and their meaning, see the documentation for extract_setting()
|
||||
via the link in this paragraph.
|
||||
|
||||
The label2type() function converts type labels into numeric types, using label
|
||||
maps created by the :doc:`labelmap <labelmap>` or :doc:`read_data <read_data>`
|
||||
commands. The first argument is the label map kind (atom, bond, angle,
|
||||
dihedral, or improper) and the second argument is the label. The function
|
||||
returns the corresponding numeric type.
|
||||
The label2type(kind,label) function converts type labels into numeric
|
||||
types, using label maps created by the :doc:`labelmap <labelmap>` or
|
||||
:doc:`read_data <read_data>` commands. The first argument is the label
|
||||
map kind (atom, bond, angle, dihedral, or improper) and the second
|
||||
argument is the label. The function returns the corresponding numeric
|
||||
type or triggers an error if the queried label does not exist.
|
||||
|
||||
.. versionadded:: TBD
|
||||
|
||||
The is_typelabel(kind,label) function has the same arguments as
|
||||
label2type(), but returns 1 if the type label has been assigned,
|
||||
otherwise it returns 0. This function can be used to check if a
|
||||
particular type label already exists in the simulation.
|
||||
|
||||
----------
|
||||
|
||||
Feature Functions
|
||||
-----------------
|
||||
|
||||
Feature functions allow to probe the running LAMMPS executable for
|
||||
whether specific features are either active, defined, or available. The
|
||||
functions take two arguments, a *category* and a corresponding
|
||||
*argument*\ . The arguments are strings and thus cannot be formulas
|
||||
Feature functions allow probing of the running LAMMPS executable for
|
||||
whether specific features are available, active, or defined. All 3 of
|
||||
the functions take two arguments, a *category* and a category-specific
|
||||
second argument. Both are strings and thus cannot be formulas
|
||||
themselves; only $-style immediate variable expansion is possible.
|
||||
Return value is either 1.0 or 0.0 depending on whether the function
|
||||
evaluates to true or false, respectively.
|
||||
The return value of the functions is either 1.0 or 0.0 depending on
|
||||
whether the function evaluates to true or false, respectively.
|
||||
|
||||
The *is_active(category,feature)* function allows to query for active
|
||||
settings which are grouped by categories. Currently supported categories
|
||||
and arguments are:
|
||||
The *is_available(category,name)* function queries whether a specific
|
||||
feature is available in the LAMMPS executable that is being run, i.e
|
||||
whether it was included or enabled at compile time.
|
||||
|
||||
* *package*\ : argument = *gpu* or *intel* or *kokkos* or *omp*
|
||||
* *newton*\ : argument = *pair* or *bond* or *any*
|
||||
* *pair*\ : argument = *single* or *respa* or *manybody* or *tail* or *shift*
|
||||
* *comm_style*\ : argument = *brick* or *tiled*
|
||||
* *min_style*\ : argument = any of the compiled in minimizer styles
|
||||
* *run_style*\ : argument = any of the compiled in run styles
|
||||
* *atom_style*\ : argument = any of the compiled in atom style)
|
||||
* *pair_style*\ : argument = any of the compiled in pair styles
|
||||
* *bond_style*\ : argument = any of the compiled in bond styles
|
||||
* *angle_style*\ : argument = any of the compiled in angle styles
|
||||
* *dihedral_style*\ : argument = any of the compiled in dihedral styles
|
||||
* *improper_style*\ : argument = any of the compiled in improper styles
|
||||
* *kspace_style*\ : argument = any of the compiled in kspace styles
|
||||
This supports the following categories: *command*, *compute*, *fix*,
|
||||
*pair_style* and *feature*\ . For all the categories except *feature*
|
||||
the *name* is a style name, e.g. *nve* for the *fix* category. Note
|
||||
that many LAMMPS input script commands such as *create_atoms* are
|
||||
actually instances of a command style which LAMMPS defines, as opposed
|
||||
to built-in commands. For all of these styles except *command*,
|
||||
appending of active suffixes is also tried before reporting failure.
|
||||
|
||||
Most of the settings are self-explanatory, the *single* argument in the
|
||||
*pair* category allows to check whether a pair style supports a
|
||||
Pair::single() function as needed by compute group/group and others
|
||||
features or LAMMPS, *respa* allows to check whether the inner/middle/outer
|
||||
mode of r-RESPA is supported. In the various style categories,
|
||||
the checking is also done using suffix flags, if available and enabled.
|
||||
The *feature* category checks the availability of the following
|
||||
compile-time enabled features: GZIP support, PNG support, JPEG
|
||||
support, FFMPEG support, and C++ exceptions for error
|
||||
handling. Corresponding names are *gzip*, *png*, *jpeg*, *ffmpeg* and
|
||||
*exceptions*\ .
|
||||
|
||||
Example 1: disable use of suffix for pppm when using GPU package
|
||||
(i.e. run it on the CPU concurrently to running the pair style on the
|
||||
GPU), but do use the suffix otherwise (e.g. with OPENMP).
|
||||
Example: Only dump in a given format if the compiled binary supports it.
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
if "$(is_available(feature,png))" then "print 'PNG supported'" else "print 'PNG not supported'"
|
||||
if "$(is_available(feature,ffmpeg)" then "dump 3 all movie 25 movie.mp4 type type zoom 1.6 adiam 1.0"
|
||||
|
||||
The *is_active(category,feature)* function queries whether a specific
|
||||
feature is currently active within LAMMPS. The features are grouped
|
||||
by categories. Supported categories and features are:
|
||||
|
||||
* *package*\ : features = *gpu* or *intel* or *kokkos* or *omp*
|
||||
* *newton*\ : features = *pair* or *bond* or *any*
|
||||
* *pair*\ : features = *single* or *respa* or *manybody* or *tail* or *shift*
|
||||
* *comm_style*\ : features = *brick* or *tiled*
|
||||
* *min_style*\ : features = a minimizer style name
|
||||
* *run_style*\ : features = a run style name
|
||||
* *atom_style*\ : features = an atom style name
|
||||
* *pair_style*\ : features = a pair style name
|
||||
* *bond_style*\ : features = a bond style name
|
||||
* *angle_style*\ : features = an angle style name
|
||||
* *dihedral_style*\ : features = a dihedral style name
|
||||
* *improper_style*\ : features = an improper style name
|
||||
* *kspace_style*\ : features = a kspace style name
|
||||
|
||||
Most of the settings are self-explanatory. For the *package*
|
||||
category, a package may have been included in the LAMMPS build, but
|
||||
not have enabled by any input script command, and hence be inactive.
|
||||
The *single* feature in the *pair* category checks whether the
|
||||
currently defined pair style supports a Pair::single() function as
|
||||
needed by compute group/group and others features or LAMMPS.
|
||||
Similarly, the *respa* feature checks whether the inner/middle/outer
|
||||
mode of r-RESPA is supported by the current pair style.
|
||||
|
||||
For the categories with *style* in their name, only a single instance
|
||||
of the style is ever active at any time in a LAMMPS simulation. Thus
|
||||
the check is whether the currently active style matches the specified
|
||||
name. This check is also done using suffix flags, if available and
|
||||
enabled.
|
||||
|
||||
Example 1: Disable use of suffix for PPPM when using GPU package
|
||||
(i.e. run it on the CPU concurrently while running the pair style on
|
||||
the GPU), but do use the suffix otherwise (e.g. with OPENMP).
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
@ -1024,39 +1089,23 @@ GPU), but do use the suffix otherwise (e.g. with OPENMP).
|
||||
if $(is_active(package,gpu)) then "suffix off"
|
||||
kspace_style pppm
|
||||
|
||||
Example 2: use r-RESPA with inner/outer cutoff, if supported by pair
|
||||
style, otherwise fall back to using pair and reducing the outer time
|
||||
step
|
||||
Example 2: Use r-RESPA with inner/outer cutoff, if supported by the
|
||||
current pair style, otherwise fall back to using r-RESPA with simply
|
||||
the pair keyword and reducing the outer time step.
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
timestep $(2.0*(1.0+2.0*is_active(pair,respa)))
|
||||
if $(is_active(pair,respa)) then "run_style respa 4 3 2 2 improper 1 inner 2 5.5 7.0 outer 3 kspace 4" else "run_style respa 3 3 2 improper 1 pair 2 kspace 3"
|
||||
if $(is_active(pair,respa)) then "run_style respa 4 3 2 2 improper 1 inner 2 5.5 7.0 outer 3 kspace 4" else "run_style respa 3 3 2 improper 1 pair 2 kspace 3"
|
||||
|
||||
The *is_available(category,name)* function allows to query whether
|
||||
a specific optional feature is available, i.e. compiled in.
|
||||
This currently works for the following categories: *command*,
|
||||
*compute*, *fix*, *pair_style* and *feature*\ . For all categories
|
||||
except *command* and *feature* also appending active suffixes is
|
||||
tried before reporting failure.
|
||||
|
||||
The *feature* category is used to check the availability of compiled in
|
||||
features such as GZIP support, PNG support, JPEG support, FFMPEG support,
|
||||
and C++ exceptions for error handling. Corresponding values for name are
|
||||
*gzip*, *png*, *jpeg*, *ffmpeg* and *exceptions*\ .
|
||||
|
||||
This enables writing input scripts which only dump using a given format if
|
||||
the compiled binary supports it.
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
if "$(is_available(feature,png))" then "print 'PNG supported'" else "print 'PNG not supported'"
|
||||
|
||||
if "$(is_available(feature,ffmpeg)" then "dump 3 all movie 25 movie.mp4 type type zoom 1.6 adiam 1.0"
|
||||
|
||||
The *is_defined(categoy,id)* function allows to query categories like
|
||||
*compute*, *dump*, *fix*, *group*, *region*, and *variable* whether an
|
||||
entry with the provided name or id is defined.
|
||||
The *is_defined(category,id)* function checks whether an instance of a
|
||||
style or variable with a specific ID or name is currently defined
|
||||
within LAMMPS. The supported categories are *compute*, *dump*,
|
||||
*fix*, *group*, *region*, and *variable*. Each of these styles (as
|
||||
well as the variable command) can be specified multiple times within
|
||||
LAMMPS, each with a unique *id*. This function checks whether the
|
||||
specified *id* exists. For category *variable", the *id* is the
|
||||
variable name.
|
||||
|
||||
----------
|
||||
|
||||
@ -1268,6 +1317,35 @@ Vectors" discussion above.
|
||||
|
||||
----------
|
||||
|
||||
Vector Initialization
|
||||
---------------------
|
||||
|
||||
.. versionadded:: TBD
|
||||
|
||||
*Vector*-style variables only can be initialized with a special
|
||||
syntax, instead of using a formula. The syntax is a bracketed,
|
||||
comma-separated syntax like the following:
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
variable myvec vector [1,3.5,7,10.2]
|
||||
|
||||
The 3rd argument formula is replaced by the vector values in brackets,
|
||||
separated by commas. This example creates a 4-length vector with
|
||||
specific numeric values, each of which can be specified as an integer
|
||||
or floating point value. Note that while whitespace can be added
|
||||
before or after individual values, no other mathematical operations
|
||||
can be specified. E.g. "3*10" or "3*v_abc" are not valid vector
|
||||
elements, nor is "10*[1,2,3,4]" valid for the entire vector.
|
||||
|
||||
Unlike vector variables specified with formulas, this vector variable
|
||||
is static; its length and values never changes. Its values can be
|
||||
used in other commands (including vector-style variables specified
|
||||
with formulas) via the usual syntax for accessing individual vector
|
||||
elements or the entire vector.
|
||||
|
||||
----------
|
||||
|
||||
Immediate Evaluation of Variables
|
||||
"""""""""""""""""""""""""""""""""
|
||||
|
||||
@ -1285,18 +1363,19 @@ with a leading $ sign (e.g. $x or ${abc}) versus with a leading "v\_"
|
||||
(e.g. v_x or v_abc). The former can be used in any input script
|
||||
command, including a variable command. The input script parser
|
||||
evaluates the reference variable immediately and substitutes its value
|
||||
into the command. As explained on the :doc:`Commands parse <Commands_parse>` doc page, you can also use un-named
|
||||
"immediate" variables for this purpose. For example, a string like
|
||||
this $((xlo+xhi)/2+sqrt(v_area)) in an input script command evaluates
|
||||
the string between the parenthesis as an equal-style variable formula.
|
||||
into the command. As explained on the :doc:`Commands parse
|
||||
<Commands_parse>` doc page, you can also use un-named "immediate"
|
||||
variables for this purpose. For example, a string like this
|
||||
$((xlo+xhi)/2+sqrt(v_area)) in an input script command evaluates the
|
||||
string between the parenthesis as an equal-style variable formula.
|
||||
|
||||
Referencing a variable with a leading "v\_" is an optional or required
|
||||
kind of argument for some commands (e.g. the :doc:`fix ave/chunk <fix_ave_chunk>` or :doc:`dump custom <dump>` or
|
||||
:doc:`thermo_style <thermo_style>` commands) if you wish it to evaluate
|
||||
a variable periodically during a run. It can also be used in a
|
||||
variable formula if you wish to reference a second variable. The
|
||||
second variable will be evaluated whenever the first variable is
|
||||
evaluated.
|
||||
kind of argument for some commands (e.g. the :doc:`fix ave/chunk
|
||||
<fix_ave_chunk>` or :doc:`dump custom <dump>` or :doc:`thermo_style
|
||||
<thermo_style>` commands) if you wish it to evaluate a variable
|
||||
periodically during a run. It can also be used in a variable formula
|
||||
if you wish to reference a second variable. The second variable will
|
||||
be evaluated whenever the first variable is evaluated.
|
||||
|
||||
As an example, suppose you use this command in your input script to
|
||||
define the variable "v" as
|
||||
@ -1309,8 +1388,9 @@ before a run where the simulation box size changes. You might think
|
||||
this will assign the initial volume to the variable "v". That is not
|
||||
the case. Rather it assigns a formula which evaluates the volume
|
||||
(using the thermo_style keyword "vol") to the variable "v". If you
|
||||
use the variable "v" in some other command like :doc:`fix ave/time <fix_ave_time>` then the current volume of the box will be
|
||||
evaluated continuously during the run.
|
||||
use the variable "v" in some other command like :doc:`fix ave/time
|
||||
<fix_ave_time>` then the current volume of the box will be evaluated
|
||||
continuously during the run.
|
||||
|
||||
If you want to store the initial volume of the system, you can do it
|
||||
this way:
|
||||
@ -1347,132 +1427,75 @@ will occur when the formula for "vratio" is evaluated later.
|
||||
Variable Accuracy
|
||||
"""""""""""""""""
|
||||
|
||||
Obviously, LAMMPS attempts to evaluate variables containing formulas
|
||||
(\ *equal* and *atom* style variables) accurately whenever the
|
||||
evaluation is performed. Depending on what is included in the
|
||||
formula, this may require invoking a :doc:`compute <compute>`, either
|
||||
directly or indirectly via a thermo keyword, or accessing a value
|
||||
previously calculated by a compute, or accessing a value calculated
|
||||
and stored by a :doc:`fix <fix>`. If the compute is one that calculates
|
||||
the pressure or energy of the system, then these quantities need to be
|
||||
tallied during the evaluation of the interatomic potentials (pair,
|
||||
bond, etc) on timesteps that the variable will need the values.
|
||||
Obviously, LAMMPS attempts to evaluate variables which contain
|
||||
formulas (\ *equal* and *vector* and *atom* style variables)
|
||||
accurately whenever the evaluation is performed. Depending on what is
|
||||
included in the formula, this may require invoking a :doc:`compute
|
||||
<compute>`, either directly or indirectly via a thermo keyword, or
|
||||
accessing a value previously calculated by a compute, or accessing a
|
||||
value calculated and stored by a :doc:`fix <fix>`. If the compute is
|
||||
one that calculates the energy or pressure of the system, then the
|
||||
corresponding energy or virial quantities need to be tallied during
|
||||
the evaluation of the interatomic potentials (pair, bond, etc) on any
|
||||
timestep that the variable needs the tallies. An input script can
|
||||
also request variables be evaluated before or after or in between
|
||||
runs, e.g. by including them in a :doc:`print <print>` command.
|
||||
|
||||
LAMMPS keeps track of all of this during a :doc:`run <run>` or :doc:`energy minimization <minimize>`. An error will be generated if you
|
||||
attempt to evaluate a variable on timesteps when it cannot produce
|
||||
accurate values. For example, if a :doc:`thermo_style custom <thermo_style>` command prints a variable which accesses
|
||||
values stored by a :doc:`fix ave/time <fix_ave_time>` command and the
|
||||
timesteps on which thermo output is generated are not multiples of the
|
||||
averaging frequency used in the fix command, then an error will occur.
|
||||
LAMMPS keeps track of all of this as it performs a doc:`run <run>` or
|
||||
:doc:`minimize <minimize>` simulation, as well as in between
|
||||
simulations. An error will be generated if you attempt to evaluate a
|
||||
variable when LAMMPS knows it cannot produce accurate values. For
|
||||
example, if a :doc:`thermo_style custom <thermo_style>` command prints
|
||||
a variable which accesses values stored by a :doc:`fix ave/time
|
||||
<fix_ave_time>` command and the timesteps on which thermo output is
|
||||
generated are not multiples of the averaging frequency used in the fix
|
||||
command, then an error will occur.
|
||||
|
||||
An input script can also request variables be evaluated before or
|
||||
after or in between runs, e.g. by including them in a
|
||||
:doc:`print <print>` command. In this case, if a compute is needed to
|
||||
evaluate a variable (either directly or indirectly), LAMMPS will not
|
||||
invoke the compute, but it will use a value previously calculated by
|
||||
the compute, and can do this only if it was invoked on the current
|
||||
timestep. Fixes will always provide a quantity needed by a variable,
|
||||
but the quantity may or may not be current. This leads to one of
|
||||
three kinds of behavior:
|
||||
However, there are two special cases to be aware when a variable
|
||||
requires invocation of a compute (directly or indirectly). The first
|
||||
is if the variable is evaluated before the first doc:`run <run>` or
|
||||
:doc:`minimize <minimize>` command in the input script. In this case,
|
||||
LAMMPS will generate an error. This is because many computes require
|
||||
initializations which have not yet taken place. One example is the
|
||||
calculation of degrees of freedom for temperature computes. Another
|
||||
example are the computes mentioned above which require tallying of
|
||||
energy or virial quantities; these values are not tallied until the
|
||||
first simulation begins.
|
||||
|
||||
(1) The variable may be evaluated accurately. If it contains
|
||||
references to a compute or fix, and these values were calculated on
|
||||
the last timestep of a preceding run, then they will be accessed and
|
||||
used by the variable and the result will be accurate.
|
||||
The second special case is when a variable that depends on a compute
|
||||
is evaluated in between doc:`run <run>` or :doc:`minimize <minimize>`
|
||||
commands. It is possible for other input script commands issued
|
||||
following the previous run, but before the variable is evaluated, to
|
||||
change the system. For example, the doc:`delete_atoms <delete_atoms>`
|
||||
command could be used to remove atoms. Since the compute will not
|
||||
re-initialize itself until the next simulation or it may depend on
|
||||
energy/virial computations performed before the system was changed, it
|
||||
will potentially generate an incorrect answer when evaluated. Note
|
||||
that LAMMPS will not generate an error in this case; the evaluated
|
||||
variable may simply be incorrect.
|
||||
|
||||
(2) LAMMPS may not be able to evaluate the variable and will generate
|
||||
an error message stating so. For example, if the variable requires a
|
||||
quantity from a :doc:`compute <compute>` that has not been invoked on
|
||||
the current timestep, LAMMPS will generate an error. This means, for
|
||||
example, that such a variable cannot be evaluated before the first run
|
||||
has occurred. Likewise, in between runs, a variable containing a
|
||||
compute cannot be evaluated unless the compute was invoked on the last
|
||||
timestep of the preceding run, e.g. by thermodynamic output.
|
||||
|
||||
One way to get around this problem is to perform a 0-timestep run
|
||||
before using the variable. For example, these commands
|
||||
The way to get around both of these special cases is to perform a
|
||||
0-timestep run before evaluating the variable. For example, these
|
||||
commands
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
variable t equal temp
|
||||
print "Initial temperature = $t"
|
||||
# delete_atoms random fraction 0.5 yes all NULL 49839
|
||||
# run 0
|
||||
variable t equal temp # this thermo keyword invokes a temperature compute
|
||||
print "Temperature of system = $t"
|
||||
run 1000
|
||||
|
||||
will generate an error if the run is the first run specified in the
|
||||
input script, because generating a value for the "t" variable requires
|
||||
a compute for calculating the temperature to be invoked.
|
||||
will generate an error if the "run 1000" command is the first
|
||||
simulation in the input script. If there were a previous run, these
|
||||
commands will print the correct temperature of the system. But if the
|
||||
:doc:`delete_atoms <delete_atoms>` command is uncommented, the printed
|
||||
temperature will be incorrect, because information stored by
|
||||
temperature compute is no longer valid.
|
||||
|
||||
However, this sequence of commands would be fine:
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
run 0
|
||||
variable t equal temp
|
||||
print "Initial temperature = $t"
|
||||
run 1000
|
||||
|
||||
The 0-timestep run initializes and invokes various computes, including
|
||||
the one for temperature, so that the value it stores is current and
|
||||
can be accessed by the variable "t" after the run has completed. Note
|
||||
that a 0-timestep run does not alter the state of the system, so it
|
||||
does not change the input state for the 1000-timestep run that
|
||||
follows. Also note that the 0-timestep run must actually use and
|
||||
invoke the compute in question (e.g. via :doc:`thermo <thermo_style>` or
|
||||
:doc:`dump <dump>` output) in order for it to enable the compute to be
|
||||
used in a variable after the run. Thus if you are trying to print a
|
||||
variable that uses a compute you have defined, you can ensure it is
|
||||
invoked on the last timestep of the preceding run by including it in
|
||||
thermodynamic output.
|
||||
|
||||
Unlike computes, :doc:`fixes <fix>` will never generate an error if
|
||||
their values are accessed by a variable in between runs. They always
|
||||
return some value to the variable. However, the value may not be what
|
||||
you expect if the fix has not yet calculated the quantity of interest
|
||||
or it is not current. For example, the :doc:`fix indent <fix_indent>`
|
||||
command stores the force on the indenter. But this is not computed
|
||||
until a run is performed. Thus if a variable attempts to print this
|
||||
value before the first run, zeroes will be output. Again, performing
|
||||
a 0-timestep run before printing the variable has the desired effect.
|
||||
|
||||
(3) The variable may be evaluated incorrectly and LAMMPS may have no
|
||||
way to detect this has occurred. Consider the following sequence of
|
||||
commands:
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
pair_coeff 1 1 1.0 1.0
|
||||
run 1000
|
||||
pair_coeff 1 1 1.5 1.0
|
||||
variable e equal pe
|
||||
print "Final potential energy = $e"
|
||||
|
||||
The first run is performed using one setting for the pairwise
|
||||
potential defined by the :doc:`pair_style <pair_style>` and
|
||||
:doc:`pair_coeff <pair_coeff>` commands. The potential energy is
|
||||
evaluated on the final timestep and stored by the :doc:`compute pe
|
||||
<compute_pe>` compute (this is done by the :doc:`thermo_style
|
||||
<thermo_style>` command). Then a pair coefficient is changed,
|
||||
altering the potential energy of the system. When the potential
|
||||
energy is printed via the "e" variable, LAMMPS will use the potential
|
||||
energy value stored by the :doc:`compute pe <compute_pe>` compute,
|
||||
thinking it is current. There are many other commands which could
|
||||
alter the state of the system between runs, causing a variable to
|
||||
evaluate incorrectly.
|
||||
|
||||
The solution to this issue is the same as for case (2) above, namely
|
||||
perform a 0-timestep run before the variable is evaluated to ensure
|
||||
the system is up-to-date. For example, this sequence of commands
|
||||
would print a potential energy that reflected the changed pairwise
|
||||
coefficient:
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
pair_coeff 1 1 1.0 1.0
|
||||
run 1000
|
||||
pair_coeff 1 1 1.5 1.0
|
||||
run 0
|
||||
variable e equal pe
|
||||
print "Final potential energy = $e"
|
||||
Both these issues are resolved, if the "run 0" command is uncommented.
|
||||
This is because the "run 0" simulation will initialize (or
|
||||
re-initialize) the temperature compute correctly.
|
||||
|
||||
----------
|
||||
|
||||
@ -1482,11 +1505,12 @@ Restrictions
|
||||
Indexing any formula element by global atom ID, such as an atom value,
|
||||
requires the :doc:`atom style <atom_style>` to use a global mapping in
|
||||
order to look up the vector indices. By default, only atom styles
|
||||
with molecular information create global maps. The :doc:`atom_modify map <atom_modify>` command can override the default, e.g. for
|
||||
with molecular information create global maps. The :doc:`atom_modify
|
||||
map <atom_modify>` command can override the default, e.g. for
|
||||
atomic-style atom styles.
|
||||
|
||||
All *universe*\ - and *uloop*\ -style variables defined in an input script
|
||||
must have the same number of values.
|
||||
All *universe*\ - and *uloop*\ -style variables defined in an input
|
||||
script must have the same number of values.
|
||||
|
||||
Related commands
|
||||
""""""""""""""""
|
||||
|
||||
@ -227,6 +227,8 @@ for header in headers:
|
||||
register_style(reader,style,info)
|
||||
elif m[0] == 'Region':
|
||||
register_style(region,style,info)
|
||||
elif m[0] == 'GranSubMod':
|
||||
pass # ignore GranSubMod styles for now
|
||||
else:
|
||||
print("Skipping over: ",m)
|
||||
|
||||
|
||||
@ -1,8 +1,8 @@
|
||||
Sphinx < 6.0.0
|
||||
Sphinx >= 5.3.0, <7.1.0
|
||||
sphinxcontrib-spelling
|
||||
sphinxcontrib-jquery >=3.0.0
|
||||
sphinxcontrib-jquery
|
||||
git+https://github.com/akohlmey/sphinx-fortran@parallel-read
|
||||
sphinx_tabs
|
||||
git+https://github.com/executablebooks/sphinx-tabs@v3.4.1
|
||||
breathe
|
||||
Pygments
|
||||
six
|
||||
|
||||
@ -12,7 +12,7 @@ from sphinx.locale import _
|
||||
from sphinx.util.logging import getLogger
|
||||
|
||||
|
||||
__version__ = '1.1.1'
|
||||
__version__ = '1.2.0'
|
||||
__version_full__ = __version__
|
||||
|
||||
logger = getLogger(__name__)
|
||||
@ -40,15 +40,24 @@ def extend_html_context(app, pagename, templatename, context, doctree):
|
||||
# See http://www.sphinx-doc.org/en/stable/theming.html#distribute-your-theme-as-a-python-package
|
||||
def setup(app):
|
||||
if python_version[0] < 3:
|
||||
logger.warning("Python 2 is deprecated with sphinx_rtd_theme, update to Python 3")
|
||||
logger.warning("Python 2 is deprecated with lammps_theme, update to Python 3")
|
||||
app.require_sphinx('1.6')
|
||||
if sphinx_version <= (2, 0, 0):
|
||||
logger.warning("Sphinx 1.x is deprecated with sphinx_rtd_theme, update to Sphinx 2.x or greater")
|
||||
logger.warning("Sphinx 1.x is deprecated with lammps_theme, update to Sphinx 2.x or greater")
|
||||
if not app.config.html_experimental_html5_writer:
|
||||
logger.warning("'html4_writer' is deprecated with sphinx_rtd_theme")
|
||||
logger.warning("'html4_writer' is deprecated with lammps_theme")
|
||||
else:
|
||||
if app.config.html4_writer:
|
||||
logger.warning("'html4_writer' is deprecated with sphinx_rtd_theme")
|
||||
logger.warning("'html4_writer' is deprecated with lammps_theme")
|
||||
|
||||
# Since Sphinx 6, jquery isn't bundled anymore and we need to ensure that
|
||||
# the sphinxcontrib-jquery extension is enabled.
|
||||
# See: https://dev.readthedocs.io/en/latest/design/sphinx-jquery.html
|
||||
if sphinx_version >= (6, 0, 0):
|
||||
# Documentation of Sphinx guarantees that an extension is added and
|
||||
# enabled at most once.
|
||||
# See: https://www.sphinx-doc.org/en/master/extdev/appapi.html#sphinx.application.Sphinx.setup_extension
|
||||
app.setup_extension("sphinxcontrib.jquery")
|
||||
|
||||
# Register the theme that can be referenced without adding a theme path
|
||||
app.add_html_theme('lammps_theme', path.abspath(path.dirname(__file__)))
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
<div role="navigation" aria-label="{{ _('Page navigation') }}">
|
||||
<ul class="wy-breadcrumbs">
|
||||
{%- block breadcrumbs %}
|
||||
<li><a href="{{ pathto(master_doc) }}" class="icon icon-home"></a></li>
|
||||
<li><a href="{{ pathto(master_doc) }}" class="icon icon-home" aria-label="Home"></a></li>
|
||||
{%- for doc in parents %}
|
||||
<li class="breadcrumb-item"><a href="{{ doc.link|e }}">{{ doc.title }}</a></li>
|
||||
{%- endfor %}
|
||||
|
||||
@ -60,4 +60,3 @@
|
||||
{%- block extrafooter %} {% endblock %}
|
||||
|
||||
</footer>
|
||||
|
||||
|
||||
@ -40,14 +40,14 @@
|
||||
<link rel="stylesheet" href="{{ pathto(cssfile, 1) }}" type="text/css" />
|
||||
{%- endfor -%}
|
||||
|
||||
{#- FAVICON #}
|
||||
{%- if favicon %}
|
||||
{%- if sphinx_version_info < (4, 0) -%}
|
||||
<link rel="shortcut icon" href="{{ pathto('_static/' + favicon, 1) }}"/>
|
||||
{%- else %}
|
||||
<link rel="shortcut icon" href="{{ favicon_url }}"/>
|
||||
{%- endif %}
|
||||
{%- endif -%}
|
||||
{#- FAVICON
|
||||
favicon_url is the only context var necessary since Sphinx 4.
|
||||
In Sphinx<4, we use favicon but need to prepend path info.
|
||||
#}
|
||||
{%- set _favicon_url = favicon_url | default(pathto('_static/' + (favicon or ""), 1)) %}
|
||||
{%- if favicon_url or favicon %}
|
||||
<link rel="shortcut icon" href="{{ _favicon_url }}"/>
|
||||
{%- endif %}
|
||||
|
||||
{#- CANONICAL URL (deprecated) #}
|
||||
{%- if theme_canonical_url and not pageurl %}
|
||||
@ -133,27 +133,20 @@
|
||||
<div class="wy-side-nav-search" {% if theme_style_nav_header_background %} style="background: {{theme_style_nav_header_background}}" {% endif %}>
|
||||
{%- block sidebartitle %}
|
||||
|
||||
{%- if logo and theme_logo_only %}
|
||||
<a href="{{ pathto(master_doc) }}">
|
||||
{%- else %}
|
||||
<a href="{{ pathto(master_doc) }}" class="icon icon-home"> {{ project }}
|
||||
{%- endif %}
|
||||
|
||||
{%- if logo %}
|
||||
{#- Not strictly valid HTML, but it's the only way to display/scale
|
||||
it properly, without weird scripting or heaps of work
|
||||
#}
|
||||
{%- if sphinx_version_info < (4, 0) -%}
|
||||
<img src="{{ pathto('_static/' + logo, 1) }}" class="logo" alt="{{ _('Logo') }}"/>
|
||||
{%- else %}
|
||||
<img src="{{ logo_url }}" class="logo" alt="{{ _('Logo') }}"/>
|
||||
{# the logo helper function was removed in Sphinx 6 and deprecated since Sphinx 4 #}
|
||||
{# the master_doc variable was renamed to root_doc in Sphinx 4 (master_doc still exists in later Sphinx versions) #}
|
||||
{%- set _logo_url = logo_url|default(pathto('_static/' + (logo or ""), 1)) %}
|
||||
{%- set _root_doc = root_doc|default(master_doc) %}
|
||||
<a href="{{ pathto(_root_doc) }}"{% if not theme_logo_only %} class="icon icon-home"{% endif %}>
|
||||
{% if not theme_logo_only %}{{ project }}{% endif %}
|
||||
{%- if logo or logo_url %}
|
||||
<img src="{{ _logo_url }}" class="logo" alt="{{ _('Logo') }}"/>
|
||||
{%- endif %}
|
||||
{%- endif %}
|
||||
</a>
|
||||
|
||||
{%- if theme_display_version %}
|
||||
<div class="lammps_version">Version: <b>{{ current_version }}</b></div>
|
||||
<div class="lammps_release">git info: {{ release }}</div>
|
||||
<div class="lammps_version">Version: <b>{{ current_version }}</b></div>
|
||||
<div class="lammps_release">git info: {{ release }}</div>
|
||||
{%- endif %}
|
||||
|
||||
{%- include "searchbox.html" %}
|
||||
|
||||
Binary file not shown.
@ -1,136 +0,0 @@
|
||||
# English translations for sphinx_rtd_theme.
|
||||
# Copyright (C) 2019 ORGANIZATION
|
||||
# This file is distributed under the same license as the sphinx_rtd_theme
|
||||
# project.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2019.
|
||||
#
|
||||
# Translators:
|
||||
# Tom Kunze <transifex.com@tomabrafix.de>, 2019
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: sphinx_rtd_theme 0.4.3.dev0\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2022-11-04 12:02-0700\n"
|
||||
"PO-Revision-Date: 2019-07-16 21:44+0000\n"
|
||||
"Last-Translator: Tom Kunze <transifex.com@tomabrafix.de>, 2019\n"
|
||||
"Language-Team: German (https://www.transifex.com/readthedocs/teams/101354/de/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Generated-By: Babel 2.10.1\n"
|
||||
"Language: de\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: sphinx_rtd_theme/breadcrumbs.html:37 sphinx_rtd_theme/breadcrumbs.html:39
|
||||
msgid "Edit on GitHub"
|
||||
msgstr "Auf GitHub bearbeiten"
|
||||
|
||||
#: sphinx_rtd_theme/breadcrumbs.html:44 sphinx_rtd_theme/breadcrumbs.html:46
|
||||
msgid "Edit on Bitbucket"
|
||||
msgstr "Auf Bitbucket bearbeiten"
|
||||
|
||||
#: sphinx_rtd_theme/breadcrumbs.html:51 sphinx_rtd_theme/breadcrumbs.html:53
|
||||
msgid "Edit on GitLab"
|
||||
msgstr "Auf GitLab bearbeiten"
|
||||
|
||||
#: sphinx_rtd_theme/breadcrumbs.html:56 sphinx_rtd_theme/breadcrumbs.html:58
|
||||
msgid "View page source"
|
||||
msgstr "Quelltext anzeigen"
|
||||
|
||||
#: sphinx_rtd_theme/breadcrumbs.html:69 sphinx_rtd_theme/footer.html:6
|
||||
msgid "Previous"
|
||||
msgstr "Zurück"
|
||||
|
||||
#: sphinx_rtd_theme/breadcrumbs.html:72 sphinx_rtd_theme/footer.html:9
|
||||
msgid "Next"
|
||||
msgstr "Weiter"
|
||||
|
||||
#. Build is a noun, not a verb
|
||||
#: sphinx_rtd_theme/footer.html:30
|
||||
msgid "Build"
|
||||
msgstr "Build"
|
||||
|
||||
#: sphinx_rtd_theme/footer.html:41
|
||||
#, python-format
|
||||
msgid "Last updated on %(last_updated)s."
|
||||
msgstr "Zuletzt aktualisiert am %(last_updated)s."
|
||||
|
||||
#. the variable "sphinx_web" is a link to the Sphinx project documentation
|
||||
#. with
|
||||
#. the text "Sphinx"
|
||||
#: sphinx_rtd_theme/footer.html:53
|
||||
#, python-format
|
||||
msgid "Built with %(sphinx_web)s using a"
|
||||
msgstr "Erstellt mit %(sphinx_web)s mit einem"
|
||||
|
||||
#. this is always used as "provided by Read the Docs", and should not imply
|
||||
#. Read the Docs is an author of the generated documentation.
|
||||
#: sphinx_rtd_theme/footer.html:57
|
||||
#, python-format
|
||||
msgid "provided by %(readthedocs_web)s"
|
||||
msgstr "bereitgestellt von %(readthedocs_web)s"
|
||||
|
||||
#: sphinx_rtd_theme/layout.html:97
|
||||
#, python-format
|
||||
msgid "Search within %(docstitle)s"
|
||||
msgstr "%(docstitle)s durchsuchen"
|
||||
|
||||
#: sphinx_rtd_theme/layout.html:105
|
||||
msgid "About these documents"
|
||||
msgstr "Über diese Dokumentation"
|
||||
|
||||
#: sphinx_rtd_theme/layout.html:108
|
||||
msgid "Index"
|
||||
msgstr "Index"
|
||||
|
||||
#: sphinx_rtd_theme/layout.html:111 sphinx_rtd_theme/search.html:11
|
||||
msgid "Search"
|
||||
msgstr "Suche"
|
||||
|
||||
#: sphinx_rtd_theme/layout.html:114
|
||||
msgid "Copyright"
|
||||
msgstr "Copyright"
|
||||
|
||||
#: sphinx_rtd_theme/layout.html:147 sphinx_rtd_theme/layout.html:149
|
||||
msgid "Logo"
|
||||
msgstr "Logo"
|
||||
|
||||
#: sphinx_rtd_theme/search.html:31
|
||||
msgid "Please activate JavaScript to enable the search functionality."
|
||||
msgstr "Bitte aktiviere JavaScript, um die Suchfunktion zu nutzen."
|
||||
|
||||
#. Search is a noun, not a verb
|
||||
#: sphinx_rtd_theme/search.html:39
|
||||
msgid "Search Results"
|
||||
msgstr "Suchergebnisse"
|
||||
|
||||
#: sphinx_rtd_theme/search.html:41
|
||||
msgid ""
|
||||
"Your search did not match any documents. Please make sure that all words are"
|
||||
" spelled correctly and that you've selected enough categories."
|
||||
msgstr ""
|
||||
"Es wurden keine mit deiner Suchanfrage übereinstimmenden Dokumente gefunden."
|
||||
" Achte darauf, dass alle Wörter richtig geschrieben sind und dass genug "
|
||||
"Kategorien ausgewählt sind."
|
||||
|
||||
#: sphinx_rtd_theme/searchbox.html:4
|
||||
msgid "Search docs"
|
||||
msgstr "Dokumentation durchsuchen"
|
||||
|
||||
#: sphinx_rtd_theme/versions.html:3 sphinx_rtd_theme/versions.html:11
|
||||
msgid "Versions"
|
||||
msgstr "Versionen"
|
||||
|
||||
#. The phrase "Read the Docs" is not translated
|
||||
#: sphinx_rtd_theme/versions.html:24
|
||||
msgid "On Read the Docs"
|
||||
msgstr "Auf Read the Docs"
|
||||
|
||||
#: sphinx_rtd_theme/versions.html:26
|
||||
msgid "Project Home"
|
||||
msgstr "Projektübersicht"
|
||||
|
||||
#: sphinx_rtd_theme/versions.html:29
|
||||
msgid "Builds"
|
||||
msgstr "Builds"
|
||||
Binary file not shown.
@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: sphinx_rtd_theme 0.4.3.dev0\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2022-11-04 12:02-0700\n"
|
||||
"POT-Creation-Date: 2023-02-06 15:36+0100\n"
|
||||
"PO-Revision-Date: 2019-07-16 15:43-0600\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language: en\n"
|
||||
@ -17,7 +17,7 @@ msgstr ""
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Generated-By: Babel 2.10.1\n"
|
||||
"Generated-By: Babel 2.11.0\n"
|
||||
|
||||
#. This is an ARIA section label for page links, including previous/next page
|
||||
#. link and links to GitHub/GitLab/etc.
|
||||
@ -126,18 +126,18 @@ msgstr ""
|
||||
msgid "Copyright"
|
||||
msgstr ""
|
||||
|
||||
#: sphinx_rtd_theme/layout.html:147 sphinx_rtd_theme/layout.html:149
|
||||
#: sphinx_rtd_theme/layout.html:143
|
||||
msgid "Logo"
|
||||
msgstr ""
|
||||
|
||||
#. This is an ARIA section label for the main navigation menu
|
||||
#: sphinx_rtd_theme/layout.html:173
|
||||
#: sphinx_rtd_theme/layout.html:166
|
||||
msgid "Navigation menu"
|
||||
msgstr ""
|
||||
|
||||
#. This is an ARIA section label for the navigation menu that is visible when
|
||||
#. viewing the page on mobile devices
|
||||
#: sphinx_rtd_theme/layout.html:195
|
||||
#: sphinx_rtd_theme/layout.html:188
|
||||
msgid "Mobile navigation menu"
|
||||
msgstr ""
|
||||
|
||||
|
||||
Binary file not shown.
@ -1,169 +0,0 @@
|
||||
# English translations for sphinx_rtd_theme.
|
||||
# Copyright (C) 2019 ORGANIZATION
|
||||
# This file is distributed under the same license as the sphinx_rtd_theme
|
||||
# project.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2019.
|
||||
#
|
||||
# Translators:
|
||||
# Anthony <aj@ohess.org>, 2019
|
||||
# Radina Matic <radina.matic@gmail.com>, 2021
|
||||
# Leonardo J. Caballero G. <leonardocaballero@gmail.com>, 2022
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: sphinx_rtd_theme 0.4.3.dev0\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2022-11-04 12:02-0700\n"
|
||||
"PO-Revision-Date: 2019-07-16 21:44+0000\n"
|
||||
"Last-Translator: Leonardo J. Caballero G. <leonardocaballero@gmail.com>, 2022\n"
|
||||
"Language-Team: Spanish (https://www.transifex.com/readthedocs/teams/101354/es/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Generated-By: Babel 2.10.1\n"
|
||||
"Language: es\n"
|
||||
"Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"
|
||||
|
||||
#: sphinx_rtd_theme/breadcrumbs.html:37 sphinx_rtd_theme/breadcrumbs.html:39
|
||||
msgid "Edit on GitHub"
|
||||
msgstr "Editar en GitHub"
|
||||
|
||||
#: sphinx_rtd_theme/breadcrumbs.html:44 sphinx_rtd_theme/breadcrumbs.html:46
|
||||
msgid "Edit on Bitbucket"
|
||||
msgstr "Editar en Bitbucket"
|
||||
|
||||
#: sphinx_rtd_theme/breadcrumbs.html:51 sphinx_rtd_theme/breadcrumbs.html:53
|
||||
msgid "Edit on GitLab"
|
||||
msgstr "Editar en GitLab"
|
||||
|
||||
#: sphinx_rtd_theme/breadcrumbs.html:56 sphinx_rtd_theme/breadcrumbs.html:58
|
||||
msgid "View page source"
|
||||
msgstr "Ver código fuente de la página"
|
||||
|
||||
#: sphinx_rtd_theme/breadcrumbs.html:69 sphinx_rtd_theme/footer.html:6
|
||||
msgid "Previous"
|
||||
msgstr "Anterior"
|
||||
|
||||
#: sphinx_rtd_theme/breadcrumbs.html:72 sphinx_rtd_theme/footer.html:9
|
||||
msgid "Next"
|
||||
msgstr "Siguiente"
|
||||
|
||||
#. This is an ARIA section label for the footer section of the page.
|
||||
#: sphinx_rtd_theme/footer.html:4
|
||||
msgid "Footer"
|
||||
msgstr "Pie de página"
|
||||
|
||||
#: sphinx_rtd_theme/footer.html:21
|
||||
#, python-format
|
||||
msgid "© <a href=\"%(path)s\">Copyright</a> %(copyright)s."
|
||||
msgstr "© <a href=\"%(path)s\">Derechos de autor</a> %(copyright)s."
|
||||
|
||||
#: sphinx_rtd_theme/footer.html:23
|
||||
#, python-format
|
||||
msgid "© Copyright %(copyright)s."
|
||||
msgstr "© Derechos de autor %(copyright)s."
|
||||
|
||||
#. Build is a noun, not a verb
|
||||
#: sphinx_rtd_theme/footer.html:30
|
||||
msgid "Build"
|
||||
msgstr "Compilación"
|
||||
|
||||
#. the phrase "revision" comes from Git, referring to a commit
|
||||
#: sphinx_rtd_theme/footer.html:36
|
||||
msgid "Revision"
|
||||
msgstr "Revisión"
|
||||
|
||||
#: sphinx_rtd_theme/footer.html:41
|
||||
#, python-format
|
||||
msgid "Last updated on %(last_updated)s."
|
||||
msgstr "Actualizado por última vez el %(last_updated)s."
|
||||
|
||||
#. the variable "sphinx_web" is a link to the Sphinx project documentation
|
||||
#. with
|
||||
#. the text "Sphinx"
|
||||
#: sphinx_rtd_theme/footer.html:53
|
||||
#, python-format
|
||||
msgid "Built with %(sphinx_web)s using a"
|
||||
msgstr "Compilado con %(sphinx_web)s usando un"
|
||||
|
||||
#. "theme" refers to a theme for Sphinx, which alters the appearance of the
|
||||
#. generated documentation
|
||||
#: sphinx_rtd_theme/footer.html:55
|
||||
msgid "theme"
|
||||
msgstr "tema"
|
||||
|
||||
#. this is always used as "provided by Read the Docs", and should not imply
|
||||
#. Read the Docs is an author of the generated documentation.
|
||||
#: sphinx_rtd_theme/footer.html:57
|
||||
#, python-format
|
||||
msgid "provided by %(readthedocs_web)s"
|
||||
msgstr "proporcionado por %(readthedocs_web)s"
|
||||
|
||||
#: sphinx_rtd_theme/layout.html:97
|
||||
#, python-format
|
||||
msgid "Search within %(docstitle)s"
|
||||
msgstr "Buscar en %(docstitle)s"
|
||||
|
||||
#: sphinx_rtd_theme/layout.html:105
|
||||
msgid "About these documents"
|
||||
msgstr "Sobre esta documentación"
|
||||
|
||||
#: sphinx_rtd_theme/layout.html:108
|
||||
msgid "Index"
|
||||
msgstr "Índice"
|
||||
|
||||
#: sphinx_rtd_theme/layout.html:111 sphinx_rtd_theme/search.html:11
|
||||
msgid "Search"
|
||||
msgstr "Búsqueda"
|
||||
|
||||
#: sphinx_rtd_theme/layout.html:114
|
||||
msgid "Copyright"
|
||||
msgstr "Derechos de autor"
|
||||
|
||||
#: sphinx_rtd_theme/layout.html:147 sphinx_rtd_theme/layout.html:149
|
||||
msgid "Logo"
|
||||
msgstr "Logotipo"
|
||||
|
||||
#: sphinx_rtd_theme/search.html:31
|
||||
msgid "Please activate JavaScript to enable the search functionality."
|
||||
msgstr ""
|
||||
"Por favor, active JavaScript para habilitar la funcionalidad de búsqueda."
|
||||
|
||||
#. Search is a noun, not a verb
|
||||
#: sphinx_rtd_theme/search.html:39
|
||||
msgid "Search Results"
|
||||
msgstr "Resultados de la búsqueda"
|
||||
|
||||
#: sphinx_rtd_theme/search.html:41
|
||||
msgid ""
|
||||
"Your search did not match any documents. Please make sure that all words are"
|
||||
" spelled correctly and that you've selected enough categories."
|
||||
msgstr ""
|
||||
"Su búsqueda no coincide con ningún documento. Por favor, asegúrese de que "
|
||||
"todas las palabras estén correctamente escritas y que usted haya "
|
||||
"seleccionado las suficientes categorías."
|
||||
|
||||
#: sphinx_rtd_theme/searchbox.html:4
|
||||
msgid "Search docs"
|
||||
msgstr "Buscar documentos"
|
||||
|
||||
#: sphinx_rtd_theme/versions.html:3 sphinx_rtd_theme/versions.html:11
|
||||
msgid "Versions"
|
||||
msgstr "Versiones"
|
||||
|
||||
#: sphinx_rtd_theme/versions.html:17
|
||||
msgid "Downloads"
|
||||
msgstr "Descargas"
|
||||
|
||||
#. The phrase "Read the Docs" is not translated
|
||||
#: sphinx_rtd_theme/versions.html:24
|
||||
msgid "On Read the Docs"
|
||||
msgstr "En Read the Docs"
|
||||
|
||||
#: sphinx_rtd_theme/versions.html:26
|
||||
msgid "Project Home"
|
||||
msgstr "Página de Proyecto"
|
||||
|
||||
#: sphinx_rtd_theme/versions.html:29
|
||||
msgid "Builds"
|
||||
msgstr "Compilaciones"
|
||||
Binary file not shown.
@ -1,166 +0,0 @@
|
||||
# English translations for sphinx_rtd_theme.
|
||||
# Copyright (C) 2019 ORGANIZATION
|
||||
# This file is distributed under the same license as the sphinx_rtd_theme
|
||||
# project.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2019.
|
||||
#
|
||||
# Translators:
|
||||
# Anthony <aj@ohess.org>, 2020
|
||||
# Ivar Smolin <okul@linux.ee>, 2021
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: sphinx_rtd_theme 0.4.3.dev0\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2022-11-04 12:02-0700\n"
|
||||
"PO-Revision-Date: 2019-07-16 21:44+0000\n"
|
||||
"Last-Translator: Ivar Smolin <okul@linux.ee>, 2021\n"
|
||||
"Language-Team: Estonian (https://www.transifex.com/readthedocs/teams/101354/et/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Generated-By: Babel 2.10.1\n"
|
||||
"Language: et\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: sphinx_rtd_theme/breadcrumbs.html:37 sphinx_rtd_theme/breadcrumbs.html:39
|
||||
msgid "Edit on GitHub"
|
||||
msgstr "Muuda GitHubis"
|
||||
|
||||
#: sphinx_rtd_theme/breadcrumbs.html:44 sphinx_rtd_theme/breadcrumbs.html:46
|
||||
msgid "Edit on Bitbucket"
|
||||
msgstr "Muuda Bitbucketis"
|
||||
|
||||
#: sphinx_rtd_theme/breadcrumbs.html:51 sphinx_rtd_theme/breadcrumbs.html:53
|
||||
msgid "Edit on GitLab"
|
||||
msgstr "Muuda GitLabis"
|
||||
|
||||
#: sphinx_rtd_theme/breadcrumbs.html:56 sphinx_rtd_theme/breadcrumbs.html:58
|
||||
msgid "View page source"
|
||||
msgstr "Vaata lehe lähtekoodi"
|
||||
|
||||
#: sphinx_rtd_theme/breadcrumbs.html:69 sphinx_rtd_theme/footer.html:6
|
||||
msgid "Previous"
|
||||
msgstr "Eelmine"
|
||||
|
||||
#: sphinx_rtd_theme/breadcrumbs.html:72 sphinx_rtd_theme/footer.html:9
|
||||
msgid "Next"
|
||||
msgstr "Järgmine"
|
||||
|
||||
#. This is an ARIA section label for the footer section of the page.
|
||||
#: sphinx_rtd_theme/footer.html:4
|
||||
msgid "Footer"
|
||||
msgstr "Jalus"
|
||||
|
||||
#: sphinx_rtd_theme/footer.html:21
|
||||
#, python-format
|
||||
msgid "© <a href=\"%(path)s\">Copyright</a> %(copyright)s."
|
||||
msgstr "© <a href=\"%(path)s\">Autoriõigus</a> %(copyright)s."
|
||||
|
||||
#: sphinx_rtd_theme/footer.html:23
|
||||
#, python-format
|
||||
msgid "© Copyright %(copyright)s."
|
||||
msgstr "© Autoriõigus %(copyright)s."
|
||||
|
||||
#. Build is a noun, not a verb
|
||||
#: sphinx_rtd_theme/footer.html:30
|
||||
msgid "Build"
|
||||
msgstr "Ehitus"
|
||||
|
||||
#. the phrase "revision" comes from Git, referring to a commit
|
||||
#: sphinx_rtd_theme/footer.html:36
|
||||
msgid "Revision"
|
||||
msgstr "Redaktsioon"
|
||||
|
||||
#: sphinx_rtd_theme/footer.html:41
|
||||
#, python-format
|
||||
msgid "Last updated on %(last_updated)s."
|
||||
msgstr "Viimati uuendatud %(last_updated)s."
|
||||
|
||||
#. the variable "sphinx_web" is a link to the Sphinx project documentation
|
||||
#. with
|
||||
#. the text "Sphinx"
|
||||
#: sphinx_rtd_theme/footer.html:53
|
||||
#, python-format
|
||||
msgid "Built with %(sphinx_web)s using a"
|
||||
msgstr "Ehitatud %(sphinx_web)s'iga,"
|
||||
|
||||
#. "theme" refers to a theme for Sphinx, which alters the appearance of the
|
||||
#. generated documentation
|
||||
#: sphinx_rtd_theme/footer.html:55
|
||||
msgid "theme"
|
||||
msgstr "kujundusteema"
|
||||
|
||||
#. this is always used as "provided by Read the Docs", and should not imply
|
||||
#. Read the Docs is an author of the generated documentation.
|
||||
#: sphinx_rtd_theme/footer.html:57
|
||||
#, python-format
|
||||
msgid "provided by %(readthedocs_web)s"
|
||||
msgstr "on loonud %(readthedocs_web)s"
|
||||
|
||||
#: sphinx_rtd_theme/layout.html:97
|
||||
#, python-format
|
||||
msgid "Search within %(docstitle)s"
|
||||
msgstr "Otsi dokumendist %(docstitle)s"
|
||||
|
||||
#: sphinx_rtd_theme/layout.html:105
|
||||
msgid "About these documents"
|
||||
msgstr "Nende dokumentide kirjeldused"
|
||||
|
||||
#: sphinx_rtd_theme/layout.html:108
|
||||
msgid "Index"
|
||||
msgstr "Indeks"
|
||||
|
||||
#: sphinx_rtd_theme/layout.html:111 sphinx_rtd_theme/search.html:11
|
||||
msgid "Search"
|
||||
msgstr "Otsing"
|
||||
|
||||
#: sphinx_rtd_theme/layout.html:114
|
||||
msgid "Copyright"
|
||||
msgstr "Autoriõigus"
|
||||
|
||||
#: sphinx_rtd_theme/layout.html:147 sphinx_rtd_theme/layout.html:149
|
||||
msgid "Logo"
|
||||
msgstr "Logo"
|
||||
|
||||
#: sphinx_rtd_theme/search.html:31
|
||||
msgid "Please activate JavaScript to enable the search functionality."
|
||||
msgstr "Otsimisfunktsiooni lubamiseks aktiveeri palun JavaScript"
|
||||
|
||||
#. Search is a noun, not a verb
|
||||
#: sphinx_rtd_theme/search.html:39
|
||||
msgid "Search Results"
|
||||
msgstr "Otsingu tulemused"
|
||||
|
||||
#: sphinx_rtd_theme/search.html:41
|
||||
msgid ""
|
||||
"Your search did not match any documents. Please make sure that all words are"
|
||||
" spelled correctly and that you've selected enough categories."
|
||||
msgstr ""
|
||||
"Sinu otsingule ei vastanud ükski dokument. Palun veendu, et kõik sisestatud "
|
||||
"sõnad on õigesti kirjutatud ja sa oled valikud piisaval hulgal kategooriaid."
|
||||
|
||||
#: sphinx_rtd_theme/searchbox.html:4
|
||||
msgid "Search docs"
|
||||
msgstr "Otsi dokumente"
|
||||
|
||||
#: sphinx_rtd_theme/versions.html:3 sphinx_rtd_theme/versions.html:11
|
||||
msgid "Versions"
|
||||
msgstr "Versioonid"
|
||||
|
||||
#: sphinx_rtd_theme/versions.html:17
|
||||
msgid "Downloads"
|
||||
msgstr "Allalaadimised"
|
||||
|
||||
#. The phrase "Read the Docs" is not translated
|
||||
#: sphinx_rtd_theme/versions.html:24
|
||||
msgid "On Read the Docs"
|
||||
msgstr "Saidil Read the Docs"
|
||||
|
||||
#: sphinx_rtd_theme/versions.html:26
|
||||
msgid "Project Home"
|
||||
msgstr "Projekti kodu"
|
||||
|
||||
#: sphinx_rtd_theme/versions.html:29
|
||||
msgid "Builds"
|
||||
msgstr "Ehitused"
|
||||
Binary file not shown.
@ -1,161 +0,0 @@
|
||||
# English translations for sphinx_rtd_theme.
|
||||
# Copyright (C) 2019 ORGANIZATION
|
||||
# This file is distributed under the same license as the sphinx_rtd_theme
|
||||
# project.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2019.
|
||||
#
|
||||
# Translators:
|
||||
# Anthony <aj@ohess.org>, 2021
|
||||
# Peyman M., 2022
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: sphinx_rtd_theme 0.4.3.dev0\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2022-11-04 12:02-0700\n"
|
||||
"PO-Revision-Date: 2019-07-16 21:44+0000\n"
|
||||
"Last-Translator: Peyman M., 2022\n"
|
||||
"Language-Team: Persian (Iran) (https://www.transifex.com/readthedocs/teams/101354/fa_IR/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Generated-By: Babel 2.10.1\n"
|
||||
"Language: fa_IR\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
|
||||
#: sphinx_rtd_theme/breadcrumbs.html:37 sphinx_rtd_theme/breadcrumbs.html:39
|
||||
msgid "Edit on GitHub"
|
||||
msgstr "ویرایش در GitHub"
|
||||
|
||||
#: sphinx_rtd_theme/breadcrumbs.html:44 sphinx_rtd_theme/breadcrumbs.html:46
|
||||
msgid "Edit on Bitbucket"
|
||||
msgstr "ویرایش در Bitbucket"
|
||||
|
||||
#: sphinx_rtd_theme/breadcrumbs.html:51 sphinx_rtd_theme/breadcrumbs.html:53
|
||||
msgid "Edit on GitLab"
|
||||
msgstr "ویرایش در GitLab"
|
||||
|
||||
#: sphinx_rtd_theme/breadcrumbs.html:56 sphinx_rtd_theme/breadcrumbs.html:58
|
||||
msgid "View page source"
|
||||
msgstr "نمایش متن منبع صفحه"
|
||||
|
||||
#: sphinx_rtd_theme/breadcrumbs.html:69 sphinx_rtd_theme/footer.html:6
|
||||
msgid "Previous"
|
||||
msgstr "پیشین"
|
||||
|
||||
#: sphinx_rtd_theme/breadcrumbs.html:72 sphinx_rtd_theme/footer.html:9
|
||||
msgid "Next"
|
||||
msgstr "بعدی"
|
||||
|
||||
#: sphinx_rtd_theme/footer.html:21
|
||||
#, python-format
|
||||
msgid "© <a href=\"%(path)s\">Copyright</a> %(copyright)s."
|
||||
msgstr "© <a href=\"%(path)s\">حق انتشار</a> %(copyright)s."
|
||||
|
||||
#: sphinx_rtd_theme/footer.html:23
|
||||
#, python-format
|
||||
msgid "© Copyright %(copyright)s."
|
||||
msgstr "© حق انتشار%(copyright)s."
|
||||
|
||||
#. Build is a noun, not a verb
|
||||
#: sphinx_rtd_theme/footer.html:30
|
||||
msgid "Build"
|
||||
msgstr "ساخت"
|
||||
|
||||
#. the phrase "revision" comes from Git, referring to a commit
|
||||
#: sphinx_rtd_theme/footer.html:36
|
||||
msgid "Revision"
|
||||
msgstr "بازبینی"
|
||||
|
||||
#: sphinx_rtd_theme/footer.html:41
|
||||
#, python-format
|
||||
msgid "Last updated on %(last_updated)s."
|
||||
msgstr "آخرین بروز رسانی در %(last_updated)s ."
|
||||
|
||||
#. the variable "sphinx_web" is a link to the Sphinx project documentation
|
||||
#. with
|
||||
#. the text "Sphinx"
|
||||
#: sphinx_rtd_theme/footer.html:53
|
||||
#, python-format
|
||||
msgid "Built with %(sphinx_web)s using a"
|
||||
msgstr "ساخته شده با %(sphinx_web)s"
|
||||
|
||||
#. "theme" refers to a theme for Sphinx, which alters the appearance of the
|
||||
#. generated documentation
|
||||
#: sphinx_rtd_theme/footer.html:55
|
||||
msgid "theme"
|
||||
msgstr "پوسته"
|
||||
|
||||
#. this is always used as "provided by Read the Docs", and should not imply
|
||||
#. Read the Docs is an author of the generated documentation.
|
||||
#: sphinx_rtd_theme/footer.html:57
|
||||
#, python-format
|
||||
msgid "provided by %(readthedocs_web)s"
|
||||
msgstr "تهیّه شده با %(readthedocs_web)s"
|
||||
|
||||
#: sphinx_rtd_theme/layout.html:97
|
||||
#, python-format
|
||||
msgid "Search within %(docstitle)s"
|
||||
msgstr "جستجو در %(docstitle)s"
|
||||
|
||||
#: sphinx_rtd_theme/layout.html:105
|
||||
msgid "About these documents"
|
||||
msgstr "درباره این مستندات"
|
||||
|
||||
#: sphinx_rtd_theme/layout.html:108
|
||||
msgid "Index"
|
||||
msgstr "فهرست"
|
||||
|
||||
#: sphinx_rtd_theme/layout.html:111 sphinx_rtd_theme/search.html:11
|
||||
msgid "Search"
|
||||
msgstr "جستجوی"
|
||||
|
||||
#: sphinx_rtd_theme/layout.html:114
|
||||
msgid "Copyright"
|
||||
msgstr "کپی رایت"
|
||||
|
||||
#: sphinx_rtd_theme/layout.html:147 sphinx_rtd_theme/layout.html:149
|
||||
msgid "Logo"
|
||||
msgstr "آرم"
|
||||
|
||||
#: sphinx_rtd_theme/search.html:31
|
||||
msgid "Please activate JavaScript to enable the search functionality."
|
||||
msgstr "لطفاً جاوا اسکریپت را فعّال کنید تا قابلیّت جستجو فعّال شود."
|
||||
|
||||
#. Search is a noun, not a verb
|
||||
#: sphinx_rtd_theme/search.html:39
|
||||
msgid "Search Results"
|
||||
msgstr "نتایج جستجو"
|
||||
|
||||
#: sphinx_rtd_theme/search.html:41
|
||||
msgid ""
|
||||
"Your search did not match any documents. Please make sure that all words are"
|
||||
" spelled correctly and that you've selected enough categories."
|
||||
msgstr ""
|
||||
"جستجوی شما با هیچ سندی مطابقت نداشت. لطفاً از درستی املای واژگان مطمئن شوید."
|
||||
" همچنین بررسی کنید آیا به اندازه کافی دسته بندی انتخاب کردهاید."
|
||||
|
||||
#: sphinx_rtd_theme/searchbox.html:4
|
||||
msgid "Search docs"
|
||||
msgstr "جستجوی مستندات"
|
||||
|
||||
#: sphinx_rtd_theme/versions.html:3 sphinx_rtd_theme/versions.html:11
|
||||
msgid "Versions"
|
||||
msgstr "نگارشها"
|
||||
|
||||
#: sphinx_rtd_theme/versions.html:17
|
||||
msgid "Downloads"
|
||||
msgstr "بارگیریها"
|
||||
|
||||
#. The phrase "Read the Docs" is not translated
|
||||
#: sphinx_rtd_theme/versions.html:24
|
||||
msgid "On Read the Docs"
|
||||
msgstr "دربارهی خواندن مستندات"
|
||||
|
||||
#: sphinx_rtd_theme/versions.html:26
|
||||
msgid "Project Home"
|
||||
msgstr "صفحه خانگی پروژه"
|
||||
|
||||
#: sphinx_rtd_theme/versions.html:29
|
||||
msgid "Builds"
|
||||
msgstr "ساختها"
|
||||
Binary file not shown.
@ -1,167 +0,0 @@
|
||||
# English translations for sphinx_rtd_theme.
|
||||
# Copyright (C) 2019 ORGANIZATION
|
||||
# This file is distributed under the same license as the sphinx_rtd_theme
|
||||
# project.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2019.
|
||||
#
|
||||
# Translators:
|
||||
# Anthony <aj@ohess.org>, 2020
|
||||
# Radina Matic <radina.matic@gmail.com>, 2021
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: sphinx_rtd_theme 0.4.3.dev0\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2022-11-04 12:02-0700\n"
|
||||
"PO-Revision-Date: 2019-07-16 21:44+0000\n"
|
||||
"Last-Translator: Radina Matic <radina.matic@gmail.com>, 2021\n"
|
||||
"Language-Team: French (https://www.transifex.com/readthedocs/teams/101354/fr/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Generated-By: Babel 2.10.1\n"
|
||||
"Language: fr\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"
|
||||
|
||||
#: sphinx_rtd_theme/breadcrumbs.html:37 sphinx_rtd_theme/breadcrumbs.html:39
|
||||
msgid "Edit on GitHub"
|
||||
msgstr "Éditer sur GitHub"
|
||||
|
||||
#: sphinx_rtd_theme/breadcrumbs.html:44 sphinx_rtd_theme/breadcrumbs.html:46
|
||||
msgid "Edit on Bitbucket"
|
||||
msgstr "Éditer sur Bitbucket"
|
||||
|
||||
#: sphinx_rtd_theme/breadcrumbs.html:51 sphinx_rtd_theme/breadcrumbs.html:53
|
||||
msgid "Edit on GitLab"
|
||||
msgstr "Éditer sur GitLab"
|
||||
|
||||
#: sphinx_rtd_theme/breadcrumbs.html:56 sphinx_rtd_theme/breadcrumbs.html:58
|
||||
msgid "View page source"
|
||||
msgstr "Afficher la source de la page"
|
||||
|
||||
#: sphinx_rtd_theme/breadcrumbs.html:69 sphinx_rtd_theme/footer.html:6
|
||||
msgid "Previous"
|
||||
msgstr "Précédent"
|
||||
|
||||
#: sphinx_rtd_theme/breadcrumbs.html:72 sphinx_rtd_theme/footer.html:9
|
||||
msgid "Next"
|
||||
msgstr "Suivant"
|
||||
|
||||
#. This is an ARIA section label for the footer section of the page.
|
||||
#: sphinx_rtd_theme/footer.html:4
|
||||
msgid "Footer"
|
||||
msgstr "Pied de page"
|
||||
|
||||
#: sphinx_rtd_theme/footer.html:21
|
||||
#, python-format
|
||||
msgid "© <a href=\"%(path)s\">Copyright</a> %(copyright)s."
|
||||
msgstr "© <a href=\"%(path)s\">Droits d'auteur</a> %(copyright)s."
|
||||
|
||||
#: sphinx_rtd_theme/footer.html:23
|
||||
#, python-format
|
||||
msgid "© Copyright %(copyright)s."
|
||||
msgstr "© Droits d'auteur %(copyright)s."
|
||||
|
||||
#. Build is a noun, not a verb
|
||||
#: sphinx_rtd_theme/footer.html:30
|
||||
msgid "Build"
|
||||
msgstr "Compilation"
|
||||
|
||||
#. the phrase "revision" comes from Git, referring to a commit
|
||||
#: sphinx_rtd_theme/footer.html:36
|
||||
msgid "Revision"
|
||||
msgstr "Révision"
|
||||
|
||||
#: sphinx_rtd_theme/footer.html:41
|
||||
#, python-format
|
||||
msgid "Last updated on %(last_updated)s."
|
||||
msgstr "Dernière mise à jour le %(last_updated)s."
|
||||
|
||||
#. the variable "sphinx_web" is a link to the Sphinx project documentation
|
||||
#. with
|
||||
#. the text "Sphinx"
|
||||
#: sphinx_rtd_theme/footer.html:53
|
||||
#, python-format
|
||||
msgid "Built with %(sphinx_web)s using a"
|
||||
msgstr "Compilé avec %(sphinx_web)s en utilisant un"
|
||||
|
||||
#. "theme" refers to a theme for Sphinx, which alters the appearance of the
|
||||
#. generated documentation
|
||||
#: sphinx_rtd_theme/footer.html:55
|
||||
msgid "theme"
|
||||
msgstr "thème"
|
||||
|
||||
#. this is always used as "provided by Read the Docs", and should not imply
|
||||
#. Read the Docs is an author of the generated documentation.
|
||||
#: sphinx_rtd_theme/footer.html:57
|
||||
#, python-format
|
||||
msgid "provided by %(readthedocs_web)s"
|
||||
msgstr "fourni par %(readthedocs_web)s"
|
||||
|
||||
#: sphinx_rtd_theme/layout.html:97
|
||||
#, python-format
|
||||
msgid "Search within %(docstitle)s"
|
||||
msgstr "Rechercher dans %(docstitle)s"
|
||||
|
||||
#: sphinx_rtd_theme/layout.html:105
|
||||
msgid "About these documents"
|
||||
msgstr "À propos de cette documentation"
|
||||
|
||||
#: sphinx_rtd_theme/layout.html:108
|
||||
msgid "Index"
|
||||
msgstr "Index"
|
||||
|
||||
#: sphinx_rtd_theme/layout.html:111 sphinx_rtd_theme/search.html:11
|
||||
msgid "Search"
|
||||
msgstr "Rechercher"
|
||||
|
||||
#: sphinx_rtd_theme/layout.html:114
|
||||
msgid "Copyright"
|
||||
msgstr "Droits d'auteur"
|
||||
|
||||
#: sphinx_rtd_theme/layout.html:147 sphinx_rtd_theme/layout.html:149
|
||||
msgid "Logo"
|
||||
msgstr "Logo"
|
||||
|
||||
#: sphinx_rtd_theme/search.html:31
|
||||
msgid "Please activate JavaScript to enable the search functionality."
|
||||
msgstr "Activez JavaScript pour accéder à la fonction de recherche."
|
||||
|
||||
#. Search is a noun, not a verb
|
||||
#: sphinx_rtd_theme/search.html:39
|
||||
msgid "Search Results"
|
||||
msgstr "Résultats de la recherche"
|
||||
|
||||
#: sphinx_rtd_theme/search.html:41
|
||||
msgid ""
|
||||
"Your search did not match any documents. Please make sure that all words are"
|
||||
" spelled correctly and that you've selected enough categories."
|
||||
msgstr ""
|
||||
"Votre recherche ne correspond à aucun document. Assurez-vous que tous les "
|
||||
"mots sont correctement orthographiés et que vous avez sélectionné "
|
||||
"suffisamment de catégories."
|
||||
|
||||
#: sphinx_rtd_theme/searchbox.html:4
|
||||
msgid "Search docs"
|
||||
msgstr "Rechercher docs"
|
||||
|
||||
#: sphinx_rtd_theme/versions.html:3 sphinx_rtd_theme/versions.html:11
|
||||
msgid "Versions"
|
||||
msgstr "Versions"
|
||||
|
||||
#: sphinx_rtd_theme/versions.html:17
|
||||
msgid "Downloads"
|
||||
msgstr "Téléchargements"
|
||||
|
||||
#. The phrase "Read the Docs" is not translated
|
||||
#: sphinx_rtd_theme/versions.html:24
|
||||
msgid "On Read the Docs"
|
||||
msgstr "À propos de Read the Docs"
|
||||
|
||||
#: sphinx_rtd_theme/versions.html:26
|
||||
msgid "Project Home"
|
||||
msgstr "Accueil du projet"
|
||||
|
||||
#: sphinx_rtd_theme/versions.html:29
|
||||
msgid "Builds"
|
||||
msgstr "Compilations"
|
||||
Binary file not shown.
@ -1,23 +0,0 @@
|
||||
# English translations for sphinx_rtd_theme.
|
||||
# Copyright (C) 2019 ORGANIZATION
|
||||
# This file is distributed under the same license as the sphinx_rtd_theme
|
||||
# project.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2019.
|
||||
#
|
||||
# Translators:
|
||||
# Ivan Bratović, 2022
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: sphinx_rtd_theme 0.4.3.dev0\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2022-11-04 12:02-0700\n"
|
||||
"PO-Revision-Date: 2019-07-16 21:44+0000\n"
|
||||
"Last-Translator: Ivan Bratović, 2022\n"
|
||||
"Language-Team: Croatian (https://www.transifex.com/readthedocs/teams/101354/hr/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Generated-By: Babel 2.10.1\n"
|
||||
"Language: hr\n"
|
||||
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
|
||||
Binary file not shown.
@ -1,23 +0,0 @@
|
||||
# English translations for sphinx_rtd_theme.
|
||||
# Copyright (C) 2019 ORGANIZATION
|
||||
# This file is distributed under the same license as the sphinx_rtd_theme
|
||||
# project.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2019.
|
||||
#
|
||||
# Translators:
|
||||
# Balázs Úr, 2022
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: sphinx_rtd_theme 0.4.3.dev0\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2022-11-04 12:02-0700\n"
|
||||
"PO-Revision-Date: 2019-07-16 21:44+0000\n"
|
||||
"Last-Translator: Balázs Úr, 2022\n"
|
||||
"Language-Team: Hungarian (https://www.transifex.com/readthedocs/teams/101354/hu/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Generated-By: Babel 2.10.1\n"
|
||||
"Language: hu\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
Binary file not shown.
@ -1,192 +0,0 @@
|
||||
# English translations for sphinx_rtd_theme.
|
||||
# Copyright (C) 2019 ORGANIZATION
|
||||
# This file is distributed under the same license as the sphinx_rtd_theme
|
||||
# project.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2019.
|
||||
#
|
||||
# Translators:
|
||||
# Anthony <aj@ohess.org>, 2021
|
||||
# Maurizio Paglia <mpaglia0@gmail.com>, 2021
|
||||
# albanobattistella <albano_battistella@hotmail.com>, 2022
|
||||
# Benjamin Bach <benjaoming@gmail.com>, 2022
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: sphinx_rtd_theme 0.4.3.dev0\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2022-11-04 12:02-0700\n"
|
||||
"PO-Revision-Date: 2019-07-16 21:44+0000\n"
|
||||
"Last-Translator: Benjamin Bach <benjaoming@gmail.com>, 2022\n"
|
||||
"Language-Team: Italian (https://www.transifex.com/readthedocs/teams/101354/it/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Generated-By: Babel 2.10.1\n"
|
||||
"Language: it\n"
|
||||
"Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"
|
||||
|
||||
#. This is an ARIA section label for page links, including previous/next page
|
||||
#. link and links to GitHub/GitLab/etc.
|
||||
#: sphinx_rtd_theme/breadcrumbs.html:22
|
||||
msgid "Page navigation"
|
||||
msgstr "Naviga tra le pagine"
|
||||
|
||||
#: sphinx_rtd_theme/breadcrumbs.html:37 sphinx_rtd_theme/breadcrumbs.html:39
|
||||
msgid "Edit on GitHub"
|
||||
msgstr "Modifica su GitHub"
|
||||
|
||||
#: sphinx_rtd_theme/breadcrumbs.html:44 sphinx_rtd_theme/breadcrumbs.html:46
|
||||
msgid "Edit on Bitbucket"
|
||||
msgstr "Modifica su Bitbucket"
|
||||
|
||||
#: sphinx_rtd_theme/breadcrumbs.html:51 sphinx_rtd_theme/breadcrumbs.html:53
|
||||
msgid "Edit on GitLab"
|
||||
msgstr "Modifica su GitLab"
|
||||
|
||||
#: sphinx_rtd_theme/breadcrumbs.html:56 sphinx_rtd_theme/breadcrumbs.html:58
|
||||
msgid "View page source"
|
||||
msgstr "Visualizza sorgente pagina"
|
||||
|
||||
#. This is an ARIA section label for sequential page links, such as previous
|
||||
#. and next page links.
|
||||
#: sphinx_rtd_theme/breadcrumbs.html:67
|
||||
msgid "Sequential page navigation"
|
||||
msgstr "Naviga sequenzialmente tra le pagine"
|
||||
|
||||
#: sphinx_rtd_theme/breadcrumbs.html:69 sphinx_rtd_theme/footer.html:6
|
||||
msgid "Previous"
|
||||
msgstr "Precedente"
|
||||
|
||||
#: sphinx_rtd_theme/breadcrumbs.html:72 sphinx_rtd_theme/footer.html:9
|
||||
msgid "Next"
|
||||
msgstr "Prossimo"
|
||||
|
||||
#. This is an ARIA section label for the footer section of the page.
|
||||
#: sphinx_rtd_theme/footer.html:4
|
||||
msgid "Footer"
|
||||
msgstr "Piè di pagina"
|
||||
|
||||
#: sphinx_rtd_theme/footer.html:21
|
||||
#, python-format
|
||||
msgid "© <a href=\"%(path)s\">Copyright</a> %(copyright)s."
|
||||
msgstr "© <a href=\"%(path)s\">Copyright</a> %(copyright)s."
|
||||
|
||||
#: sphinx_rtd_theme/footer.html:23
|
||||
#, python-format
|
||||
msgid "© Copyright %(copyright)s."
|
||||
msgstr "© Copyright %(copyright)s."
|
||||
|
||||
#. Build is a noun, not a verb
|
||||
#: sphinx_rtd_theme/footer.html:30
|
||||
msgid "Build"
|
||||
msgstr "Rev."
|
||||
|
||||
#. the phrase "revision" comes from Git, referring to a commit
|
||||
#: sphinx_rtd_theme/footer.html:36
|
||||
msgid "Revision"
|
||||
msgstr "Revisione"
|
||||
|
||||
#: sphinx_rtd_theme/footer.html:41
|
||||
#, python-format
|
||||
msgid "Last updated on %(last_updated)s."
|
||||
msgstr "Ultimo aggiornamento il %(last_updated)s."
|
||||
|
||||
#. the variable "sphinx_web" is a link to the Sphinx project documentation
|
||||
#. with
|
||||
#. the text "Sphinx"
|
||||
#: sphinx_rtd_theme/footer.html:53
|
||||
#, python-format
|
||||
msgid "Built with %(sphinx_web)s using a"
|
||||
msgstr "Realizzato con %(sphinx_web)s usando un"
|
||||
|
||||
#. "theme" refers to a theme for Sphinx, which alters the appearance of the
|
||||
#. generated documentation
|
||||
#: sphinx_rtd_theme/footer.html:55
|
||||
msgid "theme"
|
||||
msgstr "tema"
|
||||
|
||||
#. this is always used as "provided by Read the Docs", and should not imply
|
||||
#. Read the Docs is an author of the generated documentation.
|
||||
#: sphinx_rtd_theme/footer.html:57
|
||||
#, python-format
|
||||
msgid "provided by %(readthedocs_web)s"
|
||||
msgstr "fornito da %(readthedocs_web)s"
|
||||
|
||||
#: sphinx_rtd_theme/layout.html:97
|
||||
#, python-format
|
||||
msgid "Search within %(docstitle)s"
|
||||
msgstr "Cerca in %(docstitle)s"
|
||||
|
||||
#: sphinx_rtd_theme/layout.html:105
|
||||
msgid "About these documents"
|
||||
msgstr "Nota sulla documentazione"
|
||||
|
||||
#: sphinx_rtd_theme/layout.html:108
|
||||
msgid "Index"
|
||||
msgstr "Indice"
|
||||
|
||||
#: sphinx_rtd_theme/layout.html:111 sphinx_rtd_theme/search.html:11
|
||||
msgid "Search"
|
||||
msgstr "Ricerca"
|
||||
|
||||
#: sphinx_rtd_theme/layout.html:114
|
||||
msgid "Copyright"
|
||||
msgstr "Copyright"
|
||||
|
||||
#: sphinx_rtd_theme/layout.html:147 sphinx_rtd_theme/layout.html:149
|
||||
msgid "Logo"
|
||||
msgstr "Logo"
|
||||
|
||||
#. This is an ARIA section label for the main navigation menu
|
||||
#: sphinx_rtd_theme/layout.html:173
|
||||
msgid "Navigation menu"
|
||||
msgstr "Menu di navigazione"
|
||||
|
||||
#. This is an ARIA section label for the navigation menu that is visible when
|
||||
#. viewing the page on mobile devices
|
||||
#: sphinx_rtd_theme/layout.html:195
|
||||
msgid "Mobile navigation menu"
|
||||
msgstr "Menu navigazione dispositivi mobili"
|
||||
|
||||
#: sphinx_rtd_theme/search.html:31
|
||||
msgid "Please activate JavaScript to enable the search functionality."
|
||||
msgstr "Devi attivare JavaScript per attivare la funzione di ricerca."
|
||||
|
||||
#. Search is a noun, not a verb
|
||||
#: sphinx_rtd_theme/search.html:39
|
||||
msgid "Search Results"
|
||||
msgstr "Risultati della ricerca"
|
||||
|
||||
#: sphinx_rtd_theme/search.html:41
|
||||
msgid ""
|
||||
"Your search did not match any documents. Please make sure that all words are"
|
||||
" spelled correctly and that you've selected enough categories."
|
||||
msgstr ""
|
||||
"La tua ricerca non ha prodotto nessun risultato. Assicurati di aver scritto "
|
||||
"correttamente tutti i termini cercati e di aver selezionato sufficienti "
|
||||
"categorie."
|
||||
|
||||
#: sphinx_rtd_theme/searchbox.html:4
|
||||
msgid "Search docs"
|
||||
msgstr "Cerca documenti"
|
||||
|
||||
#: sphinx_rtd_theme/versions.html:3 sphinx_rtd_theme/versions.html:11
|
||||
msgid "Versions"
|
||||
msgstr "Versioni"
|
||||
|
||||
#: sphinx_rtd_theme/versions.html:17
|
||||
msgid "Downloads"
|
||||
msgstr "Downloads"
|
||||
|
||||
#. The phrase "Read the Docs" is not translated
|
||||
#: sphinx_rtd_theme/versions.html:24
|
||||
msgid "On Read the Docs"
|
||||
msgstr "Riguardo Read the Docs"
|
||||
|
||||
#: sphinx_rtd_theme/versions.html:26
|
||||
msgid "Project Home"
|
||||
msgstr "Home progetto"
|
||||
|
||||
#: sphinx_rtd_theme/versions.html:29
|
||||
msgid "Builds"
|
||||
msgstr "Rev."
|
||||
Binary file not shown.
@ -1,188 +0,0 @@
|
||||
# English translations for sphinx_rtd_theme.
|
||||
# Copyright (C) 2019 ORGANIZATION
|
||||
# This file is distributed under the same license as the sphinx_rtd_theme
|
||||
# project.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2019.
|
||||
#
|
||||
# Translators:
|
||||
# Tomas Straupis, 2021
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: sphinx_rtd_theme 0.4.3.dev0\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2022-11-04 12:02-0700\n"
|
||||
"PO-Revision-Date: 2019-07-16 21:44+0000\n"
|
||||
"Last-Translator: Tomas Straupis, 2021\n"
|
||||
"Language-Team: Lithuanian (https://www.transifex.com/readthedocs/teams/101354/lt/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Generated-By: Babel 2.10.1\n"
|
||||
"Language: lt\n"
|
||||
"Plural-Forms: nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 : n % 1 != 0 ? 2: 3);\n"
|
||||
|
||||
#. This is an ARIA section label for page links, including previous/next page
|
||||
#. link and links to GitHub/GitLab/etc.
|
||||
#: sphinx_rtd_theme/breadcrumbs.html:22
|
||||
msgid "Page navigation"
|
||||
msgstr "Puslapių navigacija"
|
||||
|
||||
#: sphinx_rtd_theme/breadcrumbs.html:37 sphinx_rtd_theme/breadcrumbs.html:39
|
||||
msgid "Edit on GitHub"
|
||||
msgstr "Keisti GitHub'e"
|
||||
|
||||
#: sphinx_rtd_theme/breadcrumbs.html:44 sphinx_rtd_theme/breadcrumbs.html:46
|
||||
msgid "Edit on Bitbucket"
|
||||
msgstr "Keisti Bitbucket'e"
|
||||
|
||||
#: sphinx_rtd_theme/breadcrumbs.html:51 sphinx_rtd_theme/breadcrumbs.html:53
|
||||
msgid "Edit on GitLab"
|
||||
msgstr "Keisti GitLab'e"
|
||||
|
||||
#: sphinx_rtd_theme/breadcrumbs.html:56 sphinx_rtd_theme/breadcrumbs.html:58
|
||||
msgid "View page source"
|
||||
msgstr "Žiūrėti puslapio šaltinį"
|
||||
|
||||
#. This is an ARIA section label for sequential page links, such as previous
|
||||
#. and next page links.
|
||||
#: sphinx_rtd_theme/breadcrumbs.html:67
|
||||
msgid "Sequential page navigation"
|
||||
msgstr "Puslapių navigacija iš eilės"
|
||||
|
||||
#: sphinx_rtd_theme/breadcrumbs.html:69 sphinx_rtd_theme/footer.html:6
|
||||
msgid "Previous"
|
||||
msgstr "Ankstesnis"
|
||||
|
||||
#: sphinx_rtd_theme/breadcrumbs.html:72 sphinx_rtd_theme/footer.html:9
|
||||
msgid "Next"
|
||||
msgstr "Kitas"
|
||||
|
||||
#. This is an ARIA section label for the footer section of the page.
|
||||
#: sphinx_rtd_theme/footer.html:4
|
||||
msgid "Footer"
|
||||
msgstr "Poraštė"
|
||||
|
||||
#: sphinx_rtd_theme/footer.html:21
|
||||
#, python-format
|
||||
msgid "© <a href=\"%(path)s\">Copyright</a> %(copyright)s."
|
||||
msgstr "© <a href=\"%(path)s\">Copyright</a> %(copyright)s."
|
||||
|
||||
#: sphinx_rtd_theme/footer.html:23
|
||||
#, python-format
|
||||
msgid "© Copyright %(copyright)s."
|
||||
msgstr "© Copyright %(copyright)s."
|
||||
|
||||
#. Build is a noun, not a verb
|
||||
#: sphinx_rtd_theme/footer.html:30
|
||||
msgid "Build"
|
||||
msgstr "Surinkimas"
|
||||
|
||||
#. the phrase "revision" comes from Git, referring to a commit
|
||||
#: sphinx_rtd_theme/footer.html:36
|
||||
msgid "Revision"
|
||||
msgstr "Versija"
|
||||
|
||||
#: sphinx_rtd_theme/footer.html:41
|
||||
#, python-format
|
||||
msgid "Last updated on %(last_updated)s."
|
||||
msgstr "Atnaujinta %(last_updated)s."
|
||||
|
||||
#. the variable "sphinx_web" is a link to the Sphinx project documentation
|
||||
#. with
|
||||
#. the text "Sphinx"
|
||||
#: sphinx_rtd_theme/footer.html:53
|
||||
#, python-format
|
||||
msgid "Built with %(sphinx_web)s using a"
|
||||
msgstr "Surinkta su %(sphinx_web)s naudojant"
|
||||
|
||||
#. "theme" refers to a theme for Sphinx, which alters the appearance of the
|
||||
#. generated documentation
|
||||
#: sphinx_rtd_theme/footer.html:55
|
||||
msgid "theme"
|
||||
msgstr "temą"
|
||||
|
||||
#. this is always used as "provided by Read the Docs", and should not imply
|
||||
#. Read the Docs is an author of the generated documentation.
|
||||
#: sphinx_rtd_theme/footer.html:57
|
||||
#, python-format
|
||||
msgid "provided by %(readthedocs_web)s"
|
||||
msgstr "pateiktą %(readthedocs_web)s"
|
||||
|
||||
#: sphinx_rtd_theme/layout.html:97
|
||||
#, python-format
|
||||
msgid "Search within %(docstitle)s"
|
||||
msgstr "Ieškoti %(docstitle)s"
|
||||
|
||||
#: sphinx_rtd_theme/layout.html:105
|
||||
msgid "About these documents"
|
||||
msgstr "Apie šiuos dokumentus"
|
||||
|
||||
#: sphinx_rtd_theme/layout.html:108
|
||||
msgid "Index"
|
||||
msgstr "Indeksas"
|
||||
|
||||
#: sphinx_rtd_theme/layout.html:111 sphinx_rtd_theme/search.html:11
|
||||
msgid "Search"
|
||||
msgstr "Paieška"
|
||||
|
||||
#: sphinx_rtd_theme/layout.html:114
|
||||
msgid "Copyright"
|
||||
msgstr "Autorių teisės"
|
||||
|
||||
#: sphinx_rtd_theme/layout.html:147 sphinx_rtd_theme/layout.html:149
|
||||
msgid "Logo"
|
||||
msgstr "Logo"
|
||||
|
||||
#. This is an ARIA section label for the main navigation menu
|
||||
#: sphinx_rtd_theme/layout.html:173
|
||||
msgid "Navigation menu"
|
||||
msgstr "Navigacijos meniu"
|
||||
|
||||
#. This is an ARIA section label for the navigation menu that is visible when
|
||||
#. viewing the page on mobile devices
|
||||
#: sphinx_rtd_theme/layout.html:195
|
||||
msgid "Mobile navigation menu"
|
||||
msgstr "Mobilios navigacijos meniu"
|
||||
|
||||
#: sphinx_rtd_theme/search.html:31
|
||||
msgid "Please activate JavaScript to enable the search functionality."
|
||||
msgstr "Prašome įjungti JavaScript, kad veiktų paieškos funkcionalumas."
|
||||
|
||||
#. Search is a noun, not a verb
|
||||
#: sphinx_rtd_theme/search.html:39
|
||||
msgid "Search Results"
|
||||
msgstr "Paieškos rezultatai"
|
||||
|
||||
#: sphinx_rtd_theme/search.html:41
|
||||
msgid ""
|
||||
"Your search did not match any documents. Please make sure that all words are"
|
||||
" spelled correctly and that you've selected enough categories."
|
||||
msgstr ""
|
||||
"Jūsų paieškai neatitiko nei vienas dokumentas. Prašome įsitikinti, kad visi "
|
||||
"žodžiai parašyti teisingai ir kad parinkote pakankamai kategorijų."
|
||||
|
||||
#: sphinx_rtd_theme/searchbox.html:4
|
||||
msgid "Search docs"
|
||||
msgstr "Ieškoti dokumentuose"
|
||||
|
||||
#: sphinx_rtd_theme/versions.html:3 sphinx_rtd_theme/versions.html:11
|
||||
msgid "Versions"
|
||||
msgstr "Versijos"
|
||||
|
||||
#: sphinx_rtd_theme/versions.html:17
|
||||
msgid "Downloads"
|
||||
msgstr "Atsisiuntimai"
|
||||
|
||||
#. The phrase "Read the Docs" is not translated
|
||||
#: sphinx_rtd_theme/versions.html:24
|
||||
msgid "On Read the Docs"
|
||||
msgstr "Apie Read the Docs"
|
||||
|
||||
#: sphinx_rtd_theme/versions.html:26
|
||||
msgid "Project Home"
|
||||
msgstr "Projekto namai"
|
||||
|
||||
#: sphinx_rtd_theme/versions.html:29
|
||||
msgid "Builds"
|
||||
msgstr "Surinkimai"
|
||||
Binary file not shown.
@ -1,188 +0,0 @@
|
||||
# English translations for sphinx_rtd_theme.
|
||||
# Copyright (C) 2019 ORGANIZATION
|
||||
# This file is distributed under the same license as the sphinx_rtd_theme
|
||||
# project.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2019.
|
||||
#
|
||||
# Translators:
|
||||
# Jesse Tan, 2021
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: sphinx_rtd_theme 0.4.3.dev0\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2022-11-04 12:02-0700\n"
|
||||
"PO-Revision-Date: 2019-07-16 21:44+0000\n"
|
||||
"Last-Translator: Jesse Tan, 2021\n"
|
||||
"Language-Team: Dutch (https://www.transifex.com/readthedocs/teams/101354/nl/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Generated-By: Babel 2.10.1\n"
|
||||
"Language: nl\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#. This is an ARIA section label for page links, including previous/next page
|
||||
#. link and links to GitHub/GitLab/etc.
|
||||
#: sphinx_rtd_theme/breadcrumbs.html:22
|
||||
msgid "Page navigation"
|
||||
msgstr "Paginanavigatie"
|
||||
|
||||
#: sphinx_rtd_theme/breadcrumbs.html:37 sphinx_rtd_theme/breadcrumbs.html:39
|
||||
msgid "Edit on GitHub"
|
||||
msgstr "Bewerk op GitHub"
|
||||
|
||||
#: sphinx_rtd_theme/breadcrumbs.html:44 sphinx_rtd_theme/breadcrumbs.html:46
|
||||
msgid "Edit on Bitbucket"
|
||||
msgstr "Bewerk op BitBucket"
|
||||
|
||||
#: sphinx_rtd_theme/breadcrumbs.html:51 sphinx_rtd_theme/breadcrumbs.html:53
|
||||
msgid "Edit on GitLab"
|
||||
msgstr "Bewerk op GitLab"
|
||||
|
||||
#: sphinx_rtd_theme/breadcrumbs.html:56 sphinx_rtd_theme/breadcrumbs.html:58
|
||||
msgid "View page source"
|
||||
msgstr "Bekijk paginabron"
|
||||
|
||||
#. This is an ARIA section label for sequential page links, such as previous
|
||||
#. and next page links.
|
||||
#: sphinx_rtd_theme/breadcrumbs.html:67
|
||||
msgid "Sequential page navigation"
|
||||
msgstr "Navigatie voor gerelateerde pagina's"
|
||||
|
||||
#: sphinx_rtd_theme/breadcrumbs.html:69 sphinx_rtd_theme/footer.html:6
|
||||
msgid "Previous"
|
||||
msgstr "Vorige"
|
||||
|
||||
#: sphinx_rtd_theme/breadcrumbs.html:72 sphinx_rtd_theme/footer.html:9
|
||||
msgid "Next"
|
||||
msgstr "Volgende"
|
||||
|
||||
#. This is an ARIA section label for the footer section of the page.
|
||||
#: sphinx_rtd_theme/footer.html:4
|
||||
msgid "Footer"
|
||||
msgstr "Voettekst"
|
||||
|
||||
#: sphinx_rtd_theme/footer.html:21
|
||||
#, python-format
|
||||
msgid "© <a href=\"%(path)s\">Copyright</a> %(copyright)s."
|
||||
msgstr "© <a href=\"%(path)s\">Copyright</a> %(copyright)s."
|
||||
|
||||
#: sphinx_rtd_theme/footer.html:23
|
||||
#, python-format
|
||||
msgid "© Copyright %(copyright)s."
|
||||
msgstr "© Copyright %(copyright)s."
|
||||
|
||||
#. Build is a noun, not a verb
|
||||
#: sphinx_rtd_theme/footer.html:30
|
||||
msgid "Build"
|
||||
msgstr "Bouwresultaat"
|
||||
|
||||
#. the phrase "revision" comes from Git, referring to a commit
|
||||
#: sphinx_rtd_theme/footer.html:36
|
||||
msgid "Revision"
|
||||
msgstr "Revisie"
|
||||
|
||||
#: sphinx_rtd_theme/footer.html:41
|
||||
#, python-format
|
||||
msgid "Last updated on %(last_updated)s."
|
||||
msgstr "Laatste update op %(last_updated)s."
|
||||
|
||||
#. the variable "sphinx_web" is a link to the Sphinx project documentation
|
||||
#. with
|
||||
#. the text "Sphinx"
|
||||
#: sphinx_rtd_theme/footer.html:53
|
||||
#, python-format
|
||||
msgid "Built with %(sphinx_web)s using a"
|
||||
msgstr "Gebouwd met %(sphinx_web)s met een"
|
||||
|
||||
#. "theme" refers to a theme for Sphinx, which alters the appearance of the
|
||||
#. generated documentation
|
||||
#: sphinx_rtd_theme/footer.html:55
|
||||
msgid "theme"
|
||||
msgstr "thema"
|
||||
|
||||
#. this is always used as "provided by Read the Docs", and should not imply
|
||||
#. Read the Docs is an author of the generated documentation.
|
||||
#: sphinx_rtd_theme/footer.html:57
|
||||
#, python-format
|
||||
msgid "provided by %(readthedocs_web)s"
|
||||
msgstr "geleverd door %(readthedocs_web)s"
|
||||
|
||||
#: sphinx_rtd_theme/layout.html:97
|
||||
#, python-format
|
||||
msgid "Search within %(docstitle)s"
|
||||
msgstr "Zoek binnen %(docstitle)s"
|
||||
|
||||
#: sphinx_rtd_theme/layout.html:105
|
||||
msgid "About these documents"
|
||||
msgstr "Over deze documenten"
|
||||
|
||||
#: sphinx_rtd_theme/layout.html:108
|
||||
msgid "Index"
|
||||
msgstr "Index"
|
||||
|
||||
#: sphinx_rtd_theme/layout.html:111 sphinx_rtd_theme/search.html:11
|
||||
msgid "Search"
|
||||
msgstr "Zoek"
|
||||
|
||||
#: sphinx_rtd_theme/layout.html:114
|
||||
msgid "Copyright"
|
||||
msgstr "Copyright"
|
||||
|
||||
#: sphinx_rtd_theme/layout.html:147 sphinx_rtd_theme/layout.html:149
|
||||
msgid "Logo"
|
||||
msgstr "Logo"
|
||||
|
||||
#. This is an ARIA section label for the main navigation menu
|
||||
#: sphinx_rtd_theme/layout.html:173
|
||||
msgid "Navigation menu"
|
||||
msgstr "Navigatiemenu"
|
||||
|
||||
#. This is an ARIA section label for the navigation menu that is visible when
|
||||
#. viewing the page on mobile devices
|
||||
#: sphinx_rtd_theme/layout.html:195
|
||||
msgid "Mobile navigation menu"
|
||||
msgstr "Navigatiemenu voor mobiel"
|
||||
|
||||
#: sphinx_rtd_theme/search.html:31
|
||||
msgid "Please activate JavaScript to enable the search functionality."
|
||||
msgstr "Zet JavaScript aan om de zoekfunctie mogelijk te maken."
|
||||
|
||||
#. Search is a noun, not a verb
|
||||
#: sphinx_rtd_theme/search.html:39
|
||||
msgid "Search Results"
|
||||
msgstr "Zoekresultaten"
|
||||
|
||||
#: sphinx_rtd_theme/search.html:41
|
||||
msgid ""
|
||||
"Your search did not match any documents. Please make sure that all words are"
|
||||
" spelled correctly and that you've selected enough categories."
|
||||
msgstr ""
|
||||
"Zoekpoging vond geen documenten. Zorg ervoor dat alle woorden correct zijn "
|
||||
"gespeld en dat voldoende categorieën zijn geselecteerd."
|
||||
|
||||
#: sphinx_rtd_theme/searchbox.html:4
|
||||
msgid "Search docs"
|
||||
msgstr "Zoek in documentatie"
|
||||
|
||||
#: sphinx_rtd_theme/versions.html:3 sphinx_rtd_theme/versions.html:11
|
||||
msgid "Versions"
|
||||
msgstr "Versies"
|
||||
|
||||
#: sphinx_rtd_theme/versions.html:17
|
||||
msgid "Downloads"
|
||||
msgstr "Downloads"
|
||||
|
||||
#. The phrase "Read the Docs" is not translated
|
||||
#: sphinx_rtd_theme/versions.html:24
|
||||
msgid "On Read the Docs"
|
||||
msgstr "Op Read the Docs"
|
||||
|
||||
#: sphinx_rtd_theme/versions.html:26
|
||||
msgid "Project Home"
|
||||
msgstr "Project Home"
|
||||
|
||||
#: sphinx_rtd_theme/versions.html:29
|
||||
msgid "Builds"
|
||||
msgstr "Bouwresultaten"
|
||||
Binary file not shown.
@ -1,137 +0,0 @@
|
||||
# English translations for sphinx_rtd_theme.
|
||||
# Copyright (C) 2019 ORGANIZATION
|
||||
# This file is distributed under the same license as the sphinx_rtd_theme
|
||||
# project.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2019.
|
||||
#
|
||||
# Translators:
|
||||
# Michal Sniatala, 2021
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: sphinx_rtd_theme 0.4.3.dev0\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2022-11-04 12:02-0700\n"
|
||||
"PO-Revision-Date: 2019-07-16 21:44+0000\n"
|
||||
"Last-Translator: Michal Sniatala, 2021\n"
|
||||
"Language-Team: Polish (https://www.transifex.com/readthedocs/teams/101354/pl/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Generated-By: Babel 2.10.1\n"
|
||||
"Language: pl\n"
|
||||
"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n"
|
||||
|
||||
#: sphinx_rtd_theme/breadcrumbs.html:37 sphinx_rtd_theme/breadcrumbs.html:39
|
||||
msgid "Edit on GitHub"
|
||||
msgstr "Edytuj na GitHub"
|
||||
|
||||
#: sphinx_rtd_theme/breadcrumbs.html:44 sphinx_rtd_theme/breadcrumbs.html:46
|
||||
msgid "Edit on Bitbucket"
|
||||
msgstr "Edytuj na Bitbucket"
|
||||
|
||||
#: sphinx_rtd_theme/breadcrumbs.html:51 sphinx_rtd_theme/breadcrumbs.html:53
|
||||
msgid "Edit on GitLab"
|
||||
msgstr "Edytuj na GitLab"
|
||||
|
||||
#: sphinx_rtd_theme/breadcrumbs.html:56 sphinx_rtd_theme/breadcrumbs.html:58
|
||||
msgid "View page source"
|
||||
msgstr "Zobacz źródło strony"
|
||||
|
||||
#: sphinx_rtd_theme/breadcrumbs.html:69 sphinx_rtd_theme/footer.html:6
|
||||
msgid "Previous"
|
||||
msgstr "Poprzedni"
|
||||
|
||||
#: sphinx_rtd_theme/breadcrumbs.html:72 sphinx_rtd_theme/footer.html:9
|
||||
msgid "Next"
|
||||
msgstr "Następny"
|
||||
|
||||
#: sphinx_rtd_theme/footer.html:21
|
||||
#, python-format
|
||||
msgid "© <a href=\"%(path)s\">Copyright</a> %(copyright)s."
|
||||
msgstr "© <a href=\"%(path)s\">Prawa zastrzeżone</a> %(copyright)s."
|
||||
|
||||
#: sphinx_rtd_theme/footer.html:23
|
||||
#, python-format
|
||||
msgid "© Copyright %(copyright)s."
|
||||
msgstr "© Prawa zastrzeżone %(copyright)s."
|
||||
|
||||
#: sphinx_rtd_theme/footer.html:41
|
||||
#, python-format
|
||||
msgid "Last updated on %(last_updated)s."
|
||||
msgstr "Ostatnia aktualizacja %(last_updated)s."
|
||||
|
||||
#. the variable "sphinx_web" is a link to the Sphinx project documentation
|
||||
#. with
|
||||
#. the text "Sphinx"
|
||||
#: sphinx_rtd_theme/footer.html:53
|
||||
#, python-format
|
||||
msgid "Built with %(sphinx_web)s using a"
|
||||
msgstr "Zbudowano w %(sphinx_web)s używając"
|
||||
|
||||
#. this is always used as "provided by Read the Docs", and should not imply
|
||||
#. Read the Docs is an author of the generated documentation.
|
||||
#: sphinx_rtd_theme/footer.html:57
|
||||
#, python-format
|
||||
msgid "provided by %(readthedocs_web)s"
|
||||
msgstr "dostarczone przez %(readthedocs_web)s"
|
||||
|
||||
#: sphinx_rtd_theme/layout.html:97
|
||||
#, python-format
|
||||
msgid "Search within %(docstitle)s"
|
||||
msgstr "Szukaj w %(docstitle)s"
|
||||
|
||||
#: sphinx_rtd_theme/layout.html:105
|
||||
msgid "About these documents"
|
||||
msgstr "O tych dokumentach"
|
||||
|
||||
#: sphinx_rtd_theme/layout.html:108
|
||||
msgid "Index"
|
||||
msgstr "Indeks"
|
||||
|
||||
#: sphinx_rtd_theme/layout.html:111 sphinx_rtd_theme/search.html:11
|
||||
msgid "Search"
|
||||
msgstr "Szukaj"
|
||||
|
||||
#: sphinx_rtd_theme/layout.html:114
|
||||
msgid "Copyright"
|
||||
msgstr "Prawa zastrzeżone"
|
||||
|
||||
#: sphinx_rtd_theme/search.html:31
|
||||
msgid "Please activate JavaScript to enable the search functionality."
|
||||
msgstr ""
|
||||
"Proszę aktywować obsługę JavaScript, aby włączyć funkcję wyszukiwania."
|
||||
|
||||
#. Search is a noun, not a verb
|
||||
#: sphinx_rtd_theme/search.html:39
|
||||
msgid "Search Results"
|
||||
msgstr "Wyniki wyszukiwania"
|
||||
|
||||
#: sphinx_rtd_theme/search.html:41
|
||||
msgid ""
|
||||
"Your search did not match any documents. Please make sure that all words are"
|
||||
" spelled correctly and that you've selected enough categories."
|
||||
msgstr ""
|
||||
"Nie znaleziono szukanej frazy. Upewnij się, że wszystkie słowa są napisane "
|
||||
"poprawnie i że wybrałeś wystarczającą liczbę kategorii."
|
||||
|
||||
#: sphinx_rtd_theme/searchbox.html:4
|
||||
msgid "Search docs"
|
||||
msgstr "Szukaj"
|
||||
|
||||
#: sphinx_rtd_theme/versions.html:3 sphinx_rtd_theme/versions.html:11
|
||||
msgid "Versions"
|
||||
msgstr "Wersje"
|
||||
|
||||
#: sphinx_rtd_theme/versions.html:17
|
||||
msgid "Downloads"
|
||||
msgstr "Pobrania"
|
||||
|
||||
#. The phrase "Read the Docs" is not translated
|
||||
#: sphinx_rtd_theme/versions.html:24
|
||||
msgid "On Read the Docs"
|
||||
msgstr "Na Read the Docs"
|
||||
|
||||
#: sphinx_rtd_theme/versions.html:26
|
||||
msgid "Project Home"
|
||||
msgstr "Strona projektu"
|
||||
Binary file not shown.
@ -1,161 +0,0 @@
|
||||
# English translations for sphinx_rtd_theme.
|
||||
# Copyright (C) 2019 ORGANIZATION
|
||||
# This file is distributed under the same license as the sphinx_rtd_theme
|
||||
# project.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2019.
|
||||
#
|
||||
# Translators:
|
||||
# Ana Costa <anacosta.xl@gmail.com>, 2021
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: sphinx_rtd_theme 0.4.3.dev0\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2022-11-04 12:02-0700\n"
|
||||
"PO-Revision-Date: 2019-07-16 21:44+0000\n"
|
||||
"Last-Translator: Ana Costa <anacosta.xl@gmail.com>, 2021\n"
|
||||
"Language-Team: Portuguese (https://www.transifex.com/readthedocs/teams/101354/pt/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Generated-By: Babel 2.10.1\n"
|
||||
"Language: pt\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"
|
||||
|
||||
#. This is an ARIA section label for page links, including previous/next page
|
||||
#. link and links to GitHub/GitLab/etc.
|
||||
#: sphinx_rtd_theme/breadcrumbs.html:22
|
||||
msgid "Page navigation"
|
||||
msgstr "Navegação da página"
|
||||
|
||||
#: sphinx_rtd_theme/breadcrumbs.html:37 sphinx_rtd_theme/breadcrumbs.html:39
|
||||
msgid "Edit on GitHub"
|
||||
msgstr "Editar no GitHub"
|
||||
|
||||
#: sphinx_rtd_theme/breadcrumbs.html:44 sphinx_rtd_theme/breadcrumbs.html:46
|
||||
msgid "Edit on Bitbucket"
|
||||
msgstr "Editar no Bitbucket"
|
||||
|
||||
#: sphinx_rtd_theme/breadcrumbs.html:51 sphinx_rtd_theme/breadcrumbs.html:53
|
||||
msgid "Edit on GitLab"
|
||||
msgstr "Editar no GitLab"
|
||||
|
||||
#: sphinx_rtd_theme/breadcrumbs.html:56 sphinx_rtd_theme/breadcrumbs.html:58
|
||||
msgid "View page source"
|
||||
msgstr "Ver código-fonte da página"
|
||||
|
||||
#. This is an ARIA section label for sequential page links, such as previous
|
||||
#. and next page links.
|
||||
#: sphinx_rtd_theme/breadcrumbs.html:67
|
||||
msgid "Sequential page navigation"
|
||||
msgstr "Navegação sequencial da página"
|
||||
|
||||
#: sphinx_rtd_theme/breadcrumbs.html:69 sphinx_rtd_theme/footer.html:6
|
||||
msgid "Previous"
|
||||
msgstr "Anterior"
|
||||
|
||||
#: sphinx_rtd_theme/breadcrumbs.html:72 sphinx_rtd_theme/footer.html:9
|
||||
msgid "Next"
|
||||
msgstr "Seguinte"
|
||||
|
||||
#. This is an ARIA section label for the footer section of the page.
|
||||
#: sphinx_rtd_theme/footer.html:4
|
||||
msgid "Footer"
|
||||
msgstr "Rodapé"
|
||||
|
||||
#. the phrase "revision" comes from Git, referring to a commit
|
||||
#: sphinx_rtd_theme/footer.html:36
|
||||
msgid "Revision"
|
||||
msgstr "Revisão"
|
||||
|
||||
#: sphinx_rtd_theme/footer.html:41
|
||||
#, python-format
|
||||
msgid "Last updated on %(last_updated)s."
|
||||
msgstr "Última actualização em %(last_updated)s."
|
||||
|
||||
#. the variable "sphinx_web" is a link to the Sphinx project documentation
|
||||
#. with
|
||||
#. the text "Sphinx"
|
||||
#: sphinx_rtd_theme/footer.html:53
|
||||
#, python-format
|
||||
msgid "Built with %(sphinx_web)s using a"
|
||||
msgstr "Compilado com %(sphinx_web)s usando um"
|
||||
|
||||
#. "theme" refers to a theme for Sphinx, which alters the appearance of the
|
||||
#. generated documentation
|
||||
#: sphinx_rtd_theme/footer.html:55
|
||||
msgid "theme"
|
||||
msgstr "tema"
|
||||
|
||||
#. this is always used as "provided by Read the Docs", and should not imply
|
||||
#. Read the Docs is an author of the generated documentation.
|
||||
#: sphinx_rtd_theme/footer.html:57
|
||||
#, python-format
|
||||
msgid "provided by %(readthedocs_web)s"
|
||||
msgstr "fornecido por %(readthedocs_web)s"
|
||||
|
||||
#: sphinx_rtd_theme/layout.html:97
|
||||
#, python-format
|
||||
msgid "Search within %(docstitle)s"
|
||||
msgstr "Procurar em %(docstitle)s"
|
||||
|
||||
#: sphinx_rtd_theme/layout.html:105
|
||||
msgid "About these documents"
|
||||
msgstr "Sobre estes documentos"
|
||||
|
||||
#: sphinx_rtd_theme/layout.html:108
|
||||
msgid "Index"
|
||||
msgstr "Índice"
|
||||
|
||||
#: sphinx_rtd_theme/layout.html:111 sphinx_rtd_theme/search.html:11
|
||||
msgid "Search"
|
||||
msgstr "Pesquisar"
|
||||
|
||||
#: sphinx_rtd_theme/layout.html:147 sphinx_rtd_theme/layout.html:149
|
||||
msgid "Logo"
|
||||
msgstr "Logo"
|
||||
|
||||
#. This is an ARIA section label for the main navigation menu
|
||||
#: sphinx_rtd_theme/layout.html:173
|
||||
msgid "Navigation menu"
|
||||
msgstr "Menu de navegação"
|
||||
|
||||
#. This is an ARIA section label for the navigation menu that is visible when
|
||||
#. viewing the page on mobile devices
|
||||
#: sphinx_rtd_theme/layout.html:195
|
||||
msgid "Mobile navigation menu"
|
||||
msgstr "Menu de navegação móvel"
|
||||
|
||||
#: sphinx_rtd_theme/search.html:31
|
||||
msgid "Please activate JavaScript to enable the search functionality."
|
||||
msgstr "Por favor, active o JavaScript para permitir a função de pesquisa."
|
||||
|
||||
#. Search is a noun, not a verb
|
||||
#: sphinx_rtd_theme/search.html:39
|
||||
msgid "Search Results"
|
||||
msgstr "Resultados de Pesquisa"
|
||||
|
||||
#: sphinx_rtd_theme/search.html:41
|
||||
msgid ""
|
||||
"Your search did not match any documents. Please make sure that all words are"
|
||||
" spelled correctly and that you've selected enough categories."
|
||||
msgstr ""
|
||||
"A sua pesquisa não encontrou nenhum documento. Por favor confirme que todas "
|
||||
"as palavras estão bem escritas e que selecionou categorias suficientes."
|
||||
|
||||
#: sphinx_rtd_theme/searchbox.html:4
|
||||
msgid "Search docs"
|
||||
msgstr "Pesquisar docs"
|
||||
|
||||
#: sphinx_rtd_theme/versions.html:3 sphinx_rtd_theme/versions.html:11
|
||||
msgid "Versions"
|
||||
msgstr "Versões"
|
||||
|
||||
#: sphinx_rtd_theme/versions.html:17
|
||||
msgid "Downloads"
|
||||
msgstr "Transferências"
|
||||
|
||||
#. The phrase "Read the Docs" is not translated
|
||||
#: sphinx_rtd_theme/versions.html:24
|
||||
msgid "On Read the Docs"
|
||||
msgstr "No Read the Docs"
|
||||
Binary file not shown.
@ -1,191 +0,0 @@
|
||||
# English translations for sphinx_rtd_theme.
|
||||
# Copyright (C) 2019 ORGANIZATION
|
||||
# This file is distributed under the same license as the sphinx_rtd_theme
|
||||
# project.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2019.
|
||||
#
|
||||
# Translators:
|
||||
# Rafael Fontenelle <rffontenelle@gmail.com>, 2021
|
||||
# Wellington Uemura <wellingtonuemura@gmail.com>, 2022
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: sphinx_rtd_theme 0.4.3.dev0\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2022-11-04 12:02-0700\n"
|
||||
"PO-Revision-Date: 2019-07-16 21:44+0000\n"
|
||||
"Last-Translator: Wellington Uemura <wellingtonuemura@gmail.com>, 2022\n"
|
||||
"Language-Team: Portuguese (Brazil) (https://www.transifex.com/readthedocs/teams/101354/pt_BR/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Generated-By: Babel 2.10.1\n"
|
||||
"Language: pt_BR\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"
|
||||
|
||||
#. This is an ARIA section label for page links, including previous/next page
|
||||
#. link and links to GitHub/GitLab/etc.
|
||||
#: sphinx_rtd_theme/breadcrumbs.html:22
|
||||
msgid "Page navigation"
|
||||
msgstr "Navegação da página"
|
||||
|
||||
#: sphinx_rtd_theme/breadcrumbs.html:37 sphinx_rtd_theme/breadcrumbs.html:39
|
||||
msgid "Edit on GitHub"
|
||||
msgstr "Editar no GitHub"
|
||||
|
||||
#: sphinx_rtd_theme/breadcrumbs.html:44 sphinx_rtd_theme/breadcrumbs.html:46
|
||||
msgid "Edit on Bitbucket"
|
||||
msgstr "Editar no Bitbucket"
|
||||
|
||||
#: sphinx_rtd_theme/breadcrumbs.html:51 sphinx_rtd_theme/breadcrumbs.html:53
|
||||
msgid "Edit on GitLab"
|
||||
msgstr "Editar no GitLab"
|
||||
|
||||
#: sphinx_rtd_theme/breadcrumbs.html:56 sphinx_rtd_theme/breadcrumbs.html:58
|
||||
msgid "View page source"
|
||||
msgstr "Ver código-fonte da página"
|
||||
|
||||
#. This is an ARIA section label for sequential page links, such as previous
|
||||
#. and next page links.
|
||||
#: sphinx_rtd_theme/breadcrumbs.html:67
|
||||
msgid "Sequential page navigation"
|
||||
msgstr "Navegação sequencial da página"
|
||||
|
||||
#: sphinx_rtd_theme/breadcrumbs.html:69 sphinx_rtd_theme/footer.html:6
|
||||
msgid "Previous"
|
||||
msgstr "Anterior"
|
||||
|
||||
#: sphinx_rtd_theme/breadcrumbs.html:72 sphinx_rtd_theme/footer.html:9
|
||||
msgid "Next"
|
||||
msgstr "Próximo"
|
||||
|
||||
#. This is an ARIA section label for the footer section of the page.
|
||||
#: sphinx_rtd_theme/footer.html:4
|
||||
msgid "Footer"
|
||||
msgstr "Rodapé"
|
||||
|
||||
#: sphinx_rtd_theme/footer.html:21
|
||||
#, python-format
|
||||
msgid "© <a href=\"%(path)s\">Copyright</a> %(copyright)s."
|
||||
msgstr "© <a href=\"%(path)s\">Direitos autorais</a> %(copyright)s."
|
||||
|
||||
#: sphinx_rtd_theme/footer.html:23
|
||||
#, python-format
|
||||
msgid "© Copyright %(copyright)s."
|
||||
msgstr "© Direitos autorais %(copyright)s."
|
||||
|
||||
#. Build is a noun, not a verb
|
||||
#: sphinx_rtd_theme/footer.html:30
|
||||
msgid "Build"
|
||||
msgstr "Compilação"
|
||||
|
||||
#. the phrase "revision" comes from Git, referring to a commit
|
||||
#: sphinx_rtd_theme/footer.html:36
|
||||
msgid "Revision"
|
||||
msgstr "Revisão"
|
||||
|
||||
#: sphinx_rtd_theme/footer.html:41
|
||||
#, python-format
|
||||
msgid "Last updated on %(last_updated)s."
|
||||
msgstr "Última atualização em %(last_updated)s."
|
||||
|
||||
#. the variable "sphinx_web" is a link to the Sphinx project documentation
|
||||
#. with
|
||||
#. the text "Sphinx"
|
||||
#: sphinx_rtd_theme/footer.html:53
|
||||
#, python-format
|
||||
msgid "Built with %(sphinx_web)s using a"
|
||||
msgstr "Compilado com %(sphinx_web)s usando um"
|
||||
|
||||
#. "theme" refers to a theme for Sphinx, which alters the appearance of the
|
||||
#. generated documentation
|
||||
#: sphinx_rtd_theme/footer.html:55
|
||||
msgid "theme"
|
||||
msgstr "tema"
|
||||
|
||||
#. this is always used as "provided by Read the Docs", and should not imply
|
||||
#. Read the Docs is an author of the generated documentation.
|
||||
#: sphinx_rtd_theme/footer.html:57
|
||||
#, python-format
|
||||
msgid "provided by %(readthedocs_web)s"
|
||||
msgstr "fornecido por %(readthedocs_web)s"
|
||||
|
||||
#: sphinx_rtd_theme/layout.html:97
|
||||
#, python-format
|
||||
msgid "Search within %(docstitle)s"
|
||||
msgstr "Pesquisar em %(docstitle)s"
|
||||
|
||||
#: sphinx_rtd_theme/layout.html:105
|
||||
msgid "About these documents"
|
||||
msgstr "Sobre esses documentos"
|
||||
|
||||
#: sphinx_rtd_theme/layout.html:108
|
||||
msgid "Index"
|
||||
msgstr "Índice"
|
||||
|
||||
#: sphinx_rtd_theme/layout.html:111 sphinx_rtd_theme/search.html:11
|
||||
msgid "Search"
|
||||
msgstr "Pesquisar"
|
||||
|
||||
#: sphinx_rtd_theme/layout.html:114
|
||||
msgid "Copyright"
|
||||
msgstr "Copyright"
|
||||
|
||||
#: sphinx_rtd_theme/layout.html:147 sphinx_rtd_theme/layout.html:149
|
||||
msgid "Logo"
|
||||
msgstr "Logo"
|
||||
|
||||
#. This is an ARIA section label for the main navigation menu
|
||||
#: sphinx_rtd_theme/layout.html:173
|
||||
msgid "Navigation menu"
|
||||
msgstr "Menu de navegação"
|
||||
|
||||
#. This is an ARIA section label for the navigation menu that is visible when
|
||||
#. viewing the page on mobile devices
|
||||
#: sphinx_rtd_theme/layout.html:195
|
||||
msgid "Mobile navigation menu"
|
||||
msgstr "Menu de navegação móvel"
|
||||
|
||||
#: sphinx_rtd_theme/search.html:31
|
||||
msgid "Please activate JavaScript to enable the search functionality."
|
||||
msgstr ""
|
||||
"Por favor, ative JavaScript para habilitar a funcionalidade de pesquisa."
|
||||
|
||||
#. Search is a noun, not a verb
|
||||
#: sphinx_rtd_theme/search.html:39
|
||||
msgid "Search Results"
|
||||
msgstr "Resultados da pesquisa"
|
||||
|
||||
#: sphinx_rtd_theme/search.html:41
|
||||
msgid ""
|
||||
"Your search did not match any documents. Please make sure that all words are"
|
||||
" spelled correctly and that you've selected enough categories."
|
||||
msgstr ""
|
||||
"A sua pesquisa não encontrou nenhum documento correspondente. Verifique se "
|
||||
"todas as palavras estão escritas corretamente e se você selecionou "
|
||||
"categorias suficientes."
|
||||
|
||||
#: sphinx_rtd_theme/searchbox.html:4
|
||||
msgid "Search docs"
|
||||
msgstr "Pesquisar documentos"
|
||||
|
||||
#: sphinx_rtd_theme/versions.html:3 sphinx_rtd_theme/versions.html:11
|
||||
msgid "Versions"
|
||||
msgstr "Versões"
|
||||
|
||||
#: sphinx_rtd_theme/versions.html:17
|
||||
msgid "Downloads"
|
||||
msgstr "Downloads"
|
||||
|
||||
#. The phrase "Read the Docs" is not translated
|
||||
#: sphinx_rtd_theme/versions.html:24
|
||||
msgid "On Read the Docs"
|
||||
msgstr "No Read the Docs"
|
||||
|
||||
#: sphinx_rtd_theme/versions.html:26
|
||||
msgid "Project Home"
|
||||
msgstr "Página inicial"
|
||||
|
||||
#: sphinx_rtd_theme/versions.html:29
|
||||
msgid "Builds"
|
||||
msgstr "Compilações"
|
||||
Binary file not shown.
@ -1,189 +0,0 @@
|
||||
# English translations for sphinx_rtd_theme.
|
||||
# Copyright (C) 2019 ORGANIZATION
|
||||
# This file is distributed under the same license as the sphinx_rtd_theme
|
||||
# project.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2019.
|
||||
#
|
||||
# Translators:
|
||||
# lvv83 <vlozhkin83@gmail.com>, 2019
|
||||
# Dmitry Shachnev <mitya57@gmail.com>, 2021
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: sphinx_rtd_theme 0.4.3.dev0\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2022-11-04 12:02-0700\n"
|
||||
"PO-Revision-Date: 2019-07-16 21:44+0000\n"
|
||||
"Last-Translator: Dmitry Shachnev <mitya57@gmail.com>, 2021\n"
|
||||
"Language-Team: Russian (https://www.transifex.com/readthedocs/teams/101354/ru/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Generated-By: Babel 2.10.1\n"
|
||||
"Language: ru\n"
|
||||
"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n"
|
||||
|
||||
#. This is an ARIA section label for page links, including previous/next page
|
||||
#. link and links to GitHub/GitLab/etc.
|
||||
#: sphinx_rtd_theme/breadcrumbs.html:22
|
||||
msgid "Page navigation"
|
||||
msgstr "Навигация по страницам"
|
||||
|
||||
#: sphinx_rtd_theme/breadcrumbs.html:37 sphinx_rtd_theme/breadcrumbs.html:39
|
||||
msgid "Edit on GitHub"
|
||||
msgstr "Редактировать на GitHub"
|
||||
|
||||
#: sphinx_rtd_theme/breadcrumbs.html:44 sphinx_rtd_theme/breadcrumbs.html:46
|
||||
msgid "Edit on Bitbucket"
|
||||
msgstr "Редактировать на BitBucket"
|
||||
|
||||
#: sphinx_rtd_theme/breadcrumbs.html:51 sphinx_rtd_theme/breadcrumbs.html:53
|
||||
msgid "Edit on GitLab"
|
||||
msgstr "Редактировать на GitLab"
|
||||
|
||||
#: sphinx_rtd_theme/breadcrumbs.html:56 sphinx_rtd_theme/breadcrumbs.html:58
|
||||
msgid "View page source"
|
||||
msgstr "Просмотреть исходный код страницы"
|
||||
|
||||
#. This is an ARIA section label for sequential page links, such as previous
|
||||
#. and next page links.
|
||||
#: sphinx_rtd_theme/breadcrumbs.html:67
|
||||
msgid "Sequential page navigation"
|
||||
msgstr "Навигация по соседним страницам"
|
||||
|
||||
#: sphinx_rtd_theme/breadcrumbs.html:69 sphinx_rtd_theme/footer.html:6
|
||||
msgid "Previous"
|
||||
msgstr "Предыдущая"
|
||||
|
||||
#: sphinx_rtd_theme/breadcrumbs.html:72 sphinx_rtd_theme/footer.html:9
|
||||
msgid "Next"
|
||||
msgstr "Следующая"
|
||||
|
||||
#. This is an ARIA section label for the footer section of the page.
|
||||
#: sphinx_rtd_theme/footer.html:4
|
||||
msgid "Footer"
|
||||
msgstr "Нижняя область"
|
||||
|
||||
#: sphinx_rtd_theme/footer.html:21
|
||||
#, python-format
|
||||
msgid "© <a href=\"%(path)s\">Copyright</a> %(copyright)s."
|
||||
msgstr "© <a href=\"%(path)s\">Авторские права</a> %(copyright)s. "
|
||||
|
||||
#: sphinx_rtd_theme/footer.html:23
|
||||
#, python-format
|
||||
msgid "© Copyright %(copyright)s."
|
||||
msgstr "© Авторские права %(copyright)s. "
|
||||
|
||||
#. Build is a noun, not a verb
|
||||
#: sphinx_rtd_theme/footer.html:30
|
||||
msgid "Build"
|
||||
msgstr "Сборка"
|
||||
|
||||
#. the phrase "revision" comes from Git, referring to a commit
|
||||
#: sphinx_rtd_theme/footer.html:36
|
||||
msgid "Revision"
|
||||
msgstr "Ревизия"
|
||||
|
||||
#: sphinx_rtd_theme/footer.html:41
|
||||
#, python-format
|
||||
msgid "Last updated on %(last_updated)s."
|
||||
msgstr "Последний раз обновлено %(last_updated)s."
|
||||
|
||||
#. the variable "sphinx_web" is a link to the Sphinx project documentation
|
||||
#. with
|
||||
#. the text "Sphinx"
|
||||
#: sphinx_rtd_theme/footer.html:53
|
||||
#, python-format
|
||||
msgid "Built with %(sphinx_web)s using a"
|
||||
msgstr "Собрано при помощи %(sphinx_web)s с использованием"
|
||||
|
||||
#. "theme" refers to a theme for Sphinx, which alters the appearance of the
|
||||
#. generated documentation
|
||||
#: sphinx_rtd_theme/footer.html:55
|
||||
msgid "theme"
|
||||
msgstr "темы,"
|
||||
|
||||
#. this is always used as "provided by Read the Docs", and should not imply
|
||||
#. Read the Docs is an author of the generated documentation.
|
||||
#: sphinx_rtd_theme/footer.html:57
|
||||
#, python-format
|
||||
msgid "provided by %(readthedocs_web)s"
|
||||
msgstr "предоставленной %(readthedocs_web)s"
|
||||
|
||||
#: sphinx_rtd_theme/layout.html:97
|
||||
#, python-format
|
||||
msgid "Search within %(docstitle)s"
|
||||
msgstr "Поиск в %(docstitle)s"
|
||||
|
||||
#: sphinx_rtd_theme/layout.html:105
|
||||
msgid "About these documents"
|
||||
msgstr "Об этих документах"
|
||||
|
||||
#: sphinx_rtd_theme/layout.html:108
|
||||
msgid "Index"
|
||||
msgstr "Алфавитный указатель"
|
||||
|
||||
#: sphinx_rtd_theme/layout.html:111 sphinx_rtd_theme/search.html:11
|
||||
msgid "Search"
|
||||
msgstr "Поиск"
|
||||
|
||||
#: sphinx_rtd_theme/layout.html:114
|
||||
msgid "Copyright"
|
||||
msgstr "Авторские права"
|
||||
|
||||
#: sphinx_rtd_theme/layout.html:147 sphinx_rtd_theme/layout.html:149
|
||||
msgid "Logo"
|
||||
msgstr "Логотип"
|
||||
|
||||
#. This is an ARIA section label for the main navigation menu
|
||||
#: sphinx_rtd_theme/layout.html:173
|
||||
msgid "Navigation menu"
|
||||
msgstr "Меню навигации"
|
||||
|
||||
#. This is an ARIA section label for the navigation menu that is visible when
|
||||
#. viewing the page on mobile devices
|
||||
#: sphinx_rtd_theme/layout.html:195
|
||||
msgid "Mobile navigation menu"
|
||||
msgstr "Меню навигации для мобильных устройств"
|
||||
|
||||
#: sphinx_rtd_theme/search.html:31
|
||||
msgid "Please activate JavaScript to enable the search functionality."
|
||||
msgstr "Активируйте JavaScript, чтобы использовать функционал поиска."
|
||||
|
||||
#. Search is a noun, not a verb
|
||||
#: sphinx_rtd_theme/search.html:39
|
||||
msgid "Search Results"
|
||||
msgstr "Результаты поиска"
|
||||
|
||||
#: sphinx_rtd_theme/search.html:41
|
||||
msgid ""
|
||||
"Your search did not match any documents. Please make sure that all words are"
|
||||
" spelled correctly and that you've selected enough categories."
|
||||
msgstr ""
|
||||
"По Вашему запросу не найдено результатов. Пожалуйста, проверьте, что все "
|
||||
"слова написаны правильно, и Вы выбрали нужные категории."
|
||||
|
||||
#: sphinx_rtd_theme/searchbox.html:4
|
||||
msgid "Search docs"
|
||||
msgstr "Поиск в документации"
|
||||
|
||||
#: sphinx_rtd_theme/versions.html:3 sphinx_rtd_theme/versions.html:11
|
||||
msgid "Versions"
|
||||
msgstr "Версии"
|
||||
|
||||
#: sphinx_rtd_theme/versions.html:17
|
||||
msgid "Downloads"
|
||||
msgstr "Загрузки"
|
||||
|
||||
#. The phrase "Read the Docs" is not translated
|
||||
#: sphinx_rtd_theme/versions.html:24
|
||||
msgid "On Read the Docs"
|
||||
msgstr "На Read the Docs"
|
||||
|
||||
#: sphinx_rtd_theme/versions.html:26
|
||||
msgid "Project Home"
|
||||
msgstr "Домашняя страница проекта"
|
||||
|
||||
#: sphinx_rtd_theme/versions.html:29
|
||||
msgid "Builds"
|
||||
msgstr "Сборки"
|
||||
@ -1,22 +1,22 @@
|
||||
# Translations template for sphinx_rtd_theme.
|
||||
# Copyright (C) 2022 ORGANIZATION
|
||||
# Copyright (C) 2023 ORGANIZATION
|
||||
# This file is distributed under the same license as the sphinx_rtd_theme
|
||||
# project.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2022.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2023.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: sphinx_rtd_theme 1.1.1\n"
|
||||
"Project-Id-Version: sphinx_rtd_theme 1.2.0rc4\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2022-11-04 12:02-0700\n"
|
||||
"POT-Creation-Date: 2023-02-06 15:36+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Generated-By: Babel 2.10.1\n"
|
||||
"Generated-By: Babel 2.11.0\n"
|
||||
|
||||
#. This is an ARIA section label for page links, including previous/next page
|
||||
#. link and links to GitHub/GitLab/etc.
|
||||
@ -125,18 +125,18 @@ msgstr ""
|
||||
msgid "Copyright"
|
||||
msgstr ""
|
||||
|
||||
#: sphinx_rtd_theme/layout.html:147 sphinx_rtd_theme/layout.html:149
|
||||
#: sphinx_rtd_theme/layout.html:143
|
||||
msgid "Logo"
|
||||
msgstr ""
|
||||
|
||||
#. This is an ARIA section label for the main navigation menu
|
||||
#: sphinx_rtd_theme/layout.html:173
|
||||
#: sphinx_rtd_theme/layout.html:166
|
||||
msgid "Navigation menu"
|
||||
msgstr ""
|
||||
|
||||
#. This is an ARIA section label for the navigation menu that is visible when
|
||||
#. viewing the page on mobile devices
|
||||
#: sphinx_rtd_theme/layout.html:195
|
||||
#: sphinx_rtd_theme/layout.html:188
|
||||
msgid "Mobile navigation menu"
|
||||
msgstr ""
|
||||
|
||||
|
||||
Binary file not shown.
@ -1,151 +0,0 @@
|
||||
# English translations for sphinx_rtd_theme.
|
||||
# Copyright (C) 2019 ORGANIZATION
|
||||
# This file is distributed under the same license as the sphinx_rtd_theme
|
||||
# project.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2019.
|
||||
#
|
||||
# Translators:
|
||||
# Daniel Holmberg <daniel.holmberg97@gmail.com>, 2020
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: sphinx_rtd_theme 0.4.3.dev0\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2022-11-04 12:02-0700\n"
|
||||
"PO-Revision-Date: 2019-07-16 21:44+0000\n"
|
||||
"Last-Translator: Daniel Holmberg <daniel.holmberg97@gmail.com>, 2020\n"
|
||||
"Language-Team: Swedish (https://www.transifex.com/readthedocs/teams/101354/sv/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Generated-By: Babel 2.10.1\n"
|
||||
"Language: sv\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: sphinx_rtd_theme/breadcrumbs.html:37 sphinx_rtd_theme/breadcrumbs.html:39
|
||||
msgid "Edit on GitHub"
|
||||
msgstr "Editera på GitHub"
|
||||
|
||||
#: sphinx_rtd_theme/breadcrumbs.html:44 sphinx_rtd_theme/breadcrumbs.html:46
|
||||
msgid "Edit on Bitbucket"
|
||||
msgstr "Editera på Bitbucket"
|
||||
|
||||
#: sphinx_rtd_theme/breadcrumbs.html:51 sphinx_rtd_theme/breadcrumbs.html:53
|
||||
msgid "Edit on GitLab"
|
||||
msgstr "Editera på GitLab"
|
||||
|
||||
#: sphinx_rtd_theme/breadcrumbs.html:56 sphinx_rtd_theme/breadcrumbs.html:58
|
||||
msgid "View page source"
|
||||
msgstr "Visa sidkälla"
|
||||
|
||||
#: sphinx_rtd_theme/breadcrumbs.html:69 sphinx_rtd_theme/footer.html:6
|
||||
msgid "Previous"
|
||||
msgstr "Tillbaka"
|
||||
|
||||
#: sphinx_rtd_theme/breadcrumbs.html:72 sphinx_rtd_theme/footer.html:9
|
||||
msgid "Next"
|
||||
msgstr "Nästa"
|
||||
|
||||
#. Build is a noun, not a verb
|
||||
#: sphinx_rtd_theme/footer.html:30
|
||||
msgid "Build"
|
||||
msgstr "Bygg"
|
||||
|
||||
#. the phrase "revision" comes from Git, referring to a commit
|
||||
#: sphinx_rtd_theme/footer.html:36
|
||||
msgid "Revision"
|
||||
msgstr "Ändra"
|
||||
|
||||
#: sphinx_rtd_theme/footer.html:41
|
||||
#, python-format
|
||||
msgid "Last updated on %(last_updated)s."
|
||||
msgstr "Senast uppdaterad %(last_updated)s."
|
||||
|
||||
#. the variable "sphinx_web" is a link to the Sphinx project documentation
|
||||
#. with
|
||||
#. the text "Sphinx"
|
||||
#: sphinx_rtd_theme/footer.html:53
|
||||
#, python-format
|
||||
msgid "Built with %(sphinx_web)s using a"
|
||||
msgstr "Gjord med %(sphinx_web)s med hjälp av"
|
||||
|
||||
#. "theme" refers to a theme for Sphinx, which alters the appearance of the
|
||||
#. generated documentation
|
||||
#: sphinx_rtd_theme/footer.html:55
|
||||
msgid "theme"
|
||||
msgstr "tema"
|
||||
|
||||
#. this is always used as "provided by Read the Docs", and should not imply
|
||||
#. Read the Docs is an author of the generated documentation.
|
||||
#: sphinx_rtd_theme/footer.html:57
|
||||
#, python-format
|
||||
msgid "provided by %(readthedocs_web)s"
|
||||
msgstr "erhållet av %(readthedocs_web)s"
|
||||
|
||||
#: sphinx_rtd_theme/layout.html:97
|
||||
#, python-format
|
||||
msgid "Search within %(docstitle)s"
|
||||
msgstr "Sök i %(docstitle)s"
|
||||
|
||||
#: sphinx_rtd_theme/layout.html:105
|
||||
msgid "About these documents"
|
||||
msgstr "Om dessa dokument"
|
||||
|
||||
#: sphinx_rtd_theme/layout.html:108
|
||||
msgid "Index"
|
||||
msgstr "Index"
|
||||
|
||||
#: sphinx_rtd_theme/layout.html:111 sphinx_rtd_theme/search.html:11
|
||||
msgid "Search"
|
||||
msgstr "Sök"
|
||||
|
||||
#: sphinx_rtd_theme/layout.html:114
|
||||
msgid "Copyright"
|
||||
msgstr "Upphovsrätt"
|
||||
|
||||
#: sphinx_rtd_theme/layout.html:147 sphinx_rtd_theme/layout.html:149
|
||||
msgid "Logo"
|
||||
msgstr "Logo"
|
||||
|
||||
#: sphinx_rtd_theme/search.html:31
|
||||
msgid "Please activate JavaScript to enable the search functionality."
|
||||
msgstr ""
|
||||
"Var vänlig och aktivera JavaScript för att möjliggöra sökfunktionaliteten."
|
||||
|
||||
#. Search is a noun, not a verb
|
||||
#: sphinx_rtd_theme/search.html:39
|
||||
msgid "Search Results"
|
||||
msgstr "Sökresultat"
|
||||
|
||||
#: sphinx_rtd_theme/search.html:41
|
||||
msgid ""
|
||||
"Your search did not match any documents. Please make sure that all words are"
|
||||
" spelled correctly and that you've selected enough categories."
|
||||
msgstr ""
|
||||
"Din sökning gav inga träffar. Var vänlig och se till att alla ord är rätt "
|
||||
"stavade och att du har valt tillräckligt många kategorier."
|
||||
|
||||
#: sphinx_rtd_theme/searchbox.html:4
|
||||
msgid "Search docs"
|
||||
msgstr "Sök i dokumentationen"
|
||||
|
||||
#: sphinx_rtd_theme/versions.html:3 sphinx_rtd_theme/versions.html:11
|
||||
msgid "Versions"
|
||||
msgstr "Versioner"
|
||||
|
||||
#: sphinx_rtd_theme/versions.html:17
|
||||
msgid "Downloads"
|
||||
msgstr "Nerladdningar"
|
||||
|
||||
#. The phrase "Read the Docs" is not translated
|
||||
#: sphinx_rtd_theme/versions.html:24
|
||||
msgid "On Read the Docs"
|
||||
msgstr "På Read the Docs"
|
||||
|
||||
#: sphinx_rtd_theme/versions.html:26
|
||||
msgid "Project Home"
|
||||
msgstr "Projekt Hem"
|
||||
|
||||
#: sphinx_rtd_theme/versions.html:29
|
||||
msgid "Builds"
|
||||
msgstr "Versioner"
|
||||
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user