Merge pull request #4190 from alphataubio/kokkos-unit-testing

Improve Kokkos unit testing
This commit is contained in:
Axel Kohlmeyer
2024-09-30 19:50:08 -04:00
committed by GitHub
47 changed files with 1748 additions and 930 deletions

View File

@ -23,7 +23,7 @@ KOKKOS_DEVICES ?= "OpenMP"
# NVIDIA: Kepler,Kepler30,Kepler32,Kepler35,Kepler37,Maxwell,Maxwell50,Maxwell52,Maxwell53,Pascal60,Pascal61,Volta70,Volta72,Turing75,Ampere80,Ampere86,Ada89,Hopper90 # NVIDIA: Kepler,Kepler30,Kepler32,Kepler35,Kepler37,Maxwell,Maxwell50,Maxwell52,Maxwell53,Pascal60,Pascal61,Volta70,Volta72,Turing75,Ampere80,Ampere86,Ada89,Hopper90
# ARM: ARMv80,ARMv81,ARMv8-ThunderX,ARMv8-TX2,A64FX,ARMv9-Grace # ARM: ARMv80,ARMv81,ARMv8-ThunderX,ARMv8-TX2,A64FX,ARMv9-Grace
# IBM: Power8,Power9 # IBM: Power8,Power9
# AMD-GPUS: AMD_GFX906,AMD_GFX908,AMD_GFX90A,AMD_GFX940,AMD_GFX942,AMD_GFX1030,AMD_GFX1100 # AMD-GPUS: AMD_GFX906,AMD_GFX908,AMD_GFX90A,AMD_GFX940,AMD_GFX942,AMD_GFX1030,AMD_GFX1100,AMD_GFX1103
# AMD-CPUS: AMDAVX,Zen,Zen2,Zen3 # AMD-CPUS: AMDAVX,Zen,Zen2,Zen3
# Intel-GPUs: Intel_Gen,Intel_Gen9,Intel_Gen11,Intel_Gen12LP,Intel_DG1,Intel_XeHP,Intel_PVC # Intel-GPUs: Intel_Gen,Intel_Gen9,Intel_Gen11,Intel_Gen12LP,Intel_DG1,Intel_XeHP,Intel_PVC
KOKKOS_ARCH ?= "" KOKKOS_ARCH ?= ""
@ -465,6 +465,7 @@ KOKKOS_INTERNAL_USE_ARCH_AMD_GFX1100 := $(call kokkos_has_string,$(KOKKOS_ARCH),
ifeq ($(KOKKOS_INTERNAL_USE_ARCH_AMD_GFX1100), 0) ifeq ($(KOKKOS_INTERNAL_USE_ARCH_AMD_GFX1100), 0)
KOKKOS_INTERNAL_USE_ARCH_AMD_GFX1100 := $(call kokkos_has_string,$(KOKKOS_ARCH),NAVI1100) KOKKOS_INTERNAL_USE_ARCH_AMD_GFX1100 := $(call kokkos_has_string,$(KOKKOS_ARCH),NAVI1100)
endif endif
KOKKOS_INTERNAL_USE_ARCH_AMD_GFX1103 := $(call kokkos_has_string,$(KOKKOS_ARCH),AMD_GFX1103)
# Any AVX? # Any AVX?
KOKKOS_INTERNAL_USE_ARCH_AVX := $(shell expr $(KOKKOS_INTERNAL_USE_ARCH_SNB) + $(KOKKOS_INTERNAL_USE_ARCH_AMDAVX)) KOKKOS_INTERNAL_USE_ARCH_AVX := $(shell expr $(KOKKOS_INTERNAL_USE_ARCH_SNB) + $(KOKKOS_INTERNAL_USE_ARCH_AMDAVX))
@ -1158,6 +1159,11 @@ ifeq ($(KOKKOS_INTERNAL_USE_ARCH_AMD_GFX1100), 1)
tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_AMD_GPU") tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_AMD_GPU")
KOKKOS_INTERNAL_HIP_ARCH_FLAG := --offload-arch=gfx1100 KOKKOS_INTERNAL_HIP_ARCH_FLAG := --offload-arch=gfx1100
endif endif
ifeq ($(KOKKOS_INTERNAL_USE_ARCH_AMD_GFX1103), 1)
tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_AMD_GFX1103")
tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_AMD_GPU")
KOKKOS_INTERNAL_HIP_ARCH_FLAG := --offload-arch=gfx1103
endif
ifeq ($(KOKKOS_INTERNAL_USE_HIP), 1) ifeq ($(KOKKOS_INTERNAL_USE_HIP), 1)

View File

@ -120,6 +120,7 @@
#cmakedefine KOKKOS_ARCH_AMD_GFX942 #cmakedefine KOKKOS_ARCH_AMD_GFX942
#cmakedefine KOKKOS_ARCH_AMD_GFX1030 #cmakedefine KOKKOS_ARCH_AMD_GFX1030
#cmakedefine KOKKOS_ARCH_AMD_GFX1100 #cmakedefine KOKKOS_ARCH_AMD_GFX1100
#cmakedefine KOKKOS_ARCH_AMD_GFX1103
#cmakedefine KOKKOS_ARCH_AMD_GPU #cmakedefine KOKKOS_ARCH_AMD_GPU
#cmakedefine KOKKOS_ARCH_VEGA // deprecated #cmakedefine KOKKOS_ARCH_VEGA // deprecated
#cmakedefine KOKKOS_ARCH_VEGA906 // deprecated #cmakedefine KOKKOS_ARCH_VEGA906 // deprecated

View File

@ -103,9 +103,9 @@ LIST(APPEND CORRESPONDING_AMD_FLAGS gfx90a gfx90a gfx908 gfx908)
LIST(APPEND SUPPORTED_AMD_GPUS MI50/60 MI50/60) LIST(APPEND SUPPORTED_AMD_GPUS MI50/60 MI50/60)
LIST(APPEND SUPPORTED_AMD_ARCHS VEGA906 AMD_GFX906) LIST(APPEND SUPPORTED_AMD_ARCHS VEGA906 AMD_GFX906)
LIST(APPEND CORRESPONDING_AMD_FLAGS gfx906 gfx906) LIST(APPEND CORRESPONDING_AMD_FLAGS gfx906 gfx906)
LIST(APPEND SUPPORTED_AMD_GPUS RX7900XTX RX7900XTX V620/W6800 V620/W6800) LIST(APPEND SUPPORTED_AMD_GPUS PHOENIX RX7900XTX V620/W6800 V620/W6800)
LIST(APPEND SUPPORTED_AMD_ARCHS NAVI1100 AMD_GFX1100 NAVI1030 AMD_GFX1030) LIST(APPEND SUPPORTED_AMD_ARCHS AMD_GFX1103 AMD_GFX1100 NAVI1030 AMD_GFX1030)
LIST(APPEND CORRESPONDING_AMD_FLAGS gfx1100 gfx1100 gfx1030 gfx1030) LIST(APPEND CORRESPONDING_AMD_FLAGS gfx1103 gfx1100 gfx1030 gfx1030)
#FIXME CAN BE REPLACED WITH LIST_ZIP IN CMAKE 3.17 #FIXME CAN BE REPLACED WITH LIST_ZIP IN CMAKE 3.17
FOREACH(ARCH IN LISTS SUPPORTED_AMD_ARCHS) FOREACH(ARCH IN LISTS SUPPORTED_AMD_ARCHS)

View File

@ -35,7 +35,8 @@ struct HIPTraits {
static constexpr int WarpSize = 64; static constexpr int WarpSize = 64;
static constexpr int WarpIndexMask = 0x003f; /* hexadecimal for 63 */ static constexpr int WarpIndexMask = 0x003f; /* hexadecimal for 63 */
static constexpr int WarpIndexShift = 6; /* WarpSize == 1 << WarpShift*/ static constexpr int WarpIndexShift = 6; /* WarpSize == 1 << WarpShift*/
#elif defined(KOKKOS_ARCH_AMD_GFX1030) || defined(KOKKOS_ARCH_AMD_GFX1100) #elif defined(KOKKOS_ARCH_AMD_GFX1030) || defined(KOKKOS_ARCH_AMD_GFX1100) || \
defined(KOKKOS_ARCH_AMD_GFX1103)
static constexpr int WarpSize = 32; static constexpr int WarpSize = 32;
static constexpr int WarpIndexMask = 0x001f; /* hexadecimal for 31 */ static constexpr int WarpIndexMask = 0x001f; /* hexadecimal for 31 */
static constexpr int WarpIndexShift = 5; /* WarpSize == 1 << WarpShift*/ static constexpr int WarpIndexShift = 5; /* WarpSize == 1 << WarpShift*/

View File

@ -143,7 +143,7 @@ class ParallelScan<FunctorType, Kokkos::RangePolicy<Traits...>,
local_offset_value = element_values(team_id, i - 1); local_offset_value = element_values(team_id, i - 1);
// FIXME_OPENMPTARGET We seem to access memory illegaly on AMD GPUs // FIXME_OPENMPTARGET We seem to access memory illegaly on AMD GPUs
#if defined(KOKKOS_ARCH_AMD_GPU) && !defined(KOKKOS_ARCH_AMD_GFX1030) && \ #if defined(KOKKOS_ARCH_AMD_GPU) && !defined(KOKKOS_ARCH_AMD_GFX1030) && \
!defined(KOKKOS_ARCH_AMD_GFX1100) !defined(KOKKOS_ARCH_AMD_GFX1100) && !defined(KOKKOS_ARCH_AMD_GFX1103)
if constexpr (Analysis::Reducer::has_join_member_function()) { if constexpr (Analysis::Reducer::has_join_member_function()) {
if constexpr (std::is_void_v<WorkTag>) if constexpr (std::is_void_v<WorkTag>)
a_functor_reducer.get_functor().join(local_offset_value, a_functor_reducer.get_functor().join(local_offset_value,

View File

@ -752,6 +752,9 @@ void pre_initialize_internal(const Kokkos::InitializationSettings& settings) {
#elif defined(KOKKOS_ARCH_AMD_GFX1100) #elif defined(KOKKOS_ARCH_AMD_GFX1100)
declare_configuration_metadata("architecture", "GPU architecture", declare_configuration_metadata("architecture", "GPU architecture",
"AMD_GFX1100"); "AMD_GFX1100");
#elif defined(KOKKOS_ARCH_AMD_GFX1103)
declare_configuration_metadata("architecture", "GPU architecture",
"AMD_GFX1103");
#else #else
declare_configuration_metadata("architecture", "GPU architecture", "none"); declare_configuration_metadata("architecture", "GPU architecture", "none");

View File

@ -164,6 +164,7 @@ display_help_text() {
echo " AMD_GFX942 = AMD GPU MI300 GFX942" echo " AMD_GFX942 = AMD GPU MI300 GFX942"
echo " AMD_GFX1030 = AMD GPU V620/W6800 GFX1030" echo " AMD_GFX1030 = AMD GPU V620/W6800 GFX1030"
echo " AMD_GFX1100 = AMD GPU RX 7900 XT(X) GFX1100" echo " AMD_GFX1100 = AMD GPU RX 7900 XT(X) GFX1100"
echo " AMD_GFX1103 = AMD APU Radeon 740M/760M/780M/880M/890M GFX1103"
echo " [ARM]" echo " [ARM]"
echo " ARMV80 = ARMv8.0 Compatible CPU" echo " ARMV80 = ARMv8.0 Compatible CPU"
echo " ARMV81 = ARMv8.1 Compatible CPU" echo " ARMV81 = ARMv8.1 Compatible CPU"

View File

@ -563,7 +563,6 @@ void DomainKokkos::operator()(TagDomain_image_flip, const int &i) const {
void DomainKokkos::lamda2x(int n) void DomainKokkos::lamda2x(int n)
{ {
atomKK->sync(Device,X_MASK); atomKK->sync(Device,X_MASK);
x = atomKK->k_x.view<LMPDeviceType>(); x = atomKK->k_x.view<LMPDeviceType>();
copymode = 1; copymode = 1;
@ -573,6 +572,21 @@ void DomainKokkos::lamda2x(int n)
atomKK->modified(Device,X_MASK); atomKK->modified(Device,X_MASK);
} }
void DomainKokkos::lamda2x(int n, int groupbit_in)
{
atomKK->sync(Device,X_MASK);
x = atomKK->k_x.view<LMPDeviceType>();
mask = atomKK->k_mask.view<LMPDeviceType>();
mask = atomKK->k_mask.view<LMPDeviceType>();
groupbit = groupbit_in;
copymode = 1;
Kokkos::parallel_for(Kokkos::RangePolicy<LMPDeviceType, TagDomain_lamda2x_group>(0,n),*this);
copymode = 0;
atomKK->modified(Device,X_MASK);
}
KOKKOS_INLINE_FUNCTION KOKKOS_INLINE_FUNCTION
void DomainKokkos::operator()(TagDomain_lamda2x, const int &i) const { void DomainKokkos::operator()(TagDomain_lamda2x, const int &i) const {
const double xi1 = x(i,1); const double xi1 = x(i,1);
@ -582,6 +596,17 @@ void DomainKokkos::operator()(TagDomain_lamda2x, const int &i) const {
x(i,2) = h[2]*xi2 + boxlo[2]; x(i,2) = h[2]*xi2 + boxlo[2];
} }
KOKKOS_INLINE_FUNCTION
void DomainKokkos::operator()(TagDomain_lamda2x_group, const int &i) const {
if (mask[i] & groupbit) {
const double xi1 = x(i,1);
const double xi2 = x(i,2);
x(i,0) = h[0]*x(i,0) + h[5]*xi1 + h[4]*xi2 + boxlo[0];
x(i,1) = h[1]*xi1 + h[3]*xi2 + boxlo[1];
x(i,2) = h[2]*xi2 + boxlo[2];
}
}
/* ---------------------------------------------------------------------- /* ----------------------------------------------------------------------
convert box coords to triclinic 0-1 lamda coords for all N atoms convert box coords to triclinic 0-1 lamda coords for all N atoms
lamda = H^-1 (x - x0) lamda = H^-1 (x - x0)
@ -590,7 +615,6 @@ void DomainKokkos::operator()(TagDomain_lamda2x, const int &i) const {
void DomainKokkos::x2lamda(int n) void DomainKokkos::x2lamda(int n)
{ {
atomKK->sync(Device,X_MASK); atomKK->sync(Device,X_MASK);
x = atomKK->k_x.view<LMPDeviceType>(); x = atomKK->k_x.view<LMPDeviceType>();
copymode = 1; copymode = 1;
@ -600,6 +624,20 @@ void DomainKokkos::x2lamda(int n)
atomKK->modified(Device,X_MASK); atomKK->modified(Device,X_MASK);
} }
void DomainKokkos::x2lamda(int n, int groupbit_in)
{
atomKK->sync(Device,X_MASK);
x = atomKK->k_x.view<LMPDeviceType>();
mask = atomKK->k_mask.view<LMPDeviceType>();
groupbit = groupbit_in;
copymode = 1;
Kokkos::parallel_for(Kokkos::RangePolicy<LMPDeviceType, TagDomain_x2lamda_group>(0,n),*this);
copymode = 0;
atomKK->modified(Device,X_MASK);
}
KOKKOS_INLINE_FUNCTION KOKKOS_INLINE_FUNCTION
void DomainKokkos::operator()(TagDomain_x2lamda, const int &i) const { void DomainKokkos::operator()(TagDomain_x2lamda, const int &i) const {
F_FLOAT delta[3]; F_FLOAT delta[3];
@ -612,3 +650,17 @@ void DomainKokkos::operator()(TagDomain_x2lamda, const int &i) const {
x(i,2) = h_inv[2]*delta[2]; x(i,2) = h_inv[2]*delta[2];
} }
KOKKOS_INLINE_FUNCTION
void DomainKokkos::operator()(TagDomain_x2lamda_group, const int &i) const {
if (mask[i] & groupbit) {
F_FLOAT delta[3];
delta[0] = x(i,0) - boxlo[0];
delta[1] = x(i,1) - boxlo[1];
delta[2] = x(i,2) - boxlo[2];
x(i,0) = h_inv[0]*delta[0] + h_inv[5]*delta[1] + h_inv[4]*delta[2];
x(i,1) = h_inv[1]*delta[1] + h_inv[3]*delta[2];
x(i,2) = h_inv[2]*delta[2];
}
}

View File

@ -24,7 +24,9 @@ namespace LAMMPS_NS {
struct TagDomain_remap_all{}; struct TagDomain_remap_all{};
struct TagDomain_image_flip{}; struct TagDomain_image_flip{};
struct TagDomain_lamda2x{}; struct TagDomain_lamda2x{};
struct TagDomain_lamda2x_group{};
struct TagDomain_x2lamda{}; struct TagDomain_x2lamda{};
struct TagDomain_x2lamda_group{};
class DomainKokkos : public Domain { class DomainKokkos : public Domain {
public: public:
@ -35,7 +37,9 @@ class DomainKokkos : public Domain {
void remap_all(); void remap_all();
void image_flip(int, int, int); void image_flip(int, int, int);
void x2lamda(int) override; void x2lamda(int) override;
void x2lamda(int,int) override;
void lamda2x(int) override; void lamda2x(int) override;
void lamda2x(int,int) override;
// forward remaining x2lamda() and lambda2x() variants to parent class // forward remaining x2lamda() and lambda2x() variants to parent class
void x2lamda(double *a, double *b) override { Domain::x2lamda(a,b); } void x2lamda(double *a, double *b) override { Domain::x2lamda(a,b); }
void lamda2x(double *a, double *b) override { Domain::lamda2x(a,b); } void lamda2x(double *a, double *b) override { Domain::lamda2x(a,b); }
@ -54,18 +58,26 @@ class DomainKokkos : public Domain {
KOKKOS_INLINE_FUNCTION KOKKOS_INLINE_FUNCTION
void operator()(TagDomain_lamda2x, const int&) const; void operator()(TagDomain_lamda2x, const int&) const;
KOKKOS_INLINE_FUNCTION
void operator()(TagDomain_lamda2x_group, const int&) const;
KOKKOS_INLINE_FUNCTION KOKKOS_INLINE_FUNCTION
void operator()(TagDomain_x2lamda, const int&) const; void operator()(TagDomain_x2lamda, const int&) const;
KOKKOS_INLINE_FUNCTION
void operator()(TagDomain_x2lamda_group, const int&) const;
static KOKKOS_INLINE_FUNCTION static KOKKOS_INLINE_FUNCTION
Few<double,3> unmap(Few<double,3> prd, Few<double,6> h, int triclinic, Few<double,3> unmap(Few<double,3> prd, Few<double,6> h, int triclinic,
Few<double,3> x, imageint image); Few<double,3> x, imageint image);
private: private:
int groupbit;
double lo[3],hi[3],period[3]; double lo[3],hi[3],period[3];
int n_flip, m_flip, p_flip; int n_flip, m_flip, p_flip;
ArrayTypes<LMPDeviceType>::t_x_array x; ArrayTypes<LMPDeviceType>::t_x_array x;
ArrayTypes<LMPDeviceType>::t_imageint_1d image; ArrayTypes<LMPDeviceType>::t_imageint_1d image;
ArrayTypes<LMPDeviceType>::t_int_1d mask;
}; };
KOKKOS_INLINE_FUNCTION KOKKOS_INLINE_FUNCTION

View File

@ -13,7 +13,8 @@
------------------------------------------------------------------------- */ ------------------------------------------------------------------------- */
/* ---------------------------------------------------------------------- /* ----------------------------------------------------------------------
Contributing author: Pieter in 't Veld (SNL) Contributing author: Pieter in 't Veld (SNL)
Refactoring (2024/08): Mitch Murphy (alphataubio@gmail.com)
------------------------------------------------------------------------- */ ------------------------------------------------------------------------- */
#include "fix_deform_kokkos.h" #include "fix_deform_kokkos.h"
@ -21,31 +22,14 @@
#include "atom_kokkos.h" #include "atom_kokkos.h"
#include "atom_masks.h" #include "atom_masks.h"
#include "domain_kokkos.h" #include "domain_kokkos.h"
#include "force.h"
#include "input.h"
#include "irregular.h"
#include "kspace.h"
#include "math_const.h"
#include "modify.h"
#include "update.h"
#include "variable.h"
#include <cmath>
using namespace LAMMPS_NS; using namespace LAMMPS_NS;
using namespace FixConst;
using namespace MathConst;
enum{NONE=0,FINAL,DELTA,SCALE,VEL,ERATE,TRATE,VOLUME,WIGGLE,VARIABLE};
enum{ONE_FROM_ONE,ONE_FROM_TWO,TWO_FROM_ONE};
/* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */
FixDeformKokkos::FixDeformKokkos(LAMMPS *lmp, int narg, char **arg) : FixDeform(lmp, narg, arg) FixDeformKokkos::FixDeformKokkos(LAMMPS *lmp, int narg, char **arg) : FixDeform(lmp, narg, arg)
{ {
kokkosable = 1; kokkosable = 1;
domainKK = (DomainKokkos *) domain;
datamask_read = EMPTY_MASK; datamask_read = EMPTY_MASK;
datamask_modify = EMPTY_MASK; datamask_modify = EMPTY_MASK;
} }
@ -62,308 +46,16 @@ FixDeformKokkos::FixDeformKokkos(LAMMPS *lmp, int narg, char **arg) : FixDeform(
void FixDeformKokkos::pre_exchange() void FixDeformKokkos::pre_exchange()
{ {
if (flip == 0) return;
domain->yz = set[3].tilt_target = set[3].tilt_flip;
domain->xz = set[4].tilt_target = set[4].tilt_flip;
domain->xy = set[5].tilt_target = set[5].tilt_flip;
domain->set_global_box();
domain->set_local_box();
domainKK->image_flip(flipxy,flipxz,flipyz);
domainKK->remap_all();
domainKK->x2lamda(atom->nlocal);
atomKK->sync(Host,ALL_MASK); atomKK->sync(Host,ALL_MASK);
irregular->migrate_atoms(); FixDeform::pre_exchange();
atomKK->modified(Host,ALL_MASK); atomKK->modified(Host,ALL_MASK);
domainKK->lamda2x(atom->nlocal);
flip = 0;
} }
/* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */
void FixDeformKokkos::end_of_step() void FixDeformKokkos::end_of_step()
{ {
int i; atomKK->sync(Host,ALL_MASK);
FixDeform::end_of_step();
double delta = update->ntimestep - update->beginstep; atomKK->modified(Host,ALL_MASK);
if (delta != 0.0) delta /= update->endstep - update->beginstep;
// wrap variable evaluations with clear/add
if (varflag) modify->clearstep_compute();
// set new box size
// for NONE, target is current box size
// for TRATE, set target directly based on current time, also set h_rate
// for WIGGLE, set target directly based on current time, also set h_rate
// for VARIABLE, set target directly via variable eval, also set h_rate
// for others except VOLUME, target is linear value between start and stop
for (i = 0; i < 3; i++) {
if (set[i].style == NONE) {
set[i].lo_target = domain->boxlo[i];
set[i].hi_target = domain->boxhi[i];
} else if (set[i].style == TRATE) {
double delt = (update->ntimestep - update->beginstep) * update->dt;
set[i].lo_target = 0.5*(set[i].lo_start+set[i].hi_start) -
0.5*((set[i].hi_start-set[i].lo_start) * exp(set[i].rate*delt));
set[i].hi_target = 0.5*(set[i].lo_start+set[i].hi_start) +
0.5*((set[i].hi_start-set[i].lo_start) * exp(set[i].rate*delt));
h_rate[i] = set[i].rate * domain->h[i];
h_ratelo[i] = -0.5*h_rate[i];
} else if (set[i].style == WIGGLE) {
double delt = (update->ntimestep - update->beginstep) * update->dt;
set[i].lo_target = set[i].lo_start -
0.5*set[i].amplitude * sin(MY_2PI*delt/set[i].tperiod);
set[i].hi_target = set[i].hi_start +
0.5*set[i].amplitude * sin(MY_2PI*delt/set[i].tperiod);
h_rate[i] = MY_2PI/set[i].tperiod * set[i].amplitude *
cos(MY_2PI*delt/set[i].tperiod);
h_ratelo[i] = -0.5*h_rate[i];
} else if (set[i].style == VARIABLE) {
double del = input->variable->compute_equal(set[i].hvar);
set[i].lo_target = set[i].lo_start - 0.5*del;
set[i].hi_target = set[i].hi_start + 0.5*del;
h_rate[i] = input->variable->compute_equal(set[i].hratevar);
h_ratelo[i] = -0.5*h_rate[i];
} else if (set[i].style != VOLUME) {
set[i].lo_target = set[i].lo_start +
delta*(set[i].lo_stop - set[i].lo_start);
set[i].hi_target = set[i].hi_start +
delta*(set[i].hi_stop - set[i].hi_start);
}
}
// set new box size for VOLUME dims that are linked to other dims
// NOTE: still need to set h_rate for these dims
for (i = 0; i < 3; i++) {
if (set[i].style != VOLUME) continue;
if (set[i].substyle == ONE_FROM_ONE) {
set[i].lo_target = 0.5*(set[i].lo_start+set[i].hi_start) -
0.5*(set[i].vol_start /
(set[set[i].dynamic1].hi_target -
set[set[i].dynamic1].lo_target) /
(set[set[i].fixed].hi_start-set[set[i].fixed].lo_start));
set[i].hi_target = 0.5*(set[i].lo_start+set[i].hi_start) +
0.5*(set[i].vol_start /
(set[set[i].dynamic1].hi_target -
set[set[i].dynamic1].lo_target) /
(set[set[i].fixed].hi_start-set[set[i].fixed].lo_start));
} else if (set[i].substyle == ONE_FROM_TWO) {
set[i].lo_target = 0.5*(set[i].lo_start+set[i].hi_start) -
0.5*(set[i].vol_start /
(set[set[i].dynamic1].hi_target -
set[set[i].dynamic1].lo_target) /
(set[set[i].dynamic2].hi_target -
set[set[i].dynamic2].lo_target));
set[i].hi_target = 0.5*(set[i].lo_start+set[i].hi_start) +
0.5*(set[i].vol_start /
(set[set[i].dynamic1].hi_target -
set[set[i].dynamic1].lo_target) /
(set[set[i].dynamic2].hi_target -
set[set[i].dynamic2].lo_target));
} else if (set[i].substyle == TWO_FROM_ONE) {
set[i].lo_target = 0.5*(set[i].lo_start+set[i].hi_start) -
0.5*sqrt(set[i].vol_start /
(set[set[i].dynamic1].hi_target -
set[set[i].dynamic1].lo_target) /
(set[set[i].fixed].hi_start -
set[set[i].fixed].lo_start) *
(set[i].hi_start - set[i].lo_start));
set[i].hi_target = 0.5*(set[i].lo_start+set[i].hi_start) +
0.5*sqrt(set[i].vol_start /
(set[set[i].dynamic1].hi_target -
set[set[i].dynamic1].lo_target) /
(set[set[i].fixed].hi_start -
set[set[i].fixed].lo_start) *
(set[i].hi_start - set[i].lo_start));
}
}
// for triclinic, set new box shape
// for NONE, target is current tilt
// for TRATE, set target directly based on current time. also set h_rate
// for WIGGLE, set target directly based on current time. also set h_rate
// for VARIABLE, set target directly via variable eval. also set h_rate
// for other styles, target is linear value between start and stop values
if (triclinic) {
double *h = domain->h;
for (i = 3; i < 6; i++) {
if (set[i].style == NONE) {
if (i == 5) set[i].tilt_target = domain->xy;
else if (i == 4) set[i].tilt_target = domain->xz;
else if (i == 3) set[i].tilt_target = domain->yz;
} else if (set[i].style == TRATE) {
double delt = (update->ntimestep - update->beginstep) * update->dt;
set[i].tilt_target = set[i].tilt_start * exp(set[i].rate*delt);
h_rate[i] = set[i].rate * domain->h[i];
} else if (set[i].style == WIGGLE) {
double delt = (update->ntimestep - update->beginstep) * update->dt;
set[i].tilt_target = set[i].tilt_start +
set[i].amplitude * sin(MY_2PI*delt/set[i].tperiod);
h_rate[i] = MY_2PI/set[i].tperiod * set[i].amplitude *
cos(MY_2PI*delt/set[i].tperiod);
} else if (set[i].style == VARIABLE) {
double delta_tilt = input->variable->compute_equal(set[i].hvar);
set[i].tilt_target = set[i].tilt_start + delta_tilt;
h_rate[i] = input->variable->compute_equal(set[i].hratevar);
} else {
set[i].tilt_target = set[i].tilt_start +
delta*(set[i].tilt_stop - set[i].tilt_start);
}
// tilt_target can be large positive or large negative value
// add/subtract box lengths until tilt_target is closest to current value
int idenom = 0;
if (i == 5) idenom = 0;
else if (i == 4) idenom = 0;
else if (i == 3) idenom = 1;
double denom = set[idenom].hi_target - set[idenom].lo_target;
double current = h[i]/h[idenom];
while (set[i].tilt_target/denom - current > 0.0)
set[i].tilt_target -= denom;
while (set[i].tilt_target/denom - current < 0.0)
set[i].tilt_target += denom;
if (fabs(set[i].tilt_target/denom - 1.0 - current) <
fabs(set[i].tilt_target/denom - current))
set[i].tilt_target -= denom;
}
}
if (varflag) modify->addstep_compute(update->ntimestep + nevery);
// if any tilt ratios exceed 0.5, set flip = 1 and compute new tilt values
// do not flip in x or y if non-periodic (can tilt but not flip)
// this is b/c the box length would be changed (dramatically) by flip
// if yz tilt exceeded, adjust C vector by one B vector
// if xz tilt exceeded, adjust C vector by one A vector
// if xy tilt exceeded, adjust B vector by one A vector
// check yz first since it may change xz, then xz check comes after
// flip is performed on next timestep, before reneighboring in pre-exchange()
if (triclinic && flipflag) {
double xprd = set[0].hi_target - set[0].lo_target;
double yprd = set[1].hi_target - set[1].lo_target;
double xprdinv = 1.0 / xprd;
double yprdinv = 1.0 / yprd;
if (set[3].tilt_target*yprdinv < -0.5 ||
set[3].tilt_target*yprdinv > 0.5 ||
set[4].tilt_target*xprdinv < -0.5 ||
set[4].tilt_target*xprdinv > 0.5 ||
set[5].tilt_target*xprdinv < -0.5 ||
set[5].tilt_target*xprdinv > 0.5) {
set[3].tilt_flip = set[3].tilt_target;
set[4].tilt_flip = set[4].tilt_target;
set[5].tilt_flip = set[5].tilt_target;
flipxy = flipxz = flipyz = 0;
if (domain->yperiodic) {
if (set[3].tilt_flip*yprdinv < -0.5) {
set[3].tilt_flip += yprd;
set[4].tilt_flip += set[5].tilt_flip;
flipyz = 1;
} else if (set[3].tilt_flip*yprdinv > 0.5) {
set[3].tilt_flip -= yprd;
set[4].tilt_flip -= set[5].tilt_flip;
flipyz = -1;
}
}
if (domain->xperiodic) {
if (set[4].tilt_flip*xprdinv < -0.5) {
set[4].tilt_flip += xprd;
flipxz = 1;
}
if (set[4].tilt_flip*xprdinv > 0.5) {
set[4].tilt_flip -= xprd;
flipxz = -1;
}
if (set[5].tilt_flip*xprdinv < -0.5) {
set[5].tilt_flip += xprd;
flipxy = 1;
}
if (set[5].tilt_flip*xprdinv > 0.5) {
set[5].tilt_flip -= xprd;
flipxy = -1;
}
}
flip = 0;
if (flipxy || flipxz || flipyz) flip = 1;
if (flip) next_reneighbor = update->ntimestep + 1;
}
}
// convert atoms and rigid bodies to lamda coords
if (remapflag == Domain::X_REMAP) {
int nlocal = atom->nlocal;
domainKK->x2lamda(nlocal);
if (rfix.size() > 0) {
atomKK->sync(Host,ALL_MASK);
for (auto &ifix : rfix)
ifix->deform(0);
atomKK->modified(Host,ALL_MASK);
}
}
// reset global and local box to new size/shape
// only if deform fix is controlling the dimension
if (set[0].style) {
domain->boxlo[0] = set[0].lo_target;
domain->boxhi[0] = set[0].hi_target;
}
if (set[1].style) {
domain->boxlo[1] = set[1].lo_target;
domain->boxhi[1] = set[1].hi_target;
}
if (set[2].style) {
domain->boxlo[2] = set[2].lo_target;
domain->boxhi[2] = set[2].hi_target;
}
if (triclinic) {
if (set[3].style) domain->yz = set[3].tilt_target;
if (set[4].style) domain->xz = set[4].tilt_target;
if (set[5].style) domain->xy = set[5].tilt_target;
}
domain->set_global_box();
domain->set_local_box();
// convert atoms and rigid bodies back to box coords
if (remapflag == Domain::X_REMAP) {
int nlocal = atom->nlocal;
domainKK->lamda2x(nlocal);
if (rfix.size() > 0) {
atomKK->sync(Host,ALL_MASK);
for (auto &ifix : rfix)
ifix->deform(1);
atomKK->modified(Host,ALL_MASK);
}
}
// redo KSpace coeffs since box has changed
if (kspace_flag) force->kspace->setup();
} }

View File

@ -34,13 +34,9 @@ class FixDeformKokkos : public FixDeform {
void pre_exchange() override; void pre_exchange() override;
void end_of_step() override; void end_of_step() override;
private:
class DomainKokkos *domainKK;
}; };
} }
#endif #endif
#endif #endif

View File

@ -13,22 +13,23 @@
------------------------------------------------------------------------- */ ------------------------------------------------------------------------- */
/* ---------------------------------------------------------------------- /* ----------------------------------------------------------------------
Contributing author: Trung Nguyen (U Chicago) Contributing authors: Trung Nguyen (U Chicago)
Mitch Murphy (alphataubio at gmail)
------------------------------------------------------------------------- */ ------------------------------------------------------------------------- */
#include "fix_efield_kokkos.h" #include "fix_efield_kokkos.h"
#include "atom_kokkos.h" #include "atom_kokkos.h"
#include "update.h"
#include "modify.h"
#include "domain_kokkos.h"
#include "region.h"
#include "input.h"
#include "variable.h"
#include "memory_kokkos.h"
#include "error.h"
#include "atom_masks.h" #include "atom_masks.h"
#include "domain_kokkos.h"
#include "error.h"
#include "input.h"
#include "kokkos_base.h" #include "kokkos_base.h"
#include "memory_kokkos.h"
#include "modify_kokkos.h"
#include "region.h"
#include "update.h"
#include "variable.h"
using namespace LAMMPS_NS; using namespace LAMMPS_NS;
using namespace FixConst; using namespace FixConst;
@ -44,12 +45,12 @@ FixEfieldKokkos<DeviceType>::FixEfieldKokkos(LAMMPS *lmp, int narg, char **arg)
kokkosable = 1; kokkosable = 1;
atomKK = (AtomKokkos *) atom; atomKK = (AtomKokkos *) atom;
execution_space = ExecutionSpaceFromDevice<DeviceType>::space; execution_space = ExecutionSpaceFromDevice<DeviceType>::space;
datamask_read = EMPTY_MASK; datamask_read = X_MASK | F_MASK | TORQUE_MASK | Q_MASK | MU_MASK | IMAGE_MASK | MASK_MASK;
datamask_modify = EMPTY_MASK; datamask_modify = F_MASK | TORQUE_MASK;
memory->destroy(efield); memory->destroy(efield);
memoryKK->create_kokkos(k_efield,efield,maxatom,4,"efield:efield"); memoryKK->create_kokkos(k_efield,efield,maxatom,4,"efield:efield");
d_efield = k_efield.view<DeviceType>(); d_efield = k_efield.template view<DeviceType>();
} }
/* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */
@ -60,7 +61,7 @@ FixEfieldKokkos<DeviceType>::~FixEfieldKokkos()
if (copymode) return; if (copymode) return;
memoryKK->destroy_kokkos(k_efield,efield); memoryKK->destroy_kokkos(k_efield,efield);
efield = nullptr; memoryKK->destroy_kokkos(k_vatom,vatom);
} }
/* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */
@ -77,17 +78,30 @@ void FixEfieldKokkos<DeviceType>::init()
/* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */
template<class DeviceType> template<class DeviceType>
void FixEfieldKokkos<DeviceType>::post_force(int /*vflag*/) void FixEfieldKokkos<DeviceType>::post_force(int vflag)
{ {
atomKK->sync(execution_space, X_MASK | F_MASK | Q_MASK | IMAGE_MASK | MASK_MASK); atomKK->sync(execution_space, datamask_read);
x = atomKK->k_x.view<DeviceType>(); d_x = atomKK->k_x.template view<DeviceType>();
f = atomKK->k_f.view<DeviceType>(); d_f = atomKK->k_f.template view<DeviceType>();
q = atomKK->k_q.view<DeviceType>(); d_q = atomKK->k_q.template view<DeviceType>();
image = atomKK->k_image.view<DeviceType>(); d_mu = atomKK->k_mu.template view<DeviceType>();
mask = atomKK->k_mask.view<DeviceType>(); d_torque = atomKK->k_torque.template view<DeviceType>();
d_image = atomKK->k_image.template view<DeviceType>();
d_mask = atomKK->k_mask.template view<DeviceType>();
int nlocal = atomKK->nlocal;
int nlocal = atom->nlocal; // virial setup
v_init(vflag);
// reallocate per-atom arrays if necessary
if (vflag_atom) {
memoryKK->destroy_kokkos(k_vatom,vatom);
memoryKK->create_kokkos(k_vatom,vatom,maxvatom,"efield:vatom");
d_vatom = k_vatom.template view<DeviceType>();
}
// update region if necessary // update region if necessary
@ -111,53 +125,24 @@ void FixEfieldKokkos<DeviceType>::post_force(int /*vflag*/)
d_efield = k_efield.view<DeviceType>(); d_efield = k_efield.view<DeviceType>();
} }
fsum[0] = fsum[1] = fsum[2] = fsum[3] = 0.0;
double_4 fsum_kk;
force_flag = 0; force_flag = 0;
double result[10] = {0.0};
if (varflag == CONSTANT) { if (varflag == CONSTANT) {
prd = domain->prd;
h = domain->h;
triclinic = domain->triclinic;
copymode = 1; copymode = 1;
// It would be more concise to use the operators below, but there is still an issue with unwrap (TODO below) if(qflag && muflag)
//Kokkos::parallel_reduce(Kokkos::RangePolicy<DeviceType, TagFixEfieldConstant>(0,nlocal),*this,fsum_kk); Kokkos::parallel_reduce(Kokkos::RangePolicy<DeviceType, TagFixEfieldConstant<1,1> >(0,nlocal),*this,result);
else if(qflag && !muflag)
{ Kokkos::parallel_reduce(Kokkos::RangePolicy<DeviceType, TagFixEfieldConstant<1,0> >(0,nlocal),*this,result);
// local variables for lambda capture else if(!qflag && muflag)
auto prd = Few<double,3>(domain->prd); Kokkos::parallel_reduce(Kokkos::RangePolicy<DeviceType, TagFixEfieldConstant<0,1> >(0,nlocal),*this,result);
auto h = Few<double,6>(domain->h); else
auto triclinic = domain->triclinic; Kokkos::parallel_reduce(Kokkos::RangePolicy<DeviceType, TagFixEfieldConstant<0,0> >(0,nlocal),*this,result);
auto l_ex = ex;
auto l_ey = ey;
auto l_ez = ez;
auto l_x = x;
auto l_q = q;
auto l_f = f;
auto l_mask = mask;
auto l_image = image;
auto l_groupbit = groupbit;
Kokkos::parallel_reduce(nlocal, LAMMPS_LAMBDA(const int& i, double_4& fsum_kk) {
if (l_mask[i] & l_groupbit) {
Few<double,3> x_i;
x_i[0] = l_x(i,0);
x_i[1] = l_x(i,1);
x_i[2] = l_x(i,2);
auto unwrap = DomainKokkos::unmap(prd,h,triclinic,x_i,l_image(i));
auto qtmp = l_q(i);
auto fx = qtmp * l_ex;
auto fy = qtmp * l_ey;
auto fz = qtmp * l_ez;
l_f(i,0) += fx;
l_f(i,1) += fy;
l_f(i,2) += fz;
fsum_kk.d0 -= fx * unwrap[0] + fy * unwrap[1] + fz * unwrap[2];
fsum_kk.d1 += fx;
fsum_kk.d2 += fy;
fsum_kk.d3 += fz;
}
},fsum_kk);
}
copymode = 0; copymode = 0;
@ -167,19 +152,7 @@ void FixEfieldKokkos<DeviceType>::post_force(int /*vflag*/)
atomKK->sync(Host,ALL_MASK); // this can be removed when variable class is ported to Kokkos atomKK->sync(Host,ALL_MASK); // this can be removed when variable class is ported to Kokkos
modify->clearstep_compute(); FixEfield::update_efield_variables();
if (xstyle == EQUAL) ex = input->variable->compute_equal(xvar);
else if (xstyle == ATOM)
input->variable->compute_atom(xvar,igroup,&efield[0][0],4,0);
if (ystyle == EQUAL) ey = input->variable->compute_equal(yvar);
else if (ystyle == ATOM)
input->variable->compute_atom(yvar,igroup,&efield[0][1],4,0);
if (zstyle == EQUAL) ez = input->variable->compute_equal(zvar);
else if (zstyle == ATOM)
input->variable->compute_atom(zvar,igroup,&efield[0][2],4,0);
modify->addstep_compute(update->ntimestep + 1);
if (varflag == ATOM) { // this can be removed when variable class is ported to Kokkos if (varflag == ATOM) { // this can be removed when variable class is ported to Kokkos
k_efield.modify<LMPHostType>(); k_efield.modify<LMPHostType>();
@ -187,121 +160,154 @@ void FixEfieldKokkos<DeviceType>::post_force(int /*vflag*/)
} }
copymode = 1; copymode = 1;
// It would be more concise to use the operators below, but there is still an issue with unwrap (TODO below)
//Kokkos::parallel_reduce(Kokkos::RangePolicy<DeviceType, TagFixEfieldNonConstant>(0,nlocal),*this,fsum_kk);
{
// local variables for lambda capture
auto prd = Few<double,3>(domain->prd);
auto h = Few<double,6>(domain->h);
auto triclinic = domain->triclinic;
auto l_ex = ex;
auto l_ey = ey;
auto l_ez = ez;
auto l_d_efield = d_efield;
auto l_x = x; if(qflag && muflag)
auto l_q = q; Kokkos::parallel_reduce(Kokkos::RangePolicy<DeviceType, TagFixEfieldNonConstant<1,1> >(0,nlocal),*this,result);
auto l_f = f; else if(qflag && !muflag)
auto l_mask = mask; Kokkos::parallel_reduce(Kokkos::RangePolicy<DeviceType, TagFixEfieldNonConstant<1,0> >(0,nlocal),*this,result);
auto l_image = image; else if(!qflag && muflag)
auto l_groupbit = groupbit; Kokkos::parallel_reduce(Kokkos::RangePolicy<DeviceType, TagFixEfieldNonConstant<0,1> >(0,nlocal),*this,result);
auto l_xstyle = xstyle; else
auto l_ystyle = ystyle; Kokkos::parallel_reduce(Kokkos::RangePolicy<DeviceType, TagFixEfieldNonConstant<0,0> >(0,nlocal),*this,result);
auto l_zstyle = zstyle;
Kokkos::parallel_reduce(nlocal, LAMMPS_LAMBDA(const int& i, double_4& fsum_kk) {
if (l_mask[i] & l_groupbit) {
Few<double,3> x_i;
x_i[0] = l_x(i,0);
x_i[1] = l_x(i,1);
x_i[2] = l_x(i,2);
auto unwrap = DomainKokkos::unmap(prd,h,triclinic,x_i,l_image(i));
auto qtmp = l_q(i);
auto fx = qtmp * l_ex;
auto fy = qtmp * l_ey;
auto fz = qtmp * l_ez;
if (l_xstyle == ATOM) l_f(i,0) += qtmp * l_d_efield(i,0);
else if (l_xstyle) l_f(i,0) += fx;
if (l_ystyle == ATOM) l_f(i,1) += qtmp * l_d_efield(i,1);
else if (l_ystyle) l_f(i,1) += fy;
if (l_zstyle == ATOM) l_f(i,2) += qtmp * l_d_efield(i,2);
else if (l_zstyle) l_f(i,2) += fz;
fsum_kk.d0 -= fx * unwrap[0] + fy * unwrap[1] + fz * unwrap[2];
fsum_kk.d1 += fx;
fsum_kk.d2 += fy;
fsum_kk.d3 += fz;
}
},fsum_kk);
}
copymode = 0; copymode = 0;
} }
atomKK->modified(execution_space, F_MASK); atomKK->modified(execution_space, datamask_modify);
fsum[0] = fsum_kk.d0; fsum[0]=result[0];
fsum[1] = fsum_kk.d1; fsum[1]=result[1];
fsum[2] = fsum_kk.d2; fsum[2]=result[2];
fsum[3] = fsum_kk.d3; fsum[3]=result[3];
}
template<class DeviceType> if (vflag_global) {
KOKKOS_INLINE_FUNCTION virial[0] += result[4];
void FixEfieldKokkos<DeviceType>::operator()(TagFixEfieldConstant, const int &i, double_4& fsum_kk) const { virial[1] += result[5];
if (mask[i] & groupbit) { virial[2] += result[6];
if (region && !d_match[i]) return; virial[3] += result[7];
virial[4] += result[8];
virial[5] += result[9];
}
auto prd = Few<double,3>(domain->prd); if (vflag_atom) {
auto h = Few<double,6>(domain->h); k_vatom.template modify<DeviceType>();
auto triclinic = domain->triclinic; k_vatom.template sync<LMPHostType>();
Few<double,3> x_i;
x_i[0] = x(i,0);
x_i[1] = x(i,1);
x_i[2] = x(i,2);
auto unwrap = DomainKokkos::unmap(prd,h,triclinic,x_i,image(i));
const F_FLOAT qtmp = q(i);
const F_FLOAT fx = qtmp * ex;
const F_FLOAT fy = qtmp * ey;
const F_FLOAT fz = qtmp * ez;
f(i,0) += fx;
f(i,1) += fy;
f(i,2) += fz;
// TODO: access to unwrap below crashes
fsum_kk.d0 -= fx * unwrap[0] + fy * unwrap[1] + fz * unwrap[2];
fsum_kk.d1 += fx;
fsum_kk.d2 += fy;
fsum_kk.d3 += fz;
} }
} }
template<class DeviceType> template<class DeviceType>
template<int QFLAG, int MUFLAG>
KOKKOS_INLINE_FUNCTION KOKKOS_INLINE_FUNCTION
void FixEfieldKokkos<DeviceType>::operator()(TagFixEfieldNonConstant, const int &i, double_4& fsum_kk) const { void FixEfieldKokkos<DeviceType>::operator()(TagFixEfieldConstant<QFLAG,MUFLAG>, const int &i, value_type result) const {
auto prd = Few<double,3>(domain->prd); if ( QFLAG && (d_mask(i) & groupbit)) {
auto h = Few<double,6>(domain->h);
auto triclinic = domain->triclinic;
if (mask[i] & groupbit) {
if (region && !d_match[i]) return; if (region && !d_match[i]) return;
Few<double,3> x_i; Few<double,3> x_i;
x_i[0] = x(i,0); x_i[0] = d_x(i,0);
x_i[1] = x(i,1); x_i[1] = d_x(i,1);
x_i[2] = x(i,2); x_i[2] = d_x(i,2);
auto unwrap = DomainKokkos::unmap(prd,h,triclinic,x_i,image(i)); auto unwrapKK = DomainKokkos::unmap(prd,h,triclinic,x_i,d_image(i));
const F_FLOAT qtmp = q[i]; const F_FLOAT fx = d_q(i) * ex;
const F_FLOAT fx = qtmp * ex; const F_FLOAT fy = d_q(i) * ey;
const F_FLOAT fy = qtmp * ey; const F_FLOAT fz = d_q(i) * ez;
const F_FLOAT fz = qtmp * ez; d_f(i,0) += fx;
if (xstyle == ATOM) f(i,0) += d_efield(i,0); d_f(i,1) += fy;
else if (xstyle) f(i,0) += fx; d_f(i,2) += fz;
if (ystyle == ATOM) f(i,1) += d_efield(i,1); result[0] -= fx * unwrapKK[0] + fy * unwrapKK[1] + fz * unwrapKK[2];
else if (ystyle) f(i,1) += fy; result[1] += fx;
if (zstyle == ATOM) f(i,2) += d_efield(i,2); result[2] += fy;
else if (zstyle) f(i,2) += fz; result[3] += fz;
// TODO: access to unwrap below crashes
fsum_kk.d0 -= fx * unwrap[0] + fy * unwrap[1] + fz * unwrap[2]; if (evflag) {
fsum_kk.d1 += fx; double v[6];
fsum_kk.d2 += fy; v[0] = fx * unwrapKK[0];
fsum_kk.d3 += fz; v[1] = fy * unwrapKK[1];
v[2] = fz * unwrapKK[2];
v[3] = fx * unwrapKK[1];
v[4] = fx * unwrapKK[2];
v[5] = fy * unwrapKK[2];
v_tally(result, i, v);
}
}
if (MUFLAG && (d_mask(i) & groupbit)) {
if (region && !d_match[i]) return;
d_torque(i,0) += ez * d_mu(i,1) - ey * d_mu(i,2);
d_torque(i,1) += ex * d_mu(i,2) - ez * d_mu(i,0);
d_torque(i,2) += ey * d_mu(i,0) - ex * d_mu(i,1);
result[0] -= d_mu(i,0) * ex + d_mu(i,1) * ey + d_mu(i,2) * ez;
}
}
template<class DeviceType>
template<int QFLAG, int MUFLAG>
KOKKOS_INLINE_FUNCTION
void FixEfieldKokkos<DeviceType>::operator()(TagFixEfieldNonConstant<QFLAG,MUFLAG>, const int &i, value_type result) const {
if ( QFLAG && (d_mask(i) & groupbit)) {
if (region && !d_match[i]) return;
F_FLOAT fx, fy, fz;
if (xstyle == ATOM) fx = qe2f * d_q(i) * d_efield(i,0);
else fx = d_q(i) * ex;
if (ystyle == ATOM) fy = qe2f * d_q(i) * d_efield(i,1);
else fy = d_q(i) * ey;
if (zstyle == ATOM) fz = qe2f * d_q(i) * d_efield(i,2);
else fz = d_q(i) * ez;
d_f(i,0) += fx;
d_f(i,1) += fy;
d_f(i,2) += fz;
result[1] += fx;
result[2] += fy;
result[3] += fz;
if (pstyle == ATOM) result[0] += qe2f * d_q(i) * d_efield(i,3);
else if (estyle == ATOM) result[0] += d_efield(i,3);
}
if (MUFLAG && (d_mask(i) & groupbit)) {
if (region && !d_match[i]) return;
d_torque(i,0) += ez * d_mu(i,1) - ey * d_mu(i,2);
d_torque(i,1) += ex * d_mu(i,2) - ez * d_mu(i,0);
d_torque(i,2) += ey * d_mu(i,0) - ex * d_mu(i,1);
}
}
/* ----------------------------------------------------------------------
tally virial into global and per-atom accumulators
i = local index of atom
v = total virial for the interaction
increment global virial by v
increment per-atom virial by v
this method can be used when fix computes forces in post_force()
and the force depends on a distance to some external object
e.g. fix wall/lj93: compute virial only on owned atoms
------------------------------------------------------------------------- */
template <class DeviceType>
KOKKOS_INLINE_FUNCTION
void FixEfieldKokkos<DeviceType>::v_tally(value_type result, int i, double *v) const
{
if (vflag_global) {
result[4] += v[0];
result[5] += v[1];
result[6] += v[2];
result[7] += v[3];
result[8] += v[4];
result[9] += v[5];
}
if (vflag_atom) {
Kokkos::atomic_add(&(d_vatom(i,0)),v[0]);
Kokkos::atomic_add(&(d_vatom(i,1)),v[1]);
Kokkos::atomic_add(&(d_vatom(i,2)),v[2]);
Kokkos::atomic_add(&(d_vatom(i,3)),v[3]);
Kokkos::atomic_add(&(d_vatom(i,4)),v[4]);
Kokkos::atomic_add(&(d_vatom(i,5)),v[5]);
} }
} }
@ -311,4 +317,3 @@ template class FixEfieldKokkos<LMPDeviceType>;
template class FixEfieldKokkos<LMPHostType>; template class FixEfieldKokkos<LMPHostType>;
#endif #endif
} }

