Merge remote-tracking branch 'github/develop' into collected-small-fixes
This commit is contained in:
43
doc/Makefile
43
doc/Makefile
@ -17,9 +17,11 @@ MATHJAXTAG = 3.2.2
|
|||||||
|
|
||||||
PYTHON = $(word 3,$(shell type python3))
|
PYTHON = $(word 3,$(shell type python3))
|
||||||
DOXYGEN = $(word 3,$(shell type doxygen))
|
DOXYGEN = $(word 3,$(shell type doxygen))
|
||||||
|
PANDOC = $(word 3,$(shell type pandoc))
|
||||||
HAS_PYTHON3 = NO
|
HAS_PYTHON3 = NO
|
||||||
HAS_DOXYGEN = NO
|
HAS_DOXYGEN = NO
|
||||||
HAS_PDFLATEX = NO
|
HAS_PDFLATEX = NO
|
||||||
|
HAS_PANDOC = NO
|
||||||
|
|
||||||
ifeq ($(shell type python3 >/dev/null 2>&1; echo $$?), 0)
|
ifeq ($(shell type python3 >/dev/null 2>&1; echo $$?), 0)
|
||||||
HAS_PYTHON3 = YES
|
HAS_PYTHON3 = YES
|
||||||
@ -31,10 +33,14 @@ endif
|
|||||||
|
|
||||||
ifeq ($(shell type pdflatex >/dev/null 2>&1; echo $$?), 0)
|
ifeq ($(shell type pdflatex >/dev/null 2>&1; echo $$?), 0)
|
||||||
ifeq ($(shell type latexmk >/dev/null 2>&1; echo $$?), 0)
|
ifeq ($(shell type latexmk >/dev/null 2>&1; echo $$?), 0)
|
||||||
HAS_PDFLATEX = YES
|
HAS_PDFLATEX = YES
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifeq ($(shell type pandoc >/dev/null 2>&1; echo $$?), 0)
|
||||||
|
HAS_PANDOC = YES
|
||||||
|
endif
|
||||||
|
|
||||||
# override settings for PIP commands
|
# override settings for PIP commands
|
||||||
# PIP_OPTIONS = --cert /etc/pki/ca-trust/extracted/openssl/ca-bundle.trust.crt --proxy http://proxy.mydomain.org
|
# PIP_OPTIONS = --cert /etc/pki/ca-trust/extracted/openssl/ca-bundle.trust.crt --proxy http://proxy.mydomain.org
|
||||||
|
|
||||||
@ -45,8 +51,9 @@ SPHINXEXTRA = -j $(shell $(PYTHON) -c 'import multiprocessing;print(multiprocess
|
|||||||
# we only want to use explicitly listed files.
|
# we only want to use explicitly listed files.
|
||||||
DOXYFILES = $(shell sed -n -e 's/\#.*$$//' -e '/^ *INPUT \+=/,/^[A-Z_]\+ \+=/p' doxygen/Doxyfile.in | sed -e 's/@LAMMPS_SOURCE_DIR@/..\/src/g' -e 's/\\//g' -e 's/ \+/ /' -e 's/[A-Z_]\+ \+= *\(YES\|NO\|\)//')
|
DOXYFILES = $(shell sed -n -e 's/\#.*$$//' -e '/^ *INPUT \+=/,/^[A-Z_]\+ \+=/p' doxygen/Doxyfile.in | sed -e 's/@LAMMPS_SOURCE_DIR@/..\/src/g' -e 's/\\//g' -e 's/ \+/ /' -e 's/[A-Z_]\+ \+= *\(YES\|NO\|\)//')
|
||||||
|
|
||||||
.PHONY: help clean-all clean clean-spelling epub mobi html pdf spelling anchor_check style_check char_check role_check xmlgen fasthtml
|
.PHONY: help clean-all clean clean-spelling epub mobi html pdf spelling anchor_check style_check char_check role_check xmlgen fasthtml fasthtml-init
|
||||||
|
|
||||||
|
FASTHTMLFILES = $(patsubst $(RSTDIR)/%.rst,fasthtml/%.html,$(wildcard $(RSTDIR)/*rst))
|
||||||
# ------------------------------------------
|
# ------------------------------------------
|
||||||
|
|
||||||
help:
|
help:
|
||||||
@ -116,25 +123,23 @@ html: xmlgen globbed-tocs $(VENV) $(SPHINXCONFIG)/conf.py $(ANCHORCHECK) $(MATHJ
|
|||||||
@rm -rf html/PDF/.[sg]*
|
@rm -rf html/PDF/.[sg]*
|
||||||
@echo "Build finished. The HTML pages are in doc/html."
|
@echo "Build finished. The HTML pages are in doc/html."
|
||||||
|
|
||||||
fasthtml: xmlgen globbed-tocs $(VENV) $(SPHINXCONFIG)/conf.py $(ANCHORCHECK) $(MATHJAX)
|
fasthtml: fasthtml-init $(FASTHTMLFILES)
|
||||||
@if [ "$(HAS_BASH)" == "NO" ] ; then echo "bash was not found at $(OSHELL)! Please use: $(MAKE) SHELL=/path/to/bash" 1>&2; exit 1; fi
|
|
||||||
@$(MAKE) $(MFLAGS) -C graphviz all
|
|
||||||
@mkdir -p fasthtml
|
|
||||||
@(\
|
|
||||||
. $(VENV)/bin/activate ; env PYTHONWARNINGS= PYTHONDONTWRITEBYTECODE=1 \
|
|
||||||
sphinx-build $(SPHINXEXTRA) -b html -c $(SPHINXCONFIG) -d $(BUILDDIR)/fasthtml/doctrees $(RSTDIR) fasthtml ;\
|
|
||||||
touch $(RSTDIR)/Fortran.rst ; env PYTHONWARNINGS= PYTHONDONTWRITEBYTECODE=1 \
|
|
||||||
sphinx-build $(SPHINXEXTRA) -b html -c $(SPHINXCONFIG) -d $(BUILDDIR)/fasthtml/doctrees $(RSTDIR) fasthtml ;\
|
|
||||||
deactivate ;\
|
|
||||||
)
|
|
||||||
@rm -rf fasthtml/_sources
|
|
||||||
@rm -rf fasthtml/PDF
|
|
||||||
@rm -rf fasthtml/USER
|
|
||||||
@rm -rf fasthtml/JPG
|
|
||||||
@cp -r src/PDF fasthtml/PDF
|
|
||||||
@rm -rf fasthtml/PDF/.[sg]*
|
|
||||||
@echo "Fast HTML build finished. The HTML pages are in doc/fasthtml."
|
@echo "Fast HTML build finished. The HTML pages are in doc/fasthtml."
|
||||||
|
|
||||||
|
fasthtml-init:
|
||||||
|
@mkdir -p fasthtml/JPG
|
||||||
|
@cp src/JPG/*.* fasthtml/JPG
|
||||||
|
@cp $(RSTDIR)/accel_styles.rst $(RSTDIR)/lepton_expression.rst fasthtml/
|
||||||
|
@cp $(BUILDDIR)/utils/pandoc.css fasthtml/
|
||||||
|
|
||||||
|
fasthtml/%.html: $(RSTDIR)/%.rst
|
||||||
|
@if [ "$(HAS_PANDOC)" == "NO" ] ; then echo "Make 'fasthtml' requires the 'pandoc' software" 1>&2; exit 1; fi
|
||||||
|
@mkdir -p fasthtml
|
||||||
|
@echo converting $< to $@
|
||||||
|
@sed -e 's/\\AA/\\mathring{\\mathrm{A}}/g' $< > fasthtml/$*.temp.rst
|
||||||
|
@pandoc -s --mathml --css="pandoc.css" --template=$(BUILDDIR)/utils/pandoc.html --metadata title="$@" -o $@ fasthtml/$*.temp.rst
|
||||||
|
@rm -f fasthtml/$*.temp.rst
|
||||||
|
|
||||||
spelling: xmlgen globbed-tocs $(SPHINXCONFIG)/conf.py $(VENV) $(SPHINXCONFIG)/false_positives.txt
|
spelling: xmlgen globbed-tocs $(SPHINXCONFIG)/conf.py $(VENV) $(SPHINXCONFIG)/false_positives.txt
|
||||||
@if [ "$(HAS_BASH)" == "NO" ] ; then echo "bash was not found at $(OSHELL)! Please use: $(MAKE) SHELL=/path/to/bash" 1>&2; exit 1; fi
|
@if [ "$(HAS_BASH)" == "NO" ] ; then echo "bash was not found at $(OSHELL)! Please use: $(MAKE) SHELL=/path/to/bash" 1>&2; exit 1; fi
|
||||||
@(\
|
@(\
|
||||||
|
|||||||
@ -78,8 +78,7 @@ folder. The following ``make`` commands are available:
|
|||||||
make epub # generate LAMMPS.epub in ePUB format using Sphinx
|
make epub # generate LAMMPS.epub in ePUB format using Sphinx
|
||||||
make mobi # generate LAMMPS.mobi in MOBI format using ebook-convert
|
make mobi # generate LAMMPS.mobi in MOBI format using ebook-convert
|
||||||
|
|
||||||
make fasthtml # generate approximate HTML in fasthtml dir using Sphinx
|
make fasthtml # generate approximate HTML in fasthtml dir using pandoc
|
||||||
# some Sphinx extensions do not work correctly with this
|
|
||||||
|
|
||||||
make clean # remove intermediate RST files created by HTML build
|
make clean # remove intermediate RST files created by HTML build
|
||||||
make clean-all # remove entire build folder and any cached data
|
make clean-all # remove entire build folder and any cached data
|
||||||
@ -205,12 +204,41 @@ documentation is required and either existing files in the ``src``
|
|||||||
folder need to be updated or new files added. These files are written in
|
folder need to be updated or new files added. These files are written in
|
||||||
`reStructuredText <rst_>`_ markup for translation with the Sphinx tool.
|
`reStructuredText <rst_>`_ markup for translation with the Sphinx tool.
|
||||||
|
|
||||||
|
Testing your contribution
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
Before contributing any documentation, please check that both the HTML
|
Before contributing any documentation, please check that both the HTML
|
||||||
and the PDF format documentation can translate without errors. During
|
and the PDF format documentation can translate without errors and that
|
||||||
testing the html translation, you may use the ``make fasthtml`` command
|
there are no spelling issues. This is done with ``make html``, ``make pdf``,
|
||||||
which does an approximate translation (i.e. not all Sphinx features and
|
and ``make spelling``, respectively.
|
||||||
extensions will work), but runs very fast because it will only translate
|
|
||||||
files that have been changed since the last ``make fasthtml`` command.
|
Fast and approximate translation to HTML
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
Translating the full manual to HTML or PDF can take a long time. Thus
|
||||||
|
there is a fast and approximate way to translate the reStructuredText to
|
||||||
|
HTML as a quick-n-dirty way of checking your manual page.
|
||||||
|
|
||||||
|
This translation uses `Pandoc <https://pandoc.org>`_ instead of Sphinx
|
||||||
|
and thus all special Sphinx features (cross-references, advanced tables,
|
||||||
|
embedding of Python docstring and doxygen documentation, and so on) will
|
||||||
|
not render correctly. But this is a **very fast** way to check the content
|
||||||
|
as HTML while writing the documentation.
|
||||||
|
|
||||||
|
To translate **all** manual pages, you can type ``make fasthtml`` at the
|
||||||
|
command line. The translated HTML files are then in the ``fasthtml``
|
||||||
|
folder. All subsequent ``make fasthtml`` commands will only translate
|
||||||
|
``.rst`` files that have been changed. The ``make fasthtml`` command
|
||||||
|
can be parallelized with make using the `-j` flag. You can also
|
||||||
|
directly translate only individual pages: e.g. to translate only the
|
||||||
|
``doc/src/pair_lj.rst`` page type ``make fasthtml/pair_lj.html``
|
||||||
|
|
||||||
|
After writing the documentation is completed, you will still need
|
||||||
|
to verify with ``make html`` and ``make pdf`` that it translates
|
||||||
|
correctly.
|
||||||
|
|
||||||
|
Tests for consistency, completeness, and other known issues
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
Please also check the output to the console for any warnings or problems. There will
|
Please also check the output to the console for any warnings or problems. There will
|
||||||
be multiple tests run automatically:
|
be multiple tests run automatically:
|
||||||
|
|||||||
@ -487,10 +487,10 @@ updates are back-ported from the *develop* branch to the *maintenance*
|
|||||||
branch and occasionally merged to *stable* as an update release.
|
branch and occasionally merged to *stable* as an update release.
|
||||||
|
|
||||||
Furthermore, the naming of the release tags now follow the pattern
|
Furthermore, the naming of the release tags now follow the pattern
|
||||||
"patch_<Day><Month><Year>" to simplify comparisons between releases.
|
"patch\_<Day><Month><Year>" to simplify comparisons between releases.
|
||||||
For stable releases additional "stable_<Day><Month><Year>" tags are
|
For stable releases additional "stable\_<Day><Month><Year>" tags are
|
||||||
applied and update releases are tagged with
|
applied and update releases are tagged with
|
||||||
"stable_<Day><Month><Year>_update<Number>", Finally, all releases and
|
"stable\_<Day><Month><Year>\_update<Number>", Finally, all releases and
|
||||||
submissions are subject to automatic testing and code checks to make
|
submissions are subject to automatic testing and code checks to make
|
||||||
sure they compile with a variety of compilers and popular operating
|
sure they compile with a variety of compilers and popular operating
|
||||||
systems. Some unit and regression testing is applied as well.
|
systems. Some unit and regression testing is applied as well.
|
||||||
|
|||||||
@ -49,7 +49,7 @@ computed according to the following relation:
|
|||||||
|
|
||||||
where *m* is the number of species, :math:`c_{i,j}` is the
|
where *m* is the number of species, :math:`c_{i,j}` is the
|
||||||
concentration of species *j* in particle *i*, :math:`u_j` is the
|
concentration of species *j* in particle *i*, :math:`u_j` is the
|
||||||
internal energy of species j, :math:`\Delta H_{f,j} is the heat of
|
internal energy of species j, :math:`\Delta H_{f,j}` is the heat of
|
||||||
formation of species *j*, N is the number of molecules represented
|
formation of species *j*, N is the number of molecules represented
|
||||||
by the coarse-grained particle, :math:`k_B` is the Boltzmann constant,
|
by the coarse-grained particle, :math:`k_B` is the Boltzmann constant,
|
||||||
and :math:`T` is the temperature of the system. Additionally, it is
|
and :math:`T` is the temperature of the system. Additionally, it is
|
||||||
|
|||||||
@ -131,14 +131,15 @@ timesteps is simply
|
|||||||
t_{hyper} = \sum_{i=1,N} B-i \cdot dt
|
t_{hyper} = \sum_{i=1,N} B-i \cdot dt
|
||||||
|
|
||||||
where *dt* is the timestep size defined by the :doc:`timestep <timestep>`
|
where *dt* is the timestep size defined by the :doc:`timestep <timestep>`
|
||||||
command. The effective time acceleration due to GHD is thus t_hyper /
|
command. The effective time acceleration due to GHD is thus
|
||||||
N\*dt, where N\*dt is elapsed time for a normal MD run of N timesteps.
|
:math:`t_{hyper} / N * dt`, where N\*dt is elapsed time for a normal MD run
|
||||||
|
of N timesteps.
|
||||||
|
|
||||||
Note that in GHD, the boost factor varies from timestep to timestep.
|
Note that in GHD, the boost factor varies from timestep to timestep. Likewise,
|
||||||
Likewise, which bond has :math:`E^{max}` strain and thus which pair of
|
which bond has :math:`E^{max}` strain and thus which pair of atoms the bias
|
||||||
atoms the bias potential is added to, will also vary from timestep to timestep.
|
potential is added to, will also vary from timestep to timestep. This is in
|
||||||
This is in contrast to local hyperdynamics (LHD) where the boost
|
contrast to local hyperdynamics (LHD) where the boost factor is an input
|
||||||
factor is an input parameter; see the :doc:`fix hyper/local <fix_hyper_local>` page for details.
|
parameter; see the :doc:`fix hyper/local <fix_hyper_local>` page for details.
|
||||||
|
|
||||||
----------
|
----------
|
||||||
|
|
||||||
@ -178,7 +179,7 @@ time-accurate trajectory of the system.
|
|||||||
|
|
||||||
Note that if *Vmax* is set too small, the GHD simulation will run
|
Note that if *Vmax* is set too small, the GHD simulation will run
|
||||||
correctly. There will just be fewer events because the hyper time
|
correctly. There will just be fewer events because the hyper time
|
||||||
(t_hyper equation above) will be shorter.
|
(:math:`t_{hyper}` equation above) will be shorter.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
|
|||||||
@ -111,7 +111,7 @@ requirement, and thus a bias potential :math:`V^{max}_{ij}` will be
|
|||||||
applied to many bonds on the same timestep.
|
applied to many bonds on the same timestep.
|
||||||
|
|
||||||
In LHD, all bonds store a :math:`C_{ij}` prefactor which appears in
|
In LHD, all bonds store a :math:`C_{ij}` prefactor which appears in
|
||||||
the :math:`V^{max}_{ij}` and :math:`F^{max}_{ij}equations above. Note
|
the :math:`V^{max}_{ij}` and :math:`F^{max}_{ij}` equations above. Note
|
||||||
that the :math:`C_{ij}` factor scales the strength of the bias energy
|
that the :math:`C_{ij}` factor scales the strength of the bias energy
|
||||||
and forces whenever bond *ij* is the maximum strain bond in its neighborhood.
|
and forces whenever bond *ij* is the maximum strain bond in its neighborhood.
|
||||||
|
|
||||||
@ -269,7 +269,7 @@ inverse of the alpha parameter discussed in
|
|||||||
|
|
||||||
The *Btarget* argument is the desired time boost factor (a value > 1)
|
The *Btarget* argument is the desired time boost factor (a value > 1)
|
||||||
that all the atoms in the system will experience. The elapsed time
|
that all the atoms in the system will experience. The elapsed time
|
||||||
t_hyper for an LHD simulation running for *N* timesteps is simply
|
:math:`t_{hyper}` for an LHD simulation running for *N* timesteps is simply
|
||||||
|
|
||||||
.. math::
|
.. math::
|
||||||
|
|
||||||
@ -294,7 +294,7 @@ is the specified temperature of the system
|
|||||||
|
|
||||||
Note that if *Btarget* is set smaller than this, the LHD simulation
|
Note that if *Btarget* is set smaller than this, the LHD simulation
|
||||||
will run correctly. There will just be fewer events because the hyper
|
will run correctly. There will just be fewer events because the hyper
|
||||||
time (t_hyper equation above) will be shorter.
|
time (:math:`t_{hyper}` equation above) will be shorter.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
|
|||||||
@ -15,115 +15,115 @@ Syntax
|
|||||||
|
|
||||||
.. parsed-literal::
|
.. parsed-literal::
|
||||||
|
|
||||||
*gpu* args = Ngpu keyword value ...
|
*gpu* args = Ngpu keyword value ...
|
||||||
Ngpu = # of GPUs per node
|
Ngpu = # of GPUs per node
|
||||||
zero or more keyword/value pairs may be appended
|
zero or more keyword/value pairs may be appended
|
||||||
keywords = *neigh* or *newton* or *pair/only* or *binsize* or *split* or *gpuID* or *tpa* or *blocksize* or *omp* or *platform* or *device_type* or *ocl_args*
|
keywords = *neigh* or *newton* or *pair/only* or *binsize* or *split* or *gpuID* or *tpa* or *blocksize* or *omp* or *platform* or *device_type* or *ocl_args*
|
||||||
*neigh* value = *yes* or *no*
|
*neigh* value = *yes* or *no*
|
||||||
*yes* = neighbor list build on GPU (default)
|
*yes* = neighbor list build on GPU (default)
|
||||||
*no* = neighbor list build on CPU
|
*no* = neighbor list build on CPU
|
||||||
*newton* = *off* or *on*
|
*newton* = *off* or *on*
|
||||||
*off* = set Newton pairwise flag off (default and required)
|
*off* = set Newton pairwise flag off (default and required)
|
||||||
*on* = set Newton pairwise flag on (currently not allowed)
|
*on* = set Newton pairwise flag on (currently not allowed)
|
||||||
*pair/only* = *off* or *on*
|
*pair/only* = *off* or *on*
|
||||||
*off* = apply "gpu" suffix to all available styles in the GPU package (default)
|
*off* = apply "gpu" suffix to all available styles in the GPU package (default)
|
||||||
*on* = apply "gpu" suffix only pair styles
|
*on* = apply "gpu" suffix only pair styles
|
||||||
*binsize* value = size
|
*binsize* value = size
|
||||||
size = bin size for neighbor list construction (distance units)
|
size = bin size for neighbor list construction (distance units)
|
||||||
*split* = fraction
|
*split* = fraction
|
||||||
fraction = fraction of atoms assigned to GPU (default = 1.0)
|
fraction = fraction of atoms assigned to GPU (default = 1.0)
|
||||||
*tpa* value = Nlanes
|
*tpa* value = Nlanes
|
||||||
Nlanes = # of GPU vector lanes (CUDA threads) used per atom
|
Nlanes = # of GPU vector lanes (CUDA threads) used per atom
|
||||||
*blocksize* value = size
|
*blocksize* value = size
|
||||||
size = thread block size for pair force computation
|
size = thread block size for pair force computation
|
||||||
*omp* value = Nthreads
|
*omp* value = Nthreads
|
||||||
Nthreads = number of OpenMP threads to use on CPU (default = 0)
|
Nthreads = number of OpenMP threads to use on CPU (default = 0)
|
||||||
*platform* value = id
|
*platform* value = id
|
||||||
id = For OpenCL, platform ID for the GPU or accelerator
|
id = For OpenCL, platform ID for the GPU or accelerator
|
||||||
*gpuID* values = id
|
*gpuID* values = id
|
||||||
id = ID of first GPU to be used on each node
|
id = ID of first GPU to be used on each node
|
||||||
*device_type* value = *intelgpu* or *nvidiagpu* or *amdgpu* or *applegpu* or *generic* or *custom*,val1,val2,...
|
*device_type* value = *intelgpu* or *nvidiagpu* or *amdgpu* or *applegpu* or *generic* or *custom*,val1,val2,...
|
||||||
val1,val2,... = custom OpenCL accelerator configuration parameters (see below for details)
|
val1,val2,... = custom OpenCL accelerator configuration parameters (see below for details)
|
||||||
*ocl_args* value = args
|
*ocl_args* value = args
|
||||||
args = List of additional OpenCL compiler arguments delimited by colons
|
args = List of additional OpenCL compiler arguments delimited by colons
|
||||||
*intel* args = NPhi keyword value ...
|
*intel* args = NPhi keyword value ...
|
||||||
Nphi = # of co-processors per node
|
Nphi = # of co-processors per node
|
||||||
zero or more keyword/value pairs may be appended
|
zero or more keyword/value pairs may be appended
|
||||||
keywords = *mode* or *omp* or *lrt* or *balance* or *ghost* or *tpc* or *tptask* or *pppm_table* or *no_affinity*
|
keywords = *mode* or *omp* or *lrt* or *balance* or *ghost* or *tpc* or *tptask* or *pppm_table* or *no_affinity*
|
||||||
*mode* value = *single* or *mixed* or *double*
|
*mode* value = *single* or *mixed* or *double*
|
||||||
single = perform force calculations in single precision
|
single = perform force calculations in single precision
|
||||||
mixed = perform force calculations in mixed precision
|
mixed = perform force calculations in mixed precision
|
||||||
double = perform force calculations in double precision
|
double = perform force calculations in double precision
|
||||||
*omp* value = Nthreads
|
*omp* value = Nthreads
|
||||||
Nthreads = number of OpenMP threads to use on CPU (default = 0)
|
Nthreads = number of OpenMP threads to use on CPU (default = 0)
|
||||||
*lrt* value = *yes* or *no*
|
*lrt* value = *yes* or *no*
|
||||||
*yes* = use additional thread dedicated for some PPPM calculations
|
*yes* = use additional thread dedicated for some PPPM calculations
|
||||||
*no* = do not dedicate an extra thread for some PPPM calculations
|
*no* = do not dedicate an extra thread for some PPPM calculations
|
||||||
*balance* value = split
|
*balance* value = split
|
||||||
split = fraction of work to offload to co-processor, -1 for dynamic
|
split = fraction of work to offload to co-processor, -1 for dynamic
|
||||||
*ghost* value = *yes* or *no*
|
*ghost* value = *yes* or *no*
|
||||||
*yes* = include ghost atoms for offload
|
*yes* = include ghost atoms for offload
|
||||||
*no* = do not include ghost atoms for offload
|
*no* = do not include ghost atoms for offload
|
||||||
*tpc* value = Ntpc
|
*tpc* value = Ntpc
|
||||||
Ntpc = max number of co-processor threads per co-processor core (default = 4)
|
Ntpc = max number of co-processor threads per co-processor core (default = 4)
|
||||||
*tptask* value = Ntptask
|
*tptask* value = Ntptask
|
||||||
Ntptask = max number of co-processor threads per MPI task (default = 240)
|
Ntptask = max number of co-processor threads per MPI task (default = 240)
|
||||||
*pppm_table* value = *yes* or *no*
|
*pppm_table* value = *yes* or *no*
|
||||||
*yes* = Precompute pppm values in table (doesn't change accuracy)
|
*yes* = Precompute pppm values in table (doesn't change accuracy)
|
||||||
*no* = Compute pppm values on the fly
|
*no* = Compute pppm values on the fly
|
||||||
*no_affinity* values = none
|
*no_affinity* values = none
|
||||||
*kokkos* args = keyword value ...
|
*kokkos* args = keyword value ...
|
||||||
zero or more keyword/value pairs may be appended
|
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 *sort* or *atom/map* 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 *atom/map* or *gpu/aware* or *pair/only*
|
||||||
*neigh* value = *full* or *half*
|
*neigh* value = *full* or *half*
|
||||||
full = full neighbor list
|
full = full neighbor list
|
||||||
half = half neighbor list built in thread-safe manner
|
half = half neighbor list built in thread-safe manner
|
||||||
*neigh/qeq* value = *full* or *half*
|
*neigh/qeq* value = *full* or *half*
|
||||||
full = full neighbor list
|
full = full neighbor list
|
||||||
half = half neighbor list built in thread-safe manner
|
half = half neighbor list built in thread-safe manner
|
||||||
*neigh/thread* value = *off* or *on*
|
*neigh/thread* value = *off* or *on*
|
||||||
*off* = thread only over atoms
|
*off* = thread only over atoms
|
||||||
*on* = thread over both atoms and neighbors
|
*on* = thread over both atoms and neighbors
|
||||||
*neigh/transpose* value = *off* or *on*
|
*neigh/transpose* value = *off* or *on*
|
||||||
*off* = use same memory layout for GPU neigh list build as pair style
|
*off* = use same memory layout for GPU neigh list build as pair style
|
||||||
*on* = use transposed memory layout for GPU neigh list build
|
*on* = use transposed memory layout for GPU neigh list build
|
||||||
*newton* = *off* or *on*
|
*newton* = *off* or *on*
|
||||||
*off* = set Newton pairwise and bonded flags off
|
*off* = set Newton pairwise and bonded flags off
|
||||||
*on* = set Newton pairwise and bonded flags on
|
*on* = set Newton pairwise and bonded flags on
|
||||||
*binsize* value = size
|
*binsize* value = size
|
||||||
size = bin size for neighbor list construction (distance units)
|
size = bin size for neighbor list construction (distance units)
|
||||||
*comm* value = *no* or *host* or *device*
|
*comm* value = *no* or *host* or *device*
|
||||||
use value for comm/exchange and comm/forward and comm/pair/forward and comm/fix/forward and comm/reverse
|
use value for comm/exchange and comm/forward and comm/pair/forward and comm/fix/forward and comm/reverse
|
||||||
*comm/exchange* value = *no* or *host* or *device*
|
*comm/exchange* value = *no* or *host* or *device*
|
||||||
*comm/forward* value = *no* or *host* or *device*
|
*comm/forward* value = *no* or *host* or *device*
|
||||||
*comm/pair/forward* value = *no* or *device*
|
*comm/pair/forward* value = *no* or *device*
|
||||||
*comm/fix/forward* value = *no* or *device*
|
*comm/fix/forward* value = *no* or *device*
|
||||||
*comm/reverse* value = *no* or *host* or *device*
|
*comm/reverse* value = *no* or *host* or *device*
|
||||||
*no* = perform communication pack/unpack in non-KOKKOS mode
|
*no* = perform communication pack/unpack in non-KOKKOS mode
|
||||||
*host* = perform pack/unpack on host (e.g. with OpenMP threading)
|
*host* = perform pack/unpack on host (e.g. with OpenMP threading)
|
||||||
*device* = perform pack/unpack on device (e.g. on GPU)
|
*device* = perform pack/unpack on device (e.g. on GPU)
|
||||||
*comm/pair/reverse* value = *no* or *device*
|
*comm/pair/reverse* value = *no* or *device*
|
||||||
*no* = perform communication pack/unpack in non-KOKKOS mode
|
*no* = perform communication pack/unpack in non-KOKKOS mode
|
||||||
*device* = perform pack/unpack on device (e.g. on GPU)
|
*device* = perform pack/unpack on device (e.g. on GPU)
|
||||||
*sort* value = *no* or *device*
|
*sort* value = *no* or *device*
|
||||||
*no* = perform atom sorting in non-KOKKOS mode
|
*no* = perform atom sorting in non-KOKKOS mode
|
||||||
*device* = perform atom sorting on device (e.g. on GPU)
|
*device* = perform atom sorting on device (e.g. on GPU)
|
||||||
*atom/map* value = *no* or *device*
|
*atom/map* value = *no* or *device*
|
||||||
*no* = build atom map in non-KOKKOS mode
|
*no* = build atom map in non-KOKKOS mode
|
||||||
*device* = build atom map on device (e.g. on GPU)
|
*device* = build atom map on device (e.g. on GPU)
|
||||||
*gpu/aware* = *off* or *on*
|
*gpu/aware* = *off* or *on*
|
||||||
*off* = do not use GPU-aware MPI
|
*off* = do not use GPU-aware MPI
|
||||||
*on* = use GPU-aware MPI (default)
|
*on* = use GPU-aware MPI (default)
|
||||||
*pair/only* = *off* or *on*
|
*pair/only* = *off* or *on*
|
||||||
*off* = use device acceleration (e.g. GPU) for all available styles in the KOKKOS package (default)
|
*off* = use device acceleration (e.g. GPU) for all available styles in the KOKKOS package (default)
|
||||||
*on* = use device acceleration only for pair styles (and host acceleration for others)
|
*on* = use device acceleration only for pair styles (and host acceleration for others)
|
||||||
*omp* args = Nthreads keyword value ...
|
*omp* args = Nthreads keyword value ...
|
||||||
Nthreads = # of OpenMP threads to associate with each MPI process
|
Nthreads = # of OpenMP threads to associate with each MPI process
|
||||||
zero or more keyword/value pairs may be appended
|
zero or more keyword/value pairs may be appended
|
||||||
keywords = *neigh*
|
keywords = *neigh*
|
||||||
*neigh* value = *yes* or *no*
|
*neigh* value = *yes* or *no*
|
||||||
*yes* = threaded neighbor list build (default)
|
*yes* = threaded neighbor list build (default)
|
||||||
*no* = non-threaded neighbor list build
|
*no* = non-threaded neighbor list build
|
||||||
|
|
||||||
Examples
|
Examples
|
||||||
""""""""
|
""""""""
|
||||||
@ -200,7 +200,7 @@ number of compute cores. If there are more devices than MPI tasks,
|
|||||||
the additional devices will be unused. The auto-selection of GPUs/
|
the additional devices will be unused. The auto-selection of GPUs/
|
||||||
accelerator devices and platforms can be restricted by specifying
|
accelerator devices and platforms can be restricted by specifying
|
||||||
a non-zero value for *Ngpu* and / or using the *gpuID*, *platform*,
|
a non-zero value for *Ngpu* and / or using the *gpuID*, *platform*,
|
||||||
and *device_type* keywords as described below. If there are more MPI
|
and *device\_type* keywords as described below. If there are more MPI
|
||||||
tasks (per node) than GPUs, multiple MPI tasks will share each GPU.
|
tasks (per node) than GPUs, multiple MPI tasks will share each GPU.
|
||||||
|
|
||||||
Optional keyword/value pairs can also be specified. Each has a
|
Optional keyword/value pairs can also be specified. Each has a
|
||||||
@ -274,8 +274,8 @@ the other particles.
|
|||||||
The *gpuID* keyword is used to specify the first ID for the GPU or
|
The *gpuID* keyword is used to specify the first ID for the GPU or
|
||||||
other accelerator that LAMMPS will use. For example, if the ID is
|
other accelerator that LAMMPS will use. For example, if the ID is
|
||||||
1 and *Ngpu* is 3, GPUs 1-3 will be used. Device IDs should be
|
1 and *Ngpu* is 3, GPUs 1-3 will be used. Device IDs should be
|
||||||
determined from the output of nvc_get_devices, ocl_get_devices,
|
determined from the output of nvc\_get\_devices, ocl\_get\_devices,
|
||||||
or hip_get_devices
|
or hip\_get\_devices
|
||||||
as provided in the lib/gpu directory. When using OpenCL with
|
as provided in the lib/gpu directory. When using OpenCL with
|
||||||
accelerators that have main memory NUMA, the accelerators can be
|
accelerators that have main memory NUMA, the accelerators can be
|
||||||
split into smaller virtual accelerators for more efficient use
|
split into smaller virtual accelerators for more efficient use
|
||||||
@ -308,15 +308,15 @@ The meaning of *Nthreads* is exactly the same for the GPU, INTEL,
|
|||||||
and GPU packages.
|
and GPU packages.
|
||||||
|
|
||||||
The *platform* keyword is only used with OpenCL to specify the ID for
|
The *platform* keyword is only used with OpenCL to specify the ID for
|
||||||
an OpenCL platform. See the output from ocl_get_devices in the lib/gpu
|
an OpenCL platform. See the output from ocl\_get\_devices in the lib/gpu
|
||||||
directory. In LAMMPS only one platform can be active at a time and by
|
directory. In LAMMPS only one platform can be active at a time and by
|
||||||
default (id=-1) the platform is auto-selected to find the GPU with the
|
default (id=-1) the platform is auto-selected to find the GPU with the
|
||||||
most compute cores. When *Ngpu* or other keywords are specified, the
|
most compute cores. When *Ngpu* or other keywords are specified, the
|
||||||
auto-selection is appropriately restricted. For example, if *Ngpu* is
|
auto-selection is appropriately restricted. For example, if *Ngpu* is
|
||||||
3, only platforms with at least 3 accelerators are considered. Similar
|
3, only platforms with at least 3 accelerators are considered. Similar
|
||||||
restrictions can be enforced by the *gpuID* and *device_type* keywords.
|
restrictions can be enforced by the *gpuID* and *device\_type* keywords.
|
||||||
|
|
||||||
The *device_type* keyword can be used for OpenCL to specify the type of
|
The *device\_type* keyword can be used for OpenCL to specify the type of
|
||||||
GPU to use or specify a custom configuration for an accelerator. In most
|
GPU to use or specify a custom configuration for an accelerator. In most
|
||||||
cases this selection will be automatic and there is no need to use the
|
cases this selection will be automatic and there is no need to use the
|
||||||
keyword. The *applegpu* type is not specific to a particular GPU vendor,
|
keyword. The *applegpu* type is not specific to a particular GPU vendor,
|
||||||
@ -324,25 +324,25 @@ but is separate due to the more restrictive Apple OpenCL implementation.
|
|||||||
For expert users, to specify a custom configuration, the *custom* keyword
|
For expert users, to specify a custom configuration, the *custom* keyword
|
||||||
followed by the next parameters can be specified:
|
followed by the next parameters can be specified:
|
||||||
|
|
||||||
CONFIG_ID, SIMD_SIZE, MEM_THREADS, SHUFFLE_AVAIL, FAST_MATH,
|
CONFIG\_ID, SIMD\_SIZE, MEM\_THREADS, SHUFFLE\_AVAIL, FAST\_MATH,
|
||||||
THREADS_PER_ATOM, THREADS_PER_CHARGE, THREADS_PER_THREE, BLOCK_PAIR,
|
THREADS\_PER\_ATOM, THREADS\_PER\_CHARGE, THREADS\_PER\_THREE, BLOCK\_PAIR,
|
||||||
BLOCK_BIO_PAIR, BLOCK_ELLIPSE, PPPM_BLOCK_1D, BLOCK_NBOR_BUILD,
|
BLOCK\_BIO\_PAIR, BLOCK\_ELLIPSE, PPPM\_BLOCK\_1D, BLOCK\_NBOR\_BUILD,
|
||||||
BLOCK_CELL_2D, BLOCK_CELL_ID, MAX_SHARED_TYPES, MAX_BIO_SHARED_TYPES,
|
BLOCK\_CELL\_2D, BLOCK\_CELL\_ID, MAX\_SHARED\_TYPES, MAX\_BIO\_SHARED\_TYPES,
|
||||||
PPPM_MAX_SPLINE, NBOR_PREFETCH.
|
PPPM\_MAX\_SPLINE, NBOR\_PREFETCH.
|
||||||
|
|
||||||
CONFIG_ID can be 0. SHUFFLE_AVAIL in {0,1} indicates that inline-PTX
|
CONFIG\_ID can be 0. SHUFFLE\_AVAIL in {0,1} indicates that inline-PTX
|
||||||
(NVIDIA) or OpenCL extensions (Intel) should be used for horizontal
|
(NVIDIA) or OpenCL extensions (Intel) should be used for horizontal
|
||||||
vector operations. FAST_MATH in {0,1} indicates that OpenCL fast math
|
vector operations. FAST\_MATH in {0,1} indicates that OpenCL fast math
|
||||||
optimizations are used during the build and hardware-accelerated
|
optimizations are used during the build and hardware-accelerated
|
||||||
transcendental functions are used when available. THREADS_PER_* give the
|
transcendental functions are used when available. THREADS\_PER\_\* give the
|
||||||
default *tpa* values for ellipsoidal models, styles using charge, and
|
default *tpa* values for ellipsoidal models, styles using charge, and
|
||||||
any other styles. The BLOCK_* parameters specify the block sizes for
|
any other styles. The BLOCK\_\* parameters specify the block sizes for
|
||||||
various kernel calls and the MAX_*SHARED*_ parameters are used to
|
various kernel calls and the MAX\_\*SHARED\_\* parameters are used to
|
||||||
determine the amount of local shared memory to use for storing model
|
determine the amount of local shared memory to use for storing model
|
||||||
parameters.
|
parameters.
|
||||||
|
|
||||||
For OpenCL, the routines are compiled at runtime for the specified GPU
|
For OpenCL, the routines are compiled at runtime for the specified GPU
|
||||||
or accelerator architecture. The *ocl_args* keyword can be used to
|
or accelerator architecture. The *ocl\_args* keyword can be used to
|
||||||
specify additional flags for the runtime build.
|
specify additional flags for the runtime build.
|
||||||
|
|
||||||
----------
|
----------
|
||||||
@ -381,7 +381,7 @@ force calculation.
|
|||||||
The *lrt* keyword can be used to enable "Long Range Thread (LRT)"
|
The *lrt* keyword can be used to enable "Long Range Thread (LRT)"
|
||||||
mode. It can take a value of *yes* to enable and *no* to disable.
|
mode. It can take a value of *yes* to enable and *no* to disable.
|
||||||
LRT mode generates an extra thread (in addition to any OpenMP threads
|
LRT mode generates an extra thread (in addition to any OpenMP threads
|
||||||
specified with the OMP_NUM_THREADS environment variable or the *omp*
|
specified with the OMP\_NUM\_THREADS environment variable or the *omp*
|
||||||
keyword). The extra thread is dedicated for performing part of the
|
keyword). The extra thread is dedicated for performing part of the
|
||||||
:doc:`PPPM solver <kspace_style>` computations and communications. This
|
:doc:`PPPM solver <kspace_style>` computations and communications. This
|
||||||
can improve parallel performance on processors supporting
|
can improve parallel performance on processors supporting
|
||||||
|
|||||||
@ -32,20 +32,20 @@ Description
|
|||||||
"""""""""""
|
"""""""""""
|
||||||
|
|
||||||
The *bop* pair style computes Bond-Order Potentials (BOP) based on
|
The *bop* pair style computes Bond-Order Potentials (BOP) based on
|
||||||
quantum mechanical theory incorporating both :math:`\sigma` and :math:`\pi` bonding.
|
quantum mechanical theory incorporating both :math:`\sigma` and
|
||||||
By analytically deriving the BOP from quantum mechanical theory its
|
:math:`\pi` bonding. By analytically deriving the BOP from quantum
|
||||||
transferability to different phases can approach that of quantum
|
mechanical theory its transferability to different phases can approach
|
||||||
mechanical methods. This potential is similar to the original BOP
|
that of quantum mechanical methods. This potential is similar to the
|
||||||
developed by Pettifor (:ref:`Pettifor_1 <Pettifor_1>`,
|
original BOP developed by Pettifor (:ref:`Pettifor_1 <Pettifor_1>`,
|
||||||
:ref:`Pettifor_2 <Pettifor_2>`, :ref:`Pettifor_3 <Pettifor_3>`) and later updated
|
:ref:`Pettifor_2 <Pettifor_2>`, :ref:`Pettifor_3 <Pettifor_3>`) and
|
||||||
by Murdick, Zhou, and Ward (:ref:`Murdick <Murdick>`, :ref:`Ward <Ward>`).
|
later updated by Murdick, Zhou, and Ward (:ref:`Murdick <Murdick>`,
|
||||||
Currently, BOP potential files for these systems are provided with
|
:ref:`Ward <Ward>`). Currently, BOP potential files for these systems
|
||||||
LAMMPS: AlCu, CCu, CdTe, CdTeSe, CdZnTe, CuH, GaAs. A system with
|
are provided with LAMMPS: AlCu, CCu, CdTe, CdTeSe, CdZnTe, CuH, GaAs. A
|
||||||
only a subset of these elements, including a single element (e.g. C or
|
system with only a subset of these elements, including a single element
|
||||||
Cu or Al or Ga or Zn or CdZn), can also be modeled by using the
|
(e.g. C or Cu or Al or Ga or Zn or CdZn), can also be modeled by using
|
||||||
appropriate alloy file and assigning all atom types to the
|
the appropriate alloy file and assigning all atom types to the single
|
||||||
single element or subset of elements via the pair_coeff command, as
|
element or subset of elements via the :doc:`pair_coeff command
|
||||||
discussed below.
|
<pair_coeff>`, as discussed below.
|
||||||
|
|
||||||
The BOP potential consists of three terms:
|
The BOP potential consists of three terms:
|
||||||
|
|
||||||
@ -58,7 +58,7 @@ representing the repulsion between a pair of ion cores,
|
|||||||
:math:`\beta_{\sigma,ij}(r_{ij})` and :math:`\beta_{\sigma,ij}(r_{ij})`
|
:math:`\beta_{\sigma,ij}(r_{ij})` and :math:`\beta_{\sigma,ij}(r_{ij})`
|
||||||
are respectively sigma and :math:`\pi` bond integrals, :math:`\Theta_{\sigma,ij}`
|
are respectively sigma and :math:`\pi` bond integrals, :math:`\Theta_{\sigma,ij}`
|
||||||
and :math:`\Theta_{\pi,ij}` are :math:`\sigma` and :math:`\pi`
|
and :math:`\Theta_{\pi,ij}` are :math:`\sigma` and :math:`\pi`
|
||||||
bond-orders, and U_prom is the promotion energy for sp-valent systems.
|
bond-orders, and U\_prom is the promotion energy for sp-valent systems.
|
||||||
|
|
||||||
The detailed formulas for this potential are given in Ward
|
The detailed formulas for this potential are given in Ward
|
||||||
(:ref:`Ward <Ward>`); here we provide only a brief description.
|
(:ref:`Ward <Ward>`); here we provide only a brief description.
|
||||||
@ -96,7 +96,7 @@ length 4. This enables the incorporation of dihedral angles effects.
|
|||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
Note that unlike for other potentials, cutoffs for BOP
|
Note that unlike for other potentials, cutoffs for BOP
|
||||||
potentials are not set in the pair_style or pair_coeff command; they
|
potentials are not set in the pair\_style or pair\_coeff command; they
|
||||||
are specified in the BOP potential files themselves. Likewise, the
|
are specified in the BOP potential files themselves. Likewise, the
|
||||||
BOP potential files list atomic masses; thus you do not need to use
|
BOP potential files list atomic masses; thus you do not need to use
|
||||||
the :doc:`mass <mass>` command to specify them. Note that for BOP
|
the :doc:`mass <mass>` command to specify them. Note that for BOP
|
||||||
@ -106,7 +106,7 @@ length 4. This enables the incorporation of dihedral angles effects.
|
|||||||
:doc:`pair_coeff <pair_coeff>` command to read the BOP potential
|
:doc:`pair_coeff <pair_coeff>` command to read the BOP potential
|
||||||
file.
|
file.
|
||||||
|
|
||||||
One option can be specified as a keyword with the pair_style command.
|
One option can be specified as a keyword with the pair\_style command.
|
||||||
|
|
||||||
The *save* keyword gives you the option to calculate in advance and
|
The *save* keyword gives you the option to calculate in advance and
|
||||||
store a set of distances, angles, and derivatives of angles. The
|
store a set of distances, angles, and derivatives of angles. The
|
||||||
@ -118,10 +118,10 @@ system configuration.
|
|||||||
|
|
||||||
----------
|
----------
|
||||||
|
|
||||||
Only a single pair_coeff command is used with the *bop* style which
|
Only a single pair\_coeff command is used with the *bop* style which
|
||||||
specifies a BOP potential file, with parameters for all needed
|
specifies a BOP potential file, with parameters for all needed
|
||||||
elements. These are mapped to LAMMPS atom types by specifying
|
elements. These are mapped to LAMMPS atom types by specifying
|
||||||
N additional arguments after the filename in the pair_coeff command,
|
N additional arguments after the filename in the pair\_coeff command,
|
||||||
where N is the number of LAMMPS atom types:
|
where N is the number of LAMMPS atom types:
|
||||||
|
|
||||||
* filename
|
* filename
|
||||||
@ -130,7 +130,7 @@ where N is the number of LAMMPS atom types:
|
|||||||
As an example, imagine the CdTe.bop file has BOP values for Cd
|
As an example, imagine the CdTe.bop file has BOP values for Cd
|
||||||
and Te. If your LAMMPS simulation has 4 atoms types and you want the
|
and Te. If your LAMMPS simulation has 4 atoms types and you want the
|
||||||
first 3 to be Cd, and the fourth to be Te, you would use the following
|
first 3 to be Cd, and the fourth to be Te, you would use the following
|
||||||
pair_coeff command:
|
pair\_coeff command:
|
||||||
|
|
||||||
.. code-block:: LAMMPS
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
@ -143,8 +143,8 @@ element in the BOP file. The final Te argument maps LAMMPS atom type
|
|||||||
|
|
||||||
BOP files in the *potentials* directory of the LAMMPS distribution
|
BOP files in the *potentials* directory of the LAMMPS distribution
|
||||||
have a ".bop" suffix. The potentials are in tabulated form containing
|
have a ".bop" suffix. The potentials are in tabulated form containing
|
||||||
pre-tabulated pair functions for phi_ij(r_ij), beta_(sigma,ij)(r_ij),
|
pre-tabulated pair functions for phi\_ij(r\_ij), beta\_(sigma,ij)(r\_ij),
|
||||||
and beta_pi,ij)(r_ij).
|
and beta\_pi,ij)(r\_ij).
|
||||||
|
|
||||||
The parameters/coefficients format for the different kinds of BOP
|
The parameters/coefficients format for the different kinds of BOP
|
||||||
files are given below with variables matching the formulation of Ward
|
files are given below with variables matching the formulation of Ward
|
||||||
@ -170,89 +170,89 @@ the tabulated functions are given.
|
|||||||
|
|
||||||
* Line 1: nr, nBOt (nr is the number of divisions the radius is broken
|
* Line 1: nr, nBOt (nr is the number of divisions the radius is broken
|
||||||
into for function tables and MUST be a factor of 5; nBOt is the number
|
into for function tables and MUST be a factor of 5; nBOt is the number
|
||||||
of divisions for the tabulated values of THETA_(S,ij)
|
of divisions for the tabulated values of THETA\_(S,ij)
|
||||||
* Line 2: delta_1-delta_7 (if all are not used in the particular
|
* Line 2: delta\_1-delta\_7 (if all are not used in the particular
|
||||||
* formulation, set unused values to 0.0)
|
* formulation, set unused values to 0.0)
|
||||||
|
|
||||||
Following this N lines for e_1-e_N containing p_pi.
|
Following this N lines for e\_1-e\_N containing p\_pi.
|
||||||
|
|
||||||
* Line 3: p_pi (for e_1)
|
* Line 3: p\_pi (for e\_1)
|
||||||
* Line 4: p_pi (for e_2 and continues to e_N)
|
* Line 4: p\_pi (for e\_2 and continues to e\_N)
|
||||||
|
|
||||||
The next section contains several pair constants for the number of
|
The next section contains several pair constants for the number of
|
||||||
interaction types e_i-e_j, with i=1->N, j=i->N
|
interaction types e\_i-e\_j, with i=1->N, j=i->N
|
||||||
|
|
||||||
* Line 1: r_cut (for e_1-e_1 interactions)
|
* Line 1: r\_cut (for e\_1-e\_1 interactions)
|
||||||
* Line 2: c_sigma, a_sigma, c_pi, a_pi
|
* Line 2: c\_sigma, a\_sigma, c\_pi, a\_pi
|
||||||
* Line 3: delta_sigma, delta_pi
|
* Line 3: delta\_sigma, delta\_pi
|
||||||
* Line 4: f_sigma, k_sigma, delta_3 (This delta_3 is similar to that of
|
* Line 4: f\_sigma, k\_sigma, delta\_3 (This delta\_3 is similar to that of
|
||||||
the previous section but is interaction type dependent)
|
the previous section but is interaction type dependent)
|
||||||
|
|
||||||
The next section contains a line for each three body interaction type
|
The next section contains a line for each three body interaction type
|
||||||
e_j-e_i-e_k with i=0->N, j=0->N, k=j->N
|
e\_j-e\_i-e\_k with i=0->N, j=0->N, k=j->N
|
||||||
|
|
||||||
* Line 1: g_(sigma0), g_(sigma1), g_(sigma2) (These are coefficients for
|
* Line 1: g\_(sigma0), g\_(sigma1), g\_(sigma2) (These are coefficients for
|
||||||
g_(sigma,jik)(THETA_ijk) for e_1-e_1-e_1 interaction. :ref:`Ward <Ward>`
|
g\_(sigma,jik)(THETA\_ijk) for e\_1-e\_1-e\_1 interaction. :ref:`Ward <Ward>`
|
||||||
contains the full expressions for the constants as functions of
|
contains the full expressions for the constants as functions of
|
||||||
b_(sigma,ijk), p_(sigma,ijk), u_(sigma,ijk))
|
b\_(sigma,ijk), p\_(sigma,ijk), u\_(sigma,ijk))
|
||||||
* Line 2: g_(sigma0), g_(sigma1), g_(sigma2) (for e_1-e_1-e_2)
|
* Line 2: g\_(sigma0), g\_(sigma1), g\_(sigma2) (for e\_1-e\_1-e\_2)
|
||||||
|
|
||||||
The next section contains a block for each interaction type for the
|
The next section contains a block for each interaction type for the
|
||||||
phi_ij(r_ij). Each block has nr entries with 5 entries per line.
|
phi\_ij(r\_ij). Each block has nr entries with 5 entries per line.
|
||||||
|
|
||||||
* Line 1: phi(r1), phi(r2), phi(r3), phi(r4), phi(r5) (for the e_1-e_1
|
* Line 1: phi(r1), phi(r2), phi(r3), phi(r4), phi(r5) (for the e\_1-e\_1
|
||||||
interaction type)
|
interaction type)
|
||||||
* Line 2: phi(r6), phi(r7), phi(r8), phi(r9), phi(r10) (this continues
|
* Line 2: phi(r6), phi(r7), phi(r8), phi(r9), phi(r10) (this continues
|
||||||
until nr)
|
until nr)
|
||||||
* ...
|
* ...
|
||||||
* Line nr/5_1: phi(r1), phi(r2), phi(r3), phi(r4), phi(r5), (for the
|
* Line nr/5\_1: phi(r1), phi(r2), phi(r3), phi(r4), phi(r5), (for the
|
||||||
e_1-e_1 interaction type)
|
e\_1-e\_1 interaction type)
|
||||||
|
|
||||||
The next section contains a block for each interaction type for the
|
The next section contains a block for each interaction type for the
|
||||||
beta_(sigma,ij)(r_ij). Each block has nr entries with 5 entries per
|
beta\_(sigma,ij)(r\_ij). Each block has nr entries with 5 entries per
|
||||||
line.
|
line.
|
||||||
|
|
||||||
* Line 1: beta_sigma(r1), beta_sigma(r2), beta_sigma(r3), beta_sigma(r4),
|
* Line 1: beta\_sigma(r1), beta\_sigma(r2), beta\_sigma(r3), beta\_sigma(r4),
|
||||||
beta_sigma(r5) (for the e_1-e_1 interaction type)
|
beta\_sigma(r5) (for the e\_1-e\_1 interaction type)
|
||||||
* Line 2: beta_sigma(r6), beta_sigma(r7), beta_sigma(r8), beta_sigma(r9),
|
* Line 2: beta\_sigma(r6), beta\_sigma(r7), beta\_sigma(r8), beta\_sigma(r9),
|
||||||
beta_sigma(r10) (this continues until nr)
|
beta\_sigma(r10) (this continues until nr)
|
||||||
* ...
|
* ...
|
||||||
* Line nr/5+1: beta_sigma(r1), beta_sigma(r2), beta_sigma(r3),
|
* Line nr/5+1: beta\_sigma(r1), beta\_sigma(r2), beta\_sigma(r3),
|
||||||
beta_sigma(r4), beta_sigma(r5) (for the e_1-e_2 interaction type)
|
beta\_sigma(r4), beta\_sigma(r5) (for the e\_1-e\_2 interaction type)
|
||||||
|
|
||||||
The next section contains a block for each interaction type for
|
The next section contains a block for each interaction type for
|
||||||
beta_(pi,ij)(r_ij). Each block has nr entries with 5 entries per line.
|
beta\_(pi,ij)(r\_ij). Each block has nr entries with 5 entries per line.
|
||||||
|
|
||||||
* Line 1: beta_pi(r1), beta_pi(r2), beta_pi(r3), beta_pi(r4), beta_pi(r5)
|
* Line 1: beta\_pi(r1), beta\_pi(r2), beta\_pi(r3), beta\_pi(r4), beta\_pi(r5)
|
||||||
(for the e_1-e_1 interaction type)
|
(for the e\_1-e\_1 interaction type)
|
||||||
* Line 2: beta_pi(r6), beta_pi(r7), beta_pi(r8), beta_pi(r9),
|
* Line 2: beta\_pi(r6), beta\_pi(r7), beta\_pi(r8), beta\_pi(r9),
|
||||||
beta_pi(r10) (this continues until nr)
|
beta\_pi(r10) (this continues until nr)
|
||||||
* ...
|
* ...
|
||||||
* Line nr/5+1: beta_pi(r1), beta_pi(r2), beta_pi(r3), beta_pi(r4),
|
* Line nr/5+1: beta\_pi(r1), beta\_pi(r2), beta\_pi(r3), beta\_pi(r4),
|
||||||
beta_pi(r5) (for the e_1-e_2 interaction type)
|
beta\_pi(r5) (for the e\_1-e\_2 interaction type)
|
||||||
|
|
||||||
The next section contains a block for each interaction type for the
|
The next section contains a block for each interaction type for the
|
||||||
THETA_(S,ij)((THETA_(sigma,ij))\^(1/2), f_(sigma,ij)). Each block has
|
THETA\_(S,ij)((THETA\_(sigma,ij))\^(1/2), f\_(sigma,ij)). Each block has
|
||||||
nBOt entries with 5 entries per line.
|
nBOt entries with 5 entries per line.
|
||||||
|
|
||||||
* Line 1: THETA_(S,ij)(r1), THETA_(S,ij)(r2), THETA_(S,ij)(r3),
|
* Line 1: THETA\_(S,ij)(r1), THETA\_(S,ij)(r2), THETA\_(S,ij)(r3),
|
||||||
THETA_(S,ij)(r4), THETA_(S,ij)(r5) (for the e_1-e_2 interaction type)
|
THETA\_(S,ij)(r4), THETA\_(S,ij)(r5) (for the e\_1-e\_2 interaction type)
|
||||||
* Line 2: THETA_(S,ij)(r6), THETA_(S,ij)(r7), THETA_(S,ij)(r8),
|
* Line 2: THETA\_(S,ij)(r6), THETA\_(S,ij)(r7), THETA\_(S,ij)(r8),
|
||||||
THETA_(S,ij)(r9), THETA_(S,ij)(r10) (this continues until nBOt)
|
THETA\_(S,ij)(r9), THETA\_(S,ij)(r10) (this continues until nBOt)
|
||||||
* ...
|
* ...
|
||||||
* Line nBOt/5+1: THETA_(S,ij)(r1), THETA_(S,ij)(r2), THETA_(S,ij)(r3),
|
* Line nBOt/5+1: THETA\_(S,ij)(r1), THETA\_(S,ij)(r2), THETA\_(S,ij)(r3),
|
||||||
THETA_(S,ij)(r4), THETA_(S,ij)(r5) (for the e_1-e_2 interaction type)
|
THETA\_(S,ij)(r4), THETA\_(S,ij)(r5) (for the e\_1-e\_2 interaction type)
|
||||||
|
|
||||||
The next section contains a block of N lines for e_1-e_N
|
The next section contains a block of N lines for e\_1-e\_N
|
||||||
|
|
||||||
* Line 1: delta\^mu (for e_1)
|
* Line 1: delta\^mu (for e\_1)
|
||||||
* Line 2: delta\^mu (for e_2 and repeats to e_N)
|
* Line 2: delta\^mu (for e\_2 and repeats to e\_N)
|
||||||
|
|
||||||
The last section contains more constants for e_i-e_j interactions with
|
The last section contains more constants for e\_i-e\_j interactions with
|
||||||
i=0->N, j=i->N
|
i=0->N, j=i->N
|
||||||
|
|
||||||
* Line 1: (A_ij)\^(mu\*nu) (for e1-e1)
|
* Line 1: (A\_ij)\^(mu\*nu) (for e1-e1)
|
||||||
* Line 2: (A_ij)\^(mu\*nu) (for e1-e2 and repeats as above)
|
* Line 2: (A\_ij)\^(mu\*nu) (for e1-e2 and repeats as above)
|
||||||
|
|
||||||
----------
|
----------
|
||||||
|
|
||||||
@ -274,34 +274,34 @@ the tabulated functions are given.
|
|||||||
* Line 1: nr, ntheta, nBOt (nr is the number of divisions the radius is broken
|
* Line 1: nr, ntheta, nBOt (nr is the number of divisions the radius is broken
|
||||||
into for function tables and MUST be a factor of 5; ntheta is the power of the
|
into for function tables and MUST be a factor of 5; ntheta is the power of the
|
||||||
power of the spline used to fit the angular function; nBOt is the number
|
power of the spline used to fit the angular function; nBOt is the number
|
||||||
of divisions for the tabulated values of THETA_(S,ij)
|
of divisions for the tabulated values of THETA\_(S,ij)
|
||||||
* Line 2: delta_1-delta_7 (if all are not used in the particular
|
* Line 2: delta\_1-delta\_7 (if all are not used in the particular
|
||||||
* formulation, set unused values to 0.0)
|
* formulation, set unused values to 0.0)
|
||||||
|
|
||||||
Following this N lines for e_1-e_N containing p_pi.
|
Following this N lines for e\_1-e\_N containing p\_pi.
|
||||||
|
|
||||||
* Line 3: p_pi (for e_1)
|
* Line 3: p\_pi (for e\_1)
|
||||||
* Line 4: p_pi (for e_2 and continues to e_N)
|
* Line 4: p\_pi (for e\_2 and continues to e\_N)
|
||||||
|
|
||||||
The next section contains several pair constants for the number of
|
The next section contains several pair constants for the number of
|
||||||
interaction types e_i-e_j, with i=1->N, j=i->N
|
interaction types e\_i-e\_j, with i=1->N, j=i->N
|
||||||
|
|
||||||
* Line 1: r_cut (for e_1-e_1 interactions)
|
* Line 1: r\_cut (for e\_1-e\_1 interactions)
|
||||||
* Line 2: c_sigma, a_sigma, c_pi, a_pi
|
* Line 2: c\_sigma, a\_sigma, c\_pi, a\_pi
|
||||||
* Line 3: delta_sigma, delta_pi
|
* Line 3: delta\_sigma, delta\_pi
|
||||||
* Line 4: f_sigma, k_sigma, delta_3 (This delta_3 is similar to that of
|
* Line 4: f\_sigma, k\_sigma, delta\_3 (This delta\_3 is similar to that of
|
||||||
the previous section but is interaction type dependent)
|
the previous section but is interaction type dependent)
|
||||||
|
|
||||||
The next section contains a line for each three body interaction type
|
The next section contains a line for each three body interaction type
|
||||||
e_j-e_i-e_k with i=0->N, j=0->N, k=j->N
|
e\_j-e\_i-e\_k with i=0->N, j=0->N, k=j->N
|
||||||
|
|
||||||
* Line 1: g0, g1, g2... (These are coefficients for the angular spline
|
* Line 1: g0, g1, g2... (These are coefficients for the angular spline
|
||||||
of the g_(sigma,jik)(THETA_ijk) for e_1-e_1-e_1 interaction. The
|
of the g\_(sigma,jik)(THETA\_ijk) for e\_1-e\_1-e\_1 interaction. The
|
||||||
function can contain up to 10 term thus 10 constants. The first line
|
function can contain up to 10 term thus 10 constants. The first line
|
||||||
can contain up to five constants. If the spline has more than five
|
can contain up to five constants. If the spline has more than five
|
||||||
terms the second line will contain the remaining constants The
|
terms the second line will contain the remaining constants The
|
||||||
following lines will then contain the constants for the remaining g0,
|
following lines will then contain the constants for the remaining g0,
|
||||||
g1, g2... (for e_1-e_1-e_2) and the other three body
|
g1, g2... (for e\_1-e\_1-e\_2) and the other three body
|
||||||
interactions
|
interactions
|
||||||
|
|
||||||
The rest of the table has the same structure as the previous section
|
The rest of the table has the same structure as the previous section
|
||||||
@ -327,34 +327,34 @@ the tabulated functions are given.
|
|||||||
* Line 1: nr, ntheta, nBOt (nr is the number of divisions the radius is broken
|
* Line 1: nr, ntheta, nBOt (nr is the number of divisions the radius is broken
|
||||||
into for function tables and MUST be a factor of 5; ntheta is the number of
|
into for function tables and MUST be a factor of 5; ntheta is the number of
|
||||||
divisions for the tabulated values of the g angular function; nBOt is the number
|
divisions for the tabulated values of the g angular function; nBOt is the number
|
||||||
of divisions for the tabulated values of THETA_(S,ij)
|
of divisions for the tabulated values of THETA\_(S,ij)
|
||||||
* Line 2: delta_1-delta_7 (if all are not used in the particular
|
* Line 2: delta\_1-delta\_7 (if all are not used in the particular
|
||||||
* formulation, set unused values to 0.0)
|
* formulation, set unused values to 0.0)
|
||||||
|
|
||||||
Following this N lines for e_1-e_N containing p_pi.
|
Following this N lines for e\_1-e\_N containing p\_pi.
|
||||||
|
|
||||||
* Line 3: p_pi (for e_1)
|
* Line 3: p\_pi (for e\_1)
|
||||||
* Line 4: p_pi (for e_2 and continues to e_N)
|
* Line 4: p\_pi (for e\_2 and continues to e\_N)
|
||||||
|
|
||||||
The next section contains several pair constants for the number of
|
The next section contains several pair constants for the number of
|
||||||
interaction types e_i-e_j, with i=1->N, j=i->N
|
interaction types e\_i-e\_j, with i=1->N, j=i->N
|
||||||
|
|
||||||
* Line 1: r_cut (for e_1-e_1 interactions)
|
* Line 1: r\_cut (for e\_1-e\_1 interactions)
|
||||||
* Line 2: c_sigma, a_sigma, c_pi, a_pi
|
* Line 2: c\_sigma, a\_sigma, c\_pi, a\_pi
|
||||||
* Line 3: delta_sigma, delta_pi
|
* Line 3: delta\_sigma, delta\_pi
|
||||||
* Line 4: f_sigma, k_sigma, delta_3 (This delta_3 is similar to that of
|
* Line 4: f\_sigma, k\_sigma, delta\_3 (This delta\_3 is similar to that of
|
||||||
the previous section but is interaction type dependent)
|
the previous section but is interaction type dependent)
|
||||||
|
|
||||||
The next section contains a line for each three body interaction type
|
The next section contains a line for each three body interaction type
|
||||||
e_j-e_i-e_k with i=0->N, j=0->N, k=j->N
|
e\_j-e\_i-e\_k with i=0->N, j=0->N, k=j->N
|
||||||
|
|
||||||
* Line 1: g(theta1), g(theta2), g(theta3), g(theta4), g(theta5) (for the e_1-e_1-e_1
|
* Line 1: g(theta1), g(theta2), g(theta3), g(theta4), g(theta5) (for the e\_1-e\_1-e\_1
|
||||||
interaction type)
|
interaction type)
|
||||||
* Line 2: g(theta6), g(theta7), g(theta8), g(theta9), g(theta10) (this continues
|
* Line 2: g(theta6), g(theta7), g(theta8), g(theta9), g(theta10) (this continues
|
||||||
until ntheta)
|
until ntheta)
|
||||||
* ...
|
* ...
|
||||||
* Line ntheta/5+1: g(theta1), g(theta2), g(theta3), g(theta4), g(theta5), (for the
|
* Line ntheta/5+1: g(theta1), g(theta2), g(theta3), g(theta4), g(theta5), (for the
|
||||||
e_1-e_1-e_2 interaction type)
|
e\_1-e\_1-e\_2 interaction type)
|
||||||
|
|
||||||
The rest of the table has the same structure as the previous section (see above).
|
The rest of the table has the same structure as the previous section (see above).
|
||||||
|
|
||||||
|
|||||||
@ -37,10 +37,11 @@ energy of the system E is given by
|
|||||||
E = \frac{1}{2} \sum_{i=1}^{N} \sum_{j=i_1}^{i_N} \phi_{ij} \left(r_{ij}\right) + \sum_{i=1}^{N}E_i\left(q_i,\sigma_i\right)
|
E = \frac{1}{2} \sum_{i=1}^{N} \sum_{j=i_1}^{i_N} \phi_{ij} \left(r_{ij}\right) + \sum_{i=1}^{N}E_i\left(q_i,\sigma_i\right)
|
||||||
|
|
||||||
The first term is a double pairwise sum over the J neighbors of all I
|
The first term is a double pairwise sum over the J neighbors of all I
|
||||||
atoms, where :math:`\phi_{ij}` is a pair potential. The second term sums over
|
atoms, where :math:`\phi_{ij}` is a pair potential. The second term
|
||||||
the embedding energy E_i of atom I, which is a function of its charge
|
sums over the embedding energy :math:`E_i` of atom I, which is a
|
||||||
q_i and the electrical potential :math:`\sigma_i` at its location. E_i, q_i,
|
function of its charge :math:`q_i` and the electrical potential
|
||||||
and :math:`sigma_i` are calculated as
|
:math:`\sigma_i` at its location. :math:`E_i`, :math:`q_i`, and
|
||||||
|
:math:`\sigma_i` are calculated as
|
||||||
|
|
||||||
.. math::
|
.. math::
|
||||||
|
|
||||||
@ -77,7 +78,7 @@ atoms in the atomic pair.
|
|||||||
charge on each atom and thus requires you to assign a charge to each
|
charge on each atom and thus requires you to assign a charge to each
|
||||||
atom, e.g. the *charge* or *full* atom styles. This is because the
|
atom, e.g. the *charge* or *full* atom styles. This is because the
|
||||||
EIM potential infers the charge on an atom from the equation above for
|
EIM potential infers the charge on an atom from the equation above for
|
||||||
q_i; you do not assign charges explicitly.
|
:math:`q_i`; you do not assign charges explicitly.
|
||||||
|
|
||||||
----------
|
----------
|
||||||
|
|
||||||
@ -90,15 +91,15 @@ A system with any combination of these elements can be modeled. This
|
|||||||
file is parameterized in terms of LAMMPS :doc:`metal units <units>`.
|
file is parameterized in terms of LAMMPS :doc:`metal units <units>`.
|
||||||
|
|
||||||
Note that unlike other potentials, cutoffs for EIM potentials are not
|
Note that unlike other potentials, cutoffs for EIM potentials are not
|
||||||
set in the pair_style or pair_coeff command; they are specified in the
|
set in the pair\_style or pair\_coeff command; they are specified in the
|
||||||
EIM potential file itself. Likewise, the EIM potential file lists
|
EIM potential file itself. Likewise, the EIM potential file lists
|
||||||
atomic masses; thus you do not need to use the :doc:`mass <mass>`
|
atomic masses; thus you do not need to use the :doc:`mass <mass>`
|
||||||
command to specify them.
|
command to specify them.
|
||||||
|
|
||||||
Only a single pair_coeff command is used with the *eim* style which
|
Only a single pair\_coeff command is used with the *eim* style which
|
||||||
specifies an EIM potential file and the element(s) to extract
|
specifies an EIM potential file and the element(s) to extract
|
||||||
information for. The EIM elements are mapped to LAMMPS atom types by
|
information for. The EIM elements are mapped to LAMMPS atom types by
|
||||||
specifying N additional arguments after the filename in the pair_coeff
|
specifying N additional arguments after the filename in the pair\_coeff
|
||||||
command, where N is the number of LAMMPS atom types:
|
command, where N is the number of LAMMPS atom types:
|
||||||
|
|
||||||
* Elem1, Elem2, ...
|
* Elem1, Elem2, ...
|
||||||
@ -111,7 +112,7 @@ to specify the path for the potential file.
|
|||||||
As an example like one of those above, suppose you want to model a
|
As an example like one of those above, suppose you want to model a
|
||||||
system with Na and Cl atoms. If your LAMMPS simulation has 4 atoms
|
system with Na and Cl atoms. If your LAMMPS simulation has 4 atoms
|
||||||
types and you want the first 3 to be Na, and the fourth to be Cl, you would
|
types and you want the first 3 to be Na, and the fourth to be Cl, you would
|
||||||
use the following pair_coeff command:
|
use the following pair\_coeff command:
|
||||||
|
|
||||||
.. code-block:: LAMMPS
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
@ -147,9 +148,9 @@ radius (LAMMPS ignores it), ionic radius (LAMMPS ignores it), cohesive
|
|||||||
energy (LAMMPS ignores it), and q0 (must be 0).
|
energy (LAMMPS ignores it), and q0 (must be 0).
|
||||||
|
|
||||||
Lines starting with "pair:" are entered as: element 1, element 2,
|
Lines starting with "pair:" are entered as: element 1, element 2,
|
||||||
r_(c,phi), r_(c,phi) (redundant for historical reasons), E_b, r_e,
|
r\_(c,phi), r\_(c,phi) (redundant for historical reasons), E\_b, r\_e,
|
||||||
alpha, beta, r_(c,eta), A_(eta), r_(s,eta), r_(c,psi), A_(psi), zeta,
|
alpha, beta, r\_(c,eta), A\_(eta), r\_(s,eta), r\_(c,psi), A\_(psi), zeta,
|
||||||
r_(s,psi), and p.
|
r\_(s,psi), and p.
|
||||||
|
|
||||||
The lines in the file can be in any order; LAMMPS extracts the info it
|
The lines in the file can be in any order; LAMMPS extracts the info it
|
||||||
needs.
|
needs.
|
||||||
|
|||||||
@ -68,7 +68,7 @@ LJ cutoff specified in the pair_style command is used.
|
|||||||
|
|
||||||
Note that :math:`\sigma` is defined in the LJ formula as the
|
Note that :math:`\sigma` is defined in the LJ formula as the
|
||||||
zero-crossing distance for the potential, *not* as the energy minimum at
|
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:`r_0 = 2^{\frac{1}{6}} \sigma`. The *same* potential function becomes:
|
||||||
|
|
||||||
.. math::
|
.. math::
|
||||||
|
|
||||||
|
|||||||
46
doc/utils/pandoc.css
Normal file
46
doc/utils/pandoc.css
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
body {
|
||||||
|
padding-left: 1em;
|
||||||
|
padding-right: 1em;
|
||||||
|
padding-top: 1em;
|
||||||
|
padding-bottom: 1em;
|
||||||
|
hyphens: auto;
|
||||||
|
overflow-wrap: break-word;
|
||||||
|
text-rendering: optimizeLegibility;
|
||||||
|
font-kerning: normal;
|
||||||
|
font-family: sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
.parsed-literal {
|
||||||
|
font-family: monospace;
|
||||||
|
margin: 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.note {
|
||||||
|
background: #e7f2fa;
|
||||||
|
}
|
||||||
|
|
||||||
|
.warning {
|
||||||
|
background: #f0b37e;
|
||||||
|
}
|
||||||
|
|
||||||
|
.title {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hint {
|
||||||
|
background: #dbfaf4;
|
||||||
|
}
|
||||||
|
p {
|
||||||
|
line-height: 20px;
|
||||||
|
font-size: 16px;
|
||||||
|
margin: 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre {
|
||||||
|
line-height: 18px;
|
||||||
|
padding: 1ex;
|
||||||
|
background: #f8f8f8;
|
||||||
|
border: solid;
|
||||||
|
border-width: 1px;
|
||||||
|
border-color: #d0d0d0;
|
||||||
|
}
|
||||||
70
doc/utils/pandoc.html
Normal file
70
doc/utils/pandoc.html
Normal file
@ -0,0 +1,70 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml" lang="$lang$" xml:lang="$lang$"$if(dir)$ dir="$dir$"$endif$>
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="generator" content="pandoc" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
|
||||||
|
$for(author-meta)$
|
||||||
|
<meta name="author" content="$author-meta$" />
|
||||||
|
$endfor$
|
||||||
|
$if(date-meta)$
|
||||||
|
<meta name="dcterms.date" content="$date-meta$" />
|
||||||
|
$endif$
|
||||||
|
$if(keywords)$
|
||||||
|
<meta name="keywords" content="$for(keywords)$$keywords$$sep$, $endfor$" />
|
||||||
|
$endif$
|
||||||
|
$if(description-meta)$
|
||||||
|
<meta name="description" content="$description-meta$" />
|
||||||
|
$endif$
|
||||||
|
<title>$if(title-prefix)$$title-prefix$ – $endif$$pagetitle$</title>
|
||||||
|
<style>
|
||||||
|
$styles.html()$
|
||||||
|
</style>
|
||||||
|
$for(css)$
|
||||||
|
<link rel="stylesheet" href="$css$" />
|
||||||
|
$endfor$
|
||||||
|
$for(header-includes)$
|
||||||
|
$header-includes$
|
||||||
|
$endfor$
|
||||||
|
$if(math)$
|
||||||
|
$math$
|
||||||
|
$endif$
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
$for(include-before)$
|
||||||
|
$include-before$
|
||||||
|
$endfor$
|
||||||
|
$if(title)$
|
||||||
|
<header id="title-block-header">
|
||||||
|
<h1 class="title">$title$</h1>
|
||||||
|
$if(subtitle)$
|
||||||
|
<p class="subtitle">$subtitle$</p>
|
||||||
|
$endif$
|
||||||
|
$for(author)$
|
||||||
|
<p class="author">$author$</p>
|
||||||
|
$endfor$
|
||||||
|
$if(date)$
|
||||||
|
<p class="date">$date$</p>
|
||||||
|
$endif$
|
||||||
|
$if(abstract)$
|
||||||
|
<div class="abstract">
|
||||||
|
<div class="abstract-title">$abstract-title$</div>
|
||||||
|
$abstract$
|
||||||
|
</div>
|
||||||
|
$endif$
|
||||||
|
</header>
|
||||||
|
$endif$
|
||||||
|
$if(toc)$
|
||||||
|
<nav id="$idprefix$TOC" role="doc-toc">
|
||||||
|
$if(toc-title)$
|
||||||
|
<h2 id="$idprefix$toc-title">$toc-title$</h2>
|
||||||
|
$endif$
|
||||||
|
$table-of-contents$
|
||||||
|
</nav>
|
||||||
|
$endif$
|
||||||
|
$body$
|
||||||
|
$for(include-after)$
|
||||||
|
$include-after$
|
||||||
|
$endfor$
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Reference in New Issue
Block a user