diff --git a/src/USER-MANIFOLD/fix_manifoldforce.cpp b/src/USER-MANIFOLD/fix_manifoldforce.cpp index 2fac8e40df5756decae59dbc195b04a957496aec..e66b7c9fc2ac34bf80e197461b8ea9314c7320c4 100644 --- a/src/USER-MANIFOLD/fix_manifoldforce.cpp +++ b/src/USER-MANIFOLD/fix_manifoldforce.cpp @@ -84,8 +84,8 @@ FixManifoldForce::FixManifoldForce(LAMMPS *lmp, int narg, char **arg) : error->all(FLERR,msg); } - *(ptr_m->get_params()) = new double[nvars]; - if( ptr_m->get_params() == NULL ){ + ptr_m->params = new double[nvars]; + if( ptr_m->params == NULL ){ error->all(FLERR,"Parameter pointer was NULL!"); } @@ -94,7 +94,7 @@ FixManifoldForce::FixManifoldForce(LAMMPS *lmp, int narg, char **arg) : // and sets the values of those arguments that were _not_ // equal style vars (so that they are not overwritten each time step). - double *params = *(ptr_m->get_params()); + double *params = ptr_m->params; for( int i = 0; i < nvars; ++i ){ if( was_var( arg[i+4] ) ) error->all(FLERR,"Equal-style variables not allowed with fix manifoldforce"); diff --git a/src/USER-MANIFOLD/fix_nve_manifold_rattle.cpp b/src/USER-MANIFOLD/fix_nve_manifold_rattle.cpp index e27762a7d590cb45b6302501abc0835272308879..e28852174fa952222c4169c594b07dfa5c4afb08 100644 --- a/src/USER-MANIFOLD/fix_nve_manifold_rattle.cpp +++ b/src/USER-MANIFOLD/fix_nve_manifold_rattle.cpp @@ -110,6 +110,9 @@ FixNVEManifoldRattle::FixNVEManifoldRattle( LAMMPS *lmp, int &narg, char **arg, tstyle = new int[nvars]; is_var = new int[nvars]; + fprintf(screen,"Succesfully created a manifold of type %s with %d params.\n", + ptr_m->id(), nvars); + if( !tstrs || !tvars || !tstyle || !is_var ){ error->all(FLERR, "Error creating manifold arg arrays"); } @@ -118,6 +121,7 @@ FixNVEManifoldRattle::FixNVEManifoldRattle( LAMMPS *lmp, int &narg, char **arg, for( int i = 0; i < nvars; ++i ){ int len = 0, offset = 0; if( was_var( arg[i+6] ) ){ + fprintf(screen,"arg %d (%s) was var\n",i+6, arg[i+6]); len = strlen(arg[i+6]) - 1; // -1 because -2 for v_, +1 for \0. is_var[i] = 1; offset = 2; @@ -131,12 +135,13 @@ FixNVEManifoldRattle::FixNVEManifoldRattle( LAMMPS *lmp, int &narg, char **arg, strcpy( tstrs[i], arg[i+6] + offset ); } - *ptr_m->get_params() = new double[nvars]; - if( !(*ptr_m->get_params()) ) error->all(FLERR,"Failed to allocate params!"); + ptr_m->params = new double[nvars]; + if( !ptr_m->params ) error->all(FLERR,"Failed to allocate params!"); for( int i = 0; i < nvars; ++i ){ // If param i was variable type, it will be set later... - (*ptr_m->get_params())[i] = is_var[i] ? 0.0 : force->numeric( FLERR, arg[i+6] ); + ptr_m->params[i] = is_var[i] ? 0.0 : force->numeric( FLERR, arg[i+6] ); } + fprintf(screen,"Calling post_param_init().\n"); ptr_m->post_param_init(); @@ -262,6 +267,8 @@ void FixNVEManifoldRattle::init() void FixNVEManifoldRattle::update_var_params() { + fprintf(screen,"In update_var_params().\n"); + if( nevery > 0 ){ stats.x_iters = 0; stats.v_iters = 0; @@ -270,9 +277,12 @@ void FixNVEManifoldRattle::update_var_params() stats.v_iters_per_atom = 0.0; } - double **ptr_params = ptr_m->get_params(); + double *ptr_params = ptr_m->params; + fprintf(screen,"Setting values of params.\n"); + for( int i = 0; i < nvars; ++i ){ if( is_var[i] ){ + fprintf(screen,"%d was a var.\n", i); tvars[i] = input->variable->find(tstrs[i]); if( tvars[i] < 0 ){ error->all(FLERR, @@ -281,8 +291,9 @@ void FixNVEManifoldRattle::update_var_params() if( input->variable->equalstyle(tvars[i]) ){ tstyle[i] = EQUAL; double new_val = input->variable->compute_equal(tvars[i]); - // fprintf( stdout, "New value of var %d is now %f\n", i+1, new_val ); - *(ptr_params[i]) = new_val; + fprintf( stdout, "New value of var %d is now %f\n", i+1, new_val ); + + ptr_params[i] = new_val; }else{ error->all(FLERR, "Variable for fix nve/manifold/rattle is invalid style"); diff --git a/src/USER-MANIFOLD/manifold.h b/src/USER-MANIFOLD/manifold.h index 85692a8b6b8cd0110941877fd4e6405ed855f143..d0ffa214ac4b0bd11fa6334f534c0d4c71377a50 100644 --- a/src/USER-MANIFOLD/manifold.h +++ b/src/USER-MANIFOLD/manifold.h @@ -63,12 +63,12 @@ namespace user_manifold { virtual void set_atom_id( tagint a_id ){} virtual int nparams() = 0; - double **get_params(){ return ¶ms; }; + // double *get_params(){ return params; }; // Overload if any initialization depends on params: virtual void post_param_init(){} virtual void checkup(){} // Some diagnostics... - protected: + double *params; };