View File

@ -25,35 +25,20 @@ FixStyle(efield/kk/host,FixEfieldKokkos<LMPHostType>);
#include "fix_efield.h" #include "fix_efield.h"
#include "kokkos_type.h" #include "kokkos_type.h"
#include "kokkos_few.h"
namespace LAMMPS_NS { namespace LAMMPS_NS {
struct e_double_4 { template<int QFLAG, int MUFLAG>
double d0, d1, d2, d3;
KOKKOS_INLINE_FUNCTION
e_double_4() {
d0 = d1 = d2 = d3 = 0.0;
}
KOKKOS_INLINE_FUNCTION
e_double_4& operator+=(const e_double_4 &rhs) {
d0 += rhs.d0;
d1 += rhs.d1;
d2 += rhs.d2;
d3 += rhs.d3;
return *this;
}
};
typedef e_double_4 double_4;
struct TagFixEfieldConstant{}; struct TagFixEfieldConstant{};
template<int QFLAG, int MUFLAG>
struct TagFixEfieldNonConstant{}; struct TagFixEfieldNonConstant{};
template<class DeviceType> template<class DeviceType>
class FixEfieldKokkos : public FixEfield { class FixEfieldKokkos : public FixEfield {
public: public:
typedef DeviceType device_type; typedef DeviceType device_type;
typedef double_4 value_type;
typedef ArrayTypes<DeviceType> AT; typedef ArrayTypes<DeviceType> AT;
FixEfieldKokkos(class LAMMPS *, int, char **); FixEfieldKokkos(class LAMMPS *, int, char **);
@ -61,22 +46,40 @@ class FixEfieldKokkos : public FixEfield {
void init() override; void init() override;
void post_force(int) override; void post_force(int) override;
KOKKOS_INLINE_FUNCTION typedef double value_type[];
void operator()(TagFixEfieldConstant, const int&, double_4&) const; const int value_count = 10;
template<int QFLAG, int MUFLAG>
KOKKOS_INLINE_FUNCTION KOKKOS_INLINE_FUNCTION
void operator()(TagFixEfieldNonConstant, const int&, double_4&) const; void operator()(TagFixEfieldConstant<QFLAG,MUFLAG>, const int&, value_type) const;
template<int QFLAG, int MUFLAG>
KOKKOS_INLINE_FUNCTION
void operator()(TagFixEfieldNonConstant<QFLAG,MUFLAG>, const int&, value_type) const;
private: private:
DAT::tdual_ffloat_2d k_efield; DAT::tdual_ffloat_2d k_efield;
typename AT::t_ffloat_2d_randomread d_efield; typename AT::t_ffloat_2d_randomread d_efield;
typename AT::t_int_1d d_match; typename AT::t_int_1d d_match;
typename AT::t_x_array_randomread x; typename AT::t_x_array_randomread d_x;
typename AT::t_float_1d_randomread q; typename AT::t_float_1d_randomread d_q;
typename AT::t_f_array f; typename AT::t_mu_array_randomread d_mu;
typename AT::t_imageint_1d_randomread image; typename AT::t_f_array d_f;
typename AT::t_int_1d_randomread mask; typename AT::t_f_array d_torque;
typename AT::t_imageint_1d_randomread d_image;
typename AT::t_int_1d_randomread d_mask;
Few<double,3> prd;
Few<double,6> h;
int triclinic;
DAT::tdual_virial_array k_vatom;
typename AT::t_virial_array d_vatom;
KOKKOS_INLINE_FUNCTION
void v_tally(value_type, int, double*) const;
}; };
} }

View File

@ -13,7 +13,8 @@
------------------------------------------------------------------------- */ ------------------------------------------------------------------------- */
/* ---------------------------------------------------------------------- /* ----------------------------------------------------------------------
Contributing author: Stan Moore (SNL) Contributing authors: Stan Moore (SNL)
Mitch Murphy (alphataubio@gmail.com)
------------------------------------------------------------------------- */ ------------------------------------------------------------------------- */
#include "fix_nh_kokkos.h" #include "fix_nh_kokkos.h"
@ -37,6 +38,7 @@ using namespace FixConst;
static constexpr double DELTAFLIP = 0.1; static constexpr double DELTAFLIP = 0.1;
static constexpr double TILTMAX = 1.5; static constexpr double TILTMAX = 1.5;
static constexpr double EPSILON = 1.0e-6;
enum{NOBIAS,BIAS}; enum{NOBIAS,BIAS};
enum{NONE,XYZ,XY,YZ,XZ}; enum{NONE,XYZ,XY,YZ,XZ};
@ -50,6 +52,7 @@ template<class DeviceType>
FixNHKokkos<DeviceType>::FixNHKokkos(LAMMPS *lmp, int narg, char **arg) : FixNH(lmp, narg, arg) FixNHKokkos<DeviceType>::FixNHKokkos(LAMMPS *lmp, int narg, char **arg) : FixNH(lmp, narg, arg)
{ {
kokkosable = 1; kokkosable = 1;
atomKK = (AtomKokkos *)atom;
domainKK = (DomainKokkos *) domain; domainKK = (DomainKokkos *) domain;
execution_space = ExecutionSpaceFromDevice<DeviceType>::space; execution_space = ExecutionSpaceFromDevice<DeviceType>::space;
@ -89,18 +92,21 @@ void FixNHKokkos<DeviceType>::setup(int /*vflag*/)
} else if (pstat_flag) { } else if (pstat_flag) {
// t0 = reference temperature for masses // t0 = reference temperature for masses
// set equal to either ptemp or the current temperature
// cannot be done in init() b/c temperature cannot be called there // cannot be done in init() b/c temperature cannot be called there
// is b/c Modify::init() inits computes after fixes due to dof dependence // is b/c Modify::init() inits computes after fixes due to dof dependence
// guesstimate a unit-dependent t0 if actual T = 0.0 // error if T less than 1e-6
// if it was read in from a restart file, leave it be // if it was read in from a restart file, leave it be
if (t0 == 0.0) { if (t0 == 0.0) {
atomKK->sync(temperature->execution_space,temperature->datamask_read); if (p_temp_flag) {
t0 = temperature->compute_scalar(); t0 = p_temp;
atomKK->modified(temperature->execution_space,temperature->datamask_modify); } else {
if (t0 == 0.0) { atomKK->sync(temperature->execution_space,temperature->datamask_read);
if (strcmp(update->unit_style,"lj") == 0) t0 = 1.0; t0 = temperature->compute_scalar();
else t0 = 300.0; atomKK->modified(temperature->execution_space,temperature->datamask_modify);
if (t0 < EPSILON)
error->all(FLERR,"Current temperature too close to zero, consider using ptemp keyword");
} }
} }
t_target = t0; t_target = t0;
@ -298,13 +304,14 @@ void FixNHKokkos<DeviceType>::remap()
// convert pertinent atoms and rigid bodies to lamda coords // convert pertinent atoms and rigid bodies to lamda coords
domainKK->x2lamda(nlocal); x = atomKK->k_x.template view<DeviceType>();
//if (allremap) domainKK->x2lamda(nlocal);
//else { if (allremap) domainKK->x2lamda(nlocal);
// for (i = 0; i < nlocal; i++) else {
// if (mask[i] & dilate_group_bit) for ( int i = 0; i < nlocal; i++)
// domain->x2lamda(x[i],x[i]); if (mask[i] & dilate_group_bit)
//} domainKK->x2lamda(&x(i,0), &x(i,0));
}
if (rfix.size() > 0) if (rfix.size() > 0)
error->all(FLERR,"Cannot (yet) use rigid bodies with fix nh and Kokkos"); error->all(FLERR,"Cannot (yet) use rigid bodies with fix nh and Kokkos");
@ -446,13 +453,12 @@ void FixNHKokkos<DeviceType>::remap()
// convert pertinent atoms and rigid bodies back to box coords // convert pertinent atoms and rigid bodies back to box coords
domainKK->lamda2x(nlocal); if (allremap) domainKK->lamda2x(nlocal);
//if (allremap) domainKK->lamda2x(nlocal); else {
//else { for ( int i = 0; i < nlocal; i++)
// for (i = 0; i < nlocal; i++) if (mask[i] & dilate_group_bit)
// if (mask[i] & dilate_group_bit) domainKK->lamda2x(&x(i,0), &x(i,0));
// domain->lamda2x(x[i],x[i]); }
//}
// for (auto &ifix : rfix) ifix->deform(1); // for (auto &ifix : rfix) ifix->deform(1);
} }

