From f0c176c6033b14c176da6fd1dff8d401f8939314 Mon Sep 17 00:00:00 2001 From: Tyler Collins Date: Fri, 6 Dec 2024 21:42:23 -0800 Subject: [PATCH 01/14] vcm example script and log added --- examples/vcm/in.vcm.lmp | 82 +++++++++++ examples/vcm/log.19Nov24.vcm.g++.1 | 223 +++++++++++++++++++++++++++++ 2 files changed, 305 insertions(+) create mode 100644 examples/vcm/in.vcm.lmp create mode 100644 examples/vcm/log.19Nov24.vcm.g++.1 diff --git a/examples/vcm/in.vcm.lmp b/examples/vcm/in.vcm.lmp new file mode 100644 index 0000000000..41d7665c49 --- /dev/null +++ b/examples/vcm/in.vcm.lmp @@ -0,0 +1,82 @@ +# Removing Binned Center-of-Mass Velocities from Stress Compute + +units metal +boundary p p p +atom_style atomic +lattice fcc 5.3589 +processors 1 * * + +# Defining regions for box and atoms + +region box1 block -3 24 0 12 0 12 units lattice +region box2 block 0 12 0 12 0 12 units lattice + +# Creating box and atoms + +create_box 1 box1 +create_atoms 1 region box2 + +mass 1 40.00 + +# Adding energy to the system + +velocity all create 600.0 9999 + +pair_style lj/cut 10 +pair_coeff 1 1 0.04 3.405 + +# Begin time integration + +timestep 2e-3 + +fix fix_nve all nve + +thermo 100 + +run 500 + +# Chunk and stress along x direction + +variable nbins index 20 +variable fraction equal 1.0/v_nbins +variable volfrac equal 1/(vol*${fraction}) + +compute ch_id all chunk/atom bin/1d x lower ${fraction} units reduced +compute ch_temp_vcm all temp/chunk ch_id com yes +compute atom_stress_vcm all stress/atom ch_temp_vcm +variable stress atom -(c_atom_stress_vcm[1])/(vol*${fraction}) +compute ch_stress_vcm all reduce/chunk ch_id sum v_stress + +# Output stress profile in x direction + +# fix ave_stress_vcm all ave/time 5 20 100 c_ch_stress_vcm mode vector file stress_xx.out + +# Piston compressing along x direction + +region piston block -1 1 INF INF INF INF units lattice +group piston region piston +fix fix_piston piston move linear 5 0 0 units box # strain rate ~ 8e10 1/s + +thermo_style custom step temp ke pe lx ly lz pxx pyy pzz econserve + +# Atom dump + +# dump atom_dump all atom 50 dump.vcm + +# # Image dumps + +# dump 2 all image 250 image.*.jpg type type & +# axes yes 0.8 0.02 view 60 -30 +# dump_modify 2 pad 1 + +# # Movie dump + +# dump 3 all movie 125 movie.avi type type & +# axes yes 0.8 0.02 view 60 -30 +# dump_modify 3 pad 1 + +run 500 + +unfix fix_piston + +run 1500 diff --git a/examples/vcm/log.19Nov24.vcm.g++.1 b/examples/vcm/log.19Nov24.vcm.g++.1 new file mode 100644 index 0000000000..ca63b9b5cc --- /dev/null +++ b/examples/vcm/log.19Nov24.vcm.g++.1 @@ -0,0 +1,223 @@ +LAMMPS (19 Nov 2024) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:99) + using 1 OpenMP thread(s) per MPI task +Loaded 1 plugins from C:\Users\tcollins7472\AppData\Local\LAMMPS 64-bit 19Nov2024-MSMPI with Python\plugins +# Removing Binned Center-of-Mass Velocities from Stress Compute + +units metal +boundary p p p +atom_style atomic +lattice fcc 5.3589 +Lattice spacing in x,y,z = 5.3589 5.3589 5.3589 +processors 1 * * + +# Defining regions for box and atoms + +region box1 block -3 24 0 12 0 12 units lattice +region box2 block 0 12 0 12 0 12 units lattice + +# Creating box and atoms + +create_box 1 box1 +Created orthogonal box = (-16.0767 0 0) to (128.6136 64.3068 64.3068) + 1 by 1 by 1 MPI processor grid +create_atoms 1 region box2 +Created 7200 atoms + using lattice units in orthogonal box = (-16.0767 0 0) to (128.6136 64.3068 64.3068) + create_atoms CPU = 0.003 seconds + +mass 1 40.00 + +# Adding energy to the system + +velocity all create 600.0 9999 + +pair_style lj/cut 10 +pair_coeff 1 1 0.04 3.405 + +# Begin time integration + +timestep 2e-3 + +fix fix_nve all nve + +thermo 100 + +run 500 +Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 12 + ghost atom cutoff = 12 + binsize = 6, bins = 25 11 11 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair lj/cut, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 5.721 | 5.721 | 5.721 Mbytes + Step Temp E_pair E_mol TotEng Press + 0 600 -2252.7567 0 -1694.4304 -974.62456 + 100 284.72172 -1977.4291 0 -1712.483 2453.7429 + 200 304.44519 -1994.7937 0 -1711.4941 1822.2699 + 300 304.28012 -1993.2958 0 -1710.1498 1498.3794 + 400 296.76492 -1985.1364 0 -1708.9836 1259.9474 + 500 295.00895 -1982.4224 0 -1707.9036 964.9526 +Loop time of 3.07247 on 1 procs for 500 steps with 7200 atoms + +Performance: 28.121 ns/day, 0.853 hours/ns, 162.736 timesteps/s, 1.172 Matom-step/s +99.7% CPU use with 1 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 2.8976 | 2.8976 | 2.8976 | 0.0 | 94.31 +Neigh | 0.11531 | 0.11531 | 0.11531 | 0.0 | 3.75 +Comm | 0.015167 | 0.015167 | 0.015167 | 0.0 | 0.49 +Output | 0.003809 | 0.003809 | 0.003809 | 0.0 | 0.12 +Modify | 0.025306 | 0.025306 | 0.025306 | 0.0 | 0.82 +Other | | 0.01525 | | | 0.50 + +Nlocal: 7200 ave 7200 max 7200 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 6410 ave 6410 max 6410 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 615095 ave 615095 max 615095 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 615095 +Ave neighs/atom = 85.429861 +Neighbor list builds = 9 +Dangerous builds = 0 + +# Chunk and stress along x direction + +variable nbins index 20 +variable fraction equal 1.0/v_nbins +variable volfrac equal 1/(vol*${fraction}) +variable volfrac equal 1/(vol*0.05) + +compute ch_id all chunk/atom bin/1d x lower ${fraction} units reduced +compute ch_id all chunk/atom bin/1d x lower 0.05 units reduced +compute ch_temp_vcm all temp/chunk ch_id com yes +compute atom_stress_vcm all stress/atom ch_temp_vcm +variable stress atom -(c_atom_stress_vcm[1])/(vol*${fraction}) +variable stress atom -(c_atom_stress_vcm[1])/(vol*0.05) +compute ch_stress_vcm all reduce/chunk ch_id sum v_stress + +# Output stress profile in x direction + +# fix ave_stress_vcm all ave/time 5 20 100 c_ch_stress_vcm mode vector file stress_xx.out + +# Piston compressing along x direction + +region piston block -1 1 INF INF INF INF units lattice +group piston region piston +863 atoms in group piston +fix fix_piston piston move linear 5 0 0 units box # strain rate ~ 8e10 1/s + +thermo_style custom step temp ke pe lx ly lz pxx pyy pzz econserve + +# Atom dump + +# dump atom_dump all atom 50 dump.vcm + +# # Image dumps + +# dump 2 all image 250 image.*.jpg type type # axes yes 0.8 0.02 view 60 -30 +# dump_modify 2 pad 1 + +# # Movie dump + +# dump 3 all movie 125 movie.avi type type # axes yes 0.8 0.02 view 60 -30 +# dump_modify 3 pad 1 + +run 500 +Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule +WARNING: One or more atoms are time integrated more than once (src/modify.cpp:296) +Per MPI rank memory allocation (min/avg/max) = 6.975 | 6.975 | 6.975 Mbytes + Step Temp KinEng PotEng Lx Ly Lz Pxx Pyy Pzz Econserve + 500 295.00895 274.51875 -1982.4224 144.6903 64.3068 64.3068 631.89976 1127.2965 1135.6616 -1707.9036 + 600 357.38902 332.56613 -1951.3422 144.6903 64.3068 64.3068 2236.6706 2003.2726 1943.6815 -1618.7761 + 700 420.30268 391.11005 -1911.8178 144.6903 64.3068 64.3068 3761.5011 3065.4699 3140.3169 -1520.7077 + 800 484.96279 451.27911 -1875.379 144.6903 64.3068 64.3068 5362.254 4174.4201 4166.0818 -1424.0999 + 900 587.78954 546.96391 -1871.217 144.6903 64.3068 64.3068 6481.4714 4875.705 4676.6083 -1324.2531 + 1000 684.07997 636.56636 -1868.1639 144.6903 64.3068 64.3068 7734.6158 5271.3524 5272.1276 -1231.5975 +Loop time of 3.32746 on 1 procs for 500 steps with 7200 atoms + +Performance: 25.966 ns/day, 0.924 hours/ns, 150.265 timesteps/s, 1.082 Matom-step/s +100.0% 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.0701 | 3.0701 | 3.0701 | 0.0 | 92.27 +Neigh | 0.20567 | 0.20567 | 0.20567 | 0.0 | 6.18 +Comm | 0.010313 | 0.010313 | 0.010313 | 0.0 | 0.31 +Output | 0.002649 | 0.002649 | 0.002649 | 0.0 | 0.08 +Modify | 0.029567 | 0.029567 | 0.029567 | 0.0 | 0.89 +Other | | 0.009157 | | | 0.28 + +Nlocal: 7200 ave 7200 max 7200 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 6409 ave 6409 max 6409 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 646408 ave 646408 max 646408 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 646408 +Ave neighs/atom = 89.778889 +Neighbor list builds = 15 +Dangerous builds = 0 + +unfix fix_piston + +run 1500 +Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule +Per MPI rank memory allocation (min/avg/max) = 6.6 | 6.6 | 6.6 Mbytes + Step Temp KinEng PotEng Lx Ly Lz Pxx Pyy Pzz Econserve + 1000 684.07997 636.56636 -1868.1639 144.6903 64.3068 64.3068 7734.6158 5271.3524 5272.1276 -1231.5975 + 1100 710.19886 660.87113 -1894.0485 144.6903 64.3068 64.3068 8048.3485 5396.6668 5376.5956 -1233.1774 + 1200 717.16487 667.35331 -1901.3849 144.6903 64.3068 64.3068 8009.7984 5634.5121 5349.4113 -1234.0316 + 1300 710.26037 660.92837 -1894.9802 144.6903 64.3068 64.3068 8063.4125 5572.1245 5530.174 -1234.0519 + 1400 715.93921 666.21278 -1898.8885 144.6903 64.3068 64.3068 7752.0927 5293.5463 5322.2312 -1232.6757 + 1500 748.85411 696.84154 -1926.4891 144.6903 64.3068 64.3068 6030.5428 4076.8886 4012.7653 -1229.6475 + 1600 767.98982 714.64815 -1939.8556 144.6903 64.3068 64.3068 4200.3475 2532.5711 2530.5518 -1225.2075 + 1700 757.22042 704.62675 -1925.553 144.6903 64.3068 64.3068 2686.7843 1482.2796 1505.8073 -1220.9262 + 1800 727.30327 676.78754 -1894.6635 144.6903 64.3068 64.3068 1764.2793 781.37451 801.18668 -1217.8759 + 1900 688.82146 640.97853 -1856.5007 144.6903 64.3068 64.3068 1022.805 417.32394 359.74951 -1215.5221 + 2000 655.91228 610.35509 -1823.954 144.6903 64.3068 64.3068 551.98825 -20.148643 -56.976652 -1213.5989 + 2100 620.22468 577.14622 -1789.1761 144.6903 64.3068 64.3068 264.05975 -266.8323 -314.45533 -1212.0299 + 2200 589.13325 548.21428 -1758.9252 144.6903 64.3068 64.3068 41.369707 -533.503 -525.69401 -1210.7109 + 2300 563.20394 524.08593 -1733.6036 144.6903 64.3068 64.3068 -220.99189 -810.90513 -774.65084 -1209.5176 + 2400 540.44236 502.90528 -1711.3384 144.6903 64.3068 64.3068 -358.01508 -962.31635 -977.3253 -1208.4332 + 2500 523.5718 487.20648 -1694.7088 144.6903 64.3068 64.3068 -521.87444 -1152.8386 -1231.7615 -1207.5023 +Loop time of 9.89185 on 1 procs for 1500 steps with 7200 atoms + +Performance: 26.203 ns/day, 0.916 hours/ns, 151.640 timesteps/s, 1.092 Matom-step/s +98.7% CPU use with 1 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 8.9768 | 8.9768 | 8.9768 | 0.0 | 90.75 +Neigh | 0.78114 | 0.78114 | 0.78114 | 0.0 | 7.90 +Comm | 0.035178 | 0.035178 | 0.035178 | 0.0 | 0.36 +Output | 0.009593 | 0.009593 | 0.009593 | 0.0 | 0.10 +Modify | 0.057521 | 0.057521 | 0.057521 | 0.0 | 0.58 +Other | | 0.0316 | | | 0.32 + +Nlocal: 7200 ave 7200 max 7200 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 6380 ave 6380 max 6380 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 515773 ave 515773 max 515773 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 515773 +Ave neighs/atom = 71.635139 +Neighbor list builds = 57 +Dangerous builds = 0 +Total wall time: 0:00:16 From 3c6f4374ee4df8706474c45754267eb73fc877ab Mon Sep 17 00:00:00 2001 From: Tyler Collins Date: Fri, 6 Dec 2024 22:37:28 -0800 Subject: [PATCH 02/14] removed some id info --- examples/vcm/log.19Nov24.vcm.g++.1 | 1 - 1 file changed, 1 deletion(-) diff --git a/examples/vcm/log.19Nov24.vcm.g++.1 b/examples/vcm/log.19Nov24.vcm.g++.1 index ca63b9b5cc..4b03a771ad 100644 --- a/examples/vcm/log.19Nov24.vcm.g++.1 +++ b/examples/vcm/log.19Nov24.vcm.g++.1 @@ -1,7 +1,6 @@ LAMMPS (19 Nov 2024) OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:99) using 1 OpenMP thread(s) per MPI task -Loaded 1 plugins from C:\Users\tcollins7472\AppData\Local\LAMMPS 64-bit 19Nov2024-MSMPI with Python\plugins # Removing Binned Center-of-Mass Velocities from Stress Compute units metal From b4acfd1e3b4ac78099cd93845973813873e0534f Mon Sep 17 00:00:00 2001 From: Tyler Collins Date: Tue, 10 Dec 2024 21:47:30 -0800 Subject: [PATCH 03/14] updated summary, comments, and name --- examples/stress_vcm/in.stress_vcm.lmp | 113 ++++++++ .../log.19Nov24.stress_vcm.g++.1} | 99 ++++--- .../stress_vcm/log.19Nov24.stress_vcm.g++.4 | 253 ++++++++++++++++++ examples/vcm/in.vcm.lmp | 82 ------ 4 files changed, 431 insertions(+), 116 deletions(-) create mode 100644 examples/stress_vcm/in.stress_vcm.lmp rename examples/{vcm/log.19Nov24.vcm.g++.1 => stress_vcm/log.19Nov24.stress_vcm.g++.1} (73%) create mode 100644 examples/stress_vcm/log.19Nov24.stress_vcm.g++.4 delete mode 100644 examples/vcm/in.vcm.lmp diff --git a/examples/stress_vcm/in.stress_vcm.lmp b/examples/stress_vcm/in.stress_vcm.lmp new file mode 100644 index 0000000000..24dc86f6fd --- /dev/null +++ b/examples/stress_vcm/in.stress_vcm.lmp @@ -0,0 +1,113 @@ +# Removing Binned Velocities of Center of Mass (VCM) from Stress + +# This example shows how to remove rigid body motion from +# binned stress calculations. This uses a combination of commands +# from compute chunk/atom, compute temp/chunk, compute +# stress/atom and fix ave/time. We'll show how these commands +# work in the context of a shockwave experiment on a cube of +# atoms. To shock the cube, a rectangular region of atoms is +# frozen, moved into the cube with a constant velocity along the +# x direction, and then unfrozen. As the shockwave begins +# propagating, the body of the cube also moves along the x +# direction. To better understand the stress dynamics of the +# cube we remove the velocity component belonging to the overall +# motion of each bin. + +units metal +boundary p p p +atom_style atomic +lattice fcc 5.3589 +processors 1 * * + +# Defining regions for box and atoms. +# In this experiment an elongated simulation cell is +# defined in the x direction to allow for non-periodic +# motion of the atoms. + +region box1 block -3 24 0 12 0 12 units lattice +region box2 block 0 12 0 12 0 12 units lattice + +# Creating box and atoms + +create_box 1 box1 +create_atoms 1 region box2 + +mass 1 40.00 + +# Adding energy to the system + +velocity all create 600.0 9999 + +pair_style lj/cut 10 +pair_coeff 1 1 0.04 3.405 + +# Begin time integration + +timestep 2e-3 + +fix fix_nve all nve + +thermo 100 + +run 500 + +#--------------------------------------# +# Chunk, Stress, and VCM removal steps # +#--------------------------------------# + +# 1. Create 20 equispaced bins sliced along the x direction. +# -"units reduced" normalizes the distance from 0.0 to 1.0 +variable nbins index 20 +variable fraction equal 1.0/v_nbins +variable volfrac equal 1/(vol*${fraction}) +compute ch_id all chunk/atom bin/1d x lower ${fraction} units reduced + +# 2. Calculate temperature bins with VCM aka COM velocities removed. +compute ch_temp_vcm all temp/chunk ch_id com yes + +# 3. Compute per atom stress with VCM removed via temp-ID. +# -The velocities from specified temp-ID are used to compute stress. +# -Stress/atom units are pressure*volume! Optionally handled next step. +compute atom_stress_vcm all stress/atom ch_temp_vcm + +# 4. Divide out bin volume from xx stress component. +variable stress atom -(c_atom_stress_vcm[1])/(vol*${fraction}) + +# 5. Sum the per atom stresses in each bin. +compute ch_stress_vcm all reduce/chunk ch_id sum v_stress + +# 6. Average and output to file. +# -The average output is every 100 steps with samples collected 20 times with 5 step intervals. +# fix ave_stress_vcm all ave/time 5 20 100 c_ch_stress_vcm mode vector file stress_xx.out + +#--------------------------------------# + +# Piston compressing along x direction + +region piston block -1 1 INF INF INF INF units lattice +group piston region piston +fix fix_piston piston move linear 5 0 0 units box # strain rate ~ 8e10 1/s + +thermo_style custom step temp ke pe lx ly lz pxx pyy pzz econserve + +# Atom dump + +# dump atom_dump all atom 50 dump.vcm + +# # Image dumps + +# dump 2 all image 250 image.*.jpg type type & +# axes yes 0.8 0.02 view 60 -30 +# dump_modify 2 pad 1 + +# # Movie dump + +# dump 3 all movie 125 movie.avi type type & +# axes yes 0.8 0.02 view 60 -30 +# dump_modify 3 pad 1 + +run 500 + +unfix fix_piston + +run 1500 diff --git a/examples/vcm/log.19Nov24.vcm.g++.1 b/examples/stress_vcm/log.19Nov24.stress_vcm.g++.1 similarity index 73% rename from examples/vcm/log.19Nov24.vcm.g++.1 rename to examples/stress_vcm/log.19Nov24.stress_vcm.g++.1 index 4b03a771ad..93ae029334 100644 --- a/examples/vcm/log.19Nov24.vcm.g++.1 +++ b/examples/stress_vcm/log.19Nov24.stress_vcm.g++.1 @@ -1,7 +1,20 @@ LAMMPS (19 Nov 2024) OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:99) using 1 OpenMP thread(s) per MPI task -# Removing Binned Center-of-Mass Velocities from Stress Compute +# Removing Binned Velocities of Center of Mass (VCM) from Stress + +# This example shows how to remove rigid body motion from +# binned stress calculations. This uses a combination of commands +# from compute chunk/atom, compute temp/chunk, compute +# stress/atom and fix ave/time. We'll show how these commands +# work in the context of a shockwave experiment on a cube of +# atoms. To shock the cube, a rectangular region of atoms is +# frozen, moved into the cube with a constant velocity along the +# x direction, and then unfrozen. As the shockwave begins +# propagating, the body of the cube also moves along the x +# direction. To better understand the stress dynamics of the +# cube we remove the velocity component belonging to the overall +# motion of each bin. units metal boundary p p p @@ -10,7 +23,10 @@ lattice fcc 5.3589 Lattice spacing in x,y,z = 5.3589 5.3589 5.3589 processors 1 * * -# Defining regions for box and atoms +# Defining regions for box and atoms. +# In this experiment an elongated simulation cell is +# defined in the x direction to allow for non-periodic +# motion of the atoms. region box1 block -3 24 0 12 0 12 units lattice region box2 block 0 12 0 12 0 12 units lattice @@ -23,7 +39,7 @@ Created orthogonal box = (-16.0767 0 0) to (128.6136 64.3068 64.3068) create_atoms 1 region box2 Created 7200 atoms using lattice units in orthogonal box = (-16.0767 0 0) to (128.6136 64.3068 64.3068) - create_atoms CPU = 0.003 seconds + create_atoms CPU = 0.002 seconds mass 1 40.00 @@ -64,20 +80,20 @@ Per MPI rank memory allocation (min/avg/max) = 5.721 | 5.721 | 5.721 Mbytes 300 304.28012 -1993.2958 0 -1710.1498 1498.3794 400 296.76492 -1985.1364 0 -1708.9836 1259.9474 500 295.00895 -1982.4224 0 -1707.9036 964.9526 -Loop time of 3.07247 on 1 procs for 500 steps with 7200 atoms +Loop time of 3.01696 on 1 procs for 500 steps with 7200 atoms -Performance: 28.121 ns/day, 0.853 hours/ns, 162.736 timesteps/s, 1.172 Matom-step/s -99.7% CPU use with 1 MPI tasks x 1 OpenMP threads +Performance: 28.638 ns/day, 0.838 hours/ns, 165.730 timesteps/s, 1.193 Matom-step/s +99.4% CPU use with 1 MPI tasks x 1 OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- -Pair | 2.8976 | 2.8976 | 2.8976 | 0.0 | 94.31 -Neigh | 0.11531 | 0.11531 | 0.11531 | 0.0 | 3.75 -Comm | 0.015167 | 0.015167 | 0.015167 | 0.0 | 0.49 -Output | 0.003809 | 0.003809 | 0.003809 | 0.0 | 0.12 -Modify | 0.025306 | 0.025306 | 0.025306 | 0.0 | 0.82 -Other | | 0.01525 | | | 0.50 +Pair | 2.8439 | 2.8439 | 2.8439 | 0.0 | 94.26 +Neigh | 0.11212 | 0.11212 | 0.11212 | 0.0 | 3.72 +Comm | 0.015585 | 0.015585 | 0.015585 | 0.0 | 0.52 +Output | 0.003747 | 0.003747 | 0.003747 | 0.0 | 0.12 +Modify | 0.026097 | 0.026097 | 0.026097 | 0.0 | 0.87 +Other | | 0.01551 | | | 0.51 Nlocal: 7200 ave 7200 max 7200 min Histogram: 1 0 0 0 0 0 0 0 0 0 @@ -91,25 +107,40 @@ Ave neighs/atom = 85.429861 Neighbor list builds = 9 Dangerous builds = 0 -# Chunk and stress along x direction +#------------------------------------# +# Chunk, Stress, and VCM removal steps +#------------------------------------# +# 1. Create 20 equispaced bins sliced along the x direction. +# "units reduced" normalizes the distance from 0 to 1 variable nbins index 20 variable fraction equal 1.0/v_nbins variable volfrac equal 1/(vol*${fraction}) variable volfrac equal 1/(vol*0.05) - compute ch_id all chunk/atom bin/1d x lower ${fraction} units reduced compute ch_id all chunk/atom bin/1d x lower 0.05 units reduced + +# 2. Calculate temperature bins with VCM aka COM velocities removed. compute ch_temp_vcm all temp/chunk ch_id com yes + +# 3. Compute per atom stress with VCM removed via temp-ID. +# The velocities from specified temp-ID are used to compute stress +# Stress/atom units are pressure*volume! Optionally handled next step. compute atom_stress_vcm all stress/atom ch_temp_vcm + +# 4. Divide out bin volume from xx stress component. variable stress atom -(c_atom_stress_vcm[1])/(vol*${fraction}) variable stress atom -(c_atom_stress_vcm[1])/(vol*0.05) + +# 5. Sum the per atom stresses in each bin. compute ch_stress_vcm all reduce/chunk ch_id sum v_stress -# Output stress profile in x direction - +# 6. Average and output to file. +# The average output is every 100 steps with samples collected 20 times with 5 step intervals # fix ave_stress_vcm all ave/time 5 20 100 c_ch_stress_vcm mode vector file stress_xx.out +#------------------------------------# + # Piston compressing along x direction region piston block -1 1 INF INF INF INF units lattice @@ -144,20 +175,20 @@ Per MPI rank memory allocation (min/avg/max) = 6.975 | 6.975 | 6.975 Mbytes 800 484.96279 451.27911 -1875.379 144.6903 64.3068 64.3068 5362.254 4174.4201 4166.0818 -1424.0999 900 587.78954 546.96391 -1871.217 144.6903 64.3068 64.3068 6481.4714 4875.705 4676.6083 -1324.2531 1000 684.07997 636.56636 -1868.1639 144.6903 64.3068 64.3068 7734.6158 5271.3524 5272.1276 -1231.5975 -Loop time of 3.32746 on 1 procs for 500 steps with 7200 atoms +Loop time of 3.09383 on 1 procs for 500 steps with 7200 atoms -Performance: 25.966 ns/day, 0.924 hours/ns, 150.265 timesteps/s, 1.082 Matom-step/s +Performance: 27.927 ns/day, 0.859 hours/ns, 161.612 timesteps/s, 1.164 Matom-step/s 100.0% 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.0701 | 3.0701 | 3.0701 | 0.0 | 92.27 -Neigh | 0.20567 | 0.20567 | 0.20567 | 0.0 | 6.18 -Comm | 0.010313 | 0.010313 | 0.010313 | 0.0 | 0.31 -Output | 0.002649 | 0.002649 | 0.002649 | 0.0 | 0.08 -Modify | 0.029567 | 0.029567 | 0.029567 | 0.0 | 0.89 -Other | | 0.009157 | | | 0.28 +Pair | 2.8485 | 2.8485 | 2.8485 | 0.0 | 92.07 +Neigh | 0.18767 | 0.18767 | 0.18767 | 0.0 | 6.07 +Comm | 0.011533 | 0.011533 | 0.011533 | 0.0 | 0.37 +Output | 0.003323 | 0.003323 | 0.003323 | 0.0 | 0.11 +Modify | 0.031777 | 0.031777 | 0.031777 | 0.0 | 1.03 +Other | | 0.01107 | | | 0.36 Nlocal: 7200 ave 7200 max 7200 min Histogram: 1 0 0 0 0 0 0 0 0 0 @@ -193,20 +224,20 @@ Per MPI rank memory allocation (min/avg/max) = 6.6 | 6.6 | 6.6 Mbytes 2300 563.20394 524.08593 -1733.6036 144.6903 64.3068 64.3068 -220.99189 -810.90513 -774.65084 -1209.5176 2400 540.44236 502.90528 -1711.3384 144.6903 64.3068 64.3068 -358.01508 -962.31635 -977.3253 -1208.4332 2500 523.5718 487.20648 -1694.7088 144.6903 64.3068 64.3068 -521.87444 -1152.8386 -1231.7615 -1207.5023 -Loop time of 9.89185 on 1 procs for 1500 steps with 7200 atoms +Loop time of 9.34327 on 1 procs for 1500 steps with 7200 atoms -Performance: 26.203 ns/day, 0.916 hours/ns, 151.640 timesteps/s, 1.092 Matom-step/s -98.7% CPU use with 1 MPI tasks x 1 OpenMP threads +Performance: 27.742 ns/day, 0.865 hours/ns, 160.543 timesteps/s, 1.156 Matom-step/s +98.5% CPU use with 1 MPI tasks x 1 OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- -Pair | 8.9768 | 8.9768 | 8.9768 | 0.0 | 90.75 -Neigh | 0.78114 | 0.78114 | 0.78114 | 0.0 | 7.90 -Comm | 0.035178 | 0.035178 | 0.035178 | 0.0 | 0.36 -Output | 0.009593 | 0.009593 | 0.009593 | 0.0 | 0.10 -Modify | 0.057521 | 0.057521 | 0.057521 | 0.0 | 0.58 -Other | | 0.0316 | | | 0.32 +Pair | 8.4692 | 8.4692 | 8.4692 | 0.0 | 90.65 +Neigh | 0.7512 | 0.7512 | 0.7512 | 0.0 | 8.04 +Comm | 0.031189 | 0.031189 | 0.031189 | 0.0 | 0.33 +Output | 0.010584 | 0.010584 | 0.010584 | 0.0 | 0.11 +Modify | 0.053052 | 0.053052 | 0.053052 | 0.0 | 0.57 +Other | | 0.02803 | | | 0.30 Nlocal: 7200 ave 7200 max 7200 min Histogram: 1 0 0 0 0 0 0 0 0 0 @@ -219,4 +250,4 @@ Total # of neighbors = 515773 Ave neighs/atom = 71.635139 Neighbor list builds = 57 Dangerous builds = 0 -Total wall time: 0:00:16 +Total wall time: 0:00:15 diff --git a/examples/stress_vcm/log.19Nov24.stress_vcm.g++.4 b/examples/stress_vcm/log.19Nov24.stress_vcm.g++.4 new file mode 100644 index 0000000000..d8e7c07536 --- /dev/null +++ b/examples/stress_vcm/log.19Nov24.stress_vcm.g++.4 @@ -0,0 +1,253 @@ +LAMMPS (19 Nov 2024) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:99) + using 1 OpenMP thread(s) per MPI task +# Removing Binned Velocities of Center of Mass (VCM) from Stress + +# This example shows how to remove rigid body motion from +# binned stress calculations. This uses a combination of commands +# from compute chunk/atom, compute temp/chunk, compute +# stress/atom and fix ave/time. We'll show how these commands +# work in the context of a shockwave experiment on a cube of +# atoms. To shock the cube, a rectangular region of atoms is +# frozen, moved into the cube with a constant velocity along the +# x direction, and then unfrozen. As the shockwave begins +# propagating, the body of the cube also moves along the x +# direction. To better understand the stress dynamics of the +# cube we remove the velocity component belonging to the overall +# motion of each bin. + +units metal +boundary p p p +atom_style atomic +lattice fcc 5.3589 +Lattice spacing in x,y,z = 5.3589 5.3589 5.3589 +processors 1 * * + +# Defining regions for box and atoms. +# In this experiment an elongated simulation cell is +# defined in the x direction to allow for non-periodic +# motion of the atoms. + +region box1 block -3 24 0 12 0 12 units lattice +region box2 block 0 12 0 12 0 12 units lattice + +# Creating box and atoms + +create_box 1 box1 +Created orthogonal box = (-16.0767 0 0) to (128.6136 64.3068 64.3068) + 1 by 2 by 2 MPI processor grid +create_atoms 1 region box2 +Created 7200 atoms + using lattice units in orthogonal box = (-16.0767 0 0) to (128.6136 64.3068 64.3068) + create_atoms CPU = 0.001 seconds + +mass 1 40.00 + +# Adding energy to the system + +velocity all create 600.0 9999 + +pair_style lj/cut 10 +pair_coeff 1 1 0.04 3.405 + +# Begin time integration + +timestep 2e-3 + +fix fix_nve all nve + +thermo 100 + +run 500 +Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 12 + ghost atom cutoff = 12 + binsize = 6, bins = 25 11 11 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair lj/cut/opt, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 3.662 | 3.662 | 3.662 Mbytes + Step Temp E_pair E_mol TotEng Press + 0 600 -2252.7567 0 -1694.4304 -974.62456 + 100 284.1896 -1976.961 0 -1712.5101 2462.6396 + 200 308.58965 -1998.6349 0 -1711.4787 1789.0033 + 300 300.55093 -1989.9838 0 -1710.308 1545.8576 + 400 297.91491 -1986.2519 0 -1709.029 1247.7121 + 500 294.66041 -1982.1097 0 -1707.9153 961.03073 +Loop time of 0.942408 on 4 procs for 500 steps with 7200 atoms + +Performance: 91.680 ns/day, 0.262 hours/ns, 530.556 timesteps/s, 3.820 Matom-step/s +82.1% 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.61287 | 0.63781 | 0.65858 | 2.1 | 67.68 +Neigh | 0.030246 | 0.031529 | 0.034546 | 1.0 | 3.35 +Comm | 0.23074 | 0.25145 | 0.27819 | 3.7 | 26.68 +Output | 0.000282 | 0.0003735 | 0.000463 | 0.0 | 0.04 +Modify | 0.005566 | 0.0057635 | 0.005989 | 0.2 | 0.61 +Other | | 0.01548 | | | 1.64 + +Nlocal: 1800 ave 1814 max 1787 min +Histogram: 1 0 1 0 0 0 0 1 0 1 +Nghost: 3713.5 ave 3727 max 3699 min +Histogram: 1 0 1 0 0 0 0 1 0 1 +Neighs: 153532 ave 154995 max 152312 min +Histogram: 1 0 1 0 0 1 0 0 0 1 + +Total # of neighbors = 614128 +Ave neighs/atom = 85.295556 +Neighbor list builds = 9 +Dangerous builds = 0 + +#------------------------------------# +# Chunk, Stress, and VCM removal steps +#------------------------------------# + +# 1. Create 20 equispaced bins sliced along the x direction. +# "units reduced" normalizes the distance from 0 to 1 +variable nbins index 20 +variable fraction equal 1.0/v_nbins +variable volfrac equal 1/(vol*${fraction}) +variable volfrac equal 1/(vol*0.05) +compute ch_id all chunk/atom bin/1d x lower ${fraction} units reduced +compute ch_id all chunk/atom bin/1d x lower 0.05 units reduced + +# 2. Calculate temperature bins with VCM aka COM velocities removed. +compute ch_temp_vcm all temp/chunk ch_id com yes + +# 3. Compute per atom stress with VCM removed via temp-ID. +# The velocities from specified temp-ID are used to compute stress +# Stress/atom units are pressure*volume! Optionally handled next step. +compute atom_stress_vcm all stress/atom ch_temp_vcm + +# 4. Divide out bin volume from xx stress component. +variable stress atom -(c_atom_stress_vcm[1])/(vol*${fraction}) +variable stress atom -(c_atom_stress_vcm[1])/(vol*0.05) + +# 5. Sum the per atom stresses in each bin. +compute ch_stress_vcm all reduce/chunk ch_id sum v_stress + +# 6. Average and output to file. +# The average output is every 100 steps with samples collected 20 times with 5 step intervals +# fix ave_stress_vcm all ave/time 5 20 100 c_ch_stress_vcm mode vector file stress_xx.out + +#------------------------------------# + +# Piston compressing along x direction + +region piston block -1 1 INF INF INF INF units lattice +group piston region piston +864 atoms in group piston +fix fix_piston piston move linear 5 0 0 units box # strain rate ~ 8e10 1/s + +thermo_style custom step temp ke pe lx ly lz pxx pyy pzz econserve + +# Atom dump + +# dump atom_dump all atom 50 dump.vcm + +# # Image dumps + +# dump 2 all image 250 image.*.jpg type type # axes yes 0.8 0.02 view 60 -30 +# dump_modify 2 pad 1 + +# # Movie dump + +# dump 3 all movie 125 movie.avi type type # axes yes 0.8 0.02 view 60 -30 +# dump_modify 3 pad 1 + +run 500 +Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule +WARNING: One or more atoms are time integrated more than once (src/modify.cpp:296) +Per MPI rank memory allocation (min/avg/max) = 4.916 | 4.916 | 4.916 Mbytes + Step Temp KinEng PotEng Lx Ly Lz Pxx Pyy Pzz Econserve + 500 294.66041 274.19441 -1982.1097 144.6903 64.3068 64.3068 645.25795 1119.5337 1118.3006 -1707.9153 + 600 357.88641 333.02897 -1951.8158 144.6903 64.3068 64.3068 2176.0343 1929.2787 1981.8479 -1618.7869 + 700 418.41159 389.3503 -1912.8337 144.6903 64.3068 64.3068 3702.2875 3043.7607 3081.1607 -1523.4834 + 800 483.71102 450.11428 -1875.7955 144.6903 64.3068 64.3068 5254.3875 4190.9789 4158.3561 -1425.6813 + 900 586.0893 545.38176 -1870.9313 144.6903 64.3068 64.3068 6509.1439 4756.2216 4724.7086 -1325.5495 + 1000 686.32946 638.65962 -1874.811 144.6903 64.3068 64.3068 7515.1606 5193.049 5261.8688 -1236.1514 +Loop time of 0.656417 on 4 procs for 500 steps with 7200 atoms + +Performance: 131.624 ns/day, 0.182 hours/ns, 761.711 timesteps/s, 5.484 Matom-step/s +92.8% 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.51672 | 0.52334 | 0.53259 | 0.8 | 79.73 +Neigh | 0.045091 | 0.045915 | 0.047402 | 0.4 | 6.99 +Comm | 0.060735 | 0.071794 | 0.079302 | 2.6 | 10.94 +Output | 0.000208 | 0.000389 | 0.000926 | 0.0 | 0.06 +Modify | 0.006007 | 0.0061595 | 0.00626 | 0.1 | 0.94 +Other | | 0.008815 | | | 1.34 + +Nlocal: 1800 ave 1811 max 1785 min +Histogram: 1 0 0 1 0 0 0 0 0 2 +Nghost: 3713.25 ave 3727 max 3702 min +Histogram: 2 0 0 0 0 0 0 1 0 1 +Neighs: 161477 ave 162958 max 159732 min +Histogram: 1 0 0 0 1 0 0 1 0 1 + +Total # of neighbors = 645909 +Ave neighs/atom = 89.709583 +Neighbor list builds = 15 +Dangerous builds = 0 + +unfix fix_piston + +run 1500 +Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule +Per MPI rank memory allocation (min/avg/max) = 4.541 | 4.541 | 4.541 Mbytes + Step Temp KinEng PotEng Lx Ly Lz Pxx Pyy Pzz Econserve + 1000 686.32946 638.65962 -1874.811 144.6903 64.3068 64.3068 7515.1606 5193.049 5261.8688 -1236.1514 + 1100 709.7333 660.43791 -1898.2844 144.6903 64.3068 64.3068 7932.8638 5334.6171 5364.5335 -1237.8465 + 1200 713.27253 663.73132 -1902.4588 144.6903 64.3068 64.3068 7957.2574 5500.6231 5538.0516 -1238.7275 + 1300 705.44796 656.45022 -1895.1575 144.6903 64.3068 64.3068 7996.7265 5584.6233 5538.2494 -1238.7072 + 1400 711.86463 662.42121 -1899.8416 144.6903 64.3068 64.3068 7674.2462 5292.4915 5294.5366 -1237.4204 + 1500 742.18946 690.63979 -1924.9562 144.6903 64.3068 64.3068 6047.915 4056.6156 4014.4446 -1234.3164 + 1600 762.81764 709.83522 -1939.8563 144.6903 64.3068 64.3068 4185.5873 2530.0572 2576.1943 -1230.0211 + 1700 754.40428 702.00621 -1927.7337 144.6903 64.3068 64.3068 2662.7604 1509.1985 1484.7252 -1225.7275 + 1800 721.03504 670.95468 -1893.5556 144.6903 64.3068 64.3068 1765.8783 835.89765 861.9432 -1222.6009 + 1900 689.64162 641.74172 -1861.8886 144.6903 64.3068 64.3068 941.58148 312.93205 409.79901 -1220.1469 + 2000 650.79664 605.59477 -1823.9889 144.6903 64.3068 64.3068 543.39234 28.48735 80.396505 -1218.3941 + 2100 616.04072 573.25286 -1790.1764 144.6903 64.3068 64.3068 308.16444 -235.20997 -248.22531 -1216.9235 + 2200 587.18712 546.40333 -1761.8878 144.6903 64.3068 64.3068 37.044801 -476.50396 -470.83059 -1215.4845 + 2300 562.84178 523.74892 -1738.2239 144.6903 64.3068 64.3068 -139.28348 -711.17273 -730.80877 -1214.475 + 2400 540.48362 502.94367 -1716.3529 144.6903 64.3068 64.3068 -320.98222 -951.2066 -943.93966 -1213.4093 + 2500 519.80431 483.70067 -1696.1896 144.6903 64.3068 64.3068 -471.61317 -1088.8457 -1131.5396 -1212.4889 +Loop time of 1.97213 on 4 procs for 1500 steps with 7200 atoms + +Performance: 131.431 ns/day, 0.183 hours/ns, 760.598 timesteps/s, 5.476 Matom-step/s +95.3% 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.5455 | 1.5599 | 1.5723 | 0.8 | 79.10 +Neigh | 0.16844 | 0.1704 | 0.17237 | 0.4 | 8.64 +Comm | 0.19002 | 0.2047 | 0.22068 | 2.4 | 10.38 +Output | 0.000525 | 0.0006785 | 0.001077 | 0.0 | 0.03 +Modify | 0.012434 | 0.012601 | 0.012777 | 0.1 | 0.64 +Other | | 0.02388 | | | 1.21 + +Nlocal: 1800 ave 1833 max 1776 min +Histogram: 1 0 1 0 1 0 0 0 0 1 +Nghost: 3702 ave 3732 max 3674 min +Histogram: 1 0 0 1 0 0 1 0 0 1 +Neighs: 129380 ave 132578 max 127003 min +Histogram: 1 0 0 2 0 0 0 0 0 1 + +Total # of neighbors = 517520 +Ave neighs/atom = 71.877778 +Neighbor list builds = 54 +Dangerous builds = 0 +Total wall time: 0:00:03 diff --git a/examples/vcm/in.vcm.lmp b/examples/vcm/in.vcm.lmp deleted file mode 100644 index 41d7665c49..0000000000 --- a/examples/vcm/in.vcm.lmp +++ /dev/null @@ -1,82 +0,0 @@ -# Removing Binned Center-of-Mass Velocities from Stress Compute - -units metal -boundary p p p -atom_style atomic -lattice fcc 5.3589 -processors 1 * * - -# Defining regions for box and atoms - -region box1 block -3 24 0 12 0 12 units lattice -region box2 block 0 12 0 12 0 12 units lattice - -# Creating box and atoms - -create_box 1 box1 -create_atoms 1 region box2 - -mass 1 40.00 - -# Adding energy to the system - -velocity all create 600.0 9999 - -pair_style lj/cut 10 -pair_coeff 1 1 0.04 3.405 - -# Begin time integration - -timestep 2e-3 - -fix fix_nve all nve - -thermo 100 - -run 500 - -# Chunk and stress along x direction - -variable nbins index 20 -variable fraction equal 1.0/v_nbins -variable volfrac equal 1/(vol*${fraction}) - -compute ch_id all chunk/atom bin/1d x lower ${fraction} units reduced -compute ch_temp_vcm all temp/chunk ch_id com yes -compute atom_stress_vcm all stress/atom ch_temp_vcm -variable stress atom -(c_atom_stress_vcm[1])/(vol*${fraction}) -compute ch_stress_vcm all reduce/chunk ch_id sum v_stress - -# Output stress profile in x direction - -# fix ave_stress_vcm all ave/time 5 20 100 c_ch_stress_vcm mode vector file stress_xx.out - -# Piston compressing along x direction - -region piston block -1 1 INF INF INF INF units lattice -group piston region piston -fix fix_piston piston move linear 5 0 0 units box # strain rate ~ 8e10 1/s - -thermo_style custom step temp ke pe lx ly lz pxx pyy pzz econserve - -# Atom dump - -# dump atom_dump all atom 50 dump.vcm - -# # Image dumps - -# dump 2 all image 250 image.*.jpg type type & -# axes yes 0.8 0.02 view 60 -30 -# dump_modify 2 pad 1 - -# # Movie dump - -# dump 3 all movie 125 movie.avi type type & -# axes yes 0.8 0.02 view 60 -30 -# dump_modify 3 pad 1 - -run 500 - -unfix fix_piston - -run 1500 From d50a62f827479ca24d5f7e6393981a4af72ba373 Mon Sep 17 00:00:00 2001 From: Tyler Collins Date: Thu, 12 Dec 2024 18:32:46 -0800 Subject: [PATCH 04/14] example readme updated --- examples/README | 1 + 1 file changed, 1 insertion(+) diff --git a/examples/README b/examples/README index 90831b49f0..b25dda7d49 100644 --- a/examples/README +++ b/examples/README @@ -107,6 +107,7 @@ reaxff: RDX and TATB and several other models using ReaxFF replicate: use of replicate command rerun: use of rerun and read_dump commands rigid: rigid bodies modeled as independent or coupled +stress_vcm: removing binned rigid body motion from binned stress profile shear: sideways shear applied to 2d solid, with and without a void snap: examples for using several bundled SNAP potentials srd: stochastic rotation dynamics (SRD) particles as solvent From 0c91880192bbcab74aa70b7f6df851c3fe0532e4 Mon Sep 17 00:00:00 2001 From: Tyler Collins Date: Fri, 13 Dec 2024 21:10:37 -0800 Subject: [PATCH 05/14] updated compute_temp_chunk doc --- doc/src/compute_temp_chunk.rst | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/doc/src/compute_temp_chunk.rst b/doc/src/compute_temp_chunk.rst index 33eab04343..daab7fd828 100644 --- a/doc/src/compute_temp_chunk.rst +++ b/doc/src/compute_temp_chunk.rst @@ -184,11 +184,21 @@ temp/chunk calculation to a file is to use the The keyword/value option pairs are used in the following ways. The *com* keyword can be used with a value of *yes* to subtract the -velocity of the center-of-mass for each chunk from the velocity of the -atoms in that chunk, before calculating either the global or per-chunk -temperature. This can be useful if the atoms are streaming or +velocity of the center-of-mass (VCM) for each chunk from the velocity of +the atoms in that chunk, before calculating either the global or per-chunk +temperature. This can be useful if the atoms are streaming or otherwise moving collectively, and you wish to calculate only the -thermal temperature. +thermal temperature. This per-chunk VCM bias can be used in other fixes and +computes that can incorporate a temperature bias. If this compute is used +as a temperature bias in other commands then this bias is subtracted from +each atom, the command runs with the remaining thermal velocities, and +then the bias is added back in. This includes thermostatting +fixes like :doc:`fix nvt `, +:doc:`fix temp/rescale `, +:doc:`fix temp/berendsen `, and +:doc:`fix langevin `, and computes like +:doc:`compute stress/atom ` and +:doc:`compute pressure `. For the *bias* keyword, *bias-ID* refers to the ID of a temperature compute that removes a "bias" velocity from each atom. This also From 1188c38e73b5c74f4733c24f8a4d01832162ee96 Mon Sep 17 00:00:00 2001 From: Tyler Collins Date: Fri, 13 Dec 2024 21:15:24 -0800 Subject: [PATCH 06/14] updated docs example page --- doc/src/Examples.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/doc/src/Examples.rst b/doc/src/Examples.rst index 3d2103fd6f..683cbd0500 100644 --- a/doc/src/Examples.rst +++ b/doc/src/Examples.rst @@ -146,6 +146,8 @@ Lowercase directories +-------------+------------------------------------------------------------------+ | streitz | use of Streitz/Mintmire potential with charge equilibration | +-------------+------------------------------------------------------------------+ +| stress_vcm | removing binned rigid body motion from binned stress profile | ++-------------+------------------------------------------------------------------+ | tad | temperature-accelerated dynamics of vacancy diffusion in bulk Si | +-------------+------------------------------------------------------------------+ | threebody | regression test input for a variety of manybody potentials | From 6124631a657470cfac125e2c77a961a3cac4941d Mon Sep 17 00:00:00 2001 From: Tyler Collins Date: Fri, 13 Dec 2024 21:18:10 -0800 Subject: [PATCH 07/14] updated readme example list order --- examples/README | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/README b/examples/README index b25dda7d49..633fbbc49d 100644 --- a/examples/README +++ b/examples/README @@ -107,12 +107,12 @@ reaxff: RDX and TATB and several other models using ReaxFF replicate: use of replicate command rerun: use of rerun and read_dump commands rigid: rigid bodies modeled as independent or coupled -stress_vcm: removing binned rigid body motion from binned stress profile shear: sideways shear applied to 2d solid, with and without a void snap: examples for using several bundled SNAP potentials srd: stochastic rotation dynamics (SRD) particles as solvent steinhardt: Steinhardt-Nelson Q_l and W_l parameters usng orientorder/atom streitz: Streitz-Mintmire potential for Al2O3 +stress_vcm: removing binned rigid body motion from binned stress profile tad: temperature-accelerated dynamics of vacancy diffusion in bulk Si template: examples for using atom_style template and comparing to atom style molecular tersoff: regression test input for Tersoff variants From 03fff14922e51ca6b8c98e4b7f1a3128ccbb3a73 Mon Sep 17 00:00:00 2001 From: Tyler Collins Date: Tue, 17 Dec 2024 20:02:38 -0800 Subject: [PATCH 08/14] example name suffix removed --- examples/stress_vcm/{in.stress_vcm.lmp => in.stress_vcm} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename examples/stress_vcm/{in.stress_vcm.lmp => in.stress_vcm} (100%) diff --git a/examples/stress_vcm/in.stress_vcm.lmp b/examples/stress_vcm/in.stress_vcm similarity index 100% rename from examples/stress_vcm/in.stress_vcm.lmp rename to examples/stress_vcm/in.stress_vcm From 4b1a8d1a783e259bcf78c7e4caf89779fe8c66c4 Mon Sep 17 00:00:00 2001 From: Tyler Collins Date: Tue, 17 Dec 2024 20:06:04 -0800 Subject: [PATCH 09/14] uncommented output line --- examples/stress_vcm/in.stress_vcm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/stress_vcm/in.stress_vcm b/examples/stress_vcm/in.stress_vcm index 24dc86f6fd..f2ecdb29a7 100644 --- a/examples/stress_vcm/in.stress_vcm +++ b/examples/stress_vcm/in.stress_vcm @@ -78,7 +78,7 @@ compute ch_stress_vcm all reduce/chunk ch_id sum v_stress # 6. Average and output to file. # -The average output is every 100 steps with samples collected 20 times with 5 step intervals. -# fix ave_stress_vcm all ave/time 5 20 100 c_ch_stress_vcm mode vector file stress_xx.out +fix ave_stress_vcm all ave/time 5 20 100 c_ch_stress_vcm mode vector file stress_xx.out #--------------------------------------# From 7cd6c49a0db7739ed4a25d65ab9e0b6de91b9a2a Mon Sep 17 00:00:00 2001 From: Tyler Collins Date: Tue, 17 Dec 2024 20:26:12 -0800 Subject: [PATCH 10/14] added line linking example script --- doc/src/compute_temp_chunk.rst | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/doc/src/compute_temp_chunk.rst b/doc/src/compute_temp_chunk.rst index daab7fd828..2850d3301b 100644 --- a/doc/src/compute_temp_chunk.rst +++ b/doc/src/compute_temp_chunk.rst @@ -184,21 +184,24 @@ temp/chunk calculation to a file is to use the The keyword/value option pairs are used in the following ways. The *com* keyword can be used with a value of *yes* to subtract the -velocity of the center-of-mass (VCM) for each chunk from the velocity of +velocity of the center-of-mass (VCM) for each chunk from the velocity of the atoms in that chunk, before calculating either the global or per-chunk temperature. This can be useful if the atoms are streaming or otherwise moving collectively, and you wish to calculate only the -thermal temperature. This per-chunk VCM bias can be used in other fixes and -computes that can incorporate a temperature bias. If this compute is used +thermal temperature. This per-chunk VCM bias can be used in other fixes and +computes that can incorporate a temperature bias. If this compute is used as a temperature bias in other commands then this bias is subtracted from -each atom, the command runs with the remaining thermal velocities, and -then the bias is added back in. This includes thermostatting +each atom, the command runs with the remaining thermal velocities, and +then the bias is added back in. This includes thermostatting fixes like :doc:`fix nvt `, :doc:`fix temp/rescale `, :doc:`fix temp/berendsen `, and :doc:`fix langevin `, and computes like :doc:`compute stress/atom ` and -:doc:`compute pressure `. +:doc:`compute pressure `. See the input script in +examples/stress_vcm for an example of how to use the *com* keyword in +conjunction with compute stress/atom to create a stress profile of a rigid +body while removing the overall motion of the rigid body. For the *bias* keyword, *bias-ID* refers to the ID of a temperature compute that removes a "bias" velocity from each atom. This also From f809aee52f2ffdfe9ee33564394663231756cf3a Mon Sep 17 00:00:00 2001 From: Tyler Collins Date: Sun, 29 Dec 2024 22:31:35 -0800 Subject: [PATCH 11/14] uploaded dated plot --- .../stress_vcm/stress_comparison.19Nov24.png | Bin 0 -> 90891 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 examples/stress_vcm/stress_comparison.19Nov24.png diff --git a/examples/stress_vcm/stress_comparison.19Nov24.png b/examples/stress_vcm/stress_comparison.19Nov24.png new file mode 100644 index 0000000000000000000000000000000000000000..c37a3ba34586f02a45cbc8c0a0e91ef29811c75b GIT binary patch literal 90891 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%0AE48Lwwm zn~QEqI?nyMAU@JYziH_E8DS{O6Pf58Sx9^6&D^_xf3t$Z;a_2W6`?G= z`Mh`i)+3K;X&D4JIOQ};Rc^Iym1FKx8&oviLER`)EU+) zZ}!H1|G~#oy|eQ=tJ-PsD`Y3aA*vg?=xfRu?FfSKr>Q-))yTirV=+m!Anv@8?gi19 z^!r>xtK~`t`8Os!-OTSfQnbt*XB1afp^@?8u}eUtgDTo}ZLV`a8`+p^!H!W*epN$) zyAElNYB>Ep)qo7YG+R<`bs+Aj6_V+4aw^6{fV?+Vpe7W@q~T@QpEQnNxDy zP95TQ(SI}P?lReF=xNzae(%nm?0~Cx+OqB2b|DrM{z+8|7Am5Qr7bPo*#8;`@gwO= zC^nYO=>x7@aL*oYBr|*B955FJe?sitjz^CkX&yP!%SXgJ!2OKR*r}*i!nR|}CvDE0 zNrZoBT;%N)vH%0e@n_{4K*!aPn2M1EWZkss2JqD*BL}D;$cjmz3Sas=p!*OB1C(_cySJBd1LQkdmlEflhU6L3BdiwLjwUeldn6KFldP=hX zn^NH>5bqZ`4pY>U8b|nD%se}v*JnXqh7Nk&<9dbF^A|5Bst;^lm(e8hA4MLy28{>1 z>>odQLXFfK(QyEZ_ajO1I6eI)QiuW=VsI^hrc#Eu7Q~;k9r=4e1FA-VQ9cAPthcbU zV@3`Y{JpJBwHgDx+iu>5}8O$>NCJ9qWlf}g+t?H8U!jJh=!`6we~m5Dzo zL4h31gNQ)|fd0h=G#zrZ5vq5@Slc4zaOjzt%SmeAK2G+`+WF~`Fht{ts!NswtG9B( zJR&@tnSK@ZXrU>vC}!M949DmLL=Z@{P{_Im-`clvSp8Yx->;~kKn}^ID#Uk1<#HQ|@Pf!9*0Wj}6NN=Bw93tsdeBu6a4D_^~S?T-mj4sqk+IQ?W~O^Fcz z&nOs95(&*AelT*zV~3NoGl>zAxCTriif>ZV7NjP}2e*res30bd(64D+kKY?RljF~l z6Nt>9^sW2BVo3EV9v;;by57c}*(xIJ7RF+SH$G^lJ8FyR!bI~z)r=|5SM#Tj+;i4J zQ{GR~J!6FnH+iql4%7)f+~<0ex02qs>A`U`%oP-8*|)Ls@!cFAwu7cW_2ymf?iPjJ zU0zak2r8PLKvvnebdO19W+qu7B9b6bLHaQE76e0D3N!C6W{6k*5S7W%AVJbBK^Yk~ za7m)u%tU^; zkOO+7W^X_T2rxognJMTdf~q5TW!pIm&>HQ9iP;X4snFv_TK^Q*RNlrkbT|s zJ?YSTI5FL`e}0l!G#xV+#mJ~hrvDmhS4mS7C*q#B+McDQE&e_>L33KQ1+>$V%!y<} zLJkklDK_|p+C*p{NVZXb-(m0Lr(3epj%x2$BxhpXP4=N3vh@aPVQjxnc!eEMqpHlx zu2e31>tB$W+`imaBU5WX;%>Khfs6KA=*kOi`V`ZvgIf8){?GqrgjEcQM(Y|GX@5=? zJ3c#`kpSHYfVUit09a-%@j;m!DHg~(gP4@Ua?(;zQdB%u=#`g8rU2IQ@tLKRafwxf zB%{r{EzU|Keqmv4O@pe7VZY*U-)^TqOG#ls0)ohK#74mq=GsufZqn5$jvs2n(tz_j z_lwW7GIn-80K%WV`5x9o$R{R)0CABpczFPV3C}*P%zOvlgT@0)+g1I)giJ>lAYdls zMgHM!Y%S=}N-183fmex??+=sIC)CDz__s0d=7h(0g$lK&ZtT2t+EXlT--c^b0P(8E zgl}(pAF@13-veZpL|mok!e9*AaY6ipO9>TZtu8f4D=ub9^e23}>9SIgrEkZp<;`VM(Qc}u)_w_sv z)k18`t)wIWOBr;?7f&e!5yu?`;Xy`wi0@5ND*U^&Fw$i|TrhpNElaLmWxRJ+zU9sX zW@vrhf_2TFN^2`t`Y!EkD82RPWooizZ(?n~?HA!&nux+ugA4)Sc-@*i&^vhxS&Gk} z1HeQbsw{2D2ms=jSFu-8n&x;gtg{(`42W4yV<{7rboJICqZ=Z{wio-jvboz7JUp+j zb9`-e=;qIZwh>;+xsa!$vd6r8cs0)z!bFL5`1hU+J*sE?TYhSf?lU`aOk+-PXVT>_ zJ6tk-n3b2DI`(aU^sMOR6Ato{4a11rJ|yY0vGC)u`MPgfoLgH(4eRgU|D>bOz@x?J zc4tPZ%4<=SH@V{KH$)r^Hr@a8*XEzCc~}4HQKh3AlTC&R?>;Hr1T8nrJS`BR|N6yq zIj~{PhJUZ_sQz8FFC>yZe`QK1P2fO(P^Dq>llxz^%;U0`b_>4`JxOvC28xWNFg(1; z&RaQf{tRWuhU$YenQ7-Y3`u*alY**Nc#1F&%{>a*UrOH1?lj|md20Gx=uB+IzbpBl zTVCta*)tP;E>-kN!AsQ*?|u#Gc;0LY3pefUEfRaWi;zT@f7hhsE4?-5My837_4N${ zLVxv*8};`8>Few<)6Mv|fa|?d1p*>ju3vo=(ri^WEW-Qqnf`J1k^_hD869L$p%;wW z@&7Zu(n}LM6Wvg!tE%rD2QJ%G@!E}=mE3FJ_r~}Gf zjPW+S^8mC*N=gdcVYSZtEB2Tl326G6>(HqLZH?%{WF!yi2vW$PFLH6Qf8~#dCV_6L z3_hg_z71JG1@DM(1nJQ7@cy^gxFsqJD^t@HaDJ*QXIqRL^!n`eBe(?(f7&r@?GNj`SV_{IshXCIl|Vlv6a#uMpzR?${%RO_RIZ1pnPfydI&MxpcWHuKJfh+ zaZgv1Fc9Jnkg_ShWOfU_NCmv(Zm6V|WkKY10-A>plNT!B)i%=Z6Q?m5K|>+7D@wHm z!U3_s^WVOGt9^QylXP+vU5YQLkhp0ME7}nRIAZPN89;2rs~tqxLflFcf$0ccIemIn ziUA{1W1xbMq2r)-mScr-`uAaYjgUUR%W#A<9vSS*4s}2ef7s@(;L^1SBL7tpYcq;o4=#1@sPdaudl48VX7< zdAkFq&5k_SwFb`9HTa5P*WJj^V5p8tWcb{jsgoc~>oFEU?4DmW@#cdO@yHRkyJTJb zandRdEq1e<+y+ibvj9X8T}^d~wFzBa8WCcOii!$_JYNK6HWV#Q^WtR-uP~#D!Bk$f zs8tlZwyZT^5;>l8GAFa_=1M$frOBH<0`4Zvw%WkLDXCN`xZ9faq&HZ`)=&Dlmc3e4 zwgi3~()h*b*1cC>0R|FPkBpPf?0Icf!MO8cI~QJKQjUp{-mk=HLHkL-tQ{F~MURG- zk;alGylWQ+2{8c*5M=>2-cKlG{nKcZWoWRNKhr><2g7G1QIKLV&yZ0Zj9Fxow>GUo?8JWC7TV$!1Cj0%hn}Cx}(P>WPShtSK$jE4v3o0%C zpKweH=sOkgVX8iq7{H)Qc!kasDe&8!COQRYFS2E%aSAWZriDt%#KoEW_R70U)f-6k z(c>YAZ{124F5TSH5|z^l1p-4Nu!g&Xl3a$H*Wm#54FYXU-XwGX78fpr!JDU{AUU&c z!-hchFpj7e4p{AA?&-mHRgr>7#{RrH1ooM+jBTBekr9DFhT&On6Lq`=X9JvQDhlD@ zuq5$fi-U+BQ&HeT5-wy`=*fU^6nR+(BJjU{UBFB5oedlzI4Fn? zVGDvP$>6fTv3Ssn7or)#4shs*%Y&gd_nJ;dBp zO!X$lub@hkFaja(ctT|u$Rar{xGcn8#+bAk3=8HpYurC@Bl-nU|BsJCjXW7 zLvG#-dhHpUm*kCgYzzxFOU{yRCCFEEMdQRFARdQy+Pk$T$vLlSS$pU=n=vjMLw7cPXS4)oZMVu|KPJ+GNQI)CcmD*?w|xJ zUY3FA)4Rsx@}*0v82oK|KP8PE4qn4E4jc0cObV#U6OTkDu&`Je)abYAviv>F|09#`CrRo(Cg^! zHvKGScEaJGcHZw@`_?Ns!F=8sfF#Q%3;nS{@|NNPEy)MuP}KYeJ#6XW4T zXM)2(COK6s{cj9DM*x?Mv4B=;y-bAHj6Z^PV?=!++m0_CW651zCD$;2 zFFl9K`N-S2a|}Ju!l2AOsjVzVgOX37rQf84wZ07wfwjDZzi~4X&i1 zz`#qBgXCpO$T0=rANK1dCMMpBjHE!6h`87mT#K1G`t2okZIU_yUdjds)pb|7E>tf> z4V&2Nq^-ZL_iMdc^=l+!;F*$%ZHVKf*RI>Rkr}xmOq?uSb1nMInov2!PsgFg9i+)a>-^<^ z7w40N=yLG-kVgvc{^&c%T9rb>ROycVisC5%6p2&o4~T=pdF%fDP?Ft+!~tdIUkDS8 z%#1Y#_lOs|fRS569VcTiSX2XB4-}9G+Juhi4mmqu!X^l>r+ z%^_(Pj+m~q%m0^GRR8T;DR2qNW@1f*HgBc|E8C zLTYs`Fs2X<7q$zTbO%%-k|O5cp2@U{9af-bw>^f?v^?r|ZjuCgA{l{BK5~y5!5cE1 z1R1*&si>Tv3W|!iZr`ScI!i*Kb#?0yLe38mK=k0h0hgKm#i$NSb5jywzPe^TH4>06 zkPE{LC44cGfKiLP*O0b`u2cK&f>EyY&!qW<_8G}t!c1|CrS3L)v`F-QoZ216ySE_hbW%UfGhgha#V&Wfv_&ZmUcwFceR zHHhxn&;68H(=F~=UJ(D$RiHlcKzF=d7->gD+7wF*ai~9NV%@}39r7keb*W0nSq^2X zp}OW(j8E<_q@H$pmPX+^DUG{6@e|1#PcSVnfEvW466LaLO(tp@x4u9p%F zVAu5=krDHf+xg+^_L(IC>o}ibVJcM!euJje%=@}R~fa3U}l|N46-re{p zQ;UQDp_e=U8Cxq%KC%9PH!@_TJri1Ey~qZdGm*uw|DSK+`p>s)Fn^zRFBflpF*ux} zt@I2F^xb)j=9jM-PZ~*r+MJKv0kwdvkw5%lNH4nIA|#WuqGj0C7X=e{KD@;W3==?J zbxFm#F)AS6RqvvS?iQ8ogM=45g!yaIJ1c5Y@I}3ChC8U=fIXC!lu(g@gZlaa01ph} ze;uj8$SW#F0z!{ysDDS=I3>*|d|HlbYN|lX#VffO$(zl9s}Ujl*?^co^ZlLYs1dA% z{s-!)lfL8sK?C3EJ(3kny1HE{JoA(y&A{`J)aP=Y$vq4zR@-fq1bf8<@Y+adO?WwG z3Kfjjgk~;^>qot4+p5grjk{Dni$}~#jV|d5ye-NI;s4p)J znM-)d7qK&7YM~W&4?>7dKq-UlP6KHykRq3^D zBgXAGZ&z(VpRMr6p0y!R6)5J`yO zYu9MNDk3n{K~eetZ?JY@hUEWZt^RTug9C+v|L^OY=;~lu~KdOrc4GN`oe)Bs53^64G3#XreTep&2EW zXwW=Q`*ZTH^;^eYYp=ccajf^R=Xjr<`@XO1Ih8G7l z(Mm{0UqdEIZXhuO14%1~$%hz2D9Zm)JQ2kZdPI^!0Xo7Lx0^?))M3mW9S$PTy88Oo zphh6-Op@#;w6oy9Bu~NcUP10iGTP8A>DCOW(#(o46;4ux6?ZmkYAN%{`9HP$AXTf8 zgyT_*qsP*Eg!9vtD^4v!{N0Chyo?W}x*V23-wKVy4*+aV^B^07(9~j=TS56h$ju_! z<>`oXMrv+e-p2w*3*h}Fjk4e@h;)#!AJ`qfqopDJE`W8IYLr>W@+ z#FYpVfJ8%63!D@dp5FdOBtD=KFSz)71NyrV2nk7)0#TXw!(dHxxP)3G9smRpb;ww{ zApBw-1qLUgv$B34Uo*6YHV~f_<(a%0;c~%HTV0UD4oZP`lq>S&f?BZGrQG>_(`nXo zjq`3Z)XUr4BdCKIRcJ%@8PqcMIPdZpu6Mb8X?}y2^T=K)2HFRIyv*C~>g0N1KYd~vAx_O*2=@29n50HdV0{xueId;Hy^z2;Q1}tk**OHU;%o!S-^#ouC`-(lv@6>|TV;3L2 z42v$$Z$|Tq9+^MqJ$lI6bMt^tz7Grt>Tv=s*3r>;ZhY&%Y1(FD=cnbjx{uskK5^#u zU0;i;M6XQiNGF)J_Pcp|4p>ZH2??tm zt*vY1?s$Ex*XkFq%!F!YkH3(0L@Bi#Y>_fhGHT&m-YY^ z=})mP)nQ#DF#v=uCwB`q0CG7)anmetn+g9yAt@?EcTY_2cml-eLwxWDcf0|JM40^r z*qvK*t>}P%`2&LL2JZtXy#i+j3E?426JLVASH*V|^(z*dIpTzXPN;x+ArUutmC>5{ z+r1(thW82AkcnfCQ-+uVQSh1B*%@Ze^LqXfhlG)I*>FHWi5CQG5MhnsE>OW4i!S|e z)WIEuRCG&6=p^|y*riC=7}{GT*95~LsrMMD4f%0Eyb2RPi}0d}!(Dlct+Y2t`)5zj z?E&_touYZqpTEWSd?PXv>K#&R4zD$9OWTw|82v zPx$y+w=_)R##7a#yOJ>|J&DI2iVTzy9V0m;Qz~ZZvbyHd%UmuEb)BO_$t8S?&>N7h zgZP;z9|7)S05|HFn!1ZZA{huzj$D#EeOkJ@2+kn-3&4%x;B=6kv5NRx5M)YXR^YYF zbQJ(CzI$`bDZTysSEHuU)Dww6Jdc;rN#PU-)=G4WBy|mx3)Nq430sMCAGU8+VuHlY zxgthvH>eiO02s2MR|5ip=S7E?9j!Y$h#Rk746;M)^Tcravi(n-tAFYIzs@HtCgL3? zI}J+XiYAirgpdm)ufzO7)E8xCW#YjC(Gy>-Zr;3kBPuEo56=vGy;CJ#GDMCC*bTOi zb?DjEu(UwXxhYu@H&J3DJ+gG*-GYib*6jk|I7%51>yjC_5u$YkzKXq?FgZ&UA`u1P z4WxncH=bjtU6SBvP%M#y$HPN5t7Q;~6|@Lcnlr(=@}3XQIi3C}`<8EAiP!7~a>GuX z@Pjk>;0}SD>x1kmC$zK#90#+3elA+*lz&i2YZLHTChV#`-)OCeY*Wz94OSKlpDd@} zYnXCCPE;@!@XW~LxUTa=p}sSsRFNV?6KKV-Wi##SZRzDr%qNe1dw@(zA|~Pn!+?gh z0zIt5pRY2|j~e{(+U9*h^-n2L9pE$u9_&X{2g4m4c<6#Hmn>JM$n&)g?EcdC>sR$+ zX^vypr`@Puf7Svih4^wENLBnjQ9&ZA$B1$Drl}9u0KuP{&x~|AI6M0zg^U20Xk*L2 zeJifmTMbj;59|@AirmHYbaB$-eu5lxN-imx|0CDo2!$8gUftPY=UqM);2C;k_oB|d zg0r63SoQ(JcArj>ZnN8cI9u!4v5(z~KkWy!tJ_b0`lk~;dRjLgx_i(G{{<`D$NNd~ z1xWw^k8JD8UE8Wruo3NO_yD}*L_CT+R49v`q1%{e&z{?I!KZesLtg;dXb^OPj^_!e z=*`O&;AJdaRjjUMEu0mWE2b+15q448?r3p|4P$S^zdgH_pOOB^MC0h`30dzedw6x8 zYuQqj>t5KcJKg=*GmKqkL+Qd89Z878;vsrlEW7Th7Q`T7&x4D7*K`a4`2Gjs!<%<` zPuK1LvSZ-TZj+sNV|ceN6%f$o%ttEhV=&NQzwNtz7Hb{IJ7Hmnp_nKO($WNxKB8&6 z70L*lK6QtmaF5?NX*_-cslqs$96CQ*fr)llTDXMM@^{~_*wnL6--h+0a3K0;*n6s= z#S?{&nP6Ku$4LCK`gQiTfGmjU7$q5tqL(yKX5t~DkTx9mPYkifC?ui0bjl?oma;0XJ%OyoPe; z)Y+cc?<xPxNZdlPCA74ckR6z;=@k63g0Tr~*!6Dm7mBcl~fOQ^~TQCc2G}N8!(fV2XfKx*CsyvPh z$TCT7M2J6-u{J1WTcsBuWFoV}#5{fzGvwmI;zqG)tNJHIO)B-#OFtlo|2h z_mY!|Fplg%DD{7}WNia)0=Fgs`*El{wa_DI3ChI}$W$L}e@+K3<}K<9jq`RWnmH9b zD$Z9y0R-fq7)_(M5j!>j9b#o8fp4e=XF$z3LN!VG?otn*zAD7+cr6d7a!5dJs-~rN z)2QmmQEjy8xfg^rTN7S_@Db-@jk|ldZoSU#OwekeY^?9N;FwWX+p>0+I^f&!%DY9= z`nOh5efKipq~Y|*Y|o2zwYJ-L z?H~1wna-rRI$z-y8WZ{4*==|~C)G9TdF1Ud(orD|2?Ym`tT(V~X!UK3Y&afWVv2yZ zPaBO;7_cjP#nzQ7Yy21D6&)LuBcG%49L`}tHd+R*itqRFjn{g76s@#XIi#{m+t^#x zw<_yQB9Q}RZ3Cop!~Q+g7o(X6W5RA;VNBTCT)*y^Y4VS9)@|C>0G_!!eQm{v=%(c1 zk2V(Lq4oCD{{`#@57rQX6`o4Qay5v&sjnA43xEHR zHB5|Mcyp|avuMyMKSkQKjRWQi)`c5(ZIEyVgoD4Uj#25vRd$BSHAwXQ6udliO{1@; zwES};`#!~^2Mk=jb)+5}O-SCpmsycSwHO;DfhddF+7n|8s?}264ml6EJ$fl{#{7}? z{)}1a!kbh@wY6%tu8Jl$eaU_~JJ; zVY{GI_q~?$v1Rg6V>TxZpjrbY&!p$>2+J&-jba82oUmJRQE3(GL>pS@e-G5euhD#>iTu$@V!RWHX`UJS7n zO&|E7uIiEM;?h)6G}I^_#J4$XUN&vwW$*?0@=U?wBRlo9Y!gIkG?J1iJ&vqd+n`q2 zhgKMBd_Yw?e=NWcKsRsPJH$_3c!*8MZ0t6s8vK1WYu~mA+Zi38Ykpg@;6pDnJN!Z9 z`-ZOz4R7oQbdI!b2?<>ORyEYen!=g<_)*1|WA6ltZ4Mt#*mjPYVehOPuA*dUplu+zQXVyAbg#L~eX z;mhFWNVEuwPD1R0Ja%_ML(exIhb+w`Jz^R9pEM&k_4tr`Nt}n+hCt7etg#{_u4*N1 zTW_@^z-uyhyrZkacxlarERBAl!?o3cr*|R^*Mil@xazNq$#tSQ_7?H;#L+1<>o)Ha?N>e%F)| zWnM0^mOClxi$ja`!uOHxD!7tbP zNqdXh#Ij#>VjN4HKxj&H!XLA1oi7`MA36Q@iw+BMoh{i%1Z?@n4VoOs9<}$%zR2Cg zP*36dqqBGL=$^EDk^x?eTD+^zxN|?%_`=xql-o8$X`$&NARh2?F#mU5;RUWFEh9tf zQXH>upk!Y`fiQ#Ub#cm&0CnP*hdaU_B?tP(wJ`Wl%9NHD{E1Q%RRUR3s2WH#3K}N_ zXKV!&OoZAn#;@2kRm(2pw2Gias3}Q0GqD4p#76c6g@Wfm?A;h~f;Q+15OFw**4x<) zFen~CKp`Dx6Ex1al_(d0*1+AMidGYSWH5rOAmMzg&Go;o@yZvEDs2s9)>A_$Sy^ONi@w@3QPH1FNCssh4 zg&J)^Yx(jmh2wXC0F!LVO5k60boG{5I*0!E@|6&reqUd?F%Z2Jid1$Ej-1o4sYt*E zc?PF;3y*$H3ME#h5|3c}v0L8HQVr?m*fdfam*m-E&pfyjD12_c1;@8c|?Wdv)^bQpS^Q8 zbqK4y(wE7@4+M05LpCdY>FL(HO~Gz#jQmE@I|I6}nLG_!q#5ueqD*1&EahJWGVlR# zFVR3DNH$W=1^^AIYtTj!2|7sv0QaZZ8ja~YWJQ2@e+%6V(GVd#BjHO@Lc)5q8Ahl@ zP!tlz4Ug#Ir<=i1KEj~jNR^1i7lM7-3}O%Biil8Jx{4HwGAvvSxcF+f2|+dJ{gY8Z z6M_KUMKA=V7MPYo@x^1eK!ZYtet-c7Q5**Jn~Fk~8&O0-mJ1pSPNM)oAy~Eq!N)t% zg$qFZOeJ;|!iJg{f?}ix@=B0d6y24;ByzwwIw|St51Wm0eu8`g860J`wY2D+)ZtLb z7Xkf>st6gFM*1lEh|Cxr?FtHBf&d6^Ut^9#S~rwzsH4D9=6@YZAf!(Fu<#ID-NrQJ zI{*Ophib$O0v*Jq`a(el2{Jv}bdpX`tc}J3I~MZGdM7pUb@cFw6q)$|n+?Px<5cvz z3RUC^e)ino!@~@){Sfmm9Gh4<@Qqz8OdP=a1P=6;ZidWOLxoE&3mPeilZi79lIwf- z@B6{=L8K0r!haPu0_?pvF#?0G)^grzUVx5hno4Y!)px4SEd^^o3El6IC$)Rg*FM%S zNWAiSzTb6&8nr!6ysN(&IA~GFd)x@K8%>RB=A2!{MMS^5PCh#@s1{1!CiwrFWkV2E z0>uHIfYy-W+v2Is`kySDjeoOjkm!O}3J-$d0HoZq^FSlPW)pR z<{JQxW0!MX2L&qn_vJMW`b|VbFs37z7@p(2lIKaZ1^vp%Enq+EzfQBJuA(}vEb&?6 zRiaMLCF|SbNjGYf)A&_SrqvF--DSU35qJ?b43Z>xA8cmt-$-1D@ISQpblx)6Un{GVclV%#XfKE-_F;S-2M*;b1Jtjezly!;4GXVWDb+m zj+`BE4v}a#G?T0DIaJ#r#tmD+rJ|j8c|Db8&J|^~t%An;Hworv z`vrNnc9+N4--EYR?PxE9Ugm2Yy<*vgtYGKZ+h$jvIj>Fk=q0a6fH9ZV2wjM}+nQSu z$6C4bqxCiRvRE{kpKwqu*{kYz&nQIdX&huJqyT}%0rf?oRKxCFyVgR7b|of8FHn&W z>Nm&1Rxy({q+ckeCS;kGssoLHER&?(QTUH!pWu)@`)L(kME~&cqp2>$-qznw3sDb2 z?Qwx54j2ZTl{u$&x0E-*9KsGp2*E7P@?7{Ovc4+A2JTiN&Elm7&8xYMv~5&1sE zic_!qVgRLL11E4Wg{bb4-49()*wzbdFp?oy3TukOKUfI-fQbmoItq|1bH>&d3XUcJ zmW5M$ZbxE%;N1M?()=T)YHK_72QE(y)GM+F?mc|mqSEin)y2@@FHI7SWj7VW9bBRX zqbHrqT3u6YHp^|jb!EMc`A3&`GG3*B}R6 z{s%ny&nSWIkUTq+ zxSKz^yGQ$*1W~+%ZBybT=3Hq9E*KDka1Rl)OO!c%s~wSn0#=+nNHQM*PuBd?!$T=A zT<{ce&Rv1eg6vt?n}~Ldr+YCX8!WOQ5#S>A85QLN5?mg#k9@Z8n@f%m6bE3U1(_@W zYb%NG1$OjzS_p}Uf%k&w^GFWXkBYVRi3(du>3>tJmzROa>Bn@;!yL!&Tb9_LqYB*6 z%rd_TP_u)iBJ=EOt-)7In=%E<9Tk5z*%Yh0BtLrSyW-uE(S)NJS_6Zx<`h>i581G` zUY=YVV3l5|yJ4dcGr!>2@D^SQEM@<6MZqY^h&ziUlp=+OXasN)p6q9{PRYTHOt1oo zf#C)yMr4{sx|I=&8-zE}=3uJYzJ2@dK}Sv8=P^bPUphKCC?n&a?E6^wWk@T7_d`@{ zmyxdezt|jA01=ox6b#i2ah$AY+e6W0p~1{81UL{2F7Ek%MkpY$6BB0KNTdU3iy+96 z0^Up~4WOiOM-*+Gl>K#d92R&YGru1vX`CN`M>qsG+zchO=-$0QIrsY)LP20g_H1xJ zkk;ON{Fsal7!S&ygVqHi7v`m#9>_hBJvN_yKu*!B;w(VP?jv&cz!#){WS9( zg+sNd$p5>pXlF*D_C|<8$sP~5z~C;l;J?0$^2uE z7AB|R#UD-TakbKN#VadlJO2!u?6M#Gp1Wh+aOlJhpcP>I@(Wah2o zkc9|pe~DO=Pc$DIcum;Lu6G>kiJElUGdp;QCqQ+@<|*5Nkc9s2BdYT7v-^>t_c3 zDA^uZEZ%GhtBcyCtbZcF;)F;fA2ZjW3hhI!otRY7EDqpkEvgfU>%k6sX(NJByXoi? z*OH;py+ElxMVhyj`Is*wV4tA~&Ny}~u_g0E}lYl?DfPrVBBVzUskN~gc}`rYGUZT8N~k-PM=+#~e; zZgX=-{lkam{$A44RR?&-JWg)fPj%7G(kM`9J1-N>swegjUkeJxT|S|%tzN1&m_=n#))^_{ZuO0gRZaiIL|Y~k z>X@09g?hg|J{e;~aE75T|ASVFM5lT&oAgk`Y8Dc2Hzb7T_=>Td6>$E7p7lXgc!y0f zb)-#7!>}0gIJku5N<$6QXi_y4JSLRU86N(ML2EKZm0WW9uAm&?R7fKk&~t*BhroIT zdX)pVwq4oNC{FQL5XILdh#+qW^%Bl!UX$al=kz0HX51m}e}En$X{kr)b<8^YnBDrs z+kfWF8E~EyqV2#rl64GD&|Z@?>{WOE*Er5~y*?1qgf1ncIV~*w@n6?^dqjmo%~q|~ zH7B@KbtfcRJkIc!ce9;WXX`4P$8Kf0-t^hcdgTp6>4y`x>{r~T&B4qcI+Hb?zbAgQ zxBGx}LF<~}n0HkJHfwdhv5&2Hk6OMy?an83S@`_u%bVi;CBnK=rUs*uYvGv)L17^8 zId$YhCmOL2@StGRr%=$UuLges2VplPaRe5?;fJG&C{zAOBU%*`N4gQwSu~EJz^lO% zq`Y{GkvHgTz7ok0_|2bD2n->bRV3AyBk%_zcgGwkXE^Qvq_jNkp`Ed z<2=cx%rKO~kl=2}_gmqL01DXE-Cf=kf<#ov0|2M3AwfWd)CP#|fId=W%1B9yNC+iO z@E-kOUcTme{Bb*@?wczO=Bv4>_ekvjb=&n<`;8zm?_;bo8;q_UhgO<#t(opQzY%*Y zX$#$cyTPPorHTU`W!+cPTIJlRwM^xgNBjc3t^{p);2v?n-uZCGfY)!%tP3Zbzi17- zDD+6un>J8?>vQ@ykDF6%u6@`SH0%$15Bq$s`Rc@V^30?u%uM0Fh z32<>shaHv7%0chsWcANb+GAT=M~Aj z+{8+D0=8keYsJTARa*PrSDuR3Y0u&aOP;a^_bpmxk!o%I0I*rXQ7ZA>b}D!Qca=zrx33JhOVHdGXJ zx2r+6A$l{jVjS?|_=^K!EPe?8;o*BcvbY)7g(I%~!-s6G#J>V;nBovW;ZL^?8N|eB z)s2ppl%`p3h;lV1y*1cu2ZZ92)DzS{WbIN;) zD49$m25;GCL|M>=|Njk|IA56f7#;zj&mkXItZsro5**@}l!EJ?mpnhH8JI()gA%GqU1J%Y5?u!{3ZFzom4? z&ZnA|DiZw#an=D?t@@8b1kuY$Y2#vcN3P?Z0|fU+9v;ziLiviE&_B+56L{`Ig2N!q zCTUwiqIIb$P;K(S4oB`MAoD_5qE@E*h?4y^;-etRgRJ{Ze>;47WpkW+*WMt#om!g8Dv^cT7(|k)WLBy@vLB0e7qES}4KUT7H%lTWoLr#v0|6b-hP*W?w&Yk`LQR`uM zXZ-a)p~p4F%X8I3+Pb>JT~|ZzAXqjnvQ8O~@=Z+r&%zFq=&%1f zVMkV@Ss1ewq@F~mfSmrld-p=lfdm?6l9+)ZY)zjbx<{}o0ZTyck%RGTE(L~E2xGn{ zKTS-^$=^L<&OX+8XmmTz7P{*lYV*uC2nm=O@q4J6F6mct)V921UtVM4 zA@niNPR^8i_+*r`X0dk!$A?`s(O;8wLiAa#3d8WS3jdGkg8}EiT`joVQhJ(hZK?;t z$B3g2M+Bh`@ji}DFEJJ-2I!eL3STFCM$?90CrT!-|siRAn(4<;^Y?B;SPYn z>&Zv$+7)tlni()Za(lRdtdEY4lB15CW_abC)a1V*(F=-QyjolUNQu1{%|FR1zVO=* zwJ2I@ik5Wi#Be{~66K;C~}I9tfIU2L#ll;uuXT z=k;%gdNQ(-AClw)^`zdf`j>{Y$3Jbv{WrYKFBq+OB={sJ2GGS&c1#H#q1=p~VP{%i zd?%Q9(U$t~V`~b9ZVg|-b+(2t4G*;zUfJ%t*}cst$901i2T_PYJco#9MEEa6IH9_K z3r^Fqx0V^_);+9xz(YYWIEWZ~pMbIc!{^UwgOBuDQH&DJ4|y1n=BWcNBAGIoQW}^7 zMl>y;^N2zOl^oE6uz^{aHPp_W;XiWpC^4|!6ZIz6k*=PI(j|s3v zAimLcu+5CMESMAPl!ezEZ=^JZ%09QIrRaN zBKR2M$elD~81{}d78Q94){0%e247vrsL=H(IZ6zdAR zO|80H?j1Dpxmg*NFmYkc)|Hdu*S9n4L{4`!E=EebcP~E3^*4w$a~xK;Vm~p?Zqk3P zN-ERwi)tiQQ06HH5zSnjw7KytUE37m4wPwA7_mA7P|55RhnKrP30L7ow z|G6&z9MZ9HS^}N#5AGzI6CFWPoxXp=9 z+@HSAznPJ))iZ+kQEcqKjh~O?zN$Ru(R_41qwQQ=TfwfKANOd7sau3Zo;soOFyzX` z8?qA}kG^$otMHR6=l@=|>3!d&v5NWk33pa*36dEv8J0;%_%%2vZ1}aYQKw)3zNYg1 z58o<|9ch>x*w<25^w7jYiYIY!_;j}2FDsFXX@=wb#-4k4ZPr`G8M9L90MlX^%PAl4 z>4lU*rHivV?>4(AgbJr*-xQ}@Jyo#jg>a^M&DD?REhe8? zm0Sm7cRKF)$-Q@Pb1U}^MO$4;%KE{W?B*Zq*i+w$&Nye>pc0UD=s7t1?)c7?pJFrN;HXZvTPjM7 z-4ATW2e*n9R@Af4a}>?|xQ5L3yq^V#kwOzef|!M@_H3jLB*iu%OoeL1Hdf_5^?kVK zUCxcV?@PVoT$|U1Z`t%)YN)gLSRk#8j!<>_naZa$$7wuof2L18_c}(VPqOMLE&Zbg zeTrdD&El?s{M$ThZge(Qv)#SCOdS>{GaWQ-mn6B-)5Mc$eeNHI_3Z*0W;*&;+87kx zKh?51gX<~TM7x@7E&n9e2DN9bS%OrYoh5*-ubFgX_dUjY;DIT|{GfXj1-WbzBR&;) zXi-wawR9zC#2U_smI0ZTZOKyGBM)kGKjQOKR`yA+UuP^a?wAs9JoCCG$nVsShXXc` zSm+t*mScRs)>vwrS92g_kOKY{>qq@6HlhE3K|0>VbmROS+u03zpHI$lK)MZSLC*UVX-ya(T%bR_kE>!s zO4Oe0>x)lz2J3GeD?BrFGWY2@>*zcsvrVIyMqDjL7(||kE!T$G_{^}4xlW14$S^3j z_oZB=|HFA|_N!9a=ehE2`JP*HJqJ~I9!foPyUJKDS}}a{P<^bzY|pJ$_+cRwzW3XW zLP5y_vQZUm7fxC-`-Y(Dp!?impq-qObDtl|=e||rG2}M#@xZpO!oI|EH3kJT72!Jy z@;4A)Nam2dM##oVl|%yOy+&TIIdlH}TYm;c>4{Dj)q`1$w$w2fH{=#hYBj0fm}uA1TX zuI_b0TG@xNJ8Ms~P&*Z}Lr?PEsgRL&O-ag|9UJnXAYf6}JG799Fvk#RB<(V zqX-bcrMt3dV3D4L;sXmlWoT%D9-r`10 z0$oGXE*e!DvBZV`&3oK(rJCoybau1;)@{vebW(!_wv@KrMmmEPK#TxQ1iK7rk?m^z{40K*4;6=(xd3Zud}f^Q!4SZ z7am(5fk}7Sr=zUczGUSAw{l5SzGxD4hb!b4dHhEGXMh>Yv;6$>+S<^YXE)+40L0>X zxF+||4r?j9l%J@_Pyu#MI06&7U~nI$oj&sKio0ZvD@-=7my6q|8YZY?_oDvWu~nY; zbEj|3^BXpYZPYhDe82Q4f8`&#w=?G7_SMrn7pGM5Ue5Q5=i9mZpxCE!`n?Z2mgQHU zk-Q@;+Rd7m?)>;fVnPku-J*Ws)`M$0zPi3SpP!tg5p+1G^lYVU+}&*Z0VT(Vt;5RZ zHa`BIx4P817)gz&k#aLsK9(s^)er438Ef;b^z*(EclnXo1;b;vk8TI@d}HZDhw0|7 zZp!!Oj(a{HvPmxIYk^#e2h?{sJ-Q+ z;jY+m!d#t3Oz^xDZ?4s#?dANqSVw901-mAe3I(Y(5l0w&^TKHc9?x`svbg!W%bM@X z^BYxc68XJh;X2|*@&yr+Kjn5(z25j>{S>>Z;96aU()~92mQ%A5((~O?)SjH62!hl? zSh*|GjfBrzPUie@lwlb<8>{~3&y;yl(Zx;gOGVdc*%|z?3YBKR{znlBymx%&?uy*k z;@?xnF1*FLS;=d7^;z>VCiQdVLfZDC2pFb z)zy>PaLU5mQ0_>f#n3&)ET4Uwekv@ivI{$r<~XvL@uWmo`boo4kR!uqY~*n1XSOWe ztEeA4;xoUamaSc~DzfDIsXgt+&gsUK3M1=!;lU`*1i5T(yTK2sWm|p^h~BHxdfHf^)qKYH z$<_O_XCR(iRzWN7O0OKb)4FJv7JQ)uYUCs&q92k`9Pb-fR%pNSY$(b5oRne>4 z`RtoiZ=wdYy)dC$>vWDN4g;Mq|Nw`9-r*awvNnt$AQ zyxh5hzuDd8#0vWJo?C5gMUT*MtM4akfqqwSV`;JI@Yu-=IshoQq8B%)L(RuU{mPH z83|NPpP8?7aF{+FzU9%*u8Q}^f3Kv)_PD(r)Q{NKpmtMN*~e^pf~|R?&Tqa_voMQ2 zE9CihV`j{#pgnXlapN!Z@X*RXRvD{z8c?vO#V^>dVR`f_Rl=03qJExpkHL`*a-L*4 zwk}54eEj%z(bHkq6b<{=uVP&5&h%2i)ii-vASZes$_Ol~=lc!G1ff^TWq0+WKs|P17pNIuBi` zvR*}h=Fko?&Y|MKS;&u z6xs${rQx=8Pp$}KG~fJeK4w;f*P&l*pvlyH1;g~Qskfsx)@GCL!-iqk*GUdhajk9= z+L^B;@cX;s9v!`$O6!hg##IltHc->2Fo}H@TkM!j7fVsSzGz?SN39>|cm==OEcEZM zJ}6|ZXSwI(vN%d>#RwDHcSmpNisb#I=e0HHQ4dwu(>^M>VS2fqZJbk*?f%ElVVfeo zH^yXDwiaGHWij;bXzO%y+8O(^d$mpmFp4jHc*TSp@gY$xx$;x_-N*jS0bWx{qS^u! zr=PD9G;8G~tJvwcnG*MG}qT4FkpJ~|gF&OXy{S5shGSn?i$s2hs>UUe|v(7AbGaR{aho3v()b_t0FH-!BNuhHK z?Iok5S!pG;yX~)NrIgHuR9MOvjBn@s>cTW!`Sbg9n8prM3lW>4^GSDdQkw+gzdrYu z+?o5L^7gAg5?cE%^W8j{-5;oD*3EAfZj&GvKCX1x?%@+WyP13B*^NDm5xYL|%>Qb` z!1&_UFU$o4pWW-dr#F>c7g2p>GTvi9~Jd(1wc}CAu48jb&J`J$>NS+ye=E!VT!guTkQ^Ghhgrw&eThhh&>`lY&mR1~O zS|66?!*$`yguJxTlwp99>$$4u6MMQ>?Wf@`r;t7UR;6gY5cAS6%_k$hZQGk$A5spq zUY*J3WM@5@Ts(MMsK@LOTgY(UGCWmBU}3JKR8!l?GX5TpzBhL|P3cstv$YI5GqtIUl|uAgocW5_ zGc-ScGUgs0y`vID8?o-e!EFbOyj|{h{Ot5I;2qborGD#jp2qe0@5zPNCk+j*JnLl0 zsl39cUT%M`;zpG@fA>!jb&IHVTYSEyvEIthH|sRa>gtf{^s9d1GcS+XwO?7@ftffG zH+Ak#@;-_Z-=U=8VV5u_u6jHS<#T4!`$%pPWto%by>!&o@5xHre4 zI*NVvY=di81kJW8Ll60!d&5oaA;0My_Fk}3Pf_*LHog3wEzj|``PkD}Oknhc#o14{j@2y0-5;`wcIu(92?(CD z_}rpMb6>ack~3dUUe(hrCV{P$(UKjpcS9yxdH!88-QVRC#cTH|HFt~3eEC6!_SMQk zPL=5?CG>0Oy)DBp1q7M(JkwX(T&{W3!^7-tUe>RZcfvaJ?oQpsZ&>l~H?#*TQ5mP3 zi7~SOR#M$2)HeYt2p4YD1lYh1$w&_Lf$JR$IHw)f- zFEej4SX&c688PX}@K9!yp04TvU!rw54sp#pNp=sh%T_r3`-);L?`s(caz%SHHo8x? zth?Qu&#EXY{_sUoeYxEli5#hvP5QakMgr$QeElgH<(s8bDCR>GEuq_E&C@;M*nDax z{gML%E$c+z-WS=a5?%cb7i74}{;hg}_3tf6QLxzD7F?13FmrwIr@D`snr1Dt+v^t^ zb}b}wZ;hwa+@P6$X2W4~+htg8(@4QcRPGnPbyH62>KTMO(YL+6{KfPw zPt7MRBL(bFmb|*X8+MpV9}JKx+#+U$cb*jcU5TzJAA=o4rq&tUySCopxrVcRtc3O0 z)ZU7rj<;;i6C-bC-sZ1wcaGaW#G3c0U*nmiBsR6IK2B0B2L1i@pE^wUR@QM+b-d%7 z&F@g8K3-4zW{V9Sx!qeItzM@UVELq=EoAgd=c9pQ1e@Iq=S4 zTGV~v?v|9C9q$#rztaV3*1oznc=Bi8b}pwYOv&2=7{}EQV?;HssWLq)P>E7@K;U&+ zU3uipCwX_-Q@TpK9vpsU>3!n-UF*um8~s+j2W5(qBsViM1(sEZQ2PjLSM`p5|FNZ- zEx8vXRh{hk$*aX4WOgcQ+SgAq`o)H^bsHJQ&bE8j_h?Ag_OI{M8)$4vQcF2$d%aMe z(>lYm;(LRI@K-8-{i@srb_E-lv3}G2J$xQNd9i-ILGhFAmxGU+t^TBRtXZ`+q)l*q zeQ|sazYy!{nvnFI>bG^=lM{P?jmK`(OQ_hrWu3*$9Sv0)R^h)tBfimmij#ATA(Q;j zTlLVOSXuhuJ_q z*JY{8EM9x}hW^KZ12(J7KNo3IiYLV->cjL6wRwK{bi8A8rdwC}>(2PPv6-J?<-Mvq zT+}_S3ayVsC;8u~!K7$r?toa4znj`^`aoJe!MIZvkx~ci6=f0_Ctd<2R|h5)gdL`6lVJBMDomP7Jic5FZl-;Xw%q(H5j zrE)JMMG^_=_DC97Suw6X=9oO0Zwu!Nx>6E^fym$lXBuvQwO1nto}>w#+gF_R@_Jo{ zHOH$jA=zH>efQp~hY5cDoakcI{Negsb0&4w(y`_bCa(=nNsQ=A;21M+u~Ci?@TZDo z`P`DZZN$Q0`%p!CUIz1IF71C^3qXVJ8os1`@HSxZ)qPEV_{^xDy>MMVaT&OXBO;lI z+7fyN^-GszE|f01z8eyVq6MK5Xe3;PbdS*{JySC%2oU;l?PvU(H>$f4O%9?`9bN=N z%mr`rW`Q*1)z5e$jYRT7rPA^&@iU)>5`tv1V@OHR&$}wsqAf{_R(F2}ZeMyU)A~|? zy*r`N{h|jY!0VQ~K94_F^;@>XRqo%1=~Q#ZUxys@x+Kh=@hbHA)z$LuXC*f_WO2H$ zxG^|xqxs*_35~PrFZdFpBzH^=>TZr|Y{14%U9lt7hh4$rwo4HvbKq%g$9x(Hhm|cX zcuHn|(2@9Ahyqto1`%uv-kaPMm`jL0+tS+l2f!s?2=X!7Vx)4b{ddTUtJ1PcXc3%n zTyb_4eAMn3>$!qL2yCG@POlLaN*Q00*AUL8Y}4vJqqm*eFy^ zI^$ukqTHzKMYvbxHIb4hg$Z@N<{d?s@b6o;+S}Oh$;zQ2IC|80o)bXtCfdM~S4K+Z>3Q2A`GOpgzurM)caL35}k!~6>^OI;g=o_dh)t2Hw zTp>8ie(!>$iX%He$A6aC^~!sG^2>#b$H3yYfBAC4)RZAgqiH|}X$u|}9T>rE;yEOl zFbcahV*V$((sn-D{ukR{XBRUdO>vL2V2V+>;KV*Qe`+x?Gig@5;<;U#~5_ zo|L)a4|MwvON25ETZHQuUfQ1abaUH*>tCJ1qMtlVG~WLlaAz z#y>VUH$NUfA}r>KO@dH?@d}>Jt@kI|a5t|ar{C`S-MBcytAY!KwB--=^o~cW_cbwy zWi#XkNSqaQl`hxSJtus__=(K*kz3|%pF*UHx8akms_pu2m|jbwyCqrWLaT^C$q!j2 zuEF`m>(!gS6~vYI{+N246nslc=vI^KV!Ke$BK@FjQ!%gKiB!?EN2HAws8DDYGI_k) zV}Eh6zG1TIqLhVJNSpR?g+R4n`YsU7U@M!$UcGvyCLEItQ;npZuD(8@2;a%HH*L() zJ3n~ox+`y0ZLJ10j;~>slILWQ=gewx&Qwyj2VJ;td*u59Wv+XsED~xh^#z~mp3k8H zo_A6BHFrk@`ZG-i*QUz7g|yFy1l(H!UClhev^?fagf|H-B**@z zG2{K7^M2RhffY9dAGi4cae5K!)YopvaFNA<&YaJz@eESi=Nfic*C%?79U@x}?1=~y z&agfni$FNAAE!Zh!y9uNEGn7So0nH^x-_;0!KGZXvTPKxKa;?3gdZq%c+a25+AkWb z6(lE*WS&0uC~3vHUp(^DU!C25-4BMgaV-(%V}e2U&S)|X0-!e;Re`*R00zYw3cff_ zARJd0Y5MKT=8T}SNDl$=3rcr_Z~vf1p}22G`g@K3GfP`(8IKeyC8OQ1qjGmPKD+qi zI=_99bDy+>H2W%PL!P_`o!Ie>*g`t)7dc|?3(?gI{HtU} z9pfxWt@LpD$ab-L$kbL)KxmtXBLi?FL^f+EMaU%tnon}Cv6cyr8}Egyi(QHGEK3*;g!LO=D7UOCABrjtlXrwH2lh0 zwf93{LM-z{PK^G?lug)4vn$`&)E7Tj4rZFZ$Jp$Mg}Q0%7)`*-x&<_!6YqCyz{z{T zkCSBpqq*V{bHw2X{Mr-UoL72edyj=dwnV@}W=vMi z3azWpr;IS#ojsicz|LK6B$&ugdh|6xP{8YtzNzga)?Vk6LxiWN=?} zG*Sl+F2`arH83o@TY`~7pEIj}wGI?Ys2Yp%G_D?UV%~7ApX>W%@g~`vbuY|UB${rb zwm%>k;MxAVvxd#+LQ8|nJqeWT&q_ErXq(pGnjRc?)ZF!IS_&<8Sgfpt!7*Eqh1WoNck?#}z_e1gOxmjr605tNMB6`` zEOSs!t-XW>pXy%PV>(uoz3=;r11|eEhq0DZT5P|FzWMf|WqbvfwjHa5W~1e)wqHs~ z6Yqui1D@}=joO*!cakEXb?4=24kAQ^GlzsG~dmoJf=|q_^MXgkFC@1z1(kau4|}!CA8?=-%iq>Eji_rFh$GM zB=r3Y-K#sAJ^o-JK76b=Bz6q}^r(`qg0AXD-UlM7l#wVy+)mIkVD29ox~7@dL|$6B zi6mMbH>&Qw>bhV3@_ZedkD=bM)sk~`zGoVu4-ImBSGurpufpm#_Vm}iIZDGByQ?L% z_Fy%5&)tqKo@_QGX7)t)A8Ti3e(9!eK(H?IeidhXHX?}*nNlCV`)yF&9Wxbnr)1G8 zU}FEhW~WLo1>W%{TW0Zw_|xIx@q6ivINvqXuQKKGy|(R@%W5GTOtLH)&^C81ZivxJ zt$hfYS#Si;_jSP%PiEziRoDx2MXCgs>4#ok0^1_I5(4ah zT+=-Hx&84{u%-K%Kbl-Q+4LcS#)qP(!t_;K4reKev=`SIE&5-y_By!yYo|2D&F%rjg8Ec@&i>oQ{$hku_5S{I|i#(1|)(qg%OL36?C!qxYeEN4LK`YkUc z20m!ti{s+n#uA@BY$^tx^>MPdpPY{>Z&QEBI&jWzzlpj0K+%Z)9z)l(XB+c=#@S+< zP&OYv9q$V;B5XoV%=1SGAJO$dn9l{{ZFBSB@ttrp*=2vH;f@x0&JdomwY}${h*gqQ zN5s_q^=?$02X5V7p{#z12TW8*|_Eb8K6aqM9l5bIhIQuB`JJ zs{GSh_S75KR|c7tbvfMAN?o^w zgS+CvE*)D!8-?$mll>L%CY-fdLGMAxYNLH8%=Zq4Pnl1@wCmS=fLB&gYwbe(j_Qnl z;kgs1K3_SsLhGGlSyld_eKV`DL1L)GO812;O<26>uTlCf#mtn#lBYq8s#m=ikJV?^)z|NHbQJ4x zlCkre9qY|!--L~j<)Fn`+*8kx(+*VIt!-Rm?XtStqZH_DUs^Y?JZEDyD6V_+=-sM_ z<4W2=KR7ql%3iR)psMY{JZStaY!efj;9ze)YnabZJ-1~>C6eA|NUc16h-C#d%`}@CmUYr@vj3ey0uWPMO!fFL^m`HLV!n%TO9=xKX%z^iC z%kSK0!2kZ_V_8>Txd8eNbMaF%MZthqbwa6grUOmq_WQ*2pTBT2hP1!XG2pe1q`iMx zrl)^j93269Vvq+&1oARO^iZpdq!@#+*Yt@M90PO;JeDR;w8?+fP%m4WH~59#b%@1f zsiLgta#XU8by}o{=e>)5`a}TtLju3LYPO{eZf!oi1+Y(ooEU|IfAvj50_N&X{8y=| zwv(&4ER-AwMOeQ!#ZVZ1Cu z5B08smpD?pc*O?phZfX9ViW`cKthuYyc@_){c+xh4${Tay$@(GFfB#l+hh0qAYs2E z(qW|*hK`$9-)^gqg*D|^zP!Kdg83UtAkd)2+u0GHCdqv_j$S8aMczuDw(@G zdxc*6)*bR9hCHS@gD(&IzW@B0$H5cu`eV#XRzRvoCbl~^<20V$wzk%oT7-j<0VI6w zAXWr`AP|<}p@j=@*b=w%-Wx0EnbcW~;TIJ&pk7e5WaEw#lIi4y50s&s&&18q6`#DI zq^ev>wNUzU_koaN>C+cqKI22VeaNjVLN1!#-zdq$ zs?t&B#@JhsqbR-9frzjUhL(v&ucYA`MB#+e+|7jMkNRuyg0@l_A_e{i!eMy0p#^ zxqfXRg|BaC&!hb)PZiu>o>$BsqY(75NWW7WQOnta2 zkaU_7(+uhuj9xipFbuo7sJA?w>Zp5o)F;}7`-I0k2z`gl+AW5@SahI1(XXrEb0+>q zd<{+|2fw-=ho53TC~y4?#gml=Qqk(T zMJ7DPZ#@32zHwr*vWmlB7S(u}o)YT+CIWB)G9bA}MPm%9A5;D)@A~zc$KdqavMj~A zUoB3>CBHm!{84iKku?W6sNX52oA)7e59}075F?A^`c>OZ`GbF831ptgB)bb}#}YF8 z^l9R;P~Iweyrc-pI{vguuXQL^jk1yJDmI&hrT9-#`A(8kR1^F0BP^8cvhPZpxk@3T6#LQ@I8CQkjieY{yP z!@zZg2$1@Jf_FnsK_P6B?Mk5Ln?j2Fu^dyq)m;E{UsSNyVF^?|{3UvkJ~BnB*X_dD zC)Yg@lN6~E(IyvBLVS02ESZ-BwUt}G)Pzs?um7kXF`!cLGFr2BxMtqLlw?(u<69R4xA)7-Lc;{pOH1&`aaxt2NHC_zV0s;hq(BoWQW=br`Z5mQX$jesjH^9c%pKD zJMEW(%9Dq>wngK^4L$Zv^g+(oDzi!Y40q;VGNEdP93NP`rIuVH=v=I@WrFoq~wAM z>|y0t&$RW`?pvbCQyI+Eex(B=tD1fpHWg^@{VWz88EL{m=h-jC(y^CAIbXBW9akZz zd%dVVlEfUVe)`J>K22Gn1N(*C`erS5`B0me(jc=~WD`8ye4YKC>P1h{E=5^ ztK-e5gZgK`=o-28K3sWretW^b#vrj|xffQGf;J4dpeVk7tBJ>PN@A*nyCd%sb07ic zez7C@Sao?9Yn53aQEtN0$OtwHMeK>*ia2P0U6~(FS1TH9sG>R%&9NNSbKM$6#AH}J zF<6D?AKoi}`@VJaW&SwTu!8-HTbXNW?EHNFO3n-TX zZt7-}yQM1^qtgRV-(9lbCBCCFdIjrYC}U5;FgrY_x@l{N2TsKJLyCQQeDJm3%Y7K8 zWo^v?3En5C8E2B|BzzJU!tsntrosi~TJ?YuI z{^uYzYzBqG9xFcc&~=xuhvU1>tab0I8Jkfq3o|Qz^@D)lPG6^0V&K>4QBu5RYl+8r zZjU1}BQ>$hhYwSft|(2RX#ArK;JsaYlK!+mARu5D&Y;Y!ESYUlf_4Oaf;@sQ*iS6V zP;hu6VD!6E%#9kg{I=Q4UJHivPpDh8dq%!`C6m}5sAC-6D{fKaAf5jF>~o5#IL47v zv(fGQO3jSI7N=Ln9oEJ;R&6#UYcDGl;c(rsF39gczmC)Y07?Fu1bR zNu}Rm93v@&>_~kC?YxbTO-$JJ=Ay|?Pom4=0Rznud}KkfcGHy?IzB`mdFP&RHt@HysroV>)r1D&B-2GuGYv{@Q|jN;W@J^qBYe|%Oawev=~D3KLj*4v@erg5r1s3v774Mih*%d16oq

