diff --git a/doc/Manual.txt b/doc/Manual.txt index 2b2ebfae73..b8fa72bd4f 100644 --- a/doc/Manual.txt +++ b/doc/Manual.txt @@ -85,7 +85,7 @@ it gives quick access to documentation for all LAMMPS commands. .. toctree:: :maxdepth: 2 - :numbered: + :numbered: // comment Section_intro Section_start @@ -105,8 +105,8 @@ it gives quick access to documentation for all LAMMPS commands. Indices and tables ================== -* :ref:`genindex` -* :ref:`search` +* :ref:`genindex` // comment +* :ref:`search` // comment END_RST --> diff --git a/doc/prd.txt b/doc/prd.txt index 9f601fc884..b4f5184e1d 100644 --- a/doc/prd.txt +++ b/doc/prd.txt @@ -31,8 +31,8 @@ keyword = {min} or {temp} or {vel} :l {vel} values = loop dist loop = {all} or {local} or {geom}, used in dephasing dist = {uniform} or {gaussian}, used in dephasing - {time} value = {step} or {clock} - {step} = simulation runs for N timesteps on each replica (default) + {time} value = {steps} or {clock} + {steps} = simulation runs for N timesteps on each replica (default) {clock} = simulation runs for N timesteps across all replicas :pre :ule @@ -158,7 +158,7 @@ dynamics have been performed. Note that {N} only includes the dynamics of stages 2 and 3, not the steps taken during dephasing or the minimization iterations of quenching. The specified {N} is interpreted in one of two ways, depending on the {time} keyword. If -the {time} value is {step}, which is the default, then each replica +the {time} value is {steps}, which is the default, then each replica runs for {N} timesteps. If the {time} value is {clock}, then the simulation runs until {N} aggregate timesteps across all replicas have elapsed. This aggregate time is the "clock" time defined below, which @@ -310,7 +310,7 @@ dt/reset"_fix_dt_reset.html and "fix deposit"_fix_deposit.html. [Default:] The option defaults are min = 0.1 0.1 40 50, no temp setting, vel = -geom gaussian, and time = step. +geom gaussian, and time = steps. :line diff --git a/lib/README b/lib/README index 508de508e8..a7a41f00f2 100644 --- a/lib/README +++ b/lib/README @@ -45,7 +45,7 @@ quip interface to QUIP/libAtoms framework, USER-QUIP package from Albert Bartok-Partay and Gabor Csanyi (U Cambridge) reax ReaxFF potential, REAX package from Adri van Duin (Penn State) and Aidan Thompson (Sandia) -quip interface to QUIP/libAtoms framework, USER-QUIP package - from Albert Bartok-Partay and Gabor Csanyi (U Cambridge) +smd hooks to Eigen library, used by USER-SMD package + from Georg Ganzenmueller (Ernst Mach Institute, Germany) voronoi hooks to the Voro++ library, used by compute voronoi/atom command from Daniel Schwen (LANL) diff --git a/src/Makefile b/src/Makefile index 88b7b09b7f..8136f36ad5 100755 --- a/src/Makefile +++ b/src/Makefile @@ -48,7 +48,7 @@ PACKAGE = asphere body class2 colloid coreshell dipole fld gpu granular kim \ PACKUSER = user-atc user-awpmd user-cg-cmm user-colvars user-cuda \ user-diffraction user-drude user-eff user-fep user-intel user-lb \ user-misc user-molfile user-omp user-phonon user-qmmm user-qtb \ - user-quip user-reaxc user-sph + user-quip user-reaxc user-smd user-sph PACKLIB = gpu kim kokkos meam poems python reax voronoi \ user-atc user-awpmd user-colvars user-cuda user-molfile \ diff --git a/src/atom.cpp b/src/atom.cpp index b2abc07511..eac098d953 100644 --- a/src/atom.cpp +++ b/src/atom.cpp @@ -94,6 +94,17 @@ Atom::Atom(LAMMPS *lmp) : Pointers(lmp) rho = drho = e = de = cv = NULL; vest = NULL; + // USER-SMD + + contact_radius = NULL; + smd_data_9 = NULL; + smd_stress = NULL; + eff_plastic_strain = NULL; + eff_plastic_strain_rate = NULL; + damage = NULL; + + // molecular info + bond_per_atom = extra_bond_per_atom = 0; num_bond = NULL; bond_type = NULL; @@ -148,6 +159,17 @@ Atom::Atom(LAMMPS *lmp) : Pointers(lmp) rho_flag = e_flag = cv_flag = vest_flag = 0; + // USER-SMD + + smd_flag = 0; + contact_radius_flag = 0; + smd_data_9_flag = 0; + smd_stress_flag = 0; + x0_flag = 0; + eff_plastic_strain_flag = 0; + eff_plastic_strain_rate_flag = 0; + damage_flag = 0; + // Peridynamic scale factor pdscale = 1.0; @@ -245,6 +267,13 @@ Atom::~Atom() memory->destroy(cv); memory->destroy(vest); + memory->destroy(contact_radius); + memory->destroy(smd_data_9); + memory->destroy(smd_stress); + memory->destroy(eff_plastic_strain); + memory->destroy(eff_plastic_strain_rate); + memory->destroy(damage); + memory->destroy(nspecial); memory->destroy(special); @@ -2010,6 +2039,15 @@ void *Atom::extract(char *name) if (strcmp(name,"cv") == 0) return (void *) cv; if (strcmp(name,"vest") == 0) return (void *) vest; + if (strcmp(name, "contact_radius") == 0) return (void *) contact_radius; + if (strcmp(name, "smd_data_9") == 0) return (void *) smd_data_9; + if (strcmp(name, "smd_stress") == 0) return (void *) smd_stress; + if (strcmp(name, "eff_plastic_strain") == 0) + return (void *) eff_plastic_strain; + if (strcmp(name, "eff_plastic_strain_rate") == 0) + return (void *) eff_plastic_strain_rate; + if (strcmp(name, "damage") == 0) return (void *) damage; + return NULL; } diff --git a/src/atom.h b/src/atom.h index afd07b1bd2..1583dada7e 100644 --- a/src/atom.h +++ b/src/atom.h @@ -76,6 +76,17 @@ class Atom : protected Pointers { double *rho,*drho,*e,*de,*cv; double **vest; + // USER-SMD package + + double *contact_radius; + double **smd_data_9; + double **smd_stress; + double *eff_plastic_strain; + double *eff_plastic_strain_rate; + double *damage; + + // molecular info + int **nspecial; // 0,1,2 = cummulative # of 1-2,1-3,1-4 neighs tagint **special; // IDs of 1-2,1-3,1-4 neighs of each atom int maxspecial; // special[nlocal][maxspecial] @@ -123,6 +134,17 @@ class Atom : protected Pointers { int cs_flag,csforce_flag,vforce_flag,ervelforce_flag,etag_flag; int rho_flag,e_flag,cv_flag,vest_flag; + // USER-SMD package + + int smd_flag; + int contact_radius_flag; + int smd_data_9_flag; + int smd_stress_flag; + int x0_flag; + int eff_plastic_strain_flag; + int eff_plastic_strain_rate_flag; + int damage_flag; + // Peridynamics scale factor, used by dump cfg double pdscale;