View File

@ -12,11 +12,19 @@
See the README file in the top-level LAMMPS directory. See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */ ------------------------------------------------------------------------- */
/* ----------------------------------------------------------------------
Contributing author: Mitch Murphy (alphataubio@gmail.com)
------------------------------------------------------------------------- */
#include "fix_wall_lj93_kokkos.h" #include "fix_wall_lj93_kokkos.h"
#include "atom_masks.h"
#include "atom_kokkos.h" #include "atom_kokkos.h"
#include "error.h" #include "error.h"
#include "atom_masks.h" #include "input.h"
#include "memory_kokkos.h"
#include <iostream>
using namespace LAMMPS_NS; using namespace LAMMPS_NS;
@ -29,9 +37,91 @@ FixWallLJ93Kokkos<DeviceType>::FixWallLJ93Kokkos(LAMMPS *lmp, int narg, char **a
kokkosable = 1; kokkosable = 1;
atomKK = (AtomKokkos *) atom; atomKK = (AtomKokkos *) atom;
execution_space = ExecutionSpaceFromDevice<DeviceType>::space; execution_space = ExecutionSpaceFromDevice<DeviceType>::space;
datamask_read = EMPTY_MASK; datamask_read = X_MASK | V_MASK | MASK_MASK;
datamask_modify = EMPTY_MASK; datamask_modify = F_MASK;
virial_global_flag = virial_peratom_flag = 0;
memoryKK->create_kokkos(k_cutoff,6,"wall_lj93:cutoff");
memoryKK->create_kokkos(k_coeff1,6,"wall_lj93:coeff1");
memoryKK->create_kokkos(k_coeff2,6,"wall_lj93:coeff2");
memoryKK->create_kokkos(k_coeff3,6,"wall_lj93:coeff3");
memoryKK->create_kokkos(k_coeff4,6,"wall_lj93:coeff4");
memoryKK->create_kokkos(k_offset,6,"wall_lj93:offset");
d_cutoff = k_cutoff.template view<DeviceType>();
d_coeff1 = k_coeff1.template view<DeviceType>();
d_coeff2 = k_coeff2.template view<DeviceType>();
d_coeff3 = k_coeff3.template view<DeviceType>();
d_coeff4 = k_coeff4.template view<DeviceType>();
d_offset = k_offset.template view<DeviceType>();
}
template<class DeviceType>
FixWallLJ93Kokkos<DeviceType>::~FixWallLJ93Kokkos()
{
if (copymode) return;
memoryKK->destroy_kokkos(k_cutoff);
memoryKK->destroy_kokkos(k_coeff1);
memoryKK->destroy_kokkos(k_coeff2);
memoryKK->destroy_kokkos(k_coeff3);
memoryKK->destroy_kokkos(k_coeff4);
memoryKK->destroy_kokkos(k_offset);
memoryKK->destroy_kokkos(k_vatom,vatom);
}
/* ---------------------------------------------------------------------- */
template <class DeviceType>
void FixWallLJ93Kokkos<DeviceType>::precompute(int m)
{
FixWallLJ93::precompute(m);
for( int i=0 ; i<6 ; i++ ) {
k_cutoff.h_view(i) = cutoff[i];
k_coeff1.h_view(i) = coeff1[i];
k_coeff2.h_view(i) = coeff2[i];
k_coeff3.h_view(i) = coeff3[i];
k_coeff4.h_view(i) = coeff4[i];
k_offset.h_view(i) = offset[i];
}
k_cutoff.template modify<LMPHostType>();
k_coeff1.template modify<LMPHostType>();
k_coeff2.template modify<LMPHostType>();
k_coeff3.template modify<LMPHostType>();
k_coeff4.template modify<LMPHostType>();
k_offset.template modify<LMPHostType>();
k_cutoff.template sync<DeviceType>();
k_coeff1.template sync<DeviceType>();
k_coeff2.template sync<DeviceType>();
k_coeff3.template sync<DeviceType>();
k_coeff4.template sync<DeviceType>();
k_offset.template sync<DeviceType>();
}
/* ---------------------------------------------------------------------- */
template <class DeviceType>
void FixWallLJ93Kokkos<DeviceType>::post_force(int vflag)
{
// reallocate per-atom arrays if necessary
if (vflag_atom) {
memoryKK->destroy_kokkos(k_vatom,vatom);
memoryKK->create_kokkos(k_vatom,vatom,maxvatom,"wall_lj93:vatom");
d_vatom = k_vatom.template view<DeviceType>();
}
FixWallLJ93::post_force(vflag);
if (vflag_atom) {
k_vatom.template modify<DeviceType>();
k_vatom.template sync<LMPHostType>();
}
} }
/* ---------------------------------------------------------------------- /* ----------------------------------------------------------------------
@ -47,47 +137,89 @@ void FixWallLJ93Kokkos<DeviceType>::wall_particle(int m_in, int which, double co
m = m_in; m = m_in;
coord = coord_in; coord = coord_in;
atomKK->sync(execution_space, X_MASK|F_MASK|MASK_MASK); atomKK->sync(execution_space,datamask_read);
x = atomKK->k_x.view<DeviceType>(); d_x = atomKK->k_x.template view<DeviceType>();
f = atomKK->k_f.view<DeviceType>(); d_f = atomKK->k_f.template view<DeviceType>();
mask = atomKK->k_mask.view<DeviceType>(); d_mask = atomKK->k_mask.template view<DeviceType>();
int nlocal = atomKK->nlocal;
int nlocal = atom->nlocal;
dim = which / 2; dim = which / 2;
side = which % 2; side = which % 2;
if (side == 0) side = -1; if (side == 0) side = -1;
double result[13] = {0.0};
copymode = 1; copymode = 1;
FixWallLJ93KokkosFunctor<DeviceType> wp_functor(this); Kokkos::parallel_reduce(nlocal,*this,result);
Kokkos::parallel_reduce(nlocal,wp_functor,ewall);
copymode = 0; copymode = 0;
atomKK->modified(execution_space, F_MASK); ewall[0] += result[0];
ewall[m+1] += result[m+1];
atomKK->modified(execution_space,datamask_modify);
if (vflag_global) {
virial[0] += result[7];
virial[1] += result[8];
virial[2] += result[9];
virial[3] += result[10];
virial[4] += result[11];
virial[5] += result[12];
}
} }
template <class DeviceType> template <class DeviceType>
KOKKOS_INLINE_FUNCTION KOKKOS_INLINE_FUNCTION
void FixWallLJ93Kokkos<DeviceType>::wall_particle_item(int i, value_type ewall) const { void FixWallLJ93Kokkos<DeviceType>::operator()(const int &i, value_type result) const {
if (mask(i) & groupbit) { if (d_mask(i) & groupbit) {
double delta; double delta;
if (side < 0) delta = x(i,dim) - coord; if (side < 0) delta = d_x(i,dim) - coord;
else delta = coord - x(i,dim); else delta = coord - d_x(i,dim);
if (delta >= cutoff[m]) return; if (delta >= d_cutoff(m)) return;
if (delta <= 0.0) if (delta <= 0.0)
Kokkos::abort("Particle on or inside fix wall surface"); Kokkos::abort("Particle on or inside fix wall surface");
double rinv = 1.0/delta; double rinv = 1.0/delta;
double r2inv = rinv*rinv; double r2inv = rinv*rinv;
double r4inv = r2inv*r2inv; double r4inv = r2inv*r2inv;
double r10inv = r4inv*r4inv*r2inv; double r10inv = r4inv*r4inv*r2inv;
double fwall = side * (coeff1[m]*r10inv - coeff2[m]*r4inv); double fwall = side * (d_coeff1(m)*r10inv - d_coeff2(m)*r4inv);
f(i,dim) -= fwall; d_f(i,dim) -= fwall;
ewall[0] += coeff3[m]*r4inv*r4inv*rinv - result[0] += d_coeff3(m)*r4inv*r4inv*rinv - d_coeff4(m)*r2inv*rinv - d_offset(m);
coeff4[m]*r2inv*rinv - offset[m]; result[m+1] += fwall;
ewall[m+1] += fwall;
if (evflag) {
double vn;
if (side < 0)
vn = -fwall * delta;
else
vn = fwall * delta;
v_tally(result, dim, i, vn);
}
} }
} }
/* ----------------------------------------------------------------------
tally virial component into global and per-atom accumulators
n = index of virial component (0-5)
i = local index of atom
vn = nth component of virial for the interaction
increment nth component of global virial by vn
increment nth component of per-atom virial by vn
this method can be used when fix computes forces in post_force()
and the force depends on a distance to some external object
e.g. fix wall/lj93: compute virial only on owned atoms
------------------------------------------------------------------------- */
template <class DeviceType>
KOKKOS_INLINE_FUNCTION
void FixWallLJ93Kokkos<DeviceType>::v_tally(value_type result, int n, int i, double vn) const
{
if (vflag_global)
result[n+7] += vn;
if (vflag_atom)
Kokkos::atomic_add(&(d_vatom(i,n)),vn);
}
namespace LAMMPS_NS { namespace LAMMPS_NS {
template class FixWallLJ93Kokkos<LMPDeviceType>; template class FixWallLJ93Kokkos<LMPDeviceType>;
#ifdef LMP_KOKKOS_GPU #ifdef LMP_KOKKOS_GPU

View File

@ -33,38 +33,37 @@ class FixWallLJ93Kokkos : public FixWallLJ93 {
public: public:
typedef DeviceType device_type; typedef DeviceType device_type;
typedef ArrayTypes<DeviceType> AT; typedef ArrayTypes<DeviceType> AT;
typedef double value_type[];
FixWallLJ93Kokkos(class LAMMPS *, int, char **); FixWallLJ93Kokkos(class LAMMPS *, int, char **);
~FixWallLJ93Kokkos() override;
void precompute(int) override;
void post_force(int) override;
void wall_particle(int, int, double) override; void wall_particle(int, int, double) override;
int m; int m;
typedef double value_type[];
const int value_count = 13;
KOKKOS_INLINE_FUNCTION KOKKOS_INLINE_FUNCTION
void wall_particle_item(int, value_type) const; void operator()(const int&, value_type) const;
private: private:
int dim,side; int dim,side;
double coord; double coord;
typename AT::t_x_array x; typename AT::t_x_array d_x;
typename AT::t_f_array f; typename AT::t_f_array d_f;
typename AT::t_int_1d mask; typename AT::t_int_1d d_mask;
};
template <class DeviceType> DAT::tdual_virial_array k_vatom;
struct FixWallLJ93KokkosFunctor { typename AT::t_virial_array d_vatom;
typedef DeviceType device_type ;
typedef double value_type[]; typename AT::tdual_ffloat_1d k_cutoff,k_coeff1,k_coeff2,k_coeff3,k_coeff4,k_offset;
const int value_count; typename AT::t_ffloat_1d d_cutoff,d_coeff1,d_coeff2,d_coeff3,d_coeff4,d_offset;
FixWallLJ93Kokkos<DeviceType> c;
FixWallLJ93KokkosFunctor(FixWallLJ93Kokkos<DeviceType>* c_ptr):
value_count(c_ptr->m+1), c(*c_ptr) {}
KOKKOS_INLINE_FUNCTION KOKKOS_INLINE_FUNCTION
void operator()(const int i, value_type ewall) const { void v_tally(value_type, int, int, double) const;
c.wall_particle_item(i,ewall);
}
}; };
} }

View File

@ -23,10 +23,6 @@
using namespace LAMMPS_NS; using namespace LAMMPS_NS;
enum{XLO=0,XHI=1,YLO=2,YHI=3,ZLO=4,ZHI=5};
enum{NONE=0,EDGE,CONSTANT,VARIABLE};
/* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */
template<class DeviceType> template<class DeviceType>

View File

@ -1663,6 +1663,27 @@ void Domain::remap(double *x)
if (triclinic) lamda2x(coord,x); if (triclinic) lamda2x(coord,x);
} }
/* ----------------------------------------------------------------------
remap all points into the periodic box no matter how far away
adjust 3 image flags encoded in image accordingly
resulting coord must satisfy lo <= coord < hi
MAX is important since coord - prd < lo can happen when coord = hi
for triclinic, point is converted to lamda coords (0-1) before doing remap
image = 10 bits for each dimension
increment/decrement in wrap-around fashion
------------------------------------------------------------------------- */
void Domain::remap_all()
{
double **x = atom->x;
imageint *image = atom->image;
int nlocal = atom->nlocal;
if (triclinic) x2lamda(nlocal);
for (int i = 0; i < nlocal; i++) remap(x[i],image[i]);
if (triclinic) lamda2x(nlocal);
}
/* ---------------------------------------------------------------------- /* ----------------------------------------------------------------------
remap xnew to be within half box length of xold remap xnew to be within half box length of xold
do it directly, not iteratively, in case is far away do it directly, not iteratively, in case is far away
@ -2188,6 +2209,19 @@ void Domain::lamda2x(int n)
} }
} }
void Domain::lamda2x(int n, int groupbit)
{
double **x = atom->x;
int *mask = atom->mask;
for (int i = 0; i < n; i++)
if (mask[i] & groupbit) {
x[i][0] = h[0]*x[i][0] + h[5]*x[i][1] + h[4]*x[i][2] + boxlo[0];
x[i][1] = h[1]*x[i][1] + h[3]*x[i][2] + boxlo[1];
x[i][2] = h[2]*x[i][2] + boxlo[2];
}
}
/* ---------------------------------------------------------------------- /* ----------------------------------------------------------------------
convert box coords to triclinic 0-1 lamda coords for all N atoms convert box coords to triclinic 0-1 lamda coords for all N atoms
lamda = H^-1 (x - x0) lamda = H^-1 (x - x0)
@ -2209,6 +2243,25 @@ void Domain::x2lamda(int n)
} }
} }
void Domain::x2lamda(int n, int groupbit)
{
double delta[3];
double **x = atom->x;
int *mask = atom->mask;
for (int i = 0; i < n; i++)
if (mask[i] & groupbit) {
delta[0] = x[i][0] - boxlo[0];
delta[1] = x[i][1] - boxlo[1];
delta[2] = x[i][2] - boxlo[2];
x[i][0] = h_inv[0]*delta[0] + h_inv[5]*delta[1] + h_inv[4]*delta[2];
x[i][1] = h_inv[1]*delta[1] + h_inv[3]*delta[2];
x[i][2] = h_inv[2]*delta[2];
}
}
/* ---------------------------------------------------------------------- /* ----------------------------------------------------------------------
convert triclinic 0-1 lamda coords to box coords for one atom convert triclinic 0-1 lamda coords to box coords for one atom
x = H lamda + x0; x = H lamda + x0;

View File

@ -136,6 +136,7 @@ class Domain : protected Pointers {
void closest_image(const double *const, const double *const, double *const); void closest_image(const double *const, const double *const, double *const);
void remap(double *, imageint &); void remap(double *, imageint &);
void remap(double *); void remap(double *);
void remap_all();
void remap_near(double *, double *); void remap_near(double *, double *);
void unmap_inv(double *x, imageint); void unmap_inv(double *x, imageint);
void unmap(double *, imageint); void unmap(double *, imageint);
@ -166,7 +167,9 @@ class Domain : protected Pointers {
void boundary_string(char *); void boundary_string(char *);
virtual void lamda2x(int); virtual void lamda2x(int);
virtual void lamda2x(int, int);
virtual void x2lamda(int); virtual void x2lamda(int);
virtual void x2lamda(int, int);
virtual void lamda2x(double *, double *); virtual void lamda2x(double *, double *);
virtual void x2lamda(double *, double *); virtual void x2lamda(double *, double *);
int inside(double *); int inside(double *);

View File

@ -648,11 +648,7 @@ void FixDeform::pre_exchange()
domain->set_local_box(); domain->set_local_box();
domain->image_flip(flipxy, flipxz, flipyz); domain->image_flip(flipxy, flipxz, flipyz);
domain->remap_all();
double **x = atom->x;
imageint *image = atom->image;
int nlocal = atom->nlocal;
for (int i = 0; i < nlocal; i++) domain->remap(x[i],image[i]);
domain->x2lamda(atom->nlocal); domain->x2lamda(atom->nlocal);
irregular->migrate_atoms(); irregular->migrate_atoms();
@ -898,13 +894,7 @@ void FixDeform::update_domain()
// convert atoms and rigid bodies to lamda coords // convert atoms and rigid bodies to lamda coords
if (remapflag == Domain::X_REMAP) { if (remapflag == Domain::X_REMAP) {
double **x = atom->x; domain->x2lamda(atom->nlocal, groupbit);
int *mask = atom->mask;
int nlocal = atom->nlocal;
for (int i = 0; i < nlocal; i++)
if (mask[i] & groupbit)
domain->x2lamda(x[i], x[i]);
for (auto &ifix : rfix) for (auto &ifix : rfix)
ifix->deform(0); ifix->deform(0);
@ -937,13 +927,7 @@ void FixDeform::update_domain()
// convert atoms and rigid bodies back to box coords // convert atoms and rigid bodies back to box coords
if (remapflag == Domain::X_REMAP) { if (remapflag == Domain::X_REMAP) {
double **x = atom->x; domain->lamda2x(atom->nlocal, groupbit);
int *mask = atom->mask;
int nlocal = atom->nlocal;
for (int i = 0; i < nlocal; i++)
if (mask[i] & groupbit)
domain->lamda2x(x[i], x[i]);
for (auto &ifix : rfix) for (auto &ifix : rfix)
ifix->deform(1); ifix->deform(1);

View File

@ -318,7 +318,6 @@ void FixEfield::post_force(int vflag)
double **x = atom->x; double **x = atom->x;
double fx, fy, fz; double fx, fy, fz;
double v[6], unwrap[3]; double v[6], unwrap[3];
;
// constant efield // constant efield

View File

@ -27,8 +27,6 @@
using namespace LAMMPS_NS; using namespace LAMMPS_NS;
using namespace FixConst; using namespace FixConst;
enum { XLO = 0, XHI = 1, YLO = 2, YHI = 3, ZLO = 4, ZHI = 5 };
static const char *wallpos[] = {"xlo", "xhi", "ylo", "yhi", "zlo", "zhi"}; static const char *wallpos[] = {"xlo", "xhi", "ylo", "yhi", "zlo", "zhi"};
/* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */

View File

