diff --git a/src/compute.cpp b/src/compute.cpp index dcad4954fc..2bd1544fd7 100644 --- a/src/compute.cpp +++ b/src/compute.cpp @@ -74,6 +74,7 @@ Compute::Compute(LAMMPS *lmp, int narg, char **arg) : dynamic = 0; dynamic_group_allow = 1; + initialized_flag = 0; invoked_scalar = invoked_vector = invoked_array = -1; invoked_peratom = invoked_local = -1; invoked_flag = INVOKED_NONE; @@ -111,6 +112,15 @@ Compute::~Compute() /* ---------------------------------------------------------------------- */ +void Compute::init_flags() +{ + initialized_flag = 1; + invoked_scalar = invoked_vector = invoked_array = -1; + invoked_peratom = invoked_local = -1; +} + +/* ---------------------------------------------------------------------- */ + void Compute::modify_params(int narg, char **arg) { if (narg == 0) error->all(FLERR,"Illegal compute_modify command"); diff --git a/src/compute.h b/src/compute.h index 72b0075fd6..8ae01a4469 100644 --- a/src/compute.h +++ b/src/compute.h @@ -62,7 +62,7 @@ class Compute : protected Pointers { int size_local_rows; // rows in local vector or array int size_local_cols; // 0 = vector, N = columns in local array - int pergrid_flag; // 0/1 if compute_pergrid() function exists + int pergrid_flag; // 0/1 if compute_pergrid() function exists int extscalar; // 0/1 if global scalar is intensive/extensive int extvector; // 0/1/-1 if global vector is all int/ext/extlist @@ -88,6 +88,7 @@ class Compute : protected Pointers { int maxtime; // max # of entries time list can hold bigint *tlist; // list of timesteps the Compute is called on + int initialized_flag; // 1 if compute is initialized, 0 if not int invoked_flag; // non-zero if invoked or accessed this step, 0 if not bigint invoked_scalar; // last timestep on which compute_scalar() was invoked bigint invoked_vector; // ditto for compute_vector() @@ -114,6 +115,7 @@ class Compute : protected Pointers { void modify_params(int, char **); virtual void reset_extra_dof(); + void init_flags(); virtual void init() = 0; virtual void init_list(int, class NeighList *) {} virtual void setup() {} @@ -161,6 +163,8 @@ class Compute : protected Pointers { int matchstep(bigint); void clearstep(); + bool is_initialized() const { return initialized_flag == 1; } + virtual double memory_usage() { return 0.0; } virtual void pair_setup_callback(int, int) {}