Merge branch 'develop' into ctip

This commit is contained in:
Axel Kohlmeyer
2024-09-11 23:36:16 -04:00
58 changed files with 3266 additions and 4850 deletions

View File

@ -1,4 +1,4 @@
# GitHub action to build LAMMPS on Windows with Visual C++
# GitHub action to test LAMMPS on Windows with Visual C++
name: "Windows Unit Tests"
on:

108
.github/workflows/full-regression.yml vendored Normal file
View File

@ -0,0 +1,108 @@
# GitHub action to build LAMMPS on Linux and run regression tests
name: "Full Regression Test"
on:
push:
branches:
- develop
workflow_dispatch:
jobs:
build:
name: Build LAMMPS
# restrict to official LAMMPS repository
if: ${{ github.repository == 'lammps/lammps' }}
runs-on: ubuntu-latest
env:
CCACHE_DIR: ${{ github.workspace }}/.ccache
strategy:
max-parallel: 8
matrix:
idx: [ 0, 1, 2, 3, 4, 5, 6, 7 ]
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 2
show-progress: false
- name: Install extra packages
run: |
sudo apt-get install -y ccache ninja-build libeigen3-dev \
libgsl-dev libcurl4-openssl-dev python3-dev \
mpi-default-bin mpi-default-dev
- name: Create Build Environment
run: mkdir build
- name: Set up ccache
uses: actions/cache@v4
with:
path: ${{ env.CCACHE_DIR }}
key: linux-full-ccache-${{ github.sha }}
restore-keys: linux-full-ccache-
- name: Building LAMMPS via CMake
shell: bash
run: |
ccache -z
python3 -m venv linuxenv
source linuxenv/bin/activate
python3 -m pip install --upgrade pip
python3 -m pip install numpy pyyaml junit_xml
cmake -S cmake -B build \
-C cmake/presets/gcc.cmake \
-C cmake/presets/most.cmake \
-D CMAKE_CXX_COMPILER_LAUNCHER=ccache \
-D CMAKE_C_COMPILER_LAUNCHER=ccache \
-D BUILD_SHARED_LIBS=off \
-D DOWNLOAD_POTENTIALS=off \
-D PKG_MANIFOLD=on \
-D PKG_ML-PACE=on \
-D PKG_ML-RANN=on \
-D PKG_RHEO=on \
-D PKG_PTM=on \
-D PKG_PYTHON=on \
-D PKG_QTB=on \
-D PKG_SMTBQ=on \
-G Ninja
cmake --build build
ccache -s
- name: Run Full Regression Tests
shell: bash
run: |
source linuxenv/bin/activate
python3 tools/regression-tests/run_tests.py \
--lmp-bin=build/lmp \
--config-file=tools/regression-tests/config_serial.yaml \
--examples-top-level=examples --analyze --num-workers=8
python3 tools/regression-tests/run_tests.py \
--lmp-bin=build/lmp \
--config-file=tools/regression-tests/config_serial.yaml \
--list-input=input-list-${{ matrix.idx }}.txt \
--output-file=output-${{ matrix.idx }}.xml \
--progress-file=progress-${{ matrix.idx }}.yaml \
--log-file=run-${{ matrix.idx }}.log
tar -cvf full-regression-test-${{ matrix.idx }}.tar run-${{ matrix.idx }}.log progress-${{ matrix.idx }}.yaml output-${{ matrix.idx }}.xml
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: full-regression-test-artifact-${{ matrix.idx }}
path: full-regression-test-${{ matrix.idx }}.tar
merge:
runs-on: ubuntu-latest
needs: build
steps:
- name: Merge Artifacts
uses: actions/upload-artifact/merge@v4
with:
name: merged-full-regresssion-artifact
pattern: full-regression-test-artifact-*

113
.github/workflows/quick-regression.yml vendored Normal file
View File

@ -0,0 +1,113 @@
# GitHub action to build LAMMPS on Linux and run selected regression tests
name: "Quick Regression Test"
on:
pull_request:
branches:
- develop
workflow_dispatch:
jobs:
build:
name: Build LAMMPS
# restrict to official LAMMPS repository
if: ${{ github.repository == 'lammps/lammps' }}
runs-on: ubuntu-latest
env:
CCACHE_DIR: ${{ github.workspace }}/.ccache
strategy:
max-parallel: 4
matrix:
idx: [ 0, 1, 2, 3 ]
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0
show-progress: false
- name: Install extra packages
run: |
sudo apt-get install -y ccache ninja-build libeigen3-dev \
libgsl-dev libcurl4-openssl-dev python3-dev \
mpi-default-bin mpi-default-dev
- name: Create Build Environment
run: mkdir build
- name: Set up ccache
uses: actions/cache@v4
with:
path: ${{ env.CCACHE_DIR }}
key: linux-quick-ccache-${{ github.sha }}
restore-keys: linux-quick-ccache-
- name: Building LAMMPS via CMake
shell: bash
run: |
ccache -z
python3 -m venv linuxenv
source linuxenv/bin/activate
python3 -m pip install --upgrade pip
python3 -m pip install numpy pyyaml junit_xml
cmake -S cmake -B build \
-C cmake/presets/gcc.cmake \
-C cmake/presets/most.cmake \
-D CMAKE_CXX_COMPILER_LAUNCHER=ccache \
-D CMAKE_C_COMPILER_LAUNCHER=ccache \
-D BUILD_SHARED_LIBS=off \
-D DOWNLOAD_POTENTIALS=off \
-D PKG_MANIFOLD=on \
-D PKG_ML-PACE=on \
-D PKG_ML-RANN=on \
-D PKG_RHEO=on \
-D PKG_PTM=on \
-D PKG_PYTHON=on \
-D PKG_QTB=on \
-D PKG_SMTBQ=on \
-G Ninja
cmake --build build
ccache -s
- name: Run Regression Tests for Modified Styles
shell: bash
run: |
source linuxenv/bin/activate
python3 tools/regression-tests/run_tests.py \
--lmp-bin=build/lmp \
--config-file=tools/regression-tests/config_quick.yaml \
--examples-top-level=examples \
--quick-reference=tools/regression-tests/reference.yaml \
--quick --quick-branch=origin/develop --quick-max=100 --num-workers=4
if [ -f input-list-${{ matrix.idx }}.txt ]
then \
python3 tools/regression-tests/run_tests.py \
--lmp-bin=build/lmp \
--config-file=tools/regression-tests/config_quick.yaml \
--list-input=input-list-${{ matrix.idx }}.txt \
--output-file=output-${{ matrix.idx }}.xml \
--progress-file=progress-${{ matrix.idx }}.yaml \
--log-file=run-${{ matrix.idx }}.log
fi
tar -cvf quick-regression-test-${{ matrix.idx }}.tar run-${{ matrix.idx }}.log progress-${{ matrix.idx }}.yaml output-${{ matrix.idx }}.xml
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: quick-regression-test-artifact-${{ matrix.idx }}
path: quick-regression-test-${{ matrix.idx }}.tar
merge:
runs-on: ubuntu-latest
needs: build
steps:
- name: Merge Artifacts
uses: actions/upload-artifact/merge@v4
with:
name: merged-quick-regresssion-artifact
pattern: quick-regression-test-artifact-*

View File

@ -138,12 +138,27 @@ during development:
The status of this automated testing can be viewed on `https://ci.lammps.org
<https://ci.lammps.org>`_.
The scripts and inputs for integration, run, and regression testing
are maintained in a
`separate repository <https://github.com/lammps/lammps-testing>`_
of the LAMMPS project on GitHub. A few tests are also run as GitHub
Actions and their configuration files are in the ``.github/workflows/``
folder of the LAMMPS git tree.
The scripts and inputs for integration, run, and legacy regression
testing are maintained in a `separate repository
<https://github.com/lammps/lammps-testing>`_ of the LAMMPS project on
GitHub. A few tests are also run as GitHub Actions and their
configuration files are in the ``.github/workflows/`` folder of the
LAMMPS git tree.
Regression tests can also be performed locally with the :ref:`regression
tester tool <regression>`. The tool checks if a given LAMMPS binary run
with selected input examples produces thermo output that is consistent
with the provided log files. The script can be run in one pass over all
available input files, but it can also first create multiple lists of
inputs or folders that can then be run with multiple workers
concurrently to speed things up. Another mode allows to do a quick
check of inputs that contain commands that have changes in the current
checkout branch relative to a git branch. This works similar to the two
pass mode, but will select only shorter runs and no more than 100 inputs
that are chosen randomly. This ensures that this test runs
significantly faster compared to the full test run. These test runs can
also be performed with instrumented LAMMPS binaries (see previous
section).
The unit testing facility is integrated into the CMake build process of
the LAMMPS source code distribution itself. It can be enabled by

View File

@ -1022,7 +1022,7 @@ regression tests with a given LAMMPS binary. The tool launches the
LAMMPS binary with any given input script under one of the `examples`
subdirectories, and compares the thermo output in the generated log file
with those in the provided log file with the same number of processors
ub the same subdirectory. If the differences between the actual and
in the same subdirectory. If the differences between the actual and
reference values are within specified tolerances, the test is considered
passed. For each test batch, that is, a set of example input scripts,
the mpirun command, the LAMMPS command line arguments, and the

View File

@ -51,7 +51,7 @@ index file. When specifying group IDs, only those groups will be
written to the index file. In order to follow the Gromacs conventions,
the group *all* will be renamed to *System* in the index file.
The *ndx2group* command will create of update group definitions from
The *ndx2group* command will create or update group definitions from
those stored in an index file. Without specifying any group IDs, all
groups except *System* will be read from the index file and the
corresponding groups recreated. If a group of the same name already

File diff suppressed because it is too large Load Diff

View File

@ -586,8 +586,25 @@ void Neighbor::build_nbor_list(double **x, const int inum, const int host_inum,
const int b2y=_block_cell_2d;
const int g2x=static_cast<int>(ceil(static_cast<double>(_maxspecial)/b2x));
const int g2y=static_cast<int>(ceil(static_cast<double>(nt)/b2y));
_shared->k_transpose.set_size(g2x,g2y,b2x,b2y);
_shared->k_transpose.run(&dev_special,&dev_special_t,&_maxspecial,&nt);
// the maximum number of blocks on the device is typically 65535
// in principle we can use a lower number to have more resource per block 32768
const int max_num_blocks = 65535;
int shift = 0;
if (g2y < max_num_blocks) {
_shared->k_transpose.set_size(g2x,g2y,b2x,b2y);
_shared->k_transpose.run(&dev_special,&dev_special_t,&_maxspecial,&nt,&shift);
} else {
// using a fixed number of blocks
int g2y_m = max_num_blocks;
_shared->k_transpose.set_size(g2x,g2y_m,b2x,b2y);
// number of chunks needed for the whole transpose
const int num_chunks = ceil(static_cast<double>(g2y) / g2y_m);
for (int i = 0; i < num_chunks; i++) {
_shared->k_transpose.run(&dev_special,&dev_special_t,&_maxspecial,&nt,&shift);
shift += g2y_m*b2y;
}
}
time_transpose.stop();
}

View File

