├── .gitattributes
├── .gitignore
├── PEG-in-vacuum
├── PEG.jpg
├── README.md
├── ff
│ ├── charmm35r.itp
│ └── peg.itp
├── inputs
│ └── nvt.mdp
├── peg.gro
└── topol.top
├── README.md
├── sodium_chloride_solution
├── NaCl.jpg
├── README.md
├── build
│ ├── .ipynb_checkpoints
│ │ └── generate_configuration_gromacs-checkpoint.ipynb
│ ├── build_multiple_folder.sh
│ └── generate_configuration_gromacs.ipynb
├── cs_5M
│ ├── conf.gro
│ └── topol.top
├── ff
│ ├── atomtypes.atp
│ ├── ffbonded.itp
│ ├── ffnonbonded.itp
│ ├── forcefield.itp
│ ├── ions.itp
│ ├── molecules.rtp
│ └── tip4peps.itp
└── input
│ ├── npt.mdp
│ ├── nvt.mdp
│ └── prod.mdp
├── water-in-box
├── README.md
├── bulkwater.jpg
├── conf.gro
├── diff_coeff_mda.py
├── ff
│ ├── forcefield.itp
│ └── tip4peps.itp
├── generate_system.py
├── input
│ ├── npt.mdp
│ ├── nvt.mdp
│ ├── run.mdp
│ └── visco.mdp
└── topol.top
└── water-in-salt-slit
├── Na2SO4_1M
├── ConfigurationGenerator.py
├── Na2SO4
│ ├── Angle.dat
│ ├── Bond.dat
│ └── Position.dat
├── conf.gro
├── log.err
├── log.out
├── npt.mdp
├── npt.top
├── run_bigfoot_pore.sh
├── runall.sh
└── topol.top
├── NaCl_0M
├── ConfigurationGenerator.py
├── NaCl
│ └── Position.dat
├── conf.gro
├── log.err
├── log.out
├── npt.mdp
├── npt.top
├── run_bigfoot_pore.sh
├── runall.sh
└── topol.top
├── NaCl_1M
├── ConfigurationGenerator.py
├── NaCl
│ └── Position.dat
├── conf.gro
├── log.err
├── log.out
├── npt.mdp
├── npt.top
├── run_bigfoot_pore.sh
├── runall.sh
└── topol.top
├── NaCl_4M
├── ConfigurationGenerator.py
├── NaCl
│ └── Position.dat
├── conf.gro
├── energy.xvg
├── log.err
├── log.out
├── npt.mdp
├── npt.top
├── nvt.cpt
├── nvt.edr
├── nvt.log
├── nvt.mdp
├── nvt.top
├── nvt.tpr
├── run_bigfoot_pore.sh
├── runall.sh
├── state.vmd
└── topol.top
├── README.md
├── ff
├── atomtypes.atp
├── ffbonded.itp
├── ffnonbonded.itp
├── forcefield.itp
├── ions.itp
├── molecules.rtp
└── tip4peps.itp
└── input
├── npt.mdp
├── nvt.mdp
├── prodHR.mdp
└── prodLR.mdp
/.gitattributes:
--------------------------------------------------------------------------------
1 | * linguist-vendored
2 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | **/*.xtc
2 | **/*.tpr
3 | **/*.log
4 | **/*.trr
5 | **/*.edr
6 | **/*.cpt
7 | **/min.gro
8 | **/nvt.gro
9 | **/npt.gro
10 | **/pro.gro
11 | **/min.gro
12 | **/nvt.gro
13 | **/npt.gro
14 | **/temp/
15 | **/*#*
16 | **/step*pdb
17 | try
18 | docs/doc-sphinx/build
19 | **/__pycache__
20 |
--------------------------------------------------------------------------------
/PEG-in-vacuum/PEG.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/simongravelle/gromacs-input-files/0bb814cc9b2e3f357b95d96982b128edb5535689/PEG-in-vacuum/PEG.jpg
--------------------------------------------------------------------------------
/PEG-in-vacuum/README.md:
--------------------------------------------------------------------------------
1 | # PEG in vacuum
2 |
3 |
4 |
5 | ### Description
6 |
7 | The system is a small PEG molecule in vacuum (or rather implicit water with dielectric permittivity of 80).
8 |
9 | ### How to
10 |
11 | Run gromacs using
12 |
13 | ```
14 | gmx grompp -f inputs/nvt.mdp -c peg.gro -p topol.top -o nvt -maxwarn 1
15 | gmx mdrun -v -deffnm nvt
16 | ```
17 |
18 | ### Output
19 |
20 | This [video](https://youtu.be/8ldIHP175TI) has been made with this script.
21 |
22 | ### Contact
23 |
24 | Feel free to contact me by email if you have inquiries. You can find contact details on my [personal page](https://simongravelle.github.io/).
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/PEG-in-vacuum/ff/charmm35r.itp:
--------------------------------------------------------------------------------
1 | [ atomtypes ]
2 | ;name at.num mass charge ptype c6 c12
3 | C 6 12.0110 -0.010 A 0.0019777255 4.1734223e-06
4 | OE 8 15.9994 -0.340 A 0.0010807004 6.9784497e-07
5 | H 1 1.00800 0.090 A 0.0001085175 2.0103758e-08
6 | OT 8 15.9994 -0.834 A 0.0024895404 2.4347674e-06
7 | HT 1 1.00800 0.417 A 3.15397e-09 1.29213e-17
8 |
9 | ; atomtypes for water models
10 | ; calculated using gmx sigeps -sig 3.15058e-01 -eps 6.36386e-01
11 | OW 8 15.999400 -0.834 A 2.48957e-03 2.43482e-06 ; TIP3p O
12 | HW 1 1.008000 0.417 A 0.0 0.0 ; TIP3p H
13 |
14 | [ nonbond_params ]
15 | ; i j func c6 c12
16 | C OE 1 0.00146196 1.70658e-06
17 | C H 1 0.000463268 2.89658e-07
18 | C OT 1 0.00221892 3.18768e-06
19 | C HT 1 2.49754e-06 7.34343e-12
20 | OE H 1 0.000342454 1.18445e-07
21 | OE OT 1 0.00164026 1.30349e-06
22 | OE HT 1 1.84621e-06 3.00284e-12
23 | H OT 1 0.000519767 2.21242e-07
24 | H HT 1 5.8503e-07 5.09673e-13
25 | OT HT 1 2.80213e-06 5.60895e-12
26 |
27 |
28 |
--------------------------------------------------------------------------------
/PEG-in-vacuum/inputs/nvt.mdp:
--------------------------------------------------------------------------------
1 | integrator = md
2 | dt = 0.001
3 | nsteps = 5000
4 |
5 | nstenergy = 1000
6 | nstlog = 1000
7 | nstxout = 1
8 |
9 | constraints = hbonds
10 |
11 | coulombtype = pme
12 | rcoulomb = 1.0
13 | rlist = 1.0
14 |
15 | vdwtype = Cut-off
16 | rvdw = 1.0
17 |
18 | tcoupl = v-rescale
19 | tau_t = 0.1
20 | ref_t = 300
21 | tc_grps = PEG
22 |
23 | gen_vel = yes
24 | gen-temp = 300
25 | gen-seed = 65823
26 |
27 | comm-mode = angular
28 |
29 | epsilon-r = 80
30 |
--------------------------------------------------------------------------------
/PEG-in-vacuum/peg.gro:
--------------------------------------------------------------------------------
1 | PEG in water
2 | 86
3 | 1PEG H 1 2.032 1.593 1.545 0.6568 2.5734 1.2192
4 | 1PEG C 2 1.929 1.614 1.508 0.1558 -0.2184 0.8547
5 | 1PEG H1 3 1.902 1.721 1.523 -3.6848 -0.3932 -3.0658
6 | 1PEG H2 4 1.921 1.588 1.400 -1.5891 1.4960 0.5057
7 | 1PEG O 5 1.831 1.544 1.576 0.0564 -0.5300 -0.6094
8 | 1PEG H3 6 1.676 1.665 1.494 -2.6585 -0.5997 0.3128
9 | 1PEG C1 7 1.699 1.559 1.519 0.6996 0.0066 0.2900
10 | 1PEG H4 8 1.699 1.500 1.425 4.2893 1.6837 -0.9462
11 | 1PEG H5 9 1.502 1.543 1.578 1.3303 1.7486 -1.1622
12 | 1PEG C2 10 1.598 1.510 1.623 0.4066 0.3592 -0.1336
13 | 1PEG H6 11 1.602 1.554 1.725 -2.6187 -0.1895 0.3258
14 | 1PEG O1 12 1.603 1.363 1.623 -0.1776 -0.0020 -0.0899
15 | 1PEG H7 13 1.393 1.314 1.669 -0.0947 0.0684 0.0712
16 | 1PEG C3 14 1.498 1.300 1.703 -0.2057 0.7610 0.7141
17 | 1PEG H8 15 1.501 1.335 1.809 -0.0161 -0.9788 1.3167
18 | 1PEG H9 16 1.426 1.104 1.753 -0.4509 0.1150 0.5531
19 | 1PEG C4 17 1.523 1.150 1.723 -0.3943 0.0846 0.6894
20 | 1PEG H10 18 1.535 1.109 1.622 -1.0253 -1.1778 1.0939
21 | 1PEG O2 19 1.636 1.115 1.802 -0.0583 0.0268 -0.3353
22 | 1PEG H11 20 1.697 0.952 1.903 -1.7200 1.5809 0.3153
23 | 1PEG C5 21 1.665 0.972 1.799 -0.0791 -0.1231 -0.5862
24 | 1PEG H12 22 1.571 0.914 1.787 0.3571 -0.6238 -1.8080
25 | 1PEG H13 23 1.774 0.822 1.702 1.2447 0.4928 0.6419
26 | 1PEG C6 24 1.761 0.931 1.694 0.4869 0.3383 -0.2744
27 | 1PEG H14 25 1.854 0.978 1.731 1.4196 -0.9046 -0.9738
28 | 1PEG O3 26 1.743 0.971 1.557 0.1563 0.2726 -0.3537
29 | 1PEG H15 27 1.854 0.813 1.485 -0.6991 -0.1432 2.1393
30 | 1PEG C7 28 1.859 0.924 1.479 0.4287 -0.2527 0.0436
31 | 1PEG H16 29 1.956 0.950 1.525 1.6711 -1.5638 -1.6808
32 | 1PEG H17 30 1.848 1.101 1.339 -0.6918 -0.0488 -0.8265
33 | 1PEG C8 31 1.838 0.990 1.342 -0.0193 -0.1000 -0.1814
34 | 1PEG H18 32 1.927 0.948 1.293 0.8813 1.1249 0.3367
35 | 1PEG O4 33 1.716 0.946 1.277 0.1208 0.1713 -0.1534
36 | 1PEG H19 34 1.684 1.113 1.155 -0.1424 -0.1358 1.8617
37 | 1PEG C9 35 1.706 1.004 1.149 0.1405 -0.0094 0.2534
38 | 1PEG H20 36 1.795 0.985 1.085 -1.7112 0.7171 -2.7245
39 | 1PEG H21 37 1.603 0.833 1.095 1.4338 0.2813 -0.5773
40 | 1PEG C10 38 1.592 0.940 1.067 0.6001 0.2381 -0.4444
41 | 1PEG H22 39 1.610 0.963 0.960 -0.2312 -0.2985 -0.7063
42 | 1PEG O5 40 1.466 0.987 1.117 -0.2148 -0.3325 0.1596
43 | 1PEG H23 41 1.357 0.826 1.026 0.6107 0.0522 1.1743
44 | 1PEG C11 42 1.354 0.936 1.040 -0.0091 0.2551 -0.4228
45 | 1PEG H24 43 1.345 0.996 0.947 -0.0423 0.8640 -0.0331
46 | 1PEG H25 44 1.138 0.950 1.032 -0.2858 2.8250 -0.3461
47 | 1PEG C12 45 1.219 0.960 1.107 0.0680 -0.1547 -0.2231
48 | 1PEG H26 46 1.209 0.886 1.189 0.4913 -1.1433 -1.0425
49 | 1PEG O6 47 1.223 1.096 1.158 0.2216 0.7724 -0.4694
50 | 1PEG H27 48 1.183 1.123 1.359 0.0466 -0.8976 -0.6364
51 | 1PEG C13 49 1.129 1.110 1.263 0.0391 -0.5138 -0.6822
52 | 1PEG H28 50 1.059 1.025 1.274 0.2618 -0.8095 -1.4633
53 | 1PEG H29 51 0.991 1.232 1.138 -0.1167 1.8513 0.7346
54 | 1PEG C14 52 1.042 1.230 1.236 -0.1117 0.2698 0.7386
55 | 1PEG H30 53 0.968 1.236 1.319 -1.4177 0.0546 -0.3711
56 | 1PEG O7 54 1.119 1.350 1.240 -0.4407 0.2275 0.7391
57 | 1PEG H31 55 0.970 1.446 1.111 -1.3651 -0.6114 0.9876
58 | 1PEG C15 56 1.047 1.464 1.189 0.0833 0.1406 -0.5338
59 | 1PEG H32 57 0.995 1.519 1.271 0.6443 -0.5819 0.3204
60 | 1PEG H33 58 1.087 1.659 1.092 0.2941 -0.8296 -1.0519
61 | 1PEG C16 59 1.139 1.573 1.141 0.9879 0.1188 -0.0842
62 | 1PEG H34 60 1.210 1.532 1.066 0.7009 2.7735 -1.9601
63 | 1PEG O8 61 1.217 1.635 1.244 0.4538 -0.0351 0.2097
64 | 1PEG H35 62 1.319 1.743 1.107 -0.5192 -1.4478 -0.0020
65 | 1PEG C17 63 1.339 1.689 1.202 0.6296 0.3689 0.8390
66 | 1PEG H36 64 1.412 1.607 1.186 -0.3249 -0.1704 -1.1088
67 | 1PEG H37 65 1.413 1.700 1.405 -1.0764 -0.1952 -0.3833
68 | 1PEG C18 66 1.406 1.771 1.320 -0.0679 -0.2688 -0.5376
69 | 1PEG H38 67 1.504 1.797 1.275 1.4789 -0.5698 2.4586
70 | 1PEG O9 68 1.327 1.882 1.354 -0.0543 0.4879 -0.4802
71 | 1PEG H39 69 1.451 1.924 1.525 -0.6963 0.8121 -0.1322
72 | 1PEG C19 70 1.394 1.972 1.444 0.3030 0.2768 -1.1694
73 | 1PEG H40 71 1.457 2.046 1.388 0.9758 1.5095 1.1360
74 | 1PEG H41 72 1.230 2.082 1.406 -0.0151 -2.0577 -0.5014
75 | 1PEG C20 73 1.287 2.054 1.497 -0.7215 -0.6252 0.4174
76 | 1PEG H42 74 1.330 2.146 1.543 -1.8737 -0.9199 2.2249
77 | 1PEG O10 75 1.199 1.998 1.595 -0.2326 -0.4867 -0.4768
78 | 1PEG H43 76 1.019 2.073 1.603 0.5775 0.5085 -0.5227
79 | 1PEG C21 77 1.112 2.083 1.663 0.1930 0.1202 0.1516
80 | 1PEG H44 78 1.148 2.187 1.655 0.3424 -0.0686 -2.1644
81 | 1PEG H45 79 1.035 2.103 1.850 2.2693 2.0650 0.1667
82 | 1PEG C22 80 1.113 2.039 1.806 0.2481 -0.7233 0.3397
83 | 1PEG H46 81 1.082 1.935 1.829 -3.1745 0.4660 1.6921
84 | 1PEG O11 82 1.242 2.081 1.854 -0.2620 -0.4716 -0.0803
85 | 1PEG H47 83 1.350 2.094 2.024 0.2058 -3.5468 1.7514
86 | 1PEG C23 84 1.247 2.064 1.997 -0.3147 -0.1542 -0.7945
87 | 1PEG H48 85 1.161 2.109 2.052 -0.0791 -0.6997 0.0396
88 | 1PEG H49 86 1.230 1.957 2.023 -2.4724 0.2719 -0.2221
89 | 3.00000 3.00000 3.00000
90 |
--------------------------------------------------------------------------------
/PEG-in-vacuum/topol.top:
--------------------------------------------------------------------------------
1 | [ defaults ]
2 | ; nbfunc comb-rule gen-pairs fudgeLJ fudgeQQ
3 | 1 1 no 1.0 1.0
4 |
5 | ; Include forcefield parameters
6 | #include "ff/charmm35r.itp"
7 | #include "ff/peg.itp"
8 |
9 | [ system ]
10 | ; Name
11 | PEG
12 |
13 | [ molecules ]
14 | ; Compound #mols
15 | PEG 1
16 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # GROMACS input files
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 | You can also have a look at [Gromacs Tutorials](https://gromacstutorials.github.io/) if you are new to Gromacs.
10 |
--------------------------------------------------------------------------------
/sodium_chloride_solution/NaCl.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/simongravelle/gromacs-input-files/0bb814cc9b2e3f357b95d96982b128edb5535689/sodium_chloride_solution/NaCl.jpg
--------------------------------------------------------------------------------
/sodium_chloride_solution/README.md:
--------------------------------------------------------------------------------
1 | # Bulk sodium chloride solution
2 |
3 |
4 |
5 | ### Description
6 |
7 | The simulation consists in a cubic box filled with water molecule and
8 | Na Cl ions. The force field for the water is [tip4p/epsilon](https://doi.org/10.1021/jp410865y). The force field for the ions is from [Loche et al.](https://doi.org/10.1021/acs.jpcb.1c05303)
9 |
10 | ### How to
11 |
12 | From the build/ folder, execute generate_configuration_gromacs.ipynb using jupyter-notebook to generate
13 | the initial configuration, or use the build_multiple_folder.sh bash script.
14 |
15 | Then, run gromacs using
16 | ```
17 | gmx grompp -f ../input/nvt.mdp -o nvt -pp nvt -po nvt
18 | gmx mdrun -v -deffnm nvt
19 | mv nvt.gro conf.gro
20 |
21 | gmx grompp -f ../input/npt.mdp -o npt -pp npt -po npt
22 | gmx mdrun -v -deffnm npt
23 | mv npt.gro conf.gro
24 |
25 | gmx grompp -f ../input/prod.mdp -o prod -pp prod -po prod
26 | gmx mdrun -v -deffnm prod
27 | ```
28 |
29 | ### Contact
30 |
31 | Feel free to contact me by email if you have inquiries. You can find contact
32 | details on my [personal page](https://simongravelle.github.io/).
33 |
--------------------------------------------------------------------------------
/sodium_chloride_solution/build/build_multiple_folder.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | set -e
4 |
5 | jupyter nbconvert --to script 'generate_configuration_gromacs.ipynb'
6 |
7 | for cions in 1 2 3 4 5;
8 | do
9 | newline='c = '$cions
10 | linetoreplace=$(cat generate_configuration_gromacs.py | grep 'c =')
11 | sed -i '/'"$linetoreplace"'/c\'"$newline" generate_configuration_gromacs.py
12 |
13 | DIRNAME=cs_${cions}M
14 | if [ ! -d "../$DIRNAME" ]; then
15 | echo "creating folder"
16 | mkdir ../$DIRNAME
17 | fi
18 |
19 | python3 generate_configuration_gromacs.py
20 |
21 | mv conf.gro topol.top ../$DIRNAME
22 | done
23 |
24 | rm generate_configuration_gromacs.py
25 |
--------------------------------------------------------------------------------
/sodium_chloride_solution/cs_5M/topol.top:
--------------------------------------------------------------------------------
1 | #include "../ff/forcefield.itp"
2 | #include "../ff/tip4peps.itp"
3 | #include "../ff/ions.itp"
4 |
5 | [ System ]
6 | Bulk Na Cl electrolyte
7 |
8 | [ Molecules ]
9 |
10 | Cl 83
11 | Na 83
12 | SOL 1834
13 |
--------------------------------------------------------------------------------
/sodium_chloride_solution/ff/atomtypes.atp:
--------------------------------------------------------------------------------
1 | ; atom types ==== masses ====== ; description
2 | Na 22.9900 ; sodium (Na)
3 | Cl 35.4500 ; chlorine (Cl)
4 | HW 1.0080 ; water hydrogen (HW)
5 | OW 15.9994 ; water oxygen (OW)
6 | MW 0.0000 ; water virtual site (MW)
7 | O 15.9994 ; oxygen SO4 (O)
8 | S 32.0600 ; sulfure SO4 (S)
9 |
--------------------------------------------------------------------------------
/sodium_chloride_solution/ff/ffbonded.itp:
--------------------------------------------------------------------------------
1 | [ bondtypes ]
2 | ; i j func b0 kb
3 | S O 1 0.15 3.7656e4
4 |
5 | [ angletypes ]
6 | ; i j func b0 kb
7 | O S O 1 109.5 520
8 |
--------------------------------------------------------------------------------
/sodium_chloride_solution/ff/ffnonbonded.itp:
--------------------------------------------------------------------------------
1 | [ atomtypes ]
2 | ; name at.num mass charge ptype sigma epsilon
3 | ; ---------- salts parameters
4 | Na 11 22.990 0.0000 A 0.23100 0.45000
5 | Cl 17 35.450 0.0000 A 0.43000 0.42000
6 | O 8 15.9994 0.0000 A 0.386 0.12
7 | S 16 32.0600 0.0000 A 0.355 1.0465
8 |
9 | ; ---------- water parameters
10 | HW 1 1.0079 0.0000 A 0.00000 0.00000
11 | OW 8 15.9994 0.0000 A 0.31650 0.77323
12 | MW 0 0.000 0.0000 D 0.00000 0.00000
13 |
--------------------------------------------------------------------------------
/sodium_chloride_solution/ff/forcefield.itp:
--------------------------------------------------------------------------------
1 | [ defaults ]
2 | ; nbfunc comb-rule gen-pairs fudgeLJ fudgeQQ
3 | 1 2 no 1.0 0.833
4 |
5 | #include "ffnonbonded.itp"
6 | #include "ffbonded.itp"
7 |
--------------------------------------------------------------------------------
/sodium_chloride_solution/ff/ions.itp:
--------------------------------------------------------------------------------
1 | [ moleculetype ]
2 | ; molname nrexcl
3 | Na 1
4 |
5 | [ atoms ]
6 | ; id at type res nr residu name at name cg nr charge
7 | 1 Na 1 Na Na 1 1
8 |
9 | #ifdef POSRES_ION
10 | [ position_restraints ]
11 | ; ai funct fcx fcy fcz
12 | 1 1 0 0 1000
13 | #endif
14 |
15 | [ moleculetype ]
16 | ; molname nrexcl
17 | Naf 1
18 |
19 | [ atoms ]
20 | ; id at type res nr residu name at name cg nr charge
21 | 1 Na 1 Na Na 1 1
22 |
23 | #ifdef POSRES_Na
24 | [ position_restraints ]
25 | ; ai funct fcx fcy fcz
26 | 1 1 0 0 1000
27 | #endif
28 |
29 | [ moleculetype ]
30 | ; molname nrexcl
31 | Cl 1
32 |
33 | [ atoms ]
34 | ; id at type res nr residu name at name cg nr charge
35 | 1 Cl 1 Cl Cl 1 -1
36 |
37 | #ifdef POSRES_ION
38 |
39 | [ position_restraints ]
40 | ; ai funct fcx fcy fcz
41 | 1 1 1000 1000 1000 ; restrains to a point
42 |
43 | #endif
44 |
45 | [ moleculetype ]
46 | ; molname nrexcl
47 | Clf 1
48 |
49 | [ atoms ]
50 | ; id at type res nr residu name at name cg nr charge
51 | 1 Cl 1 Cl Cl 1 -1
52 |
53 | #ifdef POSRES_Clf
54 |
55 | [ position_restraints ]
56 | ; ai funct fcx fcy fcz
57 | 1 1 1000 1000 1000 ; restrains to a point
58 |
59 | #endif
60 |
61 | [moleculetype]
62 | ; name nrexcl
63 | SO4 1
64 |
65 | [atoms]
66 | ;nr type resnr residu atom cgnr charge
67 | 1 O 1 SO4 O1 1 -1 15.9994
68 | 2 O 1 SO4 O2 1 -1 15.9994
69 | 3 O 1 SO4 O3 1 -1 15.9994
70 | 4 O 1 SO4 O4 1 -1 15.9994
71 | 5 S 1 SO4 S 1 2 32.0600
72 |
73 | [ bonds ]
74 | ; ai aj funct c0 c1
75 | 1 5 1 0.1520 3.7656e4
76 | 2 5 1 0.1520 3.7656e4
77 | 3 5 1 0.1520 3.7656e4
78 | 4 5 1 0.1520 3.7656e4
79 |
80 | [ angles ]
81 | ; ai aj ak funct angle fc
82 | 1 5 2 1 109.5 520
83 | 1 5 3 1 109.5 520
84 | 1 5 4 1 109.5 520
85 | 2 5 3 1 109.5 520
86 | 2 5 4 1 109.5 520
87 | 3 5 4 1 109.5 520
88 |
89 | [exclusions]
90 | 1 2 3 4 5
91 | 2 1 3 4 5
92 | 3 1 2 4 5
93 | 4 1 2 3 5
94 | 5 1 2 3 4
95 |
96 | [moleculetype]
97 | ; name nrexcl
98 | SO4f 1
99 |
100 | [atoms]
101 | ;nr type resnr residu atom cgnr charge
102 | 1 O 1 SO4f O1 1 -1 15.9994
103 | 2 O 1 SO4f O2 1 -1 15.9994
104 | 3 O 1 SO4f O3 1 -1 15.9994
105 | 4 O 1 SO4f O4 1 -1 15.9994
106 | 5 S 1 SO4f S 1 2 32.0600
107 |
108 | [ bonds ]
109 | ; ai aj funct c0 c1
110 | 1 5 1 0.1520 3.7656e4
111 | 2 5 1 0.1520 3.7656e4
112 | 3 5 1 0.1520 3.7656e4
113 | 4 5 1 0.1520 3.7656e4
114 |
115 | [ angles ]
116 | ; ai aj ak funct angle fc
117 | 1 5 2 1 109.5 520
118 | 1 5 3 1 109.5 520
119 | 1 5 4 1 109.5 520
120 | 2 5 3 1 109.5 520
121 | 2 5 4 1 109.5 520
122 | 3 5 4 1 109.5 520
123 |
124 | [exclusions]
125 | 1 2 3 4 5
126 | 2 1 3 4 5
127 | 3 1 2 4 5
128 | 4 1 2 3 5
129 | 5 1 2 3 4
130 |
131 | ; Include Position restraint file
132 | #ifdef POSRES
133 | #include "posre_SO4f.itp"
134 | #endif
135 |
136 |
--------------------------------------------------------------------------------
/sodium_chloride_solution/ff/molecules.rtp:
--------------------------------------------------------------------------------
1 | [ HO4 ]
2 | [ atoms ]
3 | OW OW 0.00 0
4 | HW1 HW 0.5564 0
5 | HW2 HW 0.5564 0
6 | MW MW -1.1128 0
7 | [ bonds ]
8 | OW HW1
9 | OW HW2
10 |
11 | [ Na ]
12 | [ atoms ]
13 | Na Na 1.00000 1
14 |
15 | [ Cl ]
16 | [ atoms ]
17 | Cl Cl -1.00000 1
18 |
19 | [ SO4 ]
20 | [ atoms ]
21 | O1 O -1 1
22 | O2 O -1 1
23 | O3 O -1 1
24 | O4 O -1 1
25 | S S 2 1
26 |
27 | [ bonds ]
28 | S O1
29 | S O2
30 | S O3
31 | S O4
32 |
33 | [ angles ]
34 | O1 S O2
35 | O1 S O3
36 | O1 S O4
37 | O2 S O3
38 | O2 S O4
39 | O3 S O4
40 |
41 | [ exclusions ]
42 | O2 O3 O4 S
43 | O1 O3 O4 S
44 | O1 O2 O4 S
45 | O1 O2 O3 S
46 | O1 O2 O3 O4
47 |
--------------------------------------------------------------------------------
/sodium_chloride_solution/ff/tip4peps.itp:
--------------------------------------------------------------------------------
1 | [ moleculetype ]
2 | ; molname nrexcl
3 | SOL 2
4 |
5 | [ atoms ]
6 | ; id at type res nr res name at name cg nr charge mass
7 | 1 OW 1 SOL OW 1 0 15.9994
8 | 2 HW 1 SOL HW1 1 0.527 1.0079
9 | 3 HW 1 SOL HW2 1 0.527 1.0079
10 | 4 MW 1 SOL MW 1 -1.054 0.0000
11 |
12 | [ settles ]
13 | ; i funct doh dhh
14 | 1 1 0.09572 0.15139
15 |
16 | [ virtual_sites3 ]
17 | ; Vsite from funct a b
18 | 4 1 2 3 1 0.089608 0.089608
19 |
20 | [ exclusions ]
21 | 1 2 3 4
22 | 2 1 3 4
23 | 3 1 2 4
24 | 4 1 2 3
25 |
26 | ; The position of the virtual site is computed as follows:
27 | ;
28 | ; O
29 | ;
30 | ; V
31 | ;
32 | ; H H
33 | ;
34 | ; const = distance (OV) / [ cos (angle(VOH)) * distance (OH) ] / 2
35 | ; = 0.0105 nm / [ cos (52.26 deg) * 0.09572 nm ] * 2
36 | ; = 0.17922 / 2
37 | ; = 0.089608
38 | ;
39 | ; Vsite pos x4 = x1 + a*(x2-x1) + b*(x3-x1)
40 |
--------------------------------------------------------------------------------
/sodium_chloride_solution/input/npt.mdp:
--------------------------------------------------------------------------------
1 | ;======================= running ============= ; description
2 | integrator = md ; leap-frog algorithm for integrating Newton’s equations of motion.
3 | nsteps = 250000 ; maximum number of steps to integrate or minimize (2 ns)
4 | dt = 0.001 ; time step for integration (1 fs)
5 | comm_mode = linear ; remove center of mass translation
6 | comm_grps = system ; group(s) for center of mass motion removal
7 | gen-vel = no ; generate velocities according to a Maxwell distribution
8 | gen-temp = 293.15 ; temperature for Maxwell distribution (K)
9 |
10 | ;======================= neighbor searching == ; description
11 | cutoff-scheme = Verlet ; generate a pair list with buffering
12 | nstlist = 10 ; frequency to update the neighbor list
13 | ns_type = grid
14 |
15 | ;======================= output ============== ; description
16 | nstlog = 10000 ; number of steps that elapse between writing energies to the log file
17 | nstenergy = 10000 ; number of steps that elapse between writing energies to energy file
18 | nstxout-compressed = 10000 ; frequency to write coordinates to xtc trajectory
19 |
20 | ;======================= van der Waals ======= ; description
21 | vdw-type = Cut-off ; plain cut-off with rlist >= rvdw
22 | rvdw = 1.4 ; distance for the LJ cut-off (nm)
23 |
24 | ; ====================== electrostatics ====== ; description
25 | coulombtype = pme ; fast smooth Particle-Mesh Ewald (SPME) electrostatics
26 | fourierspacing = 0.1 ; this should give an accuracy of about 2-3*10^-4
27 | pme-order = 4 ; interpolation order for PME (4 = cubic interpolation)
28 | rcoulomb = 1.4 ; distance for the Coulomb cut-off (nm)
29 |
30 | ; ====================== constraints ========= ; description
31 | constraint-algorithm = lincs ; more stable and faster than SHAKE
32 | constraints = hbonds ; convert the bonds with H-atoms to constraints
33 | continuation = yes ; apply or not constraints to the start configuration
34 |
35 | ; ====================== temp. coupling ====== ; description
36 | tcoupl = v-rescale ; Berendsen + stochastic term = proper canonical ensemble
37 | ld-seed = 48456 ; seed
38 | tc-grps = Water non-Water ; groups to couple to separate temperature baths
39 | tau-t = 0.5 0.5 ; time constant for coupling (ps)
40 | ref-t = 293.15 293.15 ; reference temperature for coupling (K)
41 | nhchainlength = 1 ; number of chained Nose-Hoover thermostats
42 |
43 | ; ====================== press. coupling ===== ; description
44 | pcoupl = berendsen ; exponential relaxation pressure coupling with time constant
45 | Pcoupltype = isotropic ; isotropic pressure coupling
46 | tau_p = 1.0 ; time constant for pressure coupling (ps)
47 | ref_p = 1.0 ; reference pressure for coupling (bar)
48 | compressibility = 4.5e-5 ; compressibility (bar-1)
49 |
--------------------------------------------------------------------------------
/sodium_chloride_solution/input/nvt.mdp:
--------------------------------------------------------------------------------
1 | ;======================= running ============= ; description
2 | integrator = md ; leap-frog algorithm for integrating Newton’s equations of motion.
3 | nsteps = 50000 ; maximum number of steps to integrate or minimize (2 ns)
4 | dt = 0.001 ; time step for integration (1 fs)
5 | comm_mode = linear ; remove center of mass translation
6 | comm_grps = system ; group(s) for center of mass motion removal
7 | gen-vel = yes ; generate velocities according to a Maxwell distribution
8 | gen-temp = 293.15 ; temperature for Maxwell distribution (K)
9 |
10 | ;======================= neighbor searching == ; description
11 | cutoff-scheme = Verlet ; generate a pair list with buffering
12 | nstlist = 10 ; frequency to update the neighbor list
13 | ns_type = grid
14 |
15 | ;======================= output ============== ; description
16 | nstlog = 10000 ; number of steps that elapse between writing energies to the log file
17 | nstenergy = 10000 ; number of steps that elapse between writing energies to energy file
18 | nstxout-compressed = 10000 ; frequency to write coordinates to xtc trajectory
19 |
20 | ;======================= van der Waals ======= ; description
21 | vdw-type = Cut-off ; plain cut-off with rlist >= rvdw
22 | rvdw = 1.4 ; distance for the LJ cut-off (nm)
23 |
24 | ; ====================== electrostatics ====== ; description
25 | coulombtype = pme ; fast smooth Particle-Mesh Ewald (SPME) electrostatics
26 | fourierspacing = 0.1 ; this should give an accuracy of about 2-3*10^-4
27 | pme-order = 4 ; interpolation order for PME (4 = cubic interpolation)
28 | rcoulomb = 1.4 ; distance for the Coulomb cut-off (nm)
29 |
30 | ; ====================== constraints ========= ; description
31 | constraint-algorithm = lincs ; more stable and faster than SHAKE
32 | constraints = hbonds ; convert the bonds with H-atoms to constraints
33 | continuation = no ; apply or not constraints to the start configuration
34 |
35 | ; ====================== temp. coupling ====== ; description
36 | tcoupl = v-rescale ; Berendsen + stochastic term = proper canonical ensemble
37 | ld-seed = 48456 ; seed
38 | tc-grps = Water non-Water ; groups to couple to separate temperature baths
39 | tau-t = 0.5 0.5 ; time constant for coupling (ps)
40 | ref-t = 293.15 293.15 ; reference temperature for coupling (K)
41 | nhchainlength = 1 ; number of chained Nose-Hoover thermostats
42 |
--------------------------------------------------------------------------------
/sodium_chloride_solution/input/prod.mdp:
--------------------------------------------------------------------------------
1 | ;======================= running ============= ; description
2 | integrator = md ; leap-frog algorithm for integrating Newton’s equations of motion.
3 | nsteps = 2000000 ; maximum number of steps to integrate or minimize (2 ns)
4 | dt = 0.001 ; time step for integration (1 fs)
5 | comm_mode = linear ; remove center of mass translation
6 | comm_grps = system ; group(s) for center of mass motion removal
7 | gen-vel = no ; generate velocities according to a Maxwell distribution
8 | gen-temp = 293.15 ; temperature for Maxwell distribution (K)
9 |
10 | ;======================= neighbor searching == ; description
11 | cutoff-scheme = Verlet ; generate a pair list with buffering
12 | nstlist = 10 ; frequency to update the neighbor list
13 | ns_type = grid
14 |
15 | ;======================== output ============== ; description
16 | nstlog = 10000 ; number of steps that elapse between writing energies to the log file
17 | nstenergy = 10000 ; number of steps that elapse between writing energies to energy file
18 | nstxout-compressed = 50 ; frequency to write coordinates to xtc trajectory
19 |
20 | ;======================= van der Waals ======= ; description
21 | vdw-type = Cut-off ; plain cut-off with rlist >= rvdw
22 | rvdw = 1.4 ; distance for the LJ cut-off (nm)
23 |
24 | ; ====================== electrostatics ====== ; description
25 | coulombtype = pme ; fast smooth Particle-Mesh Ewald (SPME) electrostatics
26 | fourierspacing = 0.1 ; this should give an accuracy of about 2-3*10^-4
27 | pme-order = 4 ; interpolation order for PME (4 = cubic interpolation)
28 | rcoulomb = 1.4 ; distance for the Coulomb cut-off (nm)
29 |
30 | ; ====================== constraints ========= ; description
31 | constraint-algorithm = lincs ; more stable and faster than SHAKE
32 | constraints = hbonds ; convert the bonds with H-atoms to constraints
33 | continuation = yes ; apply or not constraints to the start configuration
34 |
35 | ; ====================== temp. coupling ====== ; description
36 | tcoupl = v-rescale ; Berendsen + stochastic term = proper canonical ensemble
37 | ld-seed = 48456 ; seed
38 | tc-grps = Water non-Water ; groups to couple to separate temperature baths
39 | tau-t = 0.5 0.5 ; time constant for coupling (ps)
40 | ref-t = 293.15 293.15 ; reference temperature for coupling (K)
41 | nhchainlength = 1 ; number of chained Nose-Hoover thermostats
42 |
43 | ; ====================== press. coupling ===== ; description
44 | pcoupl = berendsen ; exponential relaxation pressure coupling with time constant
45 | Pcoupltype = isotropic ; isotropic pressure coupling
46 | tau_p = 1.0 ; time constant for pressure coupling (ps)
47 | ref_p = 1.0 ; reference pressure for coupling (bar)
48 | compressibility = 4.5e-5 ; compressibility (bar-1)
49 |
--------------------------------------------------------------------------------
/water-in-box/README.md:
--------------------------------------------------------------------------------
1 | # Diffusion coefficient of bulk water
2 |
3 |
4 |
5 | ### Description
6 |
7 | The simulation consists in a cubic box filled with water molecule.
8 | The force field for the water is [tip4p/epsilon](https://doi.org/10.1021/jp410865y).
9 |
10 | ### How to
11 |
12 | Execute generate_system.py using python to generate the initial configuration.
13 |
14 | Then, run gromacs using
15 | ```
16 | gmx grompp -f input/nvt.mdp -o nvt -pp nvt -po nvt
17 | gmx mdrun -v -deffnm nvt
18 | mv nvt.gro conf.gro
19 |
20 | gmx grompp -f input/npt.mdp -o npt -pp npt -po npt
21 | gmx mdrun -v -deffnm npt
22 | mv npt.gro conf.gro
23 |
24 | gmx grompp -f input/run.mdp -o run -pp run -po run
25 | gmx mdrun -v -deffnm run
26 | ```
27 |
28 | ### Diffusion coefficient measurement
29 |
30 | #### Method 1 - using GROMACS
31 |
32 | Execute the following command in the terminal:
33 | ```
34 | gmx msd -f run.xtc -s run.tpr
35 | ```
36 |
37 | #### Method 2 - using MDAnalysis
38 |
39 | Convert the trajectory to remove the periodic boundary conditions using:
40 | ```
41 | gmx trjconv -f run.xtc -o trajectory.xtc -pbc nojump
42 | ```
43 |
44 | Using python, run
45 |
46 | ```
47 | python diff_coeff_mda.py
48 | ```
49 |
50 | ### Contact
51 |
52 | Feel free to contact me by email if you have inquiries. You can find contact details on my [personal page](https://simongravelle.github.io/).
53 |
54 |
55 |
56 |
--------------------------------------------------------------------------------
/water-in-box/bulkwater.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/simongravelle/gromacs-input-files/0bb814cc9b2e3f357b95d96982b128edb5535689/water-in-box/bulkwater.jpg
--------------------------------------------------------------------------------
/water-in-box/diff_coeff_mda.py:
--------------------------------------------------------------------------------
1 | import MDAnalysis as mda
2 | import MDAnalysis.analysis.msd as msd
3 | import numpy as np
4 |
5 | u=mda.Universe('conf.gro', 'trajectory.xtc');
6 |
7 | MSD=msd.EinsteinMSD(u, select='name OW1', msd_type='xyz', fft=True)
8 | MSD.run();
9 | ResMSDXY=MSD.timeseries;
10 | nframes=MSD.n_frames;
11 | timestep=np.round(u.trajectory.dt, 2); # actual time between frames, ps
12 | lagtimes=np.arange(nframes)*timestep # make the lag-time axis
13 | z = np.polyfit(lagtimes[int(nframes*0.1):int(nframes*0.9)], ResMSDXY[int(nframes*0.1):int(nframes*0.9)], 1)
14 | d=3; # number of dimensions
15 | D=z[0]/(2*d); # A^2/ps
16 | print('The diffusion coefficient is '+str(D*1e-16/1e-12)+' cm^2/s')
17 |
--------------------------------------------------------------------------------
/water-in-box/ff/forcefield.itp:
--------------------------------------------------------------------------------
1 | [ defaults ]
2 | ;nbfunc comb-rule gen-pairs fudgeLJ fudgeQQ
3 | 1 2 yes 1.0 1.0
4 |
5 | ; TIP4P/e water model (J. Phys. Chem. B 2014, 118, 5, 1263–1272, https://doi.org/10.1021/jp410865y)
6 | [atomtypes]
7 | ;name mass charge ptype sigma epsilon
8 | MW 0 -1.054 D 0.0 0.0
9 | OW 15.9994 0 A 0.3165 0.77324
10 | HW 1.0079 0.527 A 0.0 0.0
11 |
12 |
13 |
--------------------------------------------------------------------------------
/water-in-box/ff/tip4peps.itp:
--------------------------------------------------------------------------------
1 | [ moleculetype ]
2 | ; molname nrexcl
3 | SOL 2
4 |
5 | [ atoms ]
6 | ; id at type res nr res name at name cg nr charge mass
7 | 1 OW 1 SOL OW 1 0 15.9994
8 | 2 HW 1 SOL HW1 1 0.527 1.0079
9 | 3 HW 1 SOL HW2 1 0.527 1.0079
10 | 4 MW 1 SOL MW 1 -1.054 0.0000
11 |
12 | [ settles ]
13 | ; i funct doh dhh
14 | 1 1 0.09572 0.15139
15 |
16 | [ virtual_sites3 ]
17 | ; Vsite from funct a b
18 | 4 1 2 3 1 0.089608 0.089608
19 |
20 | [ exclusions ]
21 | 1 2 3 4
22 | 2 1 3 4
23 | 3 1 2 4
24 | 4 1 2 3
25 |
26 | ; The position of the virtual site is computed as follows:
27 | ;
28 | ; O
29 | ;
30 | ; V
31 | ;
32 | ; H H
33 | ;
34 | ; const = distance (OV) / [ cos (angle(VOH)) * distance (OH) ] / 2
35 | ; = 0.0105 nm / [ cos (52.26 deg) * 0.09572 nm ] * 2
36 | ; = 0.17922 / 2
37 | ; = 0.089608
38 | ;
39 | ; Vsite pos x4 = x1 + a*(x2-x1) + b*(x3-x1)
40 |
--------------------------------------------------------------------------------
/water-in-box/generate_system.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | # coding: utf-8
3 |
4 | import numpy as np
5 | import matplotlib.pyplot as plt
6 | import random
7 | import copy
8 |
9 | Na = 6.022e23 #constants.Avogadro
10 | Mh2o = 0.018053 # kg/mol - water
11 | nwater = 800
12 | dw = 3.1
13 |
14 | # ### loop
15 | attemps = 0
16 | cptH2O = 0
17 | while cptH2O < nwater:
18 |
19 | Lx, Ly, Lz = 20+attemps*dw, 20+attemps*dw, 20+attemps*dw
20 | txlo, txhi = 0, Lx
21 | tylo, tyhi = 0, Ly
22 | tzlo, tzhi = 0, Lz
23 |
24 | cptatom = 0
25 | cptbond = 0
26 | cptangle = 0
27 | cptmol = 0
28 | cptH2O = 0
29 | cptres = 1
30 |
31 | # allocate memory
32 | XYZ = np.zeros((1000000,3))
33 | Typ = ["" for x in range(1000000)]
34 | ResName = ["" for x in range(1000000)]
35 | ResNum = np.zeros((1000000,1))
36 |
37 | cptH2O = 0
38 | # create water
39 | rOH = 0.9572
40 | rOM = 0.1546
41 | thetaHOH = 104.52
42 | PosH2O = np.array([[0, 0, 0], [rOH*np.cos((thetaHOH/2)*np.pi/180), rOH*np.sin((thetaHOH/2)*np.pi/180), 0.0], [rOH*np.cos((thetaHOH/2)*np.pi/180), -rOH*np.sin((thetaHOH/2)*np.pi/180), 0.0], [rOM, 0.0, 0.0]])
43 |
44 | TypH2O = ['OW', 'HW1', 'HW2', 'MW']
45 | for x in np.arange(txlo+dw/2,txhi,dw):
46 | for y in np.arange(tylo+dw/2,tyhi,dw):
47 | for z in np.arange(tzlo+dw/2,tzhi,dw):
48 | if cptH2O < nwater:
49 | for j in range(4):
50 | XYZ[cptatom] = [x,y,z]+np.array(PosH2O[j])
51 | Typ[cptatom] = TypH2O[j]
52 | ResNum[cptatom] = cptres
53 | ResName[cptatom] = 'SOL'
54 | cptatom += 1
55 | cptH2O += 1
56 | cptres += 1
57 | attemps += 1
58 |
59 | print('Lx = '+str(Lx/10)+' nm, Ly = '+str(Ly/10)+' nm, Lz = '+str(Lz/10)+' nm')
60 | print(str(cptH2O)+' water molecules')
61 |
62 |
63 | # ### write conf.gro
64 | f = open('conf.gro', 'w')
65 | f.write('Pure water\n')
66 | f.write(str(cptatom)+'\n')
67 | for n in range(cptatom):
68 | f.write("{: >5}".format(str(np.int32(ResNum[n][0])))) # residue number (5 positions, integer)
69 | f.write("{: >5}".format(str(ResName[n]))) # residue name (5 characters)
70 | f.write("{: >5}".format(str(Typ[n]))) # atom name (5 characters)
71 | f.write("{: >5}".format(str(np.int32(n+1)))) # atom number (5 positions, integer)
72 | f.write("{: >8}".format(str("{:.3f}".format(XYZ[n][0]/10)))) # position (in nm, x y z in 3 columns, each 8 positions with 3 decimal places)
73 | f.write("{: >8}".format(str("{:.3f}".format(XYZ[n][1]/10)))) # position (in nm, x y z in 3 columns, each 8 positions with 3 decimal places)
74 | f.write("{: >8}".format(str("{:.3f}".format(XYZ[n][2]/10)))) # position (in nm, x y z in 3 columns, each 8 positions with 3 decimal places)
75 | f.write("\n")
76 | f.write("{: >10}".format(str("{:.5f}".format(Lx/10))))
77 | f.write("{: >10}".format(str("{:.5f}".format(Ly/10))))
78 | f.write("{: >10}".format(str("{:.5f}".format(Lz/10))))
79 | f.close()
80 |
81 |
82 | # ### write topol.top
83 | f = open('topol.top', 'w')
84 | f.write('#include "ff/forcefield.itp"\n')
85 | f.write('#include "ff/tip4peps.itp"\n')
86 | f.write('[ System ]\n')
87 | f.write('Pure water\n\n')
88 | f.write('[ Molecules ]\n')
89 | f.write('SOL '+ str(cptH2O)+'\n')
90 | f.close()
91 |
92 |
--------------------------------------------------------------------------------
/water-in-box/input/npt.mdp:
--------------------------------------------------------------------------------
1 | ;======================== running ============= ; description
2 | integrator = md ; leap-frog algorithm for integrating Newton’s equations of motion.
3 | nsteps = 250000 ; maximum number of steps to integrate or minimize
4 | dt = 0.001 ; time step for integration (1 fs)
5 | comm_mode = linear ; remove center of mass translation
6 | comm_grps = system ; group(s) for center of mass motion removal
7 | gen-vel = no ; generate velocities according to a Maxwell distribution
8 | gen-temp = 293.15 ; temperature for Maxwell distribution (K)
9 |
10 | ;======================== neighbor searching == ; description
11 | cutoff-scheme = Verlet ; generate a pair list with buffering
12 | nstlist = 10 ; frequency to update the neighbor list
13 | ns_type = grid
14 |
15 | ;======================== output ============== ; description
16 | nstlog = 10000 ; number of steps that elapse between writing energies to the log file
17 | nstenergy = 10000 ; number of steps that elapse between writing energies to energy file
18 | nstxout-compressed = 10000 ; frequency to write coordinates to xtc trajectory
19 |
20 | ;======================== van der Waals ======= ; description
21 | vdw-type = Cut-off ; plain cut-off with rlist >= rvdw
22 | rvdw = 1.4 ; distance for the LJ cut-off (nm)
23 |
24 | ; ======================= electrostatics ======= ; description
25 | coulombtype = pme ; fast smooth Particle-Mesh Ewald (SPME) electrostatics
26 | fourierspacing = 0.1 ; this should give an accuracy of about 2-3*10^-4
27 | pme-order = 4 ; interpolation order for PME (4 = cubic interpolation)
28 | rcoulomb = 1.4 ; distance for the Coulomb cut-off (nm)
29 |
30 | ; ======================= constraints ========= ; description
31 | constraint-algorithm = lincs ; more stable and faster than SHAKE
32 | constraints = hbonds ; convert the bonds with H-atoms to constraints
33 | continuation = yes ; apply or not constraints to the start configuration
34 |
35 | ; ======================= temp. coupling ======= ; description
36 | tcoupl = v-rescale ; Berendsen + stochastic term = proper canonical ensemble
37 | ld-seed = 48456 ; seed
38 | tc-grps = Water ; groups to couple to separate temperature baths
39 | tau-t = 0.5 ; time constant for coupling (ps)
40 | ref-t = 293.15 ; reference temperature for coupling (K)
41 | nhchainlength = 1 ; number of chained Nose-Hoover thermostats
42 |
43 | ; ======================= press. coupling ===== ; description
44 | pcoupl = berendsen ; exponential relaxation pressure coupling with time constant
45 | Pcoupltype = isotropic ; isotropic pressure coupling
46 | tau_p = 1.0 ; time constant for pressure coupling (ps)
47 | ref_p = 1.0 ; reference pressure for coupling (bar)
48 | compressibility = 4.5e-5 ; compressibility (bar-1)
49 |
--------------------------------------------------------------------------------
/water-in-box/input/nvt.mdp:
--------------------------------------------------------------------------------
1 | ;======================== running ============= ; description
2 | integrator = md ; leap-frog algorithm for integrating Newton’s equations of motion.
3 | nsteps = 50000 ; maximum number of steps to integrate or minimize
4 | dt = 0.001 ; time step for integration (1 fs)
5 | comm_mode = linear ; remove center of mass translation
6 | comm_grps = system ; group(s) for center of mass motion removal
7 | gen-vel = yes ; generate velocities according to a Maxwell distribution
8 | gen-temp = 293.15 ; temperature for Maxwell distribution (K)
9 |
10 | ;======================== neighbor searching == ; description
11 | cutoff-scheme = Verlet ; generate a pair list with buffering
12 | nstlist = 10 ; frequency to update the neighbor list
13 | ns_type = grid
14 |
15 | ;======================== output ============== ; description
16 | nstlog = 10000 ; number of steps that elapse between writing energies to the log file
17 | nstenergy = 10000 ; number of steps that elapse between writing energies to energy file
18 | nstxout-compressed = 10000 ; frequency to write coordinates to xtc trajectory
19 |
20 | ;======================== van der Waals ======= ; description
21 | vdw-type = Cut-off ; plain cut-off with rlist >= rvdw
22 | rvdw = 1.4 ; distance for the LJ cut-off (nm)
23 |
24 | ; ======================= electrostatics ======= ; description
25 | coulombtype = pme ; fast smooth Particle-Mesh Ewald (SPME) electrostatics
26 | fourierspacing = 0.1 ; this should give an accuracy of about 2-3*10^-4
27 | pme-order = 4 ; interpolation order for PME (4 = cubic interpolation)
28 | rcoulomb = 1.4 ; distance for the Coulomb cut-off (nm)
29 |
30 | ; ======================= constraints ========= ; description
31 | constraint-algorithm = lincs ; more stable and faster than SHAKE
32 | constraints = hbonds ; convert the bonds with H-atoms to constraints
33 | continuation = no ; apply or not constraints to the start configuration
34 |
35 | ; ======================= temp. coupling ======= ; description
36 | tcoupl = v-rescale ; Berendsen + stochastic term = proper canonical ensemble
37 | ld-seed = 48456 ; seed
38 | tc-grps = Water ; groups to couple to separate temperature baths
39 | tau-t = 0.5 ; time constant for coupling (ps)
40 | ref-t = 293.15 ; reference temperature for coupling (K)
41 | nhchainlength = 1 ; number of chained Nose-Hoover thermostats
42 |
--------------------------------------------------------------------------------
/water-in-box/input/run.mdp:
--------------------------------------------------------------------------------
1 | ;======================== running ============= ; description
2 | integrator = md ; leap-frog algorithm for integrating Newton’s equations of motion.
3 | nsteps = 2000000 ; maximum number of steps to integrate or minimize (2 ns)
4 | dt = 0.001 ; time step for integration (1 fs)
5 | comm_mode = linear ; remove center of mass translation
6 | comm_grps = system ; group(s) for center of mass motion removal
7 | gen-vel = no ; generate velocities according to a Maxwell distribution
8 | gen-temp = 293.15 ; temperature for Maxwell distribution (K)
9 |
10 | ;======================== neighbor searching == ; description
11 | cutoff-scheme = Verlet ; generate a pair list with buffering
12 | nstlist = 10 ; frequency to update the neighbor list
13 | ns_type = grid
14 |
15 | ;======================== output ============== ; description
16 | nstlog = 10000 ; number of steps that elapse between writing energies to the log file
17 | nstenergy = 10000 ; number of steps that elapse between writing energies to energy file
18 | nstxout-compressed = 50 ; frequency to write coordinates to xtc trajectory
19 |
20 | ;======================== van der Waals ======= ; description
21 | vdw-type = Cut-off ; plain cut-off with rlist >= rvdw
22 | rvdw = 1.4 ; distance for the LJ cut-off (nm)
23 |
24 | ; ======================= electrostatics ======= ; description
25 | coulombtype = pme ; fast smooth Particle-Mesh Ewald (SPME) electrostatics
26 | fourierspacing = 0.1 ; this should give an accuracy of about 2-3*10^-4
27 | pme-order = 4 ; interpolation order for PME (4 = cubic interpolation)
28 | rcoulomb = 1.4 ; distance for the Coulomb cut-off (nm)
29 |
30 | ; ======================= constraints ========= ; description
31 | constraint-algorithm = lincs ; more stable and faster than SHAKE
32 | constraints = hbonds ; convert the bonds with H-atoms to constraints
33 | continuation = yes ; apply or not constraints to the start configuration
34 |
35 | ; ======================= temp. coupling ======= ; description
36 | tcoupl = v-rescale ; Berendsen + stochastic term = proper canonical ensemble
37 | ld-seed = 48456 ; seed
38 | tc-grps = Water ; groups to couple to separate temperature baths
39 | tau-t = 0.5 ; time constant for coupling (ps)
40 | ref-t = 293.15 ; reference temperature for coupling (K)
41 | nhchainlength = 1 ; number of chained Nose-Hoover thermostats
42 |
43 | ; ======================= press. coupling ===== ; description
44 | pcoupl = berendsen ; exponential relaxation pressure coupling with time constant
45 | Pcoupltype = isotropic ; isotropic pressure coupling
46 | tau_p = 1.0 ; time constant for pressure coupling (ps)
47 | ref_p = 1.0 ; reference pressure for coupling (bar)
48 | compressibility = 4.5e-5 ; compressibility (bar-1)
49 |
--------------------------------------------------------------------------------
/water-in-box/input/visco.mdp:
--------------------------------------------------------------------------------
1 | ;======================== running ============= ; description
2 | integrator = md ; leap-frog algorithm for integrating Newton’s equations of motion.
3 | nsteps = 50000000 ; maximum number of steps to integrate or minimize (50 ns)
4 | dt = 0.001 ; time step for integration (1 fs)
5 | comm_mode = linear ; remove center of mass translation
6 | comm_grps = system ; group(s) for center of mass motion removal
7 | gen-vel = no ; generate velocities according to a Maxwell distribution
8 | gen-temp = 293.15 ; temperature for Maxwell distribution (K)
9 |
10 | ;======================== neighbor searching == ; description
11 | cutoff-scheme = Verlet ; generate a pair list with buffering
12 | nstlist = 10 ; frequency to update the neighbor list
13 | ns_type = grid
14 |
15 | ;======================== output ============== ; description
16 | nstlog = 50000 ; number of steps that elapse between writing energies to the log file
17 | nstenergy = 50000 ; number of steps that elapse between writing energies to energy file
18 | nstxout-compressed = 50000 ; frequency to write coordinates to xtc trajectory
19 |
20 | ;======================== van der Waals ======= ; description
21 | vdw-type = Cut-off ; plain cut-off with rlist >= rvdw
22 | rvdw = 1.4 ; distance for the LJ cut-off (nm)
23 |
24 | ; ======================= electrostatics ======= ; description
25 | coulombtype = pme ; fast smooth Particle-Mesh Ewald (SPME) electrostatics
26 | fourierspacing = 0.1 ; this should give an accuracy of about 2-3*10^-4
27 | pme-order = 4 ; interpolation order for PME (4 = cubic interpolation)
28 | rcoulomb = 1.4 ; distance for the Coulomb cut-off (nm)
29 |
30 | ; ======================= constraints ========= ; description
31 | constraint-algorithm = lincs ; more stable and faster than SHAKE
32 | constraints = hbonds ; convert the bonds with H-atoms to constraints
33 | continuation = yes ; apply or not constraints to the start configuration
34 |
35 | ; ======================= temp. coupling ======= ; description
36 | tcoupl = v-rescale ; Berendsen + stochastic term = proper canonical ensemble
37 | ld-seed = 48456 ; seed
38 | tc-grps = Water ; groups to couple to separate temperature baths
39 | tau-t = 0.5 ; time constant for coupling (ps)
40 | ref-t = 293.15 ; reference temperature for coupling (K)
41 | nhchainlength = 1 ; number of chained Nose-Hoover thermostats
42 |
43 | ; ======================= press. coupling ===== ; description
44 | pcoupl = berendsen ; exponential relaxation pressure coupling with time constant
45 | Pcoupltype = isotropic ; isotropic pressure coupling
46 | tau_p = 1.0 ; time constant for pressure coupling (ps)
47 | ref_p = 1.0 ; reference pressure for coupling (bar)
48 | compressibility = 4.5e-5 ; compressibility (bar-1)
49 |
50 | ; ======================= non-equilibrium ===== ; description
51 | cos-acceleration = 0.05
52 |
53 |
54 |
55 |
--------------------------------------------------------------------------------
/water-in-box/topol.top:
--------------------------------------------------------------------------------
1 | #include "ff/forcefield.itp"
2 | #include "ff/tip4peps.itp"
3 | [ System ]
4 | Pure water
5 |
6 | [ Molecules ]
7 | SOL 800
8 |
--------------------------------------------------------------------------------
/water-in-salt-slit/Na2SO4_1M/Na2SO4/Angle.dat:
--------------------------------------------------------------------------------
1 | 1 1 14 9 15
2 | 2 1 14 9 25
3 | 3 1 14 9 27
4 | 4 1 15 9 25
5 | 5 1 15 9 27
6 | 6 1 25 9 27
7 | 7 1 26 10 13
8 | 8 1 26 10 28
9 | 9 1 26 10 16
10 | 10 1 13 10 28
11 | 11 1 13 10 16
12 | 12 1 28 10 16
13 | 13 1 19 11 17
14 | 14 1 19 11 22
15 | 15 1 19 11 23
16 | 16 1 17 11 22
17 | 17 1 17 11 23
18 | 18 1 22 11 23
19 | 19 1 21 12 20
20 | 20 1 21 12 18
21 | 21 1 21 12 24
22 | 22 1 20 12 18
23 | 23 1 20 12 24
24 | 24 1 18 12 24
25 |
--------------------------------------------------------------------------------
/water-in-salt-slit/Na2SO4_1M/Na2SO4/Bond.dat:
--------------------------------------------------------------------------------
1 | 1 1 9 14
2 | 2 1 9 15
3 | 3 1 9 25
4 | 4 1 9 27
5 | 5 1 10 26
6 | 6 1 10 13
7 | 7 1 10 28
8 | 8 1 10 16
9 | 9 1 11 19
10 | 10 1 11 17
11 | 11 1 11 22
12 | 12 1 11 23
13 | 13 1 12 21
14 | 14 1 12 20
15 | 15 1 12 18
16 | 16 1 12 24
17 |
--------------------------------------------------------------------------------
/water-in-salt-slit/Na2SO4_1M/Na2SO4/Position.dat:
--------------------------------------------------------------------------------
1 | 1 1 1 1 2.855150 2.852250 5.270630
2 | 2 1 1 1 2.855150 6.208250 1.756880
3 | 3 1 1 1 2.855150 0.000000 3.513750
4 | 4 1 1 1 2.855150 0.000000 0.000000
5 | 5 1 1 1 0.000000 7.382500 5.270630
6 | 6 1 1 1 0.000000 1.678000 1.756880
7 | 7 1 1 1 0.000000 4.530250 3.513750
8 | 8 1 1 1 0.000000 4.530250 0.000000
9 | 14 1 3 -1 2.855150 6.760950 4.059790
10 | 15 1 3 -1 2.855150 6.760950 6.481460
11 | 25 1 3 -1 4.073730 5.022240 5.270630
12 | 27 1 3 -1 1.636570 5.022240 5.270630
13 | 9 1 2 2 2.855150 5.903820 5.270630
14 | 26 1 3 -1 1.636570 4.038260 1.756880
15 | 13 1 3 -1 2.855150 2.299560 0.546037
16 | 28 1 3 -1 4.073730 4.038260 1.756880
17 | 16 1 3 -1 2.855150 2.299560 2.967710
18 | 10 1 2 2 2.855150 3.156680 1.756880
19 | 19 1 3 -1 -1.188800 0.508288 5.122010
20 | 17 1 3 -1 1.218580 0.491985 5.270630
21 | 22 1 3 -1 0.000000 2.230700 4.059790
22 | 23 1 3 -1 0.000000 2.230700 6.481460
23 | 11 1 2 2 0.000000 1.373570 5.270630
24 | 21 1 3 -1 0.000000 6.829800 0.546037
25 | 20 1 3 -1 1.218580 8.568510 1.756880
26 | 18 1 3 -1 -1.312250 8.271130 1.900150
27 | 24 1 3 -1 0.000000 6.829800 2.967710
28 | 12 1 2 2 0.000000 7.686930 1.756880
29 |
--------------------------------------------------------------------------------
/water-in-salt-slit/Na2SO4_1M/log.out:
--------------------------------------------------------------------------------
1 | Generated 28 of the 28 non-bonded parameter combinations
2 |
3 | Excluding 1 bonded neighbours molecule type 'SO4fi'
4 |
5 | turning H bonds into constraints...
6 |
7 | Excluding 1 bonded neighbours molecule type 'SO4'
8 |
9 | turning H bonds into constraints...
10 |
11 | Excluding 1 bonded neighbours molecule type 'SO4fp'
12 |
13 | turning H bonds into constraints...
14 |
15 | Excluding 1 bonded neighbours molecule type 'Nafi'
16 |
17 | turning H bonds into constraints...
18 |
19 | Excluding 1 bonded neighbours molecule type 'Na'
20 |
21 | turning H bonds into constraints...
22 |
23 | Excluding 2 bonded neighbours molecule type 'SOL'
24 |
25 | turning H bonds into constraints...
26 |
27 | Cleaning up constraints and constant bonded interactions with virtual sites
28 | Analysing residue names:
29 | There are: 912 Other residues
30 | There are: 3930 Water residues
31 | Analysing residues not classified as Protein/DNA/RNA/Water and splitting into groups...
32 |
33 | The largest distance between excluded atoms is 0.250 nm between atom 662 and 663
34 |
35 | Determining Verlet buffer for a tolerance of 0.005 kJ/mol/ps at 293.15 K
36 |
37 | Calculated rlist for 1x1 atom pair-list as 1.411 nm, buffer size 0.011 nm
38 |
39 | Set rlist, assuming 4x4 atom pair-list, to 1.400 nm, buffer size 0.000 nm
40 |
41 | Note that mdrun will redetermine rlist based on the actual pair-list setup
42 | Calculating fourier grid dimensions for X Y Z
43 | Using a fourier grid of 40x48x96, spacing 0.100 0.094 0.092
44 |
45 | Estimate for the relative computational load of the PME mesh part: 0.14
46 |
47 | This run will generate roughly 24 Mb of data
48 |
--------------------------------------------------------------------------------
/water-in-salt-slit/Na2SO4_1M/npt.mdp:
--------------------------------------------------------------------------------
1 | ;
2 | ; File 'npt.mdp' was generated
3 | ; By user: unknown (1862325)
4 | ; On host: bigfoot12
5 | ; At date: Tue May 16 17:18:17 2023
6 | ;
7 | ; Created by:
8 | ; :-) GROMACS - gmx grompp, 2023 (-:
9 | ;
10 | ; Executable: /home/gravells/softwares/gromacs-2023/build-gpu/bin/gmx
11 | ; Data prefix: /home/gravells/softwares/gromacs-2023 (source tree)
12 | ; Working dir: /bettik/gravells/water-in-salt-slit/Na2SO4_1M
13 | ; Command line:
14 | ; gmx grompp -f ../input/npt.mdp -p topol.top -o npt -pp npt -po npt -r conf.gro -maxwarn 2
15 |
16 | ; VARIOUS PREPROCESSING OPTIONS
17 | ; Preprocessor information: use cpp syntax.
18 | ; e.g.: -I/home/joe/doe -I/home/mary/roe
19 | include =
20 | ; e.g.: -DPOSRES -DFLEXIBLE (note these variable names are case sensitive)
21 | define =
22 |
23 | ; RUN CONTROL PARAMETERS
24 | integrator = md
25 | ; Start time and timestep in ps
26 | tinit = 0
27 | dt = 0.001
28 | nsteps = 50000000
29 | ; For exact run continuation or redoing part of a run
30 | init-step = 0
31 | ; Part index is updated automatically on checkpointing (keeps files separate)
32 | simulation-part = 1
33 | ; Multiple time-stepping
34 | mts = no
35 | ; mode for center of mass motion removal
36 | comm_mode = linear
37 | ; number of steps for center of mass motion removal
38 | nstcomm = 100
39 | ; group(s) for center of mass motion removal
40 | comm_grps = system
41 |
42 | ; LANGEVIN DYNAMICS OPTIONS
43 | ; Friction coefficient (amu/ps) and random seed
44 | bd-fric = 0
45 | ld-seed = 48456
46 |
47 | ; ENERGY MINIMIZATION OPTIONS
48 | ; Force tolerance and initial step-size
49 | emtol = 10
50 | emstep = 0.01
51 | ; Max number of iterations in relax-shells
52 | niter = 20
53 | ; Step size (ps^2) for minimization of flexible constraints
54 | fcstep = 0
55 | ; Frequency of steepest descents steps when doing CG
56 | nstcgsteep = 1000
57 | nbfgscorr = 10
58 |
59 | ; TEST PARTICLE INSERTION OPTIONS
60 | rtpi = 0.05
61 |
62 | ; OUTPUT CONTROL OPTIONS
63 | ; Output frequency for coords (x), velocities (v) and forces (f)
64 | nstxout = 0
65 | nstvout = 0
66 | nstfout = 0
67 | ; Output frequency for energies to log file and energy file
68 | nstlog = 200000
69 | nstcalcenergy = 100
70 | nstenergy = 200000
71 | ; Output frequency and precision for .xtc file
72 | nstxout-compressed = 200000
73 | compressed-x-precision = 1000
74 | ; This selects the subset of atoms for the compressed
75 | ; trajectory file. You can select multiple groups. By
76 | ; default, all atoms will be written.
77 | compressed-x-grps =
78 | ; Selection of energy groups
79 | energygrps =
80 |
81 | ; NEIGHBORSEARCHING PARAMETERS
82 | ; cut-off scheme (Verlet: particle based cut-offs)
83 | cutoff-scheme = Verlet
84 | ; nblist update frequency
85 | nstlist = 10
86 | ; Periodic boundary conditions: xyz, no, xy
87 | pbc = xyz
88 | periodic-molecules = no
89 | ; Allowed energy error due to the Verlet buffer in kJ/mol/ps per atom,
90 | ; a value of -1 means: use rlist
91 | verlet-buffer-tolerance = 0.005
92 | ; nblist cut-off
93 | rlist = 1
94 | ; long-range cut-off for switched potentials
95 |
96 | ; OPTIONS FOR ELECTROSTATICS AND VDW
97 | ; Method for doing electrostatics
98 | coulombtype = pme
99 | coulomb-modifier = Potential-shift-Verlet
100 | rcoulomb-switch = 0
101 | rcoulomb = 1.4
102 | ; Relative dielectric constant for the medium and the reaction field
103 | epsilon-r = 1
104 | epsilon-rf = 0
105 | ; Method for doing Van der Waals
106 | vdw-type = Cut-off
107 | vdw-modifier = Potential-shift-Verlet
108 | ; cut-off lengths
109 | rvdw-switch = 0
110 | rvdw = 1.4
111 | ; Apply long range dispersion corrections for Energy and Pressure
112 | DispCorr = No
113 | ; Extension of the potential lookup tables beyond the cut-off
114 | table-extension = 1
115 | ; Separate tables between energy group pairs
116 | energygrp-table =
117 | ; Spacing for the PME/PPPM FFT grid
118 | fourierspacing = 0.1
119 | ; FFT grid size, when a value is 0 fourierspacing will be used
120 | fourier-nx = 0
121 | fourier-ny = 0
122 | fourier-nz = 0
123 | ; EWALD/PME/PPPM parameters
124 | pme-order = 4
125 | ewald-rtol = 1e-05
126 | ewald-rtol-lj = 0.001
127 | lj-pme-comb-rule = Geometric
128 | ewald-geometry = 3d
129 | epsilon-surface = 0
130 | implicit-solvent = no
131 |
132 | ; OPTIONS FOR WEAK COUPLING ALGORITHMS
133 | ensemble-temperature-setting = auto
134 | ensemble-temperature = -1
135 | ; Temperature coupling
136 | tcoupl = v-rescale
137 | nsttcouple = -1
138 | nhchainlength = 1
139 | print-nose-hoover-chain-variables = no
140 | ; Groups to couple separately
141 | tc-grps = Water non-Water
142 | ; Time constant (ps) and reference temperature (K)
143 | tau-t = 0.5 0.5
144 | ref-t = 293.15 293.15
145 | ; pressure coupling
146 | pcoupl = berendsen
147 | Pcoupltype = anisotropic
148 | nstpcouple = -1
149 | ; Time constant (ps), compressibility (1/bar) and reference P (bar)
150 | tau_p = 1.
151 | compressibility = 4.5e-5 4.5e-5 4.5e-5 0 0 0
152 | ref_p = 1. 1. 1. 0. 0. 0.
153 | ; Scaling of reference coordinates, No, All or COM
154 | refcoord-scaling = No
155 |
156 | ; OPTIONS FOR QMMM calculations
157 | QMMM = no
158 | ; Groups treated with MiMiC
159 | QMMM-grps =
160 |
161 | ; SIMULATED ANNEALING
162 | ; Type of annealing for each temperature group (no/single/periodic)
163 | annealing =
164 | ; Number of time points to use for specifying annealing in each group
165 | annealing-npoints =
166 | ; List of times at the annealing points for each group
167 | annealing-time =
168 | ; Temp. at each annealing point, for each group.
169 | annealing-temp =
170 |
171 | ; GENERATE VELOCITIES FOR STARTUP RUN
172 | gen-vel = no
173 | gen-temp = 293.15
174 | gen-seed = -965214594
175 |
176 | ; OPTIONS FOR BONDS
177 | constraints = hbonds
178 | ; Type of constraint algorithm
179 | constraint-algorithm = lincs
180 | ; Do not constrain the start configuration
181 | continuation = yes
182 | ; Use successive overrelaxation to reduce the number of shake iterations
183 | Shake-SOR = no
184 | ; Relative tolerance of shake
185 | shake-tol = 0.0001
186 | ; Highest order in the expansion of the constraint coupling matrix
187 | lincs-order = 4
188 | ; Number of iterations in the final step of LINCS. 1 is fine for
189 | ; normal simulations, but use 2 to conserve energy in NVE runs.
190 | ; For energy minimization with constraints it should be 4 to 8.
191 | lincs-iter = 1
192 | ; Lincs will write a warning to the stderr if in one step a bond
193 | ; rotates over more degrees than
194 | lincs-warnangle = 30
195 | ; Convert harmonic bonds to morse potentials
196 | morse = no
197 |
198 | ; ENERGY GROUP EXCLUSIONS
199 | ; Pairs of energy groups for which all non-bonded interactions are excluded
200 | energygrp-excl =
201 |
202 | ; WALLS
203 | ; Number of walls, type, atom types, densities and box-z scale factor for Ewald
204 | nwall = 0
205 | wall-type = 9-3
206 | wall-r-linpot = -1
207 | wall-atomtype =
208 | wall-density =
209 | wall-ewald-zfac = 3
210 |
211 | ; COM PULLING
212 | pull = no
213 |
214 | ; AWH biasing
215 | awh = no
216 |
217 | ; ENFORCED ROTATION
218 | ; Enforced rotation: No or Yes
219 | rotation = no
220 |
221 | ; Group to display and/or manipulate in interactive MD session
222 | IMD-group =
223 |
224 | ; NMR refinement stuff
225 | ; Distance restraints type: No, Simple or Ensemble
226 | disre = No
227 | ; Force weighting of pairs in one distance restraint: Conservative or Equal
228 | disre-weighting = Conservative
229 | ; Use sqrt of the time averaged times the instantaneous violation
230 | disre-mixed = no
231 | disre-fc = 1000
232 | disre-tau = 0
233 | ; Output frequency for pair distances to energy file
234 | nstdisreout = 100
235 | ; Orientation restraints: No or Yes
236 | orire = no
237 | ; Orientation restraints force constant and tau for time averaging
238 | orire-fc = 0
239 | orire-tau = 0
240 | orire-fitgrp =
241 | ; Output frequency for trace(SD) and S to energy file
242 | nstorireout = 100
243 |
244 | ; Free energy variables
245 | free-energy = no
246 | couple-moltype =
247 | couple-lambda0 = vdw-q
248 | couple-lambda1 = vdw-q
249 | couple-intramol = no
250 | init-lambda = -1
251 | init-lambda-state = -1
252 | delta-lambda = 0
253 | nstdhdl = 50
254 | fep-lambdas =
255 | mass-lambdas =
256 | coul-lambdas =
257 | vdw-lambdas =
258 | bonded-lambdas =
259 | restraint-lambdas =
260 | temperature-lambdas =
261 | calc-lambda-neighbors = 1
262 | init-lambda-weights =
263 | dhdl-print-energy = no
264 | sc-function = beutler
265 | sc-alpha = 0
266 | sc-power = 1
267 | sc-r-power = 6
268 | sc-sigma = 0.3
269 | sc-coul = no
270 | sc-gapsys-scale-linpoint-lj = 0.85
271 | sc-gapsys-scale-linpoint-q = 0.3
272 | sc-gapsys-sigma-lj = 0.3
273 | separate-dhdl-file = yes
274 | dhdl-derivatives = yes
275 | dh_hist_size = 0
276 | dh_hist_spacing = 0.1
277 |
278 | ; Non-equilibrium MD stuff
279 | acc-grps =
280 | accelerate =
281 | freezegrps =
282 | freezedim =
283 | cos-acceleration = 0
284 | deform =
285 |
286 | ; simulated tempering variables
287 | simulated-tempering = no
288 | simulated-tempering-scaling = geometric
289 | sim-temp-low = 300
290 | sim-temp-high = 300
291 |
292 | ; Ion/water position swapping for computational electrophysiology setups
293 | ; Swap positions along direction: no, X, Y, Z
294 | swapcoords = no
295 | adress = no
296 |
297 | ; User defined thingies
298 | user1-grps =
299 | user2-grps =
300 | userint1 = 0
301 | userint2 = 0
302 | userint3 = 0
303 | userint4 = 0
304 | userreal1 = 0
305 | userreal2 = 0
306 | userreal3 = 0
307 | userreal4 = 0
308 | ; Electric fields
309 | ; Format for electric-field-x, etc. is: four real variables:
310 | ; amplitude (V/nm), frequency omega (1/ps), time for the pulse peak (ps),
311 | ; and sigma (ps) width of the pulse. Omega = 0 means static field,
312 | ; sigma = 0 means no pulse, leaving the field to be a cosine function.
313 | electric-field-x = 0 0 0 0
314 | electric-field-y = 0 0 0 0
315 | electric-field-z = 0 0 0 0
316 |
317 | ; Density guided simulation
318 | density-guided-simulation-active = false
319 |
320 | ; QM/MM with CP2K
321 | qmmm-cp2k-active = false
322 |
--------------------------------------------------------------------------------
/water-in-salt-slit/Na2SO4_1M/npt.top:
--------------------------------------------------------------------------------
1 | [ defaults ]
2 | ; nbfunc comb-rule gen-pairs fudgeLJ fudgeQQ
3 | 1 2 no 1.0 0.833
4 |
5 | [ atomtypes ]
6 | ; salts parameters
7 | ; name at.num mass charge ptype sigma epsilon
8 | Na 11 22.990 0.0000 A 0.23100 0.45000
9 | Cl 17 35.450 0.0000 A 0.43000 0.42000
10 | O 8 15.9994 0.0000 A 0.386 0.12
11 | S 16 32.0600 0.0000 A 0.355 1.0465
12 |
13 | ; water paramters
14 | ; name at.num mass charge ptype sigma epsilon
15 | HW 1 1.008 0.0000 A 0.00000 0.00000
16 | OW 8 16.000 0.0000 A 0.31650 0.76849
17 |
18 | ; DUMMY atoms
19 | ; name at.num mass charge ptype sigma epsilon
20 | MW 0 0.000 0.0000 D 0.00000 0.00000
21 |
22 |
23 |
24 | [ bondtypes ]
25 | ; i j func b0 kb
26 | S O 1 0.15 3.7656e4
27 |
28 | [ angletypes ]
29 | ; i j func b0 kb
30 | O S O 1 109.5 520
31 | [ moleculetype ]
32 | ; molname nrexcl
33 | SOL 2
34 |
35 | [ atoms ]
36 | ; id at type res nr res name at name cg nr charge mass
37 | 1 OW 1 SOL OW 1 0 15.9994
38 | 2 HW 1 SOL HW1 1 0.527 1.0079
39 | 3 HW 1 SOL HW2 1 0.527 1.0079
40 | 4 MW 1 SOL MW 1 -1.054 0.0000
41 |
42 | [ settles ]
43 | ; i funct doh dhh
44 | 1 1 0.09572 0.15139
45 |
46 | [ virtual_sites3 ]
47 | ; Vsite from funct a b
48 | 4 1 2 3 1 0.089608 0.089608
49 |
50 | [ exclusions ]
51 | 1 2 3 4
52 | 2 1 3 4
53 | 3 1 2 4
54 | 4 1 2 3
55 |
56 | ; The position of the virtual site is computed as follows:
57 | ;
58 | ; O
59 | ;
60 | ; V
61 | ;
62 | ; H H
63 | ;
64 | ; const = distance (OV) / [ cos (angle(VOH)) * distance (OH) ] / 2
65 | ; = 0.0105 nm / [ cos (52.26 deg) * 0.09572 nm ] * 2
66 | ; = 0.17922 / 2
67 | ; = 0.089608
68 | ;
69 | ; Vsite pos x4 = x1 + a*(x2-x1) + b*(x3-x1)
70 | [ moleculetype ]
71 | ; molname nrexcl
72 | Na 1
73 |
74 | [ atoms ]
75 | ; id at type res nr residu name at name cg nr charge
76 | 1 Na 1 Na Na 1 1
77 |
78 |
79 | [ moleculetype ]
80 | ; molname nrexcl
81 | Nafi 1
82 |
83 | [ atoms ]
84 | ; id at type res nr residu name at name cg nr charge
85 | 1 Na 1 Na Na 1 1
86 |
87 |
88 | [ moleculetype ]
89 | ; molname nrexcl
90 | Naf 1
91 |
92 | [ atoms ]
93 | ; id at type res nr residu name at name cg nr charge
94 | 1 Na 1 Na Na 1 1
95 |
96 | [ moleculetype ]
97 | ; molname nrexcl
98 | Cl 1
99 |
100 | [ atoms ]
101 | ; id at type res nr residu name at name cg nr charge
102 | 1 Cl 1 Cl Cl 1 -1
103 |
104 |
105 | [ moleculetype ]
106 | ; molname nrexcl
107 | Clf 1
108 |
109 | [ atoms ]
110 | ; id at type res nr residu name at name cg nr charge
111 | 1 Cl 1 Cl Cl 1 -1
112 |
113 | [ position_restraints ]
114 | ; ai funct fcx fcy fcz
115 | 1 1 20000 20000 20000 ; restrains to a point
116 |
117 | [moleculetype]
118 | ; name nrexcl
119 | SO4 1
120 |
121 | [atoms]
122 | ;nr type resnr residu atom cgnr charge
123 | 1 O 1 SO4 O1 1 -1 15.9994
124 | 2 O 1 SO4 O2 1 -1 15.9994
125 | 3 O 1 SO4 O3 1 -1 15.9994
126 | 4 O 1 SO4 O4 1 -1 15.9994
127 | 5 S 1 SO4 S 1 2 32.0600
128 |
129 | [ bonds ]
130 | ; ai aj funct c0 c1
131 | 1 5 1 0.1520 3.7656e4
132 | 2 5 1 0.1520 3.7656e4
133 | 3 5 1 0.1520 3.7656e4
134 | 4 5 1 0.1520 3.7656e4
135 |
136 | [ angles ]
137 | ; ai aj ak funct angle fc
138 | 1 5 2 1 109.5 520
139 | 1 5 3 1 109.5 520
140 | 1 5 4 1 109.5 520
141 | 2 5 3 1 109.5 520
142 | 2 5 4 1 109.5 520
143 | 3 5 4 1 109.5 520
144 |
145 | [exclusions]
146 | 1 2 3 4 5
147 | 2 1 3 4 5
148 | 3 1 2 4 5
149 | 4 1 2 3 5
150 | 5 1 2 3 4
151 |
152 | [moleculetype]
153 | ; name nrexcl
154 | SO4fp 1
155 |
156 | [atoms]
157 | ;nr type resnr residu atom cgnr charge
158 | 1 O 1 SO4f O1 1 -1 15.9994
159 | 2 O 1 SO4f O2 1 -1 15.9994
160 | 3 O 1 SO4f O3 1 -1 15.9994
161 | 4 O 1 SO4f O4 1 -1 15.9994
162 | 5 S 1 SO4f S 1 2 32.0600
163 |
164 | [ bonds ]
165 | ; ai aj funct c0 c1
166 | 1 5 1 0.1520 3.7656e4
167 | 2 5 1 0.1520 3.7656e4
168 | 3 5 1 0.1520 3.7656e4
169 | 4 5 1 0.1520 3.7656e4
170 |
171 | [ angles ]
172 | ; ai aj ak funct angle fc
173 | 1 5 2 1 109.5 520
174 | 1 5 3 1 109.5 520
175 | 1 5 4 1 109.5 520
176 | 2 5 3 1 109.5 520
177 | 2 5 4 1 109.5 520
178 | 3 5 4 1 109.5 520
179 |
180 | [exclusions]
181 | 1 2 3 4 5
182 | 2 1 3 4 5
183 | 3 1 2 4 5
184 | 4 1 2 3 5
185 | 5 1 2 3 4
186 |
187 | ; Include Position restraint file
188 |
189 |
190 |
191 |
192 |
193 | [moleculetype]
194 | ; name nrexcl
195 | SO4fi 1
196 |
197 | [atoms]
198 | ;nr type resnr residu atom cgnr charge
199 | 1 O 1 SO4f O1 1 -1 15.9994
200 | 2 O 1 SO4f O2 1 -1 15.9994
201 | 3 O 1 SO4f O3 1 -1 15.9994
202 | 4 O 1 SO4f O4 1 -1 15.9994
203 | 5 S 1 SO4f S 1 2 32.0600
204 |
205 | [ bonds ]
206 | ; ai aj funct c0 c1
207 | 1 5 1 0.1520 3.7656e4
208 | 2 5 1 0.1520 3.7656e4
209 | 3 5 1 0.1520 3.7656e4
210 | 4 5 1 0.1520 3.7656e4
211 |
212 | [ angles ]
213 | ; ai aj ak funct angle fc
214 | 1 5 2 1 109.5 520
215 | 1 5 3 1 109.5 520
216 | 1 5 4 1 109.5 520
217 | 2 5 3 1 109.5 520
218 | 2 5 4 1 109.5 520
219 | 3 5 4 1 109.5 520
220 |
221 | [exclusions]
222 | 1 2 3 4 5
223 | 2 1 3 4 5
224 | 3 1 2 4 5
225 | 4 1 2 3 5
226 | 5 1 2 3 4
227 |
228 |
229 |
230 |
231 | [ System ]
232 | SO4Na2 slit pore
233 |
234 | [ Molecules ]
235 |
236 | SO4fi 279
237 | SO4 24
238 | SO4fp 1
239 | Nafi 560
240 | Na 48
241 | SOL 3930
242 |
--------------------------------------------------------------------------------
/water-in-salt-slit/Na2SO4_1M/run_bigfoot_pore.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | #OAR -n mixture-nanopore
3 | #OAR -l /nodes=1/gpu=1/cpu=1/core=8,walltime=48:00:00
4 | #OAR -p gpumodel='A100'
5 | #OAR --stdout log.out
6 | #OAR --stderr log.err
7 | #OAR --project tamtam
8 |
9 | export GMX_MAXBACKUP=-1
10 |
11 | gmx=/home/gravells/softwares/gromacs-2023/build-gpu/bin/gmx
12 |
13 | #${gmx} grompp -f ../input/nvt.mdp -p topol.top -o nvt -pp nvt -po nvt -r conf.gro
14 | #${gmx} mdrun -deffnm nvt -v -rdd 1 -nt 8 -pin on
15 | #cp nvt.gro conf.gro
16 |
17 | ${gmx} grompp -f ../input/npt.mdp -p topol.top -o npt -pp npt -po npt -r conf.gro -maxwarn 2
18 | ${gmx} mdrun -deffnm npt -v -rdd 1 -nt 8 -pin on
19 | cp npt.gro conf.gro
20 |
21 |
--------------------------------------------------------------------------------
/water-in-salt-slit/Na2SO4_1M/runall.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # path to gromacs
4 | gmx=/work/sgravelle/Softwares/gromacs-install/bin/gmx
5 |
6 | ${gmx} grompp -f ../input/nvt.mdp -o nvt -pp nvt -po nvt -r conf.gro
7 | ${gmx} mdrun -v -deffnm nvt
8 | mv nvt.gro conf.gro
9 |
10 | ${gmx} grompp -f ../input/npt.mdp -o npt -pp npt -po npt -r conf.gro
11 | ${gmx} mdrun -v -deffnm npt
12 | mv npt.gro conf.gro
13 |
14 | ${gmx} grompp -f ../input/prodHR.mdp -o prodHR -pp prodHR -po prodHR -r conf.gro
15 | ${gmx} mdrun -v -deffnm prodHR
16 |
17 | ${gmx} grompp -f ../input/prodLR.mdp -o prodLR -pp prodLR -po prodLR -r conf.gro
18 | ${gmx} mdrun -v -deffnm prodLR
19 |
20 |
--------------------------------------------------------------------------------
/water-in-salt-slit/Na2SO4_1M/topol.top:
--------------------------------------------------------------------------------
1 | #include "../ff/forcefield.itp"
2 | #include "../ff/tip4peps.itp"
3 | #include "../ff/ions.itp"
4 |
5 | [ System ]
6 | SO4Na2 slit pore
7 |
8 | [ Molecules ]
9 |
10 | SO4fi 279
11 | SO4 24
12 | SO4fp 1
13 | Nafi 560
14 | Na 48
15 | SOL 3930
16 |
--------------------------------------------------------------------------------
/water-in-salt-slit/NaCl_0M/ConfigurationGenerator.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | # coding: utf-8
3 |
4 | # In[1]:
5 |
6 |
7 | import numpy as np
8 | import matplotlib.pyplot as plt
9 | import random
10 | import copy
11 | from numpy.linalg import norm
12 |
13 | def neighborsearch(neighbor,molecule,cptatm, x, y, z, Lx, Ly, Lz):
14 | '''Search all neighbor to a molecule in a box and return the closest distance'''
15 | box = np.array([Lx, Ly, Lz])
16 | minr = 10
17 | for m in molecule.T:
18 | x0 = m[0] + x
19 | y0 = m[1] + y
20 | z0 = m[2] + z
21 | dxdydz = np.remainder(neighbor[:cptatm].T - np.array([x0,y0,z0]) + box/2., box) - box/2.
22 | minr = np.min([minr,np.min(norm(dxdydz,axis=1))])
23 | return minr
24 |
25 | Na = 6.022e23 #constants.Avogadro
26 | Mh2o = 0.018053 # kg/mol - water
27 |
28 | N = 4000
29 |
30 | # desired concentration in mol/L
31 | c = 0
32 | nion = c*N*Mh2o/(2*(1+Mh2o*c)) # desired number for each ion
33 | nwater = N - 2*nion
34 |
35 | # choose the initial box dimensions
36 | dnacl = 2.84
37 | nx = 14
38 | ny = 14
39 | nz = 4
40 | dw = 3.1
41 | layer = nz*dnacl
42 | h = 5
43 | Lx = nx*dnacl
44 | Ly = ny*dnacl
45 |
46 | cptH2O = 0
47 | nCl = 0
48 | nNa = 0
49 |
50 | txlo, txhi = 0, Lx
51 | tylo, tyhi = 0, Ly
52 |
53 | attemps = 0
54 |
55 | while cptH2O+nNa+nCl < N:
56 |
57 |
58 | Lz = layer + h + dw*attemps
59 | tzlo, tzhi = 0,Lz
60 |
61 | cptatom = 0
62 | cptbond = 0
63 | cptangle = 0
64 | cptmol = 0
65 | cptNa = 0
66 | cptH2O = 0
67 | cptCl = 0
68 | cptClf = 0
69 | cptNaf = 0
70 | cptres = 1
71 | nCl = 0
72 | nNa = 0
73 |
74 | box = np.array([Lx, Ly, Lz])
75 |
76 | # allocate memory
77 | XYZ = np.zeros((1000000,3))
78 | Typ = ["" for x in range(1000000)]
79 | ResName = ["" for x in range(1000000)]
80 | ResNum = np.zeros((1000000,1))
81 |
82 | # Load NaCl positions for the wall crystal structure
83 | wallNaCl = np.zeros((10000,7))
84 | file1 = open('NaCl/Position.dat', 'r')
85 | Lines = file1.readlines()
86 | count = 0
87 | for line in Lines:
88 | wallNaCl[count]=line.strip().split(' ')
89 | count += 1
90 | wallNaCl = wallNaCl[0:count]
91 |
92 | # replicate the initial structure
93 | wallNaClrep = copy.deepcopy(wallNaCl)
94 | for xx in np.arange(txlo+dnacl/2,txhi,2*dnacl):
95 | for yy in np.arange(tylo+dnacl/2,tyhi,2*dnacl):
96 | for zz in np.arange(tzlo+dnacl/2,tzlo+layer,2*dnacl):
97 | wallNaClrep = np.append(wallNaClrep,wallNaCl+[0,0,0,0,xx,yy,zz], axis=0)
98 | wallNaClrep = wallNaClrep[8:]
99 | assert len(wallNaClrep[wallNaClrep.T[2]==1]) == len(wallNaClrep[wallNaClrep.T[2]==2])
100 |
101 | for n in range(len(wallNaClrep)):
102 | wallNaClrep[n,0] = np.int64(n+1)
103 |
104 | shift = np.min(wallNaClrep.T[6])
105 | wallNaClrep.T[6] -= shift
106 | layer = np.max(wallNaClrep.T[6]) - np.min(wallNaClrep.T[6])
107 |
108 | wallCl = wallNaClrep[wallNaClrep.T[2] == 2]
109 |
110 | # choose the Cl to maintain fix all over the production run (just one atom)
111 | selection = wallCl[(wallCl.T[6]>layer*0.3) & (wallCl.T[6]0
113 |
114 | for n in np.arange(selection[0], selection[0]+1,1):
115 | id0 = np.where(wallNaClrep.T[0] == n)
116 | wallNaClrep[id0,2] += 1
117 |
118 | wallCl = []
119 | wallCl = wallNaClrep[wallNaClrep.T[2] > 1]
120 | wallNa = wallNaClrep[wallNaClrep.T[2] == 1]
121 |
122 | # place the Cl of the wall
123 | for m in wallCl:
124 | if m[2] == 2:
125 | x0 = m[4]
126 | y0 = m[5]
127 | z0 = m[6]
128 | XYZ[cptatom] = [x0,y0,z0]
129 | Typ[cptatom] = 'Cl'
130 | ResNum[cptatom] = cptres
131 | ResName[cptatom] = 'Cl'
132 | cptCl += 1
133 | cptres += 1
134 | cptatom += 1
135 |
136 | # add Cl randomly
137 | fail = 0
138 | while (nCl < nion) & (fail < 1e4):
139 | x = random.randint(1,1000)/1000*(txhi-txlo)+txlo
140 | y = random.randint(1,1000)/1000*(tyhi-tylo)+tylo
141 | z = random.randint(1,1000)/1000*(tzhi-tzlo)+tzlo
142 | pos = np.array([x,y,z])
143 |
144 | dxdydz = np.remainder((pos - XYZ[0:cptatom]) + box/2., box) - box/2.
145 | d = np.min(norm(dxdydz,axis=1))
146 |
147 | if d > 3 and z>tzlo+layer+3 and z 3 and z>tzlo+layer+1.5 and z dw and z>tzlo+layer+3 and z5}".format(str(np.int32(ResNum[n][0])))) # residue number (5 positions, integer)
259 | f.write("{: >5}".format(str(ResName[n]))) # residue name (5 characters)
260 | f.write("{: >5}".format(str(Typ[n]))) # atom name (5 characters)
261 | f.write("{: >5}".format(str(np.int32(n+1)))) # atom number (5 positions, integer)
262 | f.write("{: >8}".format(str("{:.3f}".format(XYZ[n][0]/10)))) # position (in nm, x y z in 3 columns, each 8 positions with 3 decimal places)
263 | f.write("{: >8}".format(str("{:.3f}".format(XYZ[n][1]/10)))) # position (in nm, x y z in 3 columns, each 8 positions with 3 decimal places)
264 | f.write("{: >8}".format(str("{:.3f}".format(XYZ[n][2]/10)))) # position (in nm, x y z in 3 columns, each 8 positions with 3 decimal places)
265 | f.write("\n")
266 | f.write("{: >10}".format(str("{:.5f}".format(Lx/10))))
267 | f.write("{: >10}".format(str("{:.5f}".format(Ly/10))))
268 | f.write("{: >10}".format(str("{:.5f}".format(Lz/10))))
269 | f.close()
270 | # write topol.top
271 | f = open('topol.top', 'w')
272 | f.write('#include "../ff/forcefield.itp"\n')
273 | f.write('#include "../ff/tip4peps.itp"\n')
274 | f.write('#include "../ff/ions.itp"\n\n')
275 | f.write('[ System ]\n')
276 | f.write('SO4Na2 slit\n\n')
277 | f.write('[ Molecules ]\n\n')
278 | f.write('Cl '+ str(cptCl)+'\n')
279 | f.write('Clf '+ str(cptClf)+'\n')
280 | f.write('Naf '+ str(cptNaf)+'\n')
281 | f.write('Na '+ str(cptNa)+'\n')
282 | f.write('SOL '+ str(cptH2O)+'\n')
283 | f.close()
284 |
285 |
286 | # In[ ]:
287 |
288 |
289 |
290 |
291 |
--------------------------------------------------------------------------------
/water-in-salt-slit/NaCl_0M/NaCl/Position.dat:
--------------------------------------------------------------------------------
1 | 1 1 1 1 0. 0. 0.
2 | 2 2 2 -1 0. 2.84 0.
3 | 3 3 2 -1 2.84 0. 0.
4 | 4 4 1 1 2.84 2.84 0.
5 | 5 5 2 -1 0. 0. 2.84
6 | 6 6 1 1 0. 2.84 2.84
7 | 7 7 1 1 2.84 0. 2.84
8 | 8 8 2 -1 2.84 2.84 2.84
9 |
--------------------------------------------------------------------------------
/water-in-salt-slit/NaCl_0M/log.out:
--------------------------------------------------------------------------------
1 | Generated 28 of the 28 non-bonded parameter combinations
2 |
3 | Excluding 1 bonded neighbours molecule type 'Cl'
4 |
5 | turning H bonds into constraints...
6 |
7 | Excluding 1 bonded neighbours molecule type 'Clf'
8 |
9 | turning H bonds into constraints...
10 |
11 | Excluding 1 bonded neighbours molecule type 'Naf'
12 |
13 | turning H bonds into constraints...
14 |
15 | Excluding 1 bonded neighbours molecule type 'Na'
16 |
17 | turning H bonds into constraints...
18 |
19 | Excluding 2 bonded neighbours molecule type 'SOL'
20 |
21 | turning H bonds into constraints...
22 |
23 | Cleaning up constraints and constant bonded interactions with virtual sites
24 | Analysing residue names:
25 | There are: 784 Other residues
26 | There are: 4000 Water residues
27 | Analysing residues not classified as Protein/DNA/RNA/Water and splitting into groups...
28 |
29 | The largest distance between excluded atoms is 0.152 nm between atom 1746 and 1747
30 |
31 | Determining Verlet buffer for a tolerance of 0.005 kJ/mol/ps at 293.15 K
32 |
33 | Calculated rlist for 1x1 atom pair-list as 1.412 nm, buffer size 0.012 nm
34 |
35 | Set rlist, assuming 4x4 atom pair-list, to 1.400 nm, buffer size 0.000 nm
36 |
37 | Note that mdrun will redetermine rlist based on the actual pair-list setup
38 | Calculating fourier grid dimensions for X Y Z
39 | Using a fourier grid of 40x40x96, spacing 0.099 0.099 0.095
40 |
41 | Estimate for the relative computational load of the PME mesh part: 0.13
42 |
43 | This run will generate roughly 22 Mb of data
44 |
--------------------------------------------------------------------------------
/water-in-salt-slit/NaCl_0M/npt.mdp:
--------------------------------------------------------------------------------
1 | ;
2 | ; File 'npt.mdp' was generated
3 | ; By user: unknown (1862325)
4 | ; On host: bigfoot9
5 | ; At date: Tue May 16 20:18:00 2023
6 | ;
7 | ; Created by:
8 | ; :-) GROMACS - gmx grompp, 2023 (-:
9 | ;
10 | ; Executable: /home/gravells/softwares/gromacs-2023/build-gpu/bin/gmx
11 | ; Data prefix: /home/gravells/softwares/gromacs-2023 (source tree)
12 | ; Working dir: /bettik/gravells/water-in-salt-slit/NaCl_0M
13 | ; Command line:
14 | ; gmx grompp -f ../input/npt.mdp -p topol.top -o npt -pp npt -po npt -r conf.gro -maxwarn 2
15 |
16 | ; VARIOUS PREPROCESSING OPTIONS
17 | ; Preprocessor information: use cpp syntax.
18 | ; e.g.: -I/home/joe/doe -I/home/mary/roe
19 | include =
20 | ; e.g.: -DPOSRES -DFLEXIBLE (note these variable names are case sensitive)
21 | define =
22 |
23 | ; RUN CONTROL PARAMETERS
24 | integrator = md
25 | ; Start time and timestep in ps
26 | tinit = 0
27 | dt = 0.001
28 | nsteps = 50000000
29 | ; For exact run continuation or redoing part of a run
30 | init-step = 0
31 | ; Part index is updated automatically on checkpointing (keeps files separate)
32 | simulation-part = 1
33 | ; Multiple time-stepping
34 | mts = no
35 | ; mode for center of mass motion removal
36 | comm_mode = linear
37 | ; number of steps for center of mass motion removal
38 | nstcomm = 100
39 | ; group(s) for center of mass motion removal
40 | comm_grps = system
41 |
42 | ; LANGEVIN DYNAMICS OPTIONS
43 | ; Friction coefficient (amu/ps) and random seed
44 | bd-fric = 0
45 | ld-seed = 48456
46 |
47 | ; ENERGY MINIMIZATION OPTIONS
48 | ; Force tolerance and initial step-size
49 | emtol = 10
50 | emstep = 0.01
51 | ; Max number of iterations in relax-shells
52 | niter = 20
53 | ; Step size (ps^2) for minimization of flexible constraints
54 | fcstep = 0
55 | ; Frequency of steepest descents steps when doing CG
56 | nstcgsteep = 1000
57 | nbfgscorr = 10
58 |
59 | ; TEST PARTICLE INSERTION OPTIONS
60 | rtpi = 0.05
61 |
62 | ; OUTPUT CONTROL OPTIONS
63 | ; Output frequency for coords (x), velocities (v) and forces (f)
64 | nstxout = 0
65 | nstvout = 0
66 | nstfout = 0
67 | ; Output frequency for energies to log file and energy file
68 | nstlog = 200000
69 | nstcalcenergy = 100
70 | nstenergy = 200000
71 | ; Output frequency and precision for .xtc file
72 | nstxout-compressed = 200000
73 | compressed-x-precision = 1000
74 | ; This selects the subset of atoms for the compressed
75 | ; trajectory file. You can select multiple groups. By
76 | ; default, all atoms will be written.
77 | compressed-x-grps =
78 | ; Selection of energy groups
79 | energygrps =
80 |
81 | ; NEIGHBORSEARCHING PARAMETERS
82 | ; cut-off scheme (Verlet: particle based cut-offs)
83 | cutoff-scheme = Verlet
84 | ; nblist update frequency
85 | nstlist = 10
86 | ; Periodic boundary conditions: xyz, no, xy
87 | pbc = xyz
88 | periodic-molecules = no
89 | ; Allowed energy error due to the Verlet buffer in kJ/mol/ps per atom,
90 | ; a value of -1 means: use rlist
91 | verlet-buffer-tolerance = 0.005
92 | ; nblist cut-off
93 | rlist = 1
94 | ; long-range cut-off for switched potentials
95 |
96 | ; OPTIONS FOR ELECTROSTATICS AND VDW
97 | ; Method for doing electrostatics
98 | coulombtype = pme
99 | coulomb-modifier = Potential-shift-Verlet
100 | rcoulomb-switch = 0
101 | rcoulomb = 1.4
102 | ; Relative dielectric constant for the medium and the reaction field
103 | epsilon-r = 1
104 | epsilon-rf = 0
105 | ; Method for doing Van der Waals
106 | vdw-type = Cut-off
107 | vdw-modifier = Potential-shift-Verlet
108 | ; cut-off lengths
109 | rvdw-switch = 0
110 | rvdw = 1.4
111 | ; Apply long range dispersion corrections for Energy and Pressure
112 | DispCorr = No
113 | ; Extension of the potential lookup tables beyond the cut-off
114 | table-extension = 1
115 | ; Separate tables between energy group pairs
116 | energygrp-table =
117 | ; Spacing for the PME/PPPM FFT grid
118 | fourierspacing = 0.1
119 | ; FFT grid size, when a value is 0 fourierspacing will be used
120 | fourier-nx = 0
121 | fourier-ny = 0
122 | fourier-nz = 0
123 | ; EWALD/PME/PPPM parameters
124 | pme-order = 4
125 | ewald-rtol = 1e-05
126 | ewald-rtol-lj = 0.001
127 | lj-pme-comb-rule = Geometric
128 | ewald-geometry = 3d
129 | epsilon-surface = 0
130 | implicit-solvent = no
131 |
132 | ; OPTIONS FOR WEAK COUPLING ALGORITHMS
133 | ensemble-temperature-setting = auto
134 | ensemble-temperature = -1
135 | ; Temperature coupling
136 | tcoupl = v-rescale
137 | nsttcouple = -1
138 | nhchainlength = 1
139 | print-nose-hoover-chain-variables = no
140 | ; Groups to couple separately
141 | tc-grps = Water non-Water
142 | ; Time constant (ps) and reference temperature (K)
143 | tau-t = 0.5 0.5
144 | ref-t = 293.15 293.15
145 | ; pressure coupling
146 | pcoupl = berendsen
147 | Pcoupltype = anisotropic
148 | nstpcouple = -1
149 | ; Time constant (ps), compressibility (1/bar) and reference P (bar)
150 | tau_p = 1.
151 | compressibility = 4.5e-5 4.5e-5 4.5e-5 0 0 0
152 | ref_p = 1. 1. 1. 0. 0. 0.
153 | ; Scaling of reference coordinates, No, All or COM
154 | refcoord-scaling = No
155 |
156 | ; OPTIONS FOR QMMM calculations
157 | QMMM = no
158 | ; Groups treated with MiMiC
159 | QMMM-grps =
160 |
161 | ; SIMULATED ANNEALING
162 | ; Type of annealing for each temperature group (no/single/periodic)
163 | annealing =
164 | ; Number of time points to use for specifying annealing in each group
165 | annealing-npoints =
166 | ; List of times at the annealing points for each group
167 | annealing-time =
168 | ; Temp. at each annealing point, for each group.
169 | annealing-temp =
170 |
171 | ; GENERATE VELOCITIES FOR STARTUP RUN
172 | gen-vel = no
173 | gen-temp = 293.15
174 | gen-seed = -1241858234
175 |
176 | ; OPTIONS FOR BONDS
177 | constraints = hbonds
178 | ; Type of constraint algorithm
179 | constraint-algorithm = lincs
180 | ; Do not constrain the start configuration
181 | continuation = yes
182 | ; Use successive overrelaxation to reduce the number of shake iterations
183 | Shake-SOR = no
184 | ; Relative tolerance of shake
185 | shake-tol = 0.0001
186 | ; Highest order in the expansion of the constraint coupling matrix
187 | lincs-order = 4
188 | ; Number of iterations in the final step of LINCS. 1 is fine for
189 | ; normal simulations, but use 2 to conserve energy in NVE runs.
190 | ; For energy minimization with constraints it should be 4 to 8.
191 | lincs-iter = 1
192 | ; Lincs will write a warning to the stderr if in one step a bond
193 | ; rotates over more degrees than
194 | lincs-warnangle = 30
195 | ; Convert harmonic bonds to morse potentials
196 | morse = no
197 |
198 | ; ENERGY GROUP EXCLUSIONS
199 | ; Pairs of energy groups for which all non-bonded interactions are excluded
200 | energygrp-excl =
201 |
202 | ; WALLS
203 | ; Number of walls, type, atom types, densities and box-z scale factor for Ewald
204 | nwall = 0
205 | wall-type = 9-3
206 | wall-r-linpot = -1
207 | wall-atomtype =
208 | wall-density =
209 | wall-ewald-zfac = 3
210 |
211 | ; COM PULLING
212 | pull = no
213 |
214 | ; AWH biasing
215 | awh = no
216 |
217 | ; ENFORCED ROTATION
218 | ; Enforced rotation: No or Yes
219 | rotation = no
220 |
221 | ; Group to display and/or manipulate in interactive MD session
222 | IMD-group =
223 |
224 | ; NMR refinement stuff
225 | ; Distance restraints type: No, Simple or Ensemble
226 | disre = No
227 | ; Force weighting of pairs in one distance restraint: Conservative or Equal
228 | disre-weighting = Conservative
229 | ; Use sqrt of the time averaged times the instantaneous violation
230 | disre-mixed = no
231 | disre-fc = 1000
232 | disre-tau = 0
233 | ; Output frequency for pair distances to energy file
234 | nstdisreout = 100
235 | ; Orientation restraints: No or Yes
236 | orire = no
237 | ; Orientation restraints force constant and tau for time averaging
238 | orire-fc = 0
239 | orire-tau = 0
240 | orire-fitgrp =
241 | ; Output frequency for trace(SD) and S to energy file
242 | nstorireout = 100
243 |
244 | ; Free energy variables
245 | free-energy = no
246 | couple-moltype =
247 | couple-lambda0 = vdw-q
248 | couple-lambda1 = vdw-q
249 | couple-intramol = no
250 | init-lambda = -1
251 | init-lambda-state = -1
252 | delta-lambda = 0
253 | nstdhdl = 50
254 | fep-lambdas =
255 | mass-lambdas =
256 | coul-lambdas =
257 | vdw-lambdas =
258 | bonded-lambdas =
259 | restraint-lambdas =
260 | temperature-lambdas =
261 | calc-lambda-neighbors = 1
262 | init-lambda-weights =
263 | dhdl-print-energy = no
264 | sc-function = beutler
265 | sc-alpha = 0
266 | sc-power = 1
267 | sc-r-power = 6
268 | sc-sigma = 0.3
269 | sc-coul = no
270 | sc-gapsys-scale-linpoint-lj = 0.85
271 | sc-gapsys-scale-linpoint-q = 0.3
272 | sc-gapsys-sigma-lj = 0.3
273 | separate-dhdl-file = yes
274 | dhdl-derivatives = yes
275 | dh_hist_size = 0
276 | dh_hist_spacing = 0.1
277 |
278 | ; Non-equilibrium MD stuff
279 | acc-grps =
280 | accelerate =
281 | freezegrps =
282 | freezedim =
283 | cos-acceleration = 0
284 | deform =
285 |
286 | ; simulated tempering variables
287 | simulated-tempering = no
288 | simulated-tempering-scaling = geometric
289 | sim-temp-low = 300
290 | sim-temp-high = 300
291 |
292 | ; Ion/water position swapping for computational electrophysiology setups
293 | ; Swap positions along direction: no, X, Y, Z
294 | swapcoords = no
295 | adress = no
296 |
297 | ; User defined thingies
298 | user1-grps =
299 | user2-grps =
300 | userint1 = 0
301 | userint2 = 0
302 | userint3 = 0
303 | userint4 = 0
304 | userreal1 = 0
305 | userreal2 = 0
306 | userreal3 = 0
307 | userreal4 = 0
308 | ; Electric fields
309 | ; Format for electric-field-x, etc. is: four real variables:
310 | ; amplitude (V/nm), frequency omega (1/ps), time for the pulse peak (ps),
311 | ; and sigma (ps) width of the pulse. Omega = 0 means static field,
312 | ; sigma = 0 means no pulse, leaving the field to be a cosine function.
313 | electric-field-x = 0 0 0 0
314 | electric-field-y = 0 0 0 0
315 | electric-field-z = 0 0 0 0
316 |
317 | ; Density guided simulation
318 | density-guided-simulation-active = false
319 |
320 | ; QM/MM with CP2K
321 | qmmm-cp2k-active = false
322 |
--------------------------------------------------------------------------------
/water-in-salt-slit/NaCl_0M/npt.top:
--------------------------------------------------------------------------------
1 | [ defaults ]
2 | ; nbfunc comb-rule gen-pairs fudgeLJ fudgeQQ
3 | 1 2 no 1.0 0.833
4 |
5 | [ atomtypes ]
6 | ; salts parameters
7 | ; name at.num mass charge ptype sigma epsilon
8 | Na 11 22.990 0.0000 A 0.23100 0.45000
9 | Cl 17 35.450 0.0000 A 0.43000 0.42000
10 | O 8 15.9994 0.0000 A 0.386 0.12
11 | S 16 32.0600 0.0000 A 0.355 1.0465
12 |
13 | ; water paramters
14 | ; name at.num mass charge ptype sigma epsilon
15 | HW 1 1.008 0.0000 A 0.00000 0.00000
16 | OW 8 16.000 0.0000 A 0.31650 0.76849
17 |
18 | ; DUMMY atoms
19 | ; name at.num mass charge ptype sigma epsilon
20 | MW 0 0.000 0.0000 D 0.00000 0.00000
21 |
22 |
23 |
24 | [ bondtypes ]
25 | ; i j func b0 kb
26 | S O 1 0.15 3.7656e4
27 |
28 | [ angletypes ]
29 | ; i j func b0 kb
30 | O S O 1 109.5 520
31 | [ moleculetype ]
32 | ; molname nrexcl
33 | SOL 2
34 |
35 | [ atoms ]
36 | ; id at type res nr res name at name cg nr charge mass
37 | 1 OW 1 SOL OW 1 0 15.9994
38 | 2 HW 1 SOL HW1 1 0.527 1.0079
39 | 3 HW 1 SOL HW2 1 0.527 1.0079
40 | 4 MW 1 SOL MW 1 -1.054 0.0000
41 |
42 | [ settles ]
43 | ; i funct doh dhh
44 | 1 1 0.09572 0.15139
45 |
46 | [ virtual_sites3 ]
47 | ; Vsite from funct a b
48 | 4 1 2 3 1 0.089608 0.089608
49 |
50 | [ exclusions ]
51 | 1 2 3 4
52 | 2 1 3 4
53 | 3 1 2 4
54 | 4 1 2 3
55 |
56 | ; The position of the virtual site is computed as follows:
57 | ;
58 | ; O
59 | ;
60 | ; V
61 | ;
62 | ; H H
63 | ;
64 | ; const = distance (OV) / [ cos (angle(VOH)) * distance (OH) ] / 2
65 | ; = 0.0105 nm / [ cos (52.26 deg) * 0.09572 nm ] * 2
66 | ; = 0.17922 / 2
67 | ; = 0.089608
68 | ;
69 | ; Vsite pos x4 = x1 + a*(x2-x1) + b*(x3-x1)
70 | [ moleculetype ]
71 | ; molname nrexcl
72 | Na 1
73 |
74 | [ atoms ]
75 | ; id at type res nr residu name at name cg nr charge
76 | 1 Na 1 Na Na 1 1
77 |
78 |
79 | [ moleculetype ]
80 | ; molname nrexcl
81 | Nafi 1
82 |
83 | [ atoms ]
84 | ; id at type res nr residu name at name cg nr charge
85 | 1 Na 1 Na Na 1 1
86 |
87 |
88 | [ moleculetype ]
89 | ; molname nrexcl
90 | Naf 1
91 |
92 | [ atoms ]
93 | ; id at type res nr residu name at name cg nr charge
94 | 1 Na 1 Na Na 1 1
95 |
96 | [ moleculetype ]
97 | ; molname nrexcl
98 | Cl 1
99 |
100 | [ atoms ]
101 | ; id at type res nr residu name at name cg nr charge
102 | 1 Cl 1 Cl Cl 1 -1
103 |
104 |
105 | [ moleculetype ]
106 | ; molname nrexcl
107 | Clf 1
108 |
109 | [ atoms ]
110 | ; id at type res nr residu name at name cg nr charge
111 | 1 Cl 1 Cl Cl 1 -1
112 |
113 | [ position_restraints ]
114 | ; ai funct fcx fcy fcz
115 | 1 1 20000 20000 20000 ; restrains to a point
116 |
117 | [moleculetype]
118 | ; name nrexcl
119 | SO4 1
120 |
121 | [atoms]
122 | ;nr type resnr residu atom cgnr charge
123 | 1 O 1 SO4 O1 1 -1 15.9994
124 | 2 O 1 SO4 O2 1 -1 15.9994
125 | 3 O 1 SO4 O3 1 -1 15.9994
126 | 4 O 1 SO4 O4 1 -1 15.9994
127 | 5 S 1 SO4 S 1 2 32.0600
128 |
129 | [ bonds ]
130 | ; ai aj funct c0 c1
131 | 1 5 1 0.1520 3.7656e4
132 | 2 5 1 0.1520 3.7656e4
133 | 3 5 1 0.1520 3.7656e4
134 | 4 5 1 0.1520 3.7656e4
135 |
136 | [ angles ]
137 | ; ai aj ak funct angle fc
138 | 1 5 2 1 109.5 520
139 | 1 5 3 1 109.5 520
140 | 1 5 4 1 109.5 520
141 | 2 5 3 1 109.5 520
142 | 2 5 4 1 109.5 520
143 | 3 5 4 1 109.5 520
144 |
145 | [exclusions]
146 | 1 2 3 4 5
147 | 2 1 3 4 5
148 | 3 1 2 4 5
149 | 4 1 2 3 5
150 | 5 1 2 3 4
151 |
152 | [moleculetype]
153 | ; name nrexcl
154 | SO4fp 1
155 |
156 | [atoms]
157 | ;nr type resnr residu atom cgnr charge
158 | 1 O 1 SO4f O1 1 -1 15.9994
159 | 2 O 1 SO4f O2 1 -1 15.9994
160 | 3 O 1 SO4f O3 1 -1 15.9994
161 | 4 O 1 SO4f O4 1 -1 15.9994
162 | 5 S 1 SO4f S 1 2 32.0600
163 |
164 | [ bonds ]
165 | ; ai aj funct c0 c1
166 | 1 5 1 0.1520 3.7656e4
167 | 2 5 1 0.1520 3.7656e4
168 | 3 5 1 0.1520 3.7656e4
169 | 4 5 1 0.1520 3.7656e4
170 |
171 | [ angles ]
172 | ; ai aj ak funct angle fc
173 | 1 5 2 1 109.5 520
174 | 1 5 3 1 109.5 520
175 | 1 5 4 1 109.5 520
176 | 2 5 3 1 109.5 520
177 | 2 5 4 1 109.5 520
178 | 3 5 4 1 109.5 520
179 |
180 | [exclusions]
181 | 1 2 3 4 5
182 | 2 1 3 4 5
183 | 3 1 2 4 5
184 | 4 1 2 3 5
185 | 5 1 2 3 4
186 |
187 | ; Include Position restraint file
188 |
189 |
190 |
191 |
192 |
193 | [moleculetype]
194 | ; name nrexcl
195 | SO4fi 1
196 |
197 | [atoms]
198 | ;nr type resnr residu atom cgnr charge
199 | 1 O 1 SO4f O1 1 -1 15.9994
200 | 2 O 1 SO4f O2 1 -1 15.9994
201 | 3 O 1 SO4f O3 1 -1 15.9994
202 | 4 O 1 SO4f O4 1 -1 15.9994
203 | 5 S 1 SO4f S 1 2 32.0600
204 |
205 | [ bonds ]
206 | ; ai aj funct c0 c1
207 | 1 5 1 0.1520 3.7656e4
208 | 2 5 1 0.1520 3.7656e4
209 | 3 5 1 0.1520 3.7656e4
210 | 4 5 1 0.1520 3.7656e4
211 |
212 | [ angles ]
213 | ; ai aj ak funct angle fc
214 | 1 5 2 1 109.5 520
215 | 1 5 3 1 109.5 520
216 | 1 5 4 1 109.5 520
217 | 2 5 3 1 109.5 520
218 | 2 5 4 1 109.5 520
219 | 3 5 4 1 109.5 520
220 |
221 | [exclusions]
222 | 1 2 3 4 5
223 | 2 1 3 4 5
224 | 3 1 2 4 5
225 | 4 1 2 3 5
226 | 5 1 2 3 4
227 |
228 |
229 |
230 |
231 | [ System ]
232 | SO4Na2 slit
233 |
234 | [ Molecules ]
235 |
236 | Cl 391
237 | Clf 1
238 | Naf 392
239 | Na 0
240 | SOL 4000
241 |
--------------------------------------------------------------------------------
/water-in-salt-slit/NaCl_0M/run_bigfoot_pore.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | #OAR -n mixture-nanopore
3 | #OAR -l /nodes=1/gpu=1/cpu=1/core=8,walltime=48:00:00
4 | #OAR -p gpumodel='A100'
5 | #OAR --stdout log.out
6 | #OAR --stderr log.err
7 | #OAR --project tamtam
8 |
9 | export GMX_MAXBACKUP=-1
10 |
11 | gmx=/home/gravells/softwares/gromacs-2023/build-gpu/bin/gmx
12 |
13 | #${gmx} grompp -f ../input/nvt.mdp -p topol.top -o nvt -pp nvt -po nvt -r conf.gro
14 | #${gmx} mdrun -deffnm nvt -v -rdd 1 -nt 8 -pin on
15 | #cp nvt.gro conf.gro
16 |
17 | ${gmx} grompp -f ../input/npt.mdp -p topol.top -o npt -pp npt -po npt -r conf.gro -maxwarn 2
18 | ${gmx} mdrun -deffnm npt -v -rdd 1 -nt 8 -pin on
19 | cp npt.gro conf.gro
20 |
21 |
--------------------------------------------------------------------------------
/water-in-salt-slit/NaCl_0M/runall.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # path to gromacs
4 | gmx=/work/sgravelle/Softwares/gromacs-install/bin/gmx
5 |
6 | ${gmx} grompp -f ../input/nvt.mdp -o nvt -pp nvt -po nvt -r conf.gro
7 | ${gmx} mdrun -v -deffnm nvt
8 | mv nvt.gro conf.gro
9 |
10 | ${gmx} grompp -f ../input/npt.mdp -o npt -pp npt -po npt -r conf.gro
11 | ${gmx} mdrun -v -deffnm npt
12 | mv npt.gro conf.gro
13 |
14 | ${gmx} grompp -f ../input/prodHR.mdp -o prodHR -pp prodHR -po prodHR -r conf.gro
15 | ${gmx} mdrun -v -deffnm prodHR
16 |
17 | ${gmx} grompp -f ../input/prodLR.mdp -o prodLR -pp prodLR -po prodLR -r conf.gro
18 | ${gmx} mdrun -v -deffnm prodLR
19 |
20 |
--------------------------------------------------------------------------------
/water-in-salt-slit/NaCl_0M/topol.top:
--------------------------------------------------------------------------------
1 | #include "../ff/forcefield.itp"
2 | #include "../ff/tip4peps.itp"
3 | #include "../ff/ions.itp"
4 |
5 | [ System ]
6 | SO4Na2 slit
7 |
8 | [ Molecules ]
9 |
10 | Cl 391
11 | Clf 1
12 | Naf 392
13 | Na 0
14 | SOL 4000
15 |
--------------------------------------------------------------------------------
/water-in-salt-slit/NaCl_1M/ConfigurationGenerator.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | # coding: utf-8
3 |
4 | # In[1]:
5 |
6 |
7 | import numpy as np
8 | import matplotlib.pyplot as plt
9 | import random
10 | import copy
11 | from numpy.linalg import norm
12 |
13 | def neighborsearch(neighbor,molecule,cptatm, x, y, z, Lx, Ly, Lz):
14 | '''Search all neighbor to a molecule in a box and return the closest distance'''
15 | box = np.array([Lx, Ly, Lz])
16 | minr = 10
17 | for m in molecule.T:
18 | x0 = m[0] + x
19 | y0 = m[1] + y
20 | z0 = m[2] + z
21 | dxdydz = np.remainder(neighbor[:cptatm].T - np.array([x0,y0,z0]) + box/2., box) - box/2.
22 | minr = np.min([minr,np.min(norm(dxdydz,axis=1))])
23 | return minr
24 |
25 | Na = 6.022e23 #constants.Avogadro
26 | Mh2o = 0.018053 # kg/mol - water
27 |
28 | N = 4000
29 |
30 | # desired concentration in mol/L
31 | c = 1
32 | nion = c*N*Mh2o/(2*(1+Mh2o*c)) # desired number for each ion
33 | nwater = N - 2*nion
34 |
35 | # choose the initial box dimensions
36 | dnacl = 2.84
37 | nx = 14
38 | ny = 14
39 | nz = 4
40 | dw = 3.1
41 | layer = nz*dnacl
42 | h = 5
43 | Lx = nx*dnacl
44 | Ly = ny*dnacl
45 |
46 | cptH2O = 0
47 | nCl = 0
48 | nNa = 0
49 |
50 | txlo, txhi = 0, Lx
51 | tylo, tyhi = 0, Ly
52 |
53 | attemps = 0
54 |
55 | while cptH2O+nNa+nCl < N:
56 |
57 |
58 | Lz = layer + h + dw*attemps
59 | tzlo, tzhi = 0,Lz
60 |
61 | cptatom = 0
62 | cptbond = 0
63 | cptangle = 0
64 | cptmol = 0
65 | cptNa = 0
66 | cptH2O = 0
67 | cptCl = 0
68 | cptClf = 0
69 | cptNaf = 0
70 | cptres = 1
71 | nCl = 0
72 | nNa = 0
73 |
74 | box = np.array([Lx, Ly, Lz])
75 |
76 | # allocate memory
77 | XYZ = np.zeros((1000000,3))
78 | Typ = ["" for x in range(1000000)]
79 | ResName = ["" for x in range(1000000)]
80 | ResNum = np.zeros((1000000,1))
81 |
82 | # Load NaCl positions for the wall crystal structure
83 | wallNaCl = np.zeros((10000,7))
84 | file1 = open('NaCl/Position.dat', 'r')
85 | Lines = file1.readlines()
86 | count = 0
87 | for line in Lines:
88 | wallNaCl[count]=line.strip().split(' ')
89 | count += 1
90 | wallNaCl = wallNaCl[0:count]
91 |
92 | # replicate the initial structure
93 | wallNaClrep = copy.deepcopy(wallNaCl)
94 | for xx in np.arange(txlo+dnacl/2,txhi,2*dnacl):
95 | for yy in np.arange(tylo+dnacl/2,tyhi,2*dnacl):
96 | for zz in np.arange(tzlo+dnacl/2,tzlo+layer,2*dnacl):
97 | wallNaClrep = np.append(wallNaClrep,wallNaCl+[0,0,0,0,xx,yy,zz], axis=0)
98 | wallNaClrep = wallNaClrep[8:]
99 | assert len(wallNaClrep[wallNaClrep.T[2]==1]) == len(wallNaClrep[wallNaClrep.T[2]==2])
100 |
101 | for n in range(len(wallNaClrep)):
102 | wallNaClrep[n,0] = np.int64(n+1)
103 |
104 | shift = np.min(wallNaClrep.T[6])
105 | wallNaClrep.T[6] -= shift
106 | layer = np.max(wallNaClrep.T[6]) - np.min(wallNaClrep.T[6])
107 |
108 | wallCl = wallNaClrep[wallNaClrep.T[2] == 2]
109 |
110 | # choose the Cl to maintain fix all over the production run (just one atom)
111 | selection = wallCl[(wallCl.T[6]>layer*0.3) & (wallCl.T[6]0
113 |
114 | for n in np.arange(selection[0], selection[0]+1,1):
115 | id0 = np.where(wallNaClrep.T[0] == n)
116 | wallNaClrep[id0,2] += 1
117 |
118 | wallCl = []
119 | wallCl = wallNaClrep[wallNaClrep.T[2] > 1]
120 | wallNa = wallNaClrep[wallNaClrep.T[2] == 1]
121 |
122 | # place the Cl of the wall
123 | for m in wallCl:
124 | if m[2] == 2:
125 | x0 = m[4]
126 | y0 = m[5]
127 | z0 = m[6]
128 | XYZ[cptatom] = [x0,y0,z0]
129 | Typ[cptatom] = 'Cl'
130 | ResNum[cptatom] = cptres
131 | ResName[cptatom] = 'Cl'
132 | cptCl += 1
133 | cptres += 1
134 | cptatom += 1
135 |
136 | # add Cl randomly
137 | fail = 0
138 | while (nCl < nion) & (fail < 1e4):
139 | x = random.randint(1,1000)/1000*(txhi-txlo)+txlo
140 | y = random.randint(1,1000)/1000*(tyhi-tylo)+tylo
141 | z = random.randint(1,1000)/1000*(tzhi-tzlo)+tzlo
142 | pos = np.array([x,y,z])
143 |
144 | dxdydz = np.remainder((pos - XYZ[0:cptatom]) + box/2., box) - box/2.
145 | d = np.min(norm(dxdydz,axis=1))
146 |
147 | if d > 3 and z>tzlo+layer+3 and z 3 and z>tzlo+layer+1.5 and z dw and z>tzlo+layer+3 and z5}".format(str(np.int32(ResNum[n][0])))) # residue number (5 positions, integer)
259 | f.write("{: >5}".format(str(ResName[n]))) # residue name (5 characters)
260 | f.write("{: >5}".format(str(Typ[n]))) # atom name (5 characters)
261 | f.write("{: >5}".format(str(np.int32(n+1)))) # atom number (5 positions, integer)
262 | f.write("{: >8}".format(str("{:.3f}".format(XYZ[n][0]/10)))) # position (in nm, x y z in 3 columns, each 8 positions with 3 decimal places)
263 | f.write("{: >8}".format(str("{:.3f}".format(XYZ[n][1]/10)))) # position (in nm, x y z in 3 columns, each 8 positions with 3 decimal places)
264 | f.write("{: >8}".format(str("{:.3f}".format(XYZ[n][2]/10)))) # position (in nm, x y z in 3 columns, each 8 positions with 3 decimal places)
265 | f.write("\n")
266 | f.write("{: >10}".format(str("{:.5f}".format(Lx/10))))
267 | f.write("{: >10}".format(str("{:.5f}".format(Ly/10))))
268 | f.write("{: >10}".format(str("{:.5f}".format(Lz/10))))
269 | f.close()
270 | # write topol.top
271 | f = open('topol.top', 'w')
272 | f.write('#include "../ff/forcefield.itp"\n')
273 | f.write('#include "../ff/tip4peps.itp"\n')
274 | f.write('#include "../ff/ions.itp"\n\n')
275 | f.write('[ System ]\n')
276 | f.write('SO4Na2 slit\n\n')
277 | f.write('[ Molecules ]\n\n')
278 | f.write('Cl '+ str(cptCl)+'\n')
279 | f.write('Clf '+ str(cptClf)+'\n')
280 | f.write('Naf '+ str(cptNaf)+'\n')
281 | f.write('Na '+ str(cptNa)+'\n')
282 | f.write('SOL '+ str(cptH2O)+'\n')
283 | f.close()
284 |
285 |
286 | # In[ ]:
287 |
288 |
289 |
290 |
291 |
--------------------------------------------------------------------------------
/water-in-salt-slit/NaCl_1M/NaCl/Position.dat:
--------------------------------------------------------------------------------
1 | 1 1 1 1 0. 0. 0.
2 | 2 2 2 -1 0. 2.84 0.
3 | 3 3 2 -1 2.84 0. 0.
4 | 4 4 1 1 2.84 2.84 0.
5 | 5 5 2 -1 0. 0. 2.84
6 | 6 6 1 1 0. 2.84 2.84
7 | 7 7 1 1 2.84 0. 2.84
8 | 8 8 2 -1 2.84 2.84 2.84
9 |
--------------------------------------------------------------------------------
/water-in-salt-slit/NaCl_1M/log.out:
--------------------------------------------------------------------------------
1 | Generated 28 of the 28 non-bonded parameter combinations
2 |
3 | Excluding 1 bonded neighbours molecule type 'Cl'
4 |
5 | turning H bonds into constraints...
6 |
7 | Excluding 1 bonded neighbours molecule type 'Clf'
8 |
9 | turning H bonds into constraints...
10 |
11 | Excluding 1 bonded neighbours molecule type 'Naf'
12 |
13 | turning H bonds into constraints...
14 |
15 | Excluding 1 bonded neighbours molecule type 'Na'
16 |
17 | turning H bonds into constraints...
18 |
19 | Excluding 2 bonded neighbours molecule type 'SOL'
20 |
21 | turning H bonds into constraints...
22 |
23 | Cleaning up constraints and constant bonded interactions with virtual sites
24 | Analysing residue names:
25 | There are: 856 Other residues
26 | There are: 3930 Water residues
27 | Analysing residues not classified as Protein/DNA/RNA/Water and splitting into groups...
28 |
29 | The largest distance between excluded atoms is 0.153 nm between atom 11054 and 11055
30 |
31 | Determining Verlet buffer for a tolerance of 0.005 kJ/mol/ps at 293.15 K
32 |
33 | Calculated rlist for 1x1 atom pair-list as 1.412 nm, buffer size 0.012 nm
34 |
35 | Set rlist, assuming 4x4 atom pair-list, to 1.400 nm, buffer size 0.000 nm
36 |
37 | Note that mdrun will redetermine rlist based on the actual pair-list setup
38 | Calculating fourier grid dimensions for X Y Z
39 | Using a fourier grid of 40x40x96, spacing 0.099 0.099 0.098
40 |
41 | Estimate for the relative computational load of the PME mesh part: 0.13
42 |
43 | This run will generate roughly 22 Mb of data
44 |
--------------------------------------------------------------------------------
/water-in-salt-slit/NaCl_1M/npt.mdp:
--------------------------------------------------------------------------------
1 | ;
2 | ; File 'npt.mdp' was generated
3 | ; By user: unknown (1862325)
4 | ; On host: bigfoot12
5 | ; At date: Tue May 16 17:18:07 2023
6 | ;
7 | ; Created by:
8 | ; :-) GROMACS - gmx grompp, 2023 (-:
9 | ;
10 | ; Executable: /home/gravells/softwares/gromacs-2023/build-gpu/bin/gmx
11 | ; Data prefix: /home/gravells/softwares/gromacs-2023 (source tree)
12 | ; Working dir: /bettik/gravells/water-in-salt-slit/NaCl_1M
13 | ; Command line:
14 | ; gmx grompp -f ../input/npt.mdp -p topol.top -o npt -pp npt -po npt -r conf.gro -maxwarn 2
15 |
16 | ; VARIOUS PREPROCESSING OPTIONS
17 | ; Preprocessor information: use cpp syntax.
18 | ; e.g.: -I/home/joe/doe -I/home/mary/roe
19 | include =
20 | ; e.g.: -DPOSRES -DFLEXIBLE (note these variable names are case sensitive)
21 | define =
22 |
23 | ; RUN CONTROL PARAMETERS
24 | integrator = md
25 | ; Start time and timestep in ps
26 | tinit = 0
27 | dt = 0.001
28 | nsteps = 50000000
29 | ; For exact run continuation or redoing part of a run
30 | init-step = 0
31 | ; Part index is updated automatically on checkpointing (keeps files separate)
32 | simulation-part = 1
33 | ; Multiple time-stepping
34 | mts = no
35 | ; mode for center of mass motion removal
36 | comm_mode = linear
37 | ; number of steps for center of mass motion removal
38 | nstcomm = 100
39 | ; group(s) for center of mass motion removal
40 | comm_grps = system
41 |
42 | ; LANGEVIN DYNAMICS OPTIONS
43 | ; Friction coefficient (amu/ps) and random seed
44 | bd-fric = 0
45 | ld-seed = 48456
46 |
47 | ; ENERGY MINIMIZATION OPTIONS
48 | ; Force tolerance and initial step-size
49 | emtol = 10
50 | emstep = 0.01
51 | ; Max number of iterations in relax-shells
52 | niter = 20
53 | ; Step size (ps^2) for minimization of flexible constraints
54 | fcstep = 0
55 | ; Frequency of steepest descents steps when doing CG
56 | nstcgsteep = 1000
57 | nbfgscorr = 10
58 |
59 | ; TEST PARTICLE INSERTION OPTIONS
60 | rtpi = 0.05
61 |
62 | ; OUTPUT CONTROL OPTIONS
63 | ; Output frequency for coords (x), velocities (v) and forces (f)
64 | nstxout = 0
65 | nstvout = 0
66 | nstfout = 0
67 | ; Output frequency for energies to log file and energy file
68 | nstlog = 200000
69 | nstcalcenergy = 100
70 | nstenergy = 200000
71 | ; Output frequency and precision for .xtc file
72 | nstxout-compressed = 200000
73 | compressed-x-precision = 1000
74 | ; This selects the subset of atoms for the compressed
75 | ; trajectory file. You can select multiple groups. By
76 | ; default, all atoms will be written.
77 | compressed-x-grps =
78 | ; Selection of energy groups
79 | energygrps =
80 |
81 | ; NEIGHBORSEARCHING PARAMETERS
82 | ; cut-off scheme (Verlet: particle based cut-offs)
83 | cutoff-scheme = Verlet
84 | ; nblist update frequency
85 | nstlist = 10
86 | ; Periodic boundary conditions: xyz, no, xy
87 | pbc = xyz
88 | periodic-molecules = no
89 | ; Allowed energy error due to the Verlet buffer in kJ/mol/ps per atom,
90 | ; a value of -1 means: use rlist
91 | verlet-buffer-tolerance = 0.005
92 | ; nblist cut-off
93 | rlist = 1
94 | ; long-range cut-off for switched potentials
95 |
96 | ; OPTIONS FOR ELECTROSTATICS AND VDW
97 | ; Method for doing electrostatics
98 | coulombtype = pme
99 | coulomb-modifier = Potential-shift-Verlet
100 | rcoulomb-switch = 0
101 | rcoulomb = 1.4
102 | ; Relative dielectric constant for the medium and the reaction field
103 | epsilon-r = 1
104 | epsilon-rf = 0
105 | ; Method for doing Van der Waals
106 | vdw-type = Cut-off
107 | vdw-modifier = Potential-shift-Verlet
108 | ; cut-off lengths
109 | rvdw-switch = 0
110 | rvdw = 1.4
111 | ; Apply long range dispersion corrections for Energy and Pressure
112 | DispCorr = No
113 | ; Extension of the potential lookup tables beyond the cut-off
114 | table-extension = 1
115 | ; Separate tables between energy group pairs
116 | energygrp-table =
117 | ; Spacing for the PME/PPPM FFT grid
118 | fourierspacing = 0.1
119 | ; FFT grid size, when a value is 0 fourierspacing will be used
120 | fourier-nx = 0
121 | fourier-ny = 0
122 | fourier-nz = 0
123 | ; EWALD/PME/PPPM parameters
124 | pme-order = 4
125 | ewald-rtol = 1e-05
126 | ewald-rtol-lj = 0.001
127 | lj-pme-comb-rule = Geometric
128 | ewald-geometry = 3d
129 | epsilon-surface = 0
130 | implicit-solvent = no
131 |
132 | ; OPTIONS FOR WEAK COUPLING ALGORITHMS
133 | ensemble-temperature-setting = auto
134 | ensemble-temperature = -1
135 | ; Temperature coupling
136 | tcoupl = v-rescale
137 | nsttcouple = -1
138 | nhchainlength = 1
139 | print-nose-hoover-chain-variables = no
140 | ; Groups to couple separately
141 | tc-grps = Water non-Water
142 | ; Time constant (ps) and reference temperature (K)
143 | tau-t = 0.5 0.5
144 | ref-t = 293.15 293.15
145 | ; pressure coupling
146 | pcoupl = berendsen
147 | Pcoupltype = anisotropic
148 | nstpcouple = -1
149 | ; Time constant (ps), compressibility (1/bar) and reference P (bar)
150 | tau_p = 1.
151 | compressibility = 4.5e-5 4.5e-5 4.5e-5 0 0 0
152 | ref_p = 1. 1. 1. 0. 0. 0.
153 | ; Scaling of reference coordinates, No, All or COM
154 | refcoord-scaling = No
155 |
156 | ; OPTIONS FOR QMMM calculations
157 | QMMM = no
158 | ; Groups treated with MiMiC
159 | QMMM-grps =
160 |
161 | ; SIMULATED ANNEALING
162 | ; Type of annealing for each temperature group (no/single/periodic)
163 | annealing =
164 | ; Number of time points to use for specifying annealing in each group
165 | annealing-npoints =
166 | ; List of times at the annealing points for each group
167 | annealing-time =
168 | ; Temp. at each annealing point, for each group.
169 | annealing-temp =
170 |
171 | ; GENERATE VELOCITIES FOR STARTUP RUN
172 | gen-vel = no
173 | gen-temp = 293.15
174 | gen-seed = -138412675
175 |
176 | ; OPTIONS FOR BONDS
177 | constraints = hbonds
178 | ; Type of constraint algorithm
179 | constraint-algorithm = lincs
180 | ; Do not constrain the start configuration
181 | continuation = yes
182 | ; Use successive overrelaxation to reduce the number of shake iterations
183 | Shake-SOR = no
184 | ; Relative tolerance of shake
185 | shake-tol = 0.0001
186 | ; Highest order in the expansion of the constraint coupling matrix
187 | lincs-order = 4
188 | ; Number of iterations in the final step of LINCS. 1 is fine for
189 | ; normal simulations, but use 2 to conserve energy in NVE runs.
190 | ; For energy minimization with constraints it should be 4 to 8.
191 | lincs-iter = 1
192 | ; Lincs will write a warning to the stderr if in one step a bond
193 | ; rotates over more degrees than
194 | lincs-warnangle = 30
195 | ; Convert harmonic bonds to morse potentials
196 | morse = no
197 |
198 | ; ENERGY GROUP EXCLUSIONS
199 | ; Pairs of energy groups for which all non-bonded interactions are excluded
200 | energygrp-excl =
201 |
202 | ; WALLS
203 | ; Number of walls, type, atom types, densities and box-z scale factor for Ewald
204 | nwall = 0
205 | wall-type = 9-3
206 | wall-r-linpot = -1
207 | wall-atomtype =
208 | wall-density =
209 | wall-ewald-zfac = 3
210 |
211 | ; COM PULLING
212 | pull = no
213 |
214 | ; AWH biasing
215 | awh = no
216 |
217 | ; ENFORCED ROTATION
218 | ; Enforced rotation: No or Yes
219 | rotation = no
220 |
221 | ; Group to display and/or manipulate in interactive MD session
222 | IMD-group =
223 |
224 | ; NMR refinement stuff
225 | ; Distance restraints type: No, Simple or Ensemble
226 | disre = No
227 | ; Force weighting of pairs in one distance restraint: Conservative or Equal
228 | disre-weighting = Conservative
229 | ; Use sqrt of the time averaged times the instantaneous violation
230 | disre-mixed = no
231 | disre-fc = 1000
232 | disre-tau = 0
233 | ; Output frequency for pair distances to energy file
234 | nstdisreout = 100
235 | ; Orientation restraints: No or Yes
236 | orire = no
237 | ; Orientation restraints force constant and tau for time averaging
238 | orire-fc = 0
239 | orire-tau = 0
240 | orire-fitgrp =
241 | ; Output frequency for trace(SD) and S to energy file
242 | nstorireout = 100
243 |
244 | ; Free energy variables
245 | free-energy = no
246 | couple-moltype =
247 | couple-lambda0 = vdw-q
248 | couple-lambda1 = vdw-q
249 | couple-intramol = no
250 | init-lambda = -1
251 | init-lambda-state = -1
252 | delta-lambda = 0
253 | nstdhdl = 50
254 | fep-lambdas =
255 | mass-lambdas =
256 | coul-lambdas =
257 | vdw-lambdas =
258 | bonded-lambdas =
259 | restraint-lambdas =
260 | temperature-lambdas =
261 | calc-lambda-neighbors = 1
262 | init-lambda-weights =
263 | dhdl-print-energy = no
264 | sc-function = beutler
265 | sc-alpha = 0
266 | sc-power = 1
267 | sc-r-power = 6
268 | sc-sigma = 0.3
269 | sc-coul = no
270 | sc-gapsys-scale-linpoint-lj = 0.85
271 | sc-gapsys-scale-linpoint-q = 0.3
272 | sc-gapsys-sigma-lj = 0.3
273 | separate-dhdl-file = yes
274 | dhdl-derivatives = yes
275 | dh_hist_size = 0
276 | dh_hist_spacing = 0.1
277 |
278 | ; Non-equilibrium MD stuff
279 | acc-grps =
280 | accelerate =
281 | freezegrps =
282 | freezedim =
283 | cos-acceleration = 0
284 | deform =
285 |
286 | ; simulated tempering variables
287 | simulated-tempering = no
288 | simulated-tempering-scaling = geometric
289 | sim-temp-low = 300
290 | sim-temp-high = 300
291 |
292 | ; Ion/water position swapping for computational electrophysiology setups
293 | ; Swap positions along direction: no, X, Y, Z
294 | swapcoords = no
295 | adress = no
296 |
297 | ; User defined thingies
298 | user1-grps =
299 | user2-grps =
300 | userint1 = 0
301 | userint2 = 0
302 | userint3 = 0
303 | userint4 = 0
304 | userreal1 = 0
305 | userreal2 = 0
306 | userreal3 = 0
307 | userreal4 = 0
308 | ; Electric fields
309 | ; Format for electric-field-x, etc. is: four real variables:
310 | ; amplitude (V/nm), frequency omega (1/ps), time for the pulse peak (ps),
311 | ; and sigma (ps) width of the pulse. Omega = 0 means static field,
312 | ; sigma = 0 means no pulse, leaving the field to be a cosine function.
313 | electric-field-x = 0 0 0 0
314 | electric-field-y = 0 0 0 0
315 | electric-field-z = 0 0 0 0
316 |
317 | ; Density guided simulation
318 | density-guided-simulation-active = false
319 |
320 | ; QM/MM with CP2K
321 | qmmm-cp2k-active = false
322 |
--------------------------------------------------------------------------------
/water-in-salt-slit/NaCl_1M/npt.top:
--------------------------------------------------------------------------------
1 | [ defaults ]
2 | ; nbfunc comb-rule gen-pairs fudgeLJ fudgeQQ
3 | 1 2 no 1.0 0.833
4 |
5 | [ atomtypes ]
6 | ; salts parameters
7 | ; name at.num mass charge ptype sigma epsilon
8 | Na 11 22.990 0.0000 A 0.23100 0.45000
9 | Cl 17 35.450 0.0000 A 0.43000 0.42000
10 | O 8 15.9994 0.0000 A 0.386 0.12
11 | S 16 32.0600 0.0000 A 0.355 1.0465
12 |
13 | ; water paramters
14 | ; name at.num mass charge ptype sigma epsilon
15 | HW 1 1.008 0.0000 A 0.00000 0.00000
16 | OW 8 16.000 0.0000 A 0.31650 0.76849
17 |
18 | ; DUMMY atoms
19 | ; name at.num mass charge ptype sigma epsilon
20 | MW 0 0.000 0.0000 D 0.00000 0.00000
21 |
22 |
23 |
24 | [ bondtypes ]
25 | ; i j func b0 kb
26 | S O 1 0.15 3.7656e4
27 |
28 | [ angletypes ]
29 | ; i j func b0 kb
30 | O S O 1 109.5 520
31 | [ moleculetype ]
32 | ; molname nrexcl
33 | SOL 2
34 |
35 | [ atoms ]
36 | ; id at type res nr res name at name cg nr charge mass
37 | 1 OW 1 SOL OW 1 0 15.9994
38 | 2 HW 1 SOL HW1 1 0.527 1.0079
39 | 3 HW 1 SOL HW2 1 0.527 1.0079
40 | 4 MW 1 SOL MW 1 -1.054 0.0000
41 |
42 | [ settles ]
43 | ; i funct doh dhh
44 | 1 1 0.09572 0.15139
45 |
46 | [ virtual_sites3 ]
47 | ; Vsite from funct a b
48 | 4 1 2 3 1 0.089608 0.089608
49 |
50 | [ exclusions ]
51 | 1 2 3 4
52 | 2 1 3 4
53 | 3 1 2 4
54 | 4 1 2 3
55 |
56 | ; The position of the virtual site is computed as follows:
57 | ;
58 | ; O
59 | ;
60 | ; V
61 | ;
62 | ; H H
63 | ;
64 | ; const = distance (OV) / [ cos (angle(VOH)) * distance (OH) ] / 2
65 | ; = 0.0105 nm / [ cos (52.26 deg) * 0.09572 nm ] * 2
66 | ; = 0.17922 / 2
67 | ; = 0.089608
68 | ;
69 | ; Vsite pos x4 = x1 + a*(x2-x1) + b*(x3-x1)
70 | [ moleculetype ]
71 | ; molname nrexcl
72 | Na 1
73 |
74 | [ atoms ]
75 | ; id at type res nr residu name at name cg nr charge
76 | 1 Na 1 Na Na 1 1
77 |
78 |
79 | [ moleculetype ]
80 | ; molname nrexcl
81 | Nafi 1
82 |
83 | [ atoms ]
84 | ; id at type res nr residu name at name cg nr charge
85 | 1 Na 1 Na Na 1 1
86 |
87 |
88 | [ moleculetype ]
89 | ; molname nrexcl
90 | Naf 1
91 |
92 | [ atoms ]
93 | ; id at type res nr residu name at name cg nr charge
94 | 1 Na 1 Na Na 1 1
95 |
96 | [ moleculetype ]
97 | ; molname nrexcl
98 | Cl 1
99 |
100 | [ atoms ]
101 | ; id at type res nr residu name at name cg nr charge
102 | 1 Cl 1 Cl Cl 1 -1
103 |
104 |
105 | [ moleculetype ]
106 | ; molname nrexcl
107 | Clf 1
108 |
109 | [ atoms ]
110 | ; id at type res nr residu name at name cg nr charge
111 | 1 Cl 1 Cl Cl 1 -1
112 |
113 | [ position_restraints ]
114 | ; ai funct fcx fcy fcz
115 | 1 1 20000 20000 20000 ; restrains to a point
116 |
117 | [moleculetype]
118 | ; name nrexcl
119 | SO4 1
120 |
121 | [atoms]
122 | ;nr type resnr residu atom cgnr charge
123 | 1 O 1 SO4 O1 1 -1 15.9994
124 | 2 O 1 SO4 O2 1 -1 15.9994
125 | 3 O 1 SO4 O3 1 -1 15.9994
126 | 4 O 1 SO4 O4 1 -1 15.9994
127 | 5 S 1 SO4 S 1 2 32.0600
128 |
129 | [ bonds ]
130 | ; ai aj funct c0 c1
131 | 1 5 1 0.1520 3.7656e4
132 | 2 5 1 0.1520 3.7656e4
133 | 3 5 1 0.1520 3.7656e4
134 | 4 5 1 0.1520 3.7656e4
135 |
136 | [ angles ]
137 | ; ai aj ak funct angle fc
138 | 1 5 2 1 109.5 520
139 | 1 5 3 1 109.5 520
140 | 1 5 4 1 109.5 520
141 | 2 5 3 1 109.5 520
142 | 2 5 4 1 109.5 520
143 | 3 5 4 1 109.5 520
144 |
145 | [exclusions]
146 | 1 2 3 4 5
147 | 2 1 3 4 5
148 | 3 1 2 4 5
149 | 4 1 2 3 5
150 | 5 1 2 3 4
151 |
152 | [moleculetype]
153 | ; name nrexcl
154 | SO4fp 1
155 |
156 | [atoms]
157 | ;nr type resnr residu atom cgnr charge
158 | 1 O 1 SO4f O1 1 -1 15.9994
159 | 2 O 1 SO4f O2 1 -1 15.9994
160 | 3 O 1 SO4f O3 1 -1 15.9994
161 | 4 O 1 SO4f O4 1 -1 15.9994
162 | 5 S 1 SO4f S 1 2 32.0600
163 |
164 | [ bonds ]
165 | ; ai aj funct c0 c1
166 | 1 5 1 0.1520 3.7656e4
167 | 2 5 1 0.1520 3.7656e4
168 | 3 5 1 0.1520 3.7656e4
169 | 4 5 1 0.1520 3.7656e4
170 |
171 | [ angles ]
172 | ; ai aj ak funct angle fc
173 | 1 5 2 1 109.5 520
174 | 1 5 3 1 109.5 520
175 | 1 5 4 1 109.5 520
176 | 2 5 3 1 109.5 520
177 | 2 5 4 1 109.5 520
178 | 3 5 4 1 109.5 520
179 |
180 | [exclusions]
181 | 1 2 3 4 5
182 | 2 1 3 4 5
183 | 3 1 2 4 5
184 | 4 1 2 3 5
185 | 5 1 2 3 4
186 |
187 | ; Include Position restraint file
188 |
189 |
190 |
191 |
192 |
193 | [moleculetype]
194 | ; name nrexcl
195 | SO4fi 1
196 |
197 | [atoms]
198 | ;nr type resnr residu atom cgnr charge
199 | 1 O 1 SO4f O1 1 -1 15.9994
200 | 2 O 1 SO4f O2 1 -1 15.9994
201 | 3 O 1 SO4f O3 1 -1 15.9994
202 | 4 O 1 SO4f O4 1 -1 15.9994
203 | 5 S 1 SO4f S 1 2 32.0600
204 |
205 | [ bonds ]
206 | ; ai aj funct c0 c1
207 | 1 5 1 0.1520 3.7656e4
208 | 2 5 1 0.1520 3.7656e4
209 | 3 5 1 0.1520 3.7656e4
210 | 4 5 1 0.1520 3.7656e4
211 |
212 | [ angles ]
213 | ; ai aj ak funct angle fc
214 | 1 5 2 1 109.5 520
215 | 1 5 3 1 109.5 520
216 | 1 5 4 1 109.5 520
217 | 2 5 3 1 109.5 520
218 | 2 5 4 1 109.5 520
219 | 3 5 4 1 109.5 520
220 |
221 | [exclusions]
222 | 1 2 3 4 5
223 | 2 1 3 4 5
224 | 3 1 2 4 5
225 | 4 1 2 3 5
226 | 5 1 2 3 4
227 |
228 |
229 |
230 |
231 | [ System ]
232 | SO4Na2 slit
233 |
234 | [ Molecules ]
235 |
236 | Cl 427
237 | Clf 1
238 | Naf 392
239 | Na 36
240 | SOL 3930
241 |
--------------------------------------------------------------------------------
/water-in-salt-slit/NaCl_1M/run_bigfoot_pore.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | #OAR -n mixture-nanopore
3 | #OAR -l /nodes=1/gpu=1/cpu=1/core=8,walltime=48:00:00
4 | #OAR -p gpumodel='A100'
5 | #OAR --stdout log.out
6 | #OAR --stderr log.err
7 | #OAR --project tamtam
8 |
9 | export GMX_MAXBACKUP=-1
10 |
11 | gmx=/home/gravells/softwares/gromacs-2023/build-gpu/bin/gmx
12 |
13 | #${gmx} grompp -f ../input/nvt.mdp -p topol.top -o nvt -pp nvt -po nvt -r conf.gro
14 | #${gmx} mdrun -deffnm nvt -v -rdd 1 -nt 8 -pin on
15 | #cp nvt.gro conf.gro
16 |
17 | ${gmx} grompp -f ../input/npt.mdp -p topol.top -o npt -pp npt -po npt -r conf.gro -maxwarn 2
18 | ${gmx} mdrun -deffnm npt -v -rdd 1 -nt 8 -pin on
19 | cp npt.gro conf.gro
20 |
21 |
--------------------------------------------------------------------------------
/water-in-salt-slit/NaCl_1M/runall.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # path to gromacs
4 | gmx=/work/sgravelle/Softwares/gromacs-install/bin/gmx
5 |
6 | ${gmx} grompp -f ../input/nvt.mdp -o nvt -pp nvt -po nvt -r conf.gro
7 | ${gmx} mdrun -v -deffnm nvt
8 | mv nvt.gro conf.gro
9 |
10 | ${gmx} grompp -f ../input/npt.mdp -o npt -pp npt -po npt -r conf.gro
11 | ${gmx} mdrun -v -deffnm npt
12 | mv npt.gro conf.gro
13 |
14 | ${gmx} grompp -f ../input/prodHR.mdp -o prodHR -pp prodHR -po prodHR -r conf.gro
15 | ${gmx} mdrun -v -deffnm prodHR
16 |
17 | ${gmx} grompp -f ../input/prodLR.mdp -o prodLR -pp prodLR -po prodLR -r conf.gro
18 | ${gmx} mdrun -v -deffnm prodLR
19 |
20 |
--------------------------------------------------------------------------------
/water-in-salt-slit/NaCl_1M/topol.top:
--------------------------------------------------------------------------------
1 | #include "../ff/forcefield.itp"
2 | #include "../ff/tip4peps.itp"
3 | #include "../ff/ions.itp"
4 |
5 | [ System ]
6 | SO4Na2 slit
7 |
8 | [ Molecules ]
9 |
10 | Cl 427
11 | Clf 1
12 | Naf 392
13 | Na 36
14 | SOL 3930
15 |
--------------------------------------------------------------------------------
/water-in-salt-slit/NaCl_4M/ConfigurationGenerator.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | # coding: utf-8
3 |
4 | # In[1]:
5 |
6 |
7 | import numpy as np
8 | import matplotlib.pyplot as plt
9 | import random
10 | import copy
11 | from numpy.linalg import norm
12 |
13 | def neighborsearch(neighbor,molecule,cptatm, x, y, z, Lx, Ly, Lz):
14 | '''Search all neighbor to a molecule in a box and return the closest distance'''
15 | box = np.array([Lx, Ly, Lz])
16 | minr = 10
17 | for m in molecule.T:
18 | x0 = m[0] + x
19 | y0 = m[1] + y
20 | z0 = m[2] + z
21 | dxdydz = np.remainder(neighbor[:cptatm].T - np.array([x0,y0,z0]) + box/2., box) - box/2.
22 | minr = np.min([minr,np.min(norm(dxdydz,axis=1))])
23 | return minr
24 |
25 | Na = 6.022e23 #constants.Avogadro
26 | Mh2o = 0.018053 # kg/mol - water
27 |
28 | N = 4000
29 |
30 | # desired concentration in mol/L
31 | c = 4
32 | nion = c*N*Mh2o/(2*(1+Mh2o*c)) # desired number for each ion
33 | nwater = N - 2*nion
34 |
35 | # choose the initial box dimensions
36 | dnacl = 2.84
37 | nx = 14
38 | ny = 14
39 | nz = 4
40 | dw = 3.1
41 | layer = nz*dnacl
42 | h = 5
43 | Lx = nx*dnacl
44 | Ly = ny*dnacl
45 |
46 | cptH2O = 0
47 | nCl = 0
48 | nNa = 0
49 |
50 | txlo, txhi = 0, Lx
51 | tylo, tyhi = 0, Ly
52 |
53 | attemps = 0
54 |
55 | while cptH2O+nNa+nCl < N:
56 |
57 |
58 | Lz = layer + h + dw*attemps
59 | tzlo, tzhi = 0,Lz
60 |
61 | cptatom = 0
62 | cptbond = 0
63 | cptangle = 0
64 | cptmol = 0
65 | cptNa = 0
66 | cptH2O = 0
67 | cptCl = 0
68 | cptClf = 0
69 | cptNaf = 0
70 | cptres = 1
71 | nCl = 0
72 | nNa = 0
73 |
74 | box = np.array([Lx, Ly, Lz])
75 |
76 | # allocate memory
77 | XYZ = np.zeros((1000000,3))
78 | Typ = ["" for x in range(1000000)]
79 | ResName = ["" for x in range(1000000)]
80 | ResNum = np.zeros((1000000,1))
81 |
82 | # Load NaCl positions for the wall crystal structure
83 | wallNaCl = np.zeros((10000,7))
84 | file1 = open('NaCl/Position.dat', 'r')
85 | Lines = file1.readlines()
86 | count = 0
87 | for line in Lines:
88 | wallNaCl[count]=line.strip().split(' ')
89 | count += 1
90 | wallNaCl = wallNaCl[0:count]
91 |
92 | # replicate the initial structure
93 | wallNaClrep = copy.deepcopy(wallNaCl)
94 | for xx in np.arange(txlo+dnacl/2,txhi,2*dnacl):
95 | for yy in np.arange(tylo+dnacl/2,tyhi,2*dnacl):
96 | for zz in np.arange(tzlo+dnacl/2,tzlo+layer,2*dnacl):
97 | wallNaClrep = np.append(wallNaClrep,wallNaCl+[0,0,0,0,xx,yy,zz], axis=0)
98 | wallNaClrep = wallNaClrep[8:]
99 | assert len(wallNaClrep[wallNaClrep.T[2]==1]) == len(wallNaClrep[wallNaClrep.T[2]==2])
100 |
101 | for n in range(len(wallNaClrep)):
102 | wallNaClrep[n,0] = np.int64(n+1)
103 |
104 | shift = np.min(wallNaClrep.T[6])
105 | wallNaClrep.T[6] -= shift
106 | layer = np.max(wallNaClrep.T[6]) - np.min(wallNaClrep.T[6])
107 |
108 | wallCl = wallNaClrep[wallNaClrep.T[2] == 2]
109 |
110 | # choose the Cl to maintain fix all over the production run (just one atom)
111 | selection = wallCl[(wallCl.T[6]>layer*0.3) & (wallCl.T[6]0
113 |
114 | for n in np.arange(selection[0], selection[0]+1,1):
115 | id0 = np.where(wallNaClrep.T[0] == n)
116 | wallNaClrep[id0,2] += 1
117 |
118 | wallCl = []
119 | wallCl = wallNaClrep[wallNaClrep.T[2] > 1]
120 | wallNa = wallNaClrep[wallNaClrep.T[2] == 1]
121 |
122 | # place the Cl of the wall
123 | for m in wallCl:
124 | if m[2] == 2:
125 | x0 = m[4]
126 | y0 = m[5]
127 | z0 = m[6]
128 | XYZ[cptatom] = [x0,y0,z0]
129 | Typ[cptatom] = 'Cl'
130 | ResNum[cptatom] = cptres
131 | ResName[cptatom] = 'Cl'
132 | cptCl += 1
133 | cptres += 1
134 | cptatom += 1
135 |
136 | # add Cl randomly
137 | fail = 0
138 | while (nCl < nion) & (fail < 1e4):
139 | x = random.randint(1,1000)/1000*(txhi-txlo)+txlo
140 | y = random.randint(1,1000)/1000*(tyhi-tylo)+tylo
141 | z = random.randint(1,1000)/1000*(tzhi-tzlo)+tzlo
142 | pos = np.array([x,y,z])
143 |
144 | dxdydz = np.remainder((pos - XYZ[0:cptatom]) + box/2., box) - box/2.
145 | d = np.min(norm(dxdydz,axis=1))
146 |
147 | if d > 3 and z>tzlo+layer+3 and z 3 and z>tzlo+layer+1.5 and z dw and z>tzlo+layer+3 and z5}".format(str(np.int32(ResNum[n][0])))) # residue number (5 positions, integer)
259 | f.write("{: >5}".format(str(ResName[n]))) # residue name (5 characters)
260 | f.write("{: >5}".format(str(Typ[n]))) # atom name (5 characters)
261 | f.write("{: >5}".format(str(np.int32(n+1)))) # atom number (5 positions, integer)
262 | f.write("{: >8}".format(str("{:.3f}".format(XYZ[n][0]/10)))) # position (in nm, x y z in 3 columns, each 8 positions with 3 decimal places)
263 | f.write("{: >8}".format(str("{:.3f}".format(XYZ[n][1]/10)))) # position (in nm, x y z in 3 columns, each 8 positions with 3 decimal places)
264 | f.write("{: >8}".format(str("{:.3f}".format(XYZ[n][2]/10)))) # position (in nm, x y z in 3 columns, each 8 positions with 3 decimal places)
265 | f.write("\n")
266 | f.write("{: >10}".format(str("{:.5f}".format(Lx/10))))
267 | f.write("{: >10}".format(str("{:.5f}".format(Ly/10))))
268 | f.write("{: >10}".format(str("{:.5f}".format(Lz/10))))
269 | f.close()
270 | # write topol.top
271 | f = open('topol.top', 'w')
272 | f.write('#include "../ff/forcefield.itp"\n')
273 | f.write('#include "../ff/tip4peps.itp"\n')
274 | f.write('#include "../ff/ions.itp"\n\n')
275 | f.write('[ System ]\n')
276 | f.write('SO4Na2 slit\n\n')
277 | f.write('[ Molecules ]\n\n')
278 | f.write('Cl '+ str(cptCl)+'\n')
279 | f.write('Clf '+ str(cptClf)+'\n')
280 | f.write('Naf '+ str(cptNaf)+'\n')
281 | f.write('Na '+ str(cptNa)+'\n')
282 | f.write('SOL '+ str(cptH2O)+'\n')
283 | f.close()
284 |
285 |
286 | # In[ ]:
287 |
288 |
289 |
290 |
291 |
--------------------------------------------------------------------------------
/water-in-salt-slit/NaCl_4M/NaCl/Position.dat:
--------------------------------------------------------------------------------
1 | 1 1 1 1 0. 0. 0.
2 | 2 2 2 -1 0. 2.84 0.
3 | 3 3 2 -1 2.84 0. 0.
4 | 4 4 1 1 2.84 2.84 0.
5 | 5 5 2 -1 0. 0. 2.84
6 | 6 6 1 1 0. 2.84 2.84
7 | 7 7 1 1 2.84 0. 2.84
8 | 8 8 2 -1 2.84 2.84 2.84
9 |
--------------------------------------------------------------------------------
/water-in-salt-slit/NaCl_4M/energy.xvg:
--------------------------------------------------------------------------------
1 | # This file was created Tue May 16 12:01:00 2023
2 | # Created by:
3 | # :-) GROMACS - gmx energy, 2023 (-:
4 | #
5 | # Executable: /home/gravells/softwares/gromacs-2023/build-gpu/bin/gmx
6 | # Data prefix: /home/gravells/softwares/gromacs-2023 (source tree)
7 | # Working dir: /bettik/gravells/water-in-salt-slit/NaCl_4M
8 | # Command line:
9 | # gmx energy -f npt.edr
10 | # gmx energy is part of G R O M A C S:
11 | #
12 | # Gyas ROwers Mature At Cryogenic Speed
13 | #
14 | @ title "GROMACS Energies"
15 | @ xaxis label "Time (ps)"
16 | @ yaxis label "(kg/m^3)"
17 | @TYPE xy
18 | @ view 0.15, 0.15, 0.75, 0.85
19 | @ legend on
20 | @ legend box on
21 | @ legend loctype view
22 | @ legend 0.78, 0.8
23 | @ legend length 2
24 | @ s0 legend "Density"
25 | 0.000000 966.511536
26 | 200.000000 1222.212769
27 | 400.000000 1225.539062
28 |
--------------------------------------------------------------------------------
/water-in-salt-slit/NaCl_4M/log.out:
--------------------------------------------------------------------------------
1 | Generated 28 of the 28 non-bonded parameter combinations
2 |
3 | Excluding 1 bonded neighbours molecule type 'Cl'
4 |
5 | turning H bonds into constraints...
6 |
7 | Excluding 1 bonded neighbours molecule type 'Clf'
8 |
9 | turning H bonds into constraints...
10 |
11 | Excluding 1 bonded neighbours molecule type 'Naf'
12 |
13 | turning H bonds into constraints...
14 |
15 | Excluding 1 bonded neighbours molecule type 'Na'
16 |
17 | turning H bonds into constraints...
18 |
19 | Excluding 2 bonded neighbours molecule type 'SOL'
20 |
21 | turning H bonds into constraints...
22 |
23 | Setting gen_seed to -588259333
24 |
25 | Velocities were taken from a Maxwell distribution at 293.15 K
26 |
27 | Cleaning up constraints and constant bonded interactions with virtual sites
28 | Analysing residue names:
29 | There are: 1054 Other residues
30 | There are: 3731 Water residues
31 | Analysing residues not classified as Protein/DNA/RNA/Water and splitting into groups...
32 |
33 | The largest distance between excluded atoms is 0.152 nm between atom 1928 and 1929
34 |
35 | Determining Verlet buffer for a tolerance of 0.005 kJ/mol/ps at 293.15 K
36 |
37 | Calculated rlist for 1x1 atom pair-list as 1.411 nm, buffer size 0.011 nm
38 |
39 | Set rlist, assuming 4x4 atom pair-list, to 1.400 nm, buffer size 0.000 nm
40 |
41 | Note that mdrun will redetermine rlist based on the actual pair-list setup
42 | Calculating fourier grid dimensions for X Y Z
43 | Using a fourier grid of 40x40x108, spacing 0.099 0.099 0.099
44 |
45 | Estimate for the relative computational load of the PME mesh part: 0.16
46 |
47 | This run will generate roughly 2 Mb of data
48 | Generated 28 of the 28 non-bonded parameter combinations
49 |
50 | Excluding 1 bonded neighbours molecule type 'Cl'
51 |
52 | turning H bonds into constraints...
53 |
54 | Excluding 1 bonded neighbours molecule type 'Clf'
55 |
56 | turning H bonds into constraints...
57 |
58 | Excluding 1 bonded neighbours molecule type 'Naf'
59 |
60 | turning H bonds into constraints...
61 |
62 | Excluding 1 bonded neighbours molecule type 'Na'
63 |
64 | turning H bonds into constraints...
65 |
66 | Excluding 2 bonded neighbours molecule type 'SOL'
67 |
68 | turning H bonds into constraints...
69 |
70 | Cleaning up constraints and constant bonded interactions with virtual sites
71 | Analysing residue names:
72 | There are: 1054 Other residues
73 | There are: 3731 Water residues
74 | Analysing residues not classified as Protein/DNA/RNA/Water and splitting into groups...
75 |
76 | The largest distance between excluded atoms is 0.153 nm between atom 12976 and 12977
77 |
78 | Determining Verlet buffer for a tolerance of 0.005 kJ/mol/ps at 293.15 K
79 |
80 | Calculated rlist for 1x1 atom pair-list as 1.411 nm, buffer size 0.011 nm
81 |
82 | Set rlist, assuming 4x4 atom pair-list, to 1.400 nm, buffer size 0.000 nm
83 |
84 | Note that mdrun will redetermine rlist based on the actual pair-list setup
85 | Calculating fourier grid dimensions for X Y Z
86 | Using a fourier grid of 40x40x108, spacing 0.099 0.099 0.099
87 |
88 | Estimate for the relative computational load of the PME mesh part: 0.16
89 |
90 | This run will generate roughly 21 Mb of data
91 | Generated 28 of the 28 non-bonded parameter combinations
92 |
93 | Excluding 1 bonded neighbours molecule type 'Cl'
94 |
95 | turning H bonds into constraints...
96 |
97 | Excluding 1 bonded neighbours molecule type 'Clf'
98 |
99 | turning H bonds into constraints...
100 |
101 | Excluding 1 bonded neighbours molecule type 'Naf'
102 |
103 | turning H bonds into constraints...
104 |
105 | Excluding 1 bonded neighbours molecule type 'Na'
106 |
107 | turning H bonds into constraints...
108 |
109 | Excluding 2 bonded neighbours molecule type 'SOL'
110 |
111 | turning H bonds into constraints...
112 |
113 | Cleaning up constraints and constant bonded interactions with virtual sites
114 | Analysing residue names:
115 | There are: 1054 Other residues
116 | There are: 3731 Water residues
117 | Analysing residues not classified as Protein/DNA/RNA/Water and splitting into groups...
118 |
119 | The largest distance between excluded atoms is 0.153 nm between atom 12976 and 12977
120 |
121 | Determining Verlet buffer for a tolerance of 0.005 kJ/mol/ps at 293.15 K
122 |
123 | Calculated rlist for 1x1 atom pair-list as 1.411 nm, buffer size 0.011 nm
124 |
125 | Set rlist, assuming 4x4 atom pair-list, to 1.400 nm, buffer size 0.000 nm
126 |
127 | Note that mdrun will redetermine rlist based on the actual pair-list setup
128 | Calculating fourier grid dimensions for X Y Z
129 | Using a fourier grid of 40x40x108, spacing 0.099 0.099 0.099
130 |
131 | Estimate for the relative computational load of the PME mesh part: 0.16
132 |
133 | This run will generate roughly 21 Mb of data
134 | Generated 28 of the 28 non-bonded parameter combinations
135 |
136 | Excluding 1 bonded neighbours molecule type 'Cl'
137 |
138 | turning H bonds into constraints...
139 |
140 | Excluding 1 bonded neighbours molecule type 'Clf'
141 |
142 | turning H bonds into constraints...
143 |
144 | Excluding 1 bonded neighbours molecule type 'Naf'
145 |
146 | turning H bonds into constraints...
147 |
148 | Excluding 1 bonded neighbours molecule type 'Na'
149 |
150 | turning H bonds into constraints...
151 |
152 | Excluding 2 bonded neighbours molecule type 'SOL'
153 |
154 | turning H bonds into constraints...
155 |
156 | Cleaning up constraints and constant bonded interactions with virtual sites
157 | Analysing residue names:
158 | There are: 1054 Other residues
159 | There are: 3731 Water residues
160 | Analysing residues not classified as Protein/DNA/RNA/Water and splitting into groups...
161 |
162 | The largest distance between excluded atoms is 0.153 nm between atom 12976 and 12977
163 |
164 | Determining Verlet buffer for a tolerance of 0.005 kJ/mol/ps at 293.15 K
165 |
166 | Calculated rlist for 1x1 atom pair-list as 1.411 nm, buffer size 0.011 nm
167 |
168 | Set rlist, assuming 4x4 atom pair-list, to 1.400 nm, buffer size 0.000 nm
169 |
170 | Note that mdrun will redetermine rlist based on the actual pair-list setup
171 | Calculating fourier grid dimensions for X Y Z
172 | Using a fourier grid of 40x40x108, spacing 0.099 0.099 0.099
173 |
174 | Estimate for the relative computational load of the PME mesh part: 0.16
175 |
176 | This run will generate roughly 21 Mb of data
177 | Generated 28 of the 28 non-bonded parameter combinations
178 |
179 | Excluding 1 bonded neighbours molecule type 'Cl'
180 |
181 | turning H bonds into constraints...
182 |
183 | Excluding 1 bonded neighbours molecule type 'Clf'
184 |
185 | turning H bonds into constraints...
186 |
187 | Excluding 1 bonded neighbours molecule type 'Naf'
188 |
189 | turning H bonds into constraints...
190 |
191 | Excluding 1 bonded neighbours molecule type 'Na'
192 |
193 | turning H bonds into constraints...
194 |
195 | Excluding 2 bonded neighbours molecule type 'SOL'
196 |
197 | turning H bonds into constraints...
198 |
199 | Cleaning up constraints and constant bonded interactions with virtual sites
200 | Analysing residue names:
201 | There are: 1054 Other residues
202 | There are: 3731 Water residues
203 | Analysing residues not classified as Protein/DNA/RNA/Water and splitting into groups...
204 |
205 | The largest distance between excluded atoms is 0.153 nm between atom 12976 and 12977
206 |
207 | Determining Verlet buffer for a tolerance of 0.005 kJ/mol/ps at 293.15 K
208 |
209 | Calculated rlist for 1x1 atom pair-list as 1.411 nm, buffer size 0.011 nm
210 |
211 | Set rlist, assuming 4x4 atom pair-list, to 1.400 nm, buffer size 0.000 nm
212 |
213 | Note that mdrun will redetermine rlist based on the actual pair-list setup
214 | Calculating fourier grid dimensions for X Y Z
215 | Using a fourier grid of 40x40x108, spacing 0.099 0.099 0.099
216 |
217 | Estimate for the relative computational load of the PME mesh part: 0.16
218 |
219 | This run will generate roughly 21 Mb of data
220 |
--------------------------------------------------------------------------------
/water-in-salt-slit/NaCl_4M/npt.mdp:
--------------------------------------------------------------------------------
1 | ;
2 | ; File 'npt.mdp' was generated
3 | ; By user: unknown (1862325)
4 | ; On host: bigfoot9
5 | ; At date: Tue May 16 11:46:39 2023
6 | ;
7 | ; Created by:
8 | ; :-) GROMACS - gmx grompp, 2023 (-:
9 | ;
10 | ; Executable: /home/gravells/softwares/gromacs-2023/build-gpu/bin/gmx
11 | ; Data prefix: /home/gravells/softwares/gromacs-2023 (source tree)
12 | ; Working dir: /bettik/gravells/water-in-salt-slit/NaCl_4M
13 | ; Command line:
14 | ; gmx grompp -f ../input/npt.mdp -p topol.top -o npt -pp npt -po npt -r conf.gro -maxwarn 2
15 |
16 | ; VARIOUS PREPROCESSING OPTIONS
17 | ; Preprocessor information: use cpp syntax.
18 | ; e.g.: -I/home/joe/doe -I/home/mary/roe
19 | include =
20 | ; e.g.: -DPOSRES -DFLEXIBLE (note these variable names are case sensitive)
21 | define =
22 |
23 | ; RUN CONTROL PARAMETERS
24 | integrator = md
25 | ; Start time and timestep in ps
26 | tinit = 0
27 | dt = 0.001
28 | nsteps = 50000000
29 | ; For exact run continuation or redoing part of a run
30 | init-step = 0
31 | ; Part index is updated automatically on checkpointing (keeps files separate)
32 | simulation-part = 1
33 | ; Multiple time-stepping
34 | mts = no
35 | ; mode for center of mass motion removal
36 | comm_mode = linear
37 | ; number of steps for center of mass motion removal
38 | nstcomm = 100
39 | ; group(s) for center of mass motion removal
40 | comm_grps = system
41 |
42 | ; LANGEVIN DYNAMICS OPTIONS
43 | ; Friction coefficient (amu/ps) and random seed
44 | bd-fric = 0
45 | ld-seed = 48456
46 |
47 | ; ENERGY MINIMIZATION OPTIONS
48 | ; Force tolerance and initial step-size
49 | emtol = 10
50 | emstep = 0.01
51 | ; Max number of iterations in relax-shells
52 | niter = 20
53 | ; Step size (ps^2) for minimization of flexible constraints
54 | fcstep = 0
55 | ; Frequency of steepest descents steps when doing CG
56 | nstcgsteep = 1000
57 | nbfgscorr = 10
58 |
59 | ; TEST PARTICLE INSERTION OPTIONS
60 | rtpi = 0.05
61 |
62 | ; OUTPUT CONTROL OPTIONS
63 | ; Output frequency for coords (x), velocities (v) and forces (f)
64 | nstxout = 0
65 | nstvout = 0
66 | nstfout = 0
67 | ; Output frequency for energies to log file and energy file
68 | nstlog = 200000
69 | nstcalcenergy = 100
70 | nstenergy = 200000
71 | ; Output frequency and precision for .xtc file
72 | nstxout-compressed = 200000
73 | compressed-x-precision = 1000
74 | ; This selects the subset of atoms for the compressed
75 | ; trajectory file. You can select multiple groups. By
76 | ; default, all atoms will be written.
77 | compressed-x-grps =
78 | ; Selection of energy groups
79 | energygrps =
80 |
81 | ; NEIGHBORSEARCHING PARAMETERS
82 | ; cut-off scheme (Verlet: particle based cut-offs)
83 | cutoff-scheme = Verlet
84 | ; nblist update frequency
85 | nstlist = 10
86 | ; Periodic boundary conditions: xyz, no, xy
87 | pbc = xyz
88 | periodic-molecules = no
89 | ; Allowed energy error due to the Verlet buffer in kJ/mol/ps per atom,
90 | ; a value of -1 means: use rlist
91 | verlet-buffer-tolerance = 0.005
92 | ; nblist cut-off
93 | rlist = 1
94 | ; long-range cut-off for switched potentials
95 |
96 | ; OPTIONS FOR ELECTROSTATICS AND VDW
97 | ; Method for doing electrostatics
98 | coulombtype = pme
99 | coulomb-modifier = Potential-shift-Verlet
100 | rcoulomb-switch = 0
101 | rcoulomb = 1.4
102 | ; Relative dielectric constant for the medium and the reaction field
103 | epsilon-r = 1
104 | epsilon-rf = 0
105 | ; Method for doing Van der Waals
106 | vdw-type = Cut-off
107 | vdw-modifier = Potential-shift-Verlet
108 | ; cut-off lengths
109 | rvdw-switch = 0
110 | rvdw = 1.4
111 | ; Apply long range dispersion corrections for Energy and Pressure
112 | DispCorr = No
113 | ; Extension of the potential lookup tables beyond the cut-off
114 | table-extension = 1
115 | ; Separate tables between energy group pairs
116 | energygrp-table =
117 | ; Spacing for the PME/PPPM FFT grid
118 | fourierspacing = 0.1
119 | ; FFT grid size, when a value is 0 fourierspacing will be used
120 | fourier-nx = 0
121 | fourier-ny = 0
122 | fourier-nz = 0
123 | ; EWALD/PME/PPPM parameters
124 | pme-order = 4
125 | ewald-rtol = 1e-05
126 | ewald-rtol-lj = 0.001
127 | lj-pme-comb-rule = Geometric
128 | ewald-geometry = 3d
129 | epsilon-surface = 0
130 | implicit-solvent = no
131 |
132 | ; OPTIONS FOR WEAK COUPLING ALGORITHMS
133 | ensemble-temperature-setting = auto
134 | ensemble-temperature = -1
135 | ; Temperature coupling
136 | tcoupl = v-rescale
137 | nsttcouple = -1
138 | nhchainlength = 1
139 | print-nose-hoover-chain-variables = no
140 | ; Groups to couple separately
141 | tc-grps = Water non-Water
142 | ; Time constant (ps) and reference temperature (K)
143 | tau-t = 0.5 0.5
144 | ref-t = 293.15 293.15
145 | ; pressure coupling
146 | pcoupl = berendsen
147 | Pcoupltype = anisotropic
148 | nstpcouple = -1
149 | ; Time constant (ps), compressibility (1/bar) and reference P (bar)
150 | tau_p = 1.
151 | compressibility = 4.5e-5 4.5e-5 4.5e-5 0 0 0
152 | ref_p = 1. 1. 1. 0. 0. 0.
153 | ; Scaling of reference coordinates, No, All or COM
154 | refcoord-scaling = No
155 |
156 | ; OPTIONS FOR QMMM calculations
157 | QMMM = no
158 | ; Groups treated with MiMiC
159 | QMMM-grps =
160 |
161 | ; SIMULATED ANNEALING
162 | ; Type of annealing for each temperature group (no/single/periodic)
163 | annealing =
164 | ; Number of time points to use for specifying annealing in each group
165 | annealing-npoints =
166 | ; List of times at the annealing points for each group
167 | annealing-time =
168 | ; Temp. at each annealing point, for each group.
169 | annealing-temp =
170 |
171 | ; GENERATE VELOCITIES FOR STARTUP RUN
172 | gen-vel = no
173 | gen-temp = 293.15
174 | gen-seed = 939478271
175 |
176 | ; OPTIONS FOR BONDS
177 | constraints = hbonds
178 | ; Type of constraint algorithm
179 | constraint-algorithm = lincs
180 | ; Do not constrain the start configuration
181 | continuation = yes
182 | ; Use successive overrelaxation to reduce the number of shake iterations
183 | Shake-SOR = no
184 | ; Relative tolerance of shake
185 | shake-tol = 0.0001
186 | ; Highest order in the expansion of the constraint coupling matrix
187 | lincs-order = 4
188 | ; Number of iterations in the final step of LINCS. 1 is fine for
189 | ; normal simulations, but use 2 to conserve energy in NVE runs.
190 | ; For energy minimization with constraints it should be 4 to 8.
191 | lincs-iter = 1
192 | ; Lincs will write a warning to the stderr if in one step a bond
193 | ; rotates over more degrees than
194 | lincs-warnangle = 30
195 | ; Convert harmonic bonds to morse potentials
196 | morse = no
197 |
198 | ; ENERGY GROUP EXCLUSIONS
199 | ; Pairs of energy groups for which all non-bonded interactions are excluded
200 | energygrp-excl =
201 |
202 | ; WALLS
203 | ; Number of walls, type, atom types, densities and box-z scale factor for Ewald
204 | nwall = 0
205 | wall-type = 9-3
206 | wall-r-linpot = -1
207 | wall-atomtype =
208 | wall-density =
209 | wall-ewald-zfac = 3
210 |
211 | ; COM PULLING
212 | pull = no
213 |
214 | ; AWH biasing
215 | awh = no
216 |
217 | ; ENFORCED ROTATION
218 | ; Enforced rotation: No or Yes
219 | rotation = no
220 |
221 | ; Group to display and/or manipulate in interactive MD session
222 | IMD-group =
223 |
224 | ; NMR refinement stuff
225 | ; Distance restraints type: No, Simple or Ensemble
226 | disre = No
227 | ; Force weighting of pairs in one distance restraint: Conservative or Equal
228 | disre-weighting = Conservative
229 | ; Use sqrt of the time averaged times the instantaneous violation
230 | disre-mixed = no
231 | disre-fc = 1000
232 | disre-tau = 0
233 | ; Output frequency for pair distances to energy file
234 | nstdisreout = 100
235 | ; Orientation restraints: No or Yes
236 | orire = no
237 | ; Orientation restraints force constant and tau for time averaging
238 | orire-fc = 0
239 | orire-tau = 0
240 | orire-fitgrp =
241 | ; Output frequency for trace(SD) and S to energy file
242 | nstorireout = 100
243 |
244 | ; Free energy variables
245 | free-energy = no
246 | couple-moltype =
247 | couple-lambda0 = vdw-q
248 | couple-lambda1 = vdw-q
249 | couple-intramol = no
250 | init-lambda = -1
251 | init-lambda-state = -1
252 | delta-lambda = 0
253 | nstdhdl = 50
254 | fep-lambdas =
255 | mass-lambdas =
256 | coul-lambdas =
257 | vdw-lambdas =
258 | bonded-lambdas =
259 | restraint-lambdas =
260 | temperature-lambdas =
261 | calc-lambda-neighbors = 1
262 | init-lambda-weights =
263 | dhdl-print-energy = no
264 | sc-function = beutler
265 | sc-alpha = 0
266 | sc-power = 1
267 | sc-r-power = 6
268 | sc-sigma = 0.3
269 | sc-coul = no
270 | sc-gapsys-scale-linpoint-lj = 0.85
271 | sc-gapsys-scale-linpoint-q = 0.3
272 | sc-gapsys-sigma-lj = 0.3
273 | separate-dhdl-file = yes
274 | dhdl-derivatives = yes
275 | dh_hist_size = 0
276 | dh_hist_spacing = 0.1
277 |
278 | ; Non-equilibrium MD stuff
279 | acc-grps =
280 | accelerate =
281 | freezegrps =
282 | freezedim =
283 | cos-acceleration = 0
284 | deform =
285 |
286 | ; simulated tempering variables
287 | simulated-tempering = no
288 | simulated-tempering-scaling = geometric
289 | sim-temp-low = 300
290 | sim-temp-high = 300
291 |
292 | ; Ion/water position swapping for computational electrophysiology setups
293 | ; Swap positions along direction: no, X, Y, Z
294 | swapcoords = no
295 | adress = no
296 |
297 | ; User defined thingies
298 | user1-grps =
299 | user2-grps =
300 | userint1 = 0
301 | userint2 = 0
302 | userint3 = 0
303 | userint4 = 0
304 | userreal1 = 0
305 | userreal2 = 0
306 | userreal3 = 0
307 | userreal4 = 0
308 | ; Electric fields
309 | ; Format for electric-field-x, etc. is: four real variables:
310 | ; amplitude (V/nm), frequency omega (1/ps), time for the pulse peak (ps),
311 | ; and sigma (ps) width of the pulse. Omega = 0 means static field,
312 | ; sigma = 0 means no pulse, leaving the field to be a cosine function.
313 | electric-field-x = 0 0 0 0
314 | electric-field-y = 0 0 0 0
315 | electric-field-z = 0 0 0 0
316 |
317 | ; Density guided simulation
318 | density-guided-simulation-active = false
319 |
320 | ; QM/MM with CP2K
321 | qmmm-cp2k-active = false
322 |
--------------------------------------------------------------------------------
/water-in-salt-slit/NaCl_4M/npt.top:
--------------------------------------------------------------------------------
1 | [ defaults ]
2 | ; nbfunc comb-rule gen-pairs fudgeLJ fudgeQQ
3 | 1 2 no 1.0 0.833
4 |
5 | [ atomtypes ]
6 | ; salts parameters
7 | ; name at.num mass charge ptype sigma epsilon
8 | Na 11 22.990 0.0000 A 0.23100 0.45000
9 | Cl 17 35.450 0.0000 A 0.43000 0.42000
10 | O 8 15.9994 0.0000 A 0.386 0.12
11 | S 16 32.0600 0.0000 A 0.355 1.0465
12 |
13 | ; water paramters
14 | ; name at.num mass charge ptype sigma epsilon
15 | HW 1 1.008 0.0000 A 0.00000 0.00000
16 | OW 8 16.000 0.0000 A 0.31650 0.76849
17 |
18 | ; DUMMY atoms
19 | ; name at.num mass charge ptype sigma epsilon
20 | MW 0 0.000 0.0000 D 0.00000 0.00000
21 |
22 |
23 |
24 | [ bondtypes ]
25 | ; i j func b0 kb
26 | S O 1 0.15 3.7656e4
27 |
28 | [ angletypes ]
29 | ; i j func b0 kb
30 | O S O 1 109.5 520
31 | [ moleculetype ]
32 | ; molname nrexcl
33 | SOL 2
34 |
35 | [ atoms ]
36 | ; id at type res nr res name at name cg nr charge mass
37 | 1 OW 1 SOL OW 1 0 15.9994
38 | 2 HW 1 SOL HW1 1 0.527 1.0079
39 | 3 HW 1 SOL HW2 1 0.527 1.0079
40 | 4 MW 1 SOL MW 1 -1.054 0.0000
41 |
42 | [ settles ]
43 | ; i funct doh dhh
44 | 1 1 0.09572 0.15139
45 |
46 | [ virtual_sites3 ]
47 | ; Vsite from funct a b
48 | 4 1 2 3 1 0.089608 0.089608
49 |
50 | [ exclusions ]
51 | 1 2 3 4
52 | 2 1 3 4
53 | 3 1 2 4
54 | 4 1 2 3
55 |
56 | ; The position of the virtual site is computed as follows:
57 | ;
58 | ; O
59 | ;
60 | ; V
61 | ;
62 | ; H H
63 | ;
64 | ; const = distance (OV) / [ cos (angle(VOH)) * distance (OH) ] / 2
65 | ; = 0.0105 nm / [ cos (52.26 deg) * 0.09572 nm ] * 2
66 | ; = 0.17922 / 2
67 | ; = 0.089608
68 | ;
69 | ; Vsite pos x4 = x1 + a*(x2-x1) + b*(x3-x1)
70 | [ moleculetype ]
71 | ; molname nrexcl
72 | Na 1
73 |
74 | [ atoms ]
75 | ; id at type res nr residu name at name cg nr charge
76 | 1 Na 1 Na Na 1 1
77 |
78 |
79 | [ moleculetype ]
80 | ; molname nrexcl
81 | Nafi 1
82 |
83 | [ atoms ]
84 | ; id at type res nr residu name at name cg nr charge
85 | 1 Na 1 Na Na 1 1
86 |
87 |
88 | [ moleculetype ]
89 | ; molname nrexcl
90 | Naf 1
91 |
92 | [ atoms ]
93 | ; id at type res nr residu name at name cg nr charge
94 | 1 Na 1 Na Na 1 1
95 |
96 | [ moleculetype ]
97 | ; molname nrexcl
98 | Cl 1
99 |
100 | [ atoms ]
101 | ; id at type res nr residu name at name cg nr charge
102 | 1 Cl 1 Cl Cl 1 -1
103 |
104 |
105 | [ moleculetype ]
106 | ; molname nrexcl
107 | Clf 1
108 |
109 | [ atoms ]
110 | ; id at type res nr residu name at name cg nr charge
111 | 1 Cl 1 Cl Cl 1 -1
112 |
113 | [ position_restraints ]
114 | ; ai funct fcx fcy fcz
115 | 1 1 20000 20000 20000 ; restrains to a point
116 |
117 | [moleculetype]
118 | ; name nrexcl
119 | SO4 1
120 |
121 | [atoms]
122 | ;nr type resnr residu atom cgnr charge
123 | 1 O 1 SO4 O1 1 -1 15.9994
124 | 2 O 1 SO4 O2 1 -1 15.9994
125 | 3 O 1 SO4 O3 1 -1 15.9994
126 | 4 O 1 SO4 O4 1 -1 15.9994
127 | 5 S 1 SO4 S 1 2 32.0600
128 |
129 | [ bonds ]
130 | ; ai aj funct c0 c1
131 | 1 5 1 0.1520 3.7656e4
132 | 2 5 1 0.1520 3.7656e4
133 | 3 5 1 0.1520 3.7656e4
134 | 4 5 1 0.1520 3.7656e4
135 |
136 | [ angles ]
137 | ; ai aj ak funct angle fc
138 | 1 5 2 1 109.5 520
139 | 1 5 3 1 109.5 520
140 | 1 5 4 1 109.5 520
141 | 2 5 3 1 109.5 520
142 | 2 5 4 1 109.5 520
143 | 3 5 4 1 109.5 520
144 |
145 | [exclusions]
146 | 1 2 3 4 5
147 | 2 1 3 4 5
148 | 3 1 2 4 5
149 | 4 1 2 3 5
150 | 5 1 2 3 4
151 |
152 | [moleculetype]
153 | ; name nrexcl
154 | SO4fp 1
155 |
156 | [atoms]
157 | ;nr type resnr residu atom cgnr charge
158 | 1 O 1 SO4f O1 1 -1 15.9994
159 | 2 O 1 SO4f O2 1 -1 15.9994
160 | 3 O 1 SO4f O3 1 -1 15.9994
161 | 4 O 1 SO4f O4 1 -1 15.9994
162 | 5 S 1 SO4f S 1 2 32.0600
163 |
164 | [ bonds ]
165 | ; ai aj funct c0 c1
166 | 1 5 1 0.1520 3.7656e4
167 | 2 5 1 0.1520 3.7656e4
168 | 3 5 1 0.1520 3.7656e4
169 | 4 5 1 0.1520 3.7656e4
170 |
171 | [ angles ]
172 | ; ai aj ak funct angle fc
173 | 1 5 2 1 109.5 520
174 | 1 5 3 1 109.5 520
175 | 1 5 4 1 109.5 520
176 | 2 5 3 1 109.5 520
177 | 2 5 4 1 109.5 520
178 | 3 5 4 1 109.5 520
179 |
180 | [exclusions]
181 | 1 2 3 4 5
182 | 2 1 3 4 5
183 | 3 1 2 4 5
184 | 4 1 2 3 5
185 | 5 1 2 3 4
186 |
187 | ; Include Position restraint file
188 |
189 |
190 |
191 |
192 |
193 | [moleculetype]
194 | ; name nrexcl
195 | SO4fi 1
196 |
197 | [atoms]
198 | ;nr type resnr residu atom cgnr charge
199 | 1 O 1 SO4f O1 1 -1 15.9994
200 | 2 O 1 SO4f O2 1 -1 15.9994
201 | 3 O 1 SO4f O3 1 -1 15.9994
202 | 4 O 1 SO4f O4 1 -1 15.9994
203 | 5 S 1 SO4f S 1 2 32.0600
204 |
205 | [ bonds ]
206 | ; ai aj funct c0 c1
207 | 1 5 1 0.1520 3.7656e4
208 | 2 5 1 0.1520 3.7656e4
209 | 3 5 1 0.1520 3.7656e4
210 | 4 5 1 0.1520 3.7656e4
211 |
212 | [ angles ]
213 | ; ai aj ak funct angle fc
214 | 1 5 2 1 109.5 520
215 | 1 5 3 1 109.5 520
216 | 1 5 4 1 109.5 520
217 | 2 5 3 1 109.5 520
218 | 2 5 4 1 109.5 520
219 | 3 5 4 1 109.5 520
220 |
221 | [exclusions]
222 | 1 2 3 4 5
223 | 2 1 3 4 5
224 | 3 1 2 4 5
225 | 4 1 2 3 5
226 | 5 1 2 3 4
227 |
228 |
229 |
230 |
231 | [ System ]
232 | SO4Na2 slit
233 |
234 | [ Molecules ]
235 |
236 | Cl 526
237 | Clf 1
238 | Naf 392
239 | Na 135
240 | SOL 3731
241 |
--------------------------------------------------------------------------------
/water-in-salt-slit/NaCl_4M/nvt.cpt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/simongravelle/gromacs-input-files/0bb814cc9b2e3f357b95d96982b128edb5535689/water-in-salt-slit/NaCl_4M/nvt.cpt
--------------------------------------------------------------------------------
/water-in-salt-slit/NaCl_4M/nvt.edr:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/simongravelle/gromacs-input-files/0bb814cc9b2e3f357b95d96982b128edb5535689/water-in-salt-slit/NaCl_4M/nvt.edr
--------------------------------------------------------------------------------
/water-in-salt-slit/NaCl_4M/nvt.mdp:
--------------------------------------------------------------------------------
1 | ;
2 | ; File 'nvt.mdp' was generated
3 | ; By user: unknown (1862325)
4 | ; On host: bigfoot9
5 | ; At date: Tue May 16 11:40:44 2023
6 | ;
7 | ; Created by:
8 | ; :-) GROMACS - gmx grompp, 2023 (-:
9 | ;
10 | ; Executable: /home/gravells/softwares/gromacs-2023/build-gpu/bin/gmx
11 | ; Data prefix: /home/gravells/softwares/gromacs-2023 (source tree)
12 | ; Working dir: /bettik/gravells/water-in-salt-slit/NaCl_4M
13 | ; Command line:
14 | ; gmx grompp -f ../input/nvt.mdp -p topol.top -o nvt -pp nvt -po nvt -r conf.gro
15 |
16 | ; VARIOUS PREPROCESSING OPTIONS
17 | ; Preprocessor information: use cpp syntax.
18 | ; e.g.: -I/home/joe/doe -I/home/mary/roe
19 | include =
20 | ; e.g.: -DPOSRES -DFLEXIBLE (note these variable names are case sensitive)
21 | define =
22 |
23 | ; RUN CONTROL PARAMETERS
24 | integrator = md
25 | ; Start time and timestep in ps
26 | tinit = 0
27 | dt = 0.001
28 | nsteps = 50000
29 | ; For exact run continuation or redoing part of a run
30 | init-step = 0
31 | ; Part index is updated automatically on checkpointing (keeps files separate)
32 | simulation-part = 1
33 | ; Multiple time-stepping
34 | mts = no
35 | ; mode for center of mass motion removal
36 | comm_mode = linear
37 | ; number of steps for center of mass motion removal
38 | nstcomm = 100
39 | ; group(s) for center of mass motion removal
40 | comm_grps = system
41 |
42 | ; LANGEVIN DYNAMICS OPTIONS
43 | ; Friction coefficient (amu/ps) and random seed
44 | bd-fric = 0
45 | ld-seed = 48456
46 |
47 | ; ENERGY MINIMIZATION OPTIONS
48 | ; Force tolerance and initial step-size
49 | emtol = 10
50 | emstep = 0.01
51 | ; Max number of iterations in relax-shells
52 | niter = 20
53 | ; Step size (ps^2) for minimization of flexible constraints
54 | fcstep = 0
55 | ; Frequency of steepest descents steps when doing CG
56 | nstcgsteep = 1000
57 | nbfgscorr = 10
58 |
59 | ; TEST PARTICLE INSERTION OPTIONS
60 | rtpi = 0.05
61 |
62 | ; OUTPUT CONTROL OPTIONS
63 | ; Output frequency for coords (x), velocities (v) and forces (f)
64 | nstxout = 0
65 | nstvout = 0
66 | nstfout = 0
67 | ; Output frequency for energies to log file and energy file
68 | nstlog = 10000
69 | nstcalcenergy = 100
70 | nstenergy = 10000
71 | ; Output frequency and precision for .xtc file
72 | nstxout-compressed = 10000
73 | compressed-x-precision = 1000
74 | ; This selects the subset of atoms for the compressed
75 | ; trajectory file. You can select multiple groups. By
76 | ; default, all atoms will be written.
77 | compressed-x-grps =
78 | ; Selection of energy groups
79 | energygrps =
80 |
81 | ; NEIGHBORSEARCHING PARAMETERS
82 | ; cut-off scheme (Verlet: particle based cut-offs)
83 | cutoff-scheme = Verlet
84 | ; nblist update frequency
85 | nstlist = 10
86 | ; Periodic boundary conditions: xyz, no, xy
87 | pbc = xyz
88 | periodic-molecules = no
89 | ; Allowed energy error due to the Verlet buffer in kJ/mol/ps per atom,
90 | ; a value of -1 means: use rlist
91 | verlet-buffer-tolerance = 0.005
92 | ; nblist cut-off
93 | rlist = 1
94 | ; long-range cut-off for switched potentials
95 |
96 | ; OPTIONS FOR ELECTROSTATICS AND VDW
97 | ; Method for doing electrostatics
98 | coulombtype = pme
99 | coulomb-modifier = Potential-shift-Verlet
100 | rcoulomb-switch = 0
101 | rcoulomb = 1.4
102 | ; Relative dielectric constant for the medium and the reaction field
103 | epsilon-r = 1
104 | epsilon-rf = 0
105 | ; Method for doing Van der Waals
106 | vdw-type = Cut-off
107 | vdw-modifier = Potential-shift-Verlet
108 | ; cut-off lengths
109 | rvdw-switch = 0
110 | rvdw = 1.4
111 | ; Apply long range dispersion corrections for Energy and Pressure
112 | DispCorr = No
113 | ; Extension of the potential lookup tables beyond the cut-off
114 | table-extension = 1
115 | ; Separate tables between energy group pairs
116 | energygrp-table =
117 | ; Spacing for the PME/PPPM FFT grid
118 | fourierspacing = 0.1
119 | ; FFT grid size, when a value is 0 fourierspacing will be used
120 | fourier-nx = 0
121 | fourier-ny = 0
122 | fourier-nz = 0
123 | ; EWALD/PME/PPPM parameters
124 | pme-order = 4
125 | ewald-rtol = 1e-05
126 | ewald-rtol-lj = 0.001
127 | lj-pme-comb-rule = Geometric
128 | ewald-geometry = 3d
129 | epsilon-surface = 0
130 | implicit-solvent = no
131 |
132 | ; OPTIONS FOR WEAK COUPLING ALGORITHMS
133 | ensemble-temperature-setting = auto
134 | ensemble-temperature = -1
135 | ; Temperature coupling
136 | tcoupl = v-rescale
137 | nsttcouple = -1
138 | nhchainlength = 1
139 | print-nose-hoover-chain-variables = no
140 | ; Groups to couple separately
141 | tc-grps = Water non-Water
142 | ; Time constant (ps) and reference temperature (K)
143 | tau-t = 0.5 0.5
144 | ref-t = 293.15 293.15
145 | ; pressure coupling
146 | pcoupl = No
147 | pcoupltype = Isotropic
148 | nstpcouple = -1
149 | ; Time constant (ps), compressibility (1/bar) and reference P (bar)
150 | tau-p = 1
151 | compressibility =
152 | ref-p =
153 | ; Scaling of reference coordinates, No, All or COM
154 | refcoord-scaling = No
155 |
156 | ; OPTIONS FOR QMMM calculations
157 | QMMM = no
158 | ; Groups treated with MiMiC
159 | QMMM-grps =
160 |
161 | ; SIMULATED ANNEALING
162 | ; Type of annealing for each temperature group (no/single/periodic)
163 | annealing =
164 | ; Number of time points to use for specifying annealing in each group
165 | annealing-npoints =
166 | ; List of times at the annealing points for each group
167 | annealing-time =
168 | ; Temp. at each annealing point, for each group.
169 | annealing-temp =
170 |
171 | ; GENERATE VELOCITIES FOR STARTUP RUN
172 | gen-vel = yes
173 | gen-temp = 293.15
174 | gen-seed = -588259333
175 |
176 | ; OPTIONS FOR BONDS
177 | constraints = hbonds
178 | ; Type of constraint algorithm
179 | constraint-algorithm = lincs
180 | ; Do not constrain the start configuration
181 | continuation = no
182 | ; Use successive overrelaxation to reduce the number of shake iterations
183 | Shake-SOR = no
184 | ; Relative tolerance of shake
185 | shake-tol = 0.0001
186 | ; Highest order in the expansion of the constraint coupling matrix
187 | lincs-order = 4
188 | ; Number of iterations in the final step of LINCS. 1 is fine for
189 | ; normal simulations, but use 2 to conserve energy in NVE runs.
190 | ; For energy minimization with constraints it should be 4 to 8.
191 | lincs-iter = 1
192 | ; Lincs will write a warning to the stderr if in one step a bond
193 | ; rotates over more degrees than
194 | lincs-warnangle = 30
195 | ; Convert harmonic bonds to morse potentials
196 | morse = no
197 |
198 | ; ENERGY GROUP EXCLUSIONS
199 | ; Pairs of energy groups for which all non-bonded interactions are excluded
200 | energygrp-excl =
201 |
202 | ; WALLS
203 | ; Number of walls, type, atom types, densities and box-z scale factor for Ewald
204 | nwall = 0
205 | wall-type = 9-3
206 | wall-r-linpot = -1
207 | wall-atomtype =
208 | wall-density =
209 | wall-ewald-zfac = 3
210 |
211 | ; COM PULLING
212 | pull = no
213 |
214 | ; AWH biasing
215 | awh = no
216 |
217 | ; ENFORCED ROTATION
218 | ; Enforced rotation: No or Yes
219 | rotation = no
220 |
221 | ; Group to display and/or manipulate in interactive MD session
222 | IMD-group =
223 |
224 | ; NMR refinement stuff
225 | ; Distance restraints type: No, Simple or Ensemble
226 | disre = No
227 | ; Force weighting of pairs in one distance restraint: Conservative or Equal
228 | disre-weighting = Conservative
229 | ; Use sqrt of the time averaged times the instantaneous violation
230 | disre-mixed = no
231 | disre-fc = 1000
232 | disre-tau = 0
233 | ; Output frequency for pair distances to energy file
234 | nstdisreout = 100
235 | ; Orientation restraints: No or Yes
236 | orire = no
237 | ; Orientation restraints force constant and tau for time averaging
238 | orire-fc = 0
239 | orire-tau = 0
240 | orire-fitgrp =
241 | ; Output frequency for trace(SD) and S to energy file
242 | nstorireout = 100
243 |
244 | ; Free energy variables
245 | free-energy = no
246 | couple-moltype =
247 | couple-lambda0 = vdw-q
248 | couple-lambda1 = vdw-q
249 | couple-intramol = no
250 | init-lambda = -1
251 | init-lambda-state = -1
252 | delta-lambda = 0
253 | nstdhdl = 50
254 | fep-lambdas =
255 | mass-lambdas =
256 | coul-lambdas =
257 | vdw-lambdas =
258 | bonded-lambdas =
259 | restraint-lambdas =
260 | temperature-lambdas =
261 | calc-lambda-neighbors = 1
262 | init-lambda-weights =
263 | dhdl-print-energy = no
264 | sc-function = beutler
265 | sc-alpha = 0
266 | sc-power = 1
267 | sc-r-power = 6
268 | sc-sigma = 0.3
269 | sc-coul = no
270 | sc-gapsys-scale-linpoint-lj = 0.85
271 | sc-gapsys-scale-linpoint-q = 0.3
272 | sc-gapsys-sigma-lj = 0.3
273 | separate-dhdl-file = yes
274 | dhdl-derivatives = yes
275 | dh_hist_size = 0
276 | dh_hist_spacing = 0.1
277 |
278 | ; Non-equilibrium MD stuff
279 | acc-grps =
280 | accelerate =
281 | freezegrps =
282 | freezedim =
283 | cos-acceleration = 0
284 | deform =
285 |
286 | ; simulated tempering variables
287 | simulated-tempering = no
288 | simulated-tempering-scaling = geometric
289 | sim-temp-low = 300
290 | sim-temp-high = 300
291 |
292 | ; Ion/water position swapping for computational electrophysiology setups
293 | ; Swap positions along direction: no, X, Y, Z
294 | swapcoords = no
295 | adress = no
296 |
297 | ; User defined thingies
298 | user1-grps =
299 | user2-grps =
300 | userint1 = 0
301 | userint2 = 0
302 | userint3 = 0
303 | userint4 = 0
304 | userreal1 = 0
305 | userreal2 = 0
306 | userreal3 = 0
307 | userreal4 = 0
308 | ; Electric fields
309 | ; Format for electric-field-x, etc. is: four real variables:
310 | ; amplitude (V/nm), frequency omega (1/ps), time for the pulse peak (ps),
311 | ; and sigma (ps) width of the pulse. Omega = 0 means static field,
312 | ; sigma = 0 means no pulse, leaving the field to be a cosine function.
313 | electric-field-x = 0 0 0 0
314 | electric-field-y = 0 0 0 0
315 | electric-field-z = 0 0 0 0
316 |
317 | ; Density guided simulation
318 | density-guided-simulation-active = false
319 |
320 | ; QM/MM with CP2K
321 | qmmm-cp2k-active = false
322 |
--------------------------------------------------------------------------------
/water-in-salt-slit/NaCl_4M/nvt.top:
--------------------------------------------------------------------------------
1 | [ defaults ]
2 | ; nbfunc comb-rule gen-pairs fudgeLJ fudgeQQ
3 | 1 2 no 1.0 0.833
4 |
5 | [ atomtypes ]
6 | ; salts parameters
7 | ; name at.num mass charge ptype sigma epsilon
8 | Na 11 22.990 0.0000 A 0.23100 0.45000
9 | Cl 17 35.450 0.0000 A 0.43000 0.42000
10 | O 8 15.9994 0.0000 A 0.386 0.12
11 | S 16 32.0600 0.0000 A 0.355 1.0465
12 |
13 | ; water paramters
14 | ; name at.num mass charge ptype sigma epsilon
15 | HW 1 1.008 0.0000 A 0.00000 0.00000
16 | OW 8 16.000 0.0000 A 0.31650 0.76849
17 |
18 | ; DUMMY atoms
19 | ; name at.num mass charge ptype sigma epsilon
20 | MW 0 0.000 0.0000 D 0.00000 0.00000
21 |
22 |
23 |
24 | [ bondtypes ]
25 | ; i j func b0 kb
26 | S O 1 0.15 3.7656e4
27 |
28 | [ angletypes ]
29 | ; i j func b0 kb
30 | O S O 1 109.5 520
31 | [ moleculetype ]
32 | ; molname nrexcl
33 | SOL 2
34 |
35 | [ atoms ]
36 | ; id at type res nr res name at name cg nr charge mass
37 | 1 OW 1 SOL OW 1 0 15.9994
38 | 2 HW 1 SOL HW1 1 0.527 1.0079
39 | 3 HW 1 SOL HW2 1 0.527 1.0079
40 | 4 MW 1 SOL MW 1 -1.054 0.0000
41 |
42 | [ settles ]
43 | ; i funct doh dhh
44 | 1 1 0.09572 0.15139
45 |
46 | [ virtual_sites3 ]
47 | ; Vsite from funct a b
48 | 4 1 2 3 1 0.089608 0.089608
49 |
50 | [ exclusions ]
51 | 1 2 3 4
52 | 2 1 3 4
53 | 3 1 2 4
54 | 4 1 2 3
55 |
56 | ; The position of the virtual site is computed as follows:
57 | ;
58 | ; O
59 | ;
60 | ; V
61 | ;
62 | ; H H
63 | ;
64 | ; const = distance (OV) / [ cos (angle(VOH)) * distance (OH) ] / 2
65 | ; = 0.0105 nm / [ cos (52.26 deg) * 0.09572 nm ] * 2
66 | ; = 0.17922 / 2
67 | ; = 0.089608
68 | ;
69 | ; Vsite pos x4 = x1 + a*(x2-x1) + b*(x3-x1)
70 | [ moleculetype ]
71 | ; molname nrexcl
72 | Na 1
73 |
74 | [ atoms ]
75 | ; id at type res nr residu name at name cg nr charge
76 | 1 Na 1 Na Na 1 1
77 |
78 |
79 | [ moleculetype ]
80 | ; molname nrexcl
81 | Nafi 1
82 |
83 | [ atoms ]
84 | ; id at type res nr residu name at name cg nr charge
85 | 1 Na 1 Na Na 1 1
86 |
87 |
88 | [ moleculetype ]
89 | ; molname nrexcl
90 | Naf 1
91 |
92 | [ atoms ]
93 | ; id at type res nr residu name at name cg nr charge
94 | 1 Na 1 Na Na 1 1
95 |
96 | [ moleculetype ]
97 | ; molname nrexcl
98 | Cl 1
99 |
100 | [ atoms ]
101 | ; id at type res nr residu name at name cg nr charge
102 | 1 Cl 1 Cl Cl 1 -1
103 |
104 |
105 | [ moleculetype ]
106 | ; molname nrexcl
107 | Clf 1
108 |
109 | [ atoms ]
110 | ; id at type res nr residu name at name cg nr charge
111 | 1 Cl 1 Cl Cl 1 -1
112 |
113 | [ position_restraints ]
114 | ; ai funct fcx fcy fcz
115 | 1 1 20000 20000 20000 ; restrains to a point
116 |
117 | [moleculetype]
118 | ; name nrexcl
119 | SO4 1
120 |
121 | [atoms]
122 | ;nr type resnr residu atom cgnr charge
123 | 1 O 1 SO4 O1 1 -1 15.9994
124 | 2 O 1 SO4 O2 1 -1 15.9994
125 | 3 O 1 SO4 O3 1 -1 15.9994
126 | 4 O 1 SO4 O4 1 -1 15.9994
127 | 5 S 1 SO4 S 1 2 32.0600
128 |
129 | [ bonds ]
130 | ; ai aj funct c0 c1
131 | 1 5 1 0.1520 3.7656e4
132 | 2 5 1 0.1520 3.7656e4
133 | 3 5 1 0.1520 3.7656e4
134 | 4 5 1 0.1520 3.7656e4
135 |
136 | [ angles ]
137 | ; ai aj ak funct angle fc
138 | 1 5 2 1 109.5 520
139 | 1 5 3 1 109.5 520
140 | 1 5 4 1 109.5 520
141 | 2 5 3 1 109.5 520
142 | 2 5 4 1 109.5 520
143 | 3 5 4 1 109.5 520
144 |
145 | [exclusions]
146 | 1 2 3 4 5
147 | 2 1 3 4 5
148 | 3 1 2 4 5
149 | 4 1 2 3 5
150 | 5 1 2 3 4
151 |
152 | [moleculetype]
153 | ; name nrexcl
154 | SO4fp 1
155 |
156 | [atoms]
157 | ;nr type resnr residu atom cgnr charge
158 | 1 O 1 SO4f O1 1 -1 15.9994
159 | 2 O 1 SO4f O2 1 -1 15.9994
160 | 3 O 1 SO4f O3 1 -1 15.9994
161 | 4 O 1 SO4f O4 1 -1 15.9994
162 | 5 S 1 SO4f S 1 2 32.0600
163 |
164 | [ bonds ]
165 | ; ai aj funct c0 c1
166 | 1 5 1 0.1520 3.7656e4
167 | 2 5 1 0.1520 3.7656e4
168 | 3 5 1 0.1520 3.7656e4
169 | 4 5 1 0.1520 3.7656e4
170 |
171 | [ angles ]
172 | ; ai aj ak funct angle fc
173 | 1 5 2 1 109.5 520
174 | 1 5 3 1 109.5 520
175 | 1 5 4 1 109.5 520
176 | 2 5 3 1 109.5 520
177 | 2 5 4 1 109.5 520
178 | 3 5 4 1 109.5 520
179 |
180 | [exclusions]
181 | 1 2 3 4 5
182 | 2 1 3 4 5
183 | 3 1 2 4 5
184 | 4 1 2 3 5
185 | 5 1 2 3 4
186 |
187 | ; Include Position restraint file
188 |
189 |
190 |
191 |
192 |
193 | [moleculetype]
194 | ; name nrexcl
195 | SO4fi 1
196 |
197 | [atoms]
198 | ;nr type resnr residu atom cgnr charge
199 | 1 O 1 SO4f O1 1 -1 15.9994
200 | 2 O 1 SO4f O2 1 -1 15.9994
201 | 3 O 1 SO4f O3 1 -1 15.9994
202 | 4 O 1 SO4f O4 1 -1 15.9994
203 | 5 S 1 SO4f S 1 2 32.0600
204 |
205 | [ bonds ]
206 | ; ai aj funct c0 c1
207 | 1 5 1 0.1520 3.7656e4
208 | 2 5 1 0.1520 3.7656e4
209 | 3 5 1 0.1520 3.7656e4
210 | 4 5 1 0.1520 3.7656e4
211 |
212 | [ angles ]
213 | ; ai aj ak funct angle fc
214 | 1 5 2 1 109.5 520
215 | 1 5 3 1 109.5 520
216 | 1 5 4 1 109.5 520
217 | 2 5 3 1 109.5 520
218 | 2 5 4 1 109.5 520
219 | 3 5 4 1 109.5 520
220 |
221 | [exclusions]
222 | 1 2 3 4 5
223 | 2 1 3 4 5
224 | 3 1 2 4 5
225 | 4 1 2 3 5
226 | 5 1 2 3 4
227 |
228 |
229 |
230 |
231 | [ System ]
232 | SO4Na2 slit
233 |
234 | [ Molecules ]
235 |
236 | Cl 526
237 | Clf 1
238 | Naf 392
239 | Na 135
240 | SOL 3731
241 |
--------------------------------------------------------------------------------
/water-in-salt-slit/NaCl_4M/nvt.tpr:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/simongravelle/gromacs-input-files/0bb814cc9b2e3f357b95d96982b128edb5535689/water-in-salt-slit/NaCl_4M/nvt.tpr
--------------------------------------------------------------------------------
/water-in-salt-slit/NaCl_4M/run_bigfoot_pore.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | #OAR -n mixture-nanopore
3 | #OAR -l /nodes=1/gpu=1/cpu=1/core=8,walltime=48:00:00
4 | #OAR -p gpumodel='A100'
5 | #OAR --stdout log.out
6 | #OAR --stderr log.err
7 | #OAR --project tamtam
8 |
9 | export GMX_MAXBACKUP=-1
10 |
11 | gmx=/home/gravells/softwares/gromacs-2023/build-gpu/bin/gmx
12 |
13 | #${gmx} grompp -f ../input/nvt.mdp -p topol.top -o nvt -pp nvt -po nvt -r conf.gro
14 | #${gmx} mdrun -deffnm nvt -v -rdd 1 -nt 8 -pin on
15 | #cp nvt.gro conf.gro
16 |
17 | ${gmx} grompp -f ../input/npt.mdp -p topol.top -o npt -pp npt -po npt -r conf.gro -maxwarn 2
18 | ${gmx} mdrun -deffnm npt -v -rdd 1 -nt 8 -pin on
19 | cp npt.gro conf.gro
20 |
21 |
--------------------------------------------------------------------------------
/water-in-salt-slit/NaCl_4M/runall.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # path to gromacs
4 | gmx=gmx
5 |
6 | ${gmx} grompp -f ../input/nvt.mdp -o nvt -pp nvt -po nvt -r conf.gro
7 | ${gmx} mdrun -v -deffnm nvt -nt 12
8 | mv nvt.gro conf.gro
9 |
10 | ${gmx} grompp -f ../input/npt.mdp -o npt -pp npt -po npt -r conf.gro
11 | ${gmx} mdrun -v -deffnm npt -nt 12
12 | mv npt.gro conf.gro
13 |
14 | ${gmx} grompp -f ../input/prodHR.mdp -o prodHR -pp prodHR -po prodHR -r conf.gro
15 | ${gmx} mdrun -v -deffnm prodHR -nt 12
16 |
17 | ${gmx} grompp -f ../input/prodLR.mdp -o prodLR -pp prodLR -po prodLR -r conf.gro
18 | ${gmx} mdrun -v -deffnm prodLR -nt 12
19 |
20 |
--------------------------------------------------------------------------------
/water-in-salt-slit/NaCl_4M/topol.top:
--------------------------------------------------------------------------------
1 | #include "../ff/forcefield.itp"
2 | #include "../ff/tip4peps.itp"
3 | #include "../ff/ions.itp"
4 |
5 | [ System ]
6 | SO4Na2 slit
7 |
8 | [ Molecules ]
9 |
10 | Cl 526
11 | Clf 1
12 | Naf 392
13 | Na 135
14 | SOL 3731
15 |
--------------------------------------------------------------------------------
/water-in-salt-slit/README.md:
--------------------------------------------------------------------------------
1 | # Molecular simulation scripts for bulk solutions
2 |
3 | This dataset contains GROMACS files used in NMR Investigation of Water in Salt Crusts: Insights from Experiments and Molecular Simulations by Simon Gravelle, Sabina Haber-Pohlmeier, Carlos Mattea, Siegfried Stapf, Christian Holm, and Alexander Schlaich
4 |
5 | The ff/ folder contains the force field data, the input/ folder the GROMACS mdp files, and the NaCl_1M/ and Na2SO4_1M folders are
6 | two examples of configuration files for performing simulation at concentration 1M.
7 |
8 | Within both NaCl_1M/ and Na2SO4_1M folders, a Python file named ConfigurationGenerator allows to regenerate the initial conf.gro and topol.top files with a given salt concentration.
9 |
10 |
--------------------------------------------------------------------------------
/water-in-salt-slit/ff/atomtypes.atp:
--------------------------------------------------------------------------------
1 | Na 22.99000 ; sodium
2 | Cl 35.45000 ; chlorine
3 | HW 1.00800 ; water hydrogen
4 | OW 16.00000 ; TIP4P epsilon oxygen
5 | MW 0.00000 ; Virtual site for tip4p water point charge
6 | O 15.9994 ; O SO4
7 | S 32.0600 ; S SO4
8 |
--------------------------------------------------------------------------------
/water-in-salt-slit/ff/ffbonded.itp:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | [ bondtypes ]
5 | ; i j func b0 kb
6 | S O 1 0.15 3.7656e4
7 |
8 | [ angletypes ]
9 | ; i j func b0 kb
10 | O S O 1 109.5 520
11 |
--------------------------------------------------------------------------------
/water-in-salt-slit/ff/ffnonbonded.itp:
--------------------------------------------------------------------------------
1 | [ atomtypes ]
2 | ; salts parameters
3 | ; name at.num mass charge ptype sigma epsilon
4 | Na 11 22.990 0.0000 A 0.23100 0.45000
5 | Cl 17 35.450 0.0000 A 0.43000 0.42000
6 | O 8 15.9994 0.0000 A 0.386 0.12
7 | S 16 32.0600 0.0000 A 0.355 1.0465
8 |
9 | ; water paramters
10 | ; name at.num mass charge ptype sigma epsilon
11 | HW 1 1.008 0.0000 A 0.00000 0.00000
12 | OW 8 16.000 0.0000 A 0.31650 0.76849
13 |
14 | ; DUMMY atoms
15 | ; name at.num mass charge ptype sigma epsilon
16 | MW 0 0.000 0.0000 D 0.00000 0.00000
17 |
--------------------------------------------------------------------------------
/water-in-salt-slit/ff/forcefield.itp:
--------------------------------------------------------------------------------
1 | [ defaults ]
2 | ; nbfunc comb-rule gen-pairs fudgeLJ fudgeQQ
3 | 1 2 no 1.0 0.833
4 |
5 | #include "ffnonbonded.itp"
6 | #include "ffbonded.itp"
7 |
--------------------------------------------------------------------------------
/water-in-salt-slit/ff/ions.itp:
--------------------------------------------------------------------------------
1 | [ moleculetype ]
2 | ; molname nrexcl
3 | Na 1
4 |
5 | [ atoms ]
6 | ; id at type res nr residu name at name cg nr charge
7 | 1 Na 1 Na Na 1 1
8 |
9 | #ifdef POSRES_ION
10 | [ position_restraints ]
11 | ; ai funct fcx fcy fcz
12 | 1 1 0 0 1000
13 | #endif
14 |
15 | [ moleculetype ]
16 | ; molname nrexcl
17 | Nafi 1
18 |
19 | [ atoms ]
20 | ; id at type res nr residu name at name cg nr charge
21 | 1 Na 1 Na Na 1 1
22 |
23 | #ifdef POSRESini
24 | [ position_restraints ]
25 | ; ai funct fcx fcy fcz
26 | 1 1 1000 1000 1000
27 | #endif
28 |
29 | [ moleculetype ]
30 | ; molname nrexcl
31 | Naf 1
32 |
33 | [ atoms ]
34 | ; id at type res nr residu name at name cg nr charge
35 | 1 Na 1 Na Na 1 1
36 |
37 | [ moleculetype ]
38 | ; molname nrexcl
39 | Cl 1
40 |
41 | [ atoms ]
42 | ; id at type res nr residu name at name cg nr charge
43 | 1 Cl 1 Cl Cl 1 -1
44 |
45 | #ifdef POSRES_ION
46 |
47 | [ position_restraints ]
48 | ; ai funct fcx fcy fcz
49 | 1 1 1000 1000 1000 ; restrains to a point
50 |
51 | #endif
52 |
53 | [ moleculetype ]
54 | ; molname nrexcl
55 | Clf 1
56 |
57 | [ atoms ]
58 | ; id at type res nr residu name at name cg nr charge
59 | 1 Cl 1 Cl Cl 1 -1
60 |
61 | [ position_restraints ]
62 | ; ai funct fcx fcy fcz
63 | 1 1 20000 20000 20000 ; restrains to a point
64 |
65 | [moleculetype]
66 | ; name nrexcl
67 | SO4 1
68 |
69 | [atoms]
70 | ;nr type resnr residu atom cgnr charge
71 | 1 O 1 SO4 O1 1 -1 15.9994
72 | 2 O 1 SO4 O2 1 -1 15.9994
73 | 3 O 1 SO4 O3 1 -1 15.9994
74 | 4 O 1 SO4 O4 1 -1 15.9994
75 | 5 S 1 SO4 S 1 2 32.0600
76 |
77 | [ bonds ]
78 | ; ai aj funct c0 c1
79 | 1 5 1 0.1520 3.7656e4
80 | 2 5 1 0.1520 3.7656e4
81 | 3 5 1 0.1520 3.7656e4
82 | 4 5 1 0.1520 3.7656e4
83 |
84 | [ angles ]
85 | ; ai aj ak funct angle fc
86 | 1 5 2 1 109.5 520
87 | 1 5 3 1 109.5 520
88 | 1 5 4 1 109.5 520
89 | 2 5 3 1 109.5 520
90 | 2 5 4 1 109.5 520
91 | 3 5 4 1 109.5 520
92 |
93 | [exclusions]
94 | 1 2 3 4 5
95 | 2 1 3 4 5
96 | 3 1 2 4 5
97 | 4 1 2 3 5
98 | 5 1 2 3 4
99 |
100 | [moleculetype]
101 | ; name nrexcl
102 | SO4fp 1
103 |
104 | [atoms]
105 | ;nr type resnr residu atom cgnr charge
106 | 1 O 1 SO4f O1 1 -1 15.9994
107 | 2 O 1 SO4f O2 1 -1 15.9994
108 | 3 O 1 SO4f O3 1 -1 15.9994
109 | 4 O 1 SO4f O4 1 -1 15.9994
110 | 5 S 1 SO4f S 1 2 32.0600
111 |
112 | [ bonds ]
113 | ; ai aj funct c0 c1
114 | 1 5 1 0.1520 3.7656e4
115 | 2 5 1 0.1520 3.7656e4
116 | 3 5 1 0.1520 3.7656e4
117 | 4 5 1 0.1520 3.7656e4
118 |
119 | [ angles ]
120 | ; ai aj ak funct angle fc
121 | 1 5 2 1 109.5 520
122 | 1 5 3 1 109.5 520
123 | 1 5 4 1 109.5 520
124 | 2 5 3 1 109.5 520
125 | 2 5 4 1 109.5 520
126 | 3 5 4 1 109.5 520
127 |
128 | [exclusions]
129 | 1 2 3 4 5
130 | 2 1 3 4 5
131 | 3 1 2 4 5
132 | 4 1 2 3 5
133 | 5 1 2 3 4
134 |
135 | ; Include Position restraint file
136 |
137 | #ifdef POSRES
138 | #include "posres.itp"
139 | #endif
140 |
141 |
142 |
143 |
144 | [moleculetype]
145 | ; name nrexcl
146 | SO4fi 1
147 |
148 | [atoms]
149 | ;nr type resnr residu atom cgnr charge
150 | 1 O 1 SO4f O1 1 -1 15.9994
151 | 2 O 1 SO4f O2 1 -1 15.9994
152 | 3 O 1 SO4f O3 1 -1 15.9994
153 | 4 O 1 SO4f O4 1 -1 15.9994
154 | 5 S 1 SO4f S 1 2 32.0600
155 |
156 | [ bonds ]
157 | ; ai aj funct c0 c1
158 | 1 5 1 0.1520 3.7656e4
159 | 2 5 1 0.1520 3.7656e4
160 | 3 5 1 0.1520 3.7656e4
161 | 4 5 1 0.1520 3.7656e4
162 |
163 | [ angles ]
164 | ; ai aj ak funct angle fc
165 | 1 5 2 1 109.5 520
166 | 1 5 3 1 109.5 520
167 | 1 5 4 1 109.5 520
168 | 2 5 3 1 109.5 520
169 | 2 5 4 1 109.5 520
170 | 3 5 4 1 109.5 520
171 |
172 | [exclusions]
173 | 1 2 3 4 5
174 | 2 1 3 4 5
175 | 3 1 2 4 5
176 | 4 1 2 3 5
177 | 5 1 2 3 4
178 |
179 | #ifdef POSRESini
180 | [ position_restraints ]
181 | ; ai funct fcx fcy fcz
182 | 1 1 1000 1000 1000
183 | 2 1 1000 1000 1000
184 | 3 1 1000 1000 1000
185 | 4 1 1000 1000 1000
186 | 5 1 1000 1000 1000
187 | #endif
188 |
189 |
190 |
--------------------------------------------------------------------------------
/water-in-salt-slit/ff/molecules.rtp:
--------------------------------------------------------------------------------
1 |
2 | [ HO4 ]
3 | [ atoms ]
4 | OW OW 0.00 0
5 | HW1 HW 0.52 0
6 | HW2 HW 0.52 0
7 | MW MW -1.04 0
8 | [ bonds ]
9 | OW HW1
10 | OW HW2
11 |
12 | [ Na ]
13 | [ atoms ]
14 | Na Na 1.00000 1
15 |
16 | [ Cl ]
17 | [ atoms ]
18 | Cl Cl -1.00000 1
19 |
20 | [ SO4 ]
21 | [ atoms ]
22 | O1 O -1 1
23 | O2 O -1 1
24 | O3 O -1 1
25 | O4 O -1 1
26 | S S 2 1
27 |
28 | [ bonds ]
29 | S O1
30 | S O2
31 | S O3
32 | S O4
33 |
34 | [ angles ]
35 | O1 S O2
36 | O1 S O3
37 | O1 S O4
38 | O2 S O3
39 | O2 S O4
40 | O3 S O4
41 |
42 | [ exclusions ]
43 | O2 O3 O4 S
44 | O1 O3 O4 S
45 | O1 O2 O4 S
46 | O1 O2 O3 S
47 | O1 O2 O3 O4
48 |
--------------------------------------------------------------------------------
/water-in-salt-slit/ff/tip4peps.itp:
--------------------------------------------------------------------------------
1 | [ moleculetype ]
2 | ; molname nrexcl
3 | SOL 2
4 |
5 | [ atoms ]
6 | ; id at type res nr res name at name cg nr charge mass
7 | 1 OW 1 SOL OW 1 0 15.9994
8 | 2 HW 1 SOL HW1 1 0.527 1.0079
9 | 3 HW 1 SOL HW2 1 0.527 1.0079
10 | 4 MW 1 SOL MW 1 -1.054 0.0000
11 |
12 | [ settles ]
13 | ; i funct doh dhh
14 | 1 1 0.09572 0.15139
15 |
16 | [ virtual_sites3 ]
17 | ; Vsite from funct a b
18 | 4 1 2 3 1 0.089608 0.089608
19 |
20 | [ exclusions ]
21 | 1 2 3 4
22 | 2 1 3 4
23 | 3 1 2 4
24 | 4 1 2 3
25 |
26 | ; The position of the virtual site is computed as follows:
27 | ;
28 | ; O
29 | ;
30 | ; V
31 | ;
32 | ; H H
33 | ;
34 | ; const = distance (OV) / [ cos (angle(VOH)) * distance (OH) ] / 2
35 | ; = 0.0105 nm / [ cos (52.26 deg) * 0.09572 nm ] * 2
36 | ; = 0.17922 / 2
37 | ; = 0.089608
38 | ;
39 | ; Vsite pos x4 = x1 + a*(x2-x1) + b*(x3-x1)
40 |
--------------------------------------------------------------------------------
/water-in-salt-slit/input/npt.mdp:
--------------------------------------------------------------------------------
1 | ;======================== running ============= ; description
2 | integrator = md ; leap-frog algorithm for integrating Newton’s equations of motion.
3 | nsteps = 50000000 ; maximum number of steps to integrate or minimize
4 | ; use 50 ns when the salt concentration inside the pore is larger than 0, otherwise 5 ns are enough
5 | dt = 0.001 ; time step for integration (1 fs)
6 | comm_mode = linear ; remove center of mass translation
7 | comm_grps = system ; group(s) for center of mass motion removal
8 | gen-vel = no ; generate velocities according to a Maxwell distribution
9 | gen-temp = 293.15 ; temperature for Maxwell distribution (K)
10 |
11 | ;======================== neighbor searching == ; description
12 | cutoff-scheme = Verlet ; generate a pair list with buffering
13 | nstlist = 10 ; frequency to update the neighbor list
14 | ns_type = grid
15 |
16 | ;======================== output ============== ; description
17 | nstlog = 200000 ; number of steps that elapse between writing energies to the log file
18 | nstenergy = 200000 ; number of steps that elapse between writing energies to energy file
19 | nstxout-compressed = 200000 ; frequency to write coordinates to xtc trajectory
20 |
21 | ;======================== van der Waals ======= ; description
22 | vdw-type = Cut-off ; plain cut-off with rlist >= rvdw
23 | rvdw = 1.4 ; distance for the LJ cut-off (nm)
24 |
25 | ; ======================= electrostatics ======= ; description
26 | coulombtype = pme ; fast smooth Particle-Mesh Ewald (SPME) electrostatics
27 | fourierspacing = 0.1 ; this should give an accuracy of about 2-3*10^-4
28 | pme-order = 4 ; interpolation order for PME (4 = cubic interpolation)
29 | rcoulomb = 1.4 ; distance for the Coulomb cut-off (nm)
30 |
31 | ; ======================= constraints ========= ; description
32 | constraint-algorithm = lincs ; more stable and faster than SHAKE
33 | constraints = hbonds ; convert the bonds with H-atoms to constraints
34 | continuation = yes ; apply or not constraints to the start configuration
35 |
36 | ; ======================= temp. coupling ======= ; description
37 | tcoupl = v-rescale ; Berendsen + stochastic term = proper canonical ensemble
38 | ld-seed = 48456 ; seed
39 | tc-grps = Water non-Water ; groups to couple to separate temperature baths
40 | tau-t = 0.5 0.5 ; time constant for coupling (ps)
41 | ref-t = 293.15 293.15 ; reference temperature for coupling (K)
42 | nhchainlength = 1 ; number of chained Nose-Hoover thermostats
43 |
44 | ; ======================= press. coupling ===== ; description
45 | pcoupl = berendsen ; exponential relaxation pressure coupling with time constant
46 | Pcoupltype = anisotropic ; isotropic pressure coupling
47 | tau_p = 1. ; time constant for pressure coupling (ps)
48 | ref_p = 1. 1. 1. 0. 0. 0. ; reference pressure for coupling (bar)
49 | compressibility = 4.5e-5 4.5e-5 4.5e-5 0 0 0 ; compressibility (bar-1)
50 |
--------------------------------------------------------------------------------
/water-in-salt-slit/input/nvt.mdp:
--------------------------------------------------------------------------------
1 | ;======================== running ============= ; description
2 | integrator = md ; leap-frog algorithm for integrating Newton’s equations of motion.
3 | nsteps = 50000 ; maximum number of steps to integrate or minimize
4 | dt = 0.001 ; time step for integration (1 fs)
5 | comm_mode = linear ; remove center of mass translation
6 | comm_grps = system ; group(s) for center of mass motion removal
7 | gen-vel = yes ; generate velocities according to a Maxwell distribution
8 | gen-temp = 293.15 ; temperature for Maxwell distribution (K)
9 |
10 | ;======================== neighbor searching == ; description
11 | cutoff-scheme = Verlet ; generate a pair list with buffering
12 | nstlist = 10 ; frequency to update the neighbor list
13 | ns_type = grid
14 |
15 | ;======================== output ============== ; description
16 | nstlog = 10000 ; number of steps that elapse between writing energies to the log file
17 | nstenergy = 10000 ; number of steps that elapse between writing energies to energy file
18 | nstxout-compressed = 10000 ; frequency to write coordinates to xtc trajectory
19 |
20 | ;======================== van der Waals ======= ; description
21 | vdw-type = Cut-off ; plain cut-off with rlist >= rvdw
22 | rvdw = 1.4 ; distance for the LJ cut-off (nm)
23 |
24 | ; ======================= electrostatics ======= ; description
25 | coulombtype = pme ; fast smooth Particle-Mesh Ewald (SPME) electrostatics
26 | fourierspacing = 0.1 ; this should give an accuracy of about 2-3*10^-4
27 | pme-order = 4 ; interpolation order for PME (4 = cubic interpolation)
28 | rcoulomb = 1.4 ; distance for the Coulomb cut-off (nm)
29 |
30 | ; ======================= constraints ========= ; description
31 | constraint-algorithm = lincs ; more stable and faster than SHAKE
32 | constraints = hbonds ; convert the bonds with H-atoms to constraints
33 | continuation = no ; apply or not constraints to the start configuration
34 |
35 | ; ======================= temp. coupling ======= ; description
36 | tcoupl = v-rescale ; Berendsen + stochastic term = proper canonical ensemble
37 | ld-seed = 48456 ; seed
38 | tc-grps = Water non-Water ; groups to couple to separate temperature baths
39 | tau-t = 0.5 0.5 ; time constant for coupling (ps)
40 | ref-t = 293.15 293.15 ; reference temperature for coupling (K)
41 | nhchainlength = 1 ; number of chained Nose-Hoover thermostats
42 |
--------------------------------------------------------------------------------
/water-in-salt-slit/input/prodHR.mdp:
--------------------------------------------------------------------------------
1 | ;======================== running ============= ; description
2 | integrator = md ; leap-frog algorithm for integrating Newton’s equations of motion.
3 | nsteps = 2000000 ; maximum number of steps to integrate or minimize (2 ns)
4 | dt = 0.001 ; time step for integration (1 fs)
5 | comm_mode = linear ; remove center of mass translation
6 | comm_grps = system ; group(s) for center of mass motion removal
7 | gen-vel = no ; generate velocities according to a Maxwell distribution
8 | gen-temp = 293.15 ; temperature for Maxwell distribution (K)
9 |
10 | ;======================== neighbor searching == ; description
11 | cutoff-scheme = Verlet ; generate a pair list with buffering
12 | nstlist = 10 ; frequency to update the neighbor list
13 | ns_type = grid
14 |
15 | ;======================== output ============== ; description
16 | nstlog = 10000 ; number of steps that elapse between writing energies to the log file
17 | nstenergy = 10000 ; number of steps that elapse between writing energies to energy file
18 | nstxout-compressed = 50 ; frequency to write coordinates to xtc trajectory
19 |
20 | ;======================== van der Waals ======= ; description
21 | vdw-type = Cut-off ; plain cut-off with rlist >= rvdw
22 | rvdw = 1.4 ; distance for the LJ cut-off (nm)
23 |
24 | ; ======================= electrostatics ======= ; description
25 | coulombtype = pme ; fast smooth Particle-Mesh Ewald (SPME) electrostatics
26 | fourierspacing = 0.1 ; this should give an accuracy of about 2-3*10^-4
27 | pme-order = 4 ; interpolation order for PME (4 = cubic interpolation)
28 | rcoulomb = 1.4 ; distance for the Coulomb cut-off (nm)
29 |
30 | ; ======================= constraints ========= ; description
31 | constraint-algorithm = lincs ; more stable and faster than SHAKE
32 | constraints = hbonds ; convert the bonds with H-atoms to constraints
33 | continuation = yes ; apply or not constraints to the start configuration
34 |
35 | ; ======================= temp. coupling ======= ; description
36 | tcoupl = v-rescale ; Berendsen + stochastic term = proper canonical ensemble
37 | ld-seed = 48456 ; seed
38 | tc-grps = Water non-Water ; groups to couple to separate temperature baths
39 | tau-t = 0.5 0.5 ; time constant for coupling (ps)
40 | ref-t = 293.15 293.15 ; reference temperature for coupling (K)
41 | nhchainlength = 1 ; number of chained Nose-Hoover thermostats
42 |
43 |
--------------------------------------------------------------------------------
/water-in-salt-slit/input/prodLR.mdp:
--------------------------------------------------------------------------------
1 | ;======================== running ============= ; description
2 | integrator = md ; leap-frog algorithm for integrating Newton’s equations of motion.
3 | nsteps = 200000000 ; maximum number of steps to integrate or minimize (200 ns)
4 | dt = 0.001 ; time step for integration (1 fs)
5 | comm_mode = linear ; remove center of mass translation
6 | comm_grps = system ; group(s) for center of mass motion removal
7 | gen-vel = no ; generate velocities according to a Maxwell distribution
8 | gen-temp = 293.15 ; temperature for Maxwell distribution (K)
9 |
10 | ;======================== neighbor searching == ; description
11 | cutoff-scheme = Verlet ; generate a pair list with buffering
12 | nstlist = 10 ; frequency to update the neighbor list
13 | ns_type = grid
14 |
15 | ;======================== output ============== ; description
16 | nstlog = 1000000 ; number of steps that elapse between writing energies to the log file
17 | nstenergy = 1000000 ; number of steps that elapse between writing energies to energy file
18 | nstxout-compressed = 5000 ; frequency to write coordinates to xtc trajectory
19 |
20 | ;======================== van der Waals ======= ; description
21 | vdw-type = Cut-off ; plain cut-off with rlist >= rvdw
22 | rvdw = 1.4 ; distance for the LJ cut-off (nm)
23 |
24 | ; ======================= electrostatics ======= ; description
25 | coulombtype = pme ; fast smooth Particle-Mesh Ewald (SPME) electrostatics
26 | fourierspacing = 0.1 ; this should give an accuracy of about 2-3*10^-4
27 | pme-order = 4 ; interpolation order for PME (4 = cubic interpolation)
28 | rcoulomb = 1.4 ; distance for the Coulomb cut-off (nm)
29 |
30 | ; ======================= constraints ========= ; description
31 | constraint-algorithm = lincs ; more stable and faster than SHAKE
32 | constraints = hbonds ; convert the bonds with H-atoms to constraints
33 | continuation = yes ; apply or not constraints to the start configuration
34 |
35 | ; ======================= temp. coupling ======= ; description
36 | tcoupl = v-rescale ; Berendsen + stochastic term = proper canonical ensemble
37 | ld-seed = 48456 ; seed
38 | tc-grps = Water non-Water ; groups to couple to separate temperature baths
39 | tau-t = 0.5 0.5 ; time constant for coupling (ps)
40 | ref-t = 293.15 293.15 ; reference temperature for coupling (K)
41 | nhchainlength = 1 ; number of chained Nose-Hoover thermostats
42 |
43 |
--------------------------------------------------------------------------------