@ -20,6 +20,7 @@ namespace LAMMPS_NS {
class FixWall : public Fix { class FixWall : public Fix {
public: public:
enum { XLO = 0, XHI = 1, YLO = 2, YHI = 3, ZLO = 4, ZHI = 5 };
int nwall; int nwall;
int wallwhich[6]; int wallwhich[6];
double coord0[6]; double coord0[6];

View File

@ -70,6 +70,7 @@ public:
std::vector<coord_t> restart_pos; std::vector<coord_t> restart_pos;
std::vector<coord_t> run_vel; std::vector<coord_t> run_vel;
std::vector<coord_t> restart_vel; std::vector<coord_t> restart_vel;
std::vector<coord_t> run_torque;
TestConfig() : TestConfig() :
lammps_version(""), date_generated(""), basename(""), epsilon(1.0e-14), input_file(""), lammps_version(""), date_generated(""), basename(""), epsilon(1.0e-14), input_file(""),
@ -94,6 +95,7 @@ public:
restart_pos.clear(); restart_pos.clear();
run_vel.clear(); run_vel.clear();
restart_vel.clear(); restart_vel.clear();
run_torque.clear();
global_vector.clear(); global_vector.clear();
} }
TestConfig(const TestConfig &) = delete; TestConfig(const TestConfig &) = delete;

View File

@ -48,6 +48,7 @@ TestConfigReader::TestConfigReader(TestConfig &config) : config(config)
consumers["run_forces"] = &TestConfigReader::run_forces; consumers["run_forces"] = &TestConfigReader::run_forces;
consumers["run_pos"] = &TestConfigReader::run_pos; consumers["run_pos"] = &TestConfigReader::run_pos;
consumers["run_vel"] = &TestConfigReader::run_vel; consumers["run_vel"] = &TestConfigReader::run_vel;
consumers["run_torque"] = &TestConfigReader::run_torque;
consumers["pair_style"] = &TestConfigReader::pair_style; consumers["pair_style"] = &TestConfigReader::pair_style;
consumers["pair_coeff"] = &TestConfigReader::pair_coeff; consumers["pair_coeff"] = &TestConfigReader::pair_coeff;
@ -228,6 +229,21 @@ void TestConfigReader::run_vel(const yaml_event_t &event)
} }
} }
void TestConfigReader::run_torque(const yaml_event_t &event)
{
config.run_torque.clear();
config.run_torque.resize(config.natoms + 1);
std::stringstream data((char *)event.data.scalar.value);
std::string line;
while (std::getline(data, line, '\n')) {
int tag;
coord_t xyz;
sscanf(line.c_str(), "%d %lg %lg %lg", &tag, &xyz.x, &xyz.y, &xyz.z);
config.run_torque[tag] = xyz;
}
}
void TestConfigReader::pair_style(const yaml_event_t &event) void TestConfigReader::pair_style(const yaml_event_t &event)
{ {
config.pair_style = (char *)event.data.scalar.value; config.pair_style = (char *)event.data.scalar.value;

View File

@ -41,6 +41,7 @@ public:
void run_forces(const yaml_event_t &event); void run_forces(const yaml_event_t &event);
void run_pos(const yaml_event_t &event); void run_pos(const yaml_event_t &event);
void run_vel(const yaml_event_t &event); void run_vel(const yaml_event_t &event);
void run_torque(const yaml_event_t &event);
void pair_style(const yaml_event_t &event); void pair_style(const yaml_event_t &event);
void pair_coeff(const yaml_event_t &event); void pair_coeff(const yaml_event_t &event);
void bond_style(const yaml_event_t &event); void bond_style(const yaml_event_t &event);

View File

@ -364,7 +364,7 @@ TEST(DihedralStyle, plain)
stats.reset(); stats.reset();
auto *icompute = lmp->modify->get_compute_by_id("sum"); auto *icompute = lmp->modify->get_compute_by_id("sum");
double energy = 0.0; double energy = 0.0;
if (icompute) energy = icompute->compute_scalar(); if (icompute) energy = icompute->compute_scalar();
EXPECT_FP_LE_WITH_EPS(dihedral->energy, test_config.run_energy, epsilon); EXPECT_FP_LE_WITH_EPS(dihedral->energy, test_config.run_energy, epsilon);
EXPECT_FP_LE_WITH_EPS(dihedral->energy, energy, epsilon); EXPECT_FP_LE_WITH_EPS(dihedral->energy, energy, epsilon);
@ -486,7 +486,7 @@ TEST(DihedralStyle, omp)
stats.reset(); stats.reset();
auto *icompute = lmp->modify->get_compute_by_id("sum"); auto *icompute = lmp->modify->get_compute_by_id("sum");
double energy = 0.0; double energy = 0.0;
if (icompute) energy = icompute->compute_scalar(); if (icompute) energy = icompute->compute_scalar();
EXPECT_FP_LE_WITH_EPS(dihedral->energy, test_config.run_energy, epsilon); EXPECT_FP_LE_WITH_EPS(dihedral->energy, test_config.run_energy, epsilon);
// TODO: this is currently broken for OPENMP with dihedral style hybrid // TODO: this is currently broken for OPENMP with dihedral style hybrid
@ -542,8 +542,9 @@ TEST(DihedralStyle, kokkos_omp)
if (test_config.skip_tests.count(test_info_->name())) GTEST_SKIP(); if (test_config.skip_tests.count(test_info_->name())) GTEST_SKIP();
if (!Info::has_accelerator_feature("KOKKOS", "api", "openmp")) GTEST_SKIP(); if (!Info::has_accelerator_feature("KOKKOS", "api", "openmp")) GTEST_SKIP();
LAMMPS::argv args = {"DihedralStyle", "-log", "none", "-echo", "screen", "-nocite", LAMMPS::argv args = {"DihedralStyle", "-log", "none", "-echo", "screen",
"-k", "on", "t", "4", "-sf", "kk"}; "-nocite", "-k", "on", "t", "4",
"-sf", "kk"};
::testing::internal::CaptureStdout(); ::testing::internal::CaptureStdout();
LAMMPS *lmp = init_lammps(args, test_config, true); LAMMPS *lmp = init_lammps(args, test_config, true);
@ -595,9 +596,9 @@ TEST(DihedralStyle, kokkos_omp)
// FIXME: this is currently broken ??? for KOKKOS with dihedral style hybrid // FIXME: this is currently broken ??? for KOKKOS with dihedral style hybrid
// needs to be fixed in the main code somewhere. Not sure where, though. // needs to be fixed in the main code somewhere. Not sure where, though.
//if (test_config.dihedral_style.substr(0, 6) != "hybrid") // if (test_config.dihedral_style.substr(0, 6) != "hybrid")
// EXPECT_FP_LE_WITH_EPS(dihedral->energy, energy, epsilon); // EXPECT_FP_LE_WITH_EPS(dihedral->energy, energy, epsilon);
//if (print_stats) std::cerr << "run_energy stats, newton on: " << stats << std::endl; // if (print_stats) std::cerr << "run_energy stats, newton on: " << stats << std::endl;
if (!verbose) ::testing::internal::CaptureStdout(); if (!verbose) ::testing::internal::CaptureStdout();
cleanup_lammps(lmp, test_config); cleanup_lammps(lmp, test_config);
@ -631,7 +632,7 @@ TEST(DihedralStyle, kokkos_omp)
// FIXME: this is currently broken ??? for KOKKOS with dihedral style hybrid // FIXME: this is currently broken ??? for KOKKOS with dihedral style hybrid
// needs to be fixed in the main code somewhere. Not sure where, though. // needs to be fixed in the main code somewhere. Not sure where, though.
//if (test_config.dihedral_style.substr(0, 6) != "hybrid") // if (test_config.dihedral_style.substr(0, 6) != "hybrid")
// EXPECT_FP_LE_WITH_EPS(dihedral->energy, energy, epsilon); // EXPECT_FP_LE_WITH_EPS(dihedral->energy, energy, epsilon);
if (print_stats) std::cerr << "run_energy stats, newton off:" << stats << std::endl; if (print_stats) std::cerr << "run_energy stats, newton off:" << stats << std::endl;

View File

@ -244,6 +244,20 @@ void generate_yaml_file(const char *outfile, const TestConfig &config)
block += fmt::format("{:3} {:23.16e} {:23.16e} {:23.16e}\n", i, v[j][0], v[j][1], v[j][2]); block += fmt::format("{:3} {:23.16e} {:23.16e} {:23.16e}\n", i, v[j][0], v[j][1], v[j][2]);
} }
writer.emit_block("run_vel", block); writer.emit_block("run_vel", block);
// run_torque
if (lmp->atom->torque_flag) {
block.clear();
auto *t = lmp->atom->torque;
for (int i = 1; i <= natoms; ++i) {
const int j = lmp->atom->map(i);
block +=
fmt::format("{:3} {:23.16e} {:23.16e} {:23.16e}\n", i, t[j][0], t[j][1], t[j][2]);
}
writer.emit_block("run_torque", block);
}
cleanup_lammps(lmp, config); cleanup_lammps(lmp, config);
} }
@ -288,6 +302,9 @@ TEST(FixTimestep, plain)
EXPECT_POSITIONS("run_pos (normal run, verlet)", lmp->atom, test_config.run_pos, epsilon); EXPECT_POSITIONS("run_pos (normal run, verlet)", lmp->atom, test_config.run_pos, epsilon);
EXPECT_VELOCITIES("run_vel (normal run, verlet)", lmp->atom, test_config.run_vel, epsilon); EXPECT_VELOCITIES("run_vel (normal run, verlet)", lmp->atom, test_config.run_vel, epsilon);
if (lmp->atom->torque_flag)
EXPECT_TORQUES("run_torques (normal run, verlet)", lmp->atom, test_config.run_torque,
epsilon);
auto *ifix = lmp->modify->get_fix_by_id("test"); auto *ifix = lmp->modify->get_fix_by_id("test");
if (!ifix) { if (!ifix) {
@ -337,6 +354,8 @@ TEST(FixTimestep, plain)
EXPECT_POSITIONS("run_pos (restart, verlet)", lmp->atom, test_config.run_pos, epsilon); EXPECT_POSITIONS("run_pos (restart, verlet)", lmp->atom, test_config.run_pos, epsilon);
EXPECT_VELOCITIES("run_vel (restart, verlet)", lmp->atom, test_config.run_vel, epsilon); EXPECT_VELOCITIES("run_vel (restart, verlet)", lmp->atom, test_config.run_vel, epsilon);
if (lmp->atom->torque_flag)
EXPECT_TORQUES("run_torque (restart, verlet)", lmp->atom, test_config.run_torque, epsilon);
ifix = lmp->modify->get_fix_by_id("test"); ifix = lmp->modify->get_fix_by_id("test");
if (!ifix) { if (!ifix) {
@ -832,3 +851,177 @@ TEST(FixTimestep, omp)
cleanup_lammps(lmp, test_config); cleanup_lammps(lmp, test_config);
if (!verbose) ::testing::internal::GetCapturedStdout(); if (!verbose) ::testing::internal::GetCapturedStdout();
}; };
TEST(FixTimestep, kokkos_omp)
{
if (!LAMMPS::is_installed_pkg("KOKKOS")) GTEST_SKIP();
if (test_config.skip_tests.count(test_info_->name())) GTEST_SKIP();
if (!Info::has_accelerator_feature("KOKKOS", "api", "openmp")) GTEST_SKIP();
LAMMPS::argv args = {"FixTimestep", "-log", "none", "-echo", "screen", "-nocite",
"-k", "on", "t", "4", "-sf", "kk"};
::testing::internal::CaptureStdout();
LAMMPS *lmp = init_lammps(args, test_config);
std::string output = ::testing::internal::GetCapturedStdout();
if (verbose) std::cout << output;
if (!lmp) {
std::cerr << "One or more prerequisite styles with /kk suffix\n"
"are not available in this LAMMPS configuration:\n";
for (auto &prerequisite : test_config.prerequisites) {
std::cerr << prerequisite.first << "_style " << prerequisite.second << "\n";
}
GTEST_SKIP();
}
EXPECT_THAT(output, StartsWith("LAMMPS ("));
EXPECT_THAT(output, HasSubstr("Loop time"));
// abort if running in parallel and not all atoms are local
const int nlocal = lmp->atom->nlocal;
ASSERT_EQ(lmp->atom->natoms, nlocal);
// relax error a bit for KOKKOS package
double epsilon = 10.0 * test_config.epsilon;
// relax test precision when using pppm and single precision FFTs
#if defined(FFT_SINGLE)
if (lmp->force->kspace && utils::strmatch(lmp->force->kspace_style, "^pppm")) epsilon *= 2.0e8;
#endif
ErrorStats stats;
EXPECT_POSITIONS("run_pos (normal run, verlet)", lmp->atom, test_config.run_pos, epsilon);
EXPECT_VELOCITIES("run_vel (normal run, verlet)", lmp->atom, test_config.run_vel, epsilon);
if (lmp->atom->torque_flag)
EXPECT_TORQUES("run_torque (normal run, verlet)", lmp->atom, test_config.run_torque,
epsilon);
auto *ifix = lmp->modify->get_fix_by_id("test");
if (!ifix) {
FAIL() << "ERROR: no fix defined with fix ID 'test'\n";
} else {
if (ifix->thermo_virial) {
EXPECT_STRESS("run_stress (normal run, verlet)", ifix->virial, test_config.run_stress,
epsilon);
}
stats.reset();
// global scalar
if (ifix->scalar_flag) {
double value = ifix->compute_scalar();
EXPECT_FP_LE_WITH_EPS(test_config.global_scalar, value, epsilon);
}
// global vector
if (ifix->vector_flag) {
int num = ifix->size_vector;
EXPECT_EQ(num, test_config.global_vector.size());
for (int i = 0; i < num; ++i)
EXPECT_FP_LE_WITH_EPS(test_config.global_vector[i], ifix->compute_vector(i),
epsilon);
}
// check t_target for thermostats
int dim = -1;
double *ptr = (double *)ifix->extract("t_target", dim);
if ((ptr != nullptr) && (dim == 0)) {
int ivar = lmp->input->variable->find("t_target");
if (ivar >= 0) {
double t_ref = atof(lmp->input->variable->retrieve("t_target"));
double t_target = *ptr;
EXPECT_FP_LE_WITH_EPS(t_target, t_ref, epsilon);
}
}
if (print_stats && stats.has_data())
std::cerr << "global_data, normal run, verlet: " << stats << std::endl;
}
if (!verbose) ::testing::internal::CaptureStdout();
restart_lammps(lmp, test_config, false, false);
if (!verbose) ::testing::internal::GetCapturedStdout();
EXPECT_POSITIONS("run_pos (restart, verlet)", lmp->atom, test_config.run_pos, epsilon);
EXPECT_VELOCITIES("run_vel (restart, verlet)", lmp->atom, test_config.run_vel, epsilon);
if (lmp->atom->torque_flag)
EXPECT_TORQUES("run_torque (restart, verlet)", lmp->atom, test_config.run_torque, epsilon);
ifix = lmp->modify->get_fix_by_id("test");
if (!ifix) {
FAIL() << "ERROR: no fix defined with fix ID 'test'\n";
} else {
if (ifix->thermo_virial) {
EXPECT_STRESS("run_stress (restart, verlet)", ifix->virial, test_config.run_stress,
epsilon);
}
stats.reset();
// global scalar
if (ifix->scalar_flag) {
double value = ifix->compute_scalar();
EXPECT_FP_LE_WITH_EPS(test_config.global_scalar, value, epsilon);
}
// global vector
if (ifix->vector_flag) {
int num = ifix->size_vector;
EXPECT_EQ(num, test_config.global_vector.size());
for (int i = 0; i < num; ++i)
EXPECT_FP_LE_WITH_EPS(test_config.global_vector[i], ifix->compute_vector(i),
epsilon);
}
if (print_stats && stats.has_data())
std::cerr << "global_data, restart, verlet: " << stats << std::endl;
}
if (lmp->atom->rmass == nullptr) {
if (!verbose) ::testing::internal::CaptureStdout();
restart_lammps(lmp, test_config, true, false);
if (!verbose) ::testing::internal::GetCapturedStdout();
EXPECT_POSITIONS("run_pos (rmass, verlet)", lmp->atom, test_config.run_pos, epsilon);
EXPECT_VELOCITIES("run_vel (rmass, verlet)", lmp->atom, test_config.run_vel, epsilon);
ifix = lmp->modify->get_fix_by_id("test");
if (!ifix) {
FAIL() << "ERROR: no fix defined with fix ID 'test'\n";
} else {
if (ifix->thermo_virial) {
EXPECT_STRESS("run_stress (rmass, verlet)", ifix->virial, test_config.run_stress,
epsilon);
}
stats.reset();
// global scalar
if (ifix->scalar_flag) {
double value = ifix->compute_scalar();
EXPECT_FP_LE_WITH_EPS(test_config.global_scalar, value, epsilon);
}
// global vector
if (ifix->vector_flag) {
int num = ifix->size_vector;
EXPECT_EQ(num, test_config.global_vector.size());
for (int i = 0; i < num; ++i)
EXPECT_FP_LE_WITH_EPS(test_config.global_vector[i], ifix->compute_vector(i),
epsilon);
}
if (print_stats && stats.has_data())
std::cerr << "global_data, rmass, verlet: " << stats << std::endl;
}
}
// skip RESPA tests for KOKKOS
if (!verbose) ::testing::internal::CaptureStdout();
cleanup_lammps(lmp, test_config);
if (!verbose) ::testing::internal::GetCapturedStdout();
};

View File

@ -101,6 +101,23 @@ void EXPECT_VELOCITIES(const std::string &name, Atom *atom, const std::vector<co
if (print_stats) std::cerr << name << " stats: " << stats << std::endl; if (print_stats) std::cerr << name << " stats: " << stats << std::endl;
} }
void EXPECT_TORQUES(const std::string &name, Atom *atom, const std::vector<coord_t> &t_ref,
double epsilon)
{
SCOPED_TRACE("EXPECT_TORQUES: " + name);
double **t = atom->torque;
tagint *tag = atom->tag;
const int nlocal = atom->nlocal;
ASSERT_EQ(nlocal + 1, t_ref.size());
ErrorStats stats;
for (int i = 0; i < nlocal; ++i) {
EXPECT_FP_LE_WITH_EPS(t[i][0], t_ref[tag[i]].x, epsilon);
EXPECT_FP_LE_WITH_EPS(t[i][1], t_ref[tag[i]].y, epsilon);
EXPECT_FP_LE_WITH_EPS(t[i][2], t_ref[tag[i]].z, epsilon);
}
if (print_stats) std::cerr << name << " stats: " << stats << std::endl;
}
// common read_yaml_file function // common read_yaml_file function
bool read_yaml_file(const char *infile, TestConfig &config) bool read_yaml_file(const char *infile, TestConfig &config)
{ {

View File

@ -45,5 +45,7 @@ void EXPECT_POSITIONS(const std::string &name, LAMMPS_NS::Atom *atom,
const std::vector<coord_t> &x_ref, double epsilon); const std::vector<coord_t> &x_ref, double epsilon);
void EXPECT_VELOCITIES(const std::string &name, LAMMPS_NS::Atom *atom, void EXPECT_VELOCITIES(const std::string &name, LAMMPS_NS::Atom *atom,
const std::vector<coord_t> &v_ref, double epsilon); const std::vector<coord_t> &v_ref, double epsilon);
void EXPECT_TORQUES(const std::string &name, LAMMPS_NS::Atom *atom,
const std::vector<coord_t> &t_ref, double epsilon);
#endif #endif

View File

@ -1,6 +1,7 @@
--- ---
lammps_version: 17 Feb 2022 lammps_version: 27 Jun 2024
date_generated: Fri Mar 18 22:17:58 2022 tags: generated
date_generated: Tue Aug 6 02:04:43 2024
epsilon: 2e-13 epsilon: 2e-13
skip_tests: skip_tests:
prerequisites: ! | prerequisites: ! |
@ -10,11 +11,14 @@ pre_commands: ! ""
post_commands: ! | post_commands: ! |
fix move all nve fix move all nve
fix test solute efield 0.0 -0.1 0.1 fix test solute efield 0.0 -0.1 0.1
fix_modify test virial yes
input_file: in.fourmol input_file: in.fourmol
natoms: 29 natoms: 29
run_stress: ! |2-
0.0000000000000000e+00 3.1221533030312409e-01 -2.8129669718847106e-01 0.0000000000000000e+00 0.0000000000000000e+00 2.8129669718847106e-01
global_scalar: -0.030918633114652927 global_scalar: -0.030918633114652927
global_vector: ! |- global_vector: ! |-
3 0 -2.220446049250313e-16 2.220446049250313e-16 3 0 0 0
run_pos: ! |2 run_pos: ! |2
1 -2.7045797446143222e-01 2.4912780824342802e+00 -1.6702148063946790e-01 1 -2.7045797446143222e-01 2.4912780824342802e+00 -1.6702148063946790e-01
2 3.1004707684044314e-01 2.9610914097014920e+00 -8.5452223796947857e-01 2 3.1004707684044314e-01 2.9610914097014920e+00 -8.5452223796947857e-01
@ -46,33 +50,33 @@ run_pos: ! |2
28 -2.7473562684513779e+00 -4.0200819932379650e+00 1.5830052163433976e+00 28 -2.7473562684513779e+00 -4.0200819932379650e+00 1.5830052163433976e+00
29 -1.3126000191359843e+00 -3.5962518039484861e+00 2.2746342468738585e+00 29 -1.3126000191359843e+00 -3.5962518039484861e+00 2.2746342468738585e+00
run_vel: ! |2 run_vel: ! |2
1 8.1658312222614663e-03 1.6575957150422167e-02 4.7291974403202448e-03 1 8.1658312222614663e-03 1.6575957150422167e-02 4.7291974403202422e-03
2 5.4638876708023821e-03 5.0404029111476506e-03 -1.3039774181753307e-03 2 5.4638876708023821e-03 5.0404029111476524e-03 -1.3039774181753297e-03
3 -8.2285460105815302e-03 -1.2921801247052923e-02 -4.0992611431015756e-03 3 -8.2285460105815285e-03 -1.2921801247052927e-02 -4.0992611431015730e-03
4 -3.7708744841912487e-03 -6.6156123307326833e-03 -1.0763844399678132e-03 4 -3.7708744841912487e-03 -6.6156123307326850e-03 -1.0763844399678134e-03
5 -1.1020911952034354e-02 -9.9319392840069663e-03 -2.7996700321696274e-03 5 -1.1020911952034355e-02 -9.9319392840069645e-03 -2.7996700321696287e-03
6 -3.9693502572798259e-02 4.6742328405570736e-02 3.7202597389078947e-02 6 -3.9693502572798259e-02 4.6742328405570736e-02 3.7202597389078947e-02
7 9.0976114937484250e-04 -1.0062942346953162e-02 -5.1616508395410758e-02 7 9.0976114937484228e-04 -1.0062942346953162e-02 -5.1616508395410758e-02
8 7.9254327404120941e-03 -3.2975389442540595e-03 3.4504402492869846e-02 8 7.9254327404120941e-03 -3.2975389442540604e-03 3.4504402492869859e-02
9 1.5591017009909064e-03 3.5830453659612422e-03 1.5180501660659096e-02 9 1.5591017009909053e-03 3.5830453659612426e-03 1.5180501660659096e-02
10 2.9199490526855283e-02 -2.9258641689434338e-02 -1.5005297297757594e-02 10 2.9199490526855283e-02 -2.9258641689434338e-02 -1.5005297297757594e-02
11 -4.7836605087433386e-03 -3.7914729059920198e-03 -2.3035595838662840e-03 11 -4.7836605087433395e-03 -3.7914729059920194e-03 -2.3035595838662840e-03
12 2.2697954637435859e-03 -3.0717924023358485e-04 -3.1050775042142892e-03 12 2.2697954637435872e-03 -3.0717924023358680e-04 -3.1050775042142913e-03
13 2.7523035532740596e-03 5.7750272572237955e-03 -7.5235664623991166e-04 13 2.7523035532740596e-03 5.7750272572237955e-03 -7.5235664623990917e-04
14 3.5240740939544214e-03 -5.8353371764581791e-03 -3.9081837862824593e-03 14 3.5240740939544192e-03 -5.8353371764581765e-03 -3.9081837862824575e-03
15 -1.8549049501666087e-03 -5.8961708769767604e-03 6.3361117899020467e-03 15 -1.8549049501666087e-03 -5.8961708769767604e-03 6.3361117899020467e-03
16 1.8685917131732017e-02 -1.3347834929626302e-02 -4.5570644533488594e-02 16 1.8685917131732017e-02 -1.3347834929626302e-02 -4.5570644533488594e-02
17 -1.2900152726318757e-02 9.8178161596953993e-03 3.7244993882472807e-02 17 -1.2900152726318757e-02 9.8178161596953993e-03 3.7244993882472807e-02
18 -8.0065793345388101e-04 -8.6270471230818341e-04 -1.4483040707563421e-03 18 -8.0065793345388101e-04 -8.6270471230818330e-04 -1.4483040707563431e-03
19 1.2452390842995829e-03 -2.5061097113172779e-03 7.2998631014686054e-03 19 1.2452390842995818e-03 -2.5061097113172792e-03 7.2998631014686071e-03
20 3.5930060230102141e-03 3.6938860309017889e-03 3.2322732690523012e-03 20 3.5930060230102141e-03 3.6938860309017889e-03 3.2322732690523034e-03
21 -1.4689220346471620e-03 -2.7352130047668410e-04 7.0581623957410638e-04 21 -1.4689220346471620e-03 -2.7352130047668405e-04 7.0581623957410638e-04
22 -7.0694199254063778e-03 -4.2577148925930248e-03 2.8079117595076618e-04 22 -7.0694199254063787e-03 -4.2577148925930248e-03 2.8079117595076618e-04
23 6.0446963119010697e-03 -1.4000131615444645e-03 2.5819754845290274e-03 23 6.0446963119010697e-03 -1.4000131615444645e-03 2.5819754845290278e-03
24 3.1926368357822996e-04 -9.9445664356196447e-04 1.4999997179198298e-04 24 3.1926368357822991e-04 -9.9445664356196447e-04 1.4999997179198287e-04
25 1.3789755154241975e-04 -4.4335894822910855e-03 -8.1808135929846665e-04 25 1.3789755154241959e-04 -4.4335894822910855e-03 -8.1808135929846654e-04
26 2.0485904038928891e-03 2.7813358638196055e-03 4.3245727151208667e-03 26 2.0485904038928895e-03 2.7813358638196051e-03 4.3245727151208667e-03
27 4.5604119916965464e-04 -1.0305523051824380e-03 2.1188058452236590e-04 27 4.5604119916965442e-04 -1.0305523051824363e-03 2.1188058452236553e-04
28 -6.2544520862769975e-03 1.4127711175481057e-03 -1.8429821884839938e-03 28 -6.2544520862769983e-03 1.4127711175481021e-03 -1.8429821884839938e-03
29 6.4110631531126019e-04 3.1273432715248138e-03 3.7253671107199712e-03 29 6.4110631531126225e-04 3.1273432715248112e-03 3.7253671107199729e-03
... ...

View File

@ -0,0 +1,109 @@
---
lammps_version: 27 Jun 2024
tags: generated
date_generated: Sun Aug 4 21:46:33 2024
epsilon: 2e-13
skip_tests:
prerequisites: ! |
atom full
fix efield
pre_commands: ! ""
post_commands: ! |
fix move all nve
fix test solute efield 0.0 -0.1 0.1
input_file: in.dipole
natoms: 29
global_scalar: 5.323551487649474
global_vector: ! |-
3 0 0 0
run_pos: ! |2
1 -2.7803395919988250e-01 2.4746113957575506e+00 -1.7221055624989043e-01
2 3.0862275733044281e-01 2.9608256711658929e+00 -8.5204259894833823e-01
3 -6.9730353651054677e-01 1.2462185235506165e+00 -6.2333170008106076e-01
4 -1.5803707788642558e+00 1.4864216493511191e+00 -1.2553333144872691e+00
5 -9.0224637486770010e-01 9.3187101763772007e-01 4.0100026498818492e-01
6 2.9068098249777818e-01 2.3317755418235958e-01 -1.2787854346401060e+00
7 3.4003718022438006e-01 -1.1136458545317439e-02 -2.4674043539784920e+00
8 1.1653603994058781e+00 -4.8553538245393735e-01 -6.7455699042973893e-01
9 1.3798605257891061e+00 -2.5606949147401714e-01 2.7646698442033224e-01
10 2.0213511597812359e+00 -1.4294263001051324e+00 -9.6869511230628547e-01
11 1.7900398780219073e+00 -1.9910605295844079e+00 -1.8892677004539045e+00
12 3.0052519569684715e+00 -4.9050496445328290e-01 -1.6215568178297506e+00
13 4.0521826738629381e+00 -8.9321351964942697e-01 -1.6399622114060945e+00
14 2.6048704355881833e+00 -4.1699645854738832e-01 -2.6633172811775432e+00
15 2.9682789927413045e+00 5.5558820658819164e-01 -1.2357788915285541e+00
16 2.6531499373970879e+00 -2.3977947524956051e+00 3.1767580086883969e-02
17 2.2316478624956817e+00 -2.1010963925555934e+00 1.1526347069081506e+00
18 2.1372510164775917e+00 3.0158506000670471e+00 -3.5167916423912540e+00
19 1.5345707099325703e+00 2.6249696297497245e+00 -4.2370263294605586e+00
20 2.7732095850735732e+00 3.6929598470822609e+00 -3.9337745509644702e+00
21 4.9045170966506779e+00 -4.0748031756039733e+00 -3.6218925414637724e+00
22 4.3601484254173615e+00 -4.2118940901718647e+00 -4.4596265759840623e+00
23 5.7410255603426821e+00 -3.5837707365543663e+00 -3.8765903698198994e+00
24 2.0689205181437282e+00 3.1527432700151787e+00 3.1544823899087238e+00
25 1.3065187961786864e+00 3.2665243034421700e+00 2.5127268092211676e+00
26 2.5789541569135683e+00 4.0089379439900057e+00 3.2207820820981503e+00
27 -1.9618638791883916e+00 -4.3549504053758268e+00 2.1090482240812847e+00
28 -2.7443201293863742e+00 -4.0212170735729584e+00 1.5850082667482344e+00
29 -1.3141860113747614e+00 -3.5978986954166352e+00 2.2741894687371453e+00
run_vel: ! |2
1 1.1236143544142998e-03 1.3615061488813968e-03 1.9035146531107875e-05
2 3.8968322106659220e-03 4.6153851102938084e-03 1.3004266866309365e-03
3 -1.6759039090575756e-03 5.6410326296895460e-04 -6.5573998085605308e-04
4 -2.2599843514772115e-03 -3.8290476239094783e-03 -2.4796763793128265e-03
5 -6.0394625433784410e-03 -4.5348465561185066e-03 -1.3711951052336872e-03
6 -3.1023884715655490e-03 4.6637296517233725e-03 4.6189123645965016e-03
7 -5.2419935748452737e-05 -1.2319086507260619e-03 -3.2654613259055676e-03
8 8.3601735362959304e-04 -9.5637212087811387e-04 1.8785968961167793e-03
9 8.4122759994834529e-04 2.0922433389435784e-04 6.4346601850387691e-03
10 2.3678265535346989e-03 -1.5212081023084892e-03 -1.1281854658615922e-03
11 -2.5475261615126705e-03 -2.3919533481450207e-03 -2.2311276418214019e-03
12 1.1421771336981225e-03 -6.2449989986439278e-04 -1.3944269209182573e-03
13 3.3571788228550390e-03 4.5917035556149836e-03 -7.2280548749387651e-04
14 1.7062612115025355e-03 -4.9841491672042619e-03 -3.8873699403456042e-03
15 -3.0289993105478935e-03 -4.5330921360638319e-03 4.7358760686849613e-03
16 1.4739447117825949e-03 -1.5730324097209085e-03 -2.5910350086283409e-03
17 1.8178020207200592e-06 8.2471901124066651e-04 2.5861088770288477e-03
18 -6.1590009973258066e-04 -9.3553764271450690e-04 -3.7200153139999693e-04
19 3.2061425510644030e-04 -3.0287047640615156e-03 5.8636911223825961e-03
20 4.1715098782670965e-03 4.3790563537493962e-03 2.5400818877712398e-03
21 -9.7312009033477575e-04 1.5100049673511838e-04 -1.5172282348038986e-04
22 -5.2572212429860743e-03 -3.5787417430626820e-03 1.8543943930500865e-03
23 3.2939362683106128e-03 -2.8836279185067231e-03 2.6255213558360269e-03
24 2.5638398658457592e-04 4.3450813156814999e-04 -4.5928187145017301e-04
25 2.1619084724042686e-03 -4.4534715375427044e-03 7.6930725248380827e-04
26 1.6282501420738550e-04 5.6085644860791274e-05 3.9231484240579272e-03
27 -2.4066098679756474e-04 3.1636377958111164e-04 -5.3626843391511858e-04
28 -3.4277217399776316e-03 3.7010237059210787e-04 1.5959546005529568e-05
29 -8.6242002778640222e-04 1.5767896868750036e-03 3.2980383776088458e-03
run_torque: ! |2
1 -8.5357527435914071e-01 -5.3719824654427417e-01 -5.3719824654427417e-01
2 1.1164762300859654e+00 1.0884510402842875e+00 1.0884510402842875e+00
3 6.7627977540651552e-01 3.2882282463826995e-01 3.2882282463826995e-01
4 2.9575381610511360e+00 6.3262796353754214e-01 6.3262796353754214e-01
5 -2.0623461392521740e+00 8.4166297527803235e-01 8.4166297527803235e-01
6 9.8242175844085367e-01 -1.6908759916154248e-01 -1.6908759916154248e-01
7 -1.3684609891014952e+00 -8.0606058406150949e-01 -8.0606058406150949e-01
8 -1.1874337657028966e+00 -2.6646753617169627e-01 -2.6646753617169627e-01
9 -1.0177972619106430e+00 2.1477723017368913e+00 2.1477723017368913e+00
10 2.5538853609868983e+00 -1.3797674437477894e+00 -1.3797674437477894e+00
11 -1.3439139083704066e+00 1.5074058265158885e+00 1.5074058265158885e+00
12 2.9652524051282363e+00 -4.5726725480648156e-01 -4.5726725480648156e-01
13 -1.2321028588273288e+00 2.0829614135052950e+00 2.0829614135052950e+00
14 -2.3022900866870475e+00 3.4249143995027564e-01 3.4249143995027564e-01
15 -2.2389603707876993e-01 -1.0999871400210739e+00 -1.0999871400210739e+00
16 9.2419348248650579e-01 2.1428687117582701e+00 2.1428687117582701e+00
17 2.7094271617240540e+00 7.2665988123741851e-02 7.2665988123741851e-02
18 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
19 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
20 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
21 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
22 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
23 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
24 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
25 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
26 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
27 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
28 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
29 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
...

View File

@ -0,0 +1,118 @@
---
lammps_version: 27 Jun 2024
tags: generated
date_generated: Sun Aug 4 22:46:18 2024
epsilon: 2e-13
skip_tests:
prerequisites: ! |
atom full
fix efield
pre_commands: ! ""
post_commands: ! |
fix move all nve
variable xforce delete
variable xforce equal 0.1*step/10.0
variable yforce delete
variable yforce equal 0.2*step/20.0
variable zforce delete
variable zforce equal 0.3*step/30.0
fix test solute efield v_xforce v_yforce v_zforce
fix_modify test virial yes
input_file: in.dipole
natoms: 29
run_stress: ! |2-
0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
global_scalar: 0
global_vector: ! |-
3 -1.1102230246251565e-16 -1.1102230246251565e-16 -1.1102230246251565e-16
run_pos: ! |2
1 -2.7803462088205888e-01 2.4746080899361873e+00 -1.7220863968422631e-01
2 3.0864099030230185e-01 2.9609184454137019e+00 -8.5209600355138704e-01
3 -6.9730358393070480e-01 1.2462183036890040e+00 -6.2333158600291183e-01
4 -1.5803650460394709e+00 1.4864488193383358e+00 -1.2553491245822981e+00
5 -9.0224083555581314e-01 9.3189811105149611e-01 4.0098458630849332e-01
6 2.9068221058927873e-01 2.3318328040718064e-01 -1.2787887242994260e+00
7 3.4003667591250708e-01 -1.1138891887048934e-02 -2.4674029540393323e+00
8 1.1653596712202525e+00 -4.8553870127449805e-01 -6.7455507659928038e-01
9 1.3798803918386071e+00 -2.5597543756832153e-01 2.7641311417048842e-01
10 2.0213513284917770e+00 -1.4294255167846066e+00 -9.6869557537003070e-01
11 1.7900455523978396e+00 -1.9910333303206023e+00 -1.8892835721159780e+00
12 3.0052513251780613e+00 -4.9050798224436865e-01 -1.6215550550329203e+00
13 4.0521883707492767e+00 -8.9318637207253593e-01 -1.6399780787400113e+00
14 2.6048761179356523e+00 -4.1696935840940191e-01 -2.6633329891570114e+00
15 2.9682846368976175e+00 5.5561522368460747e-01 -1.2357947529810707e+00
16 2.6531511203883147e+00 -2.3977890057416973e+00 3.1764256827161913e-02
17 2.2316473623837325e+00 -2.1010988247185729e+00 1.1526361129941032e+00
18 2.1372510164775789e+00 3.0158506000670355e+00 -3.5167916423912531e+00
19 1.5345707099325570e+00 2.6249696297497045e+00 -4.2370263294605177e+00
20 2.7732095850735634e+00 3.6929598470822547e+00 -3.9337745509644595e+00
21 4.9045170966506770e+00 -4.0748031756039724e+00 -3.6218925414637728e+00
22 4.3601484254173615e+00 -4.2118940901718629e+00 -4.4596265759840614e+00
23 5.7410255603426812e+00 -3.5837707365543650e+00 -3.8765903698198989e+00
24 2.0689205181437282e+00 3.1527432700151770e+00 3.1544823899087251e+00
25 1.3065187961786540e+00 3.2665243034421243e+00 2.5127268092211485e+00
26 2.5789541569135679e+00 4.0089379439900039e+00 3.2207820820981503e+00
27 -1.9618638791883911e+00 -4.3549504053758268e+00 2.1090482240812847e+00
28 -2.7443201293863759e+00 -4.0212170735729593e+00 1.5850082667482348e+00
29 -1.3141860113747683e+00 -3.5978986954166383e+00 2.2741894687371484e+00
run_vel: ! |2
1 1.1226228998813120e-03 1.3578676832028912e-03 2.0557170947250780e-05
2 3.9239288756989016e-03 4.7172177954433788e-03 1.2587212580222184e-03
3 -1.6759752389904064e-03 5.6386389592282232e-04 -6.5566849439663093e-04
4 -2.2512384997042472e-03 -3.7989938232970300e-03 -2.4924216203737527e-03
5 -6.0310935807221877e-03 -4.5049478412039637e-03 -1.3836695500793908e-03
6 -3.1005005132647293e-03 4.6700701138933255e-03 4.6163000387542787e-03
7 -5.3188586817768639e-05 -1.2346121248938561e-03 -3.2643401792630212e-03
8 8.3489219083866242e-04 -9.6003848332027136e-04 1.8801202990819514e-03
9 8.7162816848026234e-04 3.1364623622102896e-04 6.3917296813706522e-03
10 2.3680868557455818e-03 -1.5203429248592441e-03 -1.1285650316897892e-03
11 -2.5388840283489342e-03 -2.3618541252316532e-03 -2.2440122087485034e-03
12 1.1412159144708132e-03 -6.2782650780501229e-04 -1.3930048293318753e-03
13 3.3658569001843641e-03 4.6217055285812667e-03 -7.3566554681633899e-04
14 1.7149215410627553e-03 -4.9542364152862740e-03 -3.8999231155933270e-03
15 -3.0204251503176452e-03 -4.5033742607606102e-03 4.7230261700345021e-03
16 1.4757444573234482e-03 -1.5666516321294532e-03 -2.5937088506404159e-03
17 1.0571264012818976e-06 8.2201760099452344e-04 2.5872403829922935e-03
18 -6.1590009975964484e-04 -9.3553764274130838e-04 -3.7200153139700973e-04
19 3.2061425507972274e-04 -3.0287047641009905e-03 5.8636911224663182e-03
20 4.1715098782492523e-03 4.3790563537376538e-03 2.5400818877933480e-03
21 -9.7312009033487896e-04 1.5100049673665020e-04 -1.5172282348215765e-04
22 -5.2572212429864151e-03 -3.5787417430601385e-03 1.8543943930504219e-03
23 3.2939362683093013e-03 -2.8836279185044679e-03 2.6255213558361900e-03
24 2.5638398658362307e-04 4.3450813156448382e-04 -4.5928187144820296e-04
25 2.1619084723496903e-03 -4.4534715376318085e-03 7.6930725246239842e-04
26 1.6282501420679502e-04 5.6085644857617055e-05 3.9231484240590028e-03
27 -2.4066098679621984e-04 3.1636377958145940e-04 -5.3626843391455024e-04
28 -3.4277217399801899e-03 3.7010237059051832e-04 1.5959546006432193e-05
29 -8.6242002780014568e-04 1.5767896868705918e-03 3.2980383776149932e-03
run_torque: ! |2
1 -2.4436070050579253e+00 4.5061479554988704e-01 1.9929922095080381e+00
2 2.1195936058917191e+00 2.5755452131595669e-01 -2.3771481272076755e+00
3 -2.5250330905076650e+00 1.7960867151270548e+00 7.2894637538061047e-01
4 -8.3457683612426237e-01 2.1064060533126194e+00 -1.2718292171883570e+00
5 1.7827105075374519e+00 -1.0429633292471694e+00 -7.3974717829028225e-01
6 2.4804444324082988e+00 -9.8252359215704177e-01 -1.4979208402512567e+00
7 2.1855709506971714e+00 -2.2850183382383915e+00 9.9447387541219956e-02
8 2.4111434047810372e+00 -1.8937192376090342e+00 -5.1742416717200301e-01
9 4.8925439897630674e-01 1.0664717371371024e+00 -1.5557261361134094e+00
10 4.4248864855928816e-01 -3.0350413488311634e-01 -1.3898451367617182e-01
11 1.6560442813187830e+00 -1.5966304279484356e-01 -1.4963812385239397e+00
12 9.5494331320688497e-01 3.4281550160266666e-01 -1.2977588148095516e+00
13 5.3080735403713286e-01 9.0812431025473794e-01 -1.4389316642918708e+00
14 -1.8067673652119607e+00 2.5646079989138193e-01 1.5503065653205788e+00
15 -2.2860558945796523e+00 1.7347982044145904e-01 2.1125760741381931e+00
16 6.1857755737751563e-01 1.7746835837124604e+00 -2.3932611410899760e+00
17 -1.4497938429511878e+00 1.8668005766642088e+00 -4.1700673371302099e-01
18 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
19 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
20 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
21 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
22 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
23 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
24 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
25 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
26 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
27 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
28 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
29 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
...

View File

@ -1,6 +1,7 @@
--- ---
lammps_version: 17 Feb 2022 lammps_version: 27 Jun 2024
date_generated: Fri Mar 18 22:17:58 2022 tags: generated
date_generated: Sat Aug 3 05:18:10 2024
epsilon: 2e-13 epsilon: 2e-13
skip_tests: skip_tests:
prerequisites: ! | prerequisites: ! |
@ -11,8 +12,11 @@ post_commands: ! |
region half block 0 EDGE EDGE EDGE EDGE EDGE region half block 0 EDGE EDGE EDGE EDGE EDGE
fix move all nve fix move all nve
fix test solute efield 0.1 0.1 0.1 region half fix test solute efield 0.1 0.1 0.1 region half
fix_modify test virial yes
input_file: in.fourmol input_file: in.fourmol
natoms: 29 natoms: 29
run_stress: ! |2-
1.1952991612400572e+00 1.9458378941195973e+00 -3.1399685374218067e-01 1.9458378941195973e+00 -3.1399685374218067e-01 -3.1399685374218067e-01
global_scalar: -2.8271402016174743 global_scalar: -2.8271402016174743
global_vector: ! |- global_vector: ! |-
3 0.714877019 0.714877019 0.714877019 3 0.714877019 0.714877019 0.714877019
@ -47,33 +51,33 @@ run_pos: ! |2
28 -2.7473562684514778e+00 -4.0200819932382421e+00 1.5830052163435122e+00 28 -2.7473562684514778e+00 -4.0200819932382421e+00 1.5830052163435122e+00
29 -1.3126000191360516e+00 -3.5962518039482134e+00 2.2746342468738145e+00 29 -1.3126000191360516e+00 -3.5962518039482134e+00 2.2746342468738145e+00
run_vel: ! |2 run_vel: ! |2
1 8.1708759711752958e-03 1.6517639874638803e-02 4.7902879389058383e-03 1 8.1708759711752975e-03 1.6517639874638803e-02 4.7902879389058340e-03
2 5.5964331165928010e-03 5.3239383069183174e-03 -1.2861059284729379e-03 2 5.5964331165928010e-03 5.3239383069183226e-03 -1.2861059284729340e-03
3 -8.2292637161143385e-03 -1.2926128087381868e-02 -4.0984161443673190e-03 3 -8.2292637161143403e-03 -1.2926128087381868e-02 -4.0984161443673173e-03
4 -3.7697526145864203e-03 -6.5725127853647532e-03 -1.1187560499435428e-03 4 -3.7697526145864203e-03 -6.5725127853647532e-03 -1.1187560499435428e-03
5 -1.1022006462580933e-02 -9.8906385073934400e-03 -2.8410749782010374e-03 5 -1.1022006462580933e-02 -9.8906385073934400e-03 -2.8410749782010383e-03
6 -3.9598958324881833e-02 4.6903198210396124e-02 3.7196915155023061e-02 6 -3.9598958324881833e-02 4.6903198210396124e-02 3.7196915155023061e-02
7 8.4653619788661286e-04 -1.0186461918106198e-02 -5.1609252834488979e-02 7 8.4653619788661264e-04 -1.0186461918106198e-02 -5.1609252834488979e-02
8 7.8471683791752362e-03 -3.4193297369123185e-03 3.4507457170165158e-02 8 7.8471683791752362e-03 -3.4193297369123185e-03 3.4507457170165158e-02
9 1.7075694205393060e-03 3.8777304373514634e-03 1.5162863367694195e-02 9 1.7075694205393051e-03 3.8777304373514639e-03 1.5162863367694195e-02
10 2.9215614627888371e-02 -2.9240701545949585e-02 -1.5006701597915331e-02 10 2.9215614627888371e-02 -2.9240701545949585e-02 -1.5006701597915331e-02
11 -4.7405866731533054e-03 -3.7068192956066894e-03 -2.3045121721450906e-03 11 -4.7405866731533063e-03 -3.7068192956066894e-03 -2.3045121721450897e-03
12 2.2290126422970882e-03 -3.8809497069252936e-04 -3.1047965880797871e-03 12 2.2290126422970895e-03 -3.8809497069252735e-04 -3.1047965880797879e-03
13 2.7935114371385656e-03 5.8586940588092199e-03 -7.5304481929041526e-04 13 2.7935114371385635e-03 5.8586940588092181e-03 -7.5304481929041461e-04
14 3.5665654501702681e-03 -5.7512922858593447e-03 -3.9089424767000339e-03 14 3.5665654501702677e-03 -5.7512922858593447e-03 -3.9089424767000365e-03
15 -1.8139594485811785e-03 -5.8166150528014193e-03 6.3351631624150211e-03 15 -1.8139594485811841e-03 -5.8166150528014202e-03 6.3351631624150228e-03
16 1.8770941362463107e-02 -1.3183631365002509e-02 -4.5573108750104258e-02 16 1.8770941362463107e-02 -1.3183631365002509e-02 -4.5573108750104258e-02
17 -1.2963606226862703e-02 9.6937549225388098e-03 3.7247063085491160e-02 17 -1.2963606226862703e-02 9.6937549225388098e-03 3.7247063085491160e-02
18 -8.0065796921844994e-04 -8.6270475993526386e-04 -1.4483040616159765e-03 18 -8.0065796921844994e-04 -8.6270475993526386e-04 -1.4483040616159767e-03
19 1.2452390834561400e-03 -2.5061097124141904e-03 7.2998631012995028e-03 19 1.2452390834561398e-03 -2.5061097124141909e-03 7.2998631012995037e-03
20 3.5930060224885880e-03 3.6938860305007859e-03 3.2322732691378846e-03 20 3.5930060224885880e-03 3.6938860305007859e-03 3.2322732691378851e-03
21 -1.4689220363177679e-03 -2.7352129611332704e-04 7.0581624058295520e-04 21 -1.4689220363177679e-03 -2.7352129611332672e-04 7.0581624058295423e-04
22 -7.0694199254319476e-03 -4.2577148923730610e-03 2.8079117602693740e-04 22 -7.0694199254319502e-03 -4.2577148923730627e-03 2.8079117602693848e-04
23 6.0446963117453019e-03 -1.4000131613672311e-03 2.5819754846776472e-03 23 6.0446963117453028e-03 -1.4000131613672311e-03 2.5819754846776498e-03
24 3.1926367807141095e-04 -9.9445664297286387e-04 1.4999997144977533e-04 24 3.1926367807141078e-04 -9.9445664297286344e-04 1.4999997144977506e-04
25 1.3789754489252400e-04 -4.4335894881614539e-03 -8.1808136766960723e-04 25 1.3789754489252368e-04 -4.4335894881614556e-03 -8.1808136766960712e-04
26 2.0485904035389413e-03 2.7813358635286672e-03 4.3245727149205113e-03 26 2.0485904035389417e-03 2.7813358635286672e-03 4.3245727149205113e-03
27 4.5604120798143971e-04 -1.0305522996113419e-03 2.1188058145416930e-04 27 4.5604120798143960e-04 -1.0305522996113417e-03 2.1188058145416919e-04
28 -6.2544520867286501e-03 1.4127711163405999e-03 -1.8429821880090427e-03 28 -6.2544520867286509e-03 1.4127711163405992e-03 -1.8429821880090427e-03
29 6.4110631523949934e-04 3.1273432721623264e-03 3.7253671106301819e-03 29 6.4110631523949977e-04 3.1273432721623255e-03 3.7253671106301819e-03
... ...

View File

@ -1,6 +1,7 @@
--- ---
lammps_version: 17 Feb 2022 lammps_version: 27 Jun 2024
date_generated: Fri Mar 18 22:17:58 2022 tags: generated
date_generated: Sat Aug 3 05:18:19 2024
epsilon: 2e-13 epsilon: 2e-13
skip_tests: skip_tests:
prerequisites: ! | prerequisites: ! |
@ -15,8 +16,11 @@ post_commands: ! |
variable zforce equal 0.1*step/10.0 variable zforce equal 0.1*step/10.0
fix move all nve fix move all nve
fix test solute efield v_xforce 0.0 v_zforce fix test solute efield v_xforce 0.0 v_zforce
fix_modify test virial yes
input_file: in.fourmol input_file: in.fourmol
natoms: 29 natoms: 29
run_stress: ! |2-
0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
global_scalar: 0 global_scalar: 0
global_vector: ! |- global_vector: ! |-
3 10.275935322301738 0 -1.1102230246251565e-16 3 10.275935322301738 0 -1.1102230246251565e-16
@ -51,33 +55,33 @@ run_pos: ! |2
28 -2.7473562684520521e+00 -4.0200819932381933e+00 1.5830052163436978e+00 28 -2.7473562684520521e+00 -4.0200819932381933e+00 1.5830052163436978e+00
29 -1.3126000191401406e+00 -3.5962518039484013e+00 2.2746342468762424e+00 29 -1.3126000191401406e+00 -3.5962518039484013e+00 2.2746342468762424e+00
run_vel: ! |2 run_vel: ! |2
1 8.3523967935972103e-03 1.6515254595637210e-02 4.7615576657187714e-03 1 8.3523967935972103e-03 1.6515254595637210e-02 4.7615576657187705e-03
2 5.8941247186566573e-03 5.1722227122822807e-03 -1.3701427920021986e-03 2 5.8941247186566573e-03 5.1722227122822824e-03 -1.3701427920021960e-03
3 -8.2167795197999119e-03 -1.2923450588576815e-02 -4.1004252694225585e-03 3 -8.2167795197999154e-03 -1.2923450588576812e-02 -4.1004252694225567e-03
4 -4.4263651845063874e-03 -6.5742418325391832e-03 -1.0955970988773401e-03 4 -4.4263651845063883e-03 -6.5742418325391884e-03 -1.0955970988773414e-03
5 -1.1398448905979295e-02 -9.8894689730743574e-03 -2.8263847809119743e-03 5 -1.1398448905979295e-02 -9.8894689730743592e-03 -2.8263847809119748e-03
6 -3.9500939815668802e-02 4.6887414365051332e-02 3.7133775134254386e-02 6 -3.9500939815668802e-02 4.6887414365051318e-02 3.7133775134254386e-02
7 6.9842523048380231e-04 -1.0129392818228253e-02 -5.1594363495221361e-02 7 6.9842523048380199e-04 -1.0129392818228253e-02 -5.1594363495221361e-02
8 7.2583991981464485e-03 -3.4658371736488846e-03 3.4580276362563396e-02 8 7.2583991981464493e-03 -3.4658371736488855e-03 3.4580276362563389e-02
9 3.6026391644265426e-03 3.7375102720979521e-03 1.5034460098373481e-02 9 3.6026391644265400e-03 3.7375102720979530e-03 1.5034460098373481e-02
10 2.9376323673810063e-02 -2.9204189651235765e-02 -1.4984527368425798e-02 10 2.9376323673810063e-02 -2.9204189651235765e-02 -1.4984527368425798e-02
11 -4.0094188700564755e-03 -3.7533811174124440e-03 -2.3323227192170864e-03 11 -4.0094188700564764e-03 -3.7533811174124440e-03 -2.3323227192170856e-03
12 1.0565849247321684e-03 -3.4812418704811908e-04 -3.0814227273971736e-03 12 1.0565849247321719e-03 -3.4812418704811902e-04 -3.0814227273971723e-03
13 4.3770864839260621e-03 5.8265173175360025e-03 -7.6851845061108928e-04 13 4.3770864839260621e-03 5.8265173175359990e-03 -7.6851845061108733e-04
14 4.6081612697984357e-03 -5.7771463173504857e-03 -3.9509511241893622e-03 14 4.6081612697984331e-03 -5.7771463173504831e-03 -3.9509511241893639e-03
15 -6.2134887575598864e-04 -5.8525914810640808e-03 6.3025497777745602e-03 15 -6.2134887575599298e-04 -5.8525914810640808e-03 6.3025497777745576e-03
16 2.0803569505133360e-02 -1.3197664214971504e-02 -4.5435603305981419e-02 16 2.0803569505133360e-02 -1.3197664214971504e-02 -4.5435603305981419e-02
17 -1.4238304956511698e-02 9.7135426337891535e-03 3.7140948224551232e-02 17 -1.4238304956511698e-02 9.7135426337891535e-03 3.7140948224551232e-02
18 -8.0065803006974627e-04 -8.6270481571213244e-04 -1.4483040143169715e-03 18 -8.0065803006974627e-04 -8.6270481571213190e-04 -1.4483040143169730e-03
19 1.2452390814642318e-03 -2.5061097171182860e-03 7.2998631074280762e-03 19 1.2452390814642303e-03 -2.5061097171182882e-03 7.2998631074280805e-03
20 3.5930060197966501e-03 3.6938860290210949e-03 3.2322732711840547e-03 20 3.5930060197966510e-03 3.6938860290210949e-03 3.2322732711840578e-03
21 -1.4689220487945117e-03 -2.7352130624665958e-04 7.0581629574098927e-04 21 -1.4689220487945117e-03 -2.7352130624665936e-04 7.0581629574098840e-04
22 -7.0694199251650578e-03 -4.2577148930188916e-03 2.8079117843705611e-04 22 -7.0694199251650578e-03 -4.2577148930188933e-03 2.8079117843705719e-04
23 6.0446963110170554e-03 -1.4000131639167685e-03 2.5819754871353917e-03 23 6.0446963110170554e-03 -1.4000131639167685e-03 2.5819754871353930e-03
24 3.1926366718644695e-04 -9.9445664582025264e-04 1.4999995653372725e-04 24 3.1926366718644685e-04 -9.9445664582025221e-04 1.4999995653372695e-04
25 1.3789753947330381e-04 -4.4335894948247627e-03 -8.1808139114999815e-04 25 1.3789753947330365e-04 -4.4335894948247653e-03 -8.1808139114999804e-04
26 2.0485904025981279e-03 2.7813358628321202e-03 4.3245727135970882e-03 26 2.0485904025981283e-03 2.7813358628321202e-03 4.3245727135970890e-03
27 4.5604125878886070e-04 -1.0305522515611520e-03 2.1188057217212626e-04 27 4.5604125878886064e-04 -1.0305522515611514e-03 2.1188057217212599e-04
28 -6.2544520876729867e-03 1.4127711164508190e-03 -1.8429821875256107e-03 28 -6.2544520876729867e-03 1.4127711164508173e-03 -1.8429821875256107e-03
29 6.4110630762061020e-04 3.1273432725177990e-03 3.7253671155107236e-03 29 6.4110630762061150e-04 3.1273432725177981e-03 3.7253671155107249e-03
... ...

View File

@ -0,0 +1,77 @@
---
lammps_version: 17 Apr 2024
tags: generated
date_generated: Fri Jun 7 18:18:25 2024
epsilon: 2e-14
skip_tests:
prerequisites: ! |
atom full
fix gravity
pre_commands: ! ""
post_commands: ! |
fix move all nve
fix test solute gravity 1.0 chute 24.0
input_file: in.fourmol
natoms: 29
global_scalar: -186.21588194703688
run_pos: ! |2
1 -2.7011524053324809e-01 2.4912159905686591e+00 -1.6772297284757851e-01
2 3.1038065295954353e-01 2.9612354631097353e+00 -8.5542808521697811e-01
3 -7.0364515675550809e-01 1.2305509956066307e+00 -6.2853972432728245e-01
4 -1.5814755764271355e+00 1.4837407818930601e+00 -1.2546355384456112e+00
5 -9.0685727950632855e-01 9.2652103885643056e-01 3.9877765004406607e-01
6 2.4865756250605056e-01 2.8313021504286667e-01 -1.2321877880510159e+00
7 3.4177563359756546e-01 -2.2646551100204085e-02 -2.5299935962974427e+00
8 1.1746955801477847e+00 -4.8863228562722372e-01 -6.3859878398896053e-01
9 1.3803927801722946e+00 -2.5274721030710312e-01 2.8277540402938711e-01
10 2.0514168793021708e+00 -1.4604063740395892e+00 -9.8400190568066226e-01
11 1.7881435516754824e+00 -1.9921863273005540e+00 -1.8898246996050880e+00
12 3.0066410611543031e+00 -4.9013350496741503e-01 -1.6239542655936290e+00
13 4.0518806531445115e+00 -8.9202011608041198e-01 -1.6407650078368909e+00
14 2.6070366917787502e+00 -4.1789253965818390e-01 -2.6641648157184719e+00
15 2.9698690757945712e+00 5.5422613165076606e-01 -1.2349666570200868e+00
16 2.6750433267807354e+00 -2.4124119054731139e+00 -2.4200201031436729e-02
17 2.2156981357736640e+00 -2.0897985186874832e+00 1.1955506246002150e+00
18 2.1369701703650730e+00 3.0158507412663567e+00 -3.5179348336329874e+00
19 1.5355837136010813e+00 2.6255292355230471e+00 -4.2353987779638791e+00
20 2.7727573005632222e+00 3.6923910449548529e+00 -3.9330842459074575e+00
21 4.9040128072602780e+00 -4.0752348172210793e+00 -3.6210314709290508e+00
22 4.3582355554422358e+00 -4.2126119427251041e+00 -4.4612844196275327e+00
23 5.7439382849267391e+00 -3.5821957939245763e+00 -3.8766361295905272e+00
24 2.0689243582926142e+00 3.1513346907679298e+00 3.1550389755253740e+00
25 1.3045351331996820e+00 3.2665125706102396e+00 2.5111855257988016e+00
26 2.5809237402745016e+00 4.0117602605510552e+00 3.2212060529110351e+00
27 -1.9611343130738399e+00 -4.3563411931703371e+00 2.1098293115633115e+00
28 -2.7473562684531423e+00 -4.0200819932397094e+00 1.5830052163438753e+00
29 -1.3126000191413181e+00 -3.5962518039538049e+00 2.2746342468776262e+00
run_vel: ! |2
1 8.5109316362519602e-03 1.6516406178041225e-02 4.0257714026516490e-03
2 5.7905065636750398e-03 5.1791699425406436e-03 -2.2017480092926239e-03
3 -7.8894719894931995e-03 -1.2926551567076078e-02 -4.8628730461282299e-03
4 -3.4295470362380558e-03 -6.5722892097571746e-03 -1.8829188761635013e-03
5 -1.0681603783771049e-02 -9.8906780943397981e-03 -3.6055286238584373e-03
6 -3.9336305872108561e-02 4.6817061595703827e-02 3.6384037056681029e-02
7 1.2506966720148773e-03 -1.0128524534170577e-02 -5.2332706579662443e-02
8 8.2468284595410245e-03 -3.3507253921233483e-03 3.3792643567964936e-02
9 1.9047748330960573e-03 3.7365546038062030e-03 1.4282953976985591e-02
10 2.9541804094488457e-02 -2.9249578764884845e-02 -1.5782532313799533e-02
11 -4.4432389113943276e-03 -3.7481385250923384e-03 -3.1108652606538687e-03
12 2.6100024018558595e-03 -3.4774153956887568e-04 -3.8285319045691822e-03
13 3.0935312727166267e-03 5.8171061330117716e-03 -1.5591293903673509e-03
14 3.8649754630719264e-03 -5.7939995647665818e-03 -4.7122979565915029e-03
15 -1.5144371403513141e-03 -5.8554729975123223e-03 5.5293936706684987e-03
16 1.9021857268539524e-02 -1.3262466239526659e-02 -4.6403106382465122e-02
17 -1.2555912712280654e-02 9.7527665332939554e-03 3.6532080503688211e-02
18 -8.0065804266645272e-04 -8.6270492707191733e-04 -1.4483038883094412e-03
19 1.2452390676359983e-03 -2.5061097417265706e-03 7.2998631503948365e-03
20 3.5930060125155812e-03 3.6938860172789413e-03 3.2322732818512918e-03
21 -1.4689221613126495e-03 -2.7352114343278191e-04 7.0581636636453274e-04
22 -7.0694199291104270e-03 -4.2577148850801560e-03 2.8079118466590249e-04
23 6.0446963030489327e-03 -1.4000131557522955e-03 2.5819754912914830e-03
24 3.1926378195318940e-04 -9.9445656410519171e-04 1.5000005630965910e-04
25 1.3789764900432326e-04 -4.4335894352437377e-03 -8.1808125296921569e-04
26 2.0485904111190159e-03 2.7813358701245998e-03 4.3245727192292643e-03
27 4.5604112517415882e-04 -1.0305523728567508e-03 2.1188060606882085e-04
28 -6.2544520903728557e-03 1.4127711133453905e-03 -1.8429821874182827e-03
29 6.4110630400058470e-04 3.1273432599821832e-03 3.7253671183308450e-03
...

View File

@ -1,7 +1,8 @@
--- ---
lammps_version: 17 Feb 2022 lammps_version: 27 Jun 2024
date_generated: Fri Mar 18 22:17:59 2022 tags: generated
epsilon: 2e-13 date_generated: Sun Aug 4 23:15:54 2024
epsilon: 1e-12
skip_tests: skip_tests:
prerequisites: ! | prerequisites: ! |
atom full atom full
@ -16,9 +17,9 @@ post_commands: ! |
fix test solute nph/sphere aniso 1.0 1.0 100.0 ptemp ${t_target} fixedpoint 0.0 0.0 0.0 couple xy fix test solute nph/sphere aniso 1.0 1.0 100.0 ptemp ${t_target} fixedpoint 0.0 0.0 0.0 couple xy
input_file: in.dipole input_file: in.dipole
natoms: 29 natoms: 29
global_scalar: 2.6530736625996387 global_scalar: 2.6530736625996396
global_vector: ! |- global_vector: ! |-
24 -0.0002936071734534549 -0.0002936071734534549 -0.009802195812217975 -0.0002295892446149488 -0.0002295892446149488 -0.009426150676164043 0.00038215586827905577 -0.0001999367873398407 -0.00019998672264189484 0.0013055190397921652 -0.00019964191319805292 -0.00019997330643321473 -0.00016957632738679295 -0.00016957632738679295 -0.00016957632738679295 0.001571221380284989 0.001571221380284989 2.6485187819688587 7.59422701888457e-05 -3.973157233782066e-05 -3.974149551450151e-05 0.0016934776411678706 3.960194290753771e-05 3.973352558103608e-05 24 -0.0002936071734534543 -0.0002936071734534543 -0.009802195812217977 -0.00022958924461494824 -0.00022958924461494824 -0.009426150676164044 0.00038215586827905636 -0.0001999367873398407 -0.00019998672264189484 0.0013055190397921663 -0.00019964191319805292 -0.00019997330643321473 -0.00016957632738679295 -0.00016957632738679295 -0.00016957632738679295 0.0015712213802849813 0.0015712213802849813 2.6485187819688596 7.594227018884582e-05 -3.973157233782066e-05 -3.974149551450151e-05 0.0016934776411678734 3.960194290753771e-05 3.973352558103608e-05
run_pos: ! |2 run_pos: ! |2
1 -2.7827104751341025e-01 2.4732379209353574e+00 -1.7098367287678773e-01 1 -2.7827104751341025e-01 2.4732379209353574e+00 -1.7098367287678773e-01
2 3.0951603206194456e-01 2.9505189917751125e+00 -8.3691694167351027e-01 2 3.0951603206194456e-01 2.9505189917751125e+00 -8.3691694167351027e-01
@ -50,22 +51,22 @@ run_pos: ! |2
28 -2.7398474814917915e+00 -4.0195447873597807e+00 1.5674291899980410e+00 28 -2.7398474814917915e+00 -4.0195447873597807e+00 1.5674291899980410e+00
29 -1.3104384550303312e+00 -3.5982420074671468e+00 2.2459227533114134e+00 29 -1.3104384550303312e+00 -3.5982420074671468e+00 2.2459227533114134e+00
run_vel: ! |2 run_vel: ! |2
1 8.0241784898899828e-04 7.1649810278735077e-04 -4.3254783495965662e-04 1 8.0241784898899828e-04 7.1649810278735066e-04 -4.3254783495965700e-04
2 4.9920840652361133e-03 -4.7901355269901000e-03 8.0415105059913512e-03 2 4.9920840652361133e-03 -4.7901355269900983e-03 8.0415105059913530e-03
3 -1.0246626622144124e-03 1.9728648029617439e-03 -4.1786270885854951e-04 3 -1.0246626622144126e-03 1.9728648029617439e-03 -4.1786270885854935e-04
4 -2.5514266874426881e-03 -3.8470310506856980e-04 -7.6419956671648758e-03 4 -2.5514266874426894e-03 -3.8470310506857024e-04 -7.6419956671648758e-03
5 -1.0997203136770465e-02 -1.1100959801421185e-02 7.4710776737198633e-03 5 -1.0997203136770467e-02 -1.1100959801421187e-02 7.4710776737198625e-03
6 -9.6097534134826346e-05 1.3350328233459241e-03 5.6128607413785875e-04 6 -9.6097534134826292e-05 1.3350328233459241e-03 5.6128607413785875e-04
7 -4.3022722269905067e-05 -6.9147676609541530e-04 -7.0822487621355530e-04 7 -4.3022722269905081e-05 -6.9147676609541530e-04 -7.0822487621355530e-04
8 2.6656323611303379e-04 -6.4929896813388250e-04 6.8721556911616026e-04 8 2.6656323611303379e-04 -6.4929896813388250e-04 6.8721556911616037e-04
9 4.0217754987332526e-03 -9.3762987441709713e-03 -1.8217220558355389e-02 9 4.0217754987332535e-03 -9.3762987441709713e-03 -1.8217220558355389e-02
10 3.9241017078855885e-04 7.9179015547129058e-04 -1.8323030547845367e-04 10 3.9241017078855896e-04 7.9179015547129069e-04 -1.8323030547845370e-04
11 -4.1986571777318281e-03 -7.2528133986728104e-03 -6.9700940876634846e-03 11 -4.1986571777318281e-03 -7.2528133986728104e-03 -6.9700940876634846e-03
12 1.1518085352395190e-03 -7.7797212668168298e-04 -1.7491524590193149e-03 12 1.1518085352395190e-03 -7.7797212668168298e-04 -1.7491524590193151e-03
13 -1.1763167453607117e-03 2.1016758888847335e-03 -7.0140970399881471e-04 13 -1.1763167453607115e-03 2.1016758888847335e-03 -7.0140970399881373e-04
14 3.4959302252370907e-03 -8.0425729559116862e-03 2.4731781160335130e-03 14 3.4959302252370907e-03 -8.0425729559116862e-03 2.4731781160335134e-03
15 -4.0163275838685742e-03 2.2205560641153996e-04 1.6595018075308821e-02 15 -4.0163275838685760e-03 2.2205560641153996e-04 1.6595018075308821e-02
16 -2.0953855224036243e-04 -3.5810043463447016e-04 1.8771712621666709e-03 16 -2.0953855224036243e-04 -3.5810043463447005e-04 1.8771712621666709e-03
17 6.8683193653879806e-04 3.2771494523541197e-04 6.5315694215737502e-04 17 6.8683193653879806e-04 3.2771494523541197e-04 6.5315694215737502e-04
18 -6.0936815808025862e-04 -9.3774557532468582e-04 -3.3558072507805731e-04 18 -6.0936815808025862e-04 -9.3774557532468582e-04 -3.3558072507805731e-04
19 -6.9919768291957119e-04 -3.6060777270430031e-03 4.2833405289822791e-03 19 -6.9919768291957119e-04 -3.6060777270430031e-03 4.2833405289822791e-03
@ -79,4 +80,34 @@ run_vel: ! |2
27 -2.6510179146429716e-04 3.6306203629019116e-04 -5.6235585400647747e-04 27 -2.6510179146429716e-04 3.6306203629019116e-04 -5.6235585400647747e-04
28 -2.3068708109787484e-04 -8.5663070212203200e-04 2.1302563179109169e-03 28 -2.3068708109787484e-04 -8.5663070212203200e-04 2.1302563179109169e-03
29 -2.5054744388303732e-03 -1.6773997805290820e-04 2.8436699761004796e-03 29 -2.5054744388303732e-03 -1.6773997805290820e-04 2.8436699761004796e-03
run_torque: ! |2
1 -6.1277161704021292e+00 1.9449452655391706e+01 3.7526664376281076e+01
2 3.0767989688067036e+01 3.1095664573129632e+01 3.2697892011874927e+01
3 2.2092207761253846e+01 9.6389338768691211e+00 1.0028127498688024e+01
4 -2.2507178174395555e+01 -1.4197261018991352e+00 -6.4386615845757671e+00
5 -1.7803941502083841e+01 5.6481225018439211e+01 9.1704798140842918e+00
6 -5.6807841245066328e+01 1.0336633607370787e+01 1.0855422628049993e+01
7 1.7428760073365702e+01 2.1735188288933355e+01 1.4079824771977533e+01
8 -4.4582355436297512e+01 3.0450757248883821e+01 7.5829367294428769e+00
9 -1.5094915829787968e+01 -3.3576533301413953e+01 4.8166397377135084e+01
10 1.0973094347830360e+01 1.0218907002108992e+00 -1.6721347822643487e+01
11 1.0199558212882648e+01 7.6450610248304358e+01 7.2537880757255460e+00
12 -4.0506844338089891e+00 -8.0783058629913533e+00 2.1055641652117071e+01
13 -2.5706624333996821e+01 -3.7331353985395603e+00 5.7614346871351920e+01
14 -2.0102378399944961e+01 2.5390298020315729e+00 4.9962644272992485e+01
15 -3.7648498429414794e+01 2.0383290723231617e+00 3.3833639045692223e+01
16 8.8927003637482454e+00 2.2317953694806178e+01 1.5164434404993270e+00
17 -1.3327651474225521e+01 1.1591459940419933e+01 -2.7283321708754809e+00
18 3.6524766681800806e+01 -4.7816118461394638e+01 4.6213750281233303e+01
19 -3.6246551451623761e+00 -1.3874877124324456e+00 2.1151300943644827e+01
20 5.7826471881067590e+01 -2.4328702316447824e+01 -7.4041280047991904e+00
21 -1.5962315578441567e+01 -1.4839879129664279e+01 2.0149340395387977e+01
22 -3.4861177509964607e+00 -3.5697227554916346e+01 -2.9750776757149413e+01
23 -8.2634839072258348e+00 3.3737771191416826e+01 -1.2660276418845287e+01
24 1.8703854501504455e+01 -1.5645088023891809e+01 -2.2733605897829513e+01
25 1.5612004327982518e+00 -8.2018511111335837e+00 -2.8085016931855002e+01
26 2.0140400378282479e+01 -7.8754459706884248e+00 -1.0601583601036417e+01
27 -1.0975843760114651e+01 -3.9669607217153306e+01 -5.1221146281394347e+01
28 3.8358449521425966e+00 2.0130999061460240e+00 -1.3672233012382646e+00
29 2.4433070051020643e+01 4.2903727282924805e+01 -2.2734945786369632e+01
... ...

View File

@ -1,6 +1,7 @@
--- ---
lammps_version: 17 Feb 2022 lammps_version: 27 Jun 2024
date_generated: Fri Mar 18 22:17:59 2022 tags: generated
date_generated: Sun Aug 4 23:03:14 2024
epsilon: 4e-13 epsilon: 4e-13
skip_tests: skip_tests:
prerequisites: ! | prerequisites: ! |
@ -16,9 +17,9 @@ post_commands: ! |
fix test solute npt/sphere temp 50.0 ${t_target} 1.0 aniso 1.0 1.0 100.0 drag 0.01 flip no fix test solute npt/sphere temp 50.0 ${t_target} 1.0 aniso 1.0 1.0 100.0 drag 0.01 flip no
input_file: in.dipole input_file: in.dipole
natoms: 29 natoms: 29
global_scalar: 12.096663886115623 global_scalar: 12.09666388611562
global_vector: ! |- global_vector: ! |-
36 0.1869766531219188 1.3884401940983202 -1.143641040188948 0.09347675524754469 2.007142286709465 0.4254066968459499 -0.0025731892196910453 0.0016183796860617433 -0.017497577807990692 -0.0020955754000787407 0.00154466844932338 -0.01488781896977487 0.0026972315134052606 -0.00023072428193059388 -0.00023289107491333692 0.005208648473644532 -0.00022780275682141358 -0.00023637594502603685 6.353697508849446 0.2759117656261482 -0.22726511374584468 0.1484623788565729 0.40028504859566105 0.017981325048433843 -0.0002999716767593198 -0.0002999716767593198 -0.0002999716767593198 0.0981752799752815 0.053341609668295986 4.95516047425249 0.0005359956534890073 -4.5849683890516504e-05 -4.6280270443798504e-05 0.020217358264846576 3.867161073461921e-05 4.1637137703144936e-05 36 0.18697665312191875 1.38844019409832 -1.143641040188948 0.09347675524754463 2.0071422867094646 0.4254066968459497 -0.002573189219691044 0.0016183796860617416 -0.017497577807990692 -0.0020955754000787394 0.0015446684493233788 -0.01488781896977487 0.0026972315134052606 -0.00023072428193059388 -0.00023289107491333692 0.005208648473644532 -0.00022780275682141358 -0.00023637594502603685 6.353697508849443 0.27591176562614816 -0.22726511374584468 0.14846237885657274 0.4002850485956609 0.017981325048433826 -0.0002999716767593198 -0.0002999716767593198 -0.0002999716767593198 0.09817527997528139 0.05334160966829589 4.95516047425249 0.0005359956534890073 -4.5849683890516504e-05 -4.6280270443798504e-05 0.020217358264846576 3.867161073461921e-05 4.1637137703144936e-05
run_pos: ! |2 run_pos: ! |2
1 -2.7397105633323537e-01 2.4781785743666527e+00 -1.7980596873158383e-01 1 -2.7397105633323537e-01 2.4781785743666527e+00 -1.7980596873158383e-01
2 3.1208634768681343e-01 2.9563521874575622e+00 -8.4152963592209495e-01 2 3.1208634768681343e-01 2.9563521874575622e+00 -8.4152963592209495e-01
@ -50,22 +51,22 @@ run_pos: ! |2
28 -2.7298172127749782e+00 -4.0269250728459882e+00 1.5452330932758489e+00 28 -2.7298172127749782e+00 -4.0269250728459882e+00 1.5452330932758489e+00
29 -1.3036629303295193e+00 -3.6048159970063285e+00 2.2185254278264974e+00 29 -1.3036629303295193e+00 -3.6048159970063285e+00 2.2185254278264974e+00
run_vel: ! |2 run_vel: ! |2
1 6.6645514337822221e-04 6.0192577730141302e-04 -3.7299030694254800e-04 1 6.6645514337822231e-04 6.0192577730141302e-04 -3.7299030694254806e-04
2 4.4186462683745379e-03 -4.6840896920226343e-03 6.9463033422740798e-03 2 4.4186462683745396e-03 -4.6840896920226326e-03 6.9463033422740798e-03
3 -8.2788283512656355e-04 1.6664323303816283e-03 -3.6067014934863556e-04 3 -8.2788283512656355e-04 1.6664323303816279e-03 -3.6067014934863551e-04
4 -2.3360131422093099e-03 -2.4652356574843341e-04 -6.7612095269435129e-03 4 -2.3360131422093108e-03 -2.4652356574843422e-04 -6.7612095269435129e-03
5 -9.9515654282019347e-03 -1.0186535017680895e-02 7.0490084717633053e-03 5 -9.9515654282019347e-03 -1.0186535017680895e-02 7.0490084717633053e-03
6 -6.3804753331014364e-05 1.1107780038266837e-03 4.6244242981496387e-04 6 -6.3804753331014364e-05 1.1107780038266837e-03 4.6244242981496387e-04
7 -3.0142488152500515e-05 -5.6684692709220636e-04 -5.9335396255129249e-04 7 -3.0142488152500515e-05 -5.6684692709220636e-04 -5.9335396255129249e-04
8 2.1070083677950848e-04 -5.2394803973737354e-04 6.1467530744658834e-04 8 2.1070083677950848e-04 -5.2394803973737354e-04 6.1467530744658834e-04
9 3.6195183545487952e-03 -8.3369682502568449e-03 -1.6601527132808564e-02 9 3.6195183545487952e-03 -8.3369682502568432e-03 -1.6601527132808564e-02
10 3.2079212235368532e-04 6.8314953697639464e-04 -1.4658709900665799e-04 10 3.2079212235368521e-04 6.8314953697639464e-04 -1.4658709900665799e-04
11 -3.7785845503840996e-03 -6.5404736905947487e-03 -6.2889329470937165e-03 11 -3.7785845503840996e-03 -6.5404736905947487e-03 -6.2889329470937165e-03
12 9.6291409057966740e-04 -6.5439203151497081e-04 -1.4918221706275551e-03 12 9.6291409057966740e-04 -6.5439203151497092e-04 -1.4918221706275551e-03
13 -1.3242589815117630e-03 1.6385138464187414e-03 -5.7720431286344674e-04 13 -1.3242589815117625e-03 1.6385138464187401e-03 -5.7720431286344717e-04
14 3.1480939042203030e-03 -7.0000358651570562e-03 2.4177974139595096e-03 14 3.1480939042203030e-03 -7.0000358651570562e-03 2.4177974139595096e-03
15 -3.3454335023896131e-03 4.4058024755002799e-04 1.4883635219226489e-02 15 -3.3454335023896152e-03 4.4058024755002799e-04 1.4883635219226489e-02
16 -1.7846013433072094e-04 -2.8806672944350730e-04 1.5882710120078808e-03 16 -1.7846013433072089e-04 -2.8806672944350730e-04 1.5882710120078808e-03
17 5.7176195253866985e-04 2.6935646129835835e-04 5.3688215217051862e-04 17 5.7176195253866985e-04 2.6935646129835835e-04 5.3688215217051862e-04
18 -6.0936815808025862e-04 -9.3774557532468582e-04 -3.3558072507805731e-04 18 -6.0936815808025862e-04 -9.3774557532468582e-04 -3.3558072507805731e-04
19 -6.9919768291957119e-04 -3.6060777270430031e-03 4.2833405289822791e-03 19 -6.9919768291957119e-04 -3.6060777270430031e-03 4.2833405289822791e-03
@ -79,4 +80,34 @@ run_vel: ! |2
27 -2.6510179146429716e-04 3.6306203629019116e-04 -5.6235585400647747e-04 27 -2.6510179146429716e-04 3.6306203629019116e-04 -5.6235585400647747e-04
28 -2.3068708109787484e-04 -8.5663070212203200e-04 2.1302563179109169e-03 28 -2.3068708109787484e-04 -8.5663070212203200e-04 2.1302563179109169e-03
29 -2.5054744388303732e-03 -1.6773997805290820e-04 2.8436699761004796e-03 29 -2.5054744388303732e-03 -1.6773997805290820e-04 2.8436699761004796e-03
run_torque: ! |2
1 -6.0660818391266602e+00 1.9626142015743959e+01 3.7810315455845227e+01
2 3.1086627430245031e+01 3.1559922086010953e+01 3.3385905729180720e+01
3 2.2321864729536994e+01 9.8592747252142914e+00 1.0210115187357207e+01
4 -2.3120749196899688e+01 -1.5899805743706104e+00 -6.5512410473677818e+00
5 -1.8329210639420552e+01 5.7005263786272700e+01 9.3968307252608074e+00
6 -5.8025493341725245e+01 1.0466802807207529e+01 1.0911933765209140e+01
7 1.6893959738182637e+01 2.2082773261488860e+01 1.3985144361215289e+01
8 -4.5187945100859821e+01 3.0772942031362557e+01 7.6461850322358078e+00
9 -1.5180502321667255e+01 -3.4199898773076569e+01 4.8547447534871750e+01
10 1.1517719857511585e+01 7.9452374131701542e-01 -1.7119436064829323e+01
11 1.0442950702528758e+01 7.6816289767997219e+01 7.1166317558599355e+00
12 -3.5964317585734498e+00 -8.1220469491431153e+00 2.0923830245103037e+01
13 -2.5929181494647704e+01 -3.2833031788579881e+00 5.7968524934518165e+01
14 -2.0295740978463765e+01 2.5641485002706430e+00 5.0370803328630622e+01
15 -3.7219665122688724e+01 2.2710632544675340e+00 3.3747728711895171e+01
16 8.9845518011810181e+00 2.2562606948955214e+01 1.3731908367575469e+00
17 -1.3257834489616751e+01 1.1571932592993791e+01 -2.7222135722054990e+00
18 3.6797531368782984e+01 -4.8449756711271370e+01 4.6735301744348575e+01
19 -3.6539921027013356e+00 -1.4434974695842002e+00 2.1465476017408964e+01
20 5.8197218381159274e+01 -2.4226041453460791e+01 -7.2276449578839550e+00
21 -1.5833118978634616e+01 -1.5011099827401669e+01 2.0299638507345083e+01
22 -3.5901038361540287e+00 -3.6231138768557685e+01 -3.0226233062003047e+01
23 -8.4961498180872912e+00 3.4214654432737127e+01 -1.2845241682264085e+01
24 1.8945253142131943e+01 -1.5910276330193202e+01 -2.3294771297456020e+01
25 1.4926980431453991e+00 -8.2573776498377303e+00 -2.8232701560097244e+01
26 2.0312538690670358e+01 -7.8590237308018986e+00 -1.0821678612971260e+01
27 -1.1320545333645292e+01 -3.9980842064526570e+01 -5.1295313234694916e+01
28 3.6290258946306180e+00 1.8294018697218410e+00 -1.2938753473310651e+00
29 2.4092346285942053e+01 4.3370903825013755e+01 -2.2770854107671028e+01
... ...

View File

@ -1,7 +1,8 @@
--- ---
lammps_version: 17 Feb 2022 lammps_version: 27 Jun 2024
date_generated: Fri Mar 18 22:17:59 2022 tags: generated
epsilon: 2e-13 date_generated: Sun Aug 4 23:03:30 2024
epsilon: 1e-12
skip_tests: skip_tests:
prerequisites: ! | prerequisites: ! |
atom full atom full
@ -16,9 +17,9 @@ post_commands: ! |
fix test solute npt/sphere temp 50.0 ${t_target} 1.0 iso 1.0 1.0 100.0 dilate solute fix test solute npt/sphere temp 50.0 ${t_target} 1.0 iso 1.0 1.0 100.0 dilate solute
input_file: in.dipole input_file: in.dipole
natoms: 29 natoms: 29
global_scalar: 9.042301471806708 global_scalar: 9.04230147180671
global_vector: ! |- global_vector: ! |-
28 0.1863641554205169 1.420148091453985 -1.1292034459301246 0.09086316406911916 1.9990627120668834 0.47615124832482786 -0.006387790127403963 -0.00558070983166458 0.0010748001531976797 -0.00023261555228169703 -0.00023292456865841747 0.0020841825580977056 -0.00023513173250148996 -0.00023642170879896256 6.332884080784521 0.28221278023295715 -0.2243960653415431 0.14027648316892322 0.39706891031681196 0.02252697627211294 -0.000934258230287154 2.0887944455121046 0.00021358500655954555 -4.6225518401838857e-05 -4.628692634326172e-05 0.0032370232941587745 4.1199960358459955e-05 4.165326165323854e-05 28 0.18636415542051693 1.4201480914539861 -1.1292034459301235 0.09086316406911915 1.9990627120668836 0.47615124832483197 -0.006387790127403967 -0.005580709831664581 0.0010748001531976801 -0.00023261555228169703 -0.00023292456865841747 0.0020841825580977065 -0.00023513173250148996 -0.00023642170879896256 6.332884080784522 0.28221278023295737 -0.22439606534154288 0.14027648316892316 0.3970689103168121 0.022526976272113326 -0.000934258230287154 2.0887944455121055 0.00021358500655954563 -4.6225518401838857e-05 -4.628692634326172e-05 0.003237023294158777 4.1199960358459955e-05 4.165326165323854e-05
run_pos: ! |2 run_pos: ! |2
1 -2.6730556919536941e-01 2.4568877649772691e+00 -1.7525449543283766e-01 1 -2.6730556919536941e-01 2.4568877649772691e+00 -1.7525449543283766e-01
2 3.1651774679036304e-01 2.9312403511996870e+00 -8.4441875599840355e-01 2 3.1651774679036304e-01 2.9312403511996870e+00 -8.4441875599840355e-01
@ -50,21 +51,21 @@ run_pos: ! |2
28 -2.7406520384725965e+00 -4.0207251278130975e+00 1.5828689861678511e+00 28 -2.7406520384725965e+00 -4.0207251278130975e+00 1.5828689861678511e+00
29 -1.3108232656499081e+00 -3.5992986322410760e+00 2.2680459788743503e+00 29 -1.3108232656499081e+00 -3.5992986322410760e+00 2.2680459788743503e+00
run_vel: ! |2 run_vel: ! |2
1 6.7245251088027887e-04 6.1138248355858786e-04 -3.7339702570044338e-04 1 6.7245251088027887e-04 6.1138248355858764e-04 -3.7339702570044338e-04
2 4.4052559672891761e-03 -4.6696302057353299e-03 6.9799826311339004e-03 2 4.4052559672891761e-03 -4.6696302057353291e-03 6.9799826311339021e-03
3 -8.4229974223012048e-04 1.6692222625580460e-03 -3.4811445486190135e-04 3 -8.4229974223012048e-04 1.6692222625580464e-03 -3.4811445486190130e-04
4 -2.3115850080186896e-03 -2.1921753106846976e-04 -6.6129202326324875e-03 4 -2.3115850080186900e-03 -2.1921753106847122e-04 -6.6129202326324875e-03
5 -9.9270913083732166e-03 -1.0162835960427124e-02 6.6835450876805242e-03 5 -9.9270913083732166e-03 -1.0162835960427124e-02 6.6835450876805242e-03
6 -6.3349132255598176e-05 1.1213920888471765e-03 4.3957112467583707e-04 6 -6.3349132255598176e-05 1.1213920888471765e-03 4.3957112467583707e-04
7 -3.0550264536359436e-05 -5.7212395421602175e-04 -5.7852611868756802e-04 7 -3.0550264536359436e-05 -5.7212395421602175e-04 -5.7852611868756802e-04
8 2.1230260290084160e-04 -5.2946150247993511e-04 6.1002092957609434e-04 8 2.1230260290084160e-04 -5.2946150247993511e-04 6.1002092957609445e-04
9 3.5835237205891044e-03 -8.2976423766382163e-03 -1.6569654205811610e-02 9 3.5835237205891039e-03 -8.2976423766382163e-03 -1.6569654205811610e-02
10 3.2215400971380464e-04 6.7777051599916360e-04 -1.4690970683667591e-04 10 3.2215400971380464e-04 6.7777051599916360e-04 -1.4690970683667594e-04
11 -3.8262569070299369e-03 -6.4899437483942309e-03 -6.0625717608142051e-03 11 -3.8262569070299374e-03 -6.4899437483942292e-03 -6.0625717608142043e-03
12 9.6903366708958486e-04 -6.5830810892723922e-04 -1.4851103246954738e-03 12 9.6903366708958486e-04 -6.5830810892723943e-04 -1.4851103246954738e-03
13 -1.3051803182304389e-03 1.5782109043276430e-03 -5.7359190198993059e-04 13 -1.3051803182304387e-03 1.5782109043276438e-03 -5.7359190198992950e-04
14 3.1570944675627741e-03 -6.9925437658747589e-03 2.5670995049832746e-03 14 3.1570944675627737e-03 -6.9925437658747589e-03 2.5670995049832746e-03
15 -3.3107454411357724e-03 5.6059336622465679e-04 1.4845717250576757e-02 15 -3.3107454411357724e-03 5.6059336622465647e-04 1.4845717250576757e-02
16 -1.8030723242303502e-04 -2.9205235801445917e-04 1.5828900167446096e-03 16 -1.8030723242303502e-04 -2.9205235801445917e-04 1.5828900167446096e-03
17 5.7535428047488272e-04 2.7096053960059093e-04 5.2484092395923122e-04 17 5.7535428047488272e-04 2.7096053960059093e-04 5.2484092395923122e-04
18 -6.0936815808025862e-04 -9.3774557532468582e-04 -3.3558072507805731e-04 18 -6.0936815808025862e-04 -9.3774557532468582e-04 -3.3558072507805731e-04
@ -79,4 +80,34 @@ run_vel: ! |2
27 -2.6510179146429716e-04 3.6306203629019116e-04 -5.6235585400647747e-04 27 -2.6510179146429716e-04 3.6306203629019116e-04 -5.6235585400647747e-04
28 -2.3068708109787484e-04 -8.5663070212203200e-04 2.1302563179109169e-03 28 -2.3068708109787484e-04 -8.5663070212203200e-04 2.1302563179109169e-03
29 -2.5054744388303732e-03 -1.6773997805290820e-04 2.8436699761004796e-03 29 -2.5054744388303732e-03 -1.6773997805290820e-04 2.8436699761004796e-03
run_torque: ! |2
1 -6.0554110246137771e+00 1.9847575898948492e+01 3.8198295167231464e+01
2 3.0670154989358359e+01 3.0869771736844150e+01 3.2281895844842595e+01
3 2.2350393637174943e+01 9.7433278995078823e+00 1.0139982748947251e+01
4 -2.2319106887091241e+01 -9.3329601970119924e-01 -6.6119344773777815e+00
5 -1.7362349894562058e+01 5.6916612156073434e+01 9.0140846563597901e+00
6 -5.6431434532037585e+01 1.0405919833939263e+01 1.1049076828983900e+01
7 1.8941670488698040e+01 2.1618049896982015e+01 1.4635688267029467e+01
8 -4.4090277831995607e+01 3.0850568334747003e+01 7.8191692458467950e+00
9 -1.5149678159864287e+01 -3.2837983461253856e+01 4.8126635558511659e+01
10 1.0555810741910328e+01 1.1981655127247099e+00 -1.6419552949860684e+01
11 1.0099254195449902e+01 7.7469406011570371e+01 7.5590595843916741e+00
12 -4.2483251972710558e+00 -8.4024364047244013e+00 2.1918595539110594e+01
13 -2.5823720770072828e+01 -3.6707252549051494e+00 5.7852965687528283e+01
14 -2.0058794195989783e+01 2.5320265646964035e+00 5.0010226620755667e+01
15 -3.8842882009303608e+01 1.9933563583102023e+00 3.4778718592720743e+01
16 8.9312102025061222e+00 2.2407003172366704e+01 1.6084415770601557e+00
17 -1.3673211522865074e+01 1.1862238206322800e+01 -2.7931664289026159e+00
18 3.6296151138160560e+01 -4.6993939548345828e+01 4.5590903859179683e+01
19 -3.6155019543679154e+00 -1.2708845852169000e+00 2.0736761327538751e+01
20 5.7510402140498073e+01 -2.4323978212522249e+01 -7.4747103035183162e+00
21 -1.6112751339176178e+01 -1.4572954004084757e+01 1.9901663931354502e+01
22 -3.2616079590092801e+00 -3.5263943061632084e+01 -2.9282541013692690e+01
23 -8.1241593398597960e+00 3.3321305667998743e+01 -1.2502058995490415e+01
24 1.8508619511691801e+01 -1.5458307619312894e+01 -2.2396963704559550e+01
25 3.2331692899242959e-01 -8.7719031291782219e+00 -2.9314173141348295e+01
26 2.0031181144490244e+01 -7.8658943239619745e+00 -1.0492820053735894e+01
27 -1.0257782620802805e+01 -3.9202065451935738e+01 -5.1363492997585205e+01
28 3.9228263689409992e+00 2.2997995161843612e+00 -1.3970420286579051e+00
29 2.4630674102439567e+01 4.2565916677290893e+01 -2.2691969241133958e+01
... ...

View File

@ -1,6 +1,7 @@
--- ---
lammps_version: 17 Feb 2022 lammps_version: 27 Jun 2024
date_generated: Fri Mar 18 22:17:59 2022 tags: generated
date_generated: Sun Aug 4 23:05:01 2024
epsilon: 1e-12 epsilon: 1e-12
skip_tests: skip_tests:
prerequisites: ! | prerequisites: ! |
@ -17,57 +18,57 @@ post_commands: ! |
fix test solute npt/sphere temp 50.0 ${t_target} 1.0 tri 1.0 1.0 100.0 nreset 2 fix test solute npt/sphere temp 50.0 ${t_target} 1.0 tri 1.0 1.0 100.0 nreset 2
input_file: in.dipole input_file: in.dipole
natoms: 29 natoms: 29
global_scalar: 12.427074202242965 global_scalar: 12.427074202242943
global_vector: ! |- global_vector: ! |-
48 0.18732599278123133 1.4327704185774883 -1.1143503631061675 0.09281449313807297 2.0096876527033753 0.5168928407674991 -0.0025872780315617993 0.0016072198861910548 -0.017515031066905436 -0.0006359696254764761 0.003684960047314241 0.00146301403425373 -0.0021206674795813452 0.001524928850133378 -0.014917163613204762 -0.0004705411201213999 0.003272044118682296 0.001226089504575895 0.0021598960215781725 -0.0002313961526710642 -0.00023292466339283792 0.0048048560344023045 -0.0002297564102730591 -0.00023642225051889441 6.365568501757148 0.2847210975358989 -0.22144445077120087 0.1463661846389862 0.40130093870042066 0.02654691633471399 -0.0003006594610783624 -0.0003006594610783624 -0.0003006594610783624 0 0 0 0.10054042535472664 0.05198699648022517 4.974713468580746 0.004949835079329656 0.2393502397929795 0.03360778691045218 0.0004292159845383489 -4.5983198494216164e-05 -4.628694516894922e-05 0.01720422325943158 3.9337756237346446e-05 4.1653452536114995e-05 48 0.1873259927812314 1.4327704185774879 -1.114350363106168 0.09281449313807312 2.009687652703378 0.5168928407675007 -0.0025872780315617915 0.001607219886191058 -0.017515031066905423 -0.0006359696254764772 0.0036849600473142408 0.0014630140342537371 -0.0021206674795813353 0.001524928850133392 -0.014917163613204713 -0.0004705411201213813 0.003272044118682351 0.001226089504575921 0.0021598960215781695 -0.0002313961526710642 -0.00023292466339283792 0.004804856034402295 -0.0002297564102730591 -0.00023642225051889441 6.365568501757151 0.2847210975358988 -0.22144445077120098 0.14636618463898668 0.4013009387004217 0.02654691633471416 -0.0003006594610783624 -0.0003006594610783624 -0.0003006594610783624 0 0 0 0.1005404253547257 0.05198699648022612 4.974713468580713 0.004949835079329265 0.2393502397929875 0.03360778691045361 0.0004292159845383483 -4.5983198494216164e-05 -4.628694516894922e-05 0.017204223259431512 3.9337756237346446e-05 4.1653452536114995e-05
run_pos: ! |2 run_pos: ! |2
1 -2.3019540006487116e-01 2.4731491152481908e+00 -1.7981254448987816e-01 1 -2.3019540006487293e-01 2.4731491152481908e+00 -1.7981254448987816e-01
2 3.5408091994147828e-01 2.9517458018682987e+00 -8.4154317667398715e-01 2 3.5408091994147206e-01 2.9517458018682987e+00 -8.4154317667398715e-01
3 -6.5053832938524980e-01 1.2449512560553124e+00 -6.2241599186766017e-01 3 -6.5053832938525158e-01 1.2449512560553124e+00 -6.2241599186766017e-01
4 -1.5342078390356919e+00 1.4884208596718214e+00 -1.2480276360391489e+00 4 -1.5342078390356928e+00 1.4884208596718214e+00 -1.2480276360391489e+00
5 -8.5668136613463730e-01 9.2234546360780989e-01 3.9231452398524702e-01 5 -8.5668136613463730e-01 9.2234546360780989e-01 3.9231452398524702e-01
6 3.3322113863941460e-01 2.2597463982144994e-01 -1.2709694160975076e+00 6 3.3322113863941727e-01 2.2597463982144994e-01 -1.2709694160975076e+00
7 3.7475098107547833e-01 -1.3724988393778226e-02 -2.4320792823935395e+00 7 3.7475098107547922e-01 -1.3724988393778226e-02 -2.4320792823935395e+00
8 1.2031137603847464e+00 -4.9024585938175047e-01 -6.7426808576801633e-01 8 1.2031137603847499e+00 -4.9024585938174958e-01 -6.7426808576801633e-01
9 1.4241784975508018e+00 -2.7021689756584077e-01 2.3803620252476776e-01 9 1.4241784975508045e+00 -2.7021689756584166e-01 2.3803620252476776e-01
10 2.0530428396862863e+00 -1.4336868349895733e+00 -9.6110246210374406e-01 10 2.0530428396862916e+00 -1.4336868349895742e+00 -9.6110246210374672e-01
11 1.8188729850824128e+00 -2.0021830794840838e+00 -1.8707494276865724e+00 11 1.8188729850824146e+00 -2.0021830794840829e+00 -1.8707494276865724e+00
12 3.0352703768848599e+00 -4.9511047953297194e-01 -1.6037322028476977e+00 12 3.0352703768848617e+00 -4.9511047953297194e-01 -1.6037322028476977e+00
13 4.0741331374345844e+00 -9.0138890701479379e-01 -1.6215524267381634e+00 13 4.0741331374345879e+00 -9.0138890701479291e-01 -1.6215524267381634e+00
14 2.6340159931331169e+00 -4.2299939057361513e-01 -2.6207532717282440e+00 14 2.6340159931331186e+00 -4.2299939057361602e-01 -2.6207532717282440e+00
15 3.0012113993627043e+00 5.5766796064899893e-01 -1.2140224834055351e+00 15 3.0012113993627061e+00 5.5766796064899893e-01 -1.2140224834055351e+00
16 2.6858185719984888e+00 -2.4051713466577018e+00 2.5220211520086799e-02 16 2.6858185719984924e+00 -2.4051713466577018e+00 2.5220211520084135e-02
17 2.2721660250726270e+00 -2.1105589725251424e+00 1.1204022912329368e+00 17 2.2721660250726288e+00 -2.1105589725251424e+00 1.1204022912329350e+00
18 2.1691096725020067e+00 3.0200034523915207e+00 -3.4652251395628202e+00 18 2.1691096725020014e+00 3.0200034523915207e+00 -3.4652251395628202e+00
19 1.5638692354297206e+00 2.6337150067951516e+00 -4.1837327833568496e+00 19 1.5638692354297223e+00 2.6337150067951516e+00 -4.1837327833568496e+00
20 2.7925636956819009e+00 3.6869563744341303e+00 -3.8799004126527885e+00 20 2.7925636956819027e+00 3.6869563744341303e+00 -3.8799004126527885e+00
21 4.9191678730049482e+00 -4.0841855614113509e+00 -3.5688686765499709e+00 21 4.9191678730049482e+00 -4.0841855614113536e+00 -3.5688686765499709e+00
22 4.3795875951964014e+00 -4.2141688660389169e+00 -4.3978133092346745e+00 22 4.3795875951964049e+00 -4.2141688660389161e+00 -4.3978133092346745e+00
23 5.7478464814125978e+00 -3.5844338072573851e+00 -3.8248183325717333e+00 23 5.7478464814125978e+00 -3.5844338072573851e+00 -3.8248183325717333e+00
24 2.1237696561245585e+00 3.1501013360303496e+00 3.0904476168033845e+00 24 2.1237696561245567e+00 3.1501013360303496e+00 3.0904476168033845e+00
25 1.3550047845470763e+00 3.2744376408481468e+00 2.4555407382440482e+00 25 1.3550047845470798e+00 3.2744376408481468e+00 2.4555407382440482e+00
26 2.6362472864936795e+00 4.0116438051188350e+00 3.1473576257765501e+00 26 2.6362472864936759e+00 4.0116438051188350e+00 3.1473576257765483e+00
27 -1.9103797042670241e+00 -4.3687665159467350e+00 2.0633187830108284e+00 27 -1.9103797042670267e+00 -4.3687665159467350e+00 2.0633187830108284e+00
28 -2.6890947459520760e+00 -4.0329898501364472e+00 1.5451958805107964e+00 28 -2.6890947459520786e+00 -4.0329898501364490e+00 1.5451958805107964e+00
29 -1.2598435219755979e+00 -3.6113182514368400e+00 2.2184764640185506e+00 29 -1.2598435219755979e+00 -3.6113182514368400e+00 2.2184764640185506e+00
run_vel: ! |2 run_vel: ! |2
1 6.6502876613817082e-04 6.0137715630290990e-04 -3.7231857614918870e-04 1 6.6502876613816931e-04 6.0137715630290947e-04 -3.7231857614918745e-04
2 4.4310732749849834e-03 -4.6860518880721125e-03 6.9172213803384598e-03 2 4.4310732749850614e-03 -4.6860518880720969e-03 6.9172213803384112e-03
3 -8.2879932936262470e-04 1.6675520063217355e-03 -3.6230664453296249e-04 3 -8.2879932936262318e-04 1.6675520063217353e-03 -3.6230664453296320e-04
4 -2.3009589595040579e-03 -2.4940767601862654e-04 -6.7114948439266622e-03 4 -2.3009589595040692e-03 -2.4940767601862936e-04 -6.7114948439266622e-03
5 -9.9666600062292034e-03 -1.0192454842315554e-02 7.0756875873893878e-03 5 -9.9666600062292138e-03 -1.0192454842315558e-02 7.0756875873893999e-03
6 -6.6466948691936705e-05 1.1100485529839253e-03 4.6221787716926475e-04 6 -6.6466948691938101e-05 1.1100485529839256e-03 4.6221787716926562e-04
7 -2.6664287463238046e-05 -5.6727672702013335e-04 -5.9340251907992480e-04 7 -2.6664287463237961e-05 -5.6727672702013335e-04 -5.9340251907992513e-04
8 2.1069461419280237e-04 -5.2276533772720711e-04 6.1543942080566469e-04 8 2.1069461419280139e-04 -5.2276533772720743e-04 6.1543942080566339e-04
9 3.5880864338550958e-03 -8.3291497817817185e-03 -1.6629312246477103e-02 9 3.5880864338551583e-03 -8.3291497817817133e-03 -1.6629312246477079e-02
10 3.2193494737599299e-04 6.8203760452628106e-04 -1.4590168253026371e-04 10 3.2193494737599039e-04 6.8203760452628410e-04 -1.4590168253026048e-04
11 -3.7645937681506248e-03 -6.5457646086291748e-03 -6.2933396080559157e-03 11 -3.7645937681506291e-03 -6.5457646086292147e-03 -6.2933396080559695e-03
12 9.6775971858663215e-04 -6.5412431179954632e-04 -1.4911729864314906e-03 12 9.6775971858663584e-04 -6.5412431179954556e-04 -1.4911729864314916e-03
13 -1.3236241180578574e-03 1.6172374806127285e-03 -6.1192476666208843e-04 13 -1.3236241180578593e-03 1.6172374806127008e-03 -6.1192476666208930e-04
14 3.1820466835757160e-03 -7.0137200098607964e-03 2.4247294180746626e-03 14 3.1820466835756922e-03 -7.0137200098607808e-03 2.4247294180746591e-03
15 -3.3775929249580030e-03 4.3714311542646252e-04 1.4901523418484804e-02 15 -3.3775929249580221e-03 4.3714311542645894e-04 1.4901523418484794e-02
16 -1.8137388689900037e-04 -2.8790510242829455e-04 1.5850222165835152e-03 16 -1.8137388689900075e-04 -2.8790510242829488e-04 1.5850222165835182e-03
17 5.6799086787377967e-04 2.7020817344844704e-04 5.3751629851417294e-04 17 5.6799086787377999e-04 2.7020817344844682e-04 5.3751629851417240e-04
18 -6.0936815808025862e-04 -9.3774557532468582e-04 -3.3558072507805731e-04 18 -6.0936815808025862e-04 -9.3774557532468582e-04 -3.3558072507805731e-04
19 -6.9919768291957119e-04 -3.6060777270430031e-03 4.2833405289822791e-03 19 -6.9919768291957119e-04 -3.6060777270430031e-03 4.2833405289822791e-03
20 4.7777805013736515e-03 5.1003745845520452e-03 1.8002873923729241e-03 20 4.7777805013736515e-03 5.1003745845520452e-03 1.8002873923729241e-03
@ -80,4 +81,34 @@ run_vel: ! |2
27 -2.6510179146429716e-04 3.6306203629019116e-04 -5.6235585400647747e-04 27 -2.6510179146429716e-04 3.6306203629019116e-04 -5.6235585400647747e-04
28 -2.3068708109787484e-04 -8.5663070212203200e-04 2.1302563179109169e-03 28 -2.3068708109787484e-04 -8.5663070212203200e-04 2.1302563179109169e-03
29 -2.5054744388303732e-03 -1.6773997805290820e-04 2.8436699761004796e-03 29 -2.5054744388303732e-03 -1.6773997805290820e-04 2.8436699761004796e-03
run_torque: ! |2
1 -6.0124998311159761e+00 1.9682321519591596e+01 3.7883914181870679e+01
2 3.1304748515804327e+01 3.1735147209794683e+01 3.3506624646980455e+01
3 2.2197619356262216e+01 9.5964148014200212e+00 1.0018701888133929e+01
4 -2.2925035388947208e+01 -1.7268817514260277e+00 -6.4238401477697584e+00
5 -1.8317034992438174e+01 5.6865300805017029e+01 9.3866377577176667e+00
6 -5.8014798806018447e+01 1.0521365093107576e+01 1.1018817099660858e+01
7 1.7002858452108327e+01 2.2216839813185452e+01 1.4072539705651169e+01
8 -4.5214233698263371e+01 3.1067017406665837e+01 7.7706963464292214e+00
9 -1.5117631388935992e+01 -3.3350320503611997e+01 4.8169884280578515e+01
10 1.1517938149998736e+01 8.8191651220009604e-01 -1.7255449085517540e+01
11 1.0349229723879549e+01 7.6482164072936826e+01 7.1283274042611522e+00
12 -3.6573842758754251e+00 -8.0828163783943268e+00 2.0863198218211974e+01
13 -2.6030678794387281e+01 -3.3853184606289313e+00 5.8222181879036626e+01
14 -2.0091140090056427e+01 2.5296096619438533e+00 5.0767210533944045e+01
15 -3.7356553240355069e+01 2.4129733052318327e+00 3.4028113212218109e+01
16 9.1018118836520419e+00 2.2866714519115654e+01 1.2827700966519586e+00
17 -1.3095170221983704e+01 1.1834456458118769e+01 -2.7690750508703643e+00
18 3.6923905678275972e+01 -4.8452896603006629e+01 4.6791656214139635e+01
19 -3.4922673408570279e+00 -1.6758304527193135e+00 2.1461257989774921e+01
20 5.8139191351577928e+01 -2.4182337131991854e+01 -7.2035111370324136e+00
21 -1.5855429850534771e+01 -1.4961013238349713e+01 2.0251611940566924e+01
22 -3.7488719078728421e+00 -3.5905878830962223e+01 -3.0067184354921146e+01
23 -8.6228611844314340e+00 3.4186511472012427e+01 -1.2841613920093099e+01
24 1.8773442106149677e+01 -1.5772957526947746e+01 -2.3113007482616975e+01
25 1.4413043635253722e+00 -8.2060640707646897e+00 -2.8034644356237699e+01
26 2.0223486241785100e+01 -7.8930903329601589e+00 -1.0668274064581684e+01
27 -1.1365103173162456e+01 -3.9925908341195530e+01 -5.1148655887617643e+01
28 3.6648578698064367e+00 1.7832410201915763e+00 -1.3069662579365211e+00
29 2.4129203274350708e+01 4.3140161737654658e+01 -2.2707274398106854e+01
... ...

View File

@ -1,6 +1,7 @@
--- ---
lammps_version: 17 Feb 2022 lammps_version: 27 Jun 2024
date_generated: Fri Mar 18 22:17:59 2022 tags: generated
date_generated: Sun Aug 4 23:05:44 2024
epsilon: 5e-14 epsilon: 5e-14
skip_tests: skip_tests:
prerequisites: ! | prerequisites: ! |
@ -47,21 +48,21 @@ run_pos: ! |2
28 -2.7406520384725965e+00 -4.0207251278130975e+00 1.5828689861678511e+00 28 -2.7406520384725965e+00 -4.0207251278130975e+00 1.5828689861678511e+00
29 -1.3108232656499081e+00 -3.5992986322410760e+00 2.2680459788743503e+00 29 -1.3108232656499081e+00 -3.5992986322410760e+00 2.2680459788743503e+00
run_vel: ! |2 run_vel: ! |2
1 8.0441098013536900e-04 7.1566696890217009e-04 -4.3319530641127335e-04 1 8.0441098013536922e-04 7.1566696890216987e-04 -4.3319530641127346e-04
2 4.9019924927833974e-03 -4.7801485992371362e-03 8.0763763167138545e-03 2 4.9019924927833974e-03 -4.7801485992371336e-03 8.0763763167138562e-03
3 -1.0296827041707426e-03 1.9681821177098759e-03 -4.0661362502986771e-04 3 -1.0296827041707426e-03 1.9681821177098763e-03 -4.0661362502986766e-04
4 -2.4750904667702675e-03 -4.0142184848872351e-04 -7.4645414457473643e-03 4 -2.4750904667702675e-03 -4.0142184848872438e-04 -7.4645414457473643e-03
5 -1.0920223377262466e-02 -1.0990650916587272e-02 7.1259821326181468e-03 5 -1.0920223377262466e-02 -1.0990650916587274e-02 7.1259821326181451e-03
6 -9.5250936177773566e-05 1.3338845867289183e-03 5.4216231888479466e-04 6 -9.5250936177773566e-05 1.3338845867289183e-03 5.4216231888479466e-04
7 -4.3622272484028061e-05 -6.9095838256533388e-04 -6.9347553685684493e-04 7 -4.3622272484028061e-05 -6.9095838256533388e-04 -6.9347553685684493e-04
8 2.6770309186413674e-04 -6.5039173203211488e-04 6.8080720281545992e-04 8 2.6770309186413674e-04 -6.5039173203211488e-04 6.8080720281545992e-04
9 3.9551108074098729e-03 -9.3129436730056761e-03 -1.8150317067617373e-02 9 3.9551108074098729e-03 -9.3129436730056761e-03 -1.8150317067617373e-02
10 3.9268045122209367e-04 7.8613414593941687e-04 -1.8443604077645880e-04 10 3.9268045122209367e-04 7.8613414593941687e-04 -1.8443604077645888e-04
11 -4.1884490183000996e-03 -7.1206276521598860e-03 -6.7115880881258904e-03 11 -4.1884490183000996e-03 -7.1206276521598860e-03 -6.7115880881258904e-03
12 1.1515461519926520e-03 -7.7600056283407145e-04 -1.7352241098650581e-03 12 1.1515461519926524e-03 -7.7600056283407166e-04 -1.7352241098650581e-03
13 -1.2037022170798494e-03 2.1033375439546294e-03 -6.8928778601844956e-04 13 -1.2037022170798490e-03 2.1033375439546290e-03 -6.8928778601844891e-04
14 3.5046339401241904e-03 -8.0020522800663824e-03 2.6034033369112244e-03 14 3.5046339401241904e-03 -8.0020522800663824e-03 2.6034033369112253e-03
15 -3.9825896439104579e-03 1.5687388979248248e-04 1.6410860063121452e-02 15 -3.9825896439104579e-03 1.5687388979248213e-04 1.6410860063121459e-02
16 -2.1359275515571666e-04 -3.5441416299211248e-04 1.8682699034667436e-03 16 -2.1359275515571666e-04 -3.5441416299211248e-04 1.8682699034667436e-03
17 6.8808524051577229e-04 3.2653076879221409e-04 6.4078607994587312e-04 17 6.8808524051577229e-04 3.2653076879221409e-04 6.4078607994587312e-04
18 -6.0936815808025862e-04 -9.3774557532468582e-04 -3.3558072507805731e-04 18 -6.0936815808025862e-04 -9.3774557532468582e-04 -3.3558072507805731e-04
@ -76,4 +77,34 @@ run_vel: ! |2
27 -2.6510179146429716e-04 3.6306203629019116e-04 -5.6235585400647747e-04 27 -2.6510179146429716e-04 3.6306203629019116e-04 -5.6235585400647747e-04
28 -2.3068708109787484e-04 -8.5663070212203200e-04 2.1302563179109169e-03 28 -2.3068708109787484e-04 -8.5663070212203200e-04 2.1302563179109169e-03
29 -2.5054744388303732e-03 -1.6773997805290820e-04 2.8436699761004796e-03 29 -2.5054744388303732e-03 -1.6773997805290820e-04 2.8436699761004796e-03
run_torque: ! |2
1 -6.1369442148570865e+00 1.9344329280997965e+01 3.7344506939264207e+01
2 3.0372242336331482e+01 3.0516736906001874e+01 3.1837679095375965e+01
3 2.1817318817985253e+01 9.4576413065995695e+00 9.8636459614053820e+00
4 -2.1859322113371874e+01 -1.0401405983068739e+00 -6.4154018256568133e+00
5 -1.6984681658568327e+01 5.5916090651560040e+01 8.8272011818718816e+00
6 -5.5445401523514889e+01 1.0180538866331212e+01 1.0772053030432435e+01
7 1.8266604749251279e+01 2.1133479721233556e+01 1.4209146957622119e+01
8 -4.3619353226873464e+01 3.0173491608019667e+01 7.5845536355433731e+00
9 -1.4972711327577034e+01 -3.2426165839548453e+01 4.7557419242889260e+01
10 1.0333541801876125e+01 1.3064173904648970e+00 -1.6281096208357916e+01
11 9.9463019103210613e+00 7.5793545085830772e+01 7.3376780539143125e+00
12 -4.3477468764010609e+00 -8.1149312707506045e+00 2.1294974920295019e+01
13 -2.5499326677842884e+01 -4.0243913648910663e+00 5.7246138756449035e+01
14 -1.9683515377820925e+01 2.4820181675524071e+00 4.9348962151675231e+01
15 -3.7855165768175027e+01 2.1221904028945908e+00 3.4104393401183650e+01
16 8.7158940337050286e+00 2.1868069478502083e+01 1.5554899051274487e+00
17 -1.3272387048726866e+01 1.1831520641370773e+01 -2.7741884943671709e+00
18 3.6389100706671151e+01 -4.6952265624106118e+01 4.5604293213892028e+01
19 -3.6996258348060067e+00 -1.1557494761353593e+00 2.0757209307809553e+01
20 5.7445951329295376e+01 -2.4306027467396433e+01 -7.4743937873436552e+00
21 -1.6223863094107173e+01 -1.4593925365079004e+01 1.9953362336512413e+01
22 -3.2058029620351300e+00 -3.5223897380584305e+01 -2.9218653334039352e+01
23 -8.1678114304270526e+00 3.3245566444795379e+01 -1.2476865309174510e+01
24 1.8570656282853857e+01 -1.5481789966966369e+01 -2.2352134119257013e+01
25 1.7658057211937717e+00 -8.1674590394669622e+00 -2.8080610896993186e+01
26 1.9981245915490664e+01 -7.8110010956728546e+00 -1.0521226534863638e+01
27 -1.0527945105027145e+01 -3.9204819734927668e+01 -5.1025650554957828e+01
28 3.9126067084806371e+00 2.3092835764055835e+00 -1.3933264500680171e+00
29 2.4598237451858992e+01 4.2569045443064546e+01 -2.2681691321733148e+01
... ...

View File

@ -1,6 +1,7 @@
--- ---
lammps_version: 17 Feb 2022 lammps_version: 27 Jun 2024
date_generated: Fri Mar 18 22:17:59 2022 tags: generated
date_generated: Sun Aug 4 23:06:12 2024
epsilon: 5e-14 epsilon: 5e-14
skip_tests: skip_tests:
prerequisites: ! | prerequisites: ! |
@ -47,22 +48,22 @@ run_pos: ! |2
28 -2.7406520384725965e+00 -4.0207251278130975e+00 1.5828689861678511e+00 28 -2.7406520384725965e+00 -4.0207251278130975e+00 1.5828689861678511e+00
29 -1.3108232656499081e+00 -3.5992986322410760e+00 2.2680459788743503e+00 29 -1.3108232656499081e+00 -3.5992986322410760e+00 2.2680459788743503e+00
run_vel: ! |2 run_vel: ! |2
1 8.0473659311712108e-04 7.1569249347906293e-04 -4.3342870018006266e-04 1 8.0473659311712130e-04 7.1569249347906293e-04 -4.3342870018006266e-04
2 4.8898479203602872e-03 -4.7827042023383653e-03 8.0841799193837622e-03 2 4.8898479203602872e-03 -4.7827042023383653e-03 8.0841799193837639e-03
3 -1.0294756367549977e-03 1.9683076071813905e-03 -4.0617066185945003e-04 3 -1.0294756367549977e-03 1.9683076071813905e-03 -4.0617066185944997e-04
4 -2.4747982635460650e-03 -4.0369263662479350e-04 -7.4617063284330562e-03 4 -2.4747982635460650e-03 -4.0369263662479437e-04 -7.4617063284330570e-03
5 -1.0926646593906205e-02 -1.0990152085046808e-02 7.1139929395277850e-03 5 -1.0926646593906205e-02 -1.0990152085046808e-02 7.1139929395277850e-03
6 -9.5067271206254411e-05 1.3336935657649609e-03 5.4214461928120254e-04 6 -9.5067271206254411e-05 1.3336935657649609e-03 5.4214461928120232e-04
7 -4.3586025236289389e-05 -6.9109610170650215e-04 -6.9337762329437880e-04 7 -4.3586025236289389e-05 -6.9109610170650215e-04 -6.9337762329437880e-04
8 2.6803899143798955e-04 -6.5040541267279931e-04 6.8116655292381478e-04 8 2.6803899143798955e-04 -6.5040541267279953e-04 6.8116655292381478e-04
9 3.9386905614672216e-03 -9.3112400668916677e-03 -1.8163977072531323e-02 9 3.9386905614672216e-03 -9.3112400668916677e-03 -1.8163977072531323e-02
10 3.9247060772836721e-04 7.8592522562680449e-04 -1.8488118631442108e-04 10 3.9247060772836754e-04 7.8592522562680460e-04 -1.8488118631442121e-04
11 -4.1794652638823824e-03 -7.0974426331113054e-03 -6.7076698172827591e-03 11 -4.1794652638823824e-03 -7.0974426331113036e-03 -6.7076698172827591e-03
12 1.1514884390152259e-03 -7.7558890534917975e-04 -1.7352975395072093e-03 12 1.1514884390152259e-03 -7.7558890534918008e-04 -1.7352975395072089e-03
13 -1.2091918935275532e-03 2.1057712474429279e-03 -6.8173220473209044e-04 13 -1.2091918935275532e-03 2.1057712474429275e-03 -6.8173220473209011e-04
14 3.4935556917242974e-03 -8.0116807211232828e-03 2.6013722731623324e-03 14 3.4935556917242965e-03 -8.0116807211232863e-03 2.6013722731623328e-03
15 -3.9745580146274334e-03 1.4335430630175937e-04 1.6407163363653991e-02 15 -3.9745580146274342e-03 1.4335430630175834e-04 1.6407163363653991e-02
16 -2.1348158583193186e-04 -3.5449321712298289e-04 1.8683099741508020e-03 16 -2.1348158583193186e-04 -3.5449321712298267e-04 1.8683099741508020e-03
17 6.8803503268433628e-04 3.2662083176268592e-04 6.4072364607846313e-04 17 6.8803503268433628e-04 3.2662083176268592e-04 6.4072364607846313e-04
18 -6.0936815808025862e-04 -9.3774557532468582e-04 -3.3558072507805731e-04 18 -6.0936815808025862e-04 -9.3774557532468582e-04 -3.3558072507805731e-04
19 -6.9919768291957119e-04 -3.6060777270430031e-03 4.2833405289822791e-03 19 -6.9919768291957119e-04 -3.6060777270430031e-03 4.2833405289822791e-03
@ -76,4 +77,34 @@ run_vel: ! |2
27 -2.6510179146429716e-04 3.6306203629019116e-04 -5.6235585400647747e-04 27 -2.6510179146429716e-04 3.6306203629019116e-04 -5.6235585400647747e-04
28 -2.3068708109787484e-04 -8.5663070212203200e-04 2.1302563179109169e-03 28 -2.3068708109787484e-04 -8.5663070212203200e-04 2.1302563179109169e-03
29 -2.5054744388303732e-03 -1.6773997805290820e-04 2.8436699761004796e-03 29 -2.5054744388303732e-03 -1.6773997805290820e-04 2.8436699761004796e-03
run_torque: ! |2
1 -6.1403759666565509e+00 1.9281929610299720e+01 3.7235380474171713e+01
2 3.0340583242959461e+01 3.0494180188781673e+01 3.1832412100309746e+01
3 2.1834385201299796e+01 9.5214771278104884e+00 9.9078886460567261e+00
4 -2.1891092268373558e+01 -9.9863963616844353e-01 -6.4457164244150640e+00
5 -1.7064404784024017e+01 5.5982980061428862e+01 8.8639899167837601e+00
6 -5.5462360531960748e+01 1.0135485103209382e+01 1.0682510074463719e+01
7 1.8324887082603652e+01 2.0930226066638173e+01 1.4164473028447718e+01
8 -4.3515896635067904e+01 3.0227947771508358e+01 7.6213564711468473e+00
9 -1.4836923218200029e+01 -3.2373064334732746e+01 4.7191725796077492e+01
10 1.0246878924161699e+01 1.3897136953954980e+00 -1.6290924115760532e+01
11 1.0029538875094079e+01 7.5954385873580861e+01 7.3007469981317552e+00
12 -4.3426796855790597e+00 -8.1001966077911440e+00 2.1257757278516614e+01
13 -2.5500259865449323e+01 -4.0349873849006990e+00 5.7253943532785428e+01
14 -1.9740783538668413e+01 2.4880810057925693e+00 4.9332890100392994e+01
15 -3.7858651755052200e+01 2.1350171800377793e+00 3.4131916822482452e+01
16 8.7293637958320645e+00 2.1899924453569003e+01 1.5797402965748808e+00
17 -1.3199648722212999e+01 1.1876311023285911e+01 -2.7807378187367293e+00
18 3.6467281693815110e+01 -4.6970689063609505e+01 4.5649670999077372e+01
19 -3.7489510684109106e+00 -1.0981176436594002e+00 2.0800734648433416e+01
20 5.7455033084251959e+01 -2.4326458008696171e+01 -7.4899387014093648e+00
21 -1.6206139757210817e+01 -1.4585380569514930e+01 1.9939522726360000e+01
22 -3.2047183062536964e+00 -3.5248879836386912e+01 -2.9237401932692304e+01
23 -8.1664301417481564e+00 3.3251331282719484e+01 -1.2478883645206089e+01
24 1.8548205929810106e+01 -1.5471259314702470e+01 -2.2359754776206874e+01
25 1.7957735711802272e+00 -8.1588343339867144e+00 -2.8068048033883585e+01
26 1.9987257688262208e+01 -7.8181391565781881e+00 -1.0516987997090540e+01
27 -1.0524888031562181e+01 -3.9194439310101828e+01 -5.1012481861329647e+01
28 3.9261232456793254e+00 2.2974819477802875e+00 -1.3982370338143464e+00
29 2.4614874924109493e+01 4.2553358575986294e+01 -2.2682298252059319e+01
... ...

View File

@ -1,7 +1,8 @@
--- ---
lammps_version: 17 Feb 2022 lammps_version: 27 Jun 2024
date_generated: Fri Mar 18 22:17:59 2022 tags: generated
epsilon: 5e-14 date_generated: Sun Aug 4 23:06:24 2024
epsilon: 1e-09
skip_tests: skip_tests:
prerequisites: ! | prerequisites: ! |
atom full atom full
@ -47,22 +48,22 @@ run_pos: ! |2
28 -2.7406520384725965e+00 -4.0207251278130975e+00 1.5828689861678511e+00 28 -2.7406520384725965e+00 -4.0207251278130975e+00 1.5828689861678511e+00
29 -1.3108232656499081e+00 -3.5992986322410760e+00 2.2680459788743503e+00 29 -1.3108232656499081e+00 -3.5992986322410760e+00 2.2680459788743503e+00
run_vel: ! |2 run_vel: ! |2
1 8.0473659314045311e-04 7.1569249348053788e-04 -4.3342870019477209e-04 1 8.0473659314045333e-04 7.1569249348053766e-04 -4.3342870019477209e-04
2 4.8898479194970776e-03 -4.7827042025493328e-03 8.0841799198950980e-03 2 4.8898479194970793e-03 -4.7827042025493302e-03 8.0841799198950980e-03
3 -1.0294756367398522e-03 1.9683076071843977e-03 -4.0617066181897172e-04 3 -1.0294756367398522e-03 1.9683076071843977e-03 -4.0617066181897166e-04
4 -2.4747982635401457e-03 -4.0369263670034846e-04 -7.4617063284663837e-03 4 -2.4747982635401457e-03 -4.0369263670034889e-04 -7.4617063284663837e-03
5 -1.0926646594371462e-02 -1.0990152084938042e-02 7.1139929386532267e-03 5 -1.0926646594371462e-02 -1.0990152084938042e-02 7.1139929386532267e-03
6 -9.5067271190104528e-05 1.3336935657507986e-03 5.4214461927831791e-04 6 -9.5067271190104528e-05 1.3336935657507986e-03 5.4214461927831791e-04
7 -4.3586025231105304e-05 -6.9109610172221191e-04 -6.9337762328493019e-04 7 -4.3586025231105277e-05 -6.9109610172221191e-04 -6.9337762328493019e-04
8 2.6803899146373794e-04 -6.5040541267551654e-04 6.8116655294853557e-04 8 2.6803899146373794e-04 -6.5040541267551654e-04 6.8116655294853568e-04
9 3.9386905601377338e-03 -9.3112400666159056e-03 -1.8163977073503805e-02 9 3.9386905601377330e-03 -9.3112400666159056e-03 -1.8163977073503805e-02
10 3.9247060769256306e-04 7.8592522559452823e-04 -1.8488118637534633e-04 10 3.9247060769256306e-04 7.8592522559452823e-04 -1.8488118637534644e-04
11 -4.1794652628278275e-03 -7.0974426301502243e-03 -6.7076698165187305e-03 11 -4.1794652628278292e-03 -7.0974426301502243e-03 -6.7076698165187305e-03
12 1.1514884390163200e-03 -7.7558890532261431e-04 -1.7352975395074880e-03 12 1.1514884390163200e-03 -7.7558890532261463e-04 -1.7352975395074880e-03
13 -1.2091918941598333e-03 2.1057712476064984e-03 -6.8173220414898580e-04 13 -1.2091918941598333e-03 2.1057712476064989e-03 -6.8173220414898385e-04
14 3.4935556908446269e-03 -8.0116807223612977e-03 2.6013722730781614e-03 14 3.4935556908446252e-03 -8.0116807223612977e-03 2.6013722730781623e-03
15 -3.9745580139864218e-03 1.4335430539960781e-04 1.6407163363297207e-02 15 -3.9745580139864227e-03 1.4335430539960781e-04 1.6407163363297211e-02
16 -2.1348158581808053e-04 -3.5449321713051474e-04 1.8683099741583740e-03 16 -2.1348158581808055e-04 -3.5449321713051452e-04 1.8683099741583740e-03
17 6.8803503267879525e-04 3.2662083177018096e-04 6.4072364607216500e-04 17 6.8803503267879525e-04 3.2662083177018096e-04 6.4072364607216500e-04
18 -6.0936815808025862e-04 -9.3774557532468582e-04 -3.3558072507805731e-04 18 -6.0936815808025862e-04 -9.3774557532468582e-04 -3.3558072507805731e-04
19 -6.9919768291957119e-04 -3.6060777270430031e-03 4.2833405289822791e-03 19 -6.9919768291957119e-04 -3.6060777270430031e-03 4.2833405289822791e-03
@ -76,4 +77,34 @@ run_vel: ! |2
27 -2.6510179146429716e-04 3.6306203629019116e-04 -5.6235585400647747e-04 27 -2.6510179146429716e-04 3.6306203629019116e-04 -5.6235585400647747e-04
28 -2.3068708109787484e-04 -8.5663070212203200e-04 2.1302563179109169e-03 28 -2.3068708109787484e-04 -8.5663070212203200e-04 2.1302563179109169e-03
29 -2.5054744388303732e-03 -1.6773997805290820e-04 2.8436699761004796e-03 29 -2.5054744388303732e-03 -1.6773997805290820e-04 2.8436699761004796e-03
run_torque: ! |2
1 -6.1403759661120105e+00 1.9281929604003945e+01 3.7235380462726823e+01
2 3.0340583238669112e+01 3.0494180185350981e+01 3.1832412100312840e+01
3 2.1834385196767272e+01 9.5214771390078781e+00 9.9078886525247878e+00
4 -2.1891092272833276e+01 -9.9863963097733377e-01 -6.4457164283292316e+00
5 -1.7064404788489767e+01 5.5982980071959844e+01 8.8639899209375770e+00
6 -5.5462360529827720e+01 1.0135485098280819e+01 1.0682510065304129e+01
7 1.8324887095942497e+01 2.0930226045751901e+01 1.4164473026746716e+01
8 -4.3515896611377386e+01 3.0227947777862767e+01 7.6213564769143138e+00
9 -1.4836923196883752e+01 -3.2373064323798417e+01 4.7191725742262300e+01
10 1.0246878914465658e+01 1.3897137074834023e+00 -1.6290924121158529e+01
11 1.0029538892476616e+01 7.5954385909691013e+01 7.3007469972968329e+00
12 -4.3426796896782767e+00 -8.1001966016605333e+00 2.1257757266240482e+01
13 -2.5500259866998451e+01 -4.0349873895005244e+00 5.7253943535376834e+01
14 -1.9740783544629842e+01 2.4880810055376386e+00 4.9332890104457455e+01
15 -3.7858651752636511e+01 2.1350171870992058e+00 3.4131916828008087e+01
16 8.7293637981640515e+00 2.1899924459230121e+01 1.5797402991246403e+00
17 -1.3199648711378435e+01 1.1876311033096576e+01 -2.7807378203351321e+00
18 3.6467281704104735e+01 -4.6970689064704345e+01 4.5649671004201224e+01
19 -3.7489510745725738e+00 -1.0981176366359855e+00 2.0800734654432205e+01
20 5.7455033085797261e+01 -2.4326458010599001e+01 -7.4899387026919069e+00
21 -1.6206139753654561e+01 -1.4585380566496216e+01 1.9939522722180151e+01
22 -3.2047183087292246e+00 -3.5248879840343484e+01 -2.9237401937218184e+01
23 -8.1664301406545050e+00 3.3251331285361523e+01 -1.2478883646107191e+01
24 1.8548205926643970e+01 -1.5471259313254437e+01 -2.2359754777438564e+01
25 1.7957735754273969e+00 -8.1588343326224404e+00 -2.8068048031631573e+01
26 1.9987257689466691e+01 -7.8181391579229382e+00 -1.0516987996373377e+01
27 -1.0524888030911917e+01 -3.9194439307774175e+01 -5.1012481858332137e+01
28 3.9261232485831696e+00 2.2974819448840798e+00 -1.3982370348710909e+00
29 2.4614874928044500e+01 4.2553358572515293e+01 -2.2682298252282088e+01
... ...

View File

@ -1,6 +1,7 @@
--- ---
lammps_version: 17 Feb 2022 lammps_version: 27 Jun 2024
date_generated: Fri Mar 18 22:17:59 2022 tags: generated
date_generated: Sun Aug 4 23:11:49 2024
epsilon: 5e-14 epsilon: 5e-14
skip_tests: skip_tests:
prerequisites: ! | prerequisites: ! |
@ -16,9 +17,9 @@ post_commands: ! |
fix test solute nvt/sphere temp 50.0 ${t_target} 1.0 mtk no tchain 1 fix test solute nvt/sphere temp 50.0 ${t_target} 1.0 mtk no tchain 1
input_file: in.dipole input_file: in.dipole
natoms: 29 natoms: 29
global_scalar: 9.924697652139484 global_scalar: 9.924697652139486
global_vector: ! |- global_vector: ! |-
4 0.437308072017019 0.3665139279582143 8.603313153695396 1.3213844984440877 4 0.43730807201701904 0.36651392795821436 8.603313153695398 1.3213844984440881
run_pos: ! |2 run_pos: ! |2
1 -2.7857754700604942e-01 2.4737788516853181e+00 -1.7257396330013031e-01 1 -2.7857754700604942e-01 2.4737788516853181e+00 -1.7257396330013031e-01
2 3.0850115944710327e-01 2.9513142622511719e+00 -8.4681556480583575e-01 2 3.0850115944710327e-01 2.9513142622511719e+00 -8.4681556480583575e-01
@ -50,22 +51,22 @@ run_pos: ! |2
28 -2.7406520384725965e+00 -4.0207251278130975e+00 1.5828689861678511e+00 28 -2.7406520384725965e+00 -4.0207251278130975e+00 1.5828689861678511e+00
29 -1.3108232656499081e+00 -3.5992986322410760e+00 2.2680459788743503e+00 29 -1.3108232656499081e+00 -3.5992986322410760e+00 2.2680459788743503e+00
run_vel: ! |2 run_vel: ! |2
1 5.2257770354932143e-04 4.7726828362807121e-04 -3.0522943208439774e-04 1 5.2257770354932143e-04 4.7726828362807121e-04 -3.0522943208439790e-04
2 3.4303751874469003e-03 -4.2180945960502980e-03 5.7574961491201398e-03 2 3.4303751874469003e-03 -4.2180945960502972e-03 5.7574961491201398e-03
3 -6.3573466121110811e-04 1.3140213521350942e-03 -2.7079367477976328e-04 3 -6.3573466121110811e-04 1.3140213521350942e-03 -2.7079367477976312e-04
4 -1.7843971684490083e-03 -1.5758975301724681e-04 -5.2242082857429824e-03 4 -1.7843971684490083e-03 -1.5758975301724708e-04 -5.2242082857429824e-03
5 -8.2227072251703382e-03 -8.5099569970796211e-03 5.4461443188764105e-03 5 -8.2227072251703399e-03 -8.5099569970796211e-03 5.4461443188764088e-03
6 -3.5789209403806882e-05 8.6848093647978698e-04 3.1971012031399484e-04 6 -3.5789209403806882e-05 8.6848093647978698e-04 3.1971012031399484e-04
7 -2.0124049923183825e-05 -4.3697732547062816e-04 -4.3839548145203471e-04 7 -2.0124049923183825e-05 -4.3697732547062816e-04 -4.3839548145203471e-04
8 1.5805774595943574e-04 -4.0027425549530720e-04 5.0330078142215716e-04 8 1.5805774595943574e-04 -4.0027425549530720e-04 5.0330078142215716e-04
9 2.8822403754462040e-03 -6.8160818050074920e-03 -1.4036982183720428e-02 9 2.8822403754462040e-03 -6.8160818050074920e-03 -1.4036982183720428e-02
10 2.4663804309963582e-04 5.4279437979848041e-04 -1.1317926570306191e-04 10 2.4663804309963582e-04 5.4279437979848041e-04 -1.1317926570306194e-04
11 -3.1643374866053924e-03 -5.2717858128617642e-03 -4.7921591091986630e-03 11 -3.1643374866053928e-03 -5.2717858128617642e-03 -4.7921591091986630e-03
12 7.5165507333444881e-04 -5.1625440836408545e-04 -1.1731908604625759e-03 12 7.5165507333444903e-04 -5.1625440836408534e-04 -1.1731908604625759e-03
13 -1.4118493310107784e-03 1.1905767851418925e-03 -4.3306400341165912e-04 13 -1.4118493310107784e-03 1.1905767851418921e-03 -4.3306400341165853e-04
14 2.7000698448074781e-03 -5.6421006571202893e-03 2.4657183892946829e-03 14 2.7000698448074786e-03 -5.6421006571202893e-03 2.4657183892946824e-03
15 -2.5296352230596542e-03 4.9931947404907107e-04 1.2186033148767308e-02 15 -2.5296352230596559e-03 4.9931947404907074e-04 1.2186033148767310e-02
16 -1.5201520334258572e-04 -2.1134042562761163e-04 1.2515192941693033e-03 16 -1.5201520334258574e-04 -2.1134042562761152e-04 1.2515192941693033e-03
17 4.4810518325242042e-04 2.0606663095337982e-04 3.9041801229218036e-04 17 4.4810518325242042e-04 2.0606663095337982e-04 3.9041801229218036e-04
18 -6.0936815808025862e-04 -9.3774557532468582e-04 -3.3558072507805731e-04 18 -6.0936815808025862e-04 -9.3774557532468582e-04 -3.3558072507805731e-04
19 -6.9919768291957119e-04 -3.6060777270430031e-03 4.2833405289822791e-03 19 -6.9919768291957119e-04 -3.6060777270430031e-03 4.2833405289822791e-03
@ -79,4 +80,34 @@ run_vel: ! |2
27 -2.6510179146429716e-04 3.6306203629019116e-04 -5.6235585400647747e-04 27 -2.6510179146429716e-04 3.6306203629019116e-04 -5.6235585400647747e-04
28 -2.3068708109787484e-04 -8.5663070212203200e-04 2.1302563179109169e-03 28 -2.3068708109787484e-04 -8.5663070212203200e-04 2.1302563179109169e-03
29 -2.5054744388303732e-03 -1.6773997805290820e-04 2.8436699761004796e-03 29 -2.5054744388303732e-03 -1.6773997805290820e-04 2.8436699761004796e-03
run_torque: ! |2
1 -6.1647479505817486e+00 1.9357854481281628e+01 3.7382095469801669e+01
2 3.0399315613293311e+01 3.0488051135473462e+01 3.1728765947776601e+01
3 2.2007507947491852e+01 9.4109998472825360e+00 9.8661001086723026e+00
4 -2.1950531720941324e+01 -1.0737412605116079e+00 -6.4281696957501318e+00
5 -1.6930079491113258e+01 5.6073518561418972e+01 8.8118719638429521e+00
6 -5.5485763909032769e+01 1.0218557927200671e+01 1.0838895552811653e+01
7 1.8274326315933930e+01 2.1216280114332651e+01 1.4239716147511169e+01
8 -4.3381267441302278e+01 3.0143904332030072e+01 7.6018916372387642e+00
9 -1.4934802548271753e+01 -3.2261821345722943e+01 4.7416505231431628e+01
10 1.0289618520530993e+01 1.3758943483850052e+00 -1.6328406293854261e+01
11 1.0022735700488102e+01 7.5963128697318808e+01 7.3062507665818677e+00
12 -4.2090738469241007e+00 -8.1165678952507214e+00 2.1227230241477443e+01
13 -2.5544233766756054e+01 -3.9693193673378122e+00 5.7328310568812682e+01
14 -1.9554818948115717e+01 2.4625292894237067e+00 4.9365595084792723e+01
15 -3.7732026063957683e+01 2.3516660930031059e+00 3.4270024136423686e+01
16 8.6994109169845970e+00 2.1823823960601231e+01 1.5850366309435540e+00
17 -1.3251302305826963e+01 1.1835081351476667e+01 -2.7742173173135507e+00
18 3.6436604246446350e+01 -4.6921806536773992e+01 4.5605291742591788e+01
19 -3.7134483050033200e+00 -1.1451664296014052e+00 2.0787182552853508e+01
20 5.7452322820219557e+01 -2.4299279960037826e+01 -7.4670459237528863e+00
21 -1.6224953575653984e+01 -1.4594202239704996e+01 1.9953946153191371e+01
22 -3.2024997164679143e+00 -3.5228129036774767e+01 -2.9219994848442951e+01
23 -8.1719497151916940e+00 3.3245432738961291e+01 -1.2477031579495556e+01
24 1.8566283378926865e+01 -1.5480360463086017e+01 -2.2356249481261020e+01
25 1.7702057938310602e+00 -8.1663491932637875e+00 -2.8079286197541229e+01
26 1.9982234080733210e+01 -7.8123940419804336e+00 -1.0520190172157513e+01
27 -1.0531819764937168e+01 -3.9207117548030453e+01 -5.1024512970804658e+01
28 3.9143073850182430e+00 2.3112509566228780e+00 -1.3939273469717621e+00
29 2.4603599138901966e+01 4.2571715320386566e+01 -2.2684445980646203e+01
... ...

View File

@ -1,82 +1,83 @@
--- ---
lammps_version: 17 Feb 2022 lammps_version: 27 Jun 2024
date_generated: Fri Mar 18 22:18:01 2022 tags: generated
date_generated: Fri Aug 2 23:56:34 2024
epsilon: 2e-14 epsilon: 2e-14
skip_tests: skip_tests:
prerequisites: ! | prerequisites: ! |
atom full atom full
fix wall/lj93 fix wall/lj93
pre_commands: ! | pre_commands: ! |
boundary p f p boundary f f f
post_commands: ! | post_commands: ! |
fix move all nve fix move all nve
fix test solute wall/lj93 ylo EDGE 100.0 2.0 5.0 yhi EDGE 100.0 2.0 5.0 fix test solute wall/lj93 xlo EDGE 10 1 9 xhi EDGE 20 2 8 ylo EDGE 30 3 7 yhi EDGE 40 4 6 zlo EDGE 50 9 1 zhi EDGE 60 8 2
fix_modify test virial yes fix_modify test virial yes
input_file: in.fourmol input_file: in.fourmol
natoms: 29 natoms: 29
run_stress: ! |2- run_stress: ! |-
0.0000000000000000e+00 -5.0602303343219951e+01 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 -2.0397146716028331e+01 -2.2856621254611628e+02 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
global_scalar: -4.108987997282236 global_scalar: -40.30685365068726
global_vector: ! |- global_vector: ! |-
2 0 -11.164431050504302 6 0.29980999393772645 -3.0501185308112175 10.543906177602482 -35.13125907303744 0 0
run_pos: ! |2 run_pos: ! |2
1 -2.7045470054680359e-01 2.4914748797509958e+00 -1.6696421170224640e-01 1 -2.7045514660423325e-01 2.4919366600449733e+00 -1.6697231639531507e-01
2 3.1002519717316468e-01 2.9626113274873114e+00 -8.5465020014164161e-01 2 3.1000084135335193e-01 2.9645912303343991e+00 -8.5463206395936475e-01
3 -7.0398162067377834e-01 1.2305605729036173e+00 -6.2777311164097793e-01 3 -7.0397943335818880e-01 1.2305810523260226e+00 -6.2776977494480968e-01
4 -1.5818159800097509e+00 1.4837403071563420e+00 -1.2538711657744748e+00 4 -1.5818284818588833e+00 1.4850714726761622e+00 -1.2538699508869366e+00
5 -9.0719738875553246e-01 9.2652132637432294e-01 3.9954221603268608e-01 5 -9.0720735536750730e-01 9.2652311870881010e-01 3.9954248474779297e-01
6 2.4831723728788374e-01 2.8313028009631025e-01 -1.2314233417272680e+00 6 2.4831612077180826e-01 2.8312998598620581e-01 -1.2314234208099035e+00
7 3.4143527622588610e-01 -2.2646550717066182e-02 -2.5292291415442443e+00 7 3.4143432145485658e-01 -2.2646550480708717e-02 -2.5292291412289485e+00
8 1.1743552225802836e+00 -4.8863228494885080e-01 -6.3783432950414043e-01 8 1.1743655769886039e+00 -4.8863573859247217e-01 -6.3783597964106820e-01
9 1.3800524229825968e+00 -2.5274721033806635e-01 2.8353985887329919e-01 9 1.3800803748715951e+00 -2.5274721986531667e-01 2.8353956705790218e-01
10 2.0510765220590312e+00 -1.4604063740279585e+00 -9.8323745081970004e-01 10 2.0510864147345527e+00 -1.4605128263713651e+00 -9.8323665039331498e-01
11 1.7878031944447623e+00 -1.9921863272956677e+00 -1.8890602447628950e+00 11 1.7878396739201072e+00 -1.9926579680652934e+00 -1.8890577068286438e+00
12 3.0063007039452563e+00 -4.9013350497696184e-01 -1.6231898107433360e+00 12 3.0063280485262682e+00 -4.9013506205958607e-01 -1.6231897745485795e+00
13 4.0515402959196631e+00 -8.9202011606671716e-01 -1.6400005529926165e+00 13 4.0517059148826196e+00 -8.9225492586105981e-01 -1.6400002853466527e+00
14 2.6066963345552767e+00 -4.1789253965578244e-01 -2.6634003608801833e+00 14 2.6067556451864973e+00 -4.1789236780812949e-01 -2.6634004714578920e+00
15 2.9695287185759982e+00 5.5422613165070589e-01 -1.2342022021804264e+00 15 2.9696053942689340e+00 5.5422609386529809e-01 -1.2342020619448599e+00
16 2.6747029695251561e+00 -2.4124119054596429e+00 -2.3435746150366733e-02 16 2.6747224655532205e+00 -2.4126238070421215e+00 -2.3433759666701557e-02
17 2.2153577785319198e+00 -2.0897985186960004e+00 1.1963150794498112e+00 17 2.2153701802770058e+00 -2.0899272946638008e+00 1.1963135022288505e+00
18 2.1369701704057920e+00 3.0158507413651594e+00 -3.5179348337167076e+00 18 2.1369701704036461e+00 3.0158507413784363e+00 -3.5179348337072978e+00
19 1.5355837136080241e+00 2.6255292355373734e+00 -4.2353987779868740e+00 19 1.5355837135394632e+00 2.6255292354749651e+00 -4.2353987771402171e+00
20 2.7727573003167976e+00 3.6923910440726924e+00 -3.9330842459576383e+00 20 2.7727573003740993e+00 3.6923910441184606e+00 -3.9330842453158126e+00
21 4.9040128073837339e+00 -4.0752348170758461e+00 -3.6210314709795299e+00 21 4.9040128073779838e+00 -4.0752348170721300e+00 -3.6210314709713383e+00
22 4.3582355554510048e+00 -4.2126119427061379e+00 -4.4612844196307497e+00 22 4.3582355554508565e+00 -4.2126119427059994e+00 -4.4612844196303154e+00
23 5.7439382849366911e+00 -3.5821957939240279e+00 -3.8766361295959513e+00 23 5.7439382849363732e+00 -3.5821957939239444e+00 -3.8766361295956120e+00
24 2.0689243582397667e+00 3.1513346907334592e+00 3.1550389754792341e+00 24 2.0689243582383923e+00 3.1513346907508031e+00 3.1550389751044130e+00
25 1.3045351331439887e+00 3.2665125705877287e+00 2.5111855257342670e+00 25 1.3045351331268087e+00 3.2665125705965665e+00 2.5111855257113618e+00
26 2.5809237402706717e+00 4.0117602605484128e+00 3.2212060529083963e+00 26 2.5809237402701828e+00 4.0117602605517018e+00 3.2212060528784647e+00
27 -1.9611343130358911e+00 -4.3563411931365605e+00 2.1098293115526028e+00 27 -1.9611343130326251e+00 -4.3563411931375260e+00 2.1098293115519637e+00
28 -2.7473562684515085e+00 -4.0200819932383203e+00 1.5830052163435302e+00 28 -2.7473562684514818e+00 -4.0200819932384704e+00 1.5830052163435808e+00
29 -1.3126000191360121e+00 -3.5962518039484110e+00 2.2746342468738372e+00 29 -1.3126000191358462e+00 -3.5962518039486921e+00 2.2746342468738376e+00
run_vel: ! |2 run_vel: ! |2
1 8.1727799799441551e-03 1.6773171346479498e-02 4.7791658662457619e-03 1 8.1742887450585739e-03 1.7228249520172705e-02 4.7636200154285678e-03
2 5.4195488166242462e-03 6.5417253116750503e-03 -1.4101336509904706e-03 2 5.3742131209134954e-03 8.5014084989938534e-03 -1.3734731162460402e-03
3 -8.2223992085164246e-03 -1.2908451784809975e-02 -4.0945960825392183e-03 3 -8.2161778164033632e-03 -1.2869362708201489e-02 -4.0888375199228388e-03
4 -3.7699737621353186e-03 -6.5732339099368641e-03 -1.1186165990462573e-03 4 -3.7787634477676642e-03 -5.2533470458882917e-03 -1.1161118587284771e-03
5 -1.1021432529769989e-02 -9.8900600342308066e-03 -2.8408577395243402e-03 5 -1.1032293389383448e-02 -9.8863340104885598e-03 -2.8403367946737107e-03
6 -3.9676605755577875e-02 4.6817208693894503e-02 3.7148485968758402e-02 6 -3.9677570612003256e-02 4.6816683666629423e-02 3.7148298982540365e-02
7 9.1033903828574569e-04 -1.0128523335196111e-02 -5.1568251845436980e-02 7 9.0938409416312202e-04 -1.0128522535253528e-02 -5.1568254916651068e-02
8 7.9064705135345748e-03 -3.3507235864772382e-03 3.4557097186682206e-02 8 7.9194167018994642e-03 -3.3569176675024141e-03 3.4554033379153554e-02
9 1.5644176974450778e-03 3.7365545213281916e-03 1.5047408817898655e-02 9 1.5923285603331428e-03 3.7365113011970019e-03 1.5046752270197748e-02
10 2.9201446823370270e-02 -2.9249578721348601e-02 -1.5018077430999392e-02 10 2.9208357286776593e-02 -2.9353993769823783e-02 -1.5016704917306721e-02
11 -4.7835961499775063e-03 -3.7481385151954837e-03 -2.3464104148495902e-03 11 -4.7465540645016645e-03 -4.2165276646841865e-03 -2.3412478153019894e-03
12 2.2696452071679614e-03 -3.4774155893559008e-04 -3.0640770423525257e-03 12 2.2980757077101510e-03 -3.5091405216452847e-04 -3.0640046931904290e-03
13 2.7531740460470166e-03 5.8171061608719103e-03 -7.9467454050767680e-04 13 2.9148511000306786e-03 5.5851722208680194e-03 -7.9412268026523897e-04
14 3.5246182390652257e-03 -5.7939995598917460e-03 -3.9478431188056783e-03 14 3.5836019249020573e-03 -5.7936540681715965e-03 -3.9480663628116922e-03
15 -1.8547943544027830e-03 -5.8554729976774897e-03 6.2938485111532208e-03 15 -1.7778657432845671e-03 -5.8555598171606280e-03 6.2941335584716009e-03
16 1.8681499978038456e-02 -1.3262466211006751e-02 -4.5638651456391420e-02 16 1.8700222665862708e-02 -1.3473926436394508e-02 -4.5635589324539552e-02
17 -1.2896269973838886e-02 9.7527665158999004e-03 3.7296535364672513e-02 17 -1.2883485803873765e-02 9.6240189248986089e-03 3.7294040194137568e-02
18 -8.0065796043573602e-04 -8.6270472784857216e-04 -1.4483040597982864e-03 18 -8.0065796511591945e-04 -8.6270470075116407e-04 -1.4483040404113881e-03
19 1.2452390821689194e-03 -2.5061097122815435e-03 7.2998631031035615e-03 19 1.2452390066448272e-03 -2.5061097760180838e-03 7.2998639311393438e-03
20 3.5930057864791303e-03 3.6938851570931927e-03 3.2322732168550625e-03 20 3.5930058446123790e-03 3.6938852063833996e-03 3.2322738498526673e-03
21 -1.4689219756961087e-03 -2.7352107824530806e-04 7.0581625180889649e-04 21 -1.4689219875639078e-03 -2.7352107061007723e-04 7.0581626870114592e-04
22 -7.0694199165145062e-03 -4.2577148692717554e-03 2.8079117911323321e-04 22 -7.0694199167938608e-03 -4.2577148689919644e-03 2.8079118009157448e-04
23 6.0446963236685256e-03 -1.4000131545098763e-03 2.5819754799379711e-03 23 6.0446963229432490e-03 -1.4000131543898697e-03 2.5819754806854374e-03
24 3.1926367400896563e-04 -9.9445663445895099e-04 1.4999996220927227e-04 24 3.1926367036916678e-04 -9.9445660295952466e-04 1.4999958504844645e-04
25 1.3789753472275083e-04 -4.4335894812290054e-03 -8.1808138555694750e-04 25 1.3789750016399599e-04 -4.4335894629157517e-03 -8.1808143179135507e-04
26 2.0485904026313513e-03 2.7813358637372391e-03 4.3245727137078242e-03 26 2.0485903999350758e-03 2.7813358672621209e-03 4.3245726820250576e-03
27 4.5604120258846295e-04 -1.0305523038990200e-03 2.1188058429346654e-04 27 4.5604120926159787e-04 -1.0305523058923018e-03 2.1188058299333266e-04
28 -6.2544520868040715e-03 1.4127711161841167e-03 -1.8429821879802923e-03 28 -6.2544520867115292e-03 1.4127711158545754e-03 -1.8429821878482673e-03
29 6.4110631528576680e-04 3.1273432717073592e-03 3.7253671106756733e-03 29 6.4110631563933543e-04 3.1273432711488012e-03 3.7253671106878979e-03
... ...

View File

@ -0,0 +1,78 @@
---
lammps_version: 17 Apr 2024
tags: generated
date_generated: Fri Jun 7 18:23:44 2024
epsilon: 4e-14
skip_tests:
prerequisites: ! |
atom full
fix nve
fix wall/reflect
pre_commands: ! |
boundary f f f
post_commands: ! |
fix move all nve
fix test solute wall/reflect xlo EDGE xhi EDGE ylo EDGE yhi EDGE zlo EDGE zhi EDGE units box
input_file: in.fourmol
natoms: 29
run_pos: ! |2
1 -2.7045559775384026e-01 2.4912159905679729e+00 -1.6695851791541885e-01
2 3.1004029573899528e-01 2.9612354631094391e+00 -8.5466363037021464e-01
3 -7.0398551400789466e-01 1.2305509955830618e+00 -6.2777526944456274e-01
4 -1.5818159336499285e+00 1.4837407818929933e+00 -1.2538710836062004e+00
5 -9.0719763672789266e-01 9.2652103885675297e-01 3.9954210488374786e-01
6 2.4831720524855988e-01 2.8313021497871271e-01 -1.2314233331711453e+00
7 3.4143527641386412e-01 -2.2646551041391422e-02 -2.5292291414903052e+00
8 1.1743552229100009e+00 -4.8863228565853944e-01 -6.3783432910825522e-01
9 1.3800524229500313e+00 -2.5274721030406683e-01 2.8353985887095157e-01
10 2.0510765220543883e+00 -1.4604063740302866e+00 -9.8323745081712954e-01
11 1.7878031944442556e+00 -1.9921863272948861e+00 -1.8890602447625777e+00
12 3.0063007039340053e+00 -4.9013350496963298e-01 -1.6231898107386231e+00
13 4.0515402959192999e+00 -8.9202011606653986e-01 -1.6400005529924957e+00
14 2.6066963345543819e+00 -4.1789253965514156e-01 -2.6634003608794394e+00
15 2.9695287185712913e+00 5.5422613165234036e-01 -1.2342022021790127e+00
16 2.6747029695228521e+00 -2.4124119054564295e+00 -2.3435746150616152e-02
17 2.2153577785283796e+00 -2.0897985186907717e+00 1.1963150794479436e+00
18 2.1369701704094664e+00 3.0158507413593139e+00 -3.5179348337135590e+00
19 1.5355837135395243e+00 2.6255292354730009e+00 -4.2353987771401354e+00
20 2.7727573003748263e+00 3.6923910441179069e+00 -3.9330842453167185e+00
21 4.9040128073837339e+00 -4.0752348170758461e+00 -3.6210314709795299e+00
22 4.3582355554510048e+00 -4.2126119427061379e+00 -4.4612844196307497e+00
23 5.7439382849366911e+00 -3.5821957939240279e+00 -3.8766361295959513e+00
24 2.0689243582454213e+00 3.1513346907303501e+00 3.1550389751128463e+00
25 1.3045351331414130e+00 3.2665125705869009e+00 2.5111855257365274e+00
26 2.5809237402714267e+00 4.0117602605512728e+00 3.2212060528800821e+00
27 -1.9611343130357228e+00 -4.3563411931359752e+00 2.1098293115523705e+00
28 -2.7473562684513411e+00 -4.0200819932379330e+00 1.5830052163433954e+00
29 -1.3126000191359855e+00 -3.5962518039482929e+00 2.2746342468737835e+00
run_vel: ! |2
1 8.1705744183262832e-03 1.6516406176274298e-02 4.7902264318913203e-03
2 5.4501493445687828e-03 5.1791699408496447e-03 -1.4372931530376549e-03
3 -8.2298292722385574e-03 -1.2926551614621364e-02 -4.0984181178163699e-03
4 -3.7699042590093523e-03 -6.5722892098813894e-03 -1.1184640360133299e-03
5 -1.1021961004346582e-02 -9.8906780939336091e-03 -2.8410737829284408e-03
6 -3.9676663166400027e-02 4.6817061464710263e-02 3.7148491979476131e-02
7 9.1033953013898742e-04 -1.0128524411938794e-02 -5.1568251805019748e-02
8 7.9064712058855742e-03 -3.3507254552631576e-03 3.4557098492564650e-02
9 1.5644176117320932e-03 3.7365546102722212e-03 1.5047408822037651e-02
10 2.9201446820573192e-02 -2.9249578745486147e-02 -1.5018077424322544e-02
11 -4.7835961513517542e-03 -3.7481385134185202e-03 -2.3464104142290089e-03
12 2.2696451841920694e-03 -3.4774154398129690e-04 -3.0640770327796979e-03
13 2.7531740451953164e-03 5.8171061612840493e-03 -7.9467454022160377e-04
14 3.5246182371994183e-03 -5.7939995585585503e-03 -3.9478431172751344e-03
15 -1.8547943640122972e-03 -5.8554729942777778e-03 6.2938485140538692e-03
16 1.8681499973445252e-02 -1.3262466204585332e-02 -4.5638651457003250e-02
17 -1.2896269981100378e-02 9.7527665265956451e-03 3.7296535360836762e-02
18 -8.0065795274987550e-04 -8.6270473974390605e-04 -1.4483040536385806e-03
19 1.2452390067376805e-03 -2.5061097800836356e-03 7.2998639311871892e-03
20 3.5930058460518109e-03 3.6938852051849871e-03 3.2322738480194770e-03
21 -1.4689219756961604e-03 -2.7352107824530231e-04 7.0581625180892046e-04
22 -7.0694199165145140e-03 -4.2577148692717554e-03 2.8079117911323815e-04
23 6.0446963236685256e-03 -1.4000131545098772e-03 2.5819754799379755e-03
24 3.1926368451268056e-04 -9.9445664487428712e-04 1.4999960207062358e-04
25 1.3789752933078488e-04 -4.4335894831520773e-03 -8.1808138106080109e-04
26 2.0485904023410002e-03 2.7813358660936120e-03 4.3245726853349290e-03
27 4.5604120293369819e-04 -1.0305523026921102e-03 2.1188058381358391e-04
28 -6.2544520861855151e-03 1.4127711176146864e-03 -1.8429821884794260e-03
29 6.4110631534402261e-04 3.1273432719593807e-03 3.7253671105656745e-03
...

View File

@ -126,11 +126,11 @@ TEST(FmtLib, insert_neg_double)
TEST(FmtLib, int_for_double) TEST(FmtLib, int_for_double)
{ {
const double val = -1.5; const double val = -1.5;
ASSERT_THROW(fmt::format("word {:d}", val), std::exception); ASSERT_THROW(auto text = fmt::format("word {:d}", val), std::exception);
} }
TEST(FmtLib, double_for_int) TEST(FmtLib, double_for_int)
{ {
const int val = 15; const int val = 15;
ASSERT_THROW(fmt::format("word {:g}", val), std::exception); ASSERT_THROW(auto text = fmt::format("word {:g}", val), std::exception);
} }