Unverified Commit f4aede49 authored by Axel Kohlmeyer's avatar Axel Kohlmeyer
Browse files

Merge branch 'master' into multi-comm-tiled

parents ea900b34 6576c4cb
Loading
Loading
Loading
Loading

.github/codecov.yml

0 → 100644
+29 −0
Original line number Diff line number Diff line
comment: false
coverage:
  notify:
    slack:
      default:
        url: "secret:HWZbvgtc6OD7F3v3PfrK3/rzCJvScbh69Fi1CkLwuHK0+wIBIHVR+Q5i7q6F9Ln4OChbiRGtYAEUUsT8/jmBu4qDpIi8mx746codc0z/Z3aafLd24pBrCEPLvdCfIZxqPnw3TuUgGhwmMDZf0+thg8YNUr/MbOZ7Li2L6+ZbYuA="
        threshold: 10%
        only_pulls: false
        branches:
          - "master"
        flags:
          - "unit"
        paths:
          - "src"
  status:
    project:
        default:
            branches:
              - "master"
            paths:
              - "src"
            informational: true
    patch:
        default:
            branches:
              - "master"
            paths:
              - "src"
            informational: true
+9 −6
Original line number Diff line number Diff line
@@ -23,14 +23,17 @@ if(ENABLE_TESTING)
        OR (${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang"))
      include(CheckCXXCompilerFlag)
      set(CMAKE_CUSTOM_LINKER_DEFAULT default)
      check_cxx_compiler_flag(-fuse-ld=lld HAVE_LLD_LINKER)
      check_cxx_compiler_flag(-fuse-ld=gold HAVE_GOLD_LINKER)
      check_cxx_compiler_flag(-fuse-ld=bfd HAVE_BFD_LINKER)
      if(HAVE_LLD_LINKER)
      check_cxx_compiler_flag(-fuse-ld=lld HAVE_LLD_LINKER_FLAG)
      check_cxx_compiler_flag(-fuse-ld=gold HAVE_GOLD_LINKER_FLAG)
      check_cxx_compiler_flag(-fuse-ld=bfd HAVE_BFD_LINKER_FLAG)
      find_program(HAVE_LLD_LINKER_BIN lld ld.lld)
      find_program(HAVE_GOLD_LINKER_BIN ld.gold)
      find_program(HAVE_BFD_LINKER_BIN ld.bfd)
      if(HAVE_LLD_LINKER_FLAG AND HAVE_LLD_LINKER_BIN)
        set(CMAKE_CUSTOM_LINKER_DEFAULT lld)
      elseif(HAVE_GOLD_LINKER)
      elseif(HAVE_GOLD_LINKER_FLAG AND HAVE_GOLD_LINKER_BIN)
        set(CMAKE_CUSTOM_LINKER_DEFAULT gold)
      elseif(HAVE_BFD_LINKER)
      elseif(HAVE_BFD_LINKER_FLAG AND HAVE_BFD_LINKER_BIN)
        set(CMAKE_CUSTOM_LINKER_DEFAULT bfd)
      endif()
      set(CMAKE_CUSTOM_LINKER_VALUES lld gold bfd default)
+18 −0
Original line number Diff line number Diff line
@@ -118,6 +118,24 @@ Doc page with :doc:`ERROR messages <Errors_messages>`
   incorrect periodic images of atoms in interaction lists.  To avoid, either use
   :doc:`pair style zero <pair_zero>` with a suitable cutoff or use :doc:`comm_modify cutoff <comm_modify>`.

*Communication cutoff is shorter than a bond length based estimate. This may lead to errors.*

   Since LAMMPS stores topology data with individual atoms, all atoms
   comprising a bond, angle, dihedral or improper must be present on any
   sub-domain that "owns" the atom with the information, either as a
   local or a ghost atom. The communication cutoff is what determines up
   to what distance from a sub-domain boundary ghost atoms are created.
   The communication cutoff is by default the largest non-bonded cutoff
   plus the neighbor skin distance, but for short or non-bonded cutoffs
   and/or long bonds, this may not be sufficient. This warning indicates
   that there is an increased risk of a simulation stopping unexpectedly
   because of Bond/Angle/Dihedral/Improper atoms missing.  It can be
   silenced by manually setting the communication cutoff via
   :doc:`comm_modify cutoff <comm_modify>`.  However, since the
   heuristic used to determine the estimate is not always accurate, it
   is not changed automatically and the warning may be ignored depending
   on the specific system being simulated.

*Communication cutoff is too small for SNAP micro load balancing, increased to %lf*
   Self-explanatory.

+2 −4
Original line number Diff line number Diff line
@@ -94,10 +94,8 @@ of a run:

**Mixing, shift, table, tail correction, restart, rRESPA info**\ :

For atom type pairs I,J and I != J, the A coefficient and cutoff
distance for this pair style can be mixed.  A is always mixed via a
*geometric* rule.  The cutoff is mixed according to the pair_modify
mix value.  The default mix value is *geometric*\ .  See the
For atom type pairs I,J and I != J, the epsilon and sigma coefficients and cutoff
distance for this pair style can be mixed. The default mix value is *geometric*\ .  See the
"pair_modify" command for details.

This pair style support the :doc:`pair_modify <pair_modify>` shift option for the energy of the pair interaction.
+56 −52
Original line number Diff line number Diff line
#!/usr/bin/env python3

from __future__ import print_function
import os, re, sys
from glob import glob
from argparse import ArgumentParser
import os, re, sys

parser = ArgumentParser(prog='check-packages.py',
                        description="Check package table completeness")

parser.add_argument("-v", "--verbose",
                    action='store_const',
                    const=True, default=False,
                    action='store_true',
                    help="Enable verbose output")

parser.add_argument("-d", "--doc",
@@ -20,20 +18,28 @@ parser.add_argument("-s", "--src",

args = parser.parse_args()
verbose = args.verbose
src = args.src
doc = args.doc
src_dir = args.src
doc_dir = args.doc

LAMMPS_DIR = os.path.realpath(os.path.join(os.path.dirname(__file__), '..', '..'))

if not src_dir:
    src_dir = os.path.join(LAMMPS_DIR , 'src')

if not doc_dir:
    doc_dir = os.path.join(LAMMPS_DIR, 'doc', 'src')

if not args.src or not args.doc:
if not src_dir or not doc_dir:
    parser.print_help()
    sys.exit(1)

if not os.path.isdir(src):
    sys.exit("LAMMPS source path %s does not exist" % src)
if not os.path.isdir(src_dir):
    sys.exit(f"LAMMPS source path {src_dir} does not exist")

if not os.path.isdir(doc):
    sys.exit("LAMMPS documentation source path %s does not exist" % doc)
if not os.path.isdir(doc_dir):
    sys.exit(f"LAMMPS documentation source path {doc_dir} does not exist")

pkgdirs = glob(os.path.join(src, '[A-Z][A-Z]*'))
pkgdirs = glob(os.path.join(src_dir, '[A-Z][A-Z]*'))
dirs = re.compile(".*/([0-9A-Z-]+)$")
user = re.compile("USER-.*")

@@ -46,52 +52,50 @@ usrpkg = []

for d in pkgdirs:
    pkg = dirs.match(d).group(1)
  if not os.path.isdir(os.path.join(src,pkg)): continue
    if not os.path.isdir(os.path.join(src_dir, pkg)): continue
    if pkg in ['DEPEND','MAKE','STUBS']: continue
    if user.match(pkg):
        usrpkg.append(pkg)
    else:
        stdpkg.append(pkg)

print("Found %d standard and %d user packages" % (len(stdpkg),len(usrpkg)))
print(f"Found {len(stdpkg)} standard and {len(usrpkg)} user packages")

counter = 0
fp = open(os.path.join(doc,'Packages_standard.rst'))

with open(os.path.join(doc_dir, 'Packages_standard.rst')) as fp:
    text = fp.read()
fp.close()
matches = re.findall(':ref:`([A-Z0-9-]+) <[A-Z0-9-]+>`',text,re.MULTILINE)

matches = set(re.findall(':ref:`([A-Z0-9-]+) <[A-Z0-9-]+>`', text, re.MULTILINE))
for p in stdpkg:
  if not p in matches:
    ++counter
    print("Standard package %s missing in Packages_standard.rst"
          % p)
    counter += 1
    print(f"Standard package {p} missing in Packages_standard.rst")

fp = open(os.path.join(doc,'Packages_user.rst'))
with open(os.path.join(doc_dir, 'Packages_user.rst')) as fp:
    text = fp.read()
fp.close()
matches = re.findall(':ref:`([A-Z0-9-]+) <[A-Z0-9-]+>`',text,re.MULTILINE)

matches = set(re.findall(':ref:`([A-Z0-9-]+) <[A-Z0-9-]+>`', text, re.MULTILINE))
for p in usrpkg:
  if not p in matches:
    ++counter
    print("User package %s missing in Packages_user.rst"
          % p)
    counter += 1
    print(f"User package {p} missing in Packages_user.rst")

fp = open(os.path.join(doc,'Packages_details.rst'))
with open(os.path.join(doc_dir, 'Packages_details.rst')) as fp:
    text = fp.read()
fp.close()
matches = re.findall(':ref:`([A-Z0-9]+) <PKG-\\1>`',text,re.MULTILINE)

matches = set(re.findall(':ref:`([A-Z0-9]+) <PKG-\\1>`', text, re.MULTILINE))
for p in stdpkg:
    if not p in matches:
    ++counter
    print("Standard package %s missing in Packages_details.rst"
          % p)
matches = re.findall(':ref:`(USER-[A-Z0-9]+) <PKG-\\1>`',text,re.MULTILINE)
        counter += 1
        print(f"Standard package {p} missing in Packages_details.rst")

matches = set(re.findall(':ref:`(USER-[A-Z0-9]+) <PKG-\\1>`', text, re.MULTILINE))
for p in usrpkg:
    if not p in matches:
    ++counter
    print("User package %s missing in Packages_details.rst"
          % p)
        counter +=1 
        print(f"User package {p} missing in Packages_details.rst")

if counter:
    print("Found %d issue(s) with package lists" % counter)
    print(f"Found {counter} issue(s) with package lists")
Loading