@ -147,7 +147,7 @@ __kernel void kernel_calc_cell_counts(const unsigned *restrict cell_id,
__kernel void transpose(__global tagint *restrict out,
const __global tagint *restrict in,
int columns_in, int rows_in)
int columns_in, int rows_in, int shift)
{
__local tagint block[BLOCK_CELL_2D][BLOCK_CELL_2D+1];
@ -158,15 +158,15 @@ __kernel void transpose(__global tagint *restrict out,
unsigned i=bi*BLOCK_CELL_2D+ti;
unsigned j=bj*BLOCK_CELL_2D+tj;
if ((i<columns_in) && (j<rows_in))
block[tj][ti]=in[j*columns_in+i];
if ((i<columns_in) && (j+shift<rows_in))
block[tj][ti]=in[(j+shift)*columns_in+i];
__syncthreads();
i=bj*BLOCK_CELL_2D+ti;
j=bi*BLOCK_CELL_2D+tj;
if ((i<rows_in) && (j<columns_in))
out[j*rows_in+i] = block[ti][tj];
if ((i+shift<rows_in) && (j<columns_in))
out[j*rows_in+i+shift] = block[ti][tj];
}
#ifndef LAL_USE_OLD_NEIGHBOR

View File

@ -18,12 +18,10 @@
from ctypes import POINTER, c_void_p, c_char_p, c_double, c_int, c_int32, c_int64, cast
from .constants import LAMMPS_AUTODETECT, LAMMPS_INT, LAMMPS_INT_2D, \
LAMMPS_DOUBLE, LAMMPS_DOUBLE_2D, LAMMPS_INT64, LAMMPS_INT64_2D, \
LMP_STYLE_GLOBAL, LMP_STYLE_ATOM, LMP_STYLE_LOCAL, \
LMP_TYPE_SCALAR, LMP_TYPE_VECTOR, LMP_TYPE_ARRAY, \
LMP_SIZE_VECTOR, LMP_SIZE_ROWS, LMP_SIZE_COLS, \
LMP_VAR_EQUAL, LMP_VAR_ATOM, LMP_VAR_VECTOR, LMP_VAR_STRING
from .constants import LAMMPS_AUTODETECT, LAMMPS_INT, LAMMPS_INT_2D, LAMMPS_DOUBLE, \
LAMMPS_DOUBLE_2D, LAMMPS_INT64, LAMMPS_INT64_2D, LMP_STYLE_GLOBAL, LMP_STYLE_ATOM, \
LMP_STYLE_LOCAL, LMP_TYPE_VECTOR, LMP_TYPE_ARRAY, LMP_SIZE_VECTOR, LMP_SIZE_ROWS, \
LMP_SIZE_COLS, LMP_VAR_EQUAL, LMP_VAR_ATOM
from .data import NeighList

10
src/.gitignore vendored
View File

@ -192,6 +192,8 @@
/colvarproxy_lammps_version.h
/fix_colvars.cpp
/fix_colvars.h
/inthash.cpp
/inthash.h
/fix_plumed.cpp
/fix_plumed.h
/dump_molfile.cpp
@ -1082,12 +1084,12 @@
/geturl.cpp
/geturl.h
/gpu_extra.h
/group_ndx.cpp
/group_ndx.h
/group2ndx.cpp
/group2ndx.h
/gz_file_writer.cpp
/gz_file_writer.h
/ndx_group.cpp
/ndx_group.h
/ndx2group.cpp
/ndx2group.h
/hyper.cpp
/hyper.h
/improper_class2.cpp

View File

@ -26,7 +26,7 @@ namespace LAMMPS_NS {
class PairLJSFDipoleSF : public Pair {
public:
PairLJSFDipoleSF(class LAMMPS *_lmp) : Pair(_lmp){};
PairLJSFDipoleSF(class LAMMPS *_lmp) : Pair(_lmp) {};
~PairLJSFDipoleSF() override;
void compute(int, int) override;
void settings(int, char **) override;

View File

@ -1,6 +1,4 @@
// -*- c++ -*-
/* ----------------------------------------------------------------------
/* -*- c++ -*--------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
https://www.lammps.org/, Sandia National Laboratories
LAMMPS development team: developers@lammps.org
@ -16,7 +14,7 @@
Contributing author: Axel Kohlmeyer (Temple U)
------------------------------------------------------------------------- */
#include "group_ndx.h"
#include "group2ndx.h"
#include "atom.h"
#include "comm.h"

View File

@ -1,6 +1,4 @@
// -*- c++ -*-
/* ----------------------------------------------------------
/* -*- c++ -*-----------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
https://www.lammps.org/, Sandia National Laboratories
LAMMPS development team: developers@lammps.org
@ -19,8 +17,8 @@ CommandStyle(group2ndx,Group2Ndx);
// clang-format on
#else
#ifndef LMP_GROUP_NDX_H
#define LMP_GROUP_NDX_H
#ifndef LMP_GROUP2NDX_H
#define LMP_GROUP2NDX_H
#include "command.h"
@ -28,7 +26,7 @@ namespace LAMMPS_NS {
class Group2Ndx : public Command {
public:
Group2Ndx(class LAMMPS *lmp) : Command(lmp){};
Group2Ndx(class LAMMPS *lmp) : Command(lmp) {};
void command(int, char **) override;
private:

View File

@ -1,6 +1,4 @@
// -*- c++ -*-
/* ----------------------------------------------------------------------
/* -*- c++ -*---------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
https://www.lammps.org/, Sandia National Laboratories
LAMMPS development team: developers@lammps.org
@ -16,7 +14,7 @@
Contributing author: Axel Kohlmeyer (Temple U)
------------------------------------------------------------------------- */
#include "ndx_group.h"
#include "ndx2group.h"
#include "atom.h"
#include "comm.h"
@ -33,8 +31,7 @@ static std::string find_section(FILE *fp, const std::string &name)
{
char linebuf[BUFLEN];
if (!fgets(linebuf, BUFLEN, fp))
throw TokenizerException("Read error", utils::getsyserror());
if (!fgets(linebuf, BUFLEN, fp)) throw TokenizerException("Read error", utils::getsyserror());
while (!feof(fp)) {
if (utils::strmatch(linebuf, "^\\s*\\[.*\\]\\s*$")) {
auto words = Tokenizer(linebuf).as_vector();

View File

@ -1,6 +1,4 @@
// -*- c++ -*-
/* ----------------------------------------------------------
/* -*- c++ -*-------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
https://www.lammps.org/, Sandia National Laboratories
LAMMPS development team: developers@lammps.org
@ -19,8 +17,8 @@ CommandStyle(ndx2group,Ndx2Group);
// clang-format on
#else
#ifndef LMP_NDX_GROUP_H
#define LMP_NDX_GROUP_H
#ifndef LMP_NDX2GROUP_H
#define LMP_NDX2GROUP_H
#include "command.h"
#include <vector>
@ -29,7 +27,7 @@ namespace LAMMPS_NS {
class Ndx2Group : public Command {
public:
Ndx2Group(class LAMMPS *lmp) : Command(lmp){};
Ndx2Group(class LAMMPS *lmp) : Command(lmp) {};
void command(int, char **) override;
private:

View File

@ -64,8 +64,7 @@ class PairAmoebaGPU : public PairAmoeba {
void udirect2b_cpu();
template<class numtyp>
void compute_force_from_torque(const numtyp*, double**, double*);
template <class numtyp> void compute_force_from_torque(const numtyp *, double **, double *);
};
} // namespace LAMMPS_NS

View File

@ -65,8 +65,7 @@ class PairHippoGPU : public PairAmoeba {
void udirect2b_cpu();
template<class numtyp>
void compute_force_from_torque(const numtyp*, double**, double*);
template <class numtyp> void compute_force_from_torque(const numtyp *, double **, double *);
};
} // namespace LAMMPS_NS

View File

@ -75,7 +75,7 @@ class PairGranular : public Pair {
// granular models
int nmodels, maxmodels;
class Granular_NS::GranularModel** models_list;
class Granular_NS::GranularModel **models_list;
int **types_indices;
// optional user-specified global cutoff, per-type user-specified cutoffs

View File

@ -30,7 +30,6 @@ class PairAIPWATER2DM : virtual public PairILPTMD {
protected:
void settings(int, char **) override;
};
} // namespace LAMMPS_NS

View File

@ -39,7 +39,12 @@ class PairILPGrapheneHBN : public Pair {
static constexpr int NPARAMS_PER_LINE = 13;
enum { ILP_GrhBN, ILP_TMD, SAIP_METAL, AIP_WATER_2DM }; // for telling class variants apart in shared code
enum {
ILP_GrhBN,
ILP_TMD,
SAIP_METAL,
AIP_WATER_2DM
}; // for telling class variants apart in shared code
protected:
int me;

View File

@ -53,7 +53,8 @@ FixACKS2ReaxFFKokkos(LAMMPS *lmp, int narg, char **arg) :
datamask_read = X_MASK | V_MASK | F_MASK | MASK_MASK | Q_MASK | TYPE_MASK | TAG_MASK;
datamask_modify = Q_MASK | X_MASK;
nmax = m_cap = 0;
nmax = 0;
m_cap_big = 0;
allocated_flag = 0;
nprev = 4;
@ -66,7 +67,7 @@ FixACKS2ReaxFFKokkos(LAMMPS *lmp, int narg, char **arg) :
buf = new double[2*nprev];
prev_last_rows_rank = 0;
d_mfill_offset = typename AT::t_int_scalar("acks2/kk:mfill_offset");
d_mfill_offset = typename AT::t_bigint_scalar("acks2/kk:mfill_offset");
}
/* ---------------------------------------------------------------------- */
@ -418,10 +419,10 @@ void FixACKS2ReaxFFKokkos<DeviceType>::pre_force(int /*vflag*/)
template<class DeviceType>
KOKKOS_INLINE_FUNCTION
void FixACKS2ReaxFFKokkos<DeviceType>::num_neigh_item(int ii, int &maxneigh) const
void FixACKS2ReaxFFKokkos<DeviceType>::num_neigh_item(int ii, bigint &totneigh) const
{
const int i = d_ilist[ii];
maxneigh += d_numneigh[i];
totneigh += d_numneigh[i];
}
/* ---------------------------------------------------------------------- */
@ -433,39 +434,39 @@ void FixACKS2ReaxFFKokkos<DeviceType>::allocate_matrix()
// determine the total space for the H matrix
m_cap = 0;
m_cap_big = 0;
// limit scope of functor to allow deallocation of views
{
FixACKS2ReaxFFKokkosNumNeighFunctor<DeviceType> neigh_functor(this);
Kokkos::parallel_reduce(nn,neigh_functor,m_cap);
Kokkos::parallel_reduce(nn,neigh_functor,m_cap_big);
}
// deallocate first to reduce memory overhead
d_firstnbr = typename AT::t_int_1d();
d_firstnbr = typename AT::t_bigint_1d();
d_numnbrs = typename AT::t_int_1d();
d_jlist = typename AT::t_int_1d();
d_val = typename AT::t_ffloat_1d();
d_firstnbr_X = typename AT::t_int_1d();
d_firstnbr_X = typename AT::t_bigint_1d();
d_numnbrs_X = typename AT::t_int_1d();
d_jlist_X = typename AT::t_int_1d();
d_val_X = typename AT::t_ffloat_1d();
// H matrix
d_firstnbr = typename AT::t_int_1d("acks2/kk:firstnbr",nmax);
d_firstnbr = typename AT::t_bigint_1d("acks2/kk:firstnbr",nmax);
d_numnbrs = typename AT::t_int_1d("acks2/kk:numnbrs",nmax);
d_jlist = typename AT::t_int_1d("acks2/kk:jlist",m_cap);
d_val = typename AT::t_ffloat_1d("acks2/kk:val",m_cap);
d_jlist = typename AT::t_int_1d("acks2/kk:jlist",m_cap_big);
d_val = typename AT::t_ffloat_1d("acks2/kk:val",m_cap_big);
// X matrix
d_firstnbr_X = typename AT::t_int_1d("acks2/kk:firstnbr_X",nmax);
d_firstnbr_X = typename AT::t_bigint_1d("acks2/kk:firstnbr_X",nmax);
d_numnbrs_X = typename AT::t_int_1d("acks2/kk:numnbrs_X",nmax);
d_jlist_X = typename AT::t_int_1d("acks2/kk:jlist_X",m_cap);
d_val_X = typename AT::t_ffloat_1d("acks2/kk:val_X",m_cap);
d_jlist_X = typename AT::t_int_1d("acks2/kk:jlist_X",m_cap_big);
d_val_X = typename AT::t_ffloat_1d("acks2/kk:val_X",m_cap_big);
}
/* ---------------------------------------------------------------------- */
@ -566,7 +567,7 @@ void FixACKS2ReaxFFKokkos<DeviceType>::operator() (TagACKS2Zero, const int &ii)
template<class DeviceType>
template <int NEIGHFLAG>
KOKKOS_INLINE_FUNCTION
void FixACKS2ReaxFFKokkos<DeviceType>::compute_h_item(int ii, int &m_fill, const bool &final) const
void FixACKS2ReaxFFKokkos<DeviceType>::compute_h_item(int ii, bigint &m_fill, const bool &final) const
{
const int i = d_ilist[ii];
int j,jj,jtype;
@ -619,7 +620,7 @@ void FixACKS2ReaxFFKokkos<DeviceType>::compute_h_item(int ii, int &m_fill, const
m_fill++;
}
if (final)
d_numnbrs[i] = m_fill - d_firstnbr[i];
d_numnbrs[i] = int(m_fill - d_firstnbr[i]);
}
}
@ -698,9 +699,9 @@ void FixACKS2ReaxFFKokkos<DeviceType>::compute_h_team(
// calculate the global memory offset from where the H matrix values to be
// calculated by the current team will be stored in d_val
int team_firstnbr_idx = 0;
bigint team_firstnbr_idx = 0;
Kokkos::single(Kokkos::PerTeam(team),
[=](int &val) {
[=](bigint &val) {
int totalnbrs = s_firstnbr[lastatom - firstatom - 1] +
s_numnbrs[lastatom - firstatom - 1];
val = Kokkos::atomic_fetch_add(&d_mfill_offset(), totalnbrs);
@ -726,7 +727,7 @@ void FixACKS2ReaxFFKokkos<DeviceType>::compute_h_team(
int jnum = s_numnbrs[idx];
// calculate the write-offset for atom-i's first neighbor
int atomi_firstnbr_idx = team_firstnbr_idx + s_firstnbr[idx];
bigint atomi_firstnbr_idx = team_firstnbr_idx + s_firstnbr[idx];
Kokkos::single(Kokkos::PerThread(team),
[&]() { d_firstnbr[i] = atomi_firstnbr_idx; });
@ -739,7 +740,7 @@ void FixACKS2ReaxFFKokkos<DeviceType>::compute_h_team(
// are processed in batches and the batch size is vector_length
for (int jj_start = 0; jj_start < jnum; jj_start += vector_length) {
int atomi_nbr_writeIdx = atomi_firstnbr_idx + atomi_nbrs_inH;
bigint atomi_nbr_writeIdx = atomi_firstnbr_idx + atomi_nbrs_inH;
// count the # of neighbor atoms with non-zero electrostatic
// interaction coefficients with atom-i in the current batch
@ -782,7 +783,8 @@ void FixACKS2ReaxFFKokkos<DeviceType>::compute_h_team(
valid = false;
if (x(j, 2) == ztmp && x(j, 1) < ytmp)
valid = false;
if (x(j, 2) == ztmp && x(j, 1) == ytmp && x(j, 0) < xtmp)
if (x(j, 2) == ztmp && x(j, 1) == ytmp &&
x(j, 0) < xtmp)
valid = false;
}
}
@ -851,7 +853,7 @@ double FixACKS2ReaxFFKokkos<DeviceType>::calculate_H_k(const F_FLOAT &r, const F
taper = taper * r + d_tap[0];
denom = r * r * r + shld;
denom = pow(denom,1.0/3.0);
denom = cbrt(denom);
return taper * EV_TO_KCAL_PER_MOL / denom;
}
@ -861,7 +863,7 @@ double FixACKS2ReaxFFKokkos<DeviceType>::calculate_H_k(const F_FLOAT &r, const F
template<class DeviceType>
template <int NEIGHFLAG>
KOKKOS_INLINE_FUNCTION
void FixACKS2ReaxFFKokkos<DeviceType>::compute_x_item(int ii, int &m_fill, const bool &final) const
void FixACKS2ReaxFFKokkos<DeviceType>::compute_x_item(int ii, bigint &m_fill, const bool &final) const
{
// The X_diag array is duplicated for OpenMP, atomic for GPU, and neither for Serial
auto v_X_diag = ScatterViewHelper<NeedDup_v<NEIGHFLAG,DeviceType>,decltype(dup_X_diag),decltype(ndup_X_diag)>::get(dup_X_diag,ndup_X_diag);
@ -927,7 +929,7 @@ void FixACKS2ReaxFFKokkos<DeviceType>::compute_x_item(int ii, int &m_fill, const
}
if (final) {
a_X_diag[i] += tmp;
d_numnbrs_X[i] = m_fill - d_firstnbr_X[i];
d_numnbrs_X[i] = int(m_fill - d_firstnbr_X[i]);
}
}
}
@ -1005,9 +1007,9 @@ void FixACKS2ReaxFFKokkos<DeviceType>::compute_x_team(
// calculate the global memory offset from where the H matrix values to be
// calculated by the current team will be stored in d_val_X
int team_firstnbr_idx = 0;
bigint team_firstnbr_idx = 0;
Kokkos::single(Kokkos::PerTeam(team),
[=](int &val) {
[=](bigint &val) {
int totalnbrs = s_firstnbr[lastatom - firstatom - 1] +
s_numnbrs[lastatom - firstatom - 1];
val = Kokkos::atomic_fetch_add(&d_mfill_offset(), totalnbrs);
@ -1033,7 +1035,7 @@ void FixACKS2ReaxFFKokkos<DeviceType>::compute_x_team(
int jnum = s_numnbrs[idx];
// calculate the write-offset for atom-i's first neighbor
int atomi_firstnbr_idx = team_firstnbr_idx + s_firstnbr[idx];
bigint atomi_firstnbr_idx = team_firstnbr_idx + s_firstnbr[idx];
Kokkos::single(Kokkos::PerThread(team),
[&]() { d_firstnbr_X[i] = atomi_firstnbr_idx; });
@ -1046,7 +1048,7 @@ void FixACKS2ReaxFFKokkos<DeviceType>::compute_x_team(
// are processed in batches and the batch size is vector_length
for (int jj_start = 0; jj_start < jnum; jj_start += vector_length) {
int atomi_nbr_writeIdx = atomi_firstnbr_idx + atomi_nbrs_inH;
bigint atomi_nbr_writeIdx = atomi_firstnbr_idx + atomi_nbrs_inH;
// count the # of neighbor atoms with non-zero electrostatic
// interaction coefficients with atom-i in the current batch
@ -1464,7 +1466,7 @@ void FixACKS2ReaxFFKokkos<DeviceType>::operator() (TagACKS2SparseMatvec3_Half<NE
F_FLOAT tmp = 0.0;
// H Matrix
for(int jj = d_firstnbr[i]; jj < d_firstnbr[i] + d_numnbrs[i]; jj++) {
for (bigint jj = d_firstnbr[i]; jj < d_firstnbr[i] + d_numnbrs[i]; jj++) {
const int j = d_jlist(jj);
tmp += d_val(jj) * d_xx[j];
a_bb[j] += d_val(jj) * d_xx[i];
@ -1473,7 +1475,7 @@ void FixACKS2ReaxFFKokkos<DeviceType>::operator() (TagACKS2SparseMatvec3_Half<NE
// X Matrix
tmp = 0.0;
for(int jj = d_firstnbr_X[i]; jj < d_firstnbr_X[i] + d_numnbrs_X[i]; jj++) {
for (bigint jj = d_firstnbr_X[i]; jj < d_firstnbr_X[i] + d_numnbrs_X[i]; jj++) {
const int j = d_jlist_X(jj);
tmp += d_val_X(jj) * d_xx[NN + j];
a_bb[NN + j] += d_val_X(jj) * d_xx[NN + i];
@ -1505,13 +1507,13 @@ void FixACKS2ReaxFFKokkos<DeviceType>::operator() (TagACKS2SparseMatvec3_Full, c
F_FLOAT sum;
F_FLOAT sum2;
Kokkos::parallel_reduce(Kokkos::TeamThreadRange(team, d_firstnbr[i], d_firstnbr[i] + d_numnbrs[i]), [&] (const int &jj, F_FLOAT &sum) {
Kokkos::parallel_reduce(Kokkos::TeamThreadRange(team, d_firstnbr[i], d_firstnbr[i] + d_numnbrs[i]), [&] (const bigint &jj, F_FLOAT &sum) {
const int j = d_jlist(jj);
sum += d_val(jj) * d_xx[j];
}, sum);
team.team_barrier();
Kokkos::parallel_reduce(Kokkos::TeamThreadRange(team, d_firstnbr_X[i], d_firstnbr_X[i] + d_numnbrs_X[i]), [&] (const int &jj, F_FLOAT &sum2) {
Kokkos::parallel_reduce(Kokkos::TeamThreadRange(team, d_firstnbr_X[i], d_firstnbr_X[i] + d_numnbrs_X[i]), [&] (const bigint &jj, F_FLOAT &sum2) {
const int j = d_jlist_X(jj);
sum2 += d_val_X(jj) * d_xx[NN + j];
}, sum2);
@ -1865,8 +1867,8 @@ double FixACKS2ReaxFFKokkos<DeviceType>::memory_usage()
bytes += nmax*4 * sizeof(double); // storage
bytes += size*11 * sizeof(double); // storage
bytes += n_cap*4 * sizeof(int); // matrix...
bytes += m_cap*2 * sizeof(int);
bytes += m_cap*2 * sizeof(double);
bytes += m_cap_big*2 * sizeof(int);
bytes += m_cap_big*2 * sizeof(double);
return bytes;
}

View File

@ -74,7 +74,7 @@ class FixACKS2ReaxFFKokkos : public FixACKS2ReaxFF, public KokkosBase {
DAT::tdual_ffloat_1d get_s() {return k_s;}
KOKKOS_INLINE_FUNCTION
void num_neigh_item(int, int&) const;
void num_neigh_item(int, bigint&) const;
KOKKOS_INLINE_FUNCTION
void operator()(TagACKS2Zero, const int&) const;
@ -84,7 +84,7 @@ class FixACKS2ReaxFFKokkos : public FixACKS2ReaxFF, public KokkosBase {
template<int NEIGHFLAG>
KOKKOS_INLINE_FUNCTION
void compute_h_item(int, int &, const bool &) const;
void compute_h_item(int, bigint &, const bool &) const;
template<int NEIGHFLAG>
KOKKOS_INLINE_FUNCTION
@ -92,7 +92,7 @@ class FixACKS2ReaxFFKokkos : public FixACKS2ReaxFF, public KokkosBase {
template<int NEIGHFLAG>
KOKKOS_INLINE_FUNCTION
void compute_x_item(int, int &, const bool &) const;
void compute_x_item(int, bigint &, const bool &) const;
template<int NEIGHFLAG>
KOKKOS_INLINE_FUNCTION
@ -173,8 +173,9 @@ class FixACKS2ReaxFFKokkos : public FixACKS2ReaxFF, public KokkosBase {
int allocated_flag, last_allocate;
int need_dup,prev_last_rows_rank;
double* buf;
bigint m_cap_big;
typename AT::t_int_scalar d_mfill_offset;
typename AT::t_bigint_scalar d_mfill_offset;
typedef Kokkos::DualView<int***,DeviceType> tdual_int_1d;
Kokkos::DualView<params_acks2*,Kokkos::LayoutRight,DeviceType> k_params;
@ -197,12 +198,12 @@ class FixACKS2ReaxFFKokkos : public FixACKS2ReaxFF, public KokkosBase {
DAT::tdual_ffloat_2d k_bcut;
typename AT::t_ffloat_2d d_bcut;
typename AT::t_int_1d d_firstnbr;
typename AT::t_bigint_1d d_firstnbr;
typename AT::t_int_1d d_numnbrs;
typename AT::t_int_1d d_jlist;
typename AT::t_ffloat_1d d_val;
typename AT::t_int_1d d_firstnbr_X;
typename AT::t_bigint_1d d_firstnbr_X;
typename AT::t_int_1d d_numnbrs_X;
typename AT::t_int_1d d_jlist_X;
typename AT::t_ffloat_1d d_val_X;
@ -264,21 +265,21 @@ class FixACKS2ReaxFFKokkos : public FixACKS2ReaxFF, public KokkosBase {
template <class DeviceType>
struct FixACKS2ReaxFFKokkosNumNeighFunctor {
typedef DeviceType device_type;
typedef int value_type;
typedef bigint value_type;
FixACKS2ReaxFFKokkos<DeviceType> c;
FixACKS2ReaxFFKokkosNumNeighFunctor(FixACKS2ReaxFFKokkos<DeviceType>* c_ptr):c(*c_ptr) {
c.cleanup_copy();
};
KOKKOS_INLINE_FUNCTION
void operator()(const int ii, int &maxneigh) const {
c.num_neigh_item(ii, maxneigh);
void operator()(const int ii, bigint &totneigh) const {
c.num_neigh_item(ii, totneigh);
}
};
template <class DeviceType, int NEIGHFLAG>
struct FixACKS2ReaxFFKokkosComputeHFunctor {
int atoms_per_team, vector_length;
typedef int value_type;
typedef bigint value_type;
typedef Kokkos::ScratchMemorySpace<DeviceType> scratch_space;
FixACKS2ReaxFFKokkos<DeviceType> c;
@ -293,7 +294,7 @@ struct FixACKS2ReaxFFKokkosComputeHFunctor {
};
KOKKOS_INLINE_FUNCTION
void operator()(const int ii, int &m_fill, const bool &final) const {
void operator()(const int ii, bigint &m_fill, const bool &final) const {
c.template compute_h_item<NEIGHFLAG>(ii,m_fill,final);
}
@ -325,7 +326,7 @@ struct FixACKS2ReaxFFKokkosComputeHFunctor {
template <class DeviceType, int NEIGHFLAG>
struct FixACKS2ReaxFFKokkosComputeXFunctor {
int atoms_per_team, vector_length;
typedef int value_type;
typedef bigint value_type;
typedef Kokkos::ScratchMemorySpace<DeviceType> scratch_space;
FixACKS2ReaxFFKokkos<DeviceType> c;
@ -340,7 +341,7 @@ struct FixACKS2ReaxFFKokkosComputeXFunctor {
};
KOKKOS_INLINE_FUNCTION
void operator()(const int ii, int &m_fill, const bool &final) const {
void operator()(const int ii, bigint &m_fill, const bool &final) const {
c.template compute_x_item<NEIGHFLAG>(ii,m_fill,final);
}

View File

@ -62,7 +62,8 @@ FixQEqReaxFFKokkos(LAMMPS *lmp, int narg, char **arg) :
datamask_read = X_MASK | V_MASK | F_MASK | Q_MASK | MASK_MASK | TYPE_MASK | TAG_MASK;
datamask_modify = X_MASK;
nmax = m_cap = 0;
nmax = 0;
m_cap_big = 0;
allocated_flag = 0;
nprev = 4;
maxexchange = nprev*2;
@ -71,7 +72,7 @@ FixQEqReaxFFKokkos(LAMMPS *lmp, int narg, char **arg) :
memory->destroy(t_hist);
grow_arrays(atom->nmax);
d_mfill_offset = typename AT::t_int_scalar("qeq/kk:mfill_offset");
d_mfill_offset = typename AT::t_bigint_scalar("qeq/kk:mfill_offset");
converged = 0;
}
@ -301,10 +302,10 @@ void FixQEqReaxFFKokkos<DeviceType>::pre_force(int /*vflag*/)
template<class DeviceType>
KOKKOS_INLINE_FUNCTION
void FixQEqReaxFFKokkos<DeviceType>::num_neigh_item(int ii, bigint &maxneigh) const
void FixQEqReaxFFKokkos<DeviceType>::num_neigh_item(int ii, bigint &totneigh) const
{
const int i = d_ilist[ii];
maxneigh += d_numneigh[i];
totneigh += d_numneigh[i];
}
/* ---------------------------------------------------------------------- */
@ -316,28 +317,25 @@ void FixQEqReaxFFKokkos<DeviceType>::allocate_matrix()
// determine the total space for the H matrix
bigint m_cap_big = 0;
m_cap_big = 0;
// limit scope of functor to allow deallocation of views
{
FixQEqReaxFFKokkosNumNeighFunctor<DeviceType> neigh_functor(this);
Kokkos::parallel_reduce(nn,neigh_functor,m_cap_big);
}
if (m_cap_big > MAXSMALLINT)
error->one(FLERR,"Too many neighbors in fix qeq/reaxff");
m_cap = m_cap_big;
// deallocate first to reduce memory overhead
d_firstnbr = typename AT::t_int_1d();
d_firstnbr = typename AT::t_bigint_1d();
d_numnbrs = typename AT::t_int_1d();
d_jlist = typename AT::t_int_1d();
d_val = typename AT::t_ffloat_1d();
d_firstnbr = typename AT::t_int_1d("qeq/kk:firstnbr",nmax);
d_firstnbr = typename AT::t_bigint_1d("qeq/kk:firstnbr",nmax);
d_numnbrs = typename AT::t_int_1d("qeq/kk:numnbrs",nmax);
d_jlist = typename AT::t_int_1d("qeq/kk:jlist",m_cap);
d_val = typename AT::t_ffloat_1d("qeq/kk:val",m_cap);
d_jlist = typename AT::t_int_1d("qeq/kk:jlist",m_cap_big);
d_val = typename AT::t_ffloat_1d("qeq/kk:val",m_cap_big);
}
/* ---------------------------------------------------------------------- */
@ -408,7 +406,7 @@ void FixQEqReaxFFKokkos<DeviceType>::operator()(TagQEqZero, const int &ii) const
template<class DeviceType>
template <int NEIGHFLAG>
KOKKOS_INLINE_FUNCTION
void FixQEqReaxFFKokkos<DeviceType>::compute_h_item(int ii, int &m_fill, const bool &final) const
void FixQEqReaxFFKokkos<DeviceType>::compute_h_item(int ii, bigint &m_fill, const bool &final) const
{
const int i = d_ilist[ii];
int j,jj,jtype;
@ -461,7 +459,7 @@ void FixQEqReaxFFKokkos<DeviceType>::compute_h_item(int ii, int &m_fill, const b
m_fill++;
}
if (final)
d_numnbrs[i] = m_fill - d_firstnbr[i];
d_numnbrs[i] = int(m_fill - d_firstnbr[i]);
}
}
@ -540,9 +538,9 @@ void FixQEqReaxFFKokkos<DeviceType>::compute_h_team(
// calculate the global memory offset from where the H matrix values to be
// calculated by the current team will be stored in d_val
int team_firstnbr_idx = 0;
bigint team_firstnbr_idx = 0;
Kokkos::single(Kokkos::PerTeam(team),
[=](int &val) {
[=](bigint &val) {
int totalnbrs = s_firstnbr[lastatom - firstatom - 1] +
s_numnbrs[lastatom - firstatom - 1];
val = Kokkos::atomic_fetch_add(&d_mfill_offset(), totalnbrs);
@ -568,7 +566,7 @@ void FixQEqReaxFFKokkos<DeviceType>::compute_h_team(
int jnum = s_numnbrs[idx]; // removed "const" to work around GCC 7 bug
// calculate the write-offset for atom-i's first neighbor
int atomi_firstnbr_idx = team_firstnbr_idx + s_firstnbr[idx];
bigint atomi_firstnbr_idx = team_firstnbr_idx + s_firstnbr[idx];
Kokkos::single(Kokkos::PerThread(team),
[&]() { d_firstnbr[i] = atomi_firstnbr_idx; });
@ -581,7 +579,7 @@ void FixQEqReaxFFKokkos<DeviceType>::compute_h_team(
// are processed in batches and the batch size is vector_length
for (int jj_start = 0; jj_start < jnum; jj_start += vector_length) {
int atomi_nbr_writeIdx = atomi_firstnbr_idx + atomi_nbrs_inH;
bigint atomi_nbr_writeIdx = atomi_firstnbr_idx + atomi_nbrs_inH;
// count the # of neighbor atoms with non-zero electrostatic
// interaction coefficients with atom-i in the current batch
@ -938,7 +936,7 @@ void FixQEqReaxFFKokkos<DeviceType>::operator()(TagQEqSparseMatvec2_Half<NEIGHFL
const double d_xx_i0 = d_xx(i,0);
const double d_xx_i1 = d_xx(i,1);
Kokkos::parallel_reduce(Kokkos::ThreadVectorRange(team, d_firstnbr[i], d_firstnbr[i] + d_numnbrs[i]), [&] (const int &jj, F_FLOAT2& doi) {
Kokkos::parallel_reduce(Kokkos::ThreadVectorRange(team, d_firstnbr[i], d_firstnbr[i] + d_numnbrs[i]), [&] (const bigint &jj, F_FLOAT2& doi) {
const int j = d_jlist(jj);
const auto d_val_jj = d_val(jj);
if (!(converged & 1)) {
@ -971,7 +969,7 @@ void FixQEqReaxFFKokkos<DeviceType>::operator()(TagQEqSparseMatvec2_Full, const
const int i = d_ilist[k];
if (mask[i] & groupbit) {
F_FLOAT2 doitmp;
Kokkos::parallel_reduce(Kokkos::ThreadVectorRange(team, d_firstnbr[i], d_firstnbr[i] + d_numnbrs[i]), [&] (const int &jj, F_FLOAT2& doi) {
Kokkos::parallel_reduce(Kokkos::ThreadVectorRange(team, d_firstnbr[i], d_firstnbr[i] + d_numnbrs[i]), [&] (const bigint &jj, F_FLOAT2& doi) {
const int j = d_jlist(jj);
const auto d_val_jj = d_val(jj);
if (!(converged & 1))
@ -1289,8 +1287,8 @@ double FixQEqReaxFFKokkos<DeviceType>::memory_usage()
bytes = atom->nmax*nprev*2 * sizeof(F_FLOAT); // s_hist & t_hist
bytes += (double)atom->nmax*8 * sizeof(F_FLOAT); // storage
bytes += (double)n_cap*2 * sizeof(int); // matrix...
bytes += (double)m_cap * sizeof(int);
bytes += (double)m_cap * sizeof(F_FLOAT);
bytes += (double)m_cap_big * sizeof(int);
bytes += (double)m_cap_big * sizeof(F_FLOAT);
return bytes;
}

View File

@ -80,7 +80,7 @@ class FixQEqReaxFFKokkos : public FixQEqReaxFF, public KokkosBase {
template<int NEIGHFLAG>
KOKKOS_INLINE_FUNCTION
void compute_h_item(int, int &, const bool &) const;
void compute_h_item(int, bigint &, const bool &) const;
template<int NEIGHFLAG>
KOKKOS_INLINE_FUNCTION
@ -201,8 +201,9 @@ class FixQEqReaxFFKokkos : public FixQEqReaxFF, public KokkosBase {
int allocated_flag, last_allocate;
int need_dup;
int converged;
bigint m_cap_big;
typename AT::t_int_scalar d_mfill_offset;
typename AT::t_bigint_scalar d_mfill_offset;
typedef Kokkos::DualView<int***,DeviceType> tdual_int_1d;
Kokkos::DualView<params_qeq*,Kokkos::LayoutRight,DeviceType> k_params;
@ -227,7 +228,7 @@ class FixQEqReaxFFKokkos : public FixQEqReaxFF, public KokkosBase {
DAT::tdual_ffloat_1d k_tap;
typename AT::t_ffloat_1d d_tap;
typename AT::t_int_1d d_firstnbr;
typename AT::t_bigint_1d d_firstnbr;
typename AT::t_int_1d d_numnbrs;
typename AT::t_int_1d d_jlist;
typename AT::t_ffloat_1d d_val;
@ -296,15 +297,15 @@ struct FixQEqReaxFFKokkosNumNeighFunctor {
c.cleanup_copy();
};
KOKKOS_INLINE_FUNCTION
void operator()(const int ii, bigint &maxneigh) const {
c.num_neigh_item(ii, maxneigh);
void operator()(const int ii, bigint &totneigh) const {
c.num_neigh_item(ii, totneigh);
}
};
template <class DeviceType, int NEIGHFLAG>
struct FixQEqReaxFFKokkosComputeHFunctor {
int atoms_per_team, vector_length;
typedef int value_type;
typedef bigint value_type;
typedef Kokkos::ScratchMemorySpace<DeviceType> scratch_space;
FixQEqReaxFFKokkos<DeviceType> c;
@ -319,7 +320,7 @@ struct FixQEqReaxFFKokkosComputeHFunctor {
};
KOKKOS_INLINE_FUNCTION
void operator()(const int ii, int &m_fill, const bool &final) const {
void operator()(const int ii, bigint &m_fill, const bool &final) const {
c.template compute_h_item<NEIGHFLAG>(ii,m_fill,final);
}

View File

@ -641,6 +641,14 @@ typedef tdual_int_scalar::t_dev_const t_int_scalar_const;
typedef tdual_int_scalar::t_dev_um t_int_scalar_um;
typedef tdual_int_scalar::t_dev_const_um t_int_scalar_const_um;
typedef Kokkos::
DualView<LAMMPS_NS::bigint, LMPDeviceType::array_layout, LMPDeviceType> tdual_bigint_scalar;
typedef tdual_bigint_scalar::t_dev t_bigint_scalar;
typedef tdual_bigint_scalar::t_dev_const t_bigint_scalar_const;
typedef tdual_bigint_scalar::t_dev_um t_bigint_scalar_um;
typedef tdual_bigint_scalar::t_dev_const_um t_bigint_scalar_const_um;
typedef tdual_bigint_scalar::t_dev_const_randomread t_bigint_scalar_randomread;
typedef Kokkos::
DualView<LAMMPS_NS::tagint, LMPDeviceType::array_layout, LMPDeviceType> tdual_tagint_scalar;
typedef tdual_tagint_scalar::t_dev t_tagint_scalar;
@ -666,6 +674,14 @@ typedef tdual_int_1d::t_dev_um t_int_1d_um;
typedef tdual_int_1d::t_dev_const_um t_int_1d_const_um;
typedef tdual_int_1d::t_dev_const_randomread t_int_1d_randomread;
typedef Kokkos::
DualView<LAMMPS_NS::bigint*, LMPDeviceType::array_layout, LMPDeviceType> tdual_bigint_1d;
typedef tdual_bigint_1d::t_dev t_bigint_1d;
typedef tdual_bigint_1d::t_dev_const t_bigint_1d_const;
typedef tdual_bigint_1d::t_dev_um t_bigint_1d_um;
typedef tdual_bigint_1d::t_dev_const_um t_bigint_1d_const_um;
typedef tdual_bigint_1d::t_dev_const_randomread t_bigint_1d_randomread;
typedef Kokkos::
DualView<int*[3], Kokkos::LayoutRight, LMPDeviceType> tdual_int_1d_3;
typedef tdual_int_1d_3::t_dev t_int_1d_3;
@ -974,6 +990,12 @@ typedef tdual_int_scalar::t_host_const t_int_scalar_const;
typedef tdual_int_scalar::t_host_um t_int_scalar_um;
typedef tdual_int_scalar::t_host_const_um t_int_scalar_const_um;
typedef Kokkos::DualView<LAMMPS_NS::bigint, LMPDeviceType::array_layout, LMPDeviceType> tdual_bigint_scalar;
typedef tdual_bigint_scalar::t_host t_bigint_scalar;
typedef tdual_bigint_scalar::t_host_const t_bigint_scalar_const;
typedef tdual_bigint_scalar::t_host_um t_bigint_scalar_um;
typedef tdual_bigint_scalar::t_host_const_um t_bigint_scalar_const_um;
typedef Kokkos::DualView<LAMMPS_NS::tagint, LMPDeviceType::array_layout, LMPDeviceType> tdual_tagint_scalar;
typedef tdual_tagint_scalar::t_host t_tagint_scalar;
typedef tdual_tagint_scalar::t_host_const t_tagint_scalar_const;
@ -994,6 +1016,13 @@ typedef tdual_int_1d::t_host_um t_int_1d_um;
typedef tdual_int_1d::t_host_const_um t_int_1d_const_um;
typedef tdual_int_1d::t_host_const_randomread t_int_1d_randomread;
typedef Kokkos::DualView<LAMMPS_NS::bigint*, LMPDeviceType::array_layout, LMPDeviceType> tdual_bigint_1d;
typedef tdual_bigint_1d::t_host t_bigint_1d;
typedef tdual_bigint_1d::t_host_const t_bigint_1d_const;
typedef tdual_bigint_1d::t_host_um t_bigint_1d_um;
typedef tdual_bigint_1d::t_host_const_um t_bigint_1d_const_um;
typedef tdual_bigint_1d::t_host_const_randomread t_bigint_1d_randomread;
typedef Kokkos::DualView<int*[3], Kokkos::LayoutRight, LMPDeviceType> tdual_int_1d_3;
typedef tdual_int_1d_3::t_host t_int_1d_3;
typedef tdual_int_1d_3::t_host_const t_int_1d_3_const;

View File

@ -1502,21 +1502,11 @@ void PairReaxFFKokkos<DeviceType>::allocate_array()
}
if (cut_hbsq > 0.0) {
MemKK::realloc_kokkos(d_hb_first,"reaxff/kk:hb_first",nmax);
MemKK::realloc_kokkos(d_hb_num,"reaxff/kk:hb_num",nmax);
if (((bigint) nmax*maxhb) > MAXSMALLINT)
error->one(FLERR,"Too many hydrogen bonds in pair reaxff");
MemKK::realloc_kokkos(d_hb_list,"reaxff/kk:hb_list",nmax*maxhb);
MemKK::realloc_kokkos(d_hb_list,"reaxff/kk:hb_list", nmax, maxhb);
}
MemKK::realloc_kokkos(d_bo_first,"reaxff/kk:bo_first",nmax);
MemKK::realloc_kokkos(d_bo_num,"reaxff/kk:bo_num",nmax);
if (((bigint) nmax*maxbo) > MAXSMALLINT)
error->one(FLERR,"Too many bonds in pair reaxff");
MemKK::realloc_kokkos(d_bo_list,"reaxff/kk:bo_list",nmax*maxbo);
MemKK::realloc_kokkos(d_bo_list,"reaxff/kk:bo_list", nmax, maxbo);
MemKK::realloc_kokkos(d_BO,"reaxff/kk:BO",nmax,maxbo);
MemKK::realloc_kokkos(d_BO_s,"reaxff/kk:BO",nmax,maxbo);
@ -1547,9 +1537,9 @@ void PairReaxFFKokkos<DeviceType>::allocate_array()
MemKK::realloc_kokkos(d_Deltap,"reaxff/kk:Deltap",nmax);
MemKK::realloc_kokkos(d_total_bo,"reaxff/kk:total_bo",nmax);
MemKK::realloc_kokkos(d_Cdbo,"reaxff/kk:Cdbo",nmax,3*maxbo);
MemKK::realloc_kokkos(d_Cdbopi,"reaxff/kk:Cdbopi",nmax,3*maxbo);
MemKK::realloc_kokkos(d_Cdbopi2,"reaxff/kk:Cdbopi2",nmax,3*maxbo);
MemKK::realloc_kokkos(d_Cdbo,"reaxff/kk:Cdbo",nmax,maxbo);
MemKK::realloc_kokkos(d_Cdbopi,"reaxff/kk:Cdbopi",nmax,maxbo);
MemKK::realloc_kokkos(d_Cdbopi2,"reaxff/kk:Cdbopi2",nmax,maxbo);
MemKK::realloc_kokkos(d_Delta,"reaxff/kk:Delta",nmax);
MemKK::realloc_kokkos(d_Delta_boc,"reaxff/kk:Delta_boc",nmax);
@ -1606,19 +1596,10 @@ void PairReaxFFKokkos<DeviceType>::operator()(TagPairReaxBuildListsHalfBlocking<
F_FLOAT dDeltap_self_i[3] = {0.0,0.0,0.0};
F_FLOAT total_bo_i = 0.0;
d_bo_first[i] = i*maxbo;
const int bo_first_i = d_bo_first[i];
int ihb = -1;
int hb_first_i;
if (cut_hbsq > 0.0) {
if (cut_hbsq > 0.0)
ihb = paramssing(itype).p_hbond;
if (ihb == 1) {
d_hb_first[i] = i*maxhb;
hb_first_i = d_hb_first[i];
}
}
int nnz;
blocking_t selected_jj[blocksize];
@ -1632,9 +1613,6 @@ void PairReaxFFKokkos<DeviceType>::operator()(TagPairReaxBuildListsHalfBlocking<
int j = d_neighbors(i,jj);
j &= NEIGHMASK;
d_bo_first[j] = j*maxbo;
d_hb_first[j] = j*maxhb;
delij[0] = x(j,0) - xtmp;
delij[1] = x(j,1) - ytmp;
delij[2] = x(j,2) - ztmp;
@ -1663,7 +1641,7 @@ void PairReaxFFKokkos<DeviceType>::operator()(TagPairReaxBuildListsHalfBlocking<
const F_FLOAT rsq = delij[0]*delij[0] + delij[1]*delij[1] + delij[2]*delij[2];
// hbond list
build_hb_list<NEIGHFLAG>(rsq, i, hb_first_i, ihb, j, jtype);
build_hb_list<NEIGHFLAG>(rsq, i, ihb, j, jtype);
if (rsq > cut_bosq) continue;
@ -1680,23 +1658,23 @@ void PairReaxFFKokkos<DeviceType>::operator()(TagPairReaxBuildListsHalfBlocking<
BO = BO_s + BO_pi + BO_pi2;
if (BO < bo_cut) continue;
int ii_index = -1;
int jj_index = -1;
if (build_bo_list<NEIGHFLAG>(bo_first_i, i, j, ii_index, jj_index)) {
int i_index = -1;
int j_index = -1;
if (build_bo_list<NEIGHFLAG>(i, j, i_index, j_index)) {
// from BondOrder1
d_BO(i,jj_index) = BO;
d_BO_s(i,jj_index) = BO_s;
d_BO(i,j_index) = BO;
d_BO_s(i,j_index) = BO_s;
d_BO(j,ii_index) = BO;
d_BO_s(j,ii_index) = BO_s;
d_BO(j,i_index) = BO;
d_BO_s(j,i_index) = BO_s;
d_BO_pi(j,ii_index) = BO_pi;
d_BO_pi2(j,ii_index) = BO_pi2;
d_BO_pi(j,i_index) = BO_pi;
d_BO_pi2(j,i_index) = BO_pi2;
d_BO_pi(i,jj_index) = BO_pi;
d_BO_pi2(i,jj_index) = BO_pi2;
d_BO_pi(i,j_index) = BO_pi;
d_BO_pi2(i,j_index) = BO_pi2;
F_FLOAT Cln_BOp_s = p_bo2 * C12 / rij / rij;
F_FLOAT Cln_BOp_pi = p_bo4 * C34 / rij / rij;
@ -1709,18 +1687,18 @@ void PairReaxFFKokkos<DeviceType>::operator()(TagPairReaxBuildListsHalfBlocking<
for (int d = 0; d < 3; d++) dDeltap_self_i[d] += dBOp_i[d];
for (int d = 0; d < 3; d++) a_dDeltap_self(j,d) += -dBOp_i[d];
d_dln_BOp_pi(i,jj_index) = -(BO_pi*Cln_BOp_pi);
d_dln_BOp_pi(j,ii_index) = -(BO_pi*Cln_BOp_pi);
d_dln_BOp_pi(i,j_index) = -(BO_pi*Cln_BOp_pi);
d_dln_BOp_pi(j,i_index) = -(BO_pi*Cln_BOp_pi);
d_dln_BOp_pi2(i,jj_index) = -(BO_pi2*Cln_BOp_pi2);
d_dln_BOp_pi2(j,ii_index) = -(BO_pi2*Cln_BOp_pi2);
d_dln_BOp_pi2(i,j_index) = -(BO_pi2*Cln_BOp_pi2);
d_dln_BOp_pi2(j,i_index) = -(BO_pi2*Cln_BOp_pi2);
d_dBOp(i,jj_index) = -(BO_s*Cln_BOp_s+BO_pi*Cln_BOp_pi+BO_pi2*Cln_BOp_pi2);
d_dBOp(j,ii_index) = -(BO_s*Cln_BOp_s+BO_pi*Cln_BOp_pi+BO_pi2*Cln_BOp_pi2);
d_BO(i,jj_index) = BO - bo_cut;
d_BO(j,ii_index) = BO - bo_cut;
d_BO_s(i,jj_index) = BO_s - bo_cut;
d_BO_s(j,ii_index) = BO_s - bo_cut;
d_dBOp(i,j_index) = -(BO_s*Cln_BOp_s+BO_pi*Cln_BOp_pi+BO_pi2*Cln_BOp_pi2);
d_dBOp(j,i_index) = -(BO_s*Cln_BOp_s+BO_pi*Cln_BOp_pi+BO_pi2*Cln_BOp_pi2);
d_BO(i,j_index) = BO - bo_cut;
d_BO(j,i_index) = BO - bo_cut;
d_BO_s(i,j_index) = BO_s - bo_cut;
d_BO_s(j,i_index) = BO_s - bo_cut;
total_bo_i += (BO - bo_cut);
a_total_bo[j] += (BO - bo_cut);
}
@ -1750,19 +1728,10 @@ void PairReaxFFKokkos<DeviceType>::operator()(TagPairReaxBuildListsHalfBlockingP
F_FLOAT C12, C34, C56, BO_s, BO_pi, BO_pi2, BO, delij[3];
d_bo_first[i] = i*maxbo;
const int bo_first_i = d_bo_first[i];
int ihb = -1;
int hb_first_i;
if (cut_hbsq > 0.0) {
if (cut_hbsq > 0.0)
ihb = paramssing(itype).p_hbond;
if (ihb == 1) {
d_hb_first[i] = i*maxhb;
hb_first_i = d_hb_first[i];
}
}
int nnz;
blocking_t selected_jj[blocksize];
@ -1780,9 +1749,6 @@ void PairReaxFFKokkos<DeviceType>::operator()(TagPairReaxBuildListsHalfBlockingP
int j = d_neighbors(i,jj);
j &= NEIGHMASK;
d_bo_first[j] = j*maxbo;
d_hb_first[j] = j*maxhb;
delij[0] = x(j,0) - xtmp;
delij[1] = x(j,1) - ytmp;
delij[2] = x(j,2) - ztmp;
@ -1808,7 +1774,7 @@ void PairReaxFFKokkos<DeviceType>::operator()(TagPairReaxBuildListsHalfBlockingP
const F_FLOAT rsq = delij[0]*delij[0] + delij[1]*delij[1] + delij[2]*delij[2];
// hbond list
build_hb_list<NEIGHFLAG>(rsq, i, hb_first_i, ihb, j, jtype);
build_hb_list<NEIGHFLAG>(rsq, i, ihb, j, jtype);
if (rsq > cut_bosq) continue;
@ -1825,9 +1791,9 @@ void PairReaxFFKokkos<DeviceType>::operator()(TagPairReaxBuildListsHalfBlockingP
BO = BO_s + BO_pi + BO_pi2;
if (BO < bo_cut) continue;
int ii_index = -1;
int jj_index = -1;
build_bo_list<NEIGHFLAG>(bo_first_i, i, j, ii_index, jj_index);
int i_index = -1;
int j_index = -1;
build_bo_list<NEIGHFLAG>(i, j, i_index, j_index);
}
}
}
@ -1848,26 +1814,15 @@ void PairReaxFFKokkos<DeviceType>::operator()(TagPairReaxBuildListsHalfPreview<N
F_FLOAT C12, C34, C56, BO_s, BO_pi, BO_pi2, BO, delij[3];
d_bo_first[i] = i*maxbo;
const int bo_first_i = d_bo_first[i];
int ihb = -1;
int hb_first_i;
if (cut_hbsq > 0.0) {
if (cut_hbsq > 0.0)
ihb = paramssing(itype).p_hbond;
if (ihb == 1) {
d_hb_first[i] = i*maxhb;
hb_first_i = d_hb_first[i];
}
}
for (int jj = 0; jj < jnum; jj++) {
int j = d_neighbors(i,jj);
j &= NEIGHMASK;
d_bo_first[j] = j*maxbo;
d_hb_first[j] = j*maxhb;
const int jtype = type(j);
delij[0] = x(j,0) - xtmp;
@ -1876,7 +1831,7 @@ void PairReaxFFKokkos<DeviceType>::operator()(TagPairReaxBuildListsHalfPreview<N
const F_FLOAT rsq = delij[0]*delij[0] + delij[1]*delij[1] + delij[2]*delij[2];
// hbond list
build_hb_list<NEIGHFLAG>(rsq, i, hb_first_i, ihb, j, jtype);
build_hb_list<NEIGHFLAG>(rsq, i, ihb, j, jtype);
if (rsq > cut_bosq) continue;
@ -1893,10 +1848,10 @@ void PairReaxFFKokkos<DeviceType>::operator()(TagPairReaxBuildListsHalfPreview<N
BO = BO_s + BO_pi + BO_pi2;
if (BO < bo_cut) continue;
int ii_index = -1;
int jj_index = -1;
int i_index = -1;
int j_index = -1;
build_bo_list<NEIGHFLAG>(bo_first_i, i, j, ii_index, jj_index);
build_bo_list<NEIGHFLAG>(i, j, i_index, j_index);
}
}
@ -1905,7 +1860,7 @@ void PairReaxFFKokkos<DeviceType>::operator()(TagPairReaxBuildListsHalfPreview<N
template<class DeviceType>
template<int NEIGHFLAG>
KOKKOS_INLINE_FUNCTION
void PairReaxFFKokkos<DeviceType>::build_hb_list(F_FLOAT rsq, int i, int hb_first_i, int ihb, int j, int jtype) const {
void PairReaxFFKokkos<DeviceType>::build_hb_list(F_FLOAT rsq, int i, int ihb, int j, int jtype) const {
int i_index, j_index;
int jhb = -1;
@ -1913,30 +1868,26 @@ void PairReaxFFKokkos<DeviceType>::build_hb_list(F_FLOAT rsq, int i, int hb_firs
jhb = paramssing(jtype).p_hbond;
if (ihb == 1 && jhb == 2) {
if (NEIGHFLAG == HALF) {
j_index = hb_first_i + d_hb_num[i];
j_index = d_hb_num[i];
d_hb_num[i]++;
} else
j_index = hb_first_i + Kokkos::atomic_fetch_add(&d_hb_num[i],1);
j_index = Kokkos::atomic_fetch_add(&d_hb_num[i],1);
const int jj_index = j_index - hb_first_i;
if (jj_index >= maxhb)
d_resize_hb() = MAX(d_resize_hb(),jj_index+1);
if (j_index >= maxhb)
d_resize_hb() = MAX(d_resize_hb(), j_index+1);
else
d_hb_list[j_index] = j;
d_hb_list(i, j_index) = j;
} else if (j < nlocal && ihb == 2 && jhb == 1) {
if (NEIGHFLAG == HALF) {
i_index = d_hb_first[j] + d_hb_num[j];
i_index = d_hb_num[j];
d_hb_num[j]++;
} else
i_index = d_hb_first[j] + Kokkos::atomic_fetch_add(&d_hb_num[j],1);
i_index = Kokkos::atomic_fetch_add(&d_hb_num[j],1);
const int ii_index = i_index - d_hb_first[j];
if (ii_index >= maxhb)
d_resize_hb() = MAX(d_resize_hb(),ii_index+1);
if (i_index >= maxhb)
d_resize_hb() = MAX(d_resize_hb(), i_index+1);
else
d_hb_list[i_index] = i;
d_hb_list(j, i_index) = i;
}
}
@ -1947,31 +1898,27 @@ void PairReaxFFKokkos<DeviceType>::build_hb_list(F_FLOAT rsq, int i, int hb_firs
template<class DeviceType>
template<int NEIGHFLAG>
KOKKOS_INLINE_FUNCTION
bool PairReaxFFKokkos<DeviceType>::build_bo_list(int bo_first_i, int i, int j, int& ii_index, int& jj_index) const {
int i_index, j_index;
bool PairReaxFFKokkos<DeviceType>::build_bo_list(int i, int j, int& i_index, int& j_index) const {
if (NEIGHFLAG == HALF) {
j_index = bo_first_i + d_bo_num[i];
i_index = d_bo_first[j] + d_bo_num[j];
j_index = d_bo_num[i];
i_index = d_bo_num[j];
d_bo_num[i]++;
d_bo_num[j]++;
} else {
j_index = bo_first_i + Kokkos::atomic_fetch_add(&d_bo_num[i],1);
i_index = d_bo_first[j] + Kokkos::atomic_fetch_add(&d_bo_num[j],1);
j_index = Kokkos::atomic_fetch_add(&d_bo_num[i],1);
i_index = Kokkos::atomic_fetch_add(&d_bo_num[j],1);
}
jj_index = j_index - bo_first_i;
ii_index = i_index - d_bo_first[j];
bool set_dB_flag = true;
if (jj_index >= maxbo || ii_index >= maxbo) {
const int max_val = MAX(ii_index+1,jj_index+1);
if (j_index >= maxbo || i_index >= maxbo) {
const int max_val = MAX(i_index + 1, j_index + 1);
d_resize_bo() = MAX(d_resize_bo(),max_val);
set_dB_flag = false;
} else {
d_bo_list[j_index] = j;
d_bo_list[i_index] = i;
d_bo_list(i, j_index) = j;
d_bo_list(j, i_index) = i;
set_dB_flag = true;
}
@ -1995,13 +1942,11 @@ void PairReaxFFKokkos<DeviceType>::operator()(TagPairReaxBuildListsFull, const i
F_FLOAT dDeltap_self_i[3] = {0.0,0.0,0.0};
F_FLOAT total_bo_i = 0.0;
const int j_start = d_bo_first[i];
const int j_end = j_start + d_bo_num[i];
for (int jj = j_start; jj < j_end; jj++) {
int j = d_bo_list[jj];
const int jnum = d_bo_num[i];
for (int j_index = 0; j_index < jnum; j_index++) {
int j = d_bo_list(i, j_index);
j &= NEIGHMASK;
const int jtype = type(j);
const int j_index = jj - j_start;
delij[0] = x(j,0) - xtmp;
delij[1] = x(j,1) - ytmp;
delij[2] = x(j,2) - ztmp;
@ -2110,23 +2055,19 @@ void PairReaxFFKokkos<DeviceType>::operator()(TagPairReaxBondOrder2, const int &
const int i = d_ilist[ii];
const int itype = type(i);
const int j_start = d_bo_first[i];
const int j_end = j_start + d_bo_num[i];
const int jnum = d_bo_num[i];
const F_FLOAT val_i = paramssing(itype).valency;
d_total_bo[i] = 0.0;
F_FLOAT total_bo = 0.0;
for (int jj = j_start; jj < j_end; jj++) {
int j = d_bo_list[jj];
for (int j_index = 0; j_index < jnum; j_index++) {
int j = d_bo_list(i, j_index);
j &= NEIGHMASK;
const int jtype = type(j);
const int j_index = jj - j_start;
const int i_index = maxbo+j_index;
// calculate corrected BO and total bond order
const F_FLOAT val_j = paramssing(jtype).valency;
const F_FLOAT ovc = paramstwbp(itype,jtype).ovc;
const F_FLOAT v13cor = paramstwbp(itype,jtype).v13cor;
@ -2221,10 +2162,6 @@ void PairReaxFFKokkos<DeviceType>::operator()(TagPairReaxBondOrder2, const int &
d_Cdbo(i,j_index) = 0.0;
d_Cdbopi(i,j_index) = 0.0;
d_Cdbopi2(i,j_index) = 0.0;
d_Cdbo(j,i_index) = 0.0;
d_Cdbopi(j,i_index) = 0.0;
d_Cdbopi2(j,i_index) = 0.0;
d_CdDelta[j] = 0.0;
}
d_CdDelta[i] = 0.0;
@ -2279,20 +2216,18 @@ void PairReaxFFKokkos<DeviceType>::operator()(TagPairReaxComputeMulti1, const in
if (imass > 21.0) dfvl = 0.0;
else dfvl = 1.0;
const int j_start = d_bo_first[i];
const int j_end = j_start + d_bo_num[i];
const int jnum = d_bo_num[i];
F_FLOAT sum_ovun1 = 0.0;
F_FLOAT sum_ovun2 = 0.0;
for (int jj = j_start; jj < j_end; jj++) {
int j = d_bo_list[jj];
for (int j_index = 0; j_index < jnum; j_index++) {
int j = d_bo_list(i, j_index);
j &= NEIGHMASK;
const int jtype = type(j);
const int j_index = jj - j_start;
sum_ovun1 += paramstwbp(itype,jtype).p_ovun1 * paramstwbp(itype,jtype).De_s * d_BO(i,j_index);
sum_ovun2 += (d_Delta[j] - dfvl * d_Delta_lp_temp[j]) * (d_BO_pi(i,j_index) + d_BO_pi2(i,j_index));
sum_ovun2 += (d_Delta[j] - dfvl * d_Delta_lp_temp[j]) * (d_BO_pi(i, j_index) + d_BO_pi2(i,j_index));
}
d_sum_ovun(i,1) += sum_ovun1;
d_sum_ovun(i,2) += sum_ovun2;
@ -2402,16 +2337,14 @@ void PairReaxFFKokkos<DeviceType>::operator()(TagPairReaxComputeMulti2<NEIGHFLAG
if (numbonds > 0 || enobondsflag)
a_CdDelta[i] += CEunder3;
const int j_start = d_bo_first[i];
const int j_end = j_start + d_bo_num[i];
const int jnum = d_bo_num[i];
F_FLOAT CdDelta_i = 0.0;
for (int jj = j_start; jj < j_end; jj++) {
int j = d_bo_list[jj];
for (int j_index = 0; j_index < jnum; j_index++) {
int j = d_bo_list(i, j_index);
j &= NEIGHMASK;
const int jtype = type(j);
const F_FLOAT jmass = paramssing(jtype).mass;
const int j_index = jj - j_start;
const F_FLOAT De_s = paramstwbp(itype,jtype).De_s;
// multibody lone pair: correction for C2
@ -2461,24 +2394,23 @@ void PairReaxFFKokkos<DeviceType>::operator()(TagPairReaxCountAngularTorsion<POP
const int i = d_ilist[ii];
const int itype = type(i);
const int j_start = d_bo_first[i];
const int j_end = j_start + d_bo_num[i];
const int jnum = d_bo_num[i];
if (POPULATE) {
// Computes and stores SBO2, CSBO2, dSBO1, dSBO2
compute_angular_sbo(i, itype, j_start, j_end);
compute_angular_sbo(i, itype, jnum);
}
// Angular
// Count buffer size for `i`
int location_angular = 0; // dummy declaration
int count_angular = preprocess_angular<false>(i, itype, j_start, j_end, location_angular);
int count_angular = preprocess_angular<false>(i, itype, jnum, location_angular);
location_angular = Kokkos::atomic_fetch_add(&d_count_angular_torsion(0), count_angular);
if (POPULATE) {
// Fill buffer for `i`
preprocess_angular<true>(i, itype, j_start, j_end, location_angular);
preprocess_angular<true>(i, itype, jnum, location_angular);
}
// Torsion
@ -2490,12 +2422,12 @@ void PairReaxFFKokkos<DeviceType>::operator()(TagPairReaxCountAngularTorsion<POP
// Count buffer size for `i`
int location_torsion = 0; // dummy declaration
int count_torsion = preprocess_torsion<false>(i, itype, itag, xtmp, ytmp, ztmp, j_start, j_end, location_torsion);
int count_torsion = preprocess_torsion<false>(i, itype, itag, xtmp, ytmp, ztmp, jnum, location_torsion);
location_torsion = Kokkos::atomic_fetch_add(&d_count_angular_torsion(1), count_torsion);
if (POPULATE) {
// Fill buffer for `i`
preprocess_torsion<true>(i, itype, itag, xtmp, ytmp, ztmp, j_start, j_end, location_torsion);
preprocess_torsion<true>(i, itype, itag, xtmp, ytmp, ztmp, jnum, location_torsion);
}
}
@ -2504,7 +2436,7 @@ void PairReaxFFKokkos<DeviceType>::operator()(TagPairReaxCountAngularTorsion<POP
template<class DeviceType>
KOKKOS_INLINE_FUNCTION
void PairReaxFFKokkos<DeviceType>::compute_angular_sbo(int i, int itype, int j_start, int j_end) const {
void PairReaxFFKokkos<DeviceType>::compute_angular_sbo(int i, int itype, int jnum) const {
F_FLOAT SBO2, CSBO2, dSBO1, dSBO2;
@ -2514,8 +2446,7 @@ void PairReaxFFKokkos<DeviceType>::compute_angular_sbo(int i, int itype, int j_s
F_FLOAT SBOp = 0.0;
F_FLOAT prod_SBO = 1.0;
for (int jj = j_start; jj < j_end; jj++) {
const int j_index = jj - j_start;
for (int j_index = 0; j_index < jnum; j_index++) {
const F_FLOAT bo_ij = d_BO(i,j_index);
SBOp += (d_BO_pi(i,j_index) + d_BO_pi2(i,j_index));
@ -2568,29 +2499,26 @@ void PairReaxFFKokkos<DeviceType>::compute_angular_sbo(int i, int itype, int j_s
template<class DeviceType>
template<bool POPULATE>
KOKKOS_INLINE_FUNCTION
int PairReaxFFKokkos<DeviceType>::preprocess_angular(int i, int itype, int j_start, int j_end, int location_angular) const {
int PairReaxFFKokkos<DeviceType>::preprocess_angular(int i, int itype, int jnum, int location_angular) const {
int count_angular = 0;
for (int jj = j_start; jj < j_end; jj++) {
int j = d_bo_list[jj];
for (int j_index = 0; j_index < jnum; j_index++) {
int j = d_bo_list(i, j_index);
j &= NEIGHMASK;
const int j_index = jj - j_start;
const F_FLOAT bo_ij = d_BO(i,j_index);
if (bo_ij <= thb_cut) continue;
if (i >= nlocal && j >= nlocal) continue;
const int i_index = maxbo + j_index;
const int jtype = type(j);
for (int kk = jj+1; kk < j_end; kk++) {
for (int k_index = j_index + 1; k_index < jnum; k_index++) {
//for (int kk = j_start; kk < j_end; kk++) {
int k = d_bo_list[kk];
int k = d_bo_list(i, k_index);
k &= NEIGHMASK;
if (k == j) continue;
const int k_index = kk - j_start;
const F_FLOAT bo_ik = d_BO(i,k_index);
if (bo_ij <= thb_cut || bo_ik <= thb_cut || bo_ij * bo_ik <= thb_cutsq) continue;
@ -2608,14 +2536,14 @@ int PairReaxFFKokkos<DeviceType>::preprocess_angular(int i, int itype, int j_sta
pack.i0 = i;
pack.i1 = j;
pack.i2 = k;
pack.i3 = j_start;
pack.i3 = jnum;
d_angular_pack(location_angular, 0) = pack;
// Second pack stores i_index, j_index, k_index, and j_end
pack.i0 = i_index;
// Second pack stores j_index and k_index
// i0 is unused because there's no i_index
pack.i1 = j_index;
pack.i2 = k_index;
pack.i3 = j_end;
// i3 is unused
d_angular_pack(location_angular, 1) = pack;
location_angular++;
@ -2634,17 +2562,16 @@ template<class DeviceType>
template<bool POPULATE>
KOKKOS_INLINE_FUNCTION
int PairReaxFFKokkos<DeviceType>::preprocess_torsion(int i, int /*itype*/, tagint itag,
F_FLOAT xtmp, F_FLOAT ytmp, F_FLOAT ztmp, int j_start, int j_end, int location_torsion) const {
F_FLOAT xtmp, F_FLOAT ytmp, F_FLOAT ztmp, int jknum, int location_torsion) const {
// in reaxff_torsion_angles: j = i, k = j, i = k;
int count_torsion = 0;
for (int jj = j_start; jj < j_end; jj++) {
int j = d_bo_list[jj];
for (int j_index = 0; j_index < jknum; j_index++) {
int j = d_bo_list(i, j_index);
j &= NEIGHMASK;
const tagint jtag = tag(j);
const int j_index = jj - j_start;
// skip half of the interactions
if (itag > jtag) {
@ -2660,23 +2587,20 @@ int PairReaxFFKokkos<DeviceType>::preprocess_torsion(int i, int /*itype*/, tagin
const F_FLOAT bo_ij = d_BO(i,j_index);
if (bo_ij < thb_cut) continue;
const int l_start = d_bo_first[j];
const int l_end = l_start + d_bo_num[j];
const int lnum = d_bo_num[j];
for (int kk = j_start; kk < j_end; kk++) {
int k = d_bo_list[kk];
for (int k_index = 0; k_index < jknum; k_index++) {
int k = d_bo_list(i, k_index);
k &= NEIGHMASK;
if (k == j) continue;
const int k_index = kk - j_start;
const F_FLOAT bo_ik = d_BO(i,k_index);
if (bo_ik < thb_cut) continue;
for (int ll = l_start; ll < l_end; ll++) {
int l = d_bo_list[ll];
for (int l_index = 0; l_index < lnum; l_index++) {
int l = d_bo_list(j, l_index);
l &= NEIGHMASK;
if (l == i) continue;
const int l_index = ll - l_start;
const F_FLOAT bo_jl = d_BO(j,l_index);
if (l == k || bo_jl < thb_cut || bo_ij*bo_ik*bo_jl < thb_cut) continue;
@ -2716,9 +2640,9 @@ void PairReaxFFKokkos<DeviceType>::operator()(TagPairReaxComputeAngularPreproces
auto v_f = ScatterViewHelper<NeedDup_v<NEIGHFLAG,DeviceType>,decltype(dup_f),decltype(ndup_f)>::get(dup_f,ndup_f);
auto a_f = v_f.template access<AtomicDup_v<NEIGHFLAG,DeviceType>>();
Kokkos::View<F_FLOAT**, typename DAT::t_ffloat_2d_dl::array_layout,typename KKDevice<DeviceType>::value,Kokkos::MemoryTraits<AtomicF<NEIGHFLAG>::value>> a_Cdbo = d_Cdbo;
Kokkos::View<F_FLOAT**, typename DAT::t_ffloat_2d_dl::array_layout,typename KKDevice<DeviceType>::value,Kokkos::MemoryTraits<AtomicF<NEIGHFLAG>::value>> a_Cdbopi = d_Cdbopi;
Kokkos::View<F_FLOAT**, typename DAT::t_ffloat_2d_dl::array_layout,typename KKDevice<DeviceType>::value,Kokkos::MemoryTraits<AtomicF<NEIGHFLAG>::value>> a_Cdbopi2 = d_Cdbopi2;
Kokkos::View<F_FLOAT**, typename decltype(d_Cdbo)::array_layout,KKDeviceType,Kokkos::MemoryTraits<AtomicF<NEIGHFLAG>::value>> a_Cdbo = d_Cdbo;
Kokkos::View<F_FLOAT**, typename decltype(d_Cdbopi)::array_layout,KKDeviceType,Kokkos::MemoryTraits<AtomicF<NEIGHFLAG>::value>> a_Cdbopi = d_Cdbopi;
Kokkos::View<F_FLOAT**, typename decltype(d_Cdbopi2)::array_layout,KKDeviceType,Kokkos::MemoryTraits<AtomicF<NEIGHFLAG>::value>> a_Cdbopi2 = d_Cdbopi2;
auto v_CdDelta = ScatterViewHelper<NeedDup_v<NEIGHFLAG,DeviceType>,decltype(dup_CdDelta),decltype(ndup_CdDelta)>::get(dup_CdDelta,ndup_CdDelta);
auto a_CdDelta = v_CdDelta.template access<AtomicDup_v<NEIGHFLAG,DeviceType>>();
@ -2758,13 +2682,13 @@ void PairReaxFFKokkos<DeviceType>::operator()(TagPairReaxComputeAngularPreproces
const int i = pack.i0;
const int j = pack.i1;
const int k = pack.i2;
const int j_start = pack.i3;
const int jnum = pack.i3;
pack = d_angular_pack(apack, 1);
const int i_index = pack.i0;
// i0 is unused
const int j_index = pack.i1;
const int k_index = pack.i2;
const int j_end = pack.i3;
// i3 is unused
const int itype = type(i);
const X_FLOAT xtmp = x(i,0);
@ -2914,17 +2838,13 @@ void PairReaxFFKokkos<DeviceType>::operator()(TagPairReaxComputeAngularPreproces
// Forces
a_Cdbo(i,j_index) += (CEval1 + CEpen2 + (CEcoa1 - CEcoa4));
a_Cdbo(j,i_index) += (CEval1 + CEpen2 + (CEcoa1 - CEcoa4));
a_Cdbo(i,k_index) += (CEval2 + CEpen3 + (CEcoa2 - CEcoa5));
a_Cdbo(k,i_index) += (CEval2 + CEpen3 + (CEcoa2 - CEcoa5));
CdDelta_i += ((CEval3 + CEval7) + CEpen1 + CEcoa3);
CdDelta_j += CEcoa4;
a_CdDelta[k] += CEcoa5;
for (int ll = j_start; ll < j_end; ll++) {
const int l_index = ll - j_start;
for (int l_index = 0; l_index < jnum; l_index++) {
temp_bo_jt = d_BO(i,l_index);
temp = temp_bo_jt * temp_bo_jt * temp_bo_jt;
pBOjt7 = temp * temp * temp_bo_jt;
@ -2978,8 +2898,8 @@ void PairReaxFFKokkos<DeviceType>::operator()(TagPairReaxComputeTorsionPreproces
auto v_CdDelta = ScatterViewHelper<NeedDup_v<NEIGHFLAG,DeviceType>,decltype(dup_CdDelta),decltype(ndup_CdDelta)>::get(dup_CdDelta,ndup_CdDelta);
auto a_CdDelta = v_CdDelta.template access<AtomicDup_v<NEIGHFLAG,DeviceType>>();
Kokkos::View<F_FLOAT**, typename DAT::t_ffloat_2d_dl::array_layout,typename KKDevice<DeviceType>::value,Kokkos::MemoryTraits<AtomicF<NEIGHFLAG>::value>> a_Cdbo = d_Cdbo;
Kokkos::View<F_FLOAT**, typename DAT::t_ffloat_2d_dl::array_layout,typename KKDevice<DeviceType>::value,Kokkos::MemoryTraits<AtomicF<NEIGHFLAG>::value>> a_Cdbopi = d_Cdbopi;
Kokkos::View<F_FLOAT**, typename decltype(d_Cdbo)::array_layout,KKDeviceType,Kokkos::MemoryTraits<AtomicF<NEIGHFLAG>::value>> a_Cdbo = d_Cdbo;
Kokkos::View<F_FLOAT**, typename decltype(d_Cdbopi)::array_layout,KKDeviceType,Kokkos::MemoryTraits<AtomicF<NEIGHFLAG>::value>> a_Cdbopi = d_Cdbopi;
//auto a_Cdbo = dup_Cdbo.template access<AtomicDup_v<NEIGHFLAG,DeviceType>>();
// in reaxff_torsion_angles: j = i, k = j, i = k;
@ -3340,21 +3260,18 @@ void PairReaxFFKokkos<DeviceType>::operator()(TagPairReaxComputeHydrogen<NEIGHFL
const X_FLOAT ytmp = x(i,1);
const X_FLOAT ztmp = x(i,2);
const int j_start = d_bo_first[i];
const int j_end = j_start + d_bo_num[i];
const int k_start = d_hb_first[i];
const int k_end = k_start + d_hb_num[i];
const int jnum = d_bo_num[i];
const int knum = d_hb_num[i];
int top = 0;
for (int jj = j_start; jj < j_end; jj++) {
int j = d_bo_list[jj];
for (int j_index = 0; j_index < jnum; j_index++) {
int j = d_bo_list(i, j_index);
j &= NEIGHMASK;
const int jtype = type(j);
const int j_index = jj - j_start;
const F_FLOAT bo_ij = d_BO(i,j_index);
if (paramssing(jtype).p_hbond == 2 && bo_ij >= HB_THRESHOLD) {
hblist[top] = jj;
hblist[top] = j_index;
top ++;
}
}
@ -3362,8 +3279,8 @@ void PairReaxFFKokkos<DeviceType>::operator()(TagPairReaxComputeHydrogen<NEIGHFL
F_FLOAT fitmp[3];
for (int d = 0; d < 3; d++) fitmp[d] = 0.0;
for (int kk = k_start; kk < k_end; kk++) {
int k = d_hb_list[kk];
for (int k_index = 0; k_index < knum; k_index++) {
int k = d_hb_list(i, k_index);
k &= NEIGHMASK;
const tagint ktag = tag(k);
const int ktype = type(k);
@ -3375,14 +3292,13 @@ void PairReaxFFKokkos<DeviceType>::operator()(TagPairReaxComputeHydrogen<NEIGHFL
const F_FLOAT rik = sqrt(rsqik);
for (int itr = 0; itr < top; itr++) {
const int jj = hblist[itr];
int j = d_bo_list[jj];
const int j_index = hblist[itr];
int j = d_bo_list(i, j_index);
j &= NEIGHMASK;
const tagint jtag = tag(j);
if (jtag == ktag) continue;
const int jtype = type(j);
const int j_index = jj - j_start;
const F_FLOAT bo_ij = d_BO(i,j_index);
delij[0] = x(j,0) - xtmp;
@ -3470,20 +3386,19 @@ template<int NEIGHFLAG>
KOKKOS_INLINE_FUNCTION
void PairReaxFFKokkos<DeviceType>::operator()(TagPairReaxUpdateBond<NEIGHFLAG>, const int &ii) const {
Kokkos::View<F_FLOAT**, typename DAT::t_ffloat_2d_dl::array_layout,KKDeviceType,Kokkos::MemoryTraits<AtomicF<NEIGHFLAG>::value>> a_Cdbo = d_Cdbo;
Kokkos::View<F_FLOAT**, typename DAT::t_ffloat_2d_dl::array_layout,KKDeviceType,Kokkos::MemoryTraits<AtomicF<NEIGHFLAG>::value>> a_Cdbopi = d_Cdbopi;
Kokkos::View<F_FLOAT**, typename DAT::t_ffloat_2d_dl::array_layout,KKDeviceType,Kokkos::MemoryTraits<AtomicF<NEIGHFLAG>::value>> a_Cdbopi2 = d_Cdbopi2;
Kokkos::View<F_FLOAT**, typename decltype(d_Cdbo)::array_layout,KKDeviceType,Kokkos::MemoryTraits<AtomicF<NEIGHFLAG>::value>> a_Cdbo = d_Cdbo;
Kokkos::View<F_FLOAT**, typename decltype(d_Cdbopi)::array_layout,KKDeviceType,Kokkos::MemoryTraits<AtomicF<NEIGHFLAG>::value>> a_Cdbopi = d_Cdbopi;
Kokkos::View<F_FLOAT**, typename decltype(d_Cdbopi2)::array_layout,KKDeviceType,Kokkos::MemoryTraits<AtomicF<NEIGHFLAG>::value>> a_Cdbopi2 = d_Cdbopi2;
const int i = d_ilist[ii];
const X_FLOAT xtmp = x(i,0);
const X_FLOAT ytmp = x(i,1);
const X_FLOAT ztmp = x(i,2);
const tagint itag = tag(i);
const int j_start = d_bo_first[i];
const int j_end = j_start + d_bo_num[i];
const int jnum = d_bo_num[i];
for (int jj = j_start; jj < j_end; jj++) {
int j = d_bo_list[jj];
for (int j_index = 0; j_index < jnum; j_index++) {
int j = d_bo_list(i, j_index);
j &= NEIGHMASK;
const tagint jtag = tag(j);
@ -3501,19 +3416,16 @@ void PairReaxFFKokkos<DeviceType>::operator()(TagPairReaxUpdateBond<NEIGHFLAG>,
if (!flag) continue;
const int j_index = jj - j_start;
const F_FLOAT Cdbo_i = d_Cdbo(i,j_index);
const F_FLOAT Cdbopi_i = d_Cdbopi(i,j_index);
const F_FLOAT Cdbopi2_i = d_Cdbopi2(i,j_index);
const int k_start = d_bo_first[j];
const int k_end = k_start + d_bo_num[j];
const int knum = d_bo_num[j];
for (int kk = k_start; kk < k_end; kk++) {
int k = d_bo_list[kk];
for (int k_index = 0; k_index < knum; k_index++) {
int k = d_bo_list(j, k_index);
k &= NEIGHMASK;
if (k != i) continue;
const int k_index = kk - k_start;
a_Cdbo(j,k_index) += Cdbo_i;
a_Cdbopi(j,k_index) += Cdbopi_i;
@ -3541,13 +3453,12 @@ void PairReaxFFKokkos<DeviceType>::operator()(TagPairReaxComputeBond1<NEIGHFLAG,
const int itype = type(i);
const tagint itag = tag(i);
const F_FLOAT imass = paramssing(itype).mass;
const int j_start = d_bo_first[i];
const int j_end = j_start + d_bo_num[i];
const int jnum = d_bo_num[i];
F_FLOAT CdDelta_i = 0.0;
for (int jj = j_start; jj < j_end; jj++) {
int j = d_bo_list[jj];
for (int j_index = 0; j_index < jnum; j_index++) {
int j = d_bo_list(i, j_index);
j &= NEIGHMASK;
const tagint jtag = tag(j);
@ -3562,7 +3473,6 @@ void PairReaxFFKokkos<DeviceType>::operator()(TagPairReaxComputeBond1<NEIGHFLAG,
}
const int jtype = type(j);
const int j_index = jj - j_start;
const F_FLOAT jmass = paramssing(jtype).mass;
// bond energy (nlocal only)
@ -3655,15 +3565,14 @@ void PairReaxFFKokkos<DeviceType>::operator()(TagPairReaxComputeBond2<NEIGHFLAG,
const X_FLOAT ytmp = x(i,1);
const X_FLOAT ztmp = x(i,2);
const tagint itag = tag(i);
const int j_start = d_bo_first[i];
const int j_end = j_start + d_bo_num[i];
const int jknum = d_bo_num[i];
F_FLOAT CdDelta_i = d_CdDelta[i];
F_FLOAT fitmp[3];
for (int j = 0; j < 3; j++) fitmp[j] = 0.0;
for (int jj = j_start; jj < j_end; jj++) {
int j = d_bo_list[jj];
for (int j_index = 0; j_index < jknum; j_index++) {
int j = d_bo_list(i, j_index);
j &= NEIGHMASK;
const tagint jtag = tag(j);
@ -3677,15 +3586,13 @@ void PairReaxFFKokkos<DeviceType>::operator()(TagPairReaxComputeBond2<NEIGHFLAG,
if (x(j,2) == ztmp && x(j,1) == ytmp && x(j,0) < xtmp) continue;
}
const int j_index = jj - j_start;
F_FLOAT CdDelta_j = d_CdDelta[j];
delij[0] = x(j,0) - xtmp;
delij[1] = x(j,1) - ytmp;
delij[2] = x(j,2) - ztmp;
const int k_start = d_bo_first[j];
const int k_end = k_start + d_bo_num[j];
const int knum = d_bo_num[j];
F_FLOAT coef_C1dbo, coef_C2dbo, coef_C3dbo, coef_C1dbopi, coef_C2dbopi, coef_C3dbopi, coef_C4dbopi;
F_FLOAT coef_C1dbopi2, coef_C2dbopi2, coef_C3dbopi2, coef_C4dbopi2, coef_C1dDelta, coef_C2dDelta, coef_C3dDelta;
@ -3769,10 +3676,9 @@ void PairReaxFFKokkos<DeviceType>::operator()(TagPairReaxComputeBond2<NEIGHFLAG,
}
// forces on k: i neighbor
for (int kk = j_start; kk < j_end; kk++) {
int k = d_bo_list[kk];
for (int k_index = 0; k_index < jknum; k_index++) {
int k = d_bo_list(i, k_index);
k &= NEIGHMASK;
const int k_index = kk - j_start;
delik[0] = x(k,0) - xtmp;
delik[1] = x(k,1) - ytmp;
@ -3799,10 +3705,9 @@ void PairReaxFFKokkos<DeviceType>::operator()(TagPairReaxComputeBond2<NEIGHFLAG,
}
// forces on k: j neighbor
for (int kk = k_start; kk < k_end; kk++) {
int k = d_bo_list[kk];
for (int k_index = 0; k_index < knum; k_index++) {
int k = d_bo_list(j, k_index);
k &= NEIGHMASK;
const int k_index = kk - k_start;
for (int d = 0; d < 3; d++) deljk[d] = x(k,d) - x(j,d);
@ -4203,15 +4108,13 @@ void PairReaxFFKokkos<DeviceType>::calculate_find_bond_item(int ii, int &numbond
int nj = 0;
if (mask[i] & groupbit) {
const int j_start = d_bo_first[i];
const int j_end = j_start + d_bo_num[i];
for (int jj = j_start; jj < j_end; jj++) {
int j = d_bo_list[jj];
const int jnum = d_bo_num[i];
for (int j_index = 0; j_index < jnum; j_index++) {
int j = d_bo_list(i, j_index);
j &= NEIGHMASK;
if (mask[j] & groupbit) {
const tagint jtag = tag[j];
const int j_index = jj - j_start;
double bo_tmp = d_BO(i,j_index);
double bo_tmp = d_BO(i, j_index);
if (bo_tmp > bo_cut_bond) {
d_neighid(i,nj) = jtag;
@ -4409,15 +4312,13 @@ KOKKOS_INLINE_FUNCTION
void PairReaxFFKokkos<DeviceType>::operator()(TagPairReaxFindBondSpecies, const int &i) const {
int nj = 0;
const int j_start = d_bo_first[i];
const int j_end = j_start + d_bo_num[i];
for (int jj = j_start; jj < j_end; jj++) {
int j = d_bo_list[jj];
const int jnum = d_bo_num[i];
for (int j_index = 0; j_index < jnum; j_index++) {
int j = d_bo_list(i, j_index);
j &= NEIGHMASK;
if (j < i) continue;
const int j_index = jj - j_start;
double bo_tmp = d_BO(i,j_index);
double bo_tmp = d_BO(i, j_index);
if (bo_tmp >= 0.10) { // Why is this a hardcoded value?
k_tmpid.view<DeviceType>()(i,nj) = j;

View File

@ -178,14 +178,14 @@ class PairReaxFFKokkos : public PairReaxFF {
// TagPairReaxBuildListsHalfBlocking, HalfBlockingPreview, HalfPreview
template<int NEIGHFLAG>
KOKKOS_INLINE_FUNCTION
void build_hb_list(F_FLOAT, int, int, int, int, int) const;
void build_hb_list(F_FLOAT, int, int, int, int) const;
// Isolated function that builds the bond order list, reused across
// TagPairReaxBuildListsHalfBlocking, HalfBlockingPreview, HalfPreview
// Returns if we need to populate d_d* functions or not
template<int NEIGHFLAG>
KOKKOS_INLINE_FUNCTION
bool build_bo_list(int, int, int, int&, int&) const;
bool build_bo_list(int, int, int&, int&) const;
KOKKOS_INLINE_FUNCTION
void operator()(TagPairReaxBuildListsFull, const int&) const;
@ -245,17 +245,17 @@ class PairReaxFFKokkos : public PairReaxFF {
// Abstraction for computing SBSO2, CSBO2, dSBO1, dsBO2
KOKKOS_INLINE_FUNCTION
void compute_angular_sbo(int, int, int, int) const;
void compute_angular_sbo(int, int, int) const;
// Abstraction for counting and populating angular intermediates
template<bool POPULATE>
KOKKOS_INLINE_FUNCTION
int preprocess_angular(int, int, int, int, int) const;
int preprocess_angular(int, int, int, int) const;
// Abstraction for counting and populating torsion intermediated
template<bool POPULATE>
KOKKOS_INLINE_FUNCTION
int preprocess_torsion(int, int, tagint, F_FLOAT, F_FLOAT, F_FLOAT, int, int, int) const;
int preprocess_torsion(int, int, tagint, F_FLOAT, F_FLOAT, F_FLOAT, int, int) const;
template<int NEIGHFLAG, int EVFLAG>
KOKKOS_INLINE_FUNCTION
@ -436,7 +436,7 @@ class PairReaxFFKokkos : public PairReaxFF {
typename AT::t_ffloat_2d_dl d_C1dbo, d_C2dbo, d_C3dbo;
typename AT::t_ffloat_2d_dl d_C1dbopi, d_C2dbopi, d_C3dbopi, d_C4dbopi;
typename AT::t_ffloat_2d_dl d_C1dbopi2, d_C2dbopi2, d_C3dbopi2, d_C4dbopi2;
typename AT::t_ffloat_2d_dl d_Cdbo, d_Cdbopi, d_Cdbopi2, d_dDeltap_self;
typename AT::t_ffloat_2d_dl d_dDeltap_self, d_Cdbo, d_Cdbopi, d_Cdbopi2;
int need_dup;
@ -470,7 +470,8 @@ class PairReaxFFKokkos : public PairReaxFF {
typename AT::t_int_1d_randomread d_ilist;
typename AT::t_int_1d_randomread d_numneigh;
typename AT::t_int_1d d_bo_first, d_bo_num, d_bo_list, d_hb_first, d_hb_num, d_hb_list;
typename AT::t_int_1d d_bo_num, d_hb_num;
typename AT::t_int_2d d_bo_list, d_hb_list;
DAT::tdual_int_scalar k_resize_bo, k_resize_hb;
typename AT::t_int_scalar d_resize_bo, d_resize_hb;

View File

@ -794,7 +794,7 @@ void PPPMKokkos<DeviceType>::allocate()
// 2nd FFT returns data in 3d brick decomposition
// remap takes data from 3d brick to FFT decomposition
int collective_flag = 0; // not yet supported in Kokkos version
int collective_flag = force->kspace->collective_flag;
int gpu_aware_flag = lmp->kokkos->gpu_aware_flag;
int tmp;

View File

@ -103,12 +103,10 @@ template<class DeviceType>
void RemapKokkos<DeviceType>::remap_3d_kokkos(typename FFT_AT::t_FFT_SCALAR_1d d_in, typename FFT_AT::t_FFT_SCALAR_1d d_out, typename FFT_AT::t_FFT_SCALAR_1d d_buf,
struct remap_plan_3d_kokkos<DeviceType> *plan)
{
// collective flag not yet supported
// use point-to-point communication
int i,isend,irecv;
typename FFT_AT::t_FFT_SCALAR_1d d_scratch;
int me;
MPI_Comm_rank(plan->comm,&me);
if (plan->memory == 0)
d_scratch = d_buf;
@ -116,70 +114,132 @@ void RemapKokkos<DeviceType>::remap_3d_kokkos(typename FFT_AT::t_FFT_SCALAR_1d d
d_scratch = plan->d_scratch;
// post all recvs into scratch space
// If not using GPU-aware MPI, mirror data to host
FFT_SCALAR* v_scratch = d_scratch.data();
if (!plan->usegpu_aware) {
plan->h_scratch = Kokkos::create_mirror_view(d_scratch);
v_scratch = plan->h_scratch.data();
}
for (irecv = 0; irecv < plan->nrecv; irecv++) {
FFT_SCALAR* scratch = v_scratch + plan->recv_bufloc[irecv];
MPI_Irecv(scratch,plan->recv_size[irecv],
MPI_FFT_SCALAR,plan->recv_proc[irecv],0,
plan->comm,&plan->request[irecv]);
}
FFT_SCALAR* v_sendbuf = plan->d_sendbuf.data();
if (!plan->usegpu_aware) {
plan->h_scratch = Kokkos::create_mirror_view(d_scratch);
plan->h_sendbuf = Kokkos::create_mirror_view(plan->d_sendbuf);
v_scratch = plan->h_scratch.data();
v_sendbuf = plan->h_sendbuf.data();
}
// send all messages to other procs
// use point-to-point communication
for (isend = 0; isend < plan->nsend; isend++) {
int in_offset = plan->send_offset[isend];
plan->pack(d_in,in_offset,
plan->d_sendbuf,0,&plan->packplan[isend]);
if (!plan->usecollective) {
int i,isend,irecv;
if (!plan->usegpu_aware)
Kokkos::deep_copy(plan->h_sendbuf,plan->d_sendbuf);
MPI_Send(v_sendbuf,plan->send_size[isend],MPI_FFT_SCALAR,
plan->send_proc[isend],0,plan->comm);
}
for (irecv = 0; irecv < plan->nrecv; irecv++) {
FFT_SCALAR* scratch = v_scratch + plan->recv_bufloc[irecv];
MPI_Irecv(scratch,plan->recv_size[irecv],
MPI_FFT_SCALAR,plan->recv_proc[irecv],0,
plan->comm,&plan->request[irecv]);
}
// copy in -> scratch -> out for self data
// send all messages to other procs
if (plan->self) {
isend = plan->nsend;
irecv = plan->nrecv;
for (isend = 0; isend < plan->nsend; isend++) {
int in_offset = plan->send_offset[isend];
plan->pack(d_in,in_offset,
plan->d_sendbuf,0,&plan->packplan[isend]);
int in_offset = plan->send_offset[isend];
int scratch_offset = plan->recv_bufloc[irecv];
int out_offset = plan->recv_offset[irecv];
if (!plan->usegpu_aware)
Kokkos::deep_copy(plan->h_sendbuf,plan->d_sendbuf);
plan->pack(d_in,in_offset,
d_scratch,scratch_offset,
&plan->packplan[isend]);
plan->unpack(d_scratch,scratch_offset,
d_out,out_offset,&plan->unpackplan[irecv]);
}
MPI_Send(v_sendbuf,plan->send_size[isend],MPI_FFT_SCALAR,
plan->send_proc[isend],0,plan->comm);
}
// unpack all messages from scratch -> out
// copy in -> scratch -> out for self data
for (i = 0; i < plan->nrecv; i++) {
MPI_Waitany(plan->nrecv,plan->request,&irecv,MPI_STATUS_IGNORE);
if (plan->self) {
isend = plan->nsend;
irecv = plan->nrecv;
int scratch_offset = plan->recv_bufloc[irecv];
int out_offset = plan->recv_offset[irecv];
int in_offset = plan->send_offset[isend];
int scratch_offset = plan->recv_bufloc[irecv];
int out_offset = plan->recv_offset[irecv];
if (!plan->usegpu_aware)
Kokkos::deep_copy(d_scratch,plan->h_scratch);
plan->pack(d_in,in_offset,
d_scratch,scratch_offset,
&plan->packplan[isend]);
plan->unpack(d_scratch,scratch_offset,
d_out,out_offset,&plan->unpackplan[irecv]);
}
plan->unpack(d_scratch,scratch_offset,
d_out,out_offset,&plan->unpackplan[irecv]);
// unpack all messages from scratch -> out
for (i = 0; i < plan->nrecv; i++) {
MPI_Waitany(plan->nrecv,plan->request,&irecv,MPI_STATUS_IGNORE);
int scratch_offset = plan->recv_bufloc[irecv];
int out_offset = plan->recv_offset[irecv];
if (!plan->usegpu_aware)
Kokkos::deep_copy(d_scratch,plan->h_scratch);
plan->unpack(d_scratch,scratch_offset,
d_out,out_offset,&plan->unpackplan[irecv]);
}
} else {
if (plan->commringlen > 0) {
int isend,irecv;
// populate send data
// buffers are allocated and count/displacement buffers
// are populated in remap_3d_create_plan_kokkos
int numpacked = 0;
for (isend = 0; isend < plan->commringlen; isend++) {
if (plan->sendcnts[isend]) {
plan->pack(d_in,plan->send_offset[numpacked],
plan->d_sendbuf,plan->sdispls[isend],
&plan->packplan[numpacked]);
numpacked++;
}
else if (plan->commringlist[isend] == me && plan->self) {
numpacked++;
}
}
if (!plan->usegpu_aware)
Kokkos::deep_copy(plan->h_sendbuf,plan->d_sendbuf);
MPI_Alltoallv(v_sendbuf, plan->sendcnts, plan->sdispls,
MPI_FFT_SCALAR, v_scratch, plan->rcvcnts,
plan->rdispls, MPI_FFT_SCALAR, plan->comm);
// unpack the data from the recv buffer into out
if (!plan->usegpu_aware)
Kokkos::deep_copy(d_scratch,plan->h_scratch);
// copy in -> scratch -> out for self data
if (plan->self) {
plan->pack(d_in,plan->send_offset[plan->selfnsendloc],
plan->d_sendbuf,plan->sdispls[plan->selfcommringloc],
&plan->packplan[plan->selfnsendloc]);
plan->unpack(plan->d_sendbuf,plan->sdispls[plan->selfcommringloc],
d_out,plan->recv_offset[plan->selfnrecvloc],
&plan->unpackplan[plan->selfnrecvloc]);
}
numpacked = 0;
for (irecv = 0; irecv < plan->commringlen; irecv++) {
if (plan->rcvcnts[irecv]) {
plan->unpack(d_scratch,plan->rdispls[irecv],
d_out,plan->recv_offset[numpacked],
&plan->unpackplan[numpacked]);
numpacked++;
}
else if (plan->commringlist[irecv] == me && plan->self) {
numpacked++;
}
}
}
}
}
@ -263,224 +323,488 @@ struct remap_plan_3d_kokkos<DeviceType>* RemapKokkos<DeviceType>::remap_3d_creat
out.khi = out_khi;
out.ksize = out.khi - out.klo + 1;
// combine output extents across all procs
inarray = (struct extent_3d *) malloc(nprocs*sizeof(struct extent_3d));
if (inarray == nullptr) return nullptr;
outarray = (struct extent_3d *) malloc(nprocs*sizeof(struct extent_3d));
if (outarray == nullptr) return nullptr;
MPI_Allgather(&out,sizeof(struct extent_3d),MPI_BYTE,
outarray,sizeof(struct extent_3d),MPI_BYTE,comm);
// count send collides, including self
nsend = 0;
iproc = me;
for (i = 0; i < nprocs; i++) {
iproc++;
if (iproc == nprocs) iproc = 0;
nsend += remap_3d_collide(&in,&outarray[iproc],&overlap);
}
// malloc space for send info
if (nsend) {
plan->pack = PackKokkos<DeviceType>::pack_3d;
plan->send_offset = (int *) malloc(nsend*sizeof(int));
plan->send_size = (int *) malloc(nsend*sizeof(int));
plan->send_proc = (int *) malloc(nsend*sizeof(int));
plan->packplan = (struct pack_plan_3d *)
malloc(nsend*sizeof(struct pack_plan_3d));
if (plan->send_offset == nullptr || plan->send_size == nullptr ||
plan->send_proc == nullptr || plan->packplan == nullptr) return nullptr;
}
// store send info, with self as last entry
nsend = 0;
iproc = me;
for (i = 0; i < nprocs; i++) {
iproc++;
if (iproc == nprocs) iproc = 0;
if (remap_3d_collide(&in,&outarray[iproc],&overlap)) {
plan->send_proc[nsend] = iproc;
plan->send_offset[nsend] = nqty *
((overlap.klo-in.klo)*in.jsize*in.isize +
((overlap.jlo-in.jlo)*in.isize + overlap.ilo-in.ilo));
plan->packplan[nsend].nfast = nqty*overlap.isize;
plan->packplan[nsend].nmid = overlap.jsize;
plan->packplan[nsend].nslow = overlap.ksize;
plan->packplan[nsend].nstride_line = nqty*in.isize;
plan->packplan[nsend].nstride_plane = nqty*in.jsize*in.isize;
plan->packplan[nsend].nqty = nqty;
plan->send_size[nsend] = nqty*overlap.isize*overlap.jsize*overlap.ksize;
nsend++;
}
}
// plan->nsend = # of sends not including self
if (nsend && plan->send_proc[nsend-1] == me) {
if (plan->usecollective) // for collectives include self in nsend list
plan->nsend = nsend;
else
plan->nsend = nsend - 1;
} else
plan->nsend = nsend;
// combine input extents across all procs
// combine input & output extents across all procs
MPI_Allgather(&in,sizeof(struct extent_3d),MPI_BYTE,
inarray,sizeof(struct extent_3d),MPI_BYTE,comm);
MPI_Allgather(&out,sizeof(struct extent_3d),MPI_BYTE,
outarray,sizeof(struct extent_3d),MPI_BYTE,comm);
// count recv collides, including self
// for efficiency, handle collective & non-collective setup separately
nrecv = 0;
iproc = me;
for (i = 0; i < nprocs; i++) {
iproc++;
if (iproc == nprocs) iproc = 0;
nrecv += remap_3d_collide(&out,&inarray[iproc],&overlap);
}
if (!plan->usecollective) {
// count send & recv collides, including self
// malloc space for recv info
if (nrecv) {
if (permute == 0)
plan->unpack = PackKokkos<DeviceType>::unpack_3d;
else if (permute == 1) {
if (nqty == 1)
plan->unpack = PackKokkos<DeviceType>::unpack_3d_permute1_1;
else if (nqty == 2)
plan->unpack = PackKokkos<DeviceType>::unpack_3d_permute1_2;
else
plan->unpack = PackKokkos<DeviceType>::unpack_3d_permute1_n;
}
else if (permute == 2) {
if (nqty == 1)
plan->unpack = PackKokkos<DeviceType>::unpack_3d_permute2_1;
else if (nqty == 2)
plan->unpack = PackKokkos<DeviceType>::unpack_3d_permute2_2;
else
plan->unpack = PackKokkos<DeviceType>::unpack_3d_permute2_n;
nsend = 0;
nrecv = 0;
for (i = 0; i < nprocs; i++) {
nsend += remap_3d_collide(&in,&outarray[i],&overlap);
nrecv += remap_3d_collide(&out,&inarray[i],&overlap);
}
plan->recv_offset = (int *) malloc(nrecv*sizeof(int));
plan->recv_size = (int *) malloc(nrecv*sizeof(int));
plan->recv_proc = (int *) malloc(nrecv*sizeof(int));
plan->recv_bufloc = (int *) malloc(nrecv*sizeof(int));
plan->request = (MPI_Request *) malloc(nrecv*sizeof(MPI_Request));
plan->unpackplan = (struct pack_plan_3d *)
malloc(nrecv*sizeof(struct pack_plan_3d));
// malloc space for send & recv info
if (plan->recv_offset == nullptr || plan->recv_size == nullptr ||
plan->recv_proc == nullptr || plan->recv_bufloc == nullptr ||
plan->request == nullptr || plan->unpackplan == nullptr) return nullptr;
}
if (nsend) {
plan->pack = PackKokkos<DeviceType>::pack_3d;
// store recv info, with self as last entry
plan->send_offset = (int *) malloc(nsend*sizeof(int));
plan->send_size = (int *) malloc(nsend*sizeof(int));
plan->send_proc = (int *) malloc(nsend*sizeof(int));
plan->packplan = (struct pack_plan_3d *)
malloc(nsend*sizeof(struct pack_plan_3d));
ibuf = 0;
nrecv = 0;
iproc = me;
if (plan->send_offset == nullptr || plan->send_size == nullptr ||
plan->send_proc == nullptr || plan->packplan == nullptr) return nullptr;
}
for (i = 0; i < nprocs; i++) {
iproc++;
if (iproc == nprocs) iproc = 0;
if (remap_3d_collide(&out,&inarray[iproc],&overlap)) {
plan->recv_proc[nrecv] = iproc;
plan->recv_bufloc[nrecv] = ibuf;
if (permute == 0) {
plan->recv_offset[nrecv] = nqty *
((overlap.klo-out.klo)*out.jsize*out.isize +
(overlap.jlo-out.jlo)*out.isize + (overlap.ilo-out.ilo));
plan->unpackplan[nrecv].nfast = nqty*overlap.isize;
plan->unpackplan[nrecv].nmid = overlap.jsize;
plan->unpackplan[nrecv].nslow = overlap.ksize;
plan->unpackplan[nrecv].nstride_line = nqty*out.isize;
plan->unpackplan[nrecv].nstride_plane = nqty*out.jsize*out.isize;
plan->unpackplan[nrecv].nqty = nqty;
}
if (nrecv) {
if (permute == 0)
plan->unpack = PackKokkos<DeviceType>::unpack_3d;
else if (permute == 1) {
plan->recv_offset[nrecv] = nqty *
((overlap.ilo-out.ilo)*out.ksize*out.jsize +
(overlap.klo-out.klo)*out.jsize + (overlap.jlo-out.jlo));
plan->unpackplan[nrecv].nfast = overlap.isize;
plan->unpackplan[nrecv].nmid = overlap.jsize;
plan->unpackplan[nrecv].nslow = overlap.ksize;
plan->unpackplan[nrecv].nstride_line = nqty*out.jsize;
plan->unpackplan[nrecv].nstride_plane = nqty*out.ksize*out.jsize;
plan->unpackplan[nrecv].nqty = nqty;
if (nqty == 1)
plan->unpack = PackKokkos<DeviceType>::unpack_3d_permute1_1;
else if (nqty == 2)
plan->unpack = PackKokkos<DeviceType>::unpack_3d_permute1_2;
else
plan->unpack = PackKokkos<DeviceType>::unpack_3d_permute1_n;
}
else {
plan->recv_offset[nrecv] = nqty *
((overlap.jlo-out.jlo)*out.isize*out.ksize +
(overlap.ilo-out.ilo)*out.ksize + (overlap.klo-out.klo));
plan->unpackplan[nrecv].nfast = overlap.isize;
plan->unpackplan[nrecv].nmid = overlap.jsize;
plan->unpackplan[nrecv].nslow = overlap.ksize;
plan->unpackplan[nrecv].nstride_line = nqty*out.ksize;
plan->unpackplan[nrecv].nstride_plane = nqty*out.isize*out.ksize;
plan->unpackplan[nrecv].nqty = nqty;
else if (permute == 2) {
if (nqty == 1)
plan->unpack = PackKokkos<DeviceType>::unpack_3d_permute2_1;
else if (nqty == 2)
plan->unpack = PackKokkos<DeviceType>::unpack_3d_permute2_2;
else
plan->unpack = PackKokkos<DeviceType>::unpack_3d_permute2_n;
}
plan->recv_size[nrecv] = nqty*overlap.isize*overlap.jsize*overlap.ksize;
ibuf += plan->recv_size[nrecv];
nrecv++;
plan->recv_offset = (int *) malloc(nrecv*sizeof(int));
plan->recv_size = (int *) malloc(nrecv*sizeof(int));
plan->recv_proc = (int *) malloc(nrecv*sizeof(int));
plan->recv_bufloc = (int *) malloc(nrecv*sizeof(int));
plan->request = (MPI_Request *) malloc(nrecv*sizeof(MPI_Request));
plan->unpackplan = (struct pack_plan_3d *)
malloc(nrecv*sizeof(struct pack_plan_3d));
if (plan->recv_offset == nullptr || plan->recv_size == nullptr ||
plan->recv_proc == nullptr || plan->recv_bufloc == nullptr ||
plan->request == nullptr || plan->unpackplan == nullptr) return nullptr;
}
// store send info, with self as last entry
nsend = 0;
iproc = me;
for (i = 0; i < nprocs; i++) {
iproc++;
if (iproc == nprocs) iproc = 0;
if (remap_3d_collide(&in,&outarray[iproc],&overlap)) {
plan->send_proc[nsend] = iproc;
plan->send_offset[nsend] = nqty *
((overlap.klo-in.klo)*in.jsize*in.isize +
((overlap.jlo-in.jlo)*in.isize + overlap.ilo-in.ilo));
plan->packplan[nsend].nfast = nqty*overlap.isize;
plan->packplan[nsend].nmid = overlap.jsize;
plan->packplan[nsend].nslow = overlap.ksize;
plan->packplan[nsend].nstride_line = nqty*in.isize;
plan->packplan[nsend].nstride_plane = nqty*in.jsize*in.isize;
plan->packplan[nsend].nqty = nqty;
plan->send_size[nsend] = nqty*overlap.isize*overlap.jsize*overlap.ksize;
nsend++;
}
}
// plan->nsend = # of sends not including self
if (nsend && plan->send_proc[nsend-1] == me) plan->nsend = nsend - 1;
else plan->nsend = nsend;
// store recv info, with self as last entry
ibuf = 0;
nrecv = 0;
iproc = me;
for (i = 0; i < nprocs; i++) {
iproc++;
if (iproc == nprocs) iproc = 0;
if (remap_3d_collide(&out,&inarray[iproc],&overlap)) {
plan->recv_proc[nrecv] = iproc;
plan->recv_bufloc[nrecv] = ibuf;
if (permute == 0) {
plan->recv_offset[nrecv] = nqty *
((overlap.klo-out.klo)*out.jsize*out.isize +
(overlap.jlo-out.jlo)*out.isize + (overlap.ilo-out.ilo));
plan->unpackplan[nrecv].nfast = nqty*overlap.isize;
plan->unpackplan[nrecv].nmid = overlap.jsize;
plan->unpackplan[nrecv].nslow = overlap.ksize;
plan->unpackplan[nrecv].nstride_line = nqty*out.isize;
plan->unpackplan[nrecv].nstride_plane = nqty*out.jsize*out.isize;
plan->unpackplan[nrecv].nqty = nqty;
}
else if (permute == 1) {
plan->recv_offset[nrecv] = nqty *
((overlap.ilo-out.ilo)*out.ksize*out.jsize +
(overlap.klo-out.klo)*out.jsize + (overlap.jlo-out.jlo));
plan->unpackplan[nrecv].nfast = overlap.isize;
plan->unpackplan[nrecv].nmid = overlap.jsize;
plan->unpackplan[nrecv].nslow = overlap.ksize;
plan->unpackplan[nrecv].nstride_line = nqty*out.jsize;
plan->unpackplan[nrecv].nstride_plane = nqty*out.ksize*out.jsize;
plan->unpackplan[nrecv].nqty = nqty;
}
else {
plan->recv_offset[nrecv] = nqty *
((overlap.jlo-out.jlo)*out.isize*out.ksize +
(overlap.ilo-out.ilo)*out.ksize + (overlap.klo-out.klo));
plan->unpackplan[nrecv].nfast = overlap.isize;
plan->unpackplan[nrecv].nmid = overlap.jsize;
plan->unpackplan[nrecv].nslow = overlap.ksize;
plan->unpackplan[nrecv].nstride_line = nqty*out.ksize;
plan->unpackplan[nrecv].nstride_plane = nqty*out.isize*out.ksize;
plan->unpackplan[nrecv].nqty = nqty;
}
plan->recv_size[nrecv] = nqty*overlap.isize*overlap.jsize*overlap.ksize;
ibuf += plan->recv_size[nrecv];
nrecv++;
}
}
// plan->nrecv = # of recvs not including self
if (nrecv && plan->recv_proc[nrecv-1] == me) plan->nrecv = nrecv - 1;
else plan->nrecv = nrecv;
// init remaining fields in remap plan
plan->memory = memory;
if (nrecv == plan->nrecv) plan->self = 0;
else plan->self = 1;
// the plan->d_sendbuf and plan->d_recvbuf are used by both the
// collective & non-collective implementations.
// For non-collective, the buffer size is MAX(send_size) for any one send
// find biggest send message (not including self) and malloc space for it
size = 0;
for (nsend = 0; nsend < plan->nsend; nsend++)
size = MAX(size,plan->send_size[nsend]);
if (size) {
plan->d_sendbuf = typename FFT_AT::t_FFT_SCALAR_1d("remap3d:sendbuf",size);
if (!plan->d_sendbuf.data()) return nullptr;
}
// if requested, allocate internal scratch space for recvs,
// only need it if I will receive any data (including self)
if (memory == 1) {
if (nrecv > 0) {
plan->d_scratch =
typename FFT_AT::t_FFT_SCALAR_1d("remap3d:scratch",nqty*out.isize*out.jsize*out.ksize);
if (!plan->d_scratch.data()) return nullptr;
}
}
// Non-collectives do not use MPI Communicator Groups
MPI_Comm_dup(comm,&plan->comm);
} else {
// Improved approach - use an AllReduce to aggregate which ranks need to be included
// To do this, we build the local proc's send/receive list, then do an AllReduce
// to create the send/recv count for the Alltoallv
// local arrays to be used in the allreduce
// start with max length -- nprocs. Unused entries will be removed later
int *local_cnts = (int*) malloc(2*nprocs*sizeof(int));
if (local_cnts == nullptr) return nullptr;
int *local_sendcnts = local_cnts;
int *local_recvcnts = (local_cnts + nprocs);
// local arrays used to store the results of the allreduce
int *global_cnts = (int*) malloc(2*nprocs*sizeof(int));
if (global_cnts == nullptr) return nullptr;
int *global_sendcnts = global_cnts;
int *global_recvcnts = (global_cnts + nprocs);
// count send & recv collides, including self
nsend = 0;
nrecv = 0;
for (i = 0; i < nprocs; i++) {
local_sendcnts[i] = remap_3d_collide(&in,&outarray[i],&overlap);
local_recvcnts[i] = remap_3d_collide(&out,&inarray[i],&overlap);
nsend += local_sendcnts[i];
nrecv += local_recvcnts[i];
}
// perform an AllReduce to get the counts from all other processors and build sendcnts list
MPI_Allreduce(local_cnts, global_cnts, 2*nprocs, MPI_INT, MPI_SUM, comm);
// now remove procs that are 0 in send or recv to create minimized sendcnts/recvcnts for AlltoAllv
// also builds commringlist -- which is already sorted
int *commringlist = (int*) malloc(nprocs * sizeof(int));
int commringlen = 0;
for (i = 0; i < nprocs; i++) {
if (global_sendcnts[i] > 0 || global_recvcnts[i] > 0) {
commringlist[commringlen] = i;
commringlen++;
}
}
// resize commringlist to final size
commringlist = (int *) realloc(commringlist, commringlen*sizeof(int));
// set the plan->commringlist
plan->commringlen = commringlen;
plan->commringlist = commringlist;
// clean up local buffers that are finished
local_sendcnts = nullptr;
local_recvcnts = nullptr;
global_recvcnts = nullptr;
global_sendcnts = nullptr;
free(local_cnts);
free(global_cnts);
// malloc space for send & recv info
// if the current proc is involved in any way in the communication, allocate space
// because of the Alltoallv, both send and recv have to be initialized even if
// only one of those is performed
if (nsend || nrecv) {
// send space
plan->selfcommringloc = -1;
plan->selfnsendloc = -1;
plan->selfnrecvloc = -1;
plan->nsend = nsend;
plan->pack = PackKokkos<DeviceType>::pack_3d;
plan->send_offset = (int *) malloc(nsend*sizeof(int));
plan->send_size = (int *) malloc(plan->commringlen*sizeof(int));
plan->sendcnts = (int *) malloc(plan->commringlen*sizeof(int));
plan->sdispls = (int *) malloc(plan->commringlen*sizeof(int));
// only used when sendcnt > 0
plan->packplan = (struct pack_plan_3d *)
malloc(nsend*sizeof(struct pack_plan_3d));
if (plan->send_offset == nullptr || plan->send_size == nullptr ||
plan->sendcnts == nullptr || plan->sdispls == nullptr ||
plan->packplan == nullptr) return nullptr;
// recv space
plan->nrecv = nrecv;
if (permute == 0)
plan->unpack = PackKokkos<DeviceType>::unpack_3d;
else if (permute == 1) {
if (nqty == 1)
plan->unpack = PackKokkos<DeviceType>::unpack_3d_permute1_1;
else if (nqty == 2)
plan->unpack = PackKokkos<DeviceType>::unpack_3d_permute1_2;
else
plan->unpack = PackKokkos<DeviceType>::unpack_3d_permute1_n;
}
else if (permute == 2) {
if (nqty == 1)
plan->unpack = PackKokkos<DeviceType>::unpack_3d_permute2_1;
else if (nqty == 2)
plan->unpack = PackKokkos<DeviceType>::unpack_3d_permute2_2;
else
plan->unpack = PackKokkos<DeviceType>::unpack_3d_permute2_n;
}
plan->recv_offset = (int *) malloc(nrecv*sizeof(int));
plan->recv_size = (int *) malloc(plan->commringlen*sizeof(int));
plan->rcvcnts = (int *) malloc(plan->commringlen*sizeof(int));
plan->rdispls = (int *) malloc(plan->commringlen*sizeof(int));
// only used when recvcnt > 0
plan->unpackplan = (struct pack_plan_3d *)
malloc(nrecv*sizeof(struct pack_plan_3d));
if (plan->recv_offset == nullptr || plan->recv_size == nullptr ||
plan->rcvcnts == nullptr || plan->rdispls == nullptr ||
plan->unpackplan == nullptr) return nullptr;
}
// store send info, with self as last entry
nsend = 0;
ibuf = 0;
int total_send_size = 0;
for (i = 0; i < plan->commringlen; i++) {
iproc = plan->commringlist[i];
if (iproc == me) {
plan->selfcommringloc = i;
plan->selfnsendloc = nsend;
}
if (remap_3d_collide(&in,&outarray[iproc],&overlap)) {
//plan->send_proc[nsend] = i;
// number of entries required for this pack's 3-d coords
plan->send_offset[nsend] = nqty *
((overlap.klo-in.klo)*in.jsize*in.isize +
((overlap.jlo-in.jlo)*in.isize + overlap.ilo-in.ilo));
plan->packplan[nsend].nfast = nqty*overlap.isize;
plan->packplan[nsend].nmid = overlap.jsize;
plan->packplan[nsend].nslow = overlap.ksize;
plan->packplan[nsend].nstride_line = nqty*in.isize;
plan->packplan[nsend].nstride_plane = nqty*in.jsize*in.isize;
plan->packplan[nsend].nqty = nqty;
// total amount of overlap
plan->send_size[i] = nqty*overlap.isize*overlap.jsize*overlap.ksize;
plan->sendcnts[i] = plan->send_size[i];
plan->sdispls[i] = ibuf;
ibuf += plan->send_size[i];
nsend++;
} else {
plan->send_size[i] = 0;
plan->sdispls[i] = ibuf;
plan->sendcnts[i] = 0;
}
total_send_size += plan->send_size[i];
}
if (total_send_size) {
plan->d_sendbuf = typename FFT_AT::t_FFT_SCALAR_1d("remap3d:sendbuf",total_send_size);
if (!plan->d_sendbuf.data()) return nullptr;
}
// store recv info, with self as last entry
ibuf = 0;
nrecv = 0;
for (i = 0; i < plan->commringlen; i++) {
iproc = plan->commringlist[i];
if (iproc == me) {
plan->selfnrecvloc = nrecv;
}
if (remap_3d_collide(&out,&inarray[iproc],&overlap)) {
if (permute == 0) {
plan->recv_offset[nrecv] = nqty *
((overlap.klo-out.klo)*out.jsize*out.isize +
(overlap.jlo-out.jlo)*out.isize + (overlap.ilo-out.ilo));
plan->unpackplan[nrecv].nfast = nqty*overlap.isize;
plan->unpackplan[nrecv].nmid = overlap.jsize;
plan->unpackplan[nrecv].nslow = overlap.ksize;
plan->unpackplan[nrecv].nstride_line = nqty*out.isize;
plan->unpackplan[nrecv].nstride_plane = nqty*out.jsize*out.isize;
plan->unpackplan[nrecv].nqty = nqty;
}
else if (permute == 1) {
plan->recv_offset[nrecv] = nqty *
((overlap.ilo-out.ilo)*out.ksize*out.jsize +
(overlap.klo-out.klo)*out.jsize + (overlap.jlo-out.jlo));
plan->unpackplan[nrecv].nfast = overlap.isize;
plan->unpackplan[nrecv].nmid = overlap.jsize;
plan->unpackplan[nrecv].nslow = overlap.ksize;
plan->unpackplan[nrecv].nstride_line = nqty*out.jsize;
plan->unpackplan[nrecv].nstride_plane = nqty*out.ksize*out.jsize;
plan->unpackplan[nrecv].nqty = nqty;
}
else {
plan->recv_offset[nrecv] = nqty *
((overlap.jlo-out.jlo)*out.isize*out.ksize +
(overlap.ilo-out.ilo)*out.ksize + (overlap.klo-out.klo));
plan->unpackplan[nrecv].nfast = overlap.isize;
plan->unpackplan[nrecv].nmid = overlap.jsize;
plan->unpackplan[nrecv].nslow = overlap.ksize;
plan->unpackplan[nrecv].nstride_line = nqty*out.ksize;
plan->unpackplan[nrecv].nstride_plane = nqty*out.isize*out.ksize;
plan->unpackplan[nrecv].nqty = nqty;
}
plan->recv_size[i] = nqty*overlap.isize*overlap.jsize*overlap.ksize;
plan->rcvcnts[i] = plan->recv_size[i];
plan->rdispls[i] = ibuf;
ibuf += plan->recv_size[i];
nrecv++;
} else {
plan->recv_size[i] = 0;
plan->rcvcnts[i] = 0;
plan->rdispls[i] = ibuf;
}
}
// init remaining fields in remap plan
plan->memory = memory;
if (plan->sendcnts[plan->selfcommringloc]) {
plan->self = 1;
plan->sendcnts[plan->selfcommringloc] = 0;
plan->rcvcnts[plan->selfcommringloc] = 0;
}
else {
plan->self = 0;
}
// if requested, allocate internal scratch space for recvs,
// only need it if I will receive any data (including self)
if (memory == 1) {
if (nrecv > 0) {
plan->d_scratch =
typename FFT_AT::t_FFT_SCALAR_1d("remap3d:scratch",nqty*out.isize*out.jsize*out.ksize);
if (!plan->d_scratch.data()) return nullptr;
}
}
// if using collective and the commringlist is NOT empty create a
// communicator for the plan based off an MPI_Group created with
// ranks from the commringlist
if (plan->commringlen > 0) {
MPI_Group orig_group, new_group;
MPI_Comm_group(comm, &orig_group);
MPI_Group_incl(orig_group, plan->commringlen,
plan->commringlist, &new_group);
MPI_Comm_create(comm, new_group, &plan->comm);
}
// if using collective and the comm ring list is empty create
// a communicator for the plan with an empty group
else
MPI_Comm_create(comm, MPI_GROUP_EMPTY, &plan->comm);
}
// plan->nrecv = # of recvs not including self
// for collectives include self in the nsend list
if (nrecv && plan->recv_proc[nrecv-1] == me) {
if (plan->usecollective) plan->nrecv = nrecv;
else plan->nrecv = nrecv - 1;
} else plan->nrecv = nrecv;
// init remaining fields in remap plan
plan->memory = memory;
if (nrecv == plan->nrecv) plan->self = 0;
else plan->self = 1;
// free locally malloced space
free(inarray);
free(outarray);
// find biggest send message (not including self) and malloc space for it
size = 0;
for (nsend = 0; nsend < plan->nsend; nsend++)
size = MAX(size,plan->send_size[nsend]);
if (size) {
plan->d_sendbuf = typename FFT_AT::t_FFT_SCALAR_1d("remap3d:sendbuf",size);
if (!plan->d_sendbuf.data()) return nullptr;
}
// if requested, allocate internal scratch space for recvs,
// only need it if I will receive any data (including self)
if (memory == 1) {
if (nrecv > 0) {
plan->d_scratch =
typename FFT_AT::t_FFT_SCALAR_1d("remap3d:scratch",nqty*out.isize*out.jsize*out.ksize);
if (!plan->d_scratch.data()) return nullptr;
}
}
// not using collective - dup comm
MPI_Comm_dup(comm,&plan->comm);
// return pointer to plan
return plan;
@ -500,22 +824,45 @@ void RemapKokkos<DeviceType>::remap_3d_destroy_plan_kokkos(struct remap_plan_3d_
if (!((plan->usecollective) && (plan->commringlen == 0)))
MPI_Comm_free(&plan->comm);
// free internal arrays
if (plan->usecollective) {
if (plan->commringlist != nullptr) {
free(plan->commringlist);
free(plan->sendcnts);
free(plan->rcvcnts);
free(plan->sdispls);
free(plan->rdispls);
}
if (plan->nsend || plan->self) {
free(plan->send_offset);
free(plan->send_size);
free(plan->send_proc);
free(plan->packplan);
}
if (plan->nsend) {
free(plan->send_offset);
free(plan->send_size);
free(plan->packplan);
}
if (plan->nrecv || plan->self) {
free(plan->recv_offset);
free(plan->recv_size);
free(plan->recv_proc);
free(plan->recv_bufloc);
free(plan->request);
free(plan->unpackplan);
if (plan->nrecv) {
free(plan->recv_offset);
free(plan->recv_size);
free(plan->unpackplan);
}
} else {
// free arrays used in pt2pt communication
if (plan->nsend || plan->self) {
free(plan->send_offset);
free(plan->send_size);
free(plan->send_proc);
free(plan->packplan);
}
if (plan->nrecv || plan->self) {
free(plan->recv_offset);
free(plan->recv_size);
free(plan->recv_proc);
free(plan->recv_bufloc);
free(plan->request);
free(plan->unpackplan);
}
}
// free plan itself

View File

@ -44,6 +44,7 @@ struct remap_plan_3d_kokkos {
int *recv_size; // size of each recv message
int *recv_proc; // proc to recv each message from
int *recv_bufloc; // offset in scratch buf for each recv
int *nrecvmap; // maps receive index to rank index
MPI_Request *request; // MPI request for each posted recv
struct pack_plan_3d *unpackplan; // unpack plan for each recv message
int nrecv; // # of recvs from other procs
@ -52,9 +53,17 @@ struct remap_plan_3d_kokkos {
int memory; // user provides scratch space or not
MPI_Comm comm; // group of procs performing remap
int usecollective; // use collective or point-to-point MPI
int usegpu_aware; // use GPU-Aware MPI or not
// variables for collective MPI only
int commringlen; // length of commringlist
int *commringlist; // ranks on communication ring of this plan
int usegpu_aware; // use GPU-Aware MPI or not
int *sendcnts; // # of elements in send buffer for each rank
int *rcvcnts; // # of elements in recv buffer for each rank
int *sdispls; // extraction location in send buffer for each rank
int *rdispls; // extraction location in recv buffer for each rank
int selfcommringloc; // current proc's location in commringlist
int selfnsendloc; // current proc's location in send lists
int selfnrecvloc; // current proc's location in recv lists
};
template<class DeviceType>

View File

@ -1384,15 +1384,20 @@ void PPPM::set_grid_local()
// npey_fft,npez_fft = # of procs in y,z dims
// if nprocs is small enough, proc can own 1 or more entire xy planes,
// else proc owns 2d sub-blocks of yz plane
// NOTE: commented out lines support this
// need to ensure fft3d.cpp and remap.cpp support 2D planes
// me_y,me_z = which proc (0-npe_fft-1) I am in y,z dimensions
// nlo_fft,nhi_fft = lower/upper limit of the section
// of the global FFT mesh that I own in x-pencil decomposition
int npey_fft,npez_fft;
if (nz_pppm >= nprocs) {
npey_fft = 1;
npez_fft = nprocs;
} else procs2grid2d(nprocs,ny_pppm,nz_pppm,&npey_fft,&npez_fft);
//if (nz_pppm >= nprocs) {
// npey_fft = 1;
// npez_fft = nprocs;
//} else procs2grid2d(nprocs,ny_pppm,nz_pppm,&npey_fft,&npez_fft);
procs2grid2d(nprocs,ny_pppm,nz_pppm,&npey_fft,&npez_fft);
int me_y = me % npey_fft;
int me_z = me / npey_fft;

View File

@ -27,8 +27,8 @@ namespace LAMMPS_NS {
class PairLeptonCoul : public PairLepton {
public:
PairLeptonCoul(class LAMMPS *_lmp) : PairLepton(_lmp){};
~PairLeptonCoul() override{};
PairLeptonCoul(class LAMMPS *_lmp) : PairLepton(_lmp) {};
~PairLeptonCoul() override {};
void compute(int, int) override;
void settings(int, char **) override;
void init_style() override;

View File

@ -27,7 +27,7 @@ namespace LAMMPS_NS {
class PairLeptonSphere : public PairLepton {
public:
PairLeptonSphere(class LAMMPS *_lmp) : PairLepton(_lmp){};
PairLeptonSphere(class LAMMPS *_lmp) : PairLepton(_lmp) {};
void compute(int, int) override;
void settings(int, char **) override;

View File

@ -57,18 +57,18 @@ class PairBOP : public Pair {
struct PairList1 {
double r, dis[3];
double betaS, dBetaS, betaP, dBetaP, rep, dRep;
PairList1(){};
PairList1() {};
};
struct PairList2 {
double r, dis[3];
double rep, dRep;
PairList2(){};
PairList2() {};
};
struct TripleList {
double G, dG, cosAng, dCosAngi[3], dCosAngj[3], dCosAngk[3];
TripleList(){};
TripleList() {};
};
struct B_SG {

View File

@ -197,16 +197,10 @@ class PairMEAMSpline : public Pair {
}
/// Returns the number of bytes used by this function object.
double memory_usage() const
{
return sizeof(*this) + sizeof(X[0]) * N * 3;
}
double memory_usage() const { return sizeof(*this) + sizeof(X[0]) * N * 3; }
/// Returns the cutoff radius of this function.
double cutoff() const
{
return X[N - 1];
}
double cutoff() const { return X[N - 1]; }
/// Writes a Gnuplot script that plots the spline function.
void writeGnuplot(const char *filename, const char *title = nullptr) const;

View File

@ -187,16 +187,10 @@ class PairMEAMSWSpline : public Pair {
}
/// Returns the number of bytes used by this function object.
double memory_usage() const
{
return sizeof(*this) + sizeof(X[0]) * N * 3;
}
double memory_usage() const { return sizeof(*this) + sizeof(X[0]) * N * 3; }
/// Returns the cutoff radius of this function.
double cutoff() const
{
return X[N - 1];
}
double cutoff() const { return X[N - 1]; }
/// Writes a Gnuplot script that plots the spline function.
void writeGnuplot(const char *filename, const char *title = nullptr) const;

View File

@ -49,7 +49,7 @@ class PairREBOMoS : public Pair {
int *REBO_numneigh; // # of pair neighbors for each atom
int **REBO_firstneigh; // ptr to 1st neighbor of each atom
double *nM, *nS; // sum of weighting fns with REBO neighs
double *nM, *nS; // sum of weighting fns with REBO neighs
double rcmin[2][2], rcmax[2][2], rcmaxsq[2][2], rcmaxp[2][2];
double Q[2][2], alpha[2][2], A[2][2], BIJc[2][2], Beta[2][2];

View File

@ -26,7 +26,7 @@ namespace LAMMPS_NS {
class PairTersoffMODC : public PairTersoffMOD {
public:
PairTersoffMODC(class LAMMPS *lmp) : PairTersoffMOD(lmp){};
PairTersoffMODC(class LAMMPS *lmp) : PairTersoffMOD(lmp) {};
static constexpr int NPARAMS_PER_LINE = 21;

View File

@ -55,7 +55,7 @@ class PairPACE : public Pair {
int nmax_corerep;
virtual void allocate();
double *corerep_factor; //per-atom core-rep factor (= 1 - fcut)
double *corerep_factor; //per-atom core-rep factor (= 1 - fcut)
int flag_corerep_factor;
double **scale;

View File

@ -43,8 +43,10 @@ class PairQUIP : public Pair {
double init_one(int, int) override;
void allocate();
void *extract(const char *, int &);
protected:
double scale;
private:
double cutoff;
int *quip_potential;

View File

@ -276,17 +276,17 @@ void AngleHarmonic::born_matrix(int type, int i1, int i2, int i3, double &du, do
double delx1 = x[i1][0] - x[i2][0];
double dely1 = x[i1][1] - x[i2][1];
double delz1 = x[i1][2] - x[i2][2];
domain->minimum_image(delx1,dely1,delz1);
double r1 = sqrt(delx1*delx1 + dely1*dely1 + delz1*delz1);
domain->minimum_image(delx1, dely1, delz1);
double r1 = sqrt(delx1 * delx1 + dely1 * dely1 + delz1 * delz1);
double delx2 = x[i3][0] - x[i2][0];
double dely2 = x[i3][1] - x[i2][1];
double delz2 = x[i3][2] - x[i2][2];
domain->minimum_image(delx2,dely2,delz2);
double r2 = sqrt(delx2*delx2 + dely2*dely2 + delz2*delz2);
domain->minimum_image(delx2, dely2, delz2);
double r2 = sqrt(delx2 * delx2 + dely2 * dely2 + delz2 * delz2);
double c = delx1*delx2 + dely1*dely2 + delz1*delz2;
c /= r1*r2;
double c = delx1 * delx2 + dely1 * dely2 + delz1 * delz2;
c /= r1 * r2;
if (c > 1.0) c = 1.0;
if (c < -1.0) c = -1.0;
double theta = acos(c);

View File

@ -326,8 +326,8 @@ void DihedralMultiHarmonic::write_data(FILE *fp)
/* ---------------------------------------------------------------------- */
void DihedralMultiHarmonic::born_matrix(int nd, int i1, int i2, int i3, int i4,
double &du, double &du2)
void DihedralMultiHarmonic::born_matrix(int nd, int i1, int i2, int i3, int i4, double &du,
double &du2)
{
double vb1x, vb1y, vb1z, vb2x, vb2y, vb2z, vb3x, vb3y, vb3z, vb2xm, vb2ym, vb2zm;
double sb1, sb3, rb1, rb3, c0, b1mag2, b1mag, b2mag2;

View File

@ -336,8 +336,7 @@ void DihedralOPLS::write_data(FILE *fp)
/* ----------------------------------------------------------------------*/
void DihedralOPLS::born_matrix(int nd, int i1, int i2, int i3, int i4,
double &du, double &du2)
void DihedralOPLS::born_matrix(int nd, int i1, int i2, int i3, int i4, double &du, double &du2)
{
double vb1x, vb1y, vb1z, vb2x, vb2y, vb2z, vb3x, vb3y, vb3z, vb2xm, vb2ym, vb2zm;
double sb1, sb3, rb1, rb3, c0, b1mag2, b1mag, b2mag2;
@ -425,9 +424,10 @@ void DihedralOPLS::born_matrix(int nd, int i1, int i2, int i3, int i4,
si = sin(phi);
if (fabs(si) < SMALLER) si = SMALLER;
du = k1[type] - 2.0 * k2[type] * sin(2.0 * phi) / si + 3.0 * k3[type] * sin(3.0 * phi) / si
- 4.0 * k4[type] * sin(4.0 * phi) / si;
du2 = (4.0 * k2[type] * si * cos(2.0 * phi) - 2.0 * k2[type] * sin(2.0 * phi)
- 9.0 * k3[type] * si * cos(3.0 * phi) + 3.0 * k3[type] * sin(3.0 * phi)
+ 16.0 * k4[type] * si * cos(4.0 * phi) - 4.0 * k4[type] * sin(4.0 * phi)) / (si * si * si);
du = k1[type] - 2.0 * k2[type] * sin(2.0 * phi) / si + 3.0 * k3[type] * sin(3.0 * phi) / si -
4.0 * k4[type] * sin(4.0 * phi) / si;
du2 = (4.0 * k2[type] * si * cos(2.0 * phi) - 2.0 * k2[type] * sin(2.0 * phi) -
9.0 * k3[type] * si * cos(3.0 * phi) + 3.0 * k3[type] * sin(3.0 * phi) +
16.0 * k4[type] * si * cos(4.0 * phi) - 4.0 * k4[type] * sin(4.0 * phi)) /
(si * si * si);
}

View File

@ -1,4 +1,4 @@
/* -*- c++ -*- ----------------------------------------------------------
/* -*- c++ -*- ----------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
https://www.lammps.org/, Sandia National Laboratories
LAMMPS development team: developers@lammps.org
@ -20,8 +20,8 @@ PairStyle(aip/water/2dm/opt,PairAIPWATER2DMOpt);
#ifndef LMP_PAIR_AIP_WATER_2DM_OPT_H
#define LMP_PAIR_AIP_WATER_2DM_OPT_H
#include "pair_ilp_graphene_hbn_opt.h"
#include "pair_aip_water_2dm.h"
#include "pair_ilp_graphene_hbn_opt.h"
namespace LAMMPS_NS {

View File

@ -35,8 +35,8 @@ class PairILPGrapheneHBNOpt : virtual public PairILPGrapheneHBN {
protected:
void update_internal_list();
template <int MAX_NNEIGH>
void calc_atom_normal(int i, int itype, int *ILP_neigh, int nneigh, double *normal, double (*dnormdri)[3],
double (*dnormdrk)[3][3]);
void calc_atom_normal(int i, int itype, int *ILP_neigh, int nneigh, double *normal,
double (*dnormdri)[3], double (*dnormdrk)[3][3]);
template <int MAX_NNEIGH, int EFLAG, int VFLAG_EITHER, int TAP_FLAG, int VARIANT = ILP_GrhBN>
void eval();
int *layered_neigh;
@ -51,7 +51,6 @@ class PairILPGrapheneHBNOpt : virtual public PairILPGrapheneHBN {
SAIP_BNCH,
WATER,
};
};
} // namespace LAMMPS_NS

View File

@ -53,6 +53,11 @@ lmpinstalledpkgs.h
lmpgitversion.h
mliap_model_python_couple.cpp
mliap_model_python_couple.h
# renamed in September 2024
group_ndx.cpp
group_ndx.h
ndx_group.cpp
ndx_group.h
# removed in August 2023
dump_atom_mpiio.cpp
dump_atom_mpiio.h

View File

@ -271,7 +271,7 @@ void FixQEq::allocate_matrix()
}
bigint m_cap_big = (bigint)MAX(m * safezone, mincap * MIN_NBRS);
if (m_cap_big > MAXSMALLINT)
error->one(FLERR,"Too many neighbors in fix qeq");
error->one(FLERR,"Too many neighbors in fix {}",style);
m_cap = m_cap_big;
H.n = n_cap;

View File

@ -363,7 +363,7 @@ void FixQEqReaxFF::allocate_matrix()
}
bigint m_cap_big = (bigint)MAX(m * safezone, mincap * REAX_MIN_NBRS);
if (m_cap_big > MAXSMALLINT)
error->one(FLERR,"Too many neighbors in fix qeq/reaxff");
error->one(FLERR,"Too many neighbors in fix {}",style);
m_cap = m_cap_big;
H.n = n_cap;

View File

@ -214,8 +214,10 @@ ComputeReduce::ComputeReduce(LAMMPS *lmp, int narg, char **arg) :
iarg += 2;
} else if (strcmp(arg[iarg], "inputs") == 0) {
if (iarg + 2 > narg) utils::missing_cmd_args(FLERR, mycmd + " inputs", error);
if (strcmp(arg[iarg+1], "peratom") == 0) input_mode = PERATOM;
else if (strcmp(arg[iarg+1], "local") == 0) input_mode = LOCAL;
if (strcmp(arg[iarg + 1], "peratom") == 0)
input_mode = PERATOM;
else if (strcmp(arg[iarg + 1], "local") == 0)
input_mode = LOCAL;
iarg += 2;
} else
error->all(FLERR, "Unknown compute {} keyword: {}", style, arg[iarg]);
@ -242,7 +244,7 @@ ComputeReduce::ComputeReduce(LAMMPS *lmp, int narg, char **arg) :
for (auto &val : values) {
if (val.which == ArgInfo::X || val.which == ArgInfo::V || val.which == ArgInfo::F) {
if (input_mode == LOCAL) error->all(FLERR,"Compute {} inputs must be all local");
if (input_mode == LOCAL) error->all(FLERR, "Compute {} inputs must be all local");
} else if (val.which == ArgInfo::COMPUTE) {
val.val.c = modify->get_compute_by_id(val.id);
@ -251,11 +253,14 @@ ComputeReduce::ComputeReduce(LAMMPS *lmp, int narg, char **arg) :
if (input_mode == PERATOM) {
if (!val.val.c->peratom_flag)
error->all(FLERR, "Compute {} compute {} does not calculate per-atom values", style, val.id);
error->all(FLERR, "Compute {} compute {} does not calculate per-atom values", style,
val.id);
if (val.argindex == 0 && val.val.c->size_peratom_cols != 0)
error->all(FLERR, "Compute {} compute {} does not calculate a per-atom vector", style, val.id);
error->all(FLERR, "Compute {} compute {} does not calculate a per-atom vector", style,
val.id);
if (val.argindex && val.val.c->size_peratom_cols == 0)
error->all(FLERR, "Compute {} compute {} does not calculate a per-atom array", style, val.id);
error->all(FLERR, "Compute {} compute {} does not calculate a per-atom array", style,
val.id);
if (val.argindex && val.argindex > val.val.c->size_peratom_cols)
error->all(FLERR, "Compute {} compute {} array is accessed out-of-range", style, val.id);
@ -263,9 +268,11 @@ ComputeReduce::ComputeReduce(LAMMPS *lmp, int narg, char **arg) :
if (!val.val.c->local_flag)
error->all(FLERR, "Compute {} compute {} does not calculate local values", style, val.id);
if (val.argindex == 0 && val.val.c->size_local_cols != 0)
error->all(FLERR, "Compute {} compute {} does not calculate a local vector", style, val.id);
error->all(FLERR, "Compute {} compute {} does not calculate a local vector", style,
val.id);
if (val.argindex && val.val.c->size_local_cols == 0)
error->all(FLERR, "Compute {} compute {} does not calculate a local array", style, val.id);
error->all(FLERR, "Compute {} compute {} does not calculate a local array", style,
val.id);
if (val.argindex && val.argindex > val.val.c->size_local_cols)
error->all(FLERR, "Compute {} compute {} array is accessed out-of-range", style, val.id);
}
@ -278,7 +285,8 @@ ComputeReduce::ComputeReduce(LAMMPS *lmp, int narg, char **arg) :
if (!val.val.f->peratom_flag)
error->all(FLERR, "Compute {} fix {} does not calculate per-atom values", style, val.id);
if (val.argindex == 0 && (val.val.f->size_peratom_cols != 0))
error->all(FLERR, "Compute {} fix {} does not calculate a per-atom vector", style, val.id);
error->all(FLERR, "Compute {} fix {} does not calculate a per-atom vector", style,
val.id);
if (val.argindex && (val.val.f->size_peratom_cols == 0))
error->all(FLERR, "Compute {} fix {} does not calculate a per-atom array", style, val.id);
if (val.argindex && (val.argindex > val.val.f->size_peratom_cols))
@ -296,7 +304,7 @@ ComputeReduce::ComputeReduce(LAMMPS *lmp, int narg, char **arg) :
}
} else if (val.which == ArgInfo::VARIABLE) {
if (input_mode == LOCAL) error->all(FLERR,"Compute {} inputs must be all local");
if (input_mode == LOCAL) error->all(FLERR, "Compute {} inputs must be all local");
val.val.v = input->variable->find(val.id.c_str());
if (val.val.v < 0)
error->all(FLERR, "Variable name {} for compute {} does not exist", val.id, style);
@ -417,7 +425,8 @@ void ComputeReduce::compute_vector()
} else if (mode == MINN) {
if (!replace) {
for (int m = 0; m < nvalues; m++)
MPI_Allreduce(&onevec[m], &vector[m], 1, MPI_DOUBLE, this->scalar_reduction_operation, world);
MPI_Allreduce(&onevec[m], &vector[m], 1, MPI_DOUBLE, this->scalar_reduction_operation,
world);
} else {
for (int m = 0; m < nvalues; m++)
@ -437,7 +446,8 @@ void ComputeReduce::compute_vector()
} else if (mode == MAXX) {
if (!replace) {
for (int m = 0; m < nvalues; m++)
MPI_Allreduce(&onevec[m], &vector[m], 1, MPI_DOUBLE, this->scalar_reduction_operation, world);
MPI_Allreduce(&onevec[m], &vector[m], 1, MPI_DOUBLE, this->scalar_reduction_operation,
world);
} else {
for (int m = 0; m < nvalues; m++)

View File

@ -114,7 +114,8 @@ FixEfield::FixEfield(LAMMPS *lmp, int narg, char **arg) :
}
if (estr && pstr)
error->all(FLERR, "Must not use energy and potential keywords at the same time with fix efield");
error->all(FLERR,
"Must not use energy and potential keywords at the same time with fix efield");
force_flag = 0;
fsum[0] = fsum[1] = fsum[2] = fsum[3] = 0.0;
@ -171,7 +172,8 @@ void FixEfield::init()
if (xstr) {
xvar = input->variable->find(xstr);
if (xvar < 0) error->all(FLERR, "Variable {} for x-field in fix {} does not exist", xstr, style);
if (xvar < 0)
error->all(FLERR, "Variable {} for x-field in fix {} does not exist", xstr, style);
if (input->variable->equalstyle(xvar))
xstyle = EQUAL;
else if (input->variable->atomstyle(xvar))
@ -182,7 +184,8 @@ void FixEfield::init()
if (ystr) {
yvar = input->variable->find(ystr);
if (yvar < 0) error->all(FLERR, "Variable {} for y-field in fix {} does not exist", ystr, style);
if (yvar < 0)
error->all(FLERR, "Variable {} for y-field in fix {} does not exist", ystr, style);
if (input->variable->equalstyle(yvar))
ystyle = EQUAL;
else if (input->variable->atomstyle(yvar))
@ -193,7 +196,8 @@ void FixEfield::init()
if (zstr) {
zvar = input->variable->find(zstr);
if (zvar < 0) error->all(FLERR, "Variable {} for z-field in fix {} does not exist", zstr, style);
if (zvar < 0)
error->all(FLERR, "Variable {} for z-field in fix {} does not exist", zstr, style);
if (input->variable->equalstyle(zvar))
zstyle = EQUAL;
else if (input->variable->atomstyle(zvar))
@ -213,7 +217,8 @@ void FixEfield::init()
if (pstr) {
pvar = input->variable->find(pstr);
if (pvar < 0) error->all(FLERR, "Variable {} for potential in fix {} does not exist", pstr, style);
if (pvar < 0)
error->all(FLERR, "Variable {} for potential in fix {} does not exist", pstr, style);
if (input->variable->atomstyle(pvar))
pstyle = ATOM;
else
@ -244,8 +249,10 @@ void FixEfield::init()
error->all(FLERR, "Cannot use variable energy with constant efield in fix {}", style);
if (varflag == CONSTANT && pstyle != NONE)
error->all(FLERR, "Cannot use variable potential with constant efield in fix {}", style);
if ((varflag == EQUAL || varflag == ATOM) && update->whichflag == 2 && estyle == NONE && pstyle == NONE)
error->all(FLERR, "Must use variable energy or potential with fix {} during minimization", style);
if ((varflag == EQUAL || varflag == ATOM) && update->whichflag == 2 && estyle == NONE &&
pstyle == NONE)
error->all(FLERR, "Must use variable energy or potential with fix {} during minimization",
style);
if (utils::strmatch(update->integrate_style, "^respa")) {
ilevel_respa = (dynamic_cast<Respa *>(update->integrate))->nlevels - 1;
@ -403,8 +410,10 @@ void FixEfield::post_force(int vflag)
}
f[i][2] += fz;
fsum[3] += fz;
if (pstyle == ATOM) fsum[0] += qe2f * q[i] * efield[i][3];
else if (estyle == ATOM) fsum[0] += efield[i][3];
if (pstyle == ATOM)
fsum[0] += qe2f * q[i] * efield[i][3];
else if (estyle == ATOM)
fsum[0] += efield[i][3];
}
}
@ -504,8 +513,10 @@ void FixEfield::update_efield_variables()
} else if (zstyle == ATOM) {
input->variable->compute_atom(zvar, igroup, &efield[0][2], 4, 0);
}
if (pstyle == ATOM) input->variable->compute_atom(pvar, igroup, &efield[0][3], 4, 0);
else if (estyle == ATOM) input->variable->compute_atom(evar, igroup, &efield[0][3], 4, 0);
if (pstyle == ATOM)
input->variable->compute_atom(pvar, igroup, &efield[0][3], 4, 0);
else if (estyle == ATOM)
input->variable->compute_atom(evar, igroup, &efield[0][3], 4, 0);
modify->addstep_compute(update->ntimestep + 1);
}

View File

@ -1,5 +1,5 @@
The script `run_tests.py` in this folder is used to perform regression tests
using in-place example scripts.
using in-place example scripts and provided log files as reference.
What this single script does is to launch the selected LAMMPS binary
using a testing configuration defined in a `.yaml` file (e.g., `config.yaml`)
@ -19,60 +19,88 @@ within the specified tolerances in the test configuration `config.yaml` file.
With the current features, users can:
+ specify which LAMMPS binary version to test (e.g., the version from a commit, or those from `lammps-testing`)
+ specify the examples subfolders (thus the reference log files) seperately (e.g. from other LAMMPS versions or commits)
+ specify tolerances for individual quantities for any input script to override the global values
+ launch tests with `mpirun` with all supported command line features (multiple procs, multiple paritions, and suffices)
+ skip certain input files if not interested, or no reference log file exists
+ simplify the main LAMMPS builds, as long as a LAMMPS binary is available
+ specify the examples subfolders (thus the reference log files) seperately (e.g. from other LAMMPS versions or commits), or
+ specify a file that lists of the examples input scripts to test
+ specify tolerances for individual quantities for any input script to override the global values in the config file
+ launch tests with `mpirun` with all supported command line features (multiple procs, multiple paritions, and suffixes)
+ skip certain input files (whose names match specified patterns) if not interested, or packaged not installed, or no reference log file exists
+ set a timeout for every input script run if they may take too long
+ skip numerical checks if the goal is just to check if the runs do not fail
Some benefits include:
+ separating regression testing from building LAMMPS
+ performing quick and full regression tests
+ keeping track of the testing progress to resume the testing from the last checkpoint (skipping completed runs)
+ distributing the input list across multiple processes by
splitting the list of input scripts into separate runs (there are ~800 input scripts under the top-level examples)
Input arguments:
+ the path to a LAMMPS binary (can be relative to the working directory)
+ a test configuration file (see tools/regression-tests/config.yaml for an example)
+ a text file that lists of folders where the input scripts reside and how many of them line by line, or
a text file that list of input scripts, or
the path to the top-level examples
Output:
+ failure.yaml : a dictionary of the failed runs and reasons
+ progress.yaml: full testing results of the tested input scripts with the status (completed, failed or skipped)
with error messages (for failed runs), and walltime (in seconds)
+ output.xml : testing results in the JUnit XML format
+ run.log : screen output and error of individual runs
Limitations:
- input scripts use thermo style multi (e.g., examples/peptide) do not work with the expected thermo output format
- input scripts that require partition runs (e.g. examples/neb) need a separate config file, e.g. "args: --partition 2x1"
- testing accelerator packages (GPU, INTEL, KOKKOS, OPENMP) need separate config files, "args: -sf omp -pk omp 4"
TODO:
+ keep track of the testing progress to resume the testing from the last checkpoint
+ distribute the input list across multiple processes via multiprocessing, or
split the list of input scripts into separate runs (there are 800+ input script under the top-level examples)
+ be able to be invoked from run_tests in the lammps-testing infrastruture
+ input scripts use thermo style multi (e.g., examples/peptide) do not work with the expected thermo output format
+ input scripts that require partition runs (e.g. examples/neb) need a separate config file, e.g., args: "--partition 3x1"
+ testing with accelerator packages (GPU, INTEL, KOKKOS, OPENMP) need separate config files, e.g., args: "-sf omp -pk omp 4"
The following Python packages need to be installed into an activated environment:
python3 -m venv testing-env
source testing-env/bin/activate
pip install numpy pyyaml junit_xml
For all the supported arguments, run:
Example uses:
python3 tools/regression-tests/run_tests.py -h
Example uses (aka, tests for this script):
1) Simple use (using the provided tools/regression-tests/config.yaml and the examples/ folder at the top level)
python3 run_tests.py --lmp-bin=/path/to/lmp_binary
python3 run_tests.py --lmp-bin=build/lmp --config-file=tools/regression-tests/config.yaml
2) Use a custom testing configuration
python3 run_tests.py --lmp-bin=/path/to/lmp_binary --config-file=/path/to/config/file/config.yaml
3) Specify a list of example folders
python3 run_tests.py --lmp-bin=/path/to/lmp_binary --config-file=/path/to/config/file/config.yaml \
--example-folders="/path/to/examples/folder1;/path/to/examples/folder2"
--example-folders="/path/to/examples/melt;/path/to/examples/rigid"
The example folders can also be loaded from a text file list_subfolders1.txt:
The example subfolders can also be loaded from a text file list_subfolders1.txt:
python3 run_tests.py --lmp-bin=/path/to/lmp_binary --config-file=/path/to/config/file/config.yaml \
--list-input=list_subfolders1.txt --output-file=output1.txt --progress-file=progress1.yaml \
--list-subfolders=list_subfolders1.txt --output-file=output1.txt --progress-file=progress1.yaml \
--log-file=run1.log
4) Test a LAMMPS binary with the whole top-level /examples folder in a LAMMPS source tree
python3 run_tests.py --lmp-bin=/path/to/lmp_binary --examples-top-level=/path/to/lammps/examples
5) Analyze (dry run) the LAMMPS binary annd whole top-level /examples folder in a LAMMPS source tree
4) Specify a list of example input scripts (e.g. obtained from running tools/regression-tests/get-quick-list.py)
python3 run_tests.py --lmp-bin=/path/to/lmp_binary --config-file=/path/to/config/file/config.yaml \
--list-input=input_list.txt
5) Test a LAMMPS binary with the whole top-level /examples folder in a LAMMPS source tree
python3 run_tests.py --lmp-bin=/path/to/lmp_binary --examples-top-level=/path/to/lammps/examples
--config-file=tools/regression-tests/config.yaml
6) Analyze the LAMMPS binary and whole top-level /examples folder in a LAMMPS source tree
and generate separate input lists for 8 workers:
python3 run_tests.py --lmp-bin=/path/to/lmp_binary --examples-top-level=/path/to/lammps/examples \
--dry-run --num-workers=8
--analyze --num-workers=8
This is used for splitting the subfolders into separate input lists and launching different instances
of run_tests.py simultaneously.
The output of this run is 8 files folder-list-[0-7].txt that lists the subfolders
and 8 files input-list-[0-7].txt that lists the input scripts under the top-level example folders.
With these lists, one can launch multiple instances of run_tests.py simultaneously
each with a list of example subfolders (Case 3), or with a list of input scripts (Case 4).
An example of the test configuration `config.yaml` is given as below.
@ -107,17 +135,31 @@ An example of the test configuration `config.yaml` is given as below.
abs: 1e-2
rel: 1e-4
skip:
[ in.rigid.poems3,
in.rigid.poems4,
in.rigid.poems5,
[ in.displ,
in.displ2,
in.*_imd*,
]
nugget: 1.0
epsilon: 1e-16
timeout: 180
An example of the list of input scripts in a text file `list_subfolders1.txt`
An example of the list of example subfolders in a text file `list_subfolders1.txt`
/home/codes/lammps/examples/melt 1
/home/codes/lammps/examples/body 5
/home/codes/lammps/examples/PACKAGES/dielectric 2
/home/codes/lammps/examples/PACKAGES/tally 3
where the numbers are the number of input scripts (in.*) in the folders.
An example of the list of input scripts in a text file `input_list.txt`
/home/codes/lammps/examples/melt/in.melt
/home/codes/lammps/examples/body/in.body
/home/codes/lammps/examples/body/in.cubes
/home/codes/lammps/examples/PACKAGES/dielectric/in.confined
/home/codes/lammps/examples/PACKAGES/tally/in.pe
/home/codes/lammps/examples/PACKAGES/tally/in.force
/home/codes/lammps/examples/melt
/home/codes/lammps/examples/body
/home/codes/lammps/examples/PACKAGES/dielectric
/home/codes/lammps/examples/PACKAGES/tally

View File

@ -3,7 +3,7 @@
nprocs: "4"
args: "-cite none"
mpiexec: "mpirun"
mpiexec_numproc_flag: "-np"
mpiexec_numproc_flag: "--host localhost:4 -np"
tolerance:
PotEng:
abs: 1e-4
@ -29,13 +29,10 @@
abs: 1e-2
rel: 1e-4
skip:
[ in.rigid.poems3,
in.rigid.poems4,
in.rigid.poems5,
in.peptide,
in.voronoi,
in.voronoi.2d,
in.voronoi.data,
[
in.disp,
in.disp2,
in.dos,
in.*_imd*,
in.bucky-plus-cnt*,
]

View File

@ -0,0 +1,44 @@
---
lmp_binary: ""
nprocs: "1"
args: "-cite none"
mpiexec: ""
mpiexec_numproc_flag: ""
tolerance:
PotEng:
abs: 1e-4
rel: 1e-7
TotEng:
abs: 1e-4
rel: 1e-7
Press:
abs: 1e-4
rel: 1e-7
Temp:
abs: 1e-4
rel: 1e-7
E_vdwl:
abs: 1e-3
rel: 1e-7
overrides:
in.rigid.tnr:
Temp:
abs: 1e-3
rel: 1e-5
Press:
abs: 1e-2
rel: 1e-4
skip:
[
in.disp,
in.disp2,
in.dos,
in.*_imd*,
in.bucky-plus-cnt*,
]
timeout: 30
nugget: 1.0
epsilon: 1e-16

View File

@ -0,0 +1,44 @@
---
lmp_binary: ""
nprocs: "1"
args: "-cite none"
mpiexec: ""
mpiexec_numproc_flag: ""
tolerance:
PotEng:
abs: 1e-4
rel: 1e-7
TotEng:
abs: 1e-4
rel: 1e-7
Press:
abs: 1e-4
rel: 1e-7
Temp:
abs: 1e-4
rel: 1e-7
E_vdwl:
abs: 1e-3
rel: 1e-7
overrides:
in.rigid.tnr:
Temp:
abs: 1e-3
rel: 1e-5
Press:
abs: 1e-2
rel: 1e-4
skip:
[
in.disp,
in.disp2,
in.dos,
in.*_imd*,
in.bucky-plus-cnt*,
]
timeout: 180
nugget: 1.0
epsilon: 1e-16

View File

@ -0,0 +1,281 @@
#!/usr/bin/env python3
"""
Find all example input files containing commands changed in this branch versus develop.
Companion script to run_tests.py regression tester.
"""
import os, re, sys, subprocess
from pathlib import Path
if sys.version_info < (3,5):
raise BaseException("Must use at least Python 3.5")
# infer top level LAMMPS dir from filename
LAMMPS_DIR = os.path.realpath(os.path.join(os.path.dirname(__file__), '..', '..'))
# ----------------------------------------------------------------------
def changed_files_from_git(branch='develop'):
"""
Return list of changed file from git.
This function queries git to return the list of changed files on
the current branch relative to a given branch (default is 'develop').
param branch: branch to compare with
type branch: string
return: path names of files with changes relative to the repository root
rtype: list of strings
"""
# get list of changed files relative to the develop branch from git
output = None
try:
output = subprocess.run('git diff --diff-filter=MA --name-status ' + branch,
shell=True, capture_output=True)
except:
pass
# collect header files to check for styles
# - skip files that don't end in '.h' or '.cpp'
# - skip paths that don't start with 'src/'
# - replace '.cpp' with '.h' w/o checking it exists
headers = []
# output will have a letter 'A' or 'M' for added or modified files followed by pathname
# append iterms to list and return it
if output:
for changed in output.stdout.decode().split():
if (changed == 'A') or (changed == 'M'): continue
if not changed.startswith('src/'): continue
if changed.endswith('.h'): headers.append(changed)
if changed.endswith('.cpp'): headers.append(changed.replace('.cpp','.h'))
return headers
# ----------------------------------------------------------------------
def get_command_from_header(headers, topdir="."):
"""
Loop over list of header files and extract style names, if present.
LAMMPS commands have macros XxxxStyle() that connects a string with a class.
We search the header files for those macros, extract the string and append
it to a list in a dictionary of different types of styles. We skip over known
suffixes and deprecated commands.
param headers: header files to check for commands
type headers:
return: dictionary with lists of style names
rtype: dict
"""
styles = {}
styles['command'] = []
styles['atom'] = []
styles['compute'] = []
styles['fix'] = []
styles['pair'] = []
styles['body'] = []
styles['bond'] = []
styles['angle'] = []
styles['dihedral'] = []
styles['improper'] = []
styles['kspace'] = []
styles['dump'] = []
styles['region'] = []
styles['integrate'] = []
styles['minimize'] = []
# some regex
style_pattern = re.compile(r"(.+)Style\((.+),(.+)\)")
upper = re.compile("[A-Z]+")
gpu = re.compile("(.+)/gpu$")
intel = re.compile("(.+)/intel$")
kokkos = re.compile("(.+)/kk$")
kokkos_skip = re.compile("(.+)/kk/(host|device)$")
omp = re.compile("(.+)/omp$")
opt = re.compile("(.+)/opt$")
removed = re.compile("(.*)Deprecated$")
for file in headers:
# don't fail if file is not present
try:
with open(os.path.join(topdir,file)) as f:
for line in f:
matches = style_pattern.findall(line)
for m in matches:
# skip over internal styles w/o explicit documentation
style = m[1]
if upper.match(style):
continue
# skip over suffix styles:
suffix = kokkos_skip.match(style)
if suffix:
continue
suffix = gpu.match(style)
if suffix:
continue
suffix = intel.match(style)
if suffix:
continue
suffix = kokkos.match(style)
if suffix:
continue
suffix = omp.match(style)
if suffix:
continue
suffix = opt.match(style)
if suffix:
continue
deprecated = removed.match(m[2])
if deprecated:
continue
# register style and suffix flags
if m[0] == 'Angle':
styles['angle'].append(style)
elif m[0] == 'Atom':
styles['atom'].append(style)
elif m[0] == 'Body':
styles['body'].append(style)
elif m[0] == 'Bond':
styles['bond'].applend(style)
elif m[0] == 'Command':
styles['command'].append(style)
elif m[0] == 'Compute':
styles['compute'].append(style)
elif m[0] == 'Dihedral':
styles['dihedral'].append(style)
elif m[0] == 'Dump':
styles['dump'].append(style)
elif m[0] == 'Fix':
styles['fix'].append(style)
elif m[0] == 'Improper':
styles['improper'].append(style)
elif m[0] == 'Integrate':
styles['integrate'].append(style)
elif m[0] == 'KSpace':
styles['kspace'].append(style)
elif m[0] == 'Minimize':
styles['minimize'].append(style)
elif m[0] == 'Pair':
styles['pair'].append(style)
elif m[0] == 'Region':
styles['region'].append(style)
else:
pass
# header file not found or not readable
except:
pass
return styles
# ----------------------------------------------------------------------
def make_regex(styles):
"""Convert dictionary with styles into a regular expression to scan input files with
This will construct a regular expression matching LAMMPS commands. Ignores continuation
param styles: dictionary with style names
type styles: dict
return: combined regular expression string
rtype: string
"""
restring = "^\\s*("
if len(styles['command']):
restring += '(' + '|'.join(styles['command']) + ')|'
if len(styles['atom']):
restring += '(atom_style\\s+(' + '|'.join(styles['atom']) + '))|'
if len(styles['compute']):
restring += '(compute\\s+\\S+\\s+\\S+\\s+(' + '|'.join(styles['compute']) + '))|'
if len(styles['fix']):
restring += '(fix\\s+\\S+\\s+\\S+\\s+(' + '|'.join(styles['fix']) + '))|'
if len(styles['pair']):
restring += '(pair_style\\s+(' + '|'.join(styles['pair']) + '))|'
if len(styles['body']):
restring += '(atom_style\\s+body\\s+(' + '|'.join(styles['body']) + '))|'
if len(styles['bond']):
restring += '(bond_style\\s+(' + '|'.join(styles['bond']) + '))|'
if len(styles['angle']):
restring += '(angle_style\\s+(' + '|'.join(styles['angle']) + '))|'
if len(styles['dihedral']):
restring += '(dihedral_style\\s+(' + '|'.join(styles['dihedral']) + '))|'
if len(styles['improper']):
restring += '(improper_style\\s+(' + '|'.join(styles['improper']) + '))|'
if len(styles['kspace']):
restring += '(kspace_style\\s+(' + '|'.join(styles['kspace']) + '))|'
if len(styles['dump']):
restring += '(dump\\s+\\S+\\s+\\S+\\s+(' + '|'.join(styles['dump']) + '))|'
if len(styles['region']):
restring += '(region\\s+(' + '|'.join(styles['region']) + '))|'
if len(styles['integrate']):
restring += '(run_style\\s+(' + '|'.join(styles['integrate']) + '))|'
if len(styles['minimize']):
restring += '(min_style\\s+(' + '|'.join(styles['minimize']) + '))|'
# replace last (pipe) character with closing parenthesis
length = len(restring)
restring = restring[:length-1] + ')'
# return combined regex string
if length > 5:
return restring
else:
return None
# ----------------------------------------------------------------------
def get_examples_using_styles(regex, examples='examples'):
"""
Loop through LAMMPS examples tree and find all files staring with 'in.'
that have at least one line matching the regex.
param regex: string pattern matching LAMMPS commands
type regex: compiled regex
param example: path where to start looking for examples recursively
type example: string
return: list of matching example inputs
rtype: list of strings
"""
commands = re.compile(regex)
inputs = []
for filename in Path(examples).rglob('in.*'):
with open(filename) as f:
for line in f:
if commands.match(line):
inputs.append(str(filename))
break
return inputs
# ----------------------------------------------------------------------
# ----------------------------------------------------------------------
if __name__ == "__main__":
headers = changed_files_from_git('origin/develop')
styles = get_command_from_header(headers, LAMMPS_DIR)
regex = make_regex(styles)
if regex:
inputs = get_examples_using_styles(regex, os.path.join(LAMMPS_DIR,'examples'))
else:
inputs = []
print("Found changes to the following styles:")
print("Commands: ", styles['command'])
print("Atom styles: ", styles['atom'])
print("Compute styles: ", styles['compute'])
print("Fix styles: ", styles['fix'])
print("Pair styles: ", styles['pair'])
print("Body styles: ", styles['body'])
print("Bond styles: ", styles['bond'])
print("Angle styles: ", styles['angle'])
print("Dihedral styles: ", styles['dihedral'])
print("Improper styles: ", styles['improper'])
print("Kspace styles: ", styles['kspace'])
print("Dump styles: ", styles['dump'])
print("Region styles: ", styles['region'])
print("Integrate styles: ", styles['integrate'])
print("Minimize styles: ", styles['minimize'])
print("Example input files affected: ", len(inputs))
print("inputs: ", inputs.sort())

View File

@ -0,0 +1,932 @@
in.granregion.box: { folder: examples/granregion, status: "completed", failed_checks: { abs_diff_failed: 5, rel_diff_failed: 8 }, walltime: 0.0, walltime_norm: 0.0 }
in.granregion.funnel: { folder: examples/granregion, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 106.0, walltime_norm: 17.666666666666668 }
in.granregion.mixer: { folder: examples/granregion, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 84.0, walltime_norm: 14.0 }
in.melt: { folder: examples/melt, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.airebo: { folder: examples/airebo, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 60.0, walltime_norm: 10.0 }
in.airebo-0-0: { folder: examples/airebo, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 5.0, walltime_norm: 0.8333333333333334 }
in.airebo-m: { folder: examples/airebo, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 63.0, walltime_norm: 10.5 }
in.rebo2: { folder: examples/airebo, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 5.0, walltime_norm: 0.8333333333333334 }
in.hybrid: { folder: examples/template, status: "completed", failed_checks: { abs_diff_failed: 3, rel_diff_failed: 3 }, walltime: 7.0, walltime_norm: 1.1666666666666667 }
in.mol-data-mix: { folder: examples/template, status: "completed", failed_checks: { abs_diff_failed: 3, rel_diff_failed: 3 }, walltime: 18.0, walltime_norm: 3.0 }
in.mol-restart-mix: { folder: examples/template, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 45.0, walltime_norm: 7.5 }
in.molecular-mix: { folder: examples/template, status: "completed", failed_checks: { abs_diff_failed: 5, rel_diff_failed: 5 }, walltime: 26.0, walltime_norm: 4.333333333333333 }
in.template-mix: { folder: examples/template, status: "completed", failed_checks: { abs_diff_failed: 5, rel_diff_failed: 5 }, walltime: 26.0, walltime_norm: 4.333333333333333 }
in.tmpl-data-mix: { folder: examples/template, status: "completed", failed_checks: { abs_diff_failed: 3, rel_diff_failed: 3 }, walltime: 18.0, walltime_norm: 3.0 }
in.tmpl-restart-mix: { folder: examples/template, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 45.0, walltime_norm: 7.5 }
in.first: { folder: examples/rerun, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 16.0, walltime_norm: 2.6666666666666665 }
in.rdf.first: { folder: examples/rerun, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 16.0, walltime_norm: 2.6666666666666665 }
in.rdf.rerun: { folder: examples/rerun, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 5.0, walltime_norm: 0.8333333333333334 }
in.read_dump: { folder: examples/rerun, status: "failed, no Total wall time in the output, --------------------------------------------------------------------------
MPI_ABORT was invoked on rank 0 in communicator MPI_COMM_WORLD
with errorcode 1.
NOTE: invoking MPI_ABORT causes Open MPI to kill all MPI processes.
You may or may not see output from other processes, depending on
exactly when Open MPI kills them.
--------------------------------------------------------------------------
", walltime: -1 }
in.rerun: { folder: examples/rerun, status: "failed, no Total wall time in the output, --------------------------------------------------------------------------
MPI_ABORT was invoked on rank 0 in communicator MPI_COMM_WORLD
with errorcode 1.
NOTE: invoking MPI_ABORT causes Open MPI to kill all MPI processes.
You may or may not see output from other processes, depending on
exactly when Open MPI kills them.
--------------------------------------------------------------------------
", walltime: -1 }
in.lj.ehex: { folder: examples/HEAT, status: "failed, no Total wall time in the output, timeout (180s expired)", walltime: -1 }
in.lj.hex: { folder: examples/HEAT, status: "failed, no Total wall time in the output, timeout (180s expired)", walltime: -1 }
in.spce.ehex: { folder: examples/HEAT, status: "failed, no Total wall time in the output, timeout (180s expired)", walltime: -1 }
in.spce.hex: { folder: examples/HEAT, status: "failed, no Total wall time in the output, timeout (180s expired)", walltime: -1 }
in.vashishta.inp: { folder: examples/vashishta, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.vashishta.sio2: { folder: examples/vashishta, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.vashishta.table.inp: { folder: examples/vashishta, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.vashishta.table.sio2: { folder: examples/vashishta, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.rigid: { folder: examples/rigid, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.rigid.atomfile: { folder: examples/rigid, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.rigid.atomvar: { folder: examples/rigid, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.rigid.early: { folder: examples/rigid, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.rigid.gravity: { folder: examples/rigid, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 0.0, walltime_norm: 0.0 }
in.rigid.infile: { folder: examples/rigid, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.rigid.molecule: { folder: examples/rigid, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.rigid.nve: { folder: examples/rigid, status: "completed", failed_checks: { abs_diff_failed: 3, rel_diff_failed: 3 }, walltime: 0.0, walltime_norm: 0.0 }
in.rigid.nve.early: { folder: examples/rigid, status: "completed", failed_checks: { abs_diff_failed: 3, rel_diff_failed: 3 }, walltime: 0.0, walltime_norm: 0.0 }
in.rigid.poems: { folder: examples/rigid, status: "completed", failed_checks: { abs_diff_failed: 3, rel_diff_failed: 3 }, walltime: 3.0, walltime_norm: 0.5 }
in.rigid.poems2: { folder: examples/rigid, status: "completed", failed_checks: { abs_diff_failed: 3, rel_diff_failed: 3 }, walltime: 3.0, walltime_norm: 0.5 }
in.rigid.poems3: { folder: examples/rigid, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 4.0, walltime_norm: 0.6666666666666666 }
in.rigid.poems4: { folder: examples/rigid, status: "completed", failed_checks: { abs_diff_failed: 3, rel_diff_failed: 3 }, walltime: 3.0, walltime_norm: 0.5 }
in.rigid.poems5: { folder: examples/rigid, status: "completed", failed_checks: { abs_diff_failed: 3, rel_diff_failed: 3 }, walltime: 3.0, walltime_norm: 0.5 }
in.rigid.property: { folder: examples/rigid, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.rigid.small: { folder: examples/rigid, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.rigid.small.infile: { folder: examples/rigid, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.rigid.tnr: { folder: examples/rigid, status: "completed", failed_checks: { abs_diff_failed: 18, rel_diff_failed: 22 }, walltime: 21.0, walltime_norm: 3.5 }
in.voronoi: { folder: examples/voronoi, status: "completed, but no Step nor Loop in the output.", walltime: 6.0, walltime_norm: 1.0 }
in.voronoi.2d: { folder: examples/voronoi, status: "completed, but no Step nor Loop in the output.", walltime: 0.0, walltime_norm: 0.0 }
in.voronoi.data: { folder: examples/voronoi, status: "completed, but no Step nor Loop in the output.", walltime: 0.0, walltime_norm: 0.0 }
in.ehex: { folder: examples/KAPPA, status: "failed, no Total wall time in the output, timeout (180s expired)", walltime: -1 }
in.heat: { folder: examples/KAPPA, status: "failed, no Total wall time in the output, timeout (180s expired)", walltime: -1 }
in.heatflux: { folder: examples/KAPPA, status: "failed, no Total wall time in the output, timeout (180s expired)", walltime: -1 }
in.langevin: { folder: examples/KAPPA, status: "failed, no Total wall time in the output, timeout (180s expired)", walltime: -1 }
in.mp: { folder: examples/KAPPA, status: "failed, no Total wall time in the output, timeout (180s expired)", walltime: -1 }
in.pour: { folder: examples/pour, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 20.0, walltime_norm: 3.3333333333333335 }
in.pour.2d: { folder: examples/pour, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 1.0, walltime_norm: 0.16666666666666666 }
in.pour.2d.molecule: { folder: examples/pour, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 2.0, walltime_norm: 0.3333333333333333 }
in.deposit.atom: { folder: examples/deposit, status: "completed", failed_checks: { abs_diff_failed: 3, rel_diff_failed: 3 }, walltime: 3.0, walltime_norm: 0.5 }
in.deposit.molecule: { folder: examples/deposit, status: "completed", failed_checks: { abs_diff_failed: 3, rel_diff_failed: 3 }, walltime: 4.0, walltime_norm: 0.6666666666666666 }
in.deposit.molecule.rigid-nve-small: { folder: examples/deposit, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 4.0, walltime_norm: 0.6666666666666666 }
in.deposit.molecule.rigid-nvt-small: { folder: examples/deposit, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 4.0, walltime_norm: 0.6666666666666666 }
in.deposit.molecule.rigid-small: { folder: examples/deposit, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 4.0, walltime_norm: 0.6666666666666666 }
in.deposit.molecule.shake: { folder: examples/deposit, status: "completed", failed_checks: { abs_diff_failed: 3, rel_diff_failed: 3 }, walltime: 4.0, walltime_norm: 0.6666666666666666 }
in.charmmfsw: { folder: examples/charmmfsw, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 17.0, walltime_norm: 2.8333333333333335 }
in.indent: { folder: examples/indent, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 2.0, walltime_norm: 0.3333333333333333 }
in.indent.min: { folder: examples/indent, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.qeq.buck: { folder: examples/qeq, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 21.0, walltime_norm: 3.5 }
in.qeq.reaxff: { folder: examples/qeq, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 0.0, walltime_norm: 0.0 }
in.dreiding: { folder: examples/dreiding, status: "completed, error parsing log.lammps into YAML", walltime: 0.0, walltime_norm: 0.0 }
in.22DMH.real: { folder: examples/relres, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 57.0, walltime_norm: 9.5 }
in.22DMH.relres: { folder: examples/relres, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 8.0, walltime_norm: 1.3333333333333333 }
in.22DMH.respa: { folder: examples/relres, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 6.0, walltime_norm: 1.0 }
in.track: { folder: examples/tracker, status: "failed, ERROR: Illegal pair_style command (src/MISC/pair_tracker.cpp:221).", walltime: -1 }
in.pour.drum: { folder: examples/granular, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 10.0, walltime_norm: 1.6666666666666667 }
in.pour.flatwall: { folder: examples/granular, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 10.0, walltime_norm: 1.6666666666666667 }
in.pour.heat: { folder: examples/granular, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 83.0, walltime_norm: 13.833333333333334 }
in.restitution: { folder: examples/granular, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 5.0, walltime_norm: 0.8333333333333334 }
in.micelle: { folder: examples/micelle, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 1 }, walltime: 0.0, walltime_norm: 0.0 }
in.micelle-rigid: { folder: examples/micelle, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.replicate.bond.x: { folder: examples/replicate, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.replicate.bond.x.noloop: { folder: examples/replicate, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.replicate.bond.x.y: { folder: examples/replicate, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.replicate.bond.xy: { folder: examples/replicate, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.replicate.cnt: { folder: examples/replicate, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 8.0, walltime_norm: 1.3333333333333333 }
in.srd.mixture: { folder: examples/srd, status: "completed", failed_checks: { abs_diff_failed: 3, rel_diff_failed: 3 }, walltime: 2.0, walltime_norm: 0.3333333333333333 }
in.srd.pure: { folder: examples/srd, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 4.0, walltime_norm: 0.6666666666666666 }
in.ttm: { folder: examples/ttm, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 11.0, walltime_norm: 1.8333333333333333 }
in.ttm.grid: { folder: examples/ttm, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 11.0, walltime_norm: 1.8333333333333333 }
in.ttm.mod: { folder: examples/ttm, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 4.0, walltime_norm: 0.6666666666666666 }
in.colloid: { folder: examples/multi, status: "completed", failed_checks: { abs_diff_failed: 3, rel_diff_failed: 3 }, walltime: 0.0, walltime_norm: 0.0 }
in.granular: { folder: examples/multi, status: "completed", failed_checks: { abs_diff_failed: 3, rel_diff_failed: 3 }, walltime: 1.0, walltime_norm: 0.16666666666666666 }
in.powerlaw: { folder: examples/multi, status: "completed", failed_checks: { abs_diff_failed: 3, rel_diff_failed: 3 }, walltime: 2.0, walltime_norm: 0.3333333333333333 }
in.msst: { folder: examples/msst, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 6.0, walltime_norm: 1.0 }
in.gjf.vfull: { folder: examples/gjf, status: "completed", failed_checks: { abs_diff_failed: 3, rel_diff_failed: 3 }, walltime: 1.0, walltime_norm: 0.16666666666666666 }
in.gjf.vhalf: { folder: examples/gjf, status: "completed", failed_checks: { abs_diff_failed: 3, rel_diff_failed: 3 }, walltime: 1.0, walltime_norm: 0.16666666666666666 }
in.spin.cobalt_fcc: { folder: examples/SPIN/cobalt_fcc, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 2.0, walltime_norm: 0.3333333333333333 }
in.spin.nickel: { folder: examples/SPIN/nickel, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 1.0, walltime_norm: 0.16666666666666666 }
in.spin.nickel_cubic: { folder: examples/SPIN/nickel, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 1.0, walltime_norm: 0.16666666666666666 }
in.spin.cobalt_hcp: { folder: examples/SPIN/cobalt_hcp, status: "completed", failed_checks: { abs_diff_failed: 4, rel_diff_failed: 4 }, walltime: 2.0, walltime_norm: 0.3333333333333333 }
in.spin.iron: { folder: examples/SPIN/iron, status: "completed", failed_checks: { abs_diff_failed: 4, rel_diff_failed: 4 }, walltime: 0.0, walltime_norm: 0.0 }
in.spin.iron_cubic: { folder: examples/SPIN/iron, status: "completed", failed_checks: { abs_diff_failed: 2, rel_diff_failed: 2 }, walltime: 0.0, walltime_norm: 0.0 }
in.gneb.skyrmion: { folder: examples/SPIN/gneb/skyrmion, status: "failed, ERROR: Did not assign all atoms correctly (src/read_data.cpp:1562).", walltime: -1 }
in.gneb.iron: { folder: examples/SPIN/gneb/iron, status: "failed, ERROR: Cannot use NEBSpin with a single replica (src/SPIN/neb_spin.cpp:133).", walltime: -1 }
in.spin.read_data: { folder: examples/SPIN/read_restart, status: "failed, no Total wall time in the output, --------------------------------------------------------------------------
MPI_ABORT was invoked on rank 0 in communicator MPI_COMM_WORLD
with errorcode 1.
NOTE: invoking MPI_ABORT causes Open MPI to kill all MPI processes.
You may or may not see output from other processes, depending on
exactly when Open MPI kills them.
--------------------------------------------------------------------------
", walltime: -1 }
in.spin.restart: { folder: examples/SPIN/read_restart, status: "failed, ERROR: Invalid flag in force field section of restart file (src/read_restart.cpp:948).", walltime: -1 }
in.spin.write_restart: { folder: examples/SPIN/read_restart, status: "completed", failed_checks: { abs_diff_failed: 2, rel_diff_failed: 2 }, walltime: 2.0, walltime_norm: 0.3333333333333333 }
in.spin.bfo_min: { folder: examples/SPIN/spinmin, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 6.0, walltime_norm: 1.0 }
in.spin.bfo_min_cg: { folder: examples/SPIN/spinmin, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 7.0, walltime_norm: 1.1666666666666667 }
in.spin.bfo_min_lbfgs: { folder: examples/SPIN/spinmin, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.spin.iron_min: { folder: examples/SPIN/spinmin, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.spin.setforce: { folder: examples/SPIN/setforce_spin, status: "failed, no Total wall time in the output, [fv-az1014-42:16323] *** Process received signal ***
[fv-az1014-42:16323] Signal: Segmentation fault (11)
[fv-az1014-42:16323] Signal code: Address not mapped (1)
[fv-az1014-42:16323] Failing at address: 0x390
[fv-az1014-42:16323] [ 0] /lib/x86_64-linux-gnu/libc.so.6(+0x42520)[0x7f09e7842520]
[fv-az1014-42:16323] [ 1] /home/runner/work/lammps/lammps/build/lmp(_ZN9LAMMPS_NS11ComputeSpin14compute_vectorEv+0x2d8)[0x5590ad415268]
[fv-az1014-42:16323] [ 2] /home/runner/work/lammps/lammps/build/lmp(_ZN9LAMMPS_NS8Variable8evaluateEPcPPNS0_4TreeEi+0x6e7f)[0x5590ad0078ef]
[fv-az1014-42:16323] [ 3] /home/runner/work/lammps/lammps/build/lmp(_ZN9LAMMPS_NS8Variable13compute_equalEi+0x22b)[0x5590ad00d2ab]
[fv-az1014-42:16323] [ 4] /home/runner/work/lammps/lammps/build/lmp(_ZN9LAMMPS_NS6Thermo16compute_variableEv+0x5b)[0x5590acfbfa6b]
[fv-az1014-42:16323] [ 5] /home/runner/work/lammps/lammps/build/lmp(_ZN9LAMMPS_NS6Thermo7computeEi+0x203)[0x5590acfc9dc3]
[fv-az1014-42:16323] [ 6] /home/runner/work/lammps/lammps/build/lmp(_ZN9LAMMPS_NS6Output5setupEi+0x64)[0x5590acf57f14]
[fv-az1014-42:16323] [ 7] /home/runner/work/lammps/lammps/build/lmp(_ZN9LAMMPS_NS3Min5setupEi+0x57d)[0x5590acee421d]
[fv-az1014-42:16323] [ 8] /home/runner/work/lammps/lammps/build/lmp(_ZN9LAMMPS_NS8Minimize7commandEiPPc+0x1d7)[0x5590acee5a67]
[fv-az1014-42:16323] [ 9] /home/runner/work/lammps/lammps/build/lmp(_ZN9LAMMPS_NS5Input15execute_commandEv+0xb1d)[0x5590ace91b9d]
[fv-az1014-42:16323] [10] /home/runner/work/lammps/lammps/build/lmp(_ZN9LAMMPS_NS5Input4fileEv+0x19e)[0x5590ace91f5e]
[fv-az1014-42:16323] [11] /home/runner/work/lammps/lammps/build/lmp(main+0x51)[0x5590ace7ed41]
[fv-az1014-42:16323] [12] /lib/x86_64-linux-gnu/libc.so.6(+0x29d90)[0x7f09e7829d90]
[fv-az1014-42:16323] [13] /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0x80)[0x7f09e7829e40]
[fv-az1014-42:16323] [14] /home/runner/work/lammps/lammps/build/lmp(_start+0x25)[0x5590ace834e5]
[fv-az1014-42:16323] *** End of error message ***
Segmentation fault (core dumped)
", walltime: -1 }
in.spin.bfo: { folder: examples/SPIN/bfo, status: "completed", failed_checks: { abs_diff_failed: 2, rel_diff_failed: 2 }, walltime: 7.0, walltime_norm: 1.1666666666666667 }
in.spin.iron_dipole_cut: { folder: examples/SPIN/dipole_spin, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 6.0, walltime_norm: 1.0 }
in.spin.iron_dipole_ewald: { folder: examples/SPIN/dipole_spin, status: "completed", failed_checks: { abs_diff_failed: 1, rel_diff_failed: 0 }, walltime: 20.0, walltime_norm: 3.3333333333333335 }
in.spin.iron_dipole_pppm: { folder: examples/SPIN/dipole_spin, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 11.0, walltime_norm: 1.8333333333333333 }
in.spin.iron-nve: { folder: examples/SPIN/test_problems/validation_nve, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 19.0, walltime_norm: 3.1666666666666665 }
in.spin.nvt_lattice: { folder: examples/SPIN/test_problems/validation_nvt, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 95.0, walltime_norm: 15.833333333333334 }
in.spin.nvt_spin: { folder: examples/SPIN/test_problems/validation_nvt, status: "failed, ERROR: Fix langevin period must be > 0.0 (src/fix_langevin.cpp:80).", walltime: -1 }
in.mliap.ace.compute: { folder: examples/mliap, status: "completed, but no Step nor Loop in the output.", walltime: 0.0, walltime_norm: 0.0 }
in.mliap.nn.Cu: { folder: examples/mliap, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 4.0, walltime_norm: 0.6666666666666666 }
in.mliap.nn.Ta06A: { folder: examples/mliap, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 1.0, walltime_norm: 0.16666666666666666 }
in.mliap.pytorch.Ta06A: { folder: examples/mliap, status: "failed, ERROR: Using pair_style mliap model mliappy requires ML-IAP with python support (src/ML-IAP/pair_mliap.cpp:173).", walltime: -1 }
in.mliap.pytorch.ace: { folder: examples/mliap, status: "failed, ERROR: Using pair_style mliap model mliappy requires ML-IAP with python support (src/ML-IAP/pair_mliap.cpp:173).", walltime: -1 }
in.mliap.pytorch.ace.NN: { folder: examples/mliap, status: "failed, ERROR: Using pair_style mliap model mliappy requires ML-IAP with python support (src/ML-IAP/pair_mliap.cpp:173).", walltime: -1 }
in.mliap.pytorch.relu1hidden: { folder: examples/mliap, status: "failed, ERROR: Using pair_style mliap model mliappy requires ML-IAP with python support (src/ML-IAP/pair_mliap.cpp:173).", walltime: -1 }
in.mliap.quadratic.compute: { folder: examples/mliap, status: "failed, no Total wall time in the output, munmap_chunk(): invalid pointer
[fv-az1014-42:16535] *** Process received signal ***
[fv-az1014-42:16535] Signal: Aborted (6)
[fv-az1014-42:16535] Signal code: (-6)
corrupted double-linked list
Aborted (core dumped)
", walltime: -1 }
in.mliap.snap.Ta06A: { folder: examples/mliap, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.mliap.snap.WBe.PRB2019: { folder: examples/mliap, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 2.0, walltime_norm: 0.3333333333333333 }
in.mliap.snap.chem: { folder: examples/mliap, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 15.0, walltime_norm: 2.5 }
in.mliap.snap.compute: { folder: examples/mliap, status: "failed, no Total wall time in the output, timeout (180s expired)", walltime: -1 }
in.mliap.snap.quadratic: { folder: examples/mliap, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 1.0, walltime_norm: 0.16666666666666666 }
in.mliap.so3.Ni_Mo: { folder: examples/mliap, status: "completed, but no Step nor Loop in the output.", walltime: 0.0, walltime_norm: 0.0 }
in.mliap.so3.nn.Si: { folder: examples/mliap, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 3.0, walltime_norm: 0.5 }
in.mliap.unified.lj.Ar: { folder: examples/mliap, status: "failed, ERROR: Could not process Python string: .", walltime: -1 }
in.run: { folder: examples/mliap/jax, status: "failed, ERROR: Using pair_style mliap unified requires ML-IAP with python support (src/ML-IAP/pair_mliap.cpp:213).", walltime: -1 }
in.eim: { folder: examples/eim, status: "completed", failed_checks: { abs_diff_failed: 2, rel_diff_failed: 2 }, walltime: 3.0, walltime_norm: 0.5 }
in.shear: { folder: examples/shear, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 4.0, walltime_norm: 0.6666666666666666 }
in.shear.void: { folder: examples/shear, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 3.0, walltime_norm: 0.5 }
in.aimd.alone: { folder: examples/mdi, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 0.0, walltime_norm: 0.0 }
in.aimd.driver: { folder: examples/mdi, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'mdi/qm' is part of the MDI package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.aimd.driver.plugin: { folder: examples/mdi, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'mdi/qm' is part of the MDI package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.aimd.engine: { folder: examples/mdi, status: "failed, unknown command, package not installed, ERROR: Unknown command: mdi engine (src/input.cpp:314)", walltime: -1 }
in.aimdpy.mm: { folder: examples/mdi, status: "failed, unknown command, package not installed, ERROR: Unknown command: mdi engine (src/input.cpp:314)", walltime: -1 }
in.aimdpy.qm: { folder: examples/mdi, status: "failed, unknown command, package not installed, ERROR: Unknown command: mdi engine (src/input.cpp:314)", walltime: -1 }
in.sequence.python: { folder: examples/mdi, status: "failed, unknown command, package not installed, ERROR: Unknown command: mdi engine (src/input.cpp:314)", walltime: -1 }
in.series.alone: { folder: examples/mdi, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 0.0, walltime_norm: 0.0 }
in.series.driver: { folder: examples/mdi, status: "failed, unknown command, package not installed, ERROR: Unknown command: mdi connect (src/input.cpp:314)", walltime: -1 }
in.series.driver.plugin: { folder: examples/mdi, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'mdi/qm' is part of the MDI package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.series.engine: { folder: examples/mdi, status: "failed, unknown command, package not installed, ERROR: Unknown command: mdi engine (src/input.cpp:314)", walltime: -1 }
in.snapshot.alone: { folder: examples/mdi, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 0.0, walltime_norm: 0.0 }
in.snapshot.driver: { folder: examples/mdi, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'mdi/qm' is part of the MDI package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.snapshot.driver.plugin: { folder: examples/mdi, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'mdi/qm' is part of the MDI package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.snapshot.engine: { folder: examples/mdi, status: "failed, unknown command, package not installed, ERROR: Unknown command: mdi engine (src/input.cpp:314)", walltime: -1 }
in.lammps: { folder: examples/PACKAGES/dpd-smooth/2d-diffusion, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 57.0, walltime_norm: 9.5 }
in.lammps: { folder: examples/PACKAGES/dpd-smooth/2d-diffusion-in-shear-flow, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 102.0, walltime_norm: 17.0 }
in.lammps: { folder: examples/PACKAGES/dpd-smooth/equipartition-verification, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 41.0, walltime_norm: 6.833333333333333 }
in.fitpod: { folder: examples/PACKAGES/pod/InP, status: "failed, ERROR: Cannot fit potential without data files. The data paths may not be valid. Please check the data paths in the POD data file. (src/ML-POD/fitpod_command.cpp:718).", walltime: -1 }
in.pod: { folder: examples/PACKAGES/pod/InP, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 2.0, walltime_norm: 0.3333333333333333 }
in.fitpod: { folder: examples/PACKAGES/pod/Ta, status: "completed, but no Step nor Loop in the output.", walltime: 0.0, walltime_norm: 0.0 }
in.pod: { folder: examples/PACKAGES/pod/Ta, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.pod.compute: { folder: examples/PACKAGES/pod/Ta, status: "failed, ERROR: Per-atom data too large (src/ML-POD/compute_podd_atom.cpp:62).", walltime: -1 }
in.duplex2: { folder: examples/PACKAGES/cgdna/examples/real_units/oxRNA2/duplex2, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 1 }, walltime: 22.0, walltime_norm: 3.6666666666666665 }
in.duplex2: { folder: examples/PACKAGES/cgdna/examples/real_units/oxRNA2/potential_file, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 1 }, walltime: 19.0, walltime_norm: 3.1666666666666665 }
in.duplex2: { folder: examples/PACKAGES/cgdna/examples/real_units/oxDNA/duplex2, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 21.0, walltime_norm: 3.5 }
in.duplex1: { folder: examples/PACKAGES/cgdna/examples/real_units/oxDNA/duplex1, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 10.0, walltime_norm: 1.6666666666666667 }
in.duplex1: { folder: examples/PACKAGES/cgdna/examples/real_units/oxDNA/potential_file, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 10.0, walltime_norm: 1.6666666666666667 }
in.duplex2: { folder: examples/PACKAGES/cgdna/examples/real_units/oxDNA2/duplex2, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 24.0, walltime_norm: 4.0 }
in.duplex1: { folder: examples/PACKAGES/cgdna/examples/real_units/oxDNA2/duplex1, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 11.0, walltime_norm: 1.8333333333333333 }
in.dsring: { folder: examples/PACKAGES/cgdna/examples/real_units/oxDNA2/dsring, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 46.0, walltime_norm: 7.666666666666667 }
in.duplex1: { folder: examples/PACKAGES/cgdna/examples/real_units/oxDNA2/potential_file, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 11.0, walltime_norm: 1.8333333333333333 }
in.duplex4.4type: { folder: examples/PACKAGES/cgdna/examples/real_units/oxDNA2/unique_bp, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 51.0, walltime_norm: 8.5 }
in.duplex4.8type: { folder: examples/PACKAGES/cgdna/examples/real_units/oxDNA2/unique_bp, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 50.0, walltime_norm: 8.333333333333334 }
in.duplex3: { folder: examples/PACKAGES/cgdna/examples/real_units/oxDNA2/duplex3, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 11.0, walltime_norm: 1.8333333333333333 }
in.duplex2: { folder: examples/PACKAGES/cgdna/examples/lj_units/oxRNA2/duplex2, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 19.0, walltime_norm: 3.1666666666666665 }
in.duplex2: { folder: examples/PACKAGES/cgdna/examples/lj_units/oxRNA2/potential_file, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 19.0, walltime_norm: 3.1666666666666665 }
in.duplex2: { folder: examples/PACKAGES/cgdna/examples/lj_units/oxDNA/duplex2, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 22.0, walltime_norm: 3.6666666666666665 }
in.duplex1: { folder: examples/PACKAGES/cgdna/examples/lj_units/oxDNA/duplex1, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 10.0, walltime_norm: 1.6666666666666667 }
in.duplex1: { folder: examples/PACKAGES/cgdna/examples/lj_units/oxDNA/potential_file, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 10.0, walltime_norm: 1.6666666666666667 }
in.duplex2: { folder: examples/PACKAGES/cgdna/examples/lj_units/oxDNA2/duplex2, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 25.0, walltime_norm: 4.166666666666667 }
in.duplex1: { folder: examples/PACKAGES/cgdna/examples/lj_units/oxDNA2/duplex1, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 11.0, walltime_norm: 1.8333333333333333 }
in.dsring: { folder: examples/PACKAGES/cgdna/examples/lj_units/oxDNA2/dsring, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 46.0, walltime_norm: 7.666666666666667 }
in.duplex1: { folder: examples/PACKAGES/cgdna/examples/lj_units/oxDNA2/potential_file, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 11.0, walltime_norm: 1.8333333333333333 }
in.duplex4.4type: { folder: examples/PACKAGES/cgdna/examples/lj_units/oxDNA2/unique_bp, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 50.0, walltime_norm: 8.333333333333334 }
in.duplex4.8type: { folder: examples/PACKAGES/cgdna/examples/lj_units/oxDNA2/unique_bp, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 50.0, walltime_norm: 8.333333333333334 }
in.duplex3: { folder: examples/PACKAGES/cgdna/examples/lj_units/oxDNA2/duplex3, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 11.0, walltime_norm: 1.8333333333333333 }
in.temper_npt: { folder: examples/PACKAGES/temper_npt, status: "failed, ERROR: World variable count doesn't match # of partitions (src/variable.cpp:255).", walltime: -1 }
in.peptide-plumed: { folder: examples/PACKAGES/plumed, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'plumed' is part of the PLUMED package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.methanol: { folder: examples/PACKAGES/bocs, status: "completed", failed_checks: { abs_diff_failed: 4, rel_diff_failed: 4 }, walltime: 23.0, walltime_norm: 3.8333333333333335 }
in.pedone.melt: { folder: examples/PACKAGES/pedone, status: "completed", failed_checks: { abs_diff_failed: 3, rel_diff_failed: 2 }, walltime: 13.0, walltime_norm: 2.1666666666666665 }
in.pedone.relax: { folder: examples/PACKAGES/pedone, status: "completed", failed_checks: { abs_diff_failed: 2, rel_diff_failed: 2 }, walltime: 15.0, walltime_norm: 2.5 }
in.methanol_implicit_water: { folder: examples/PACKAGES/local_density/methanol_implicit_water, status: "completed, but no Step nor Loop in the output.", walltime: 62.0, walltime_norm: 10.333333333333334 }
in.benzene_water: { folder: examples/PACKAGES/local_density/benzene_water, status: "completed, but no Step nor Loop in the output.", walltime: 25.0, walltime_norm: 4.166666666666667 }
in.gauss-diel: { folder: examples/PACKAGES/gauss_diel, status: "completed, error parsing log.lammps into YAML", walltime: 8.0, walltime_norm: 1.3333333333333333 }
in.gauss-diel-cg: { folder: examples/PACKAGES/gauss_diel, status: "completed, error parsing log.lammps into YAML", walltime: 3.0, walltime_norm: 0.5 }
in.gauss-diel-split: { folder: examples/PACKAGES/gauss_diel, status: "completed, error parsing log.lammps into YAML", walltime: 3.0, walltime_norm: 0.5 }
in.alloy: { folder: examples/PACKAGES/alchemy, status: "failed, ERROR: World variable count doesn't match # of partitions (src/variable.cpp:255).", walltime: -1 }
in.twowater: { folder: examples/PACKAGES/alchemy, status: "failed, ERROR: World variable count doesn't match # of partitions (src/variable.cpp:255).", walltime: -1 }
in.sds-hybrid: { folder: examples/PACKAGES/cgspica/sds-monolayer, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 6.0, walltime_norm: 1.0 }
in.sds-regular: { folder: examples/PACKAGES/cgspica/sds-monolayer, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 6.0, walltime_norm: 1.0 }
in.pegc12e8: { folder: examples/PACKAGES/cgspica/peg-verlet, status: "completed, error parsing log.lammps into YAML", walltime: 69.0, walltime_norm: 11.5 }
in.pegc12e8-angle: { folder: examples/PACKAGES/cgspica/peg-verlet, status: "completed, error parsing log.lammps into YAML", walltime: 69.0, walltime_norm: 11.5 }
in.hkust1: { folder: examples/PACKAGES/mofff, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.hkust1_long: { folder: examples/PACKAGES/mofff, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.e3b-tip4p2005: { folder: examples/PACKAGES/e3b, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 2.0, walltime_norm: 0.3333333333333333 }
in.uf3.Nb: { folder: examples/PACKAGES/uf3, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 0.0, walltime_norm: 0.0 }
in.fep01.lmp: { folder: examples/PACKAGES/fep/CC-CO/fep01, status: "failed, no Total wall time in the output, timeout (180s expired)", walltime: -1 }
in.fep10.lmp: { folder: examples/PACKAGES/fep/CC-CO/fep10, status: "failed, no Total wall time in the output, timeout (180s expired)", walltime: -1 }
in.insertion: { folder: examples/PACKAGES/fep/C7inEthanol/fep01, status: "failed, no Total wall time in the output, timeout (180s expired)", walltime: -1 }
in.deletion: { folder: examples/PACKAGES/fep/C7inEthanol/fep10, status: "failed, no Total wall time in the output, timeout (180s expired)", walltime: -1 }
in.fep01.lmp: { folder: examples/PACKAGES/fep/CH4-CF4/fep01, status: "failed, no Total wall time in the output, timeout (180s expired)", walltime: -1 }
in.fep10.lmp: { folder: examples/PACKAGES/fep/CH4-CF4/fep10, status: "failed, no Total wall time in the output, timeout (180s expired)", walltime: -1 }
in.bar10.lmp: { folder: examples/PACKAGES/fep/CH4-CF4/bar10, status: "failed, no Total wall time in the output, timeout (180s expired)", walltime: -1 }
in.bar01.lmp: { folder: examples/PACKAGES/fep/CH4-CF4/bar01, status: "failed, no Total wall time in the output, timeout (180s expired)", walltime: -1 }
in.fep01.lmp: { folder: examples/PACKAGES/fep/CH4hyd/fep01, status: "failed, no Total wall time in the output, timeout (180s expired)", walltime: -1 }
in.fdti01.lmp: { folder: examples/PACKAGES/fep/CH4hyd/fdti01, status: "failed, no Total wall time in the output, timeout (180s expired)", walltime: -1 }
in.fep10.lmp: { folder: examples/PACKAGES/fep/CH4hyd/fep10, status: "failed, no Total wall time in the output, timeout (180s expired)", walltime: -1 }
in.fdti10.lmp: { folder: examples/PACKAGES/fep/CH4hyd/fdti10, status: "failed, no Total wall time in the output, timeout (180s expired)", walltime: -1 }
in.spce.lmp: { folder: examples/PACKAGES/fep/ta, status: "failed, no Total wall time in the output, timeout (180s expired)", walltime: -1 }
in.gap: { folder: examples/PACKAGES/quip, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized pair style 'quip' is part of the ML-QUIP package which is not enabled in this LAMMPS binary. (src/force.cpp:275)", walltime: -1 }
in.molecular: { folder: examples/PACKAGES/quip, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized pair style 'quip' is part of the ML-QUIP package which is not enabled in this LAMMPS binary. (src/force.cpp:275)", walltime: -1 }
in.sw: { folder: examples/PACKAGES/quip, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized pair style 'quip' is part of the ML-QUIP package which is not enabled in this LAMMPS binary. (src/force.cpp:275)", walltime: -1 }
in.srp_react: { folder: examples/PACKAGES/srp_react, status: "failed, ERROR: Invalid bond type 0 for pair style srp (src/MISC/pair_srp.cpp:403).", walltime: -1 }
in.spce: { folder: examples/PACKAGES/manybody_table, status: "completed", failed_checks: { abs_diff_failed: 3, rel_diff_failed: 3 }, walltime: 5.0, walltime_norm: 0.8333333333333334 }
in.spce2: { folder: examples/PACKAGES/manybody_table, status: "completed", failed_checks: { abs_diff_failed: 3, rel_diff_failed: 3 }, walltime: 6.0, walltime_norm: 1.0 }
in.spce_sw: { folder: examples/PACKAGES/manybody_table, status: "completed", failed_checks: { abs_diff_failed: 1, rel_diff_failed: 1 }, walltime: 5.0, walltime_norm: 0.8333333333333334 }
in.confined: { folder: examples/PACKAGES/dielectric, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 0.0, walltime_norm: 0.0 }
in.nopbc: { folder: examples/PACKAGES/dielectric, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 0.0, walltime_norm: 0.0 }
in.methane_qtb: { folder: examples/PACKAGES/qtb/methane_qtb, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 9.0, walltime_norm: 1.5 }
in.alpha_quartz_qtb: { folder: examples/PACKAGES/qtb/alpha_quartz_qtb, status: "completed", failed_checks: { abs_diff_failed: 2, rel_diff_failed: 2 }, walltime: 10.0, walltime_norm: 1.6666666666666667 }
in.alpha_quartz_qbmsst: { folder: examples/PACKAGES/qtb/alpha_quartz_qbmsst, status: "completed", failed_checks: { abs_diff_failed: 3, rel_diff_failed: 3 }, walltime: 42.0, walltime_norm: 7.0 }
in.methane_qbmsst: { folder: examples/PACKAGES/qtb/methane_qbmsst, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 97.0, walltime_norm: 16.166666666666668 }
in.tmd: { folder: examples/PACKAGES/tmd, status: "completed, error parsing log.lammps into YAML", walltime: 4.0, walltime_norm: 0.6666666666666666 }
in.meam-spline.Si: { folder: examples/PACKAGES/meam_spline, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 2.0, walltime_norm: 0.3333333333333333 }
in.meam-spline.TiO2: { folder: examples/PACKAGES/meam_spline, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 79.0, walltime_norm: 13.166666666666666 }
in.silicon: { folder: examples/PACKAGES/phonon/dynamical_matrix_command/Silicon, status: "completed, but no Step nor Loop in the output.", walltime: 0.0, walltime_norm: 0.0 }
in.EAM3D: { folder: examples/PACKAGES/phonon/3-3D-FCC-Cu-EAM, status: "failed, no Total wall time in the output, timeout (180s expired)", walltime: -1 }
in.disp: { folder: examples/PACKAGES/phonon/3-3D-FCC-Cu-EAM, status: "skipped", walltime: -2 }
in.disp2: { folder: examples/PACKAGES/phonon/3-3D-FCC-Cu-EAM, status: "skipped", walltime: -2 }
in.dos: { folder: examples/PACKAGES/phonon/3-3D-FCC-Cu-EAM, status: "skipped", walltime: -2 }
in.Ana: { folder: examples/PACKAGES/phonon/1-1D-mono, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 6.0, walltime_norm: 1.0 }
in.disp: { folder: examples/PACKAGES/phonon/1-1D-mono, status: "skipped", walltime: -2 }
in.Ana: { folder: examples/PACKAGES/phonon/2-1D-diatomic, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 17.0, walltime_norm: 2.8333333333333335 }
in.disp: { folder: examples/PACKAGES/phonon/2-1D-diatomic, status: "skipped", walltime: -2 }
in.disp: { folder: examples/PACKAGES/phonon/4-Graphene, status: "skipped", walltime: -2 }
in.graphene: { folder: examples/PACKAGES/phonon/4-Graphene, status: "failed, no Total wall time in the output, timeout (180s expired)", walltime: -1 }
in.dpde-shardlow: { folder: examples/PACKAGES/dpd-react/dpde-shardlow, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 0.0, walltime_norm: 0.0 }
in.dpde-vv: { folder: examples/PACKAGES/dpd-react/dpde-vv, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 14.0, walltime_norm: 2.3333333333333335 }
in.dpd-shardlow: { folder: examples/PACKAGES/dpd-react/dpd-shardlow, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 0.0, walltime_norm: 0.0 }
in.dpd-vv: { folder: examples/PACKAGES/dpd-react/dpd-vv, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 11.0, walltime_norm: 1.8333333333333333 }
in.dpdp-shardlow: { folder: examples/PACKAGES/dpd-react/dpdp-shardlow, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 0.0, walltime_norm: 0.0 }
in.multi-lucy: { folder: examples/PACKAGES/dpd-react/multi-lucy, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 1.0, walltime_norm: 0.16666666666666666 }
in.dpdh-shardlow: { folder: examples/PACKAGES/dpd-react/dpdh-shardlow, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 3.0, walltime_norm: 0.5 }
in.dpdrx-shardlow: { folder: examples/PACKAGES/dpd-react/dpdrx-shardlow, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 0.0, walltime_norm: 0.0 }
in.GD: { folder: examples/PACKAGES/flow_gauss, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 1.0, walltime_norm: 0.16666666666666666 }
in.basal: { folder: examples/PACKAGES/basal, status: "failed, no Total wall time in the output, timeout (180s expired)", walltime: -1 }
in.cascade_AlCu: { folder: examples/PACKAGES/electron_stopping, status: "failed, ERROR: Must set 'extscalar' when setting 'scalar_flag' for fix electron/stopping/fit. Contact the developer. (src/fix.cpp:135).", walltime: -1 }
in.cascade_SiSi: { folder: examples/PACKAGES/electron_stopping, status: "failed, ERROR: Must set 'extscalar' when setting 'scalar_flag' for fix electron/stopping/fit. Contact the developer. (src/fix.cpp:135).", walltime: -1 }
in.elstop: { folder: examples/PACKAGES/electron_stopping, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 26.0, walltime_norm: 4.333333333333333 }
in.elstop.only: { folder: examples/PACKAGES/electron_stopping, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.chreg-acid: { folder: examples/PACKAGES/charge_regulation, status: "completed", failed_checks: { abs_diff_failed: 1, rel_diff_failed: 1 }, walltime: 1.0, walltime_norm: 0.16666666666666666 }
in.chreg-acid-real: { folder: examples/PACKAGES/charge_regulation, status: "completed", failed_checks: { abs_diff_failed: 1, rel_diff_failed: 1 }, walltime: 0.0, walltime_norm: 0.0 }
in.chreg-polymer: { folder: examples/PACKAGES/charge_regulation, status: "completed", failed_checks: { abs_diff_failed: 1, rel_diff_failed: 1 }, walltime: 1.0, walltime_norm: 0.16666666666666666 }
in.adatom: { folder: examples/PACKAGES/agni, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 16.0, walltime_norm: 2.6666666666666665 }
in.vacancy: { folder: examples/PACKAGES/agni, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 2.0, walltime_norm: 0.3333333333333333 }
in.bucky-plus-cnt: { folder: examples/PACKAGES/imd, status: "skipped", walltime: -2 }
in.bucky-plus-cnt-gpu: { folder: examples/PACKAGES/imd, status: "skipped", walltime: -2 }
in.deca-ala-solv-filter_imd: { folder: examples/PACKAGES/imd, status: "skipped", walltime: -2 }
in.deca-ala-solv_imd: { folder: examples/PACKAGES/imd, status: "skipped", walltime: -2 }
in.deca-ala_imd: { folder: examples/PACKAGES/imd, status: "skipped", walltime: -2 }
in.deca-ala_imd-gpu: { folder: examples/PACKAGES/imd, status: "skipped", walltime: -2 }
in.melt_imd: { folder: examples/PACKAGES/imd, status: "skipped", walltime: -2 }
in.melt_imd-gpu: { folder: examples/PACKAGES/imd, status: "skipped", walltime: -2 }
in.first: { folder: examples/PACKAGES/adios/rerun, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized dump style 'custom/adios' is part of the ADIOS package which is not enabled in this LAMMPS binary. (src/output.cpp:776)", walltime: -1 }
in.read_dump: { folder: examples/PACKAGES/adios/rerun, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized reader style 'adios' is part of the ADIOS package which is not enabled in this LAMMPS binary. (src/read_dump.cpp:236)", walltime: -1 }
in.rerun: { folder: examples/PACKAGES/adios/rerun, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized reader style 'adios' is part of the ADIOS package which is not enabled in this LAMMPS binary. (src/read_dump.cpp:236)", walltime: -1 }
in.adios_balance: { folder: examples/PACKAGES/adios/balance, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized dump style 'custom/adios' is part of the ADIOS package which is not enabled in this LAMMPS binary. (src/output.cpp:776)", walltime: -1 }
in.adios_balance2: { folder: examples/PACKAGES/adios/balance, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized reader style 'adios' is part of the ADIOS package which is not enabled in this LAMMPS binary. (src/read_dump.cpp:236)", walltime: -1 }
in.bcc0: { folder: examples/PACKAGES/mgpt, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized pair style 'mgpt' is part of the MGPT package which is not enabled in this LAMMPS binary. (src/force.cpp:275)", walltime: -1 }
in.vac0-bcc: { folder: examples/PACKAGES/mgpt, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized pair style 'mgpt' is part of the MGPT package which is not enabled in this LAMMPS binary. (src/force.cpp:275)", walltime: -1 }
in.vacmin-bcc: { folder: examples/PACKAGES/mgpt, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized pair style 'mgpt' is part of the MGPT package which is not enabled in this LAMMPS binary. (src/force.cpp:275)", walltime: -1 }
in.vtk: { folder: examples/PACKAGES/vtk, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized dump style 'vtk' is part of the VTK package which is not enabled in this LAMMPS binary. (src/output.cpp:776)", walltime: -1 }
in.vtp: { folder: examples/PACKAGES/vtk, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized dump style 'vtk' is part of the VTK package which is not enabled in this LAMMPS binary. (src/output.cpp:776)", walltime: -1 }
in.dpdext: { folder: examples/PACKAGES/dpd-basic/dpdext, status: "completed", failed_checks: { abs_diff_failed: 2, rel_diff_failed: 2 }, walltime: 1.0, walltime_norm: 0.16666666666666666 }
in.dpd: { folder: examples/PACKAGES/dpd-basic/dpd, status: "completed", failed_checks: { abs_diff_failed: 2, rel_diff_failed: 2 }, walltime: 0.0, walltime_norm: 0.0 }
in.dpdext_tstat: { folder: examples/PACKAGES/dpd-basic/dpdext_tstat, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 30.0, walltime_norm: 5.0 }
in.dpd_tstat: { folder: examples/PACKAGES/dpd-basic/dpd_tstat, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 11.0, walltime_norm: 1.8333333333333333 }
in.dpd_coul_slater_long: { folder: examples/PACKAGES/dpd-basic/dpd_coul_slater_long, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 2.0, walltime_norm: 0.3333333333333333 }
in.piston: { folder: examples/PACKAGES/electrode/piston, status: "failed, no Total wall time in the output, timeout (180s expired)", walltime: -1 }
in.cg: { folder: examples/PACKAGES/electrode/madelung, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 0.0, walltime_norm: 0.0 }
in.eta: { folder: examples/PACKAGES/electrode/madelung, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.eta_cg: { folder: examples/PACKAGES/electrode/madelung, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.eta_mix: { folder: examples/PACKAGES/electrode/madelung, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.ewald-ew2d: { folder: examples/PACKAGES/electrode/madelung, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 0.0, walltime_norm: 0.0 }
in.ewald-ew3dc: { folder: examples/PACKAGES/electrode/madelung, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 0.0, walltime_norm: 0.0 }
in.ewald-ffield: { folder: examples/PACKAGES/electrode/madelung, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 0.0, walltime_norm: 0.0 }
in.pppm-ew3dc: { folder: examples/PACKAGES/electrode/madelung, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 0.0, walltime_norm: 0.0 }
in.pppm-ffield: { folder: examples/PACKAGES/electrode/madelung, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 0.0, walltime_norm: 0.0 }
in.ffield: { folder: examples/PACKAGES/electrode/au-aq, status: "failed, no Total wall time in the output, timeout (180s expired)", walltime: -1 }
in.tf: { folder: examples/PACKAGES/electrode/au-aq, status: "failed, no Total wall time in the output, timeout (180s expired)", walltime: -1 }
in.conp: { folder: examples/PACKAGES/electrode/graph-il, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 96.0, walltime_norm: 16.0 }
in.conq: { folder: examples/PACKAGES/electrode/graph-il, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 90.0, walltime_norm: 15.0 }
in.conq2: { folder: examples/PACKAGES/electrode/graph-il, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 62.0, walltime_norm: 10.333333333333334 }
in.etypes: { folder: examples/PACKAGES/electrode/graph-il, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 58.0, walltime_norm: 9.666666666666666 }
in.ffield: { folder: examples/PACKAGES/electrode/graph-il, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 41.0, walltime_norm: 6.833333333333333 }
in.ramp: { folder: examples/PACKAGES/electrode/graph-il, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 60.0, walltime_norm: 10.0 }
in.thermo: { folder: examples/PACKAGES/electrode/graph-il, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 57.0, walltime_norm: 9.5 }
in.planar-ewald-ew2d: { folder: examples/PACKAGES/electrode/planar, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.planar-ewald-ew3dc: { folder: examples/PACKAGES/electrode/planar, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.planar-ewald-ffield: { folder: examples/PACKAGES/electrode/planar, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.planar-pppm-ew3dc: { folder: examples/PACKAGES/electrode/planar, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.planar-pppm-ffield: { folder: examples/PACKAGES/electrode/planar, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.convective_pulse: { folder: examples/PACKAGES/atc/drift_diffusion, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'atc' is part of the ATC package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.ddm_schrodinger: { folder: examples/PACKAGES/atc/drift_diffusion, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'atc' is part of the ATC package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.finite_well: { folder: examples/PACKAGES/atc/drift_diffusion, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'atc' is part of the ATC package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.no_atoms_ddm: { folder: examples/PACKAGES/atc/drift_diffusion, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'atc' is part of the ATC package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.null_material_ddm: { folder: examples/PACKAGES/atc/drift_diffusion, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'atc' is part of the ATC package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.poisson1d_noatoms: { folder: examples/PACKAGES/atc/drift_diffusion, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'atc' is part of the ATC package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.poisson2d_noatoms: { folder: examples/PACKAGES/atc/drift_diffusion, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'atc' is part of the ATC package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.schrodinger-poisson2d_Jconstraint: { folder: examples/PACKAGES/atc/drift_diffusion, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'atc' is part of the ATC package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.schrodinger-poisson2d_convective: { folder: examples/PACKAGES/atc/drift_diffusion, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'atc' is part of the ATC package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.schrodinger-poisson2d_noatoms: { folder: examples/PACKAGES/atc/drift_diffusion, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'atc' is part of the ATC package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.cb_biaxial: { folder: examples/PACKAGES/atc/cauchy_born, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'atc' is part of the ATC package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.cb_shear: { folder: examples/PACKAGES/atc/cauchy_born, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'atc' is part of the ATC package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.cb_unistrain: { folder: examples/PACKAGES/atc/cauchy_born, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'atc' is part of the ATC package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.cb_unistrain_eam: { folder: examples/PACKAGES/atc/cauchy_born, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'atc' is part of the ATC package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.cb_unistrain_eam_linear: { folder: examples/PACKAGES/atc/cauchy_born, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'atc' is part of the ATC package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.cb_unistrain_linear: { folder: examples/PACKAGES/atc/cauchy_born, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'atc' is part of the ATC package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.cb_volumetric: { folder: examples/PACKAGES/atc/cauchy_born, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'atc' is part of the ATC package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.flying_cube: { folder: examples/PACKAGES/atc/cauchy_born, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'atc' is part of the ATC package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.ftcb_constV: { folder: examples/PACKAGES/atc/cauchy_born, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'atc' is part of the ATC package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.read_xref: { folder: examples/PACKAGES/atc/cauchy_born, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'atc' is part of the ATC package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.consistency: { folder: examples/PACKAGES/atc/hardy, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'atc' is part of the ATC package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.eam_kernel_convergence: { folder: examples/PACKAGES/atc/hardy, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'atc' is part of the ATC package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.eam_unistrain_cell: { folder: examples/PACKAGES/atc/hardy, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'atc' is part of the ATC package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.eam_unistrain_mesh: { folder: examples/PACKAGES/atc/hardy, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'atc' is part of the ATC package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.eam_unistrain_qcylinder: { folder: examples/PACKAGES/atc/hardy, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'atc' is part of the ATC package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.eam_unistrain_qsphere: { folder: examples/PACKAGES/atc/hardy, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'atc' is part of the ATC package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.eam_unistrain_step: { folder: examples/PACKAGES/atc/hardy, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'atc' is part of the ATC package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.eam_volume_stretch: { folder: examples/PACKAGES/atc/hardy, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'atc' is part of the ATC package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.eshelby_static: { folder: examples/PACKAGES/atc/hardy, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'atc' is part of the ATC package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.nvt: { folder: examples/PACKAGES/atc/hardy, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'atc' is part of the ATC package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.bar1d_fluids: { folder: examples/PACKAGES/atc/fluids, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'atc' is part of the ATC package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.concentration: { folder: examples/PACKAGES/atc/fluids, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'atc' is part of the ATC package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.conducting_interface: { folder: examples/PACKAGES/atc/fluids, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'atc' is part of the ATC package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.dielectric_interface: { folder: examples/PACKAGES/atc/fluids, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'atc' is part of the ATC package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.double_layer: { folder: examples/PACKAGES/atc/fluids, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'atc' is part of the ATC package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.liquid_electrostatic: { folder: examples/PACKAGES/atc/fluids, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'atc' is part of the ATC package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.opp_force: { folder: examples/PACKAGES/atc/fluids, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'atc' is part of the ATC package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.poisson: { folder: examples/PACKAGES/atc/fluids, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'atc' is part of the ATC package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.shear_flow: { folder: examples/PACKAGES/atc/fluids, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'atc' is part of the ATC package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.shear_no_atoms: { folder: examples/PACKAGES/atc/fluids, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'atc' is part of the ATC package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.harmonic_bonds: { folder: examples/PACKAGES/atc/molecule, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'atc' is part of the ATC package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.polarize: { folder: examples/PACKAGES/atc/molecule, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'atc' is part of the ATC package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.quartic_bonds: { folder: examples/PACKAGES/atc/molecule, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'atc' is part of the ATC package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.water: { folder: examples/PACKAGES/atc/molecule, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'atc' is part of the ATC package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.bar1d: { folder: examples/PACKAGES/atc/thermal, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'atc' is part of the ATC package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.bar1d_all_atoms: { folder: examples/PACKAGES/atc/thermal, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'atc' is part of the ATC package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.bar1d_combined: { folder: examples/PACKAGES/atc/thermal, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'atc' is part of the ATC package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.bar1d_flux: { folder: examples/PACKAGES/atc/thermal, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'atc' is part of the ATC package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.bar1d_frac_step: { folder: examples/PACKAGES/atc/thermal, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'atc' is part of the ATC package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.bar1d_hoover: { folder: examples/PACKAGES/atc/thermal, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'atc' is part of the ATC package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.bar1d_interpolate: { folder: examples/PACKAGES/atc/thermal, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'atc' is part of the ATC package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.bar1d_lumped: { folder: examples/PACKAGES/atc/thermal, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'atc' is part of the ATC package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.no_atoms: { folder: examples/PACKAGES/atc/thermal, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'atc' is part of the ATC package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.gaussianIC1d_hex: { folder: examples/PACKAGES/atc/mesh, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'atc' is part of the ATC package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.gaussianIC2d_hex: { folder: examples/PACKAGES/atc/mesh, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'atc' is part of the ATC package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.gaussianIC2d_hex20_uniform: { folder: examples/PACKAGES/atc/mesh, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'atc' is part of the ATC package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.gaussianIC2d_hex27_uniform: { folder: examples/PACKAGES/atc/mesh, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'atc' is part of the ATC package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.gaussianIC2d_tet: { folder: examples/PACKAGES/atc/mesh, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'atc' is part of the ATC package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.kernel2d_hex: { folder: examples/PACKAGES/atc/mesh, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'atc' is part of the ATC package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.kernel2d_tet: { folder: examples/PACKAGES/atc/mesh, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'atc' is part of the ATC package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.mesh2d_tet: { folder: examples/PACKAGES/atc/mesh, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'atc' is part of the ATC package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.semicircle: { folder: examples/PACKAGES/atc/mesh, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'atc' is part of the ATC package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.bar1d: { folder: examples/PACKAGES/atc/elastic, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'atc' is part of the ATC package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.bar1d_damped: { folder: examples/PACKAGES/atc/elastic, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'atc' is part of the ATC package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.bar1d_flux: { folder: examples/PACKAGES/atc/elastic, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'atc' is part of the ATC package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.bar1d_frac_step: { folder: examples/PACKAGES/atc/elastic, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'atc' is part of the ATC package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.bar1d_ghost_flux: { folder: examples/PACKAGES/atc/elastic, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'atc' is part of the ATC package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.bar1d_thermo_elastic: { folder: examples/PACKAGES/atc/elastic, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'atc' is part of the ATC package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.eam_energy: { folder: examples/PACKAGES/atc/elastic, status: "failed, no Total wall time in the output, --------------------------------------------------------------------------
MPI_ABORT was invoked on rank 0 in communicator MPI_COMM_WORLD
with errorcode 1.
NOTE: invoking MPI_ABORT causes Open MPI to kill all MPI processes.
You may or may not see output from other processes, depending on
exactly when Open MPI kills them.
--------------------------------------------------------------------------
", walltime: -1 }
in.electron_density: { folder: examples/PACKAGES/atc/elastic, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'atc' is part of the ATC package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.no_atoms: { folder: examples/PACKAGES/atc/elastic, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'atc' is part of the ATC package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.no_atoms_cb: { folder: examples/PACKAGES/atc/elastic, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'atc' is part of the ATC package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.no_atoms_cb_linear: { folder: examples/PACKAGES/atc/elastic, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'atc' is part of the ATC package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.bar1d_ttm: { folder: examples/PACKAGES/atc/two_temperature, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'atc' is part of the ATC package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.cutout: { folder: examples/PACKAGES/atc/two_temperature, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'atc' is part of the ATC package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.gaussianIC_ttm: { folder: examples/PACKAGES/atc/two_temperature, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'atc' is part of the ATC package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.no_atoms: { folder: examples/PACKAGES/atc/two_temperature, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'atc' is part of the ATC package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.restart: { folder: examples/PACKAGES/atc/two_temperature, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'atc' is part of the ATC package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.uniform_exchange: { folder: examples/PACKAGES/atc/two_temperature, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'atc' is part of the ATC package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.uniform_heating: { folder: examples/PACKAGES/atc/two_temperature, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'atc' is part of the ATC package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.pits: { folder: examples/PACKAGES/latboltz/pit_geometry, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'lb/fluid' is part of the LATBOLTZ package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.polymer: { folder: examples/PACKAGES/latboltz/polymer, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'lb/fluid' is part of the LATBOLTZ package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.confined_colloids: { folder: examples/PACKAGES/latboltz/confined_colloid, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'lb/fluid' is part of the LATBOLTZ package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.trapnewsphere: { folder: examples/PACKAGES/latboltz/diffusingsphere, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'lb/fluid' is part of the LATBOLTZ package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.translocation: { folder: examples/PACKAGES/latboltz/translocation, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'lb/fluid' is part of the LATBOLTZ package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.toycar: { folder: examples/PACKAGES/latboltz/toycar, status: "failed, no Total wall time in the output, timeout (180s expired)", walltime: -1 }
in.microrheology: { folder: examples/PACKAGES/latboltz/microrheology, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'lb/fluid' is part of the LATBOLTZ package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.dragtest: { folder: examples/PACKAGES/latboltz/dragforce, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'lb/fluid' is part of the LATBOLTZ package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.planewall: { folder: examples/PACKAGES/latboltz/planewall, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'lb/fluid' is part of the LATBOLTZ package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.compute: { folder: examples/PACKAGES/pace/compute, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.pace.product: { folder: examples/PACKAGES/pace, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 9.0, walltime_norm: 1.5 }
in.pace.recursive: { folder: examples/PACKAGES/pace, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 7.0, walltime_norm: 1.1666666666666667 }
in.addtorque: { folder: examples/PACKAGES/addtorque, status: "completed", failed_checks: { abs_diff_failed: 2, rel_diff_failed: 3 }, walltime: 51.0, walltime_norm: 8.5 }
in.cnp: { folder: examples/PACKAGES/cnp, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 18.0, walltime_norm: 3.0 }
in.CH4fc.ang: { folder: examples/PACKAGES/eff/fixed-core/CH4, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 3.0, walltime_norm: 0.5 }
in.CH4fc.bohr: { folder: examples/PACKAGES/eff/fixed-core/CH4, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 0.0, walltime_norm: 0.0 }
in.CH4fc.spe.ang: { folder: examples/PACKAGES/eff/fixed-core/CH4, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 0.0, walltime_norm: 0.0 }
in.CH4fc.spe.bohr: { folder: examples/PACKAGES/eff/fixed-core/CH4, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 0.0, walltime_norm: 0.0 }
in.C2H6fc.ang: { folder: examples/PACKAGES/eff/fixed-core/C2H6, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 2.0, walltime_norm: 0.3333333333333333 }
in.C2H6fc.bohr: { folder: examples/PACKAGES/eff/fixed-core/C2H6, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 0.0, walltime_norm: 0.0 }
in.ch4.dynamics: { folder: examples/PACKAGES/eff/CH4, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.ch4.min: { folder: examples/PACKAGES/eff/CH4, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.ch4_ionized.dynamics: { folder: examples/PACKAGES/eff/CH4, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 16.0, walltime_norm: 2.6666666666666665 }
in.Be-solid.spe: { folder: examples/PACKAGES/eff/Be-solid, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 14.0, walltime_norm: 2.3333333333333335 }
in.adamantane_ionized.nve: { folder: examples/PACKAGES/eff/Auger-Adamantane, status: "failed, ERROR: Lost atoms: original 101 current 100 (src/thermo.cpp:494).", walltime: -1 }
in.SiH4: { folder: examples/PACKAGES/eff/ECP/SiH4, status: "completed, error parsing log.lammps into YAML", walltime: 0.0, walltime_norm: 0.0 }
in.SiH4.ang: { folder: examples/PACKAGES/eff/ECP/SiH4, status: "completed, error parsing log.lammps into YAML", walltime: 0.0, walltime_norm: 0.0 }
in.Si2H6: { folder: examples/PACKAGES/eff/ECP/Si2H6, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.Si2H6.ang: { folder: examples/PACKAGES/eff/ECP/Si2H6, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 4.0, walltime_norm: 0.6666666666666666 }
in.SiC: { folder: examples/PACKAGES/eff/ECP/SiC/bulk, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 31.0, walltime_norm: 5.166666666666667 }
in.h2bulk.npt: { folder: examples/PACKAGES/eff/H_plasma, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 46.0, walltime_norm: 7.666666666666667 }
in.h2bulk.nve: { folder: examples/PACKAGES/eff/H_plasma, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 78.0, walltime_norm: 13.0 }
in.h2bulk.nve.ang: { folder: examples/PACKAGES/eff/H_plasma, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 87.0, walltime_norm: 14.5 }
in.Li-dendritic.min: { folder: examples/PACKAGES/eff/Li-dendritic, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 35.0, walltime_norm: 5.833333333333333 }
in.Li-dendritic.nvt: { folder: examples/PACKAGES/eff/Li-dendritic, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 69.0, walltime_norm: 11.5 }
in.Li.ang: { folder: examples/PACKAGES/eff/Li-solid, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 74.0, walltime_norm: 12.333333333333334 }
in.Li.bohr: { folder: examples/PACKAGES/eff/Li-solid, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 53.0, walltime_norm: 8.833333333333334 }
in.h2: { folder: examples/PACKAGES/eff/H2, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 4.0, walltime_norm: 0.6666666666666666 }
in.h_atom.spe.ang: { folder: examples/PACKAGES/eff/H, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 0.0, walltime_norm: 0.0 }
in.h_atom.spe.bohr: { folder: examples/PACKAGES/eff/H, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 0.0, walltime_norm: 0.0 }
in.npt_biaxial: { folder: examples/PACKAGES/uef/npt_biaxial, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 3.0, walltime_norm: 0.5 }
in.nvt_uniaxial: { folder: examples/PACKAGES/uef/nvt_uniaxial, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 3.0, walltime_norm: 0.5 }
in.crystal: { folder: examples/PACKAGES/rhok, status: "completed", failed_checks: { abs_diff_failed: 2, rel_diff_failed: 2 }, walltime: 23.0, walltime_norm: 3.8333333333333335 }
in.pinning: { folder: examples/PACKAGES/rhok, status: "failed, ERROR: Cannot open file data.halfhalf: No such file or directory (src/read_data.cpp:367).", walltime: -1 }
in.setup: { folder: examples/PACKAGES/rhok, status: "completed", failed_checks: { abs_diff_failed: 2, rel_diff_failed: 2 }, walltime: 17.0, walltime_norm: 2.8333333333333335 }
in.peptide-colvars: { folder: examples/PACKAGES/colvars, status: "completed, error parsing log.lammps into YAML", walltime: 4.0, walltime_norm: 0.6666666666666666 }
in.peptide-colvars2: { folder: examples/PACKAGES/colvars, status: "completed, error parsing log.lammps into YAML", walltime: 1.0, walltime_norm: 0.16666666666666666 }
in.peptide-spring: { folder: examples/PACKAGES/colvars, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 1.0, walltime_norm: 0.16666666666666666 }
in.peptide-spring2: { folder: examples/PACKAGES/colvars, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 1.0, walltime_norm: 0.16666666666666666 }
in.hdnnp: { folder: examples/PACKAGES/hdnnp, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized pair style 'hdnnp' is part of the ML-HDNNP package which is not enabled in this LAMMPS binary. (src/force.cpp:275)", walltime: -1 }
in.hybrid: { folder: examples/PACKAGES/hdnnp, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized pair style 'hdnnp' is part of the ML-HDNNP package which is not enabled in this LAMMPS binary. (src/force.cpp:275)", walltime: -1 }
in.edip-Si: { folder: examples/PACKAGES/edip, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 0.0, walltime_norm: 0.0 }
in.edip-Si-multi: { folder: examples/PACKAGES/edip, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 0.0, walltime_norm: 0.0 }
in.edip-SiC: { folder: examples/PACKAGES/edip, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 0.0, walltime_norm: 0.0 }
in.large_nylon_melt: { folder: examples/PACKAGES/reaction/nylon,6-6_melt, status: "completed", failed_checks: { abs_diff_failed: 2, rel_diff_failed: 2 }, walltime: 60.0, walltime_norm: 10.0 }
in.tiny_polystyrene.stabilized: { folder: examples/PACKAGES/reaction/tiny_polystyrene, status: "completed", failed_checks: { abs_diff_failed: 2, rel_diff_failed: 2 }, walltime: 18.0, walltime_norm: 3.0 }
in.tiny_epoxy.stabilized: { folder: examples/PACKAGES/reaction/tiny_epoxy, status: "completed", failed_checks: { abs_diff_failed: 1, rel_diff_failed: 1 }, walltime: 0.0, walltime_norm: 0.0 }
in.grow_styrene: { folder: examples/PACKAGES/reaction/create_atoms_polystyrene, status: "completed", failed_checks: { abs_diff_failed: 2, rel_diff_failed: 2 }, walltime: 6.0, walltime_norm: 1.0 }
in.tiny_nylon.stabilized: { folder: examples/PACKAGES/reaction/tiny_nylon, status: "failed, unknown command, package not installed, ERROR: Unknown command: react rxn2 all 1 0.0 5.0 mol3 mol4 rxn1_stp2_map rescale_charges yes (src/input.cpp:314)", walltime: -1 }
in.tiny_nylon.stabilized_variable_probability: { folder: examples/PACKAGES/reaction/tiny_nylon, status: "completed", failed_checks: { abs_diff_failed: 2, rel_diff_failed: 2 }, walltime: 0.0, walltime_norm: 0.0 }
in.tiny_nylon.unstabilized: { folder: examples/PACKAGES/reaction/tiny_nylon, status: "completed", failed_checks: { abs_diff_failed: 2, rel_diff_failed: 2 }, walltime: 0.0, walltime_norm: 0.0 }
in.BulkNi: { folder: examples/PACKAGES/diffraction, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 158.0, walltime_norm: 26.333333333333332 }
in.tdpd: { folder: examples/PACKAGES/dpd-meso/tdpd, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 64.0, walltime_norm: 10.666666666666666 }
in.tdpd-region: { folder: examples/PACKAGES/dpd-meso/tdpd, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 63.0, walltime_norm: 10.5 }
in.mdpd: { folder: examples/PACKAGES/dpd-meso/mdpd, status: "completed", failed_checks: { abs_diff_failed: 3, rel_diff_failed: 3 }, walltime: 100.0, walltime_norm: 16.666666666666668 }
in.edpd: { folder: examples/PACKAGES/dpd-meso/edpd, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 87.0, walltime_norm: 14.5 }
in.edpd-region: { folder: examples/PACKAGES/dpd-meso/edpd, status: "completed", failed_checks: { abs_diff_failed: 6, rel_diff_failed: 6 }, walltime: 87.0, walltime_norm: 14.5 }
in.cylinder: { folder: examples/PACKAGES/stressprofile, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 4.0, walltime_norm: 0.6666666666666666 }
in.flat: { folder: examples/PACKAGES/stressprofile, status: "failed, ERROR: Illegal compute stress/cartesian command: missing argument(s) (src/EXTRA-COMPUTE/compute_stress_cartesian.cpp:65).", walltime: -1 }
in.sphere: { folder: examples/PACKAGES/stressprofile, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 1.0, walltime_norm: 0.16666666666666666 }
in.srp: { folder: examples/PACKAGES/srp, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 6.0, walltime_norm: 1.0 }
in.scafacos: { folder: examples/PACKAGES/scafacos, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized kspace style 'scafacos' is part of the SCAFACOS package which is not enabled in this LAMMPS binary. (src/force.cpp:660)", walltime: -1 }
in.scafacos.cw.ewald: { folder: examples/PACKAGES/scafacos, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized kspace style 'scafacos' is part of the SCAFACOS package which is not enabled in this LAMMPS binary. (src/force.cpp:660)", walltime: -1 }
in.scafacos.cw.fmm: { folder: examples/PACKAGES/scafacos, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized kspace style 'scafacos' is part of the SCAFACOS package which is not enabled in this LAMMPS binary. (src/force.cpp:660)", walltime: -1 }
in.scafacos.cw.p2nfft: { folder: examples/PACKAGES/scafacos, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized kspace style 'scafacos' is part of the SCAFACOS package which is not enabled in this LAMMPS binary. (src/force.cpp:660)", walltime: -1 }
in.scafacos.cw.p3m: { folder: examples/PACKAGES/scafacos, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized kspace style 'scafacos' is part of the SCAFACOS package which is not enabled in this LAMMPS binary. (src/force.cpp:660)", walltime: -1 }
in.scafacos.ewald: { folder: examples/PACKAGES/scafacos, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized kspace style 'scafacos' is part of the SCAFACOS package which is not enabled in this LAMMPS binary. (src/force.cpp:660)", walltime: -1 }
in.scafacos.fmm: { folder: examples/PACKAGES/scafacos, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized kspace style 'scafacos' is part of the SCAFACOS package which is not enabled in this LAMMPS binary. (src/force.cpp:660)", walltime: -1 }
in.scafacos.hsph.direct: { folder: examples/PACKAGES/scafacos, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized kspace style 'scafacos' is part of the SCAFACOS package which is not enabled in this LAMMPS binary. (src/force.cpp:660)", walltime: -1 }
in.scafacos.hsph.fmm: { folder: examples/PACKAGES/scafacos, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized kspace style 'scafacos' is part of the SCAFACOS package which is not enabled in this LAMMPS binary. (src/force.cpp:660)", walltime: -1 }
in.scafacos.hsph.p2nfft: { folder: examples/PACKAGES/scafacos, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized kspace style 'scafacos' is part of the SCAFACOS package which is not enabled in this LAMMPS binary. (src/force.cpp:660)", walltime: -1 }
in.scafacos.p2nfft: { folder: examples/PACKAGES/scafacos, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized kspace style 'scafacos' is part of the SCAFACOS package which is not enabled in this LAMMPS binary. (src/force.cpp:660)", walltime: -1 }
in.scafacos.p3m: { folder: examples/PACKAGES/scafacos, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized kspace style 'scafacos' is part of the SCAFACOS package which is not enabled in this LAMMPS binary. (src/force.cpp:660)", walltime: -1 }
in.h_atom: { folder: examples/PACKAGES/awpmd, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized atom style 'wavepacket' is part of the AWPMD package which is not enabled in this LAMMPS binary. (src/atom.cpp:745)", walltime: -1 }
in.h_molecule: { folder: examples/PACKAGES/awpmd, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized atom style 'wavepacket' is part of the AWPMD package which is not enabled in this LAMMPS binary. (src/atom.cpp:745)", walltime: -1 }
in.gold_gr: { folder: examples/PACKAGES/interlayer/saip_metal, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 10.0, walltime_norm: 1.6666666666666667 }
in.atom-diffusion: { folder: examples/PACKAGES/interlayer/kolmogorov_crespi_z, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.bilayer-graphene: { folder: examples/PACKAGES/interlayer/kolmogorov_crespi_z, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 1.0, walltime_norm: 0.16666666666666666 }
in.gr_water: { folder: examples/PACKAGES/interlayer/aip_water_2dm, status: "completed", failed_checks: { abs_diff_failed: 2, rel_diff_failed: 2 }, walltime: 19.0, walltime_norm: 3.1666666666666665 }
in.gr_water.opt: { folder: examples/PACKAGES/interlayer/aip_water_2dm, status: "completed", failed_checks: { abs_diff_failed: 2, rel_diff_failed: 2 }, walltime: 10.0, walltime_norm: 1.6666666666666667 }
in.bilayer-graphene: { folder: examples/PACKAGES/interlayer/kolmogorov_crespi_full, status: "failed, mismatched columns in the log files", walltime: 121.0, walltime_norm: 20.166666666666668 }
in.CH_drip: { folder: examples/PACKAGES/interlayer/drip, status: "completed", failed_checks: { abs_diff_failed: 2, rel_diff_failed: 1 }, walltime: 1.0, walltime_norm: 0.16666666666666666 }
in.C_drip: { folder: examples/PACKAGES/interlayer/drip, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 1.0, walltime_norm: 0.16666666666666666 }
in.mos2: { folder: examples/PACKAGES/interlayer/ilp_tmds, status: "completed", failed_checks: { abs_diff_failed: 1, rel_diff_failed: 1 }, walltime: 57.0, walltime_norm: 9.5 }
in.bilayer-graphene: { folder: examples/PACKAGES/interlayer/ilp_graphene_hbn, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 70.0, walltime_norm: 11.666666666666666 }
in.bilayer-hBN: { folder: examples/PACKAGES/interlayer/ilp_graphene_hbn, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 134.0, walltime_norm: 22.333333333333332 }
in.grhBN: { folder: examples/PACKAGES/interlayer/ilp_graphene_hbn, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 123.0, walltime_norm: 20.5 }
in.ilp_graphene_hbn: { folder: examples/PACKAGES/interlayer/ilp_graphene_hbn, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 129.0, walltime_norm: 21.5 }
in.smatbAgCuPancake: { folder: examples/PACKAGES/smtbq, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 0.0, walltime_norm: 0.0 }
in.smatbBulkFCC: { folder: examples/PACKAGES/smtbq, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 0.0, walltime_norm: 0.0 }
in.smtbq.Al: { folder: examples/PACKAGES/smtbq, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 3.0, walltime_norm: 0.5 }
in.smtbq.Al2O3: { folder: examples/PACKAGES/smtbq, status: "failed, no Total wall time in the output, timeout (180s expired)", walltime: -1 }
in.smtbq.TiO2: { folder: examples/PACKAGES/smtbq, status: "failed, no Total wall time in the output, timeout (180s expired)", walltime: -1 }
in.slater: { folder: examples/PACKAGES/slater, status: "failed, no Total wall time in the output, timeout (180s expired)", walltime: -1 }
in.slcsa: { folder: examples/PACKAGES/sna_nnn_slcsa, status: "completed, error parsing log.lammps into YAML", walltime: 42.0, walltime_norm: 7.0 }
in.orient_eco: { folder: examples/PACKAGES/orient_eco, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 128.0, walltime_norm: 21.333333333333332 }
in.entropy: { folder: examples/PACKAGES/entropy, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 13.0, walltime_norm: 2.1666666666666665 }
in.bpti: { folder: examples/PACKAGES/filter_corotate, status: "completed, error parsing log.lammps into YAML", walltime: 24.0, walltime_norm: 4.0 }
in.peptide: { folder: examples/PACKAGES/filter_corotate, status: "completed", failed_checks: { abs_diff_failed: 3, rel_diff_failed: 3 }, walltime: 98.0, walltime_norm: 16.333333333333332 }
in.graphene: { folder: examples/PACKAGES/ipi, status: "failed, no Total wall time in the output, --------------------------------------------------------------------------
MPI_ABORT was invoked on rank 0 in communicator MPI_COMM_WORLD
with errorcode 1.
NOTE: invoking MPI_ABORT causes Open MPI to kill all MPI processes.
You may or may not see output from other processes, depending on
exactly when Open MPI kills them.
--------------------------------------------------------------------------
", walltime: -1 }
in.gREM-npt: { folder: examples/PACKAGES/grem/lj-single, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 0.0, walltime_norm: 0.0 }
in.gREM-nvt: { folder: examples/PACKAGES/grem/lj-single, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 0.0, walltime_norm: 0.0 }
in.gREM: { folder: examples/PACKAGES/grem/lj-6rep, status: "failed, ERROR: Cannot open file restart_file: No such file or directory (src/read_data.cpp:367).", walltime: -1 }
in.gREM-temper: { folder: examples/PACKAGES/grem/lj-temper, status: "failed, ERROR: World variable count doesn't match # of partitions (src/variable.cpp:255).", walltime: -1 }
in.compute_stress_mop: { folder: examples/PACKAGES/mop, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.fix_wall: { folder: examples/PACKAGES/ees, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.fix_wall_region: { folder: examples/PACKAGES/ees, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.ti_spring: { folder: examples/PACKAGES/ti, status: "failed, no Total wall time in the output, --------------------------------------------------------------------------
MPI_ABORT was invoked on rank 0 in communicator MPI_COMM_WORLD
with errorcode 1.
NOTE: invoking MPI_ABORT causes Open MPI to kill all MPI processes.
You may or may not see output from other processes, depending on
exactly when Open MPI kills them.
--------------------------------------------------------------------------
", walltime: -1 }
in.extep-bn: { folder: examples/PACKAGES/extep, status: "completed", failed_checks: { abs_diff_failed: 3, rel_diff_failed: 3 }, walltime: 0.0, walltime_norm: 0.0 }
in.toluene.lang: { folder: examples/PACKAGES/drude/toluene, status: "completed", failed_checks: { abs_diff_failed: 4, rel_diff_failed: 5 }, walltime: 68.0, walltime_norm: 11.333333333333334 }
in.toluene.nh: { folder: examples/PACKAGES/drude/toluene, status: "completed", failed_checks: { abs_diff_failed: 5, rel_diff_failed: 5 }, walltime: 68.0, walltime_norm: 11.333333333333334 }
in.butane.lang: { folder: examples/PACKAGES/drude/butane, status: "completed", failed_checks: { abs_diff_failed: 3, rel_diff_failed: 3 }, walltime: 50.0, walltime_norm: 8.333333333333334 }
in.butane.nh: { folder: examples/PACKAGES/drude/butane, status: "completed", failed_checks: { abs_diff_failed: 3, rel_diff_failed: 5 }, walltime: 49.0, walltime_norm: 8.166666666666666 }
in.butane.tgnh: { folder: examples/PACKAGES/drude/butane, status: "completed", failed_checks: { abs_diff_failed: 4, rel_diff_failed: 4 }, walltime: 49.0, walltime_norm: 8.166666666666666 }
in.swm4-ndp.lang: { folder: examples/PACKAGES/drude/swm4-ndp, status: "completed", failed_checks: { abs_diff_failed: 5, rel_diff_failed: 5 }, walltime: 65.0, walltime_norm: 10.833333333333334 }
in.swm4-ndp.nh: { folder: examples/PACKAGES/drude/swm4-ndp, status: "completed", failed_checks: { abs_diff_failed: 5, rel_diff_failed: 5 }, walltime: 54.0, walltime_norm: 9.0 }
in.ethylene_glycol: { folder: examples/PACKAGES/drude/ethylene_glycol, status: "completed", failed_checks: { abs_diff_failed: 4, rel_diff_failed: 4 }, walltime: 25.0, walltime_norm: 4.166666666666667 }
in.ethanol.lang: { folder: examples/PACKAGES/drude/ethanol, status: "completed", failed_checks: { abs_diff_failed: 5, rel_diff_failed: 5 }, walltime: 43.0, walltime_norm: 7.166666666666667 }
in.ethanol.nh: { folder: examples/PACKAGES/drude/ethanol, status: "completed", failed_checks: { abs_diff_failed: 5, rel_diff_failed: 5 }, walltime: 42.0, walltime_norm: 7.0 }
in.ethanol.tgnh: { folder: examples/PACKAGES/drude/ethanol, status: "completed", failed_checks: { abs_diff_failed: 5, rel_diff_failed: 5 }, walltime: 44.0, walltime_norm: 7.333333333333333 }
in.force: { folder: examples/PACKAGES/tally, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 2.0, walltime_norm: 0.3333333333333333 }
in.pe: { folder: examples/PACKAGES/tally, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 2.0, walltime_norm: 0.3333333333333333 }
in.stress: { folder: examples/PACKAGES/tally, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 2.0, walltime_norm: 0.3333333333333333 }
in.system: { folder: examples/PACKAGES/momb, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 13.0, walltime_norm: 2.1666666666666665 }
in.momentum: { folder: examples/PACKAGES/momentum, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 41.0, walltime_norm: 6.833333333333333 }
in.alpha: { folder: examples/PACKAGES/meam_sw_spline/Ti, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.alpha_relaxation: { folder: examples/PACKAGES/meam_sw_spline/Ti, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.beta: { folder: examples/PACKAGES/meam_sw_spline/Ti, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.energy_conservation.meam.sw: { folder: examples/PACKAGES/meam_sw_spline/Ti, status: "completed", failed_checks: { abs_diff_failed: 2, rel_diff_failed: 2 }, walltime: 74.0, walltime_norm: 12.333333333333334 }
in.fcc: { folder: examples/PACKAGES/meam_sw_spline/Ti, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.hexagonal: { folder: examples/PACKAGES/meam_sw_spline/Ti, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.omega: { folder: examples/PACKAGES/meam_sw_spline/Ti, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.single_atom: { folder: examples/PACKAGES/meam_sw_spline/Ti, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.bcc: { folder: examples/PACKAGES/meam_sw_spline/Si, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.bcc_relax: { folder: examples/PACKAGES/meam_sw_spline/Si, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.dc: { folder: examples/PACKAGES/meam_sw_spline/Si, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.dc_relax: { folder: examples/PACKAGES/meam_sw_spline/Si, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 1.0, walltime_norm: 0.16666666666666666 }
in.energy_conservation.meam.sw: { folder: examples/PACKAGES/meam_sw_spline/Si, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 11.0, walltime_norm: 1.8333333333333333 }
in.fcc: { folder: examples/PACKAGES/meam_sw_spline/Si, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.fcc_relax: { folder: examples/PACKAGES/meam_sw_spline/Si, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.hcp_relax: { folder: examples/PACKAGES/meam_sw_spline/Si, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.sc: { folder: examples/PACKAGES/meam_sw_spline/Si, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.sc_relax: { folder: examples/PACKAGES/meam_sw_spline/Si, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.single_atom: { folder: examples/PACKAGES/meam_sw_spline/Si, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.film_mesocnt: { folder: examples/PACKAGES/mesont, status: "failed, no Total wall time in the output, --------------------------------------------------------------------------
MPI_ABORT was invoked on rank 0 in communicator MPI_COMM_WORLD
with errorcode 1.
NOTE: invoking MPI_ABORT causes Open MPI to kill all MPI processes.
You may or may not see output from other processes, depending on
exactly when Open MPI kills them.
--------------------------------------------------------------------------
", walltime: -1 }
in.cauchystat: { folder: examples/PACKAGES/cauchy, status: "completed", failed_checks: { abs_diff_failed: 1, rel_diff_failed: 1 }, walltime: 1.0, walltime_norm: 0.16666666666666666 }
in.rubber_strip_pull: { folder: examples/PACKAGES/machdyn/rubber_strip_pull, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 2.0, walltime_norm: 0.3333333333333333 }
in.aluminum_strip_pull: { folder: examples/PACKAGES/machdyn/aluminum_strip_pull, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 1.0, walltime_norm: 0.16666666666666666 }
in.funnel_flow: { folder: examples/PACKAGES/machdyn/funnel_flow, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 29.0, walltime_norm: 4.833333333333333 }
in.fluid_structure_interaction: { folder: examples/PACKAGES/machdyn/fluid_structure_interaction, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 32.0, walltime_norm: 5.333333333333333 }
in.rubber_rings_3d: { folder: examples/PACKAGES/machdyn/rubber_rings_3d, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 21.0, walltime_norm: 3.5 }
in.h2o-quantum: { folder: examples/PACKAGES/gle, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 13.0, walltime_norm: 2.1666666666666665 }
in.h2o-smart: { folder: examples/PACKAGES/gle, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 13.0, walltime_norm: 2.1666666666666665 }
in.pafi: { folder: examples/PACKAGES/pafi, status: "failed, no Total wall time in the output, --------------------------------------------------------------------------
MPI_ABORT was invoked on rank 0 in communicator MPI_COMM_WORLD
with errorcode 1.
NOTE: invoking MPI_ABORT causes Open MPI to kill all MPI processes.
You may or may not see output from other processes, depending on
exactly when Open MPI kills them.
--------------------------------------------------------------------------
", walltime: -1 }
in.scp: { folder: examples/PACKAGES/pimd/prot-hairpin, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 15.0, walltime_norm: 2.5 }
in.scp: { folder: examples/PACKAGES/pimd/para-h2, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 6.0, walltime_norm: 1.0 }
in.lmp: { folder: examples/PACKAGES/pimd/langevin_reduced_units, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 0.0, walltime_norm: 0.0 }
in.langevin.metal: { folder: examples/PACKAGES/pimd/langevin_metal_units, status: "completed", failed_checks: { abs_diff_failed: 2, rel_diff_failed: 2 }, walltime: 0.0, walltime_norm: 0.0 }
in.pimd-langevin.metal: { folder: examples/PACKAGES/pimd/langevin_metal_units, status: "completed", failed_checks: { abs_diff_failed: 2, rel_diff_failed: 2 }, walltime: 0.0, walltime_norm: 0.0 }
in.rann: { folder: examples/PACKAGES/rann, status: "failed, no Total wall time in the output, --------------------------------------------------------------------------
MPI_ABORT was invoked on rank 0 in communicator MPI_COMM_WORLD
with errorcode 1.
NOTE: invoking MPI_ABORT causes Open MPI to kill all MPI processes.
You may or may not see output from other processes, depending on
exactly when Open MPI kills them.
--------------------------------------------------------------------------
", walltime: -1 }
in.msd.2d: { folder: examples/DIFFUSE, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 36.0, walltime_norm: 6.0 }
in.vacf.2d: { folder: examples/DIFFUSE, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 39.0, walltime_norm: 6.5 }
in.numdiff: { folder: examples/numdiff, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 0.0, walltime_norm: 0.0 }
in.bpm.pour: { folder: examples/bpm/pour, status: "failed, no Total wall time in the output, timeout (180s expired)", walltime: -1 }
in.bpm.impact.rotational: { folder: examples/bpm/impact, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 102.0, walltime_norm: 17.0 }
in.bpm.impact.spring: { folder: examples/bpm/impact, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 12.0, walltime_norm: 2.0 }
in.rheo.balloon: { folder: examples/rheo/balloon, status: "failed, no Total wall time in the output, timeout (180s expired)", walltime: -1 }
in.rheo.oxidation: { folder: examples/rheo/oxidation, status: "failed, no Total wall time in the output, timeout (180s expired)", walltime: -1 }
in.rheo.taylor.green: { folder: examples/rheo/taylor-green, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 113.0, walltime_norm: 18.833333333333332 }
in.rheo.ice.cubes: { folder: examples/rheo/ice-cubes, status: "failed, no Total wall time in the output, --------------------------------------------------------------------------
MPI_ABORT was invoked on rank 0 in communicator MPI_COMM_WORLD
with errorcode 1.
NOTE: invoking MPI_ABORT causes Open MPI to kill all MPI processes.
You may or may not see output from other processes, depending on
exactly when Open MPI kills them.
--------------------------------------------------------------------------
", walltime: -1 }
in.rheo.poiseuille: { folder: examples/rheo/poiseuille, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 29.0, walltime_norm: 4.833333333333333 }
in.rheo.dam.break: { folder: examples/rheo/dam-break, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 159.0, walltime_norm: 26.5 }
in.peptide: { folder: examples/peptide, status: "completed, error parsing log.lammps into YAML", walltime: 4.0, walltime_norm: 0.6666666666666666 }
in.coreshell: { folder: examples/coreshell, status: "completed", failed_checks: { abs_diff_failed: 7, rel_diff_failed: 9 }, walltime: 10.0, walltime_norm: 1.6666666666666667 }
in.coreshell.dsf: { folder: examples/coreshell, status: "completed", failed_checks: { abs_diff_failed: 7, rel_diff_failed: 8 }, walltime: 20.0, walltime_norm: 3.3333333333333335 }
in.coreshell.thermostats: { folder: examples/coreshell, status: "completed", failed_checks: { abs_diff_failed: 12, rel_diff_failed: 14 }, walltime: 14.0, walltime_norm: 2.3333333333333335 }
in.coreshell.wolf: { folder: examples/coreshell, status: "completed", failed_checks: { abs_diff_failed: 5, rel_diff_failed: 5 }, walltime: 22.0, walltime_norm: 3.6666666666666665 }
in.marble_race: { folder: examples/mesh, status: "completed", failed_checks: { abs_diff_failed: 5, rel_diff_failed: 5 }, walltime: 131.0, walltime_norm: 21.833333333333332 }
in.mesh_box: { folder: examples/mesh, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 10.0, walltime_norm: 1.6666666666666667 }
in.abcfire: { folder: examples/fire, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.abcfire_mod: { folder: examples/fire, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.cg: { folder: examples/fire, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.fire: { folder: examples/fire, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.fire_mod: { folder: examples/fire, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.meam.abcfire: { folder: examples/fire, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 43.0, walltime_norm: 7.166666666666667 }
in.meam.fire: { folder: examples/fire, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 62.0, walltime_norm: 10.333333333333334 }
in.neb.sivac.abcfire: { folder: examples/fire, status: "failed, ERROR: Cannot use NEB with a single replica (src/REPLICA/neb.cpp:141).", walltime: -1 }
in.neb.sivac.abcfire_mod: { folder: examples/fire, status: "failed, ERROR: Cannot use NEB with a single replica (src/REPLICA/neb.cpp:141).", walltime: -1 }
in.neb.sivac.fire: { folder: examples/fire, status: "failed, ERROR: Cannot use NEB with a single replica (src/REPLICA/neb.cpp:141).", walltime: -1 }
in.neb.sivac.fire_mod: { folder: examples/fire, status: "failed, ERROR: Cannot use NEB with a single replica (src/REPLICA/neb.cpp:141).", walltime: -1 }
in.neb.sivac.qm: { folder: examples/fire, status: "failed, ERROR: Cannot use NEB with a single replica (src/REPLICA/neb.cpp:141).", walltime: -1 }
in.bcc.orthog: { folder: examples/triclinic, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.bcc.primitive: { folder: examples/triclinic, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.data.general: { folder: examples/triclinic, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.fcc.orthog: { folder: examples/triclinic, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.fcc.primitive: { folder: examples/triclinic, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.hex.orthog: { folder: examples/triclinic, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.hex.primitive: { folder: examples/triclinic, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.sq2.orthog: { folder: examples/triclinic, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.sq2.primitive: { folder: examples/triclinic, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.tri.srd: { folder: examples/ASPHERE/tri, status: "completed", failed_checks: { abs_diff_failed: 4, rel_diff_failed: 4 }, walltime: 143.0, walltime_norm: 23.833333333333332 }
in.star: { folder: examples/ASPHERE/star, status: "completed", failed_checks: { abs_diff_failed: 3, rel_diff_failed: 3 }, walltime: 12.0, walltime_norm: 2.0 }
in.star.mp: { folder: examples/ASPHERE/star, status: "completed", failed_checks: { abs_diff_failed: 3, rel_diff_failed: 3 }, walltime: 12.0, walltime_norm: 2.0 }
in.box: { folder: examples/ASPHERE/box, status: "completed", failed_checks: { abs_diff_failed: 2, rel_diff_failed: 3 }, walltime: 18.0, walltime_norm: 3.0 }
in.box.mp: { folder: examples/ASPHERE/box, status: "completed", failed_checks: { abs_diff_failed: 3, rel_diff_failed: 3 }, walltime: 19.0, walltime_norm: 3.1666666666666665 }
in.dimer: { folder: examples/ASPHERE/dimer, status: "completed", failed_checks: { abs_diff_failed: 3, rel_diff_failed: 3 }, walltime: 6.0, walltime_norm: 1.0 }
in.dimer.mp: { folder: examples/ASPHERE/dimer, status: "completed", failed_checks: { abs_diff_failed: 3, rel_diff_failed: 3 }, walltime: 16.0, walltime_norm: 2.6666666666666665 }
in.vesicle: { folder: examples/ASPHERE/vesicle, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 9.0, walltime_norm: 1.5 }
in.line: { folder: examples/ASPHERE/line, status: "failed, no Total wall time in the output, timeout (180s expired)", walltime: -1 }
in.line.srd: { folder: examples/ASPHERE/line, status: "failed, no Total wall time in the output, --------------------------------------------------------------------------
MPI_ABORT was invoked on rank 0 in communicator MPI_COMM_WORLD
with errorcode 1.
NOTE: invoking MPI_ABORT causes Open MPI to kill all MPI processes.
You may or may not see output from other processes, depending on
exactly when Open MPI kills them.
--------------------------------------------------------------------------
", walltime: -1 }
in.poly: { folder: examples/ASPHERE/poly, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 8.0, walltime_norm: 1.3333333333333333 }
in.poly.mp: { folder: examples/ASPHERE/poly, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 8.0, walltime_norm: 1.3333333333333333 }
in.flat_membrane: { folder: examples/ASPHERE/flat_membrane, status: "completed", failed_checks: { abs_diff_failed: 2, rel_diff_failed: 2 }, walltime: 7.0, walltime_norm: 1.1666666666666667 }
in.ellipsoid: { folder: examples/ASPHERE/ellipsoid, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 9.0, walltime_norm: 1.5 }
in.ellipsoid.mp: { folder: examples/ASPHERE/ellipsoid, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 9.0, walltime_norm: 1.5 }
in.ubiquitin: { folder: examples/amoeba, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 12.0, walltime_norm: 2.0 }
in.water_box.amoeba: { folder: examples/amoeba, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 8.0, walltime_norm: 1.3333333333333333 }
in.water_box.hippo: { folder: examples/amoeba, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 6.0, walltime_norm: 1.0 }
in.water_dimer.amoeba: { folder: examples/amoeba, status: "completed", failed_checks: { abs_diff_failed: 1, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.water_dimer.hippo: { folder: examples/amoeba, status: "completed", failed_checks: { abs_diff_failed: 1, rel_diff_failed: 1 }, walltime: 0.0, walltime_norm: 0.0 }
in.water_hexamer.amoeba: { folder: examples/amoeba, status: "completed", failed_checks: { abs_diff_failed: 1, rel_diff_failed: 1 }, walltime: 0.0, walltime_norm: 0.0 }
in.water_hexamer.hippo: { folder: examples/amoeba, status: "completed", failed_checks: { abs_diff_failed: 1, rel_diff_failed: 1 }, walltime: 0.0, walltime_norm: 0.0 }
in.nb3b: { folder: examples/nb3b, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 5.0, walltime_norm: 0.8333333333333334 }
in.nb3b.screened: { folder: examples/nb3b, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 29.0, walltime_norm: 4.833333333333333 }
in.min: { folder: examples/min, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.min.box: { folder: examples/min, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 2.0, walltime_norm: 0.3333333333333333 }
in.balance: { folder: examples/balance, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 0.0, walltime_norm: 0.0 }
in.balance.bond.fast: { folder: examples/balance, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 0.0, walltime_norm: 0.0 }
in.balance.bond.slow: { folder: examples/balance, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 0.0, walltime_norm: 0.0 }
in.balance.clock.dynamic: { folder: examples/balance, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 16.0, walltime_norm: 2.6666666666666665 }
in.balance.clock.static: { folder: examples/balance, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 6.0, walltime_norm: 1.0 }
in.balance.group.dynamic: { folder: examples/balance, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 2.0, walltime_norm: 0.3333333333333333 }
in.balance.group.static: { folder: examples/balance, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 2.0, walltime_norm: 0.3333333333333333 }
in.balance.kspace: { folder: examples/balance, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 6.0, walltime_norm: 1.0 }
in.balance.neigh.dynamic: { folder: examples/balance, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 16.0, walltime_norm: 2.6666666666666665 }
in.balance.neigh.rcb: { folder: examples/balance, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 4.0, walltime_norm: 0.6666666666666666 }
in.balance.neigh.static: { folder: examples/balance, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 10.0, walltime_norm: 1.6666666666666667 }
in.balance.var.dynamic: { folder: examples/balance, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 16.0, walltime_norm: 2.6666666666666665 }
in.ch4: { folder: examples/QUANTUM/LATTE, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'mdi/qm' is part of the MDI package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.ch4.plugin: { folder: examples/QUANTUM/LATTE, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'mdi/qm' is part of the MDI package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.graphene: { folder: examples/QUANTUM/LATTE, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'mdi/qm' is part of the MDI package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.graphene.plugin: { folder: examples/QUANTUM/LATTE, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'mdi/qm' is part of the MDI package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.series: { folder: examples/QUANTUM/LATTE, status: "failed, unknown command, package not installed, ERROR: Unknown command: mdi connect (src/input.cpp:314)", walltime: -1 }
in.series.plugin: { folder: examples/QUANTUM/LATTE, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'mdi/qm' is part of the MDI package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.sucrose: { folder: examples/QUANTUM/LATTE, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'mdi/qm' is part of the MDI package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.sucrose.plugin: { folder: examples/QUANTUM/LATTE, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'mdi/qm' is part of the MDI package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.uo2: { folder: examples/QUANTUM/LATTE, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'mdi/qm' is part of the MDI package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.uo2.plugin: { folder: examples/QUANTUM/LATTE, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'mdi/qm' is part of the MDI package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.water: { folder: examples/QUANTUM/LATTE, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'mdi/qm' is part of the MDI package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.water.min: { folder: examples/QUANTUM/LATTE, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'mdi/qm' is part of the MDI package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.water.min.plugin: { folder: examples/QUANTUM/LATTE, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'mdi/qm' is part of the MDI package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.water.plugin: { folder: examples/QUANTUM/LATTE, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'mdi/qm' is part of the MDI package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.mixture.mm: { folder: examples/QUANTUM/PySCF, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 0.0, walltime_norm: 0.0 }
in.mixture.qmmm: { folder: examples/QUANTUM/PySCF, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'mdi/qmmm' is part of the MDI package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.mixture.qmmm.plugin: { folder: examples/QUANTUM/PySCF, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'mdi/qmmm' is part of the MDI package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.water.qmmm: { folder: examples/QUANTUM/PySCF, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'mdi/qmmm' is part of the MDI package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.water.qmmm.plugin: { folder: examples/QUANTUM/PySCF, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'mdi/qmmm' is part of the MDI package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.series: { folder: examples/QUANTUM/NWChem, status: "failed, unknown command, package not installed, ERROR: Unknown command: mdi connect (src/input.cpp:314)", walltime: -1 }
in.series.plugin: { folder: examples/QUANTUM/NWChem, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'mdi/qm' is part of the MDI package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.water.mm: { folder: examples/QUANTUM/NWChem, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 0.0, walltime_norm: 0.0 }
in.water.qmmm: { folder: examples/QUANTUM/NWChem, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'mdi/qmmm' is part of the MDI package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.water.qmmm.plugin: { folder: examples/QUANTUM/NWChem, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'mdi/qmmm' is part of the MDI package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.zeolite.mm: { folder: examples/QUANTUM/NWChem, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 0.0, walltime_norm: 0.0 }
in.zeolite.qmmm: { folder: examples/QUANTUM/NWChem, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'mdi/qmmm' is part of the MDI package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.zeolite.qmmm.plugin: { folder: examples/QUANTUM/NWChem, status: "failed, unrecognized command, package not installed, ERROR: Unrecognized fix style 'mdi/qmmm' is part of the MDI package which is not enabled in this LAMMPS binary. (src/modify.cpp:924)", walltime: -1 }
in.wall.ccl: { folder: examples/wall, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.wall.diffusive: { folder: examples/wall, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.wall.flow: { folder: examples/wall, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 5.0, walltime_norm: 0.8333333333333334 }
in.wall.lepton: { folder: examples/wall, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.wall.maxwell: { folder: examples/wall, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.wall.specular: { folder: examples/wall, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.wall.table: { folder: examples/wall, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.meam: { folder: examples/meam, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.meam.shear: { folder: examples/meam, status: "completed", failed_checks: { abs_diff_failed: 3, rel_diff_failed: 3 }, walltime: 31.0, walltime_norm: 5.166666666666667 }
in.msmeam: { folder: examples/meam/msmeam, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.hugoniostat: { folder: examples/hugoniostat, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 10.0, walltime_norm: 1.6666666666666667 }
in.comb.Cu: { folder: examples/comb, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.comb.Cu2O.elastic: { folder: examples/comb, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 21.0, walltime_norm: 3.5 }
in.comb.HfO2: { folder: examples/comb, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 4.0, walltime_norm: 0.6666666666666666 }
in.comb.Si: { folder: examples/comb, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.comb.Si.elastic: { folder: examples/comb, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.comb3: { folder: examples/comb, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 11.0, walltime_norm: 1.8333333333333333 }
in.tad: { folder: examples/tad, status: "failed, ERROR: Cannot use TAD with a single replica for NEB (src/REPLICA/tad.cpp:79).", walltime: -1 }
in.controller.temp: { folder: examples/controller, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 6.0, walltime_norm: 1.0 }
in.controller.wall: { folder: examples/controller, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 19.0, walltime_norm: 3.1666666666666665 }
in.reaxff.rdx: { folder: examples/reaxff, status: "completed", failed_checks: { abs_diff_failed: 3, rel_diff_failed: 3 }, walltime: 0.0, walltime_norm: 0.0 }
in.reaxff.rdx-shielded: { folder: examples/reaxff, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.reaxff.tatb: { folder: examples/reaxff, status: "completed", failed_checks: { abs_diff_failed: 1, rel_diff_failed: 2 }, walltime: 2.0, walltime_norm: 0.3333333333333333 }
in.reaxff.tatb-shielded: { folder: examples/reaxff, status: "completed", failed_checks: { abs_diff_failed: 1, rel_diff_failed: 2 }, walltime: 2.0, walltime_norm: 0.3333333333333333 }
in.ci-reax.CH: { folder: examples/reaxff/ci-reaxFF, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 12.0, walltime_norm: 2.0 }
in.reaxff.hns: { folder: examples/reaxff/HNS, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 20.0, walltime_norm: 3.3333333333333335 }
in.VOH: { folder: examples/reaxff/VOH, status: "completed", failed_checks: { abs_diff_failed: 3, rel_diff_failed: 2 }, walltime: 2.0, walltime_norm: 0.3333333333333333 }
in.water.acks2: { folder: examples/reaxff/water, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 13.0, walltime_norm: 2.1666666666666665 }
in.water.acks2.field: { folder: examples/reaxff/water, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 17.0, walltime_norm: 2.8333333333333335 }
in.water.qeq: { folder: examples/reaxff/water, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 6.0, walltime_norm: 1.0 }
in.water.qeq.field: { folder: examples/reaxff/water, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 5.0, walltime_norm: 0.8333333333333334 }
in.ZnOH2: { folder: examples/reaxff/ZnOH2, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.FC: { folder: examples/reaxff/FC, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 15.0, walltime_norm: 2.5 }
in.RDX: { folder: examples/reaxff/RDX, status: "completed", failed_checks: { abs_diff_failed: 3, rel_diff_failed: 3 }, walltime: 6.0, walltime_norm: 1.0 }
in.AuO: { folder: examples/reaxff/AuO, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 6.0, walltime_norm: 1.0 }
in.CHO: { folder: examples/reaxff/CHO, status: "completed", failed_checks: { abs_diff_failed: 3, rel_diff_failed: 2 }, walltime: 3.0, walltime_norm: 0.5 }
in.FeOH3: { folder: examples/reaxff/FeOH3, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 2.0, walltime_norm: 0.3333333333333333 }
in.AB: { folder: examples/reaxff/AB, status: "completed", failed_checks: { abs_diff_failed: 3, rel_diff_failed: 3 }, walltime: 2.0, walltime_norm: 0.3333333333333333 }
in.grid.2d: { folder: examples/grid, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.grid.3d: { folder: examples/grid, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 1.0, walltime_norm: 0.16666666666666666 }
in.sph: { folder: examples/grid, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 36.0, walltime_norm: 6.0 }
in.yaml: { folder: examples/yaml, status: "completed, error parsing log.lammps into YAML", walltime: 3.0, walltime_norm: 0.5 }
in.hBN_shift: { folder: examples/tersoff, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.tersoff: { folder: examples/tersoff, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.friction: { folder: examples/friction, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 2.0, walltime_norm: 0.3333333333333333 }
in.cmap: { folder: examples/cmap, status: "completed", failed_checks: { abs_diff_failed: 1, rel_diff_failed: 1 }, walltime: 1.0, walltime_norm: 0.16666666666666666 }
in.dipole: { folder: examples/dipole, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.colloid: { folder: examples/colloid, status: "completed", failed_checks: { abs_diff_failed: 3, rel_diff_failed: 3 }, walltime: 4.0, walltime_norm: 0.6666666666666666 }
in.streitz.ewald: { folder: examples/streitz, status: "completed", failed_checks: { abs_diff_failed: 1, rel_diff_failed: 2 }, walltime: 53.0, walltime_norm: 8.833333333333334 }
in.streitz.wolf: { folder: examples/streitz, status: "failed, mismatched columns in the log files", walltime: 57.0, walltime_norm: 9.5 }
in.neb.hop1: { folder: examples/neb, status: "failed, ERROR: Cannot use NEB with a single replica (src/REPLICA/neb.cpp:141).", walltime: -1 }
in.neb.hop1.end: { folder: examples/neb, status: "failed, ERROR: Cannot use NEB with a single replica (src/REPLICA/neb.cpp:141).", walltime: -1 }
in.neb.hop2: { folder: examples/neb, status: "failed, ERROR: Cannot use NEB with a single replica (src/REPLICA/neb.cpp:141).", walltime: -1 }
in.neb.sivac: { folder: examples/neb, status: "failed, ERROR: Cannot use NEB with a single replica (src/REPLICA/neb.cpp:141).", walltime: -1 }
in.fix_python_invoke: { folder: examples/python, status: "failed, ERROR: Could not process Python string: .", walltime: -1 }
in.fix_python_invoke_neighlist: { folder: examples/python, status: "failed, ERROR: Could not process Python string: .", walltime: -1 }
in.fix_python_move_nve_melt: { folder: examples/python, status: "failed, ERROR: Loading python integrator module failure (src/PYTHON/fix_python_move.cpp:64).", walltime: -1 }
in.fix_python_move_nve_melt_opt: { folder: examples/python, status: "failed, ERROR: Loading python integrator module failure (src/PYTHON/fix_python_move.cpp:64).", walltime: -1 }
in.pair_python_coulomb: { folder: examples/python, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 3.0, walltime_norm: 0.5 }
in.pair_python_harmonic: { folder: examples/python, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 45.0, walltime_norm: 7.5 }
in.pair_python_hybrid: { folder: examples/python, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 3 }, walltime: 13.0, walltime_norm: 2.1666666666666665 }
in.pair_python_long: { folder: examples/python, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 4.0, walltime_norm: 0.6666666666666666 }
in.pair_python_melt: { folder: examples/python, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 3 }, walltime: 28.0, walltime_norm: 4.666666666666667 }
in.pair_python_spce: { folder: examples/python, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 11.0, walltime_norm: 1.8333333333333333 }
in.pair_python_table: { folder: examples/python, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.python: { folder: examples/python, status: "failed, ERROR on proc 0: Python evaluation of function loop failed (src/PYTHON/python_impl.cpp:384).", walltime: -1 }
in.bcc: { folder: examples/steinhardt, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.fcc: { folder: examples/steinhardt, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.icos: { folder: examples/steinhardt, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 1.0, walltime_norm: 0.16666666666666666 }
in.kim-ex.melt: { folder: examples/kim, status: "failed, unknown command, package not installed, ERROR: Unknown command: kim init LennardJones_Ar real (src/input.cpp:314)", walltime: -1 }
in.kim-pm-property: { folder: examples/kim, status: "failed, unknown command, package not installed, ERROR: Unknown command: kim init LJ_Shifted_Bernardes_1958MedCutoff_Ar__MO_126566794224_004 metal (src/input.cpp:314)", walltime: -1 }
in.kim-pm-query.melt: { folder: examples/kim, status: "failed, unknown command, package not installed, ERROR: Unknown command: kim init SW_StillingerWeber_1985_Si__MO_405512056662_005 real (src/input.cpp:314)", walltime: -1 }
in.kim-pm.melt: { folder: examples/kim, status: "failed, unknown command, package not installed, ERROR: Unknown command: kim init SW_StillingerWeber_1985_Si__MO_405512056662_005 real (src/input.cpp:314)", walltime: -1 }
in.kim-query: { folder: examples/kim, status: "failed, unknown command, package not installed, ERROR: Unknown command: kim init EAM_Dynamo_ErcolessiAdams_1994_Al__MO_123629422045_005 metal (src/input.cpp:314)", walltime: -1 }
in.kim-sm.melt: { folder: examples/kim, status: "failed, unknown command, package not installed, ERROR: Unknown command: kim init Sim_LAMMPS_ReaxFF_StrachanVanDuinChakraborty_2003_CHNO__SM_107643900657_000 real (src/input.cpp:314)", walltime: -1 }
in.lammps.melt: { folder: examples/kim, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 2.0, walltime_norm: 0.3333333333333333 }
in.ellipse.gayberne: { folder: examples/ellipse, status: "completed", failed_checks: { abs_diff_failed: 2, rel_diff_failed: 2 }, walltime: 1.0, walltime_norm: 0.16666666666666666 }
in.ellipse.resquared: { folder: examples/ellipse, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 2 }, walltime: 2.0, walltime_norm: 0.3333333333333333 }
in.cos.1000SPCE: { folder: examples/VISCOSITY, status: "completed", failed_checks: { abs_diff_failed: 3, rel_diff_failed: 3 }, walltime: 36.0, walltime_norm: 6.0 }
in.einstein.2d: { folder: examples/VISCOSITY, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 39.0, walltime_norm: 6.5 }
in.gk.2d: { folder: examples/VISCOSITY, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 39.0, walltime_norm: 6.5 }
in.mp.2d: { folder: examples/VISCOSITY, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 5.0, walltime_norm: 0.8333333333333334 }
in.nemd.2d: { folder: examples/VISCOSITY, status: "completed", failed_checks: { abs_diff_failed: 8, rel_diff_failed: 8 }, walltime: 17.0, walltime_norm: 2.8333333333333335 }
in.wall.2d: { folder: examples/VISCOSITY, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 10.0, walltime_norm: 1.6666666666666667 }
in.gcmc.co2: { folder: examples/mc, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 11.0, walltime_norm: 1.8333333333333333 }
in.gcmc.h2o: { folder: examples/mc, status: "completed", failed_checks: { abs_diff_failed: 8, rel_diff_failed: 8 }, walltime: 138.0, walltime_norm: 23.0 }
in.gcmc.lj: { folder: examples/mc, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 11.0, walltime_norm: 1.8333333333333333 }
in.mixed: { folder: examples/mc, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 57.0, walltime_norm: 9.5 }
in.pure: { folder: examples/mc, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 57.0, walltime_norm: 9.5 }
in.sgcmc.eam: { folder: examples/mc, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 43.0, walltime_norm: 7.166666666666667 }
in.widom.lj: { folder: examples/mc, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 8.0, walltime_norm: 1.3333333333333333 }
in.widom.spce: { folder: examples/mc, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 44.0, walltime_norm: 7.333333333333333 }
in.mc: { folder: examples/MC-LOOP, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.flow.couette: { folder: examples/flow, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.flow.pois: { folder: examples/flow, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.prd: { folder: examples/prd, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 3.0, walltime_norm: 0.5 }
in.C_SNAP: { folder: examples/snap, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 34.0, walltime_norm: 5.666666666666667 }
in.grid.snap: { folder: examples/snap, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.grid.tri: { folder: examples/snap, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.snap.InP.JCPA2020: { folder: examples/snap, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 15.0, walltime_norm: 2.5 }
in.snap.Mo_Chen: { folder: examples/snap, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 1.0, walltime_norm: 0.16666666666666666 }
in.snap.Ta06A: { folder: examples/snap, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.snap.W.2940: { folder: examples/snap, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 2.0, walltime_norm: 0.3333333333333333 }
in.snap.WBe.PRB2019: { folder: examples/snap, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 2.0, walltime_norm: 0.3333333333333333 }
in.snap.compute: { folder: examples/snap, status: "completed, but no Step nor Loop in the output.", walltime: 0.0, walltime_norm: 0.0 }
in.snap.compute.quadratic: { folder: examples/snap, status: "completed, but no Step nor Loop in the output.", walltime: 0.0, walltime_norm: 0.0 }
in.snap.hybrid.WSNAP.HePair: { folder: examples/snap, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 2.0, walltime_norm: 0.3333333333333333 }
in.snap.scale.Ni_Zuo_JCPA2020: { folder: examples/snap, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 3.0, walltime_norm: 0.5 }
in.lammps: { folder: examples/COUPLE/lammps_spparks, status: "failed, ERROR: Cannot open file data.lammps: No such file or directory (src/read_data.cpp:367).", walltime: -1 }
in.spparks: { folder: examples/COUPLE/lammps_spparks, status: "failed, unknown command, package not installed, ERROR: Unknown command: seed 56789 (src/input.cpp:314)", walltime: -1 }
in.lj: { folder: examples/COUPLE/plugin, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 0.0, walltime_norm: 0.0 }
in.fix_external: { folder: examples/COUPLE/python, status: "completed, but no Step nor Loop in the output.", walltime: 0.0, walltime_norm: 0.0 }
in.chain: { folder: examples/COUPLE/multiple, status: "failed, no Total wall time in the output, --------------------------------------------------------------------------
MPI_ABORT was invoked on rank 0 in communicator MPI_COMM_WORLD
with errorcode 1.
NOTE: invoking MPI_ABORT causes Open MPI to kill all MPI processes.
You may or may not see output from other processes, depending on
exactly when Open MPI kills them.
--------------------------------------------------------------------------
", walltime: -1 }
in.lj: { folder: examples/COUPLE/simple, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 0.0, walltime_norm: 0.0 }
in.body: { folder: examples/body, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.cubes: { folder: examples/body, status: "completed", failed_checks: { abs_diff_failed: 2, rel_diff_failed: 2 }, walltime: 36.0, walltime_norm: 6.0 }
in.pour3d: { folder: examples/body, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.squares: { folder: examples/body, status: "completed", failed_checks: { abs_diff_failed: 3, rel_diff_failed: 3 }, walltime: 3.0, walltime_norm: 0.5 }
in.wall2d: { folder: examples/body, status: "completed", failed_checks: { abs_diff_failed: 3, rel_diff_failed: 3 }, walltime: 2.0, walltime_norm: 0.3333333333333333 }
in.atm: { folder: examples/atm, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 13.0, walltime_norm: 2.1666666666666665 }
in.ar.lj: { folder: examples/UNITS, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 0.0, walltime_norm: 0.0 }
in.ar.metal: { folder: examples/UNITS, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 0.0, walltime_norm: 0.0 }
in.ar.real: { folder: examples/UNITS, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 0.0, walltime_norm: 0.0 }
in.mos2-bulk: { folder: examples/threebody, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.mos2.rebomos: { folder: examples/threebody, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 21.0, walltime_norm: 3.5 }
in.mos2.sw.mod: { folder: examples/threebody, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 1.0, walltime_norm: 0.16666666666666666 }
in.threebody: { folder: examples/threebody, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 1.0, walltime_norm: 0.16666666666666666 }
in.nemd: { folder: examples/nemd, status: "completed", failed_checks: { abs_diff_failed: 3, rel_diff_failed: 3 }, walltime: 0.0, walltime_norm: 0.0 }
in.obstacle: { folder: examples/obstacle, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 0.0, walltime_norm: 0.0 }
in.crack: { folder: examples/crack, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 3.0, walltime_norm: 0.5 }
in.elastic: { folder: examples/ELASTIC, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 0.0, walltime_norm: 0.0 }
in.peri-pmb: { folder: examples/peri, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 9.0, walltime_norm: 1.5 }
in.peri.eps: { folder: examples/peri, status: "completed", failed_checks: { abs_diff_failed: 3, rel_diff_failed: 3 }, walltime: 21.0, walltime_norm: 3.5 }
in.peri.lps: { folder: examples/peri, status: "completed", failed_checks: { abs_diff_failed: 3, rel_diff_failed: 3 }, walltime: 17.0, walltime_norm: 2.8333333333333335 }
in.peri.pmb: { folder: examples/peri, status: "completed", failed_checks: { abs_diff_failed: 0, rel_diff_failed: 0 }, walltime: 9.0, walltime_norm: 1.5 }
in.peri.ves: { folder: examples/peri, status: "completed", failed_checks: { abs_diff_failed: 3, rel_diff_failed: 3 }, walltime: 21.0, walltime_norm: 3.5 }
in.hyper.global: { folder: examples/hyper, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 53.0, walltime_norm: 8.833333333333334 }
in.hyper.local: { folder: examples/hyper, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 13.0, walltime_norm: 2.1666666666666665 }
in.spce: { folder: examples/rdf-adf, status: "completed", failed_checks: { abs_diff_failed: 6, rel_diff_failed: 6 }, walltime: 88.0, walltime_norm: 14.666666666666666 }
in.elastic: { folder: examples/ELASTIC_T/BORN_MATRIX/Silicon, status: "completed, error parsing log.lammps into YAML", walltime: 62.0, walltime_norm: 10.333333333333334 }
in.ljcov: { folder: examples/ELASTIC_T/BORN_MATRIX/Argon/Analytical, status: "failed, no Total wall time in the output, timeout (180s expired)", walltime: -1 }
in.ljcov: { folder: examples/ELASTIC_T/BORN_MATRIX/Argon/Numdiff, status: "failed, no Total wall time in the output, timeout (180s expired)", walltime: -1 }
in.elastic: { folder: examples/ELASTIC_T/DEFORMATION/Silicon, status: "completed, numerical checks skipped due to missing the reference log file", walltime: 6.0, walltime_norm: 1.0 }

803
tools/regression-tests/run_tests.py Normal file → Executable file

File diff suppressed because it is too large Load Diff