From 9c75205cb85067c33629b27e49eed17786bb0e3d Mon Sep 17 00:00:00 2001 From: athomps Date: Wed, 12 Dec 2012 22:48:57 +0000 Subject: [PATCH] Extended safezone and mincap to fix qeq_reax git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@9157 f3b2605a-c512-4ea7-a41b-209d697bcdaa --- src/USER-REAXC/fix_qeq_reax.cpp | 12 ++++++++---- src/USER-REAXC/fix_qeq_reax.h | 1 + 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/USER-REAXC/fix_qeq_reax.cpp b/src/USER-REAXC/fix_qeq_reax.cpp index 18fba083db..889c961bc7 100644 --- a/src/USER-REAXC/fix_qeq_reax.cpp +++ b/src/USER-REAXC/fix_qeq_reax.cpp @@ -26,6 +26,7 @@ #include "stdlib.h" #include "string.h" #include "fix_qeq_reax.h" +#include "pair_reax_c.h" #include "atom.h" #include "comm.h" #include "domain.h" @@ -43,12 +44,10 @@ using namespace LAMMPS_NS; using namespace FixConst; #define EV_TO_KCAL_PER_MOL 14.4 -#define SAFE_ZONE 1.2 #define DANGER_ZONE 0.95 #define LOOSE_ZONE 0.7 #define SQR(x) ((x)*(x)) #define CUBE(x) ((x)*(x)*(x)) -#define MIN_CAP 50 #define MIN_NBRS 100 /* ---------------------------------------------------------------------- */ @@ -104,6 +103,9 @@ FixQEqReax::FixQEqReax(LAMMPS *lmp, int narg, char **arg) : for( int i = 0; i < atom->nmax; i++ ) for (int j = 0; j < nprev; ++j ) s_hist[i][j] = t_hist[i][j] = 0; + + reaxc = NULL; + reaxc = (PairReaxC *) force->pair_match("reax/c",1); } /* ---------------------------------------------------------------------- */ @@ -243,9 +245,11 @@ void FixQEqReax::reallocate_storage() void FixQEqReax::allocate_matrix() { int i,ii; + int mincap = reaxc->system->mincap; + double safezone = reaxc->system->safezone; n = atom->nlocal; - n_cap = MAX( (int)(n * SAFE_ZONE), MIN_CAP ); + n_cap = MAX( (int)(n * safezone), mincap ); // determine the total space for the H matrix @@ -254,7 +258,7 @@ void FixQEqReax::allocate_matrix() i = list->ilist[ii]; m += list->numneigh[i]; } - m_cap = MAX( (int)(m * SAFE_ZONE), MIN_CAP * MIN_NBRS ); + m_cap = MAX( (int)(m * safezone), mincap * MIN_NBRS ); H.n = n_cap; H.m = m_cap; diff --git a/src/USER-REAXC/fix_qeq_reax.h b/src/USER-REAXC/fix_qeq_reax.h index b6f55976e3..a9412b2f61 100644 --- a/src/USER-REAXC/fix_qeq_reax.h +++ b/src/USER-REAXC/fix_qeq_reax.h @@ -61,6 +61,7 @@ class FixQEqReax : public Fix { int pack_flag; int nlevels_respa; class NeighList *list; + class PairReaxC *reaxc; double swa, swb; // lower/upper Taper cutoff radius double Tap[8]; // Taper function