forked from lijiext/lammps
use fmtlib and utils::logmesg() in fix msst
This commit is contained in:
parent
a0157f8063
commit
134a2e8dd6
|
@ -1,4 +1,4 @@
|
|||
LAMMPS (27 Nov 2018)
|
||||
LAMMPS (30 Jun 2020)
|
||||
using 1 OpenMP thread(s) per MPI task
|
||||
# LJ test of msst shock dynamics
|
||||
|
||||
|
@ -21,7 +21,7 @@ Created orthogonal box = (0 0 0) to (96.4602 96.4602 96.4602)
|
|||
1 by 1 by 1 MPI processor grid
|
||||
create_atoms 1 region box1
|
||||
Created 23328 atoms
|
||||
Time spent = 0.00902033 secs
|
||||
create_atoms CPU = 0.007 seconds
|
||||
|
||||
mass 1 40.00
|
||||
|
||||
|
@ -50,7 +50,7 @@ Neighbor list info ...
|
|||
pair build: half/bin/atomonly/newton
|
||||
stencil: half/bin/3d/newton
|
||||
bin: standard
|
||||
Per MPI rank memory allocation (min/avg/max) = 17.86 | 17.86 | 17.86 Mbytes
|
||||
Per MPI rank memory allocation (min/avg/max) = 17.85 | 17.85 | 17.85 Mbytes
|
||||
Step Temp E_pair E_mol TotEng Press
|
||||
0 600 -1943.9014 0 -134.75058 992.06384
|
||||
10 586.44651 -1917.3971 0 -149.11346 1306.17
|
||||
|
@ -63,30 +63,30 @@ Step Temp E_pair E_mol TotEng Press
|
|||
80 300.28534 -1056.589 0 -151.15321 8324.8812
|
||||
90 305.83368 -1073.3097 0 -151.14426 8175.2478
|
||||
100 304.06857 -1067.9843 0 -151.14112 8191.234
|
||||
Loop time of 3.49498 on 1 procs for 100 steps with 23328 atoms
|
||||
Loop time of 3.62419 on 1 procs for 100 steps with 23328 atoms
|
||||
|
||||
Performance: 4.944 ns/day, 4.854 hours/ns, 28.612 timesteps/s
|
||||
Performance: 4.768 ns/day, 5.034 hours/ns, 27.592 timesteps/s
|
||||
99.9% CPU use with 1 MPI tasks x 1 OpenMP threads
|
||||
|
||||
MPI task timing breakdown:
|
||||
Section | min time | avg time | max time |%varavg| %total
|
||||
---------------------------------------------------------------
|
||||
Pair | 3.354 | 3.354 | 3.354 | 0.0 | 95.97
|
||||
Neigh | 0.074059 | 0.074059 | 0.074059 | 0.0 | 2.12
|
||||
Comm | 0.020118 | 0.020118 | 0.020118 | 0.0 | 0.58
|
||||
Output | 0.0010924 | 0.0010924 | 0.0010924 | 0.0 | 0.03
|
||||
Modify | 0.034063 | 0.034063 | 0.034063 | 0.0 | 0.97
|
||||
Other | | 0.01168 | | | 0.33
|
||||
Pair | 3.4606 | 3.4606 | 3.4606 | 0.0 | 95.49
|
||||
Neigh | 0.065469 | 0.065469 | 0.065469 | 0.0 | 1.81
|
||||
Comm | 0.030757 | 0.030757 | 0.030757 | 0.0 | 0.85
|
||||
Output | 0.0024359 | 0.0024359 | 0.0024359 | 0.0 | 0.07
|
||||
Modify | 0.049582 | 0.049582 | 0.049582 | 0.0 | 1.37
|
||||
Other | | 0.01537 | | | 0.42
|
||||
|
||||
Nlocal: 23328 ave 23328 max 23328 min
|
||||
Nlocal: 23328.0 ave 23328.0 max 23328.0 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Nghost: 22235 ave 22235 max 22235 min
|
||||
Nghost: 22235.0 ave 22235.0 max 22235.0 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Neighs: 2.18372e+06 ave 2.18372e+06 max 2.18372e+06 min
|
||||
Neighs: 2183715.0 ave 2183715.0 max 2183715.0 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
|
||||
Total # of neighbors = 2183715
|
||||
Ave neighs/atom = 93.6092
|
||||
Ave neighs/atom = 93.60918209876543
|
||||
Neighbor list builds = 1
|
||||
Dangerous builds = 0
|
||||
unfix 2
|
||||
|
@ -95,9 +95,9 @@ unfix 2
|
|||
fix msst all msst z 28.0 q 200 mu 3e2 tscale 0.01
|
||||
MSST parameters:
|
||||
Shock in z direction
|
||||
Cell mass-like parameter qmass (units of mass^2/length^4) = 2.00000e+02
|
||||
Shock velocity = 2.80000e+01
|
||||
Artificial viscosity (units of mass/length/time) = 3.00000e+02
|
||||
Cell mass-like parameter qmass (units of mass^2/length^4) = 200
|
||||
Shock velocity = 28
|
||||
Artificial viscosity (units of mass/length/time) = 300
|
||||
Initial pressure calculated on first step
|
||||
Initial volume calculated on first step
|
||||
Initial energy calculated on first step
|
||||
|
@ -121,11 +121,11 @@ thermo_style custom step temp ke pe lx ly lz pxx pyy pzz etotal v_dhug v_d
|
|||
#dump_modify 3 pad 3
|
||||
|
||||
run 100
|
||||
Fix MSST v0 = 8.97521e+05
|
||||
Fix MSST p0 = 8.10679e+03
|
||||
Fix MSST e0 = to be -1.51141e+02
|
||||
Fix MSST initial strain rate of -3.20112e-02 established by reducing temperature by factor of 1.00000e-02
|
||||
Per MPI rank memory allocation (min/avg/max) = 18.99 | 18.99 | 18.99 Mbytes
|
||||
Fix MSST v0 = 897520.7
|
||||
Fix MSST p0 = 8106.7886
|
||||
Fix MSST e0 = -151.14112
|
||||
Fix MSST initial strain rate of -0.032011238 established by reducing temperature by factor of 0.01
|
||||
Per MPI rank memory allocation (min/avg/max) = 18.98 | 18.98 | 18.98 Mbytes
|
||||
Step Temp KinEng PotEng Lx Ly Lz Pxx Pyy Pzz TotEng v_dhug v_dray v_lgr_vel v_lgr_pos f_msst
|
||||
100 301.02788 907.67474 -1058.8159 96.4602 96.4602 96.4602 8242.1214 8202.9779 8095.8693 -151.14112 1.5203428 -10.919311 0 0 9.1684318
|
||||
110 297.71411 897.68288 -1048.8859 96.4602 96.4602 96.399397 8347.6253 8303.7121 8220.7572 -151.20299 1.439058 28.652258 0.017649501 -0.55980494 5.7336721
|
||||
|
@ -138,30 +138,30 @@ Step Temp KinEng PotEng Lx Ly Lz Pxx Pyy Pzz TotEng v_dhug v_dray v_lgr_vel v_lg
|
|||
180 304.99 919.62151 -1071.3588 96.4602 96.4602 96.022824 8461.5542 8343.1436 8484.9824 -151.73733 0.99203387 -235.51793 0.12695926 -4.4693063 -15.685622
|
||||
190 305.1148 919.99782 -1071.7807 96.4602 96.4602 95.9748 8498.7562 8371.4217 8514.4473 -151.78288 0.93937416 -273.43964 0.1408996 -5.0266132 -18.403999
|
||||
200 306.45829 924.0488 -1075.8787 96.4602 96.4602 95.927931 8488.9509 8385.2408 8529.6443 -151.82991 0.88654815 -324.00777 0.15450451 -5.583645 -21.055149
|
||||
Loop time of 5.50267 on 1 procs for 100 steps with 23328 atoms
|
||||
Loop time of 7.9807 on 1 procs for 100 steps with 23328 atoms
|
||||
|
||||
Performance: 3.140 ns/day, 7.643 hours/ns, 18.173 timesteps/s
|
||||
Performance: 2.165 ns/day, 11.084 hours/ns, 12.530 timesteps/s
|
||||
99.9% CPU use with 1 MPI tasks x 1 OpenMP threads
|
||||
|
||||
MPI task timing breakdown:
|
||||
Section | min time | avg time | max time |%varavg| %total
|
||||
---------------------------------------------------------------
|
||||
Pair | 4.7512 | 4.7512 | 4.7512 | 0.0 | 86.34
|
||||
Neigh | 0.14916 | 0.14916 | 0.14916 | 0.0 | 2.71
|
||||
Comm | 0.020737 | 0.020737 | 0.020737 | 0.0 | 0.38
|
||||
Output | 0.010999 | 0.010999 | 0.010999 | 0.0 | 0.20
|
||||
Modify | 0.55965 | 0.55965 | 0.55965 | 0.0 | 10.17
|
||||
Other | | 0.01089 | | | 0.20
|
||||
Pair | 6.8295 | 6.8295 | 6.8295 | 0.0 | 85.58
|
||||
Neigh | 0.13211 | 0.13211 | 0.13211 | 0.0 | 1.66
|
||||
Comm | 0.032946 | 0.032946 | 0.032946 | 0.0 | 0.41
|
||||
Output | 0.02301 | 0.02301 | 0.02301 | 0.0 | 0.29
|
||||
Modify | 0.94857 | 0.94857 | 0.94857 | 0.0 | 11.89
|
||||
Other | | 0.01452 | | | 0.18
|
||||
|
||||
Nlocal: 23328 ave 23328 max 23328 min
|
||||
Nlocal: 23328.0 ave 23328.0 max 23328.0 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Nghost: 22205 ave 22205 max 22205 min
|
||||
Nghost: 22205.0 ave 22205.0 max 22205.0 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Neighs: 2.18349e+06 ave 2.18349e+06 max 2.18349e+06 min
|
||||
Neighs: 2183494.0 ave 2183494.0 max 2183494.0 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
|
||||
Total # of neighbors = 2183494
|
||||
Ave neighs/atom = 93.5997
|
||||
Ave neighs/atom = 93.5997085048011
|
||||
Neighbor list builds = 2
|
||||
Dangerous builds = 0
|
||||
Total wall time: 0:00:09
|
||||
Total wall time: 0:00:11
|
|
@ -1,4 +1,4 @@
|
|||
LAMMPS (27 Nov 2018)
|
||||
LAMMPS (30 Jun 2020)
|
||||
using 1 OpenMP thread(s) per MPI task
|
||||
# LJ test of msst shock dynamics
|
||||
|
||||
|
@ -21,7 +21,7 @@ Created orthogonal box = (0 0 0) to (96.4602 96.4602 96.4602)
|
|||
1 by 2 by 2 MPI processor grid
|
||||
create_atoms 1 region box1
|
||||
Created 23328 atoms
|
||||
Time spent = 0.00104165 secs
|
||||
create_atoms CPU = 0.003 seconds
|
||||
|
||||
mass 1 40.00
|
||||
|
||||
|
@ -50,7 +50,7 @@ Neighbor list info ...
|
|||
pair build: half/bin/atomonly/newton
|
||||
stencil: half/bin/3d/newton
|
||||
bin: standard
|
||||
Per MPI rank memory allocation (min/avg/max) = 7.784 | 7.784 | 7.784 Mbytes
|
||||
Per MPI rank memory allocation (min/avg/max) = 7.785 | 7.785 | 7.785 Mbytes
|
||||
Step Temp E_pair E_mol TotEng Press
|
||||
0 600 -1943.9014 0 -134.75058 992.06384
|
||||
10 586.47212 -1917.4465 0 -149.08565 1305.7368
|
||||
|
@ -63,30 +63,30 @@ Step Temp E_pair E_mol TotEng Press
|
|||
80 299.37658 -1053.8476 0 -151.1519 8352.9467
|
||||
90 304.24026 -1068.4941 0 -151.13319 8218.1594
|
||||
100 301.9683 -1061.6332 0 -151.12284 8244.1277
|
||||
Loop time of 0.978562 on 4 procs for 100 steps with 23328 atoms
|
||||
Loop time of 0.995305 on 4 procs for 100 steps with 23328 atoms
|
||||
|
||||
Performance: 17.659 ns/day, 1.359 hours/ns, 102.191 timesteps/s
|
||||
97.8% CPU use with 4 MPI tasks x 1 OpenMP threads
|
||||
Performance: 17.362 ns/day, 1.382 hours/ns, 100.472 timesteps/s
|
||||
98.2% CPU use with 4 MPI tasks x 1 OpenMP threads
|
||||
|
||||
MPI task timing breakdown:
|
||||
Section | min time | avg time | max time |%varavg| %total
|
||||
---------------------------------------------------------------
|
||||
Pair | 0.86406 | 0.88129 | 0.89922 | 1.4 | 90.06
|
||||
Neigh | 0.019231 | 0.019453 | 0.019816 | 0.2 | 1.99
|
||||
Comm | 0.043947 | 0.06197 | 0.079005 | 5.1 | 6.33
|
||||
Output | 0.00057197 | 0.00082499 | 0.0015628 | 0.0 | 0.08
|
||||
Modify | 0.0091414 | 0.0092927 | 0.0094769 | 0.1 | 0.95
|
||||
Other | | 0.005727 | | | 0.59
|
||||
Pair | 0.88957 | 0.90144 | 0.91686 | 1.1 | 90.57
|
||||
Neigh | 0.016824 | 0.016945 | 0.017106 | 0.1 | 1.70
|
||||
Comm | 0.039949 | 0.054853 | 0.068734 | 4.8 | 5.51
|
||||
Output | 0.00076342 | 0.0010425 | 0.0018687 | 1.5 | 0.10
|
||||
Modify | 0.012839 | 0.012946 | 0.013153 | 0.1 | 1.30
|
||||
Other | | 0.008074 | | | 0.81
|
||||
|
||||
Nlocal: 5832 ave 5850 max 5813 min
|
||||
Nlocal: 5832.0 ave 5850.0 max 5813.0 min
|
||||
Histogram: 1 0 0 0 1 1 0 0 0 1
|
||||
Nghost: 10571 ave 10590 max 10553 min
|
||||
Nghost: 10571.0 ave 10590.0 max 10553.0 min
|
||||
Histogram: 1 0 0 0 1 1 0 0 0 1
|
||||
Neighs: 545762 ave 548069 max 543643 min
|
||||
Neighs: 545761.75 ave 548069.0 max 543643.0 min
|
||||
Histogram: 1 0 0 1 0 1 0 0 0 1
|
||||
|
||||
Total # of neighbors = 2183047
|
||||
Ave neighs/atom = 93.5805
|
||||
Ave neighs/atom = 93.58054698216735
|
||||
Neighbor list builds = 1
|
||||
Dangerous builds = 0
|
||||
unfix 2
|
||||
|
@ -95,9 +95,9 @@ unfix 2
|
|||
fix msst all msst z 28.0 q 200 mu 3e2 tscale 0.01
|
||||
MSST parameters:
|
||||
Shock in z direction
|
||||
Cell mass-like parameter qmass (units of mass^2/length^4) = 2.00000e+02
|
||||
Shock velocity = 2.80000e+01
|
||||
Artificial viscosity (units of mass/length/time) = 3.00000e+02
|
||||
Cell mass-like parameter qmass (units of mass^2/length^4) = 200
|
||||
Shock velocity = 28
|
||||
Artificial viscosity (units of mass/length/time) = 300
|
||||
Initial pressure calculated on first step
|
||||
Initial volume calculated on first step
|
||||
Initial energy calculated on first step
|
||||
|
@ -121,11 +121,11 @@ thermo_style custom step temp ke pe lx ly lz pxx pyy pzz etotal v_dhug v_d
|
|||
#dump_modify 3 pad 3
|
||||
|
||||
run 100
|
||||
Fix MSST v0 = 8.97521e+05
|
||||
Fix MSST p0 = 8.18624e+03
|
||||
Fix MSST e0 = to be -1.51123e+02
|
||||
Fix MSST initial strain rate of -3.19005e-02 established by reducing temperature by factor of 1.00000e-02
|
||||
Per MPI rank memory allocation (min/avg/max) = 8.534 | 8.534 | 8.534 Mbytes
|
||||
Fix MSST v0 = 897520.7
|
||||
Fix MSST p0 = 8186.2393
|
||||
Fix MSST e0 = -151.12284
|
||||
Fix MSST initial strain rate of -0.031900492 established by reducing temperature by factor of 0.01
|
||||
Per MPI rank memory allocation (min/avg/max) = 8.535 | 8.535 | 8.535 Mbytes
|
||||
Step Temp KinEng PotEng Lx Ly Lz Pxx Pyy Pzz TotEng v_dhug v_dray v_lgr_vel v_lgr_pos f_msst
|
||||
100 298.94862 901.40524 -1052.5281 96.4602 96.4602 96.4602 8270.9151 8253.4662 8175.4946 -151.12284 1.5098415 -10.744684 0 0 9.1051034
|
||||
110 296.49826 894.01679 -1045.224 96.4602 96.4602 96.399609 8338.4937 8340.5504 8294.9909 -151.20723 1.4327442 23.73173 0.017588167 -0.55980562 5.6560557
|
||||
|
@ -138,30 +138,30 @@ Step Temp KinEng PotEng Lx Ly Lz Pxx Pyy Pzz TotEng v_dhug v_dray v_lgr_vel v_lg
|
|||
180 305.86343 922.25514 -1073.9633 96.4602 96.4602 96.023049 8345.1853 8432.5201 8461.3276 -151.70813 0.97863988 -338.30793 0.12689398 -4.4693274 -15.815462
|
||||
190 307.44054 927.01052 -1078.7892 96.4602 96.4602 95.9747 8368.4081 8427.5109 8450.584 -151.77867 0.92329631 -416.89333 0.1409285 -5.0266346 -18.541801
|
||||
200 308.43619 930.01265 -1081.8521 96.4602 96.4602 95.927349 8393.2058 8443.1265 8454.6733 -151.83947 0.8723277 -479.24592 0.1546734 -5.5836644 -21.20378
|
||||
Loop time of 1.57102 on 4 procs for 100 steps with 23328 atoms
|
||||
Loop time of 2.16596 on 4 procs for 100 steps with 23328 atoms
|
||||
|
||||
Performance: 10.999 ns/day, 2.182 hours/ns, 63.653 timesteps/s
|
||||
97.5% CPU use with 4 MPI tasks x 1 OpenMP threads
|
||||
Performance: 7.978 ns/day, 3.008 hours/ns, 46.169 timesteps/s
|
||||
98.5% CPU use with 4 MPI tasks x 1 OpenMP threads
|
||||
|
||||
MPI task timing breakdown:
|
||||
Section | min time | avg time | max time |%varavg| %total
|
||||
---------------------------------------------------------------
|
||||
Pair | 1.2237 | 1.2543 | 1.3264 | 3.7 | 79.84
|
||||
Neigh | 0.038648 | 0.039684 | 0.041811 | 0.6 | 2.53
|
||||
Comm | 0.026617 | 0.10771 | 0.14194 | 14.3 | 6.86
|
||||
Output | 0.0035126 | 0.0045422 | 0.0076261 | 2.6 | 0.29
|
||||
Modify | 0.15787 | 0.15969 | 0.16403 | 0.6 | 10.16
|
||||
Other | | 0.005042 | | | 0.32
|
||||
Pair | 1.7569 | 1.7822 | 1.8059 | 1.6 | 82.28
|
||||
Neigh | 0.034235 | 0.03546 | 0.037677 | 0.7 | 1.64
|
||||
Comm | 0.065427 | 0.091172 | 0.11833 | 7.4 | 4.21
|
||||
Output | 0.0062776 | 0.0065615 | 0.0074117 | 0.6 | 0.30
|
||||
Modify | 0.24069 | 0.2423 | 0.24655 | 0.5 | 11.19
|
||||
Other | | 0.008271 | | | 0.38
|
||||
|
||||
Nlocal: 5832 ave 5874 max 5803 min
|
||||
Nlocal: 5832.0 ave 5874.0 max 5803.0 min
|
||||
Histogram: 2 0 0 0 0 1 0 0 0 1
|
||||
Nghost: 10563.8 ave 10588 max 10526 min
|
||||
Nghost: 10563.75 ave 10588.0 max 10526.0 min
|
||||
Histogram: 1 0 0 0 1 0 0 0 0 2
|
||||
Neighs: 545708 ave 550787 max 542668 min
|
||||
Neighs: 545708.5 ave 550787.0 max 542668.0 min
|
||||
Histogram: 2 0 0 0 1 0 0 0 0 1
|
||||
|
||||
Total # of neighbors = 2182834
|
||||
Ave neighs/atom = 93.5714
|
||||
Ave neighs/atom = 93.57141632373114
|
||||
Neighbor list builds = 2
|
||||
Dangerous builds = 0
|
||||
Total wall time: 0:00:02
|
||||
Total wall time: 0:00:03
|
|
@ -32,6 +32,8 @@
|
|||
#include "domain.h"
|
||||
#include "memory.h"
|
||||
#include "error.h"
|
||||
#include "utils.h"
|
||||
#include "fmt/format.h"
|
||||
|
||||
using namespace LAMMPS_NS;
|
||||
using namespace FixConst;
|
||||
|
@ -142,52 +144,28 @@ FixMSST::FixMSST(LAMMPS *lmp, int narg, char **arg) :
|
|||
// output MSST info
|
||||
|
||||
if (comm->me == 0) {
|
||||
if (screen) {
|
||||
fprintf(screen,"MSST parameters:\n");
|
||||
if (direction == 0) fprintf(screen," Shock in x direction\n");
|
||||
else if (direction == 1) fprintf(screen," Shock in y direction\n");
|
||||
else if (direction == 2) fprintf(screen," Shock in z direction\n");
|
||||
fprintf(screen," Cell mass-like parameter qmass "
|
||||
"(units of mass^2/length^4) = %12.5e\n", qmass);
|
||||
fprintf(screen," Shock velocity = %12.5e\n", velocity);
|
||||
fprintf(screen," Artificial viscosity "
|
||||
"(units of mass/length/time) = %12.5e\n", mu);
|
||||
std::string mesg = "MSST parameters:\n";
|
||||
if (direction == 0) mesg += " Shock in x direction\n";
|
||||
else if (direction == 1) mesg += " Shock in y direction\n";
|
||||
else if (direction == 2) mesg += " Shock in z direction\n";
|
||||
mesg += fmt::format(" Cell mass-like parameter qmass "
|
||||
"(units of mass^2/length^4) = {:.8g}\n", qmass);
|
||||
mesg += fmt::format(" Shock velocity = {:.8g}\n", velocity);
|
||||
mesg += fmt::format(" Artificial viscosity "
|
||||
"(units of mass/length/time) = {:.8g}\n", mu);
|
||||
|
||||
if (p0_set)
|
||||
fprintf(screen," Initial pressure specified to be %12.5e\n", p0);
|
||||
else fprintf(screen," Initial pressure calculated on first step\n");
|
||||
if (p0_set)
|
||||
mesg += fmt::format(" Initial pressure specified to be {:.8g}\n", p0);
|
||||
else mesg += " Initial pressure calculated on first step\n";
|
||||
|
||||
if (v0_set)
|
||||
fprintf(screen," Initial volume specified to be %12.5e\n", v0);
|
||||
else fprintf(screen," Initial volume calculated on first step\n");
|
||||
if (v0_set)
|
||||
mesg += fmt::format(" Initial volume specified to be {:.8g}\n", v0);
|
||||
else mesg += " Initial volume calculated on first step\n";
|
||||
|
||||
if (e0_set)
|
||||
fprintf(screen," Initial energy specified to be %12.5e\n", e0);
|
||||
else fprintf(screen," Initial energy calculated on first step\n");
|
||||
}
|
||||
if (logfile) {
|
||||
fprintf(logfile,"MSST parameters:\n");
|
||||
if (direction == 0) fprintf(logfile," Shock in x direction\n");
|
||||
else if (direction == 1) fprintf(logfile," Shock in y direction\n");
|
||||
else if (direction == 2) fprintf(logfile," Shock in z direction\n");
|
||||
fprintf(logfile," Cell mass-like parameter qmass "
|
||||
"(units of mass^2/length^4) = %12.5e\n", qmass);
|
||||
fprintf(logfile," Shock velocity = %12.5e\n", velocity);
|
||||
fprintf(logfile," Artificial viscosity "
|
||||
"(units of mass/length/time) = %12.5e\n", mu);
|
||||
|
||||
if (p0_set)
|
||||
fprintf(logfile," Initial pressure specified to be %12.5e\n", p0);
|
||||
else fprintf(logfile," Initial pressure calculated on first step\n");
|
||||
|
||||
if (v0_set)
|
||||
fprintf(logfile," Initial volume specified to be %12.5e\n", v0);
|
||||
else fprintf(logfile," Initial volume calculated on first step\n");
|
||||
|
||||
if (e0_set)
|
||||
fprintf(logfile," Initial energy specified to be %12.5e\n", e0);
|
||||
else fprintf(logfile," Initial energy calculated on first step\n");
|
||||
}
|
||||
if (e0_set)
|
||||
mesg += fmt::format(" Initial energy specified to be {:.8g}\n", e0);
|
||||
else mesg += " Initial energy calculated on first step\n";
|
||||
utils::logmesg(lmp,mesg);
|
||||
}
|
||||
|
||||
// check for periodicity in controlled dimensions
|
||||
|
@ -199,51 +177,29 @@ FixMSST::FixMSST(LAMMPS *lmp, int narg, char **arg) :
|
|||
// compute group = all since pressure is always global (group all)
|
||||
// and thus its KE/temperature contribution should use group all
|
||||
|
||||
int n = strlen(id) + 10;
|
||||
id_temp = new char[n];
|
||||
strcpy(id_temp,id);
|
||||
strcat(id_temp,"MSST_temp");
|
||||
|
||||
char **newarg = new char*[3];
|
||||
newarg[0] = id_temp;
|
||||
newarg[1] = (char *) "all";
|
||||
newarg[2] = (char *) "temp";
|
||||
modify->add_compute(3,newarg);
|
||||
delete [] newarg;
|
||||
std::string fixcmd = std::string(id) + "MSST_temp";
|
||||
id_temp = new char[fixcmd.size()+1];
|
||||
strcpy(id_temp,fixcmd.c_str());
|
||||
modify->add_compute(fixcmd + " all temp");
|
||||
tflag = 1;
|
||||
|
||||
// create a new pressure compute
|
||||
// id = fix-ID + "MSST_press", compute group = all
|
||||
// pass id_temp as 4th arg to pressure constructor
|
||||
|
||||
n = strlen(id) + 11;
|
||||
id_press = new char[n];
|
||||
strcpy(id_press,id);
|
||||
strcat(id_press,"MSST_press");
|
||||
|
||||
newarg = new char*[4];
|
||||
newarg[0] = id_press;
|
||||
newarg[1] = (char *) "all";
|
||||
newarg[2] = (char *) "pressure";
|
||||
newarg[3] = id_temp;
|
||||
modify->add_compute(4,newarg);
|
||||
delete [] newarg;
|
||||
fixcmd = std::string(id) + "MSST_press";
|
||||
id_press = new char[fixcmd.size()+1];
|
||||
strcpy(id_press,fixcmd.c_str());
|
||||
modify->add_compute(fixcmd + " all pressure " + std::string(id_temp));
|
||||
pflag = 1;
|
||||
|
||||
// create a new potential energy compute
|
||||
// id = fix-ID + "MSST_pe", compute group = all
|
||||
|
||||
n = strlen(id) + 8;
|
||||
id_pe = new char[n];
|
||||
strcpy(id_pe,id);
|
||||
strcat(id_pe,"MSST_pe");
|
||||
|
||||
newarg = new char*[3];
|
||||
newarg[0] = id_pe;
|
||||
newarg[1] = (char*) "all";
|
||||
newarg[2] = (char*) "pe";
|
||||
modify->add_compute(3,newarg);
|
||||
delete [] newarg;
|
||||
fixcmd = std::string(id) + "MSST_pe";
|
||||
id_pe = new char[fixcmd.size()+1];
|
||||
strcpy(id_pe,fixcmd.c_str());
|
||||
modify->add_compute(fixcmd + " all pe");
|
||||
peflag = 1;
|
||||
|
||||
// initialize the time derivative of the volume
|
||||
|
@ -334,21 +290,21 @@ void FixMSST::init()
|
|||
rfix = NULL;
|
||||
|
||||
for (int i = 0; i < modify->nfix; i++)
|
||||
if (strcmp(modify->fix[i]->style,"rigid") == 0 ||
|
||||
strcmp(modify->fix[i]->style,"poems") == 0) nrigid++;
|
||||
if (utils::strmatch(modify->fix[i]->style,"^rigid") ||
|
||||
utils::strmatch(modify->fix[i]->style,"^poems$")) nrigid++;
|
||||
if (nrigid) {
|
||||
rfix = new int[nrigid];
|
||||
nrigid = 0;
|
||||
for (int i = 0; i < modify->nfix; i++)
|
||||
if (strcmp(modify->fix[i]->style,"rigid") == 0 ||
|
||||
strcmp(modify->fix[i]->style,"poems") == 0) rfix[nrigid++] = i;
|
||||
if (utils::strmatch(modify->fix[i]->style,"^rigid") ||
|
||||
utils::strmatch(modify->fix[i]->style,"^poems$")) rfix[nrigid++] = i;
|
||||
}
|
||||
|
||||
// find fix external being used to drive LAMMPS from DFTB+
|
||||
|
||||
if (dftb) {
|
||||
for (int i = 0; i < modify->nfix; i++)
|
||||
if (strcmp(modify->fix[i]->style,"external") == 0)
|
||||
if (utils::strmatch(modify->fix[i]->style,"^external$"))
|
||||
fix_external = (FixExternal *) modify->fix[i];
|
||||
if (fix_external == NULL)
|
||||
error->all(FLERR,"Fix msst dftb cannot be used w/out fix external");
|
||||
|
@ -371,31 +327,24 @@ void FixMSST::setup(int /*vflag*/)
|
|||
if ( v0_set == 0 ) {
|
||||
v0 = compute_vol();
|
||||
v0_set = 1;
|
||||
if (comm->me == 0) {
|
||||
if ( screen ) fprintf(screen,"Fix MSST v0 = %12.5e\n", v0);
|
||||
if ( logfile ) fprintf(logfile,"Fix MSST v0 = %12.5e\n", v0);
|
||||
}
|
||||
if (comm->me == 0)
|
||||
utils::logmesg(lmp,fmt::format("Fix MSST v0 = {:.8g}\n", v0));
|
||||
}
|
||||
|
||||
if ( p0_set == 0 ) {
|
||||
p0 = p_current[direction];
|
||||
p0_set = 1;
|
||||
|
||||
if ( comm->me == 0 ) {
|
||||
if ( screen ) fprintf(screen,"Fix MSST p0 = %12.5e\n", p0);
|
||||
if ( logfile ) fprintf(logfile,"Fix MSST p0 = %12.5e\n", p0);
|
||||
}
|
||||
if ( comm->me == 0 )
|
||||
utils::logmesg(lmp,fmt::format("Fix MSST p0 = {:.8g}\n", p0));
|
||||
}
|
||||
|
||||
if ( e0_set == 0 ) {
|
||||
e0 = compute_etotal();
|
||||
e0_set = 1;
|
||||
|
||||
if ( comm->me == 0 ) {
|
||||
if ( screen ) fprintf(screen,"Fix MSST e0 = to be %12.5e\n",e0);
|
||||
if ( logfile ) fprintf(logfile,"Fix MSST e0 = to be %12.5e\n",e0);
|
||||
}
|
||||
|
||||
if ( comm->me == 0 )
|
||||
utils::logmesg(lmp,fmt::format("Fix MSST e0 = {:.8g}\n", e0));
|
||||
}
|
||||
|
||||
temperature->compute_vector();
|
||||
|
@ -415,16 +364,11 @@ void FixMSST::setup(int /*vflag*/)
|
|||
omega[direction]=-1*sqrt(fac1);
|
||||
double fac2 = omega[direction]/v0;
|
||||
|
||||
if ( comm->me == 0 && tscale != 1.0) {
|
||||
if ( screen )
|
||||
fprintf(screen,"Fix MSST initial strain rate of %12.5e established "
|
||||
"by reducing temperature by factor of %12.5e\n",
|
||||
fac2,tscale);
|
||||
if ( logfile )
|
||||
fprintf(logfile,"Fix MSST initial strain rate of %12.5e established "
|
||||
"by reducing temperature by factor of %12.5e\n",
|
||||
fac2,tscale);
|
||||
}
|
||||
if ( comm->me == 0 && tscale != 1.0)
|
||||
utils::logmesg(lmp,fmt::format("Fix MSST initial strain rate of "
|
||||
"{:.8g} established by reducing "
|
||||
"temperature by factor of {:.8g}\n",
|
||||
fac2,tscale));
|
||||
for (int i = 0; i < atom->nlocal; i++) {
|
||||
if (mask[i] & groupbit) {
|
||||
for (int k = 0; k < 3; k++ ) {
|
||||
|
|
Loading…
Reference in New Issue