@@ -337,9 +337,10 @@ System generation
337
337
338
338
.. container :: justify
339
339
340
- To avoid high density and pressure,
341
- let us add the following lines to *input.lammps *
342
- to delete a few of the water molecules:
340
+ As it is now, the fluid density within the two walls is too high.
341
+ To avoid high density and pressure, let us add the following lines
342
+ to *input.lammps * to delete about :math: `15 ~\%`
343
+ of the water molecules:
343
344
344
345
.. code-block :: lammps
345
346
@@ -434,7 +435,9 @@ Energy minimization
434
435
in more energetically favorable positions before starting the simulation.
435
436
Let us call this step *energy minimization *, although it is not
436
437
a conventional *minimization * as done for instance
437
- in tutorial :ref: `lennard-jones-label `.
438
+ in tutorial :ref: `lennard-jones-label `. Instead, a molecular dynamics simulation
439
+ will be performed here, with some techniques employed to prevent the system
440
+ from exploding due to overlapping atoms.
438
441
439
442
.. container :: justify
440
443
@@ -460,7 +463,7 @@ Energy minimization
460
463
461
464
.. container :: justify
462
465
463
- The only difference with the previous input is that, instead
466
+ The only difference from the previous input is that instead
464
467
of creating a new box and new atoms, we open the
465
468
previously created file *system.data * located in *systemcreation/ *.
466
469
The file *system.data * contains the definition of the simulation box
@@ -469,7 +472,7 @@ Energy minimization
469
472
.. container :: justify
470
473
471
474
Now, let us create a first simulation step using a relatively small
472
- timestep (:math: `0.5 \,\text {fs}`), as well as a low temperature
475
+ timestep (:math: `0.5 \,\text {fs}`) and a low temperature
473
476
of :math: `T = 1 \,\text {K}`:
474
477
475
478
.. code-block :: lammps
@@ -481,22 +484,25 @@ Energy minimization
481
484
482
485
.. container :: justify
483
486
484
- Just like *fix nve *, the fix *nve/limit * performs constant NVE integration to
485
- update positions and velocities of the atoms at each
486
- timestep, but also limits the maximum distance atoms can travel at
487
- each timestep. Here, only the fluid molecules and ions will move.
487
+ Just like *fix nve *, the *fix nve/limit * command performs constant NVE integration to
488
+ update the positions and velocities of the atoms at each
489
+ timestep. The difference is that *fix nve/limit * also limits the maximum
490
+ distance atoms can travel at each timestep. The chosen maximum distance in
491
+ :math: `0.1 ~\text {Å}`. Because the *fix nve/limit * is applied to the group *fluid *,
492
+ only the water molecules and ions will move.
488
493
489
494
.. container :: justify
490
495
491
496
The *fix temp/berendsen * rescales the
492
497
velocities of the atoms to force the temperature of the system
493
- to reach the desired value of 1 K , and the SHAKE algorithm
498
+ to reach the desired value of :math: ` 1 ~ \text {K}` , and the SHAKE algorithm
494
499
is used in order to maintain the shape of the water molecules.
495
500
496
501
.. container :: justify
497
502
498
- Let us also print the atom positions in a *.lammpstrj * file by
499
- adding the following line into *input.lammps *:
503
+ Let us also print the atom positions in a *.lammpstrj * file
504
+ and control the printing of thermodynamic outputs by
505
+ adding the following lines to *input.lammps *:
500
506
501
507
.. code-block :: lammps
502
508
@@ -515,7 +521,7 @@ Energy minimization
515
521
.. container :: justify
516
522
517
523
In order to better equilibrate the system, let us perform
518
- two additional steps with a larger timestep and a larger
524
+ two additional steps with a larger timestep and a higher
519
525
imposed temperature:
520
526
521
527
.. code-block :: lammps
@@ -534,7 +540,7 @@ Energy minimization
534
540
535
541
.. container :: justify
536
542
537
- For the last of the 3 steps, fix *nve * is used instead of
543
+ For the last of the three steps, fix *nve * is used instead of
538
544
*nve/limit *, which will allow for a better relaxation of the
539
545
atom positions.
540
546
@@ -555,8 +561,9 @@ Energy minimization
555
561
556
562
.. container :: figurelegend
557
563
558
- Figure: Energy as a function of time extracted from the log
559
- file using *Python * and *lammps_logfile *.
564
+ Figure: Total energy of the system :math: `E_\text {tot}` as a function of
565
+ time :math: `t` extracted from the log
566
+ file using *Python * and *lammps_logfile *. The vertical dashed lines demarcate the three consecutive steps.
560
567
561
568
.. container :: justify
562
569
@@ -568,7 +575,7 @@ System equilibration
568
575
569
576
.. container :: justify
570
577
571
- Now, let us equilibrate further the entire system by letting both
578
+ Let us equilibrate further the entire system by letting both
572
579
fluid and piston relax at ambient temperature.
573
580
574
581
.. container :: justify
@@ -592,12 +599,6 @@ System equilibration
592
599
include ../PARM.lammps
593
600
include ../GROUP.lammps
594
601
595
- .. container :: justify
596
-
597
- Finally, let us complete the *input.lammps * file:
598
-
599
- .. code-block :: lammps
600
-
601
602
fix mynve all nve
602
603
fix myber all temp/berendsen 300 300 100
603
604
fix myshk H2O shake 1.0e-4 200 0 b 1 a 1
@@ -648,7 +649,7 @@ System equilibration
648
649
.. container :: justify
649
650
650
651
As seen from the data printed by *fix myat1 *,
651
- the distance :math: ` \delta _z` between the two walls
652
+ the distance between the two walls
652
653
reduces until it reaches an equilibrium value.
653
654
654
655
.. figure :: ../figures/level2/nanosheared-electrolyte/equilibration-light.png
@@ -669,17 +670,17 @@ System equilibration
669
670
670
671
Note that it is generally recommended to run longer equilibration.
671
672
Here, for instance, the slowest
672
- process in the system is probably the ionic diffusion. Therefore the equilibration
673
+ process in the system is probably the ionic diffusion. Therefore, the equilibration
673
674
should in principle be longer than the time
674
675
the ions need to diffuse over the size of the pore
675
- (:math: `\approx 1.2 \,\text {nm}`), i.e. of the order of half a nanosecond.
676
+ (:math: `\approx 1.2 \,\text {nm}`), i.e. on the order of half a nanosecond.
676
677
677
678
Imposed shearing
678
679
================
679
680
680
681
.. container :: justify
681
682
682
- From the equilibrated configuration, let us impose a laterial
683
+ From the equilibrated configuration, let us impose a lateral
683
684
motion to the two walls and shear the electrolyte.
684
685
In a new folder called *shearing/ *,
685
686
create a new *input.lammps * file that starts like the previous ones:
@@ -719,10 +720,10 @@ Imposed shearing
719
720
720
721
.. container :: justify
721
722
722
- One difference here is that two thermostats are used,
723
+ One difference with the previous input is that, here, two thermostats are used,
723
724
one for the fluid (*myber1 *) and one
724
725
for the solid (*myber2 *). The use of *fix_modify * together
725
- with *compute * ensures that the right temperature value
726
+ with *compute temp * ensures that the right temperature value
726
727
is used by the thermostats.
727
728
728
729
.. container :: justify
@@ -735,14 +736,14 @@ Imposed shearing
735
736
.. container :: justify
736
737
737
738
Then, let us impose the velocity of the two walls
738
- by adding the following command to *input.lammps *:
739
+ by adding the following commands to *input.lammps *:
739
740
740
741
.. code-block :: lammps
741
742
742
- fix mysf1 walltop setforce 0 NULL NULL
743
- fix mysf2 wallbot setforce 0 NULL NULL
744
- velocity wallbot set -2e-4 NULL NULL
745
- velocity walltop set 2e-4 NULL NULL
743
+ fix mysf1 walltop setforce 0 NULL NULL
744
+ fix mysf2 wallbot setforce 0 NULL NULL
745
+ velocity wallbot set -2e-4 NULL NULL
746
+ velocity walltop set 2e-4 NULL NULL
746
747
747
748
.. container :: justify
748
749
@@ -789,13 +790,14 @@ Imposed shearing
789
790
790
791
.. container :: justify
791
792
792
- Here, a binning of :math: `1 \,\text {Å}` is used. For smoother
793
- profiles, you can reduce its value.
793
+ Here, a binning of :math: `1 \,\text {Å}` is used for the density profiles
794
+ generated by the *ave/chunk * commands. For smoother profiles, you can
795
+ reduce its value.
794
796
795
797
.. container :: justify
796
798
797
799
The averaged velocity profile of the fluid
798
- can be plotted. As expected here , the velocity
800
+ can be plotted. As expected for such Couette flow geometry , the velocity
799
801
of the fluid is found to increase linearly along :math: `z`.
800
802
801
803
.. figure :: ../figures/level2/nanosheared-electrolyte/shearing-light.png
@@ -828,13 +830,13 @@ Imposed shearing
828
830
.. container :: justify
829
831
830
832
From the force applied by the fluid on the solid, one can
831
- extract the stress within the fluid, which allows one to
832
- measure its viscosity :math: `\dot {\eta }`
833
+ extract the stress within the fluid, which allows for the measurement of
834
+ its viscosity :math: `\dot {\eta }`
833
835
according to |reference_gravelle2021 |:
834
836
:math: `\eta = \tau / \dot {\gamma }` where :math: `\tau `
835
837
is the stress applied by the fluid on the shearing wall, and
836
838
:math: `\dot {\gamma }` the shear rate (which is imposed
837
- here) :cite: `gravelle2021violations `. Here the shear rate
839
+ here) :cite: `gravelle2021violations `. Here, the shear rate
838
840
is approximatively :math: `\dot {\gamma } = 16 \cdot 10 ^9 \,\text {s}^{-1 }`,
839
841
and using a surface area of :math: `A = 6 \cdot 10 ^{-18 }\,\text {m}^2 `, one
840
842
gets an estimate for the shear viscosity for the confined
@@ -853,8 +855,8 @@ Imposed shearing
853
855
854
856
.. container :: justify
855
857
856
- Another important point is that the viscosity of a fluid next to a solid surface is
857
- typically larger than in bulk due to interaction with the
858
+ Another important point to keep in mind is that the viscosity of a fluid
859
+ next to a solid surface is typically larger than in bulk due to interaction with the
858
860
walls. Therefore, one expects the present simulation to return
859
861
a viscosity that is slightly larger than what would
860
862
be measured in the absence of a wall.
0 commit comments