Merge branch 'develop' into ctip
This commit is contained in:
2
.github/workflows/compile-msvc.yml
vendored
2
.github/workflows/compile-msvc.yml
vendored
@ -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
108
.github/workflows/full-regression.yml
vendored
Normal 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
113
.github/workflows/quick-regression.yml
vendored
Normal 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-*
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
@ -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();
|
||||
}
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
10
src/.gitignore
vendored
@ -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
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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"
|
||||
@ -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:
|
||||
@ -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();
|
||||
@ -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:
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -30,7 +30,6 @@ class PairAIPWATER2DM : virtual public PairILPTMD {
|
||||
|
||||
protected:
|
||||
void settings(int, char **) override;
|
||||
|
||||
};
|
||||
|
||||
} // namespace LAMMPS_NS
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
@ -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);
|
||||
}
|
||||
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
@ -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);
|
||||
}
|
||||
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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>
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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 {
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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];
|
||||
|
||||
@ -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;
|
||||
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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);
|
||||
}
|
||||
|
||||
@ -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 {
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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++)
|
||||
|
||||
@ -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);
|
||||
}
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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*,
|
||||
]
|
||||
|
||||
44
tools/regression-tests/config_quick.yaml
Normal file
44
tools/regression-tests/config_quick.yaml
Normal 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
|
||||
|
||||
|
||||
44
tools/regression-tests/config_serial.yaml
Normal file
44
tools/regression-tests/config_serial.yaml
Normal 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
|
||||
|
||||
|
||||
281
tools/regression-tests/get_quick_list.py
Normal file
281
tools/regression-tests/get_quick_list.py
Normal 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())
|
||||
932
tools/regression-tests/reference.yaml
Normal file
932
tools/regression-tests/reference.yaml
Normal 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
803
tools/regression-tests/run_tests.py
Normal file → Executable file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user