p6o&d3vY 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 Il6@5LU&q}|TL1t6 literal 0 HcmV?d00001 From b246599654910dea69ccc98fd14944664fc6edcf Mon Sep 17 00:00:00 2001 From: Tyler Collins Date: Sun, 29 Dec 2024 22:33:24 -0800 Subject: [PATCH 12/14] uploaded dated stress output file --- examples/stress_vcm/stress_xx.19Nov24.out | 423 ++++++++++++++++++++++ 1 file changed, 423 insertions(+) create mode 100644 examples/stress_vcm/stress_xx.19Nov24.out diff --git a/examples/stress_vcm/stress_xx.19Nov24.out b/examples/stress_vcm/stress_xx.19Nov24.out new file mode 100644 index 0000000000..6e65250a96 --- /dev/null +++ b/examples/stress_vcm/stress_xx.19Nov24.out @@ -0,0 +1,423 @@ +# Time-averaged data for fix ave_stress_vcm +# TimeStep Number-of-rows +# Row c_ch_stress_vcm +600 20 +1 0 +2 -142.965 +3 2142.79 +4 12968.3 +5 -336.7 +6 2638.09 +7 4214.83 +8 3187.61 +9 -488.891 +10 -49.3553 +11 151.373 +12 -317.663 +13 0 +14 0 +15 0 +16 0 +17 0 +18 0 +19 0 +20 0 +700 20 +1 0 +2 -14.3195 +3 -1238.9 +4 30664.3 +5 18805.2 +6 498.562 +7 930.874 +8 660.655 +9 -266.903 +10 -317.877 +11 -386.989 +12 -304.697 +13 0 +14 0 +15 0 +16 0 +17 0 +18 0 +19 0 +20 0 +800 20 +1 0 +2 0 +3 -1656.7 +4 30424.3 +5 37003.5 +6 15562.5 +7 -2441.9 +8 -1766.09 +9 272.718 +10 -664.774 +11 -72.6933 +12 -469.765 +13 0 +14 0 +15 0 +16 0 +17 0 +18 0 +19 0 +20 0 +900 20 +1 0 +2 0 +3 -1567.21 +4 24987.6 +5 38068.9 +6 31595 +7 8864.94 +8 -3423.99 +9 -753.063 +10 125.21 +11 -50.4895 +12 -172.14 +13 0 +14 0 +15 0 +16 0 +17 0 +18 0 +19 0 +20 0 +1000 20 +1 0 +2 0 +3 -893.168 +4 15591.6 +5 32690.6 +6 30183 +7 27172 +8 9459.75 +9 -1416.35 +10 -432.731 +11 444.323 +12 -424.357 +13 0 +14 0 +15 0 +16 0 +17 0 +18 0 +19 0 +20 0 +1100 20 +1 0 +2 0 +3 -601.805 +4 8890.79 +5 23345.1 +6 28529.2 +7 29111.9 +8 25846.2 +9 7451.83 +10 -1624.2 +11 320.704 +12 -50.9865 +13 -5.50481 +14 0 +15 0 +16 0 +17 0 +18 0 +19 0 +20 0 +1200 20 +1 0 +2 0 +3 1435.39 +4 8818.29 +5 7129.61 +6 20281.7 +7 28026.1 +8 28327.7 +9 26918.6 +10 8277.12 +11 -249.644 +12 -171.806 +13 -7.19065 +14 0 +15 0 +16 0 +17 0 +18 0 +19 0 +20 0 +1300 20 +1 0 +2 0 +3 -718.118 +4 3021.9 +5 9010.51 +6 9500.87 +7 19432.8 +8 27254.3 +9 28638.5 +10 25568.5 +11 8094.66 +12 -368.293 +13 -2.20997 +14 0 +15 0 +16 0 +17 0 +18 0 +19 0 +20 0 +1400 20 +1 0 +2 0 +3 -650.581 +4 190.19 +5 5465.38 +6 7489.23 +7 7575.16 +8 18433.5 +9 26975.3 +10 28981.5 +11 26987.9 +12 7502.07 +13 0.117312 +14 0 +15 0 +16 0 +17 0 +18 0 +19 0 +20 0 +1500 20 +1 0 +2 0 +3 -619.311 +4 561.257 +5 461.5 +6 4105.68 +7 9272.68 +8 10445.6 +9 18826.1 +10 25434.8 +11 25653.8 +12 10981.2 +13 33.682 +14 0 +15 0 +16 0 +17 0 +18 0 +19 0 +20 0 +1600 20 +1 0 +2 0 +3 -349.345 +4 513.579 +5 -471.384 +6 1257.81 +7 7122.9 +8 8659.35 +9 8452.08 +10 16013.5 +11 17091 +12 5476.24 +13 -136.183 +14 0 +15 0 +16 0 +17 0 +18 0 +19 0 +20 0 +1700 20 +1 0 +2 0 +3 -273.839 +4 -907.407 +5 -272.136 +6 594.363 +7 3302.77 +8 5564.07 +9 8689.92 +10 6446.06 +11 1779.37 +12 338.998 +13 -171.408 +14 -1.21548 +15 0 +16 0 +17 0 +18 0 +19 0 +20 0 +1800 20 +1 0 +2 0 +3 -164.819 +4 383.877 +5 -140.681 +6 -10.0153 +7 907.937 +8 3269.05 +9 5325.22 +10 395.73 +11 -4103.73 +12 -2787.16 +13 -1357.04 +14 -35.2044 +15 0 +16 0 +17 0 +18 0 +19 0 +20 0 +1900 20 +1 0 +2 0 +3 -80.813 +4 334.225 +5 248.55 +6 82.0566 +7 207.763 +8 185.714 +9 -55.8635 +10 -2758.51 +11 -4619.33 +12 -5521.92 +13 -2346.36 +14 -415.324 +15 0 +16 0 +17 0 +18 0 +19 0 +20 0 +2000 20 +1 0 +2 0 +3 -83.1832 +4 264.023 +5 596.087 +6 40.8157 +7 -267.093 +8 -2288.15 +9 -3387.64 +10 -5566.79 +11 -5640.76 +12 -4925.74 +13 -3096.01 +14 -757.817 +15 -1.13042 +16 0 +17 0 +18 0 +19 0 +20 0 +2100 20 +1 0 +2 0 +3 -17.4378 +4 62.1251 +5 740.988 +6 357.467 +7 -1137.61 +8 -4266.83 +9 -4962.9 +10 -5322.45 +11 -5437.58 +12 -4846.56 +13 -3651.28 +14 -1151.01 +15 -28.3074 +16 0 +17 0 +18 0 +19 0 +20 0 +2200 20 +1 0 +2 0 +3 -10.8779 +4 -56.7926 +5 400.261 +6 -568.63 +7 -2193.36 +8 -3856.71 +9 -6603 +10 -5717.11 +11 -4868.64 +12 -4173.5 +13 -3402.64 +14 -1712.44 +15 -80.6771 +16 -0.123189 +17 0 +18 0 +19 0 +20 0 +2300 20 +1 0 +2 0 +3 -22.8402 +4 -44.5496 +5 -365.476 +6 -1285.6 +7 -2887.76 +8 -4022.77 +9 -6280.86 +10 -6055.26 +11 -4921.51 +12 -4445.37 +13 -3531.69 +14 -1360.49 +15 -258.99 +16 0.196931 +17 0 +18 0 +19 0 +20 0 +2400 20 +1 0 +2 0 +3 -0.594396 +4 -148.921 +5 -1118.18 +6 -2071.85 +7 -3989.41 +8 -4567.01 +9 -4939.36 +10 -5170.94 +11 -4922.25 +12 -4587.5 +13 -3748.19 +14 -1785.46 +15 -460.491 +16 2.54038 +17 0 +18 0 +19 0 +20 0 +2500 20 +1 0 +2 0 +3 5.64755 +4 -485.854 +5 -2525.68 +6 -2642.35 +7 -5066.15 +8 -4546.03 +9 -4429.45 +10 -4579.15 +11 -4829.56 +12 -4384.77 +13 -3525.99 +14 -1708.9 +15 -627.176 +16 -23.5581 +17 0 +18 0 +19 0 +20 0 From 463452e6a044c8a2dc3d98018828315fa48b0b7d Mon Sep 17 00:00:00 2001 From: Tyler Collins Date: Sun, 29 Dec 2024 22:40:05 -0800 Subject: [PATCH 13/14] README added --- examples/stress_vcm/README | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 examples/stress_vcm/README diff --git a/examples/stress_vcm/README b/examples/stress_vcm/README new file mode 100644 index 0000000000..aeb065c678 --- /dev/null +++ b/examples/stress_vcm/README @@ -0,0 +1,32 @@ +README stress_vcm +================= + +Contents: + +- in.stress_vcm: Example script showing how to remove binned + velocities of center of mass (VCM) from stress calculations. +- stress_comparison.19Nov24.png: Plot shows the stress + calculated in bars on the y axis for each positional bin on + the x axis. Plotted are three different time steps from + stress profiles with and without the VCM removed. Plot + generated using Python. +- stress_xx.19Nov24.out: Output file generated by fix ave/time. +- log.19Nov24.stress_vcm.g++.1: LAMMPS log file with 1 proc. +- log.19Nov24.stress_vcm.g++.4: LAMMPS log file with 4 procs. + +Notes: + +- Running this script as-is will generate two files. A log + file with thermodynamic data and a stress_xx.out file + containing the binned stress profile with the VCM removed. +- To generate the binned stress profile without removing the + VCM then the compute stress/atom command at step three + needs the last keyword "ch_temp_vcm" to be replaced with + "NULL". +- Uncommenting the line under "Atom dump" will generate an + all atom dump file every 50 time steps containing atom ID, + type, and xyz coordinates. +- Uncommenting the lines under "Image dumps" will generate + .jpg image files every 250 timesteps. +- Uncommenting lines under "Movie dump" will generate a .avi + movie file showing timesteps every 125 timesteps. \ No newline at end of file From 9c1da4cbc91d96fab25558fdc7b8ba53072b2b56 Mon Sep 17 00:00:00 2001 From: Tyler Collins Date: Wed, 8 Jan 2025 22:45:38 -0800 Subject: [PATCH 14/14] whitespace fix in doc --- doc/src/compute_temp_chunk.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/src/compute_temp_chunk.rst b/doc/src/compute_temp_chunk.rst index 2850d3301b..3d97ad1699 100644 --- a/doc/src/compute_temp_chunk.rst +++ b/doc/src/compute_temp_chunk.rst @@ -196,8 +196,8 @@ then the bias is added back in. This includes thermostatting fixes like :doc:`fix nvt `, :doc:`fix temp/rescale `, :doc:`fix temp/berendsen `, and -:doc:`fix langevin `, and computes like -:doc:`compute stress/atom ` and +:doc:`fix langevin `, and computes like +:doc:`compute stress/atom ` and :doc:`compute pressure `. See the input script in examples/stress_vcm for an example of how to use the *com* keyword in conjunction with compute stress/atom to create a stress profile of a rigid