├── gui
├── graphspage.qml
├── gui_mcmd_linux
├── gui_mcmd_macos
├── images
│ ├── lineedit.png
│ ├── mof+co2.png
│ ├── badbenzene.png
│ └── mof5-hexagonal-angle.png
├── NOTES_TO_SELF
├── qtquickcontrols2.conf
├── qml.qrc
├── Info.plist
├── viz.cpp
├── backend.cpp
├── viz.h
├── backend.h
├── InputLine.qml
├── gui_mcmd.pro
├── main.cpp
├── main_old_copy.qml
├── .qmake.stash
├── fileio.h
├── moc_viz.cpp
├── fileio.cpp
└── moc_backend.cpp
├── precompiled
├── mac
│ ├── mcmd_mac
│ └── mcmd_mac_openmp
├── linux
│ ├── mcmd_linux
│ ├── mcmd_linux_cuda
│ └── mcmd_linux_openmp
└── windows
│ └── mcmd_windows.exe
├── src
├── cmake_config.h
├── cmake_config.h.in
├── nosehoover.txt
├── usefulmath.cpp
├── rotatepoint.cpp
├── system.cpp
├── mixing.cpp
├── pairs.cpp
├── mc.cpp
├── commy.cpp
├── potential.cpp
├── distance.cpp
├── md.cpp
├── boltzmann.cpp
├── observables.cpp
├── radial_dist.cpp
├── compile.sh
└── tt.cpp
├── atomfiles
├── h2o.xyz
├── README.md
├── H2O_4_TIP3P.pdb
├── tetracycline_wonky.xyz
├── acetylene10.pqr
├── Ar100.pdb
├── He100.pdb
├── Kr100.pdb
├── Ne100.pdb
└── Rn100.pdb
├── mcmd_top_downloaded_adv_theor_sim_2018-2019.pdf
├── cloc-git.sh
├── examples
├── optimization
│ ├── RuBpy
│ │ └── mcmd.inp
│ ├── tetracycline
│ │ └── mcmd.inp
│ ├── heme-protein
│ │ └── mcmd.inp
│ └── BigMOF
│ │ └── mcmd.inp
├── single_point
│ ├── h2o
│ │ └── mcmd.inp
│ └── RuBpy
│ │ └── mcmd.inp
├── molecular_dynamics
│ ├── polarized
│ │ ├── h2_nve
│ │ │ └── mcmd.inp
│ │ ├── h2o_nve_flexible
│ │ │ └── mcmd.inp
│ │ └── h2o_nvt
│ │ │ └── mcmd.inp
│ ├── tang_toennies
│ │ └── mcmd.inp
│ ├── MOF+drug
│ │ └── mcmd.inp
│ ├── Ar_box
│ │ └── mcmd.inp
│ ├── multisorb
│ │ └── mcmd.inp
│ ├── omp
│ │ └── mcmd.inp
│ ├── cuda
│ │ ├── nvt
│ │ │ └── mcmd.inp
│ │ ├── water_octane_SMALL
│ │ │ └── mcmd.inp
│ │ └── water_octane_BIG
│ │ │ └── mcmd.inp
│ ├── flexible_MOF
│ │ └── mcmd.inp
│ ├── flexible_MOF_input_FF
│ │ └── mcmd.inp
│ ├── external_force
│ │ └── mcmd.inp
│ ├── nve
│ │ └── mcmd.inp
│ ├── nvt
│ │ └── mcmd.inp
│ ├── uvt
│ │ └── mcmd.inp
│ └── manual_init_vel
│ │ └── mcmd.inp
├── monte_carlo
│ ├── tang_toennies
│ │ └── mcmd.inp
│ ├── npt
│ │ └── mcmd.inp
│ ├── omp
│ │ └── mcmd.inp
│ ├── nvt
│ │ └── mcmd.inp
│ ├── nve
│ │ └── mcmd.inp
│ ├── uvt
│ │ └── mcmd.inp
│ ├── multisorb
│ │ └── mcmd.inp
│ └── nopbc
│ │ └── mcmd.inp
├── generate_LAMMPS_input
│ └── mcmd.inp
├── scale_charges
│ └── mcmd.inp
├── write_xyz_traj
│ └── mcmd.inp
├── half_A_matrix
│ └── mcmd.inp
├── simulated_annealing
│ └── mcmd.inp
├── crystal_fragment_builder
│ └── mcmd.inp
└── manual_parameters
│ └── mcmd.inp
├── gitnotes.txt
├── .gitignore
├── CMakeLists.txt
├── .github
└── workflows
│ └── cmake.yml
└── README.md
/gui/graphspage.qml:
--------------------------------------------------------------------------------
1 | import QtQuick 2.4
2 |
3 |
4 | Form {
5 |
6 | }
7 |
--------------------------------------------------------------------------------
/gui/gui_mcmd_linux:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/khavernathy/mcmd/HEAD/gui/gui_mcmd_linux
--------------------------------------------------------------------------------
/gui/gui_mcmd_macos:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/khavernathy/mcmd/HEAD/gui/gui_mcmd_macos
--------------------------------------------------------------------------------
/gui/images/lineedit.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/khavernathy/mcmd/HEAD/gui/images/lineedit.png
--------------------------------------------------------------------------------
/gui/images/mof+co2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/khavernathy/mcmd/HEAD/gui/images/mof+co2.png
--------------------------------------------------------------------------------
/gui/images/badbenzene.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/khavernathy/mcmd/HEAD/gui/images/badbenzene.png
--------------------------------------------------------------------------------
/precompiled/mac/mcmd_mac:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/khavernathy/mcmd/HEAD/precompiled/mac/mcmd_mac
--------------------------------------------------------------------------------
/precompiled/linux/mcmd_linux:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/khavernathy/mcmd/HEAD/precompiled/linux/mcmd_linux
--------------------------------------------------------------------------------
/src/cmake_config.h:
--------------------------------------------------------------------------------
1 | /* #undef OMP */
2 | /* #undef MPI */
3 | /* #undef CUDA */
4 | /* #undef WINDOWS */
5 |
--------------------------------------------------------------------------------
/src/cmake_config.h.in:
--------------------------------------------------------------------------------
1 | #cmakedefine OMP
2 | #cmakedefine MPI
3 | #cmakedefine CUDA
4 | #cmakedefine WINDOWS
5 |
--------------------------------------------------------------------------------
/precompiled/linux/mcmd_linux_cuda:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/khavernathy/mcmd/HEAD/precompiled/linux/mcmd_linux_cuda
--------------------------------------------------------------------------------
/precompiled/mac/mcmd_mac_openmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/khavernathy/mcmd/HEAD/precompiled/mac/mcmd_mac_openmp
--------------------------------------------------------------------------------
/gui/images/mof5-hexagonal-angle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/khavernathy/mcmd/HEAD/gui/images/mof5-hexagonal-angle.png
--------------------------------------------------------------------------------
/precompiled/linux/mcmd_linux_openmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/khavernathy/mcmd/HEAD/precompiled/linux/mcmd_linux_openmp
--------------------------------------------------------------------------------
/precompiled/windows/mcmd_windows.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/khavernathy/mcmd/HEAD/precompiled/windows/mcmd_windows.exe
--------------------------------------------------------------------------------
/atomfiles/h2o.xyz:
--------------------------------------------------------------------------------
1 | 3
2 |
3 | O 0.0 0.0 0.0 -0.807806
4 | H 0 0.58588 0.75695 0.403903
5 | H 0 0.58588 -0.75695 0.403903
6 |
--------------------------------------------------------------------------------
/mcmd_top_downloaded_adv_theor_sim_2018-2019.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/khavernathy/mcmd/HEAD/mcmd_top_downloaded_adv_theor_sim_2018-2019.pdf
--------------------------------------------------------------------------------
/gui/NOTES_TO_SELF:
--------------------------------------------------------------------------------
1 | 1) NEVER CHANGE MAKEFILE ON GITHUB. The makefile should be unique for local systems
2 |
3 | 2)
4 | make clean
5 | qmake -config release
6 | make
7 |
8 |
9 | will make a Mac bundle with the app.
10 |
11 | 3)
12 |
--------------------------------------------------------------------------------
/cloc-git.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | theurl="https://github.com/khavernathy/mcmd"
4 |
5 | git clone --depth 1 $theurl temp-linecount-repo &&
6 | printf "('temp-linecount-repo' will be deleted automatically)\n\n\n" &&
7 | cloc temp-linecount-repo &&
8 | rm -rf temp-linecount-repo
9 |
--------------------------------------------------------------------------------
/examples/optimization/RuBpy/mcmd.inp:
--------------------------------------------------------------------------------
1 | ! Douglas Franz, Space group, USF, 2017
2 | ! Optimization of a RuBpy (+2) complex
3 |
4 | mode opt
5 | name rubpy
6 |
7 | bondlength 1.9
8 | opt_error 0.0001
9 | opt_step_limit 10000
10 | opt_mode sd
11 |
12 |
13 |
14 | input_atoms ../../../atomfiles/RuBpy.pdb
15 |
--------------------------------------------------------------------------------
/examples/optimization/tetracycline/mcmd.inp:
--------------------------------------------------------------------------------
1 | ! Douglas Franz, Space group, USF, 2017
2 | ! Optimization of the drug molecule tetracycline
3 |
4 |
5 | mode opt
6 | name tetra
7 |
8 | bondlength 1.9
9 | opt_error 0.0001
10 | opt_step_limit 10000
11 | opt_mode sd
12 |
13 |
14 | input_atoms_xyz ../../../atomfiles/tetracycline_wonky.xyz
15 |
--------------------------------------------------------------------------------
/examples/optimization/heme-protein/mcmd.inp:
--------------------------------------------------------------------------------
1 | ! Douglas Franz, Space group, USF, 2017
2 | ! Optimization of a Heme protein 1DVE
3 | ! RAT HEME OXYGENASE-1
4 |
5 |
6 | mode opt
7 | name rat-protein
8 |
9 | bondlength 1.9
10 | opt_error 0.0001
11 | opt_step_limit 10000
12 | opt_mode sd
13 |
14 |
15 | input_atoms_xyz ../../../atomfiles/1dve.xyz
16 |
--------------------------------------------------------------------------------
/gui/qtquickcontrols2.conf:
--------------------------------------------------------------------------------
1 | ; This file can be edited to change the style of the application
2 | ; See Styling Qt Quick Controls 2 in the documentation for details:
3 | ; http://doc.qt.io/qt-5/qtquickcontrols2-styles.html
4 |
5 | [Controls]
6 | Style=Default
7 |
8 | [Universal]
9 | Theme=Light
10 | ;Accent=Steel
11 |
12 | [Material]
13 | Theme=Light
14 | ;Accent=BlueGrey
15 | ;Primary=BlueGray
16 |
--------------------------------------------------------------------------------
/examples/single_point/h2o/mcmd.inp:
--------------------------------------------------------------------------------
1 | ! Douglas Franz, Space group, USF, 2017
2 | ! Single-point energy calculation of a RuBpy complex
3 | ! Note, for single-point energy calculation to work,
4 | ! All atoms must have real periodic-table names
5 | ! e.g. Cu, not CU or Cu2.
6 |
7 | name h2o_singlepoint_ex
8 | mode sp
9 | input_atoms_xyz ../../../atomfiles/h2o.xyz
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/src/nosehoover.txt:
--------------------------------------------------------------------------------
1 |
2 | velocity verlet for NVT NoseHoover https://www2.ph.ed.ac.uk/~dmarendu/MVP/MVP03.pdf
3 | Q large, thermostat ineffective; Q small, oscillations too big http://www.wag.caltech.edu/home/jsu/UsersGuide/node18.html
4 | Q->inf goes to NVE http://www2.mpip-mainz.mpg.de/~andrienk/journal_club/thermostats.pdf
5 | suggestion for Q http://www.courses.physics.helsinki.fi/fys/moldyn/lectures/L5.pdf
6 |
--------------------------------------------------------------------------------
/examples/single_point/RuBpy/mcmd.inp:
--------------------------------------------------------------------------------
1 | ! Douglas Franz, Space group, USF, 2017
2 | ! Single-point energy calculation of a RuBpy complex
3 | ! Note, for single-point energy calculation to work,
4 | ! All atoms must have real periodic-table names
5 | ! e.g. Cu, not CU or Cu2.
6 |
7 | name RuBpy_singlepoint_ex
8 | mode sp
9 | input_atoms ../../../atomfiles/RuBpy.pdb
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/examples/molecular_dynamics/polarized/h2_nve/mcmd.inp:
--------------------------------------------------------------------------------
1 | mode md
2 | ensemble NVE
3 | temperature 100 ! (intial temp, not thermostatted. this is NVE)
4 |
5 | sorbate_name h2_bssp
6 | potential_form ljespolar
7 |
8 | carbasis 50 50 50 90 90 90
9 |
10 | md_dt 2 ! femptosec
11 | md_ft 20 ns
12 |
13 | md_mode molecular ! i.e. rigid rotators
14 | md_rotations on
15 | md_translations on
16 |
17 | md_corrtime 1
18 |
19 | input_atoms input.pdb
20 |
--------------------------------------------------------------------------------
/examples/optimization/BigMOF/mcmd.inp:
--------------------------------------------------------------------------------
1 | ! Douglas Franz, Space group, 2017, USF
2 | ! Optimization of the unit-cell of
3 | ! NOTT-112, a MOF with a very large
4 | ! unit cell.
5 |
6 |
7 | mode opt
8 | name NOTT-112_periodic
9 |
10 | bondlength 1.9
11 | opt_error 0.0001
12 | opt_step_limit 10000
13 | opt_mode sd
14 |
15 |
16 |
17 | carbasis 47.005 47.005 47.005 90 90 90
18 |
19 |
20 | input_atoms ../../../atomfiles/NOTT-112_elements.pdb
21 |
--------------------------------------------------------------------------------
/examples/molecular_dynamics/tang_toennies/mcmd.inp:
--------------------------------------------------------------------------------
1 | ! Douglas Franz, Space group, USF, 2017
2 | ! Using the Tang-Toennies potential for MD simulation
3 | ! 10 Aceytlene molecules parameterized using
4 | ! using the Tang-Toennies potential.
5 |
6 | mode md
7 | name tang_toennies_example
8 | ensemble nvt
9 | temperature 298
10 | md_dt 1
11 | md_ft 100 ps
12 |
13 | rd_lrc on
14 |
15 | input_atoms ../../../atomfiles/acetylene10.pqr
16 | potential_form tt
17 | carbasis 60 60 60 90 90 90
18 |
--------------------------------------------------------------------------------
/examples/monte_carlo/tang_toennies/mcmd.inp:
--------------------------------------------------------------------------------
1 | ! Douglas Franz, Space group, USF, 2017
2 | ! Using the Tang-Toennies potential for MC simulation
3 | ! This is a big box of acetylene molecules parametrized
4 | ! using the Tang-Toennies potential.
5 |
6 | mode mc
7 | name tang_toennies_example
8 | ensemble nvt
9 | temperature 298
10 | steps 1000
11 | mc_corrtime 10
12 |
13 | rd_lrc on
14 |
15 | input_atoms ../../../atomfiles/acetylene.pqr
16 | potential_form ttes
17 | ewald_kmax 4
18 | carbasis 60 60 60 90 90 90
19 |
--------------------------------------------------------------------------------
/gui/qml.qrc:
--------------------------------------------------------------------------------
1 |
2 |
3 | main.qml
4 | qtquickcontrols2.conf
5 | main_old_copy.qml
6 | images/badbenzene.png
7 | backend.cpp
8 | backend.h
9 | fileio.cpp
10 | fileio.h
11 | main.cpp
12 | images/mof5-hexagonal-angle.png
13 | images/lineedit.png
14 | InputLine.qml
15 |
16 |
17 |
--------------------------------------------------------------------------------
/gitnotes.txt:
--------------------------------------------------------------------------------
1 | git pull origin dev:dev <-- pull from "dev" into current branch
2 | git branch -D blah <-- delete branch "blah"
3 | git checkout otherb <-- switch to branch "otherb"
4 | git checkout -b newb <-- create and switch to new branch "newb"
5 | git checkout -b newb origin/obranch <-- download remote existing branch "obranch" to new local branch "newb"
6 |
7 | To catch-up with current live-version of a git repo (overwrite your own):
8 | git remote add upstream https://github.com/whoever/whatever.git
9 | git fetch upstream
10 | git checkout master (git checkout dev) for atomify
11 | git rebase upstream/master ( git rebase upstream/dev) for atomify
12 |
--------------------------------------------------------------------------------
/examples/molecular_dynamics/MOF+drug/mcmd.inp:
--------------------------------------------------------------------------------
1 | ! MMPF-6, 2x2x2 with a single
2 | ! Bivalirudin molecule in the
3 | ! main pore. NVT flexible MD
4 | ! Douglas Franz
5 | ! Space group, 2018
6 |
7 | basis1 83.93600 0.00000 0.00000
8 | basis2 -41.96800 72.69070 0.00000
9 | basis3 0.00000 0.00000 34.28600
10 |
11 | ! Uncomment this line to parallelize force calculations.
12 | ! omp 16
13 |
14 | potential_form ljes
15 | ewald_kmax 2
16 |
17 | mode md
18 | ensemble nvt
19 | temperature 298
20 | md_dt 1
21 | md_ft 10 ns
22 | md_mode flexible
23 | md_corrtime 20
24 |
25 | thermostat nose-hoover
26 |
27 |
28 | xyz_traj_option on
29 | big_xyz_traj off
30 |
31 |
32 | auto_center on
33 | input_atoms ../../../atomfiles/MMPF-6+Bivalirudin.pdb
34 |
35 |
--------------------------------------------------------------------------------
/gui/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | NSPrincipalClass
6 | NSApplication
7 | CFBundleIconFile
8 |
9 | CFBundlePackageType
10 | APPL
11 | CFBundleGetInfoString
12 | Created by Qt/QMake
13 | CFBundleSignature
14 | ????
15 | CFBundleExecutable
16 | gui_mcmd
17 | CFBundleIdentifier
18 | com.yourcompany.${PRODUCT_NAME:rfc1034identifier}
19 | NOTE
20 | This file was generated by Qt/QMake.
21 |
22 |
23 |
--------------------------------------------------------------------------------
/atomfiles/README.md:
--------------------------------------------------------------------------------
1 | If you using any of these force-fields in your research, please cite our work!
2 |
3 | Science is hard, and force-fields are often more difficult to produce for complex materials than simply looking up values in a table.
4 |
5 | Thanks :)
6 |
7 | ```
8 | https://onlinelibrary.wiley.com/doi/full/10.1002/adts.201900113?casa_token=Oq66FnSB9VYAAAAA%3A3g8o048QMb_K1WMxdZp-eK8JKeBL39vCE25_JLY_zjQ06T35beWg6UDrRqiix7YjCGvOmrddWNwrp0Ue
9 | ```
10 |
11 | ```
12 | Franz, Douglas M., et al. "MPMC and MCMD: Free High‐Performance Simulation Software for Atomistic Systems." Advanced Theory and Simulations 2.11 (2019): 1900113.
13 | ```
14 |
15 | ```
16 | Franz, D. M. et al. MPMC and MCMD: Free High‐Performance Simulation Software for Atomistic Systems. Adv. Theory Sim., 2019. DOI: 10.1002/adts.201900113
17 | ```
18 |
--------------------------------------------------------------------------------
/gui/viz.cpp:
--------------------------------------------------------------------------------
1 | #include "viz.h"
2 | #include
3 | #include
4 | #include
5 | #include
6 | #include "unistd.h"
7 |
8 | #include
9 | #include
10 | #include
11 | using namespace std;
12 |
13 | Viz::Viz(QObject *parent) :
14 | QObject(parent)
15 | {
16 |
17 | }
18 |
19 | void Viz::openVMD(const QString& traj_name, const QString& exe_path)
20 | {
21 |
22 | // try to open VMD
23 | string command = "/usr/local/bin/vmd";
24 | command += " -pdb " + exe_path.toStdString() + "/" + traj_name.toStdString();
25 | system(command.c_str());
26 | qDebug() << "running openVMD() with CLI command = " + QString::fromStdString(command);
27 |
28 | /* other way
29 | QProcess *process = new QProcess();
30 | QString file = "/usr/local/bin/vmd -pdb" + traj_name;
31 | process->start(file);
32 | */
33 | }
34 |
--------------------------------------------------------------------------------
/atomfiles/H2O_4_TIP3P.pdb:
--------------------------------------------------------------------------------
1 | ATOM 1 HT h2o M 1 -1.752770 7.859250 -4.727420 default 0.4170
2 | ATOM 2 OT h2o M 1 -1.871140 8.575620 -4.113410 default -0.8340
3 | ATOM 3 HT h2o M 1 -1.746980 9.388710 -4.590600 default 0.4170
4 | ATOM 4 HT h2o M 2 -2.090070 6.957620 -4.921120 default 0.4170
5 | ATOM 5 OT h2o M 2 -2.854070 7.014120 -5.484420 default -0.8340
6 | ATOM 6 HT h2o M 2 -3.625470 6.980620 -4.929320 default 0.4170
7 | ATOM 7 HT h2o M 3 -2.665930 6.111700 -3.476070 default 0.4170
8 | ATOM 8 OT h2o M 3 -1.816200 5.786300 -3.199900 default -0.8340
9 | ATOM 9 HT h2o M 3 -1.744820 4.883110 -3.488810 default 0.4170
10 | ATOM 10 HT h2o M 4 -0.068850 6.740530 -2.796270 default 0.4170
11 | ATOM 11 OT h2o M 4 -0.817170 7.262010 -2.527460 default -0.8340
12 | ATOM 12 HT h2o M 4 -1.348260 7.424680 -3.299340 default 0.4170
13 |
--------------------------------------------------------------------------------
/examples/molecular_dynamics/Ar_box/mcmd.inp:
--------------------------------------------------------------------------------
1 | # Douglas Franz
2 | # Space group, USF, 2018
3 | # NVE MD: a box of liquid Ar
4 | # 0.844 = rho* (density in LJ reduced units)
5 | # 1.5 = T* (temperature reduced units)
6 |
7 |
8 | mode md
9 | md_mode molecular
10 | md_rotations off # important for monatomic gas
11 | md_dt 1
12 | md_ft 100 ns
13 | md_corrtime 1 ! # output/traj writes every step
14 |
15 | auto_center on
16 |
17 | ensemble nvt
18 | #md_init_vel 0.00000
19 | temperature 80 # will produce boltzmann-distribution of velocities at startup.
20 | thermostat nose-hoover
21 | nh_q_scale 1.5 # tighten the nose-hoover thermostat
22 |
23 | # omp 8 # can use this to parallelize with OpenMP, if compiled with that feature
24 |
25 | input_atoms input.pdb
26 |
27 | sorbate_name Ar_hogan
28 |
29 | radial_dist on
30 | radial_centroid Ar
31 | radial_counterpart Ar
32 | radial_max_dist 8.5125
33 |
34 |
35 | carbasis 17 17 17 90 90 90
36 |
37 |
--------------------------------------------------------------------------------
/examples/generate_LAMMPS_input/mcmd.inp:
--------------------------------------------------------------------------------
1 | ! Douglas Franz, Space group, USF, 2017
2 | ! This is an example of running normal Monte Carlo
3 | ! simulation of H2 in a MOF (MOF-5)
4 | ! except, at startup, LAMMPS MD input files
5 | ! will be written
6 |
7 |
8 | name generate_lammps_ex
9 | mode mc
10 | input_atoms input.pdb
11 |
12 | free_volume 11595.4
13 |
14 | potential_form ljes
15 | xyz_traj_option on
16 | sorbate_name h2_bss
17 | fugacity_single h2
18 |
19 | carbasis 25.669 25.669 25.669 90 90 90
20 |
21 | radial_dist off
22 |
23 | ensemble uvt
24 | mc_corrtime 100
25 | finalstep 1000000
26 | temperature 77
27 | pressure 1.0
28 | insert_factor 0.667
29 | displace_factor 2.5
30 | rotate_angle_factor 360.0
31 |
32 | feynman_hibbs on
33 | fh_order 4
34 |
35 |
36 | # THIS
37 | write_lammps on
38 |
39 |
40 | auto_reject_r 1.5 ! more speedup
41 |
--------------------------------------------------------------------------------
/gui/backend.cpp:
--------------------------------------------------------------------------------
1 | #include "backend.h"
2 |
3 | BackEnd::BackEnd(QObject *parent) :
4 | QObject(parent)
5 | {
6 | }
7 |
8 | QString BackEnd::userName()
9 | {
10 | return m_userName;
11 | }
12 |
13 | void BackEnd::setUserName(const QString &userName)
14 | {
15 | if (userName == m_userName)
16 | return;
17 |
18 | m_userName = userName;
19 | emit userNameChanged();
20 | }
21 |
22 | int BackEnd::outputLineNumber()
23 | {
24 | return m_outputLineNumber;
25 | }
26 |
27 | void BackEnd::setOutputLineNumber(const int &outputLineNumber)
28 | {
29 | if (outputLineNumber == m_outputLineNumber)
30 | return;
31 |
32 | m_outputLineNumber = outputLineNumber;
33 | emit outputLineNumberChanged();
34 | }
35 |
36 | QList BackEnd::Qst()
37 | {
38 | return m_Qst;
39 | }
40 |
41 | void BackEnd::setQst(QList &Qst)
42 | {
43 | if (Qst == m_Qst)
44 | return;
45 |
46 | m_Qst = Qst;
47 | emit QstChanged();
48 | }
49 |
--------------------------------------------------------------------------------
/gui/viz.h:
--------------------------------------------------------------------------------
1 | #ifndef VIZ_H
2 | #define VIZ_H
3 |
4 | #include
5 |
6 | class Viz : public QObject
7 | {
8 | Q_OBJECT
9 |
10 | public:
11 | // objects
12 | Q_PROPERTY(QString traj_name
13 | READ traj_name
14 | WRITE setTrajName
15 | NOTIFY trajNameChanged)
16 |
17 | explicit Viz(QObject *parent = 0);
18 |
19 | // functions
20 | Q_INVOKABLE void openVMD(const QString& data, const QString& data2);
21 |
22 |
23 | // local objects
24 | QString traj_name() { return mTrajName; };
25 |
26 |
27 | // setting functions
28 | public slots:
29 | void setTrajName(const QString& traj_name) { mTrajName = traj_name; };
30 |
31 |
32 | // change signals
33 | signals:
34 | void trajNameChanged(const QString& traj_name);
35 | void error(const QString& msg);
36 |
37 | private:
38 |
39 |
40 | public:
41 | QString mTrajName;
42 |
43 | };
44 |
45 |
46 |
47 |
48 |
49 |
50 | #endif // VIZ_H
51 |
--------------------------------------------------------------------------------
/examples/molecular_dynamics/multisorb/mcmd.inp:
--------------------------------------------------------------------------------
1 | ! Douglas Franz, Space group, USF, 2017
2 | ! Molcular dynamics example with multiple gases
3 | ! NVT MOF-5 with 5 gases
4 |
5 | name md_multigas_NVT_example
6 | mode md ! mc or md
7 | checkpoints_option off
8 |
9 | input_atoms ../../../atomfiles/MOF-5+co2+h2+ch4+water+ethane.pdb
10 |
11 | potential_form ljes
12 | com_option off ! center of mass
13 |
14 | sorbate_name co2_phast* h2_bssp ch4_9site* h2o ethane
15 |
16 | carbasis 25.669 25.669 25.669 90 90 90
17 |
18 | temperature 295.0
19 | ensemble nvt
20 |
21 | ewald_kmax 3
22 | histogram off
23 |
24 |
25 | ! MOLECULAR DYNAMICS ONLY ===============================
26 | md_pbc on
27 | md_dt 2 ! fs
28 | md_ft 200000 ! fs
29 | md_corrtime 1 ! steps
30 | md_mode molecular
31 | md_rotations on
32 |
33 |
34 |
--------------------------------------------------------------------------------
/examples/monte_carlo/npt/mcmd.inp:
--------------------------------------------------------------------------------
1 | ! Douglas Franz, Space group, USF, 2017
2 | ! Example of NPT monte carlo (i.e. the box changes volume)
3 | ! good for finding equilibrated density of bulk gases, etc.
4 | ! 100 Helium atoms at ~STP (STP is really 1 bar, not 1 atm)
5 | ! Note the input file He100.pdb takes advantage of the "default" feature
6 |
7 |
8 | name npt_example
9 | mode mc ! mc or md
10 | checkpoints_option off
11 | rd_lrc on
12 | input_atoms ../../../atomfiles/He100.pdb ! PDB ONLY
13 | potential_form lj
14 |
15 | carbasis 150 150 150 90 90 90
16 |
17 |
18 | ! MONTE CARLO ONLY ======================================
19 | ensemble npt
20 |
21 | mc_corrtime 100
22 | finalstep 5000000
23 | temperature 273.15 !77.0 ! K
24 | pressure 1.0 ! atm
25 |
26 | insert_factor 0.667 ! uVT: prob to insert/delete in uVT
27 | rotate_prob 0.5
28 | displace_factor 2.5
29 | rotate_angle_factor 360.0
30 |
31 | histogram off
32 |
33 | ! =======================================================
34 |
--------------------------------------------------------------------------------
/examples/molecular_dynamics/omp/mcmd.inp:
--------------------------------------------------------------------------------
1 | ! Douglas Franz, Space group, USF, 2017
2 | ! Identical to Molecular Dynamics Multisorb example
3 | ! Except OpenMP is used with 8 threads
4 | ! to speed up simulation
5 |
6 | omp 8
7 |
8 | name md_multigas_NVT_example
9 | mode md ! mc or md
10 | checkpoints_option off
11 |
12 | input_atoms ../../../atomfiles/MOF-5+co2+h2+ch4+water+ethane.pdb
13 |
14 | potential_form ljes
15 | com_option off ! center of mass
16 |
17 | sorbate_name co2_phast* h2_bssp ch4_9site* h2o ethane
18 |
19 | carbasis 25.669 25.669 25.669 90 90 90
20 |
21 | temperature 295.0
22 | ensemble nvt
23 |
24 | ewald_kmax 3
25 | histogram off
26 |
27 |
28 | ! MOLECULAR DYNAMICS ONLY ===============================
29 | md_pbc on
30 | md_dt 2 ! fs
31 | md_ft 200000 ! fs
32 | md_corrtime 1 ! steps
33 | md_mode molecular
34 | md_rotations on
35 |
36 |
37 |
--------------------------------------------------------------------------------
/examples/monte_carlo/omp/mcmd.inp:
--------------------------------------------------------------------------------
1 | ! Douglas Franz, Space group, USF, 2017
2 | ! Identical to Monte Carlo NVT example,
3 | ! Except OpenMP is used with 8 threads
4 | ! To speed up simulation
5 |
6 | omp 8
7 |
8 | name mc_nvt_example
9 | mode mc ! mc or md
10 | checkpoints_option off
11 |
12 | input_atoms ../../../atomfiles/NOTT-112+417H2_BSS.pdb
13 |
14 | potential_form ljes
15 | com_option off ! center of mass
16 |
17 | xyz_traj_option on
18 |
19 | sorbate_name h2_bss
20 |
21 |
22 | carbasis 47.005 47.005 47.005 90 90 90
23 |
24 |
25 | ! MONTE CARLO ONLY ======================================
26 | ensemble nvt
27 |
28 | mc_pbc on
29 | mc_corrtime 1
30 | finalstep 1000
31 | temperature 77.0 !77.0 ! K
32 | insert_factor 0.667 ! uVT: prob to insert/delete in uVT
33 | displace_factor 2.5
34 | rotate_angle_factor 360.0
35 | ! =======================================================
36 |
37 | auto_reject_option on ! saves time
38 | auto_reject_r 1.6 ! angstroms
39 |
40 | charge_sum_check off
41 |
42 |
--------------------------------------------------------------------------------
/gui/backend.h:
--------------------------------------------------------------------------------
1 | #ifndef BACKEND_H
2 | #define BACKEND_H
3 |
4 | #include
5 | #include
6 | #include
7 |
8 | class BackEnd : public QObject
9 | {
10 | Q_OBJECT
11 | Q_PROPERTY(QString userName READ userName WRITE setUserName NOTIFY userNameChanged)
12 | Q_PROPERTY(int outputLineNumber READ outputLineNumber WRITE setOutputLineNumber NOTIFY outputLineNumberChanged)
13 | Q_PROPERTY(QList Qst READ Qst WRITE setQst NOTIFY QstChanged)
14 |
15 | public:
16 | explicit BackEnd(QObject *parent = nullptr);
17 |
18 | QString userName();
19 | int outputLineNumber();
20 | QList Qst();
21 |
22 | void setUserName(const QString &userName);
23 | void setOutputLineNumber(const int &outputLineNumber);
24 | void setQst(QList &Qst);
25 |
26 | signals:
27 | void userNameChanged();
28 | void outputLineNumberChanged();
29 | void QstChanged();
30 |
31 | private:
32 | QString m_userName;
33 | int m_outputLineNumber;
34 |
35 |
36 | public:
37 | QList m_Qst;
38 | };
39 |
40 | #endif // BACKEND_H
41 |
--------------------------------------------------------------------------------
/examples/monte_carlo/nvt/mcmd.inp:
--------------------------------------------------------------------------------
1 | ! Douglas Franz, Space group, USF, 2017
2 | ! NOTT-112 with 417 H2 molecules (BSS model). Very large volume system.
3 | ! Note the use of auto-reject to skip unphysical (unrealistic) moves
4 |
5 | name mc_nvt_example
6 | mode mc ! mc or md
7 | checkpoints_option off
8 |
9 | input_atoms ../../../atomfiles/NOTT-112+417H2_BSS.pdb
10 |
11 | potential_form ljes
12 | com_option off ! center of mass
13 |
14 | xyz_traj_option on
15 |
16 | sorbate_name h2_bss
17 |
18 |
19 | carbasis 47.005 47.005 47.005 90 90 90
20 |
21 |
22 | ! MONTE CARLO ONLY ======================================
23 | ensemble nvt
24 |
25 | mc_pbc on
26 | mc_corrtime 1
27 | finalstep 1000
28 | temperature 77.0 !77.0 ! K
29 | insert_factor 0.667 ! uVT: prob to insert/delete in uVT
30 | displace_factor 2.5
31 | rotate_angle_factor 360.0
32 | ! =======================================================
33 |
34 | auto_reject_option on ! saves time
35 | auto_reject_r 1.6 ! angstroms
36 |
37 | charge_sum_check off
38 |
39 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .idea
2 | Testing
3 | build
4 | CTestTestfile.cmake
5 | *.obj
6 | *.i
7 | #md_test
8 | *.agr
9 | frag*
10 | *.py
11 | md_test/h2mof5
12 | md_test/h2mof5/*
13 | frozen*
14 | thermo*
15 | restart*
16 | runlo*
17 | density*
18 | energy*
19 | traj*
20 | radialdist*
21 | *.swp
22 | src/scratc*
23 | a
24 | b
25 | *.dat*
26 | md_test/te
27 | te
28 | #cloc-git.sh
29 | *.tmp
30 | garbage
31 | garbage/*
32 | mof5_77k.dat
33 | blah.*
34 | *.gif
35 | uvt_test/mncopy
36 | dip
37 | callgrin*
38 | *ods
39 | .~lock*
40 | t
41 | mcmd
42 | *.vmd
43 | histogram.dx
44 | dipoles.dat
45 | *.ods
46 | *.par
47 | *.dat
48 | uvt_test/debug
49 | nvt_test/polartest
50 | uvt_test/2*
51 | uvt_test/mof5
52 | uvt_test/rhtrestart
53 | nvt_test/commy
54 | #*.png
55 | mcmd.dSYM
56 | test_zone
57 | test_zone/*
58 | testzone
59 | testzone/*
60 | lammps.*
61 | src/build-*
62 | src/gui/build-*
63 | src/gui/*.o
64 | src/gui/gui_mcmd.pro.user.*
65 | src/buildgui
66 | saved_data
67 | saved_data/*
68 | saved_data*
69 | src/gui/*app
70 | src/gui/Makefile
71 | src/gui/gui_mcmd.pro.user
72 | CMakeCache.txt
73 | CMakeFiles/
74 | Makefile
75 | cmake_install.cmake
76 |
--------------------------------------------------------------------------------
/src/usefulmath.cpp:
--------------------------------------------------------------------------------
1 | #include
2 | #define _USE_MATH_DEFINES
3 | #include
4 | #include
5 |
6 | double dddotprod( double * a, double * b ) {
7 | return a[0]*b[0] + a[1]*b[1] + a[2]*b[2];
8 | }
9 |
10 | double iidotprod( int * a, int * b) {
11 | return a[0]*b[0] + a[1]*b[1] + a[2]*b[2];
12 | }
13 |
14 | double * crossprod( double * a, double * b) {
15 | static double output[3];
16 |
17 | output[0] = a[1]*b[2] - a[2]*b[1];
18 | output[1] = a[2]*b[0] - a[0]*b[2];
19 | output[2] = a[0]*b[1] - a[1]*b[0];
20 |
21 | return output;
22 | }
23 |
24 | // custom erf^-1(x)
25 | // http://stackoverflow.com/questions/27229371/inverse-error-function-in-c
26 | double erfInverse(double x) {
27 |
28 | double tt1, tt2, lnx, sgn;
29 | sgn = (x < 0) ? -1.0 : 1.0;
30 |
31 | x = (1 -x)*(1 + x);
32 | lnx = log(x);
33 |
34 | tt1 = 2/(M_PI*0.147) + 0.5 * lnx;
35 | tt2 = 1/(0.147) * lnx;
36 |
37 | return (sgn*sqrt(-tt1 + sqrt(tt1*tt1 - tt2)));
38 | }
39 |
40 | double factorial(double f) {
41 | if ( f==0 )
42 | return 1.0;
43 | return(f * factorial(f - 1));
44 | }
45 |
46 |
47 |
--------------------------------------------------------------------------------
/examples/molecular_dynamics/cuda/nvt/mcmd.inp:
--------------------------------------------------------------------------------
1 | ! Douglas Franz, Space group, USF, 2017
2 | ! Example using CUDA GPU acceleration for MD force calc's
3 | ! NOTT-112 + hydrogen gas (quite a big system, ~5000 sites)
4 | ! Remember to compile with CUDA if you want to use this
5 | ! e.g. `bash compile.sh gpu`
6 |
7 |
8 | name gpu_md_ex
9 | mode md ! mc or md
10 | cuda on ! cuda activated here
11 | checkpoints_option off
12 |
13 | input_atoms ../../../../atomfiles/NOTT-112+417H2_BSS.pdb ! PDB ONLY
14 |
15 | potential_form ljes !ljespolar
16 | com_option off ! center of mass
17 |
18 | carbasis 47.005 47.005 47.005 90 90 90
19 |
20 |
21 | temperature 295.0
22 | ensemble nvt
23 |
24 | ! MOLECULAR DYNAMICS ONLY ===============================
25 | md_pbc on
26 | md_dt 0.5 ! fs
27 | md_ft 100 ! fs
28 | md_corrtime 20 ! steps
29 | !md_init_vel 0 ! A / fs
30 | md_mode molecular !atomic
31 | md_rotations on
32 |
--------------------------------------------------------------------------------
/examples/monte_carlo/nve/mcmd.inp:
--------------------------------------------------------------------------------
1 | ! Douglas Franz, Space group, USF, 2017
2 | ! NVE monte carlo example, a box w/100 He atoms
3 |
4 | name mc_nve_example
5 | mode mc ! mc or md
6 | checkpoints_option off
7 | input_atoms ../../../atomfiles/He100.pdb ! PDB ONLY
8 | potential_form lj
9 | com_option off ! center of mass
10 |
11 | carbasis 150 150 150 90 90 90
12 | histogram off
13 |
14 |
15 | ! radial distribution option
16 | radial_dist on ! turns on/off radial distribution function. off for speed-up
17 | radial_bin_size 0.1 ! in A
18 | radial_max_dist 10.0 ! in A (maybe a good value is 1/2 box length)
19 | radial_centroid He ! element name
20 | radial_counterpart He ! element name to get distance of w/centroid
21 | radial_file radialdist.dat
22 |
23 |
24 | ! MONTE CARLO ONLY ======================================
25 | ensemble nve
26 |
27 | total_energy -200.0 !! kelvin. the E in NVE.
28 | mc_corrtime 25
29 | finalstep 5000000
30 | temperature 77
31 | pressure 1.0
32 |
33 | displace_factor 2.5
34 | rotate_angle_factor 360.0
35 | ! =======================================================
36 |
--------------------------------------------------------------------------------
/examples/scale_charges/mcmd.inp:
--------------------------------------------------------------------------------
1 | ! Douglas Franz, Space group, USF, 2017
2 | ! NOTT-112 with 417 H2 molecules (BSS model). Very large volume system.
3 | ! Exact same as Monte Carlo NVT example, but
4 | ! with charge-scaling option (here the charges are reduced to 90%)
5 |
6 | name scale_charges_example
7 | mode mc ! mc or md
8 | checkpoints_option off
9 |
10 | input_atoms ../../atomfiles/NOTT-112+417H2_BSS.pdb
11 |
12 | potential_form ljes
13 | com_option off ! center of mass
14 |
15 | xyz_traj_option on
16 |
17 | sorbate_name h2_bss
18 |
19 |
20 | carbasis 47.005 47.005 47.005 90 90 90
21 |
22 |
23 | ! MONTE CARLO ONLY ======================================
24 | ensemble nvt
25 |
26 | mc_pbc on
27 | mc_corrtime 10
28 | finalstep 1000
29 | temperature 77.0 !77.0 ! K
30 | insert_factor 0.667 ! uVT: prob to insert/delete in uVT
31 | displace_factor 2.5
32 | rotate_angle_factor 360.0
33 | ! =======================================================
34 |
35 | auto_reject_option on ! saves time
36 | auto_reject_r 1.6 ! angstroms
37 |
38 |
39 | scale_charges 0.9 ! will multiply every atomic charge by 0.9 before simulation.
40 |
--------------------------------------------------------------------------------
/examples/molecular_dynamics/cuda/water_octane_SMALL/mcmd.inp:
--------------------------------------------------------------------------------
1 | ! Douglas Franz, Space group, USF, 2017
2 | ! This is an analog of the BIG water+octane example
3 | ! Much less expensive (a little less than half system size)
4 | ! To use CUDA MD, make sure you compile with those features
5 | ! e.g. `bash compile.sh gpu`
6 |
7 |
8 | name cuda_md_water_octane_SMALL
9 | mode md ! mc or md
10 | cuda on
11 | checkpoints_option off
12 |
13 | input_atoms input.pqr
14 |
15 | potential_form ljes !ljespolar
16 | ewald_kmax 3
17 | com_option off ! center of mass
18 |
19 | carbasis 50 50 50 90 90 90
20 | histogram off
21 | manual_cutoff 12.0
22 |
23 | temperature 298.0
24 | thermostat nose-hoover
25 | ensemble nvt
26 |
27 | sorbate_name octane h2o_tip3p
28 |
29 | ! MOLECULAR DYNAMICS ONLY ===============================
30 | md_pbc on
31 | md_dt 1 ! fs
32 | md_ft 5 ns
33 | md_corrtime 10 ! steps
34 | !md_init_vel 0 ! A / fs^2
35 | md_mode molecular
36 | md_rotations on
37 |
--------------------------------------------------------------------------------
/examples/write_xyz_traj/mcmd.inp:
--------------------------------------------------------------------------------
1 | ! Douglas Franz, Space group, USF, 2017
2 | ! Exact same as Monte Carlo uVT example, except
3 | ! we will write an .xyz trajectory for easier VMD vizualization.
4 | ! In the VMD console, you can use
5 | ! `topo readvarxyz traj.xyz`
6 | ! to read a trajectory with changing number of particles.
7 |
8 |
9 |
10 | name mc_uvt_example
11 | mode mc
12 | input_atoms ../../atomfiles/rht-MOF-9.pdb
13 |
14 | free_volume 11595.4
15 |
16 | xyz_traj_option on
17 | output_traj_xyz traj.xyz
18 | big_xyz_traj on
19 |
20 | potential_form ljespolar
21 | sorbate_name h2_bssp
22 | fugacity_single h2
23 |
24 | carbasis 27.934 27.934 41.081 90 90 90
25 |
26 | radial_dist on
27 | radial_centroid CuC CuL N1 HN H2G
28 | radial_counterpart H2G H2G H2G H2G H2G
29 |
30 | ensemble uvt
31 | mc_corrtime 1
32 | finalstep 1000000
33 | temperature 77
34 | pressure 1.0
35 | insert_factor 0.667
36 | displace_factor 2.5
37 | rotate_angle_factor 360.0
38 |
39 | feynman_hibbs on
40 | fh_order 4
41 |
42 | bias_uptake 2.6 wt% ! based on experiment for quicker equilibration
43 | auto_reject_r 1.5 ! more speedup
44 |
--------------------------------------------------------------------------------
/examples/half_A_matrix/mcmd.inp:
--------------------------------------------------------------------------------
1 | ! Douglas Franz, Space group, USF, 2017
2 | ! rht-MOF-9 with hydrogen, to simulate H2 loading
3 | ! Note the use of built-in sorbate via sorbate_name
4 | ! this is exactly the same as the MC uVT example,
5 | ! but here we reduce the size of the Thole A matrix by ~1/2
6 | ! this slows performance but conserves memory.
7 |
8 | name half_A_matrix_example
9 | mode mc
10 | input_atoms ../../atomfiles/rht-MOF-9.pdb
11 |
12 | free_volume 11595.4
13 |
14 | potential_form ljespolar
15 | xyz_traj_option off
16 | sorbate_name h2_bssp
17 | fugacity_single h2
18 |
19 | carbasis 27.934 27.934 41.081 90 90 90
20 |
21 | radial_dist on
22 | radial_centroid CuC CuL N1 HN H2G
23 | radial_counterpart H2G H2G H2G H2G H2G
24 |
25 | ensemble uvt
26 | mc_corrtime 100
27 | finalstep 1000000
28 | temperature 77
29 | pressure 1.0
30 | insert_factor 0.667
31 | displace_factor 2.5
32 | rotate_angle_factor 360.0
33 |
34 | feynman_hibbs on
35 | fh_order 4
36 |
37 | bias_uptake 2.6 wt% ! based on experiment for quicker equilibration
38 | auto_reject_r 1.5 ! more speedup
39 |
40 |
41 | !!!! here
42 | full_A_matrix off
43 |
--------------------------------------------------------------------------------
/examples/monte_carlo/uvt/mcmd.inp:
--------------------------------------------------------------------------------
1 | ! Douglas Franz, Space group, USF, 2017
2 | ! Simulating loading capacity with GCMC.
3 | ! rht-MOF-9 with hydrogen gas
4 | ! Note the use of built-in sorbate via sorbate_name
5 | ! Also, bias_uptake, which speeds up pre-equilibration time
6 | ! Useful, e.g. if experimental loading is known
7 | ! Feynman-Hibbs corrections on b/c H2 has small mass and T is very low.
8 |
9 |
10 | name mc_uvt_example
11 | mode mc
12 | input_atoms ../../../atomfiles/rht-MOF-9.pdb
13 |
14 | free_volume 11595.4
15 |
16 | potential_form ljespolar
17 | xyz_traj_option off
18 | sorbate_name h2_bssp
19 | fugacity_single h2
20 |
21 | carbasis 27.934 27.934 41.081 90 90 90
22 |
23 | radial_dist on
24 | radial_centroid CuC CuL N1 HN H2G
25 | radial_counterpart H2G H2G H2G H2G H2G
26 |
27 | ensemble uvt
28 | mc_corrtime 1
29 | finalstep 1000000
30 | temperature 77
31 | pressure 1.0
32 | insert_factor 0.667
33 | displace_factor 2.5
34 | rotate_angle_factor 360.0
35 |
36 | feynman_hibbs on
37 | fh_order 4
38 |
39 | bias_uptake 2.6 wt% ! based on experiment for quicker equilibration
40 | auto_reject_r 1.5 ! more speedup
41 |
--------------------------------------------------------------------------------
/examples/simulated_annealing/mcmd.inp:
--------------------------------------------------------------------------------
1 | ! Douglas Franz, Space group, USF, 2017
2 | ! NOTT-112 with 417 H2 molecules (BSS model). Very large volume system.
3 | ! Simulated annealing is on, so the temperature should decrease as the simulation proceeds.
4 | ! And thus the equilibrium state of the system is being pursued computationally
5 |
6 | name sim_annealing_ex
7 | mode mc ! mc or md
8 | checkpoints_option off
9 |
10 | input_atoms ../../atomfiles/MPM-1-Br+CO2_PHAST.pdb
11 |
12 | potential_form ljes
13 | com_option off ! center of mass
14 |
15 |
16 | simulated_annealing on
17 | simulated_annealing_schedule 0.99997
18 | simulated_annealing_target 4.0 !K
19 |
20 |
21 | carbasis 27.1979 27.1979 30.9998 90 90 120
22 |
23 | ! MONTE CARLO ONLY ======================================
24 | ensemble nvt
25 |
26 | mc_pbc on
27 | mc_corrtime 500
28 | finalstep 500000
29 | temperature 700 ! K
30 | insert_factor 0.667 ! uVT: prob to insert/delete in uVT
31 | displace_factor 2.5
32 | rotate_angle_factor 360.0
33 | ! =======================================================
34 |
35 | auto_reject_option on ! saves time
36 | auto_reject_r 1.6 ! angstroms
37 |
38 | charge_sum_check on
39 |
40 |
--------------------------------------------------------------------------------
/examples/monte_carlo/multisorb/mcmd.inp:
--------------------------------------------------------------------------------
1 | ! Douglas Franz, Space group, USF, 2017
2 | ! Multi-sorbate monte carlo example
3 | ! MOF-5 with a bunch of guest molecules (gases) at moderately high pressure
4 | ! and room temperature
5 |
6 | name mc_multisorb_example
7 | mode mc ! mc or md
8 | checkpoints_option off
9 | input_atoms ../../../atomfiles/MOF-5.pdb ! PDB ONLY
10 | sorbate_name co2_phast* h2_bssp ch4_9site* water ethane*
11 | sorbate_fugacities 5.0 5.0 5.0 5.0 5.0
12 |
13 | free_volume 11595.4 ! A^3; for excess adsorption calc.
14 |
15 | potential_form ljespolar
16 | xyz_traj_option on ! use 'topo readvarxyz traj.xyz' to view VMD changing-N traj.
17 |
18 | carbasis 25.669 25.669 25.669 90 90 90
19 |
20 | radial_dist on
21 | radial_centroid OXY COG CoM H2G
22 | radial_counterpart ZN ZN ZN ZN
23 |
24 | histogram off
25 |
26 | ensemble uvt
27 |
28 | mc_corrtime 25
29 | finalstep 5000000
30 | temperature 295.0 ! K
31 | !!!pressure 2.0 ! atm, not needed for multi-sorb or manual fugacity.
32 |
33 | insert_factor 0.667 ! uVT: prob to insert/delete in uVT
34 | displace_factor 2.5
35 | rotate_angle_factor 360.0
36 | ! =======================================================
37 |
--------------------------------------------------------------------------------
/examples/molecular_dynamics/cuda/water_octane_BIG/mcmd.inp:
--------------------------------------------------------------------------------
1 | ! Douglas Franz, Space group, USF, 2017
2 | ! This is an example of separation of water and octane via CUDA GPU MD
3 | ! You have to compile the code with cuda enabled
4 | ! e.g. bash compile.sh gpu
5 | ! Even with CUDA this system is quite large, and especially
6 | ! expensive because we are including k-space Ewald forces
7 | ! We recommend trying the _SMALL example first.
8 | ! especially if you're using a GPU for display at the same time
9 |
10 | name cuda_md_gas_water
11 | mode md ! mc or md
12 | cuda on
13 | checkpoints_option off
14 |
15 | input_atoms input.pqr
16 | potential_form ljes !ljespolar
17 | ewald_kmax 3
18 | com_option off ! center of mass
19 |
20 |
21 | carbasis 100 100 100 90 90 90
22 |
23 | histogram off
24 |
25 | manual_cutoff 12.0 ! Angstroms
26 |
27 | temperature 298.0
28 | thermostat nose-hoover
29 | ensemble nvt
30 |
31 | sorbate_name octane h2o_tip3p
32 |
33 |
34 | ! MOLECULAR DYNAMICS ONLY ===============================
35 | md_pbc on
36 | md_dt 2 ! fs
37 | md_ft 5 ns
38 | md_corrtime 10 ! steps
39 | md_mode molecular
40 | md_rotations on
41 |
--------------------------------------------------------------------------------
/examples/molecular_dynamics/flexible_MOF/mcmd.inp:
--------------------------------------------------------------------------------
1 | ! Douglas Franz, Space group, USF, 2017
2 | ! Flexible MOF dynamics (NVT)
3 | ! Note, this is the same as the multisorb example
4 | ! Except the input MOF has just elemental labels ("C" instead of "C1", e.g.)
5 |
6 |
7 | name md_multigas_NVT_example
8 | mode md ! mc or md
9 | checkpoints_option off
10 |
11 | input_atoms ../../../atomfiles/MOF-5+co2+h2+ch4+water+ethane_flex.pdb
12 |
13 | potential_form ljes
14 | com_option off ! center of mass
15 |
16 | sorbate_name co2_phast* h2_bssp ch4_9site* h2o ethane
17 |
18 | carbasis 25.669 25.669 25.669 90 90 90
19 |
20 | temperature 295.0
21 | ensemble nvt
22 |
23 | ewald_kmax 3
24 | histogram off
25 |
26 | ! ============================================
27 | ! Here we turn on flexibility for the crystal
28 | flexible_frozen on
29 | ! =============================================
30 |
31 | ! MOLECULAR DYNAMICS ONLY ===============================
32 | md_pbc on
33 | md_dt 0.2 ! fs
34 | md_ft 200000 ! fs
35 | md_corrtime 1 ! steps
36 | md_mode molecular
37 | md_rotations on
38 |
39 |
40 |
41 |
--------------------------------------------------------------------------------
/gui/InputLine.qml:
--------------------------------------------------------------------------------
1 | import QtQuick 2.7
2 |
3 | Item {
4 | property string name: "default name"
5 | property string defaultIn: "default value"
6 | height: 30
7 | Text {
8 | id: thetext
9 | text: name
10 | height: 25
11 | width: 100
12 | }
13 | BorderImage {
14 | id: borderim
15 | source: "images/lineedit.png"
16 | border.left: 5; border.top: 5
17 | border.right: 5; border.bottom: 5
18 | anchors.left: thetext.right
19 | width:275
20 | height:25
21 |
22 | TextInput
23 | {
24 | id: editor
25 |
26 | cursorVisible: true;
27 | font.bold: true
28 | color: "#151515";
29 | selectionColor: "Green"
30 | focus: true
31 | text: defaultIn
32 |
33 | }
34 | }
35 | /*
36 | TextInput {
37 | id: theinput
38 | color: "red"
39 |
40 | anchors.left: thetext.right
41 | width: 275
42 | height: 25
43 | BorderImage {
44 | id: borderthing
45 | width: parent.width
46 | height: parent.height
47 | source: "images/lineedit.png"
48 | border.left: 5; border.top: 5
49 | border.right: 5; border.bottom: 5
50 | }
51 | text: defaultIn
52 |
53 | }
54 | */
55 |
56 | }
57 |
--------------------------------------------------------------------------------
/examples/molecular_dynamics/polarized/h2o_nve_flexible/mcmd.inp:
--------------------------------------------------------------------------------
1 | ! Douglas Franz, Space group, USF, 2017
2 | ! An example of polarized MD; bulk water in a box
3 | ! Polarization is notoriously slower than alternative force fields
4 | ! but has been shown to be necessary for accurate modeling
5 | ! especially for highly inductive intermolecular interactions
6 |
7 | name md_polarized_h2o
8 | mode md ! mc or md
9 | checkpoints_option off
10 |
11 | input_atoms input.pdb
12 |
13 |
14 |
15 | potential_form ljespolar
16 | com_option off ! center of mass
17 |
18 | sorbate_name h2o_pol3
19 |
20 | carbasis 30 30 30 90 90 90
21 |
22 | radial_dist on
23 | radial_centroid OXY
24 | radial_counterpart OXY
25 | radial_bin_size 0.05
26 | radial_max_dist 20
27 |
28 |
29 | ensemble nve
30 | ewald_kmax 4
31 | !!! polar_max_iter 20 ! not using here, but alternative to dipole precision
32 | ! dipole_precision 0.0000001 ! in Debye; 1e-7 is quite precise; dipoles iterate until reached
33 | ! temperature 298
34 | ! thermostat nose-hoover
35 |
36 |
37 |
38 | ! MOLECULAR DYNAMICS ONLY ===============================
39 | md_pbc on
40 | md_dt 1 ! fs
41 | md_ft 10 ns ! fs
42 | md_corrtime 1 ! steps
43 | md_mode flexible
44 |
--------------------------------------------------------------------------------
/gui/gui_mcmd.pro:
--------------------------------------------------------------------------------
1 | QT += qml quick printsupport widgets
2 |
3 | CONFIG += c++11
4 |
5 | SOURCES += main.cpp \
6 | backend.cpp \
7 | fileio.cpp \
8 | viz.cpp
9 |
10 | RESOURCES += qml.qrc
11 |
12 | # Additional import path used to resolve QML modules in Qt Creator's code model
13 | QML_IMPORT_PATH =
14 |
15 | # Additional import path used to resolve QML modules just for Qt Quick Designer
16 | QML_DESIGNER_IMPORT_PATH =
17 |
18 | # The following define makes your compiler emit warnings if you use
19 | # any feature of Qt which as been marked deprecated (the exact warnings
20 | # depend on your compiler). Please consult the documentation of the
21 | # deprecated API in order to know how to port your code away from it.
22 | DEFINES += QT_DEPRECATED_WARNINGS
23 |
24 | # You can also make your code fail to compile if you use deprecated APIs.
25 | # In order to do so, uncomment the following line.
26 | # You can also select to disable deprecated APIs only up to a certain version of Qt.
27 | #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
28 |
29 | # Default rules for deployment.
30 | qnx: target.path = /tmp/$${TARGET}/bin
31 | else: unix:!android: target.path = /opt/$${TARGET}/bin
32 | !isEmpty(target.path): INSTALLS += target
33 |
34 | HEADERS += \
35 | fileio.h \
36 | backend.h \
37 | viz.h
38 |
39 | FORMS +=
40 |
41 | DISTFILES += \
42 | garbage
43 |
--------------------------------------------------------------------------------
/examples/molecular_dynamics/polarized/h2o_nvt/mcmd.inp:
--------------------------------------------------------------------------------
1 | ! Douglas Franz, Space group, USF, 2017
2 | ! An example of polarized MD; bulk water in a box
3 | ! Polarization is notoriously slower than alternative force fields
4 | ! but has been shown to be necessary for accurate modeling
5 | ! especially for highly inductive intermolecular interactions
6 |
7 | name md_polarized_h2o
8 | mode md ! mc or md
9 | checkpoints_option off
10 |
11 | input_atoms input.pdb
12 |
13 |
14 |
15 | potential_form ljespolar
16 | com_option off ! center of mass
17 |
18 | sorbate_name h2o_pol3
19 |
20 | carbasis 30 30 30 90 90 90
21 |
22 | radial_dist on
23 | radial_centroid OXY
24 | radial_counterpart OXY
25 | radial_bin_size 0.05
26 | radial_max_dist 20
27 |
28 |
29 | ensemble nvt
30 | ewald_kmax 4
31 | !!! polar_max_iter 20 ! not using here, but alternative to dipole precision
32 | dipole_precision 0.0000001 ! in Debye; 1e-7 is quite precise; dipoles iterate until reached
33 | temperature 298
34 | thermostat nose-hoover
35 |
36 |
37 |
38 | ! MOLECULAR DYNAMICS ONLY ===============================
39 | md_pbc on
40 | md_dt 1 ! fs
41 | md_ft 10 ns ! fs
42 | md_corrtime 1 ! steps
43 | md_mode molecular
44 | md_rotations on
45 | md_translations on
46 |
--------------------------------------------------------------------------------
/examples/molecular_dynamics/flexible_MOF_input_FF/mcmd.inp:
--------------------------------------------------------------------------------
1 | ! Douglas Franz, Space group, USF, 2017
2 | ! Flexible MOF dynamics (NVT)
3 | ! Note, this is the same as the other flexible MOF example
4 | ! except the forcefield for the MOF is now determined by
5 | ! the input crystal structure instead of UFF/UFF4MOF
6 |
7 |
8 | name md_multigas_NVT_example
9 | mode md ! mc or md
10 | checkpoints_option off
11 |
12 | input_atoms ../../../atomfiles/MOF-5+co2+h2+ch4+water+ethane_flex.pdb
13 |
14 | potential_form ljes
15 | com_option off ! center of mass
16 |
17 | sorbate_name co2_phast* h2_bssp ch4_9site* h2o ethane
18 |
19 | carbasis 25.669 25.669 25.669 90 90 90
20 |
21 | temperature 295.0
22 | ensemble nvt
23 |
24 | ewald_kmax 3
25 | histogram off
26 |
27 | ! ============================================
28 | ! Here we turn on flexibility for the crystal
29 | flexible_frozen on
30 | ! Here we assign the bonds/angles/dihedrals based on
31 | ! the input structure
32 | input_structure_FF on
33 | ! =============================================
34 |
35 | ! MOLECULAR DYNAMICS ONLY ===============================
36 | md_pbc on
37 | md_dt 0.2 ! fs
38 | md_ft 200000 ! fs
39 | md_corrtime 1 ! steps
40 | md_mode molecular
41 | md_rotations on
42 |
43 |
44 | omp 4
45 |
--------------------------------------------------------------------------------
/examples/monte_carlo/nopbc/mcmd.inp:
--------------------------------------------------------------------------------
1 | ! Douglas Franz, Space group, USF, 2017
2 | ! No-PBC monte carlo example. Ru-tris-bipyridine in a MOF cage with
3 | ! free-moving methanol (solvent) molecules
4 |
5 | name nopbc_RuBpy_example
6 | mode mc ! mc or md
7 | checkpoints_option off
8 | ewald_es off
9 | rd_lrc off
10 | input_atoms ../../../atomfiles/USF2-mediumcage+RuBpy_optimized.pdb
11 | potential_form ljes
12 | com_option off ! center of mass
13 | sorbate_name methanol
14 | sorbate_fugacities 1.0
15 |
16 | xyz_traj_option on
17 |
18 | carbasis 25.66200 17.49800 25.66200 90 90 90
19 |
20 | dist_within on
21 | dist_within_target CoM
22 | dist_within_radius 9.01
23 |
24 | ! radial distribution option
25 | radial_dist on ! turns on/off radial distribution function. off for speed-up
26 | radial_bin_size 0.1 ! in A
27 | radial_max_dist 10.0 ! in A (maybe a good value is 1/2 box length)
28 | radial_centroid CoM ! element name
29 | radial_counterpart Zn ! element name to get distance of w/centroid
30 | radial_file radialdist.dat
31 |
32 |
33 | ! MONTE CARLO ONLY ======================================
34 | ensemble uvt
35 |
36 | mc_pbc off
37 | mc_corrtime 25
38 | finalstep 5000000
39 | temperature 298.0 !77.0 ! K
40 | !!!pressure 1.0 ! atm
41 |
42 | insert_factor 0.667 ! uVT: prob to insert/delete in uVT
43 | displace_factor 2.5
44 | rotate_angle_factor 360.0
45 | ! =======================================================
46 |
--------------------------------------------------------------------------------
/gui/main.cpp:
--------------------------------------------------------------------------------
1 | #include
2 | //#include
3 | #include
4 | #include
5 | #include
6 | #include
7 | #include
8 | #include
9 |
10 | //#include
11 |
12 | #include "backend.h"
13 | #include "fileio.h"
14 | #include "viz.h"
15 |
16 | #include
17 | #include
18 | #include
19 | #include
20 |
21 |
22 |
23 | using namespace std;
24 |
25 |
26 |
27 | int main(int argc, char *argv[])
28 | {
29 | //printf("Result of pwd: ");
30 | //system("pwd");
31 |
32 | QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
33 |
34 | //QGuiApplication app(argc, argv);
35 | QApplication app(argc, argv);
36 | qDebug() << "Result of qApp->applicationDirPath(): " << qApp->applicationDirPath();
37 |
38 |
39 | // c++ classes and corresponding headers for C++ <--> QML comm.
40 | qmlRegisterType("io.qt.examples.backend", 1, 0, "BackEnd");
41 | qmlRegisterType("FileIO", 1, 0, "FileIO");
42 | qmlRegisterType("Viz", 1, 0, "Viz");
43 | //qmlRegisterType("Graphs", 1, 0, "Graphs" );
44 |
45 | QQmlApplicationEngine engine;
46 |
47 |
48 | // go
49 | engine.load(QUrl(QLatin1String("qrc:/main.qml")));
50 |
51 | QWindow *window = qobject_cast(engine.rootObjects()[0]);
52 | window->setProperty("exePath", qApp->applicationDirPath());
53 |
54 |
55 |
56 | if (engine.rootObjects().isEmpty())
57 | return -1;
58 | return app.exec();
59 | }
60 |
--------------------------------------------------------------------------------
/examples/crystal_fragment_builder/mcmd.inp:
--------------------------------------------------------------------------------
1 | ! Douglas Franz, Space group, USF, 2017
2 | ! This is idenical to the uvt example, except
3 | ! we're building out the crystal system at the beginning
4 | ! and also spitting out some sample fragments of the MOF
5 | ! and also excluding polarization
6 | ! You can, of course, use the fragment builder independent of the crystal builder
7 | ! and vice-versa.
8 |
9 | name crystal_and_frag_builder_example
10 | mode mc
11 | input_atoms ../../atomfiles/rht-MOF-9.pdb
12 |
13 | free_volume 11595.4
14 |
15 | potential_form ljes ! no polar
16 | xyz_traj_option off
17 | sorbate_name h2_bssp
18 | !fugacity_single h2
19 |
20 | carbasis 27.934 27.934 41.081 90 90 90
21 |
22 | !radial_dist on
23 | !radial_centroid CuC CuL N1 HN
24 | !radial_counterpart H2G H2G H2G H2G
25 |
26 | ensemble uvt
27 | mc_corrtime 1
28 | finalstep 1
29 | temperature 77
30 | pressure 1.0
31 | insert_factor 0.667
32 | displace_factor 2.5
33 | rotate_angle_factor 360.0
34 |
35 | !feynman_hibbs on
36 | !fh_order 4
37 |
38 | !bias_uptake 2.6 wt% ! based on experiment for quicker equilibration
39 | !auto_reject_r 1.5 ! more speedup
40 |
41 |
42 | ! these are commands to build the unit cell to 8 times the original volume (2x2x2)
43 | crystalbuild on
44 | crystalbuild_x 2
45 | crystalbuild_y 2
46 | crystalbuild_z 2
47 |
48 | ! this will make up to 17*5 fragments. The program will exclude duplicates.
49 | makefrags 17
50 | atoms_per_frag 75 90 110 150 250
51 | frag_bondlength 1.9
52 |
--------------------------------------------------------------------------------
/examples/molecular_dynamics/external_force/mcmd.inp:
--------------------------------------------------------------------------------
1 | ! Douglas Franz, Space group, USF, 2017
2 | ! Molcular dynamics using external force
3 | ! The artificial external force is applied at each integration step
4 | ! to push the CO2 molecule through the tight MOF channel
5 |
6 |
7 | name sifsix14cui_co2_md_nvt
8 | mode md ! mc or md
9 | checkpoints_option off
10 |
11 |
12 | input_atoms input.pdb ! PDB ONLY
13 |
14 | potential_form ljes
15 | ewald_kmax 4
16 | com_option off ! center of mass
17 |
18 | basis1 25.77960000000000 0.00000000000000 0.00000000000000
19 | basis2 0.00000000000000 18.50600000000000 0.00000000000000
20 | basis3 -0.01483000000000 0.00000000000000 18.47629000000000
21 |
22 |
23 |
24 | ! radial distribution option
25 | radial_dist on ! turns on/off radial distribution function. off for speedup
26 | radial_bin_size 0.05 ! in A
27 | radial_max_dist 10.0 ! in A (maybe a good value is 1/2 box length)
28 | radial_centroid C2G C2G C2G O2E O2E ! element name
29 | radial_counterpart C2G CU SI CU SI ! element name to get distance of w/centroid
30 | radial_file radialdist.dat
31 |
32 | temperature 298.0
33 | ensemble nvt
34 | external_force 0.5 0 0 1 ! vector in nN, then frequency of the force (every 1 step)
35 |
36 | ! MOLECULAR DYNAMICS ONLY ===============================
37 | md_pbc on
38 | md_dt 0.2 ! fs
39 | md_ft 20 ns
40 | md_corrtime 1 ! steps
41 | md_mode molecular
42 | md_rotations on ! asdf
43 |
44 |
--------------------------------------------------------------------------------
/examples/molecular_dynamics/nve/mcmd.inp:
--------------------------------------------------------------------------------
1 | ! Douglas Franz, Space group, USF, 2017
2 | ! Molcular dynamics example with a non orthorhombic unit-cell periodic system
3 | ! NVE Neon atoms in MPM-1-Br MOF
4 | ! i.e. total energy should be conserved with minimal error
5 |
6 | name md_NVE_example
7 | mode md ! mc or md
8 | checkpoints_option off
9 |
10 | input_atoms ../../../atomfiles/MPM-1-Br+46Ne.pdb ! PDB ONLY
11 |
12 | potential_form lj
13 | com_option off ! center of mass
14 |
15 |
16 | basis1 27.19800 0.00000 0.00000
17 | basis2 -13.59900 23.55416 0.00000
18 | basis3 0.00000 0.00000 30.99800
19 |
20 |
21 | ! radial distribution option
22 | radial_dist on ! turns on/off radial distribution function. off for speedup
23 | radial_bin_size 0.05 ! in A
24 | radial_max_dist 10.0 ! in A (maybe a good value is 1/2 box length)
25 | radial_centroid Ne ! element name
26 | radial_counterpart Ne ! element name to get distance of w/centroid
27 | radial_file radialdist.dat
28 |
29 | ensemble nve
30 |
31 | ! MOLECULAR DYNAMICS ONLY ===============================
32 | md_pbc on
33 | md_dt 2 ! fs
34 | md_ft 200000 ! fs
35 | md_corrtime 1 ! steps
36 | md_init_vel 0 ! A / fs
37 | md_mode molecular
38 | md_rotations off ! important here, because the movable molecules are monatomic.
39 |
40 |
41 |
--------------------------------------------------------------------------------
/examples/molecular_dynamics/nvt/mcmd.inp:
--------------------------------------------------------------------------------
1 | ! Douglas Franz, Space group, USF, 2017
2 | ! Molcular dynamics example with a non orthorhombic unit-cell periodic system
3 | ! Neon atoms in MPM-1-Br MOF
4 | ! Similar to NVE example, except Nose-Hoover thermostat is applied for fixed T
5 |
6 |
7 | name md_NVT_example
8 | mode md ! mc or md
9 | checkpoints_option off
10 |
11 | input_atoms ../../../atomfiles/MPM-1-Br+46Ne.pdb ! PDB ONLY
12 |
13 | potential_form lj
14 | com_option off ! center of mass
15 |
16 |
17 | basis1 27.19800 0.00000 0.00000
18 | basis2 -13.59900 23.55416 0.00000
19 | basis3 0.00000 0.00000 30.99800
20 |
21 |
22 | ! radial distribution option
23 | radial_dist on ! turns on/off radial distribution function. off for speedup
24 | radial_bin_size 0.05 ! in A
25 | radial_max_dist 10.0 ! in A (maybe a good value is 1/2 box length)
26 | radial_centroid Ne ! element name
27 | radial_counterpart Ne ! element name to get distance of w/centroid
28 | radial_file radialdist.dat
29 |
30 | temperature 295.0
31 | ensemble nvt
32 | thermostat nose-hoover
33 |
34 | ! MOLECULAR DYNAMICS ONLY ===============================
35 | md_pbc on
36 | md_dt 2 ! fs
37 | md_ft 200000 ! fs
38 | md_corrtime 1 ! steps
39 | md_mode molecular
40 | md_rotations off ! important here, because the movable molecules are monatomic.
41 |
--------------------------------------------------------------------------------
/examples/molecular_dynamics/uvt/mcmd.inp:
--------------------------------------------------------------------------------
1 | ! Douglas Franz, Space group, USF, 2017
2 | ! Molcular dynamics example with a non orthorhombic unit-cell periodic system
3 | ! CO2+C2H2 in a SIFSIX MOF
4 | ! This is hybrid MC/MD. Molecular dynamics dictates the molecular motion in time
5 | ! but every "md_insert_frequency" timesteps, a Monte-Carlo insert/delete is attempted.
6 | ! May be very useful in tandem with external-force MD to produce an equilibrated,
7 | ! fully saturated porous-material+gas system.
8 | ! Andersen thermostat is recommended over Nose-Hoover for uVT MD.
9 |
10 | name md_uVT_example
11 | mode md ! mc or md
12 |
13 | input_atoms ../../../atomfiles/SIFSIX14Cui.pdb
14 |
15 | potential_form lj !!es
16 | com_option off ! center of mass
17 | xyz_traj_option on
18 | !!checkpoints on
19 | ewald_kmax 3
20 |
21 | basis1 25.77960000000000 0.00000000000000 0.00000000000000
22 | basis2 0.00000000000000 18.50600000000000 0.00000000000000
23 | basis3 -0.01483000000000 0.00000000000000 18.47629000000000
24 |
25 |
26 | temperature 250.0
27 | ensemble uvt
28 | thermostat andersen
29 |
30 |
31 | histogram off
32 |
33 | sorbate_name co2_phast c2h2
34 | user_fugacities 3 3
35 |
36 | ! MOLECULAR DYNAMICS ONLY ===============================
37 | md_pbc on
38 | md_dt 0.5 ! fs
39 | md_ft 2 ns
40 | md_corrtime 100 ! steps
41 | md_insert_frequency 5 ! every x steps, try insert/delete MC style
42 | md_mode molecular
43 | md_rotations on
44 |
45 |
46 |
--------------------------------------------------------------------------------
/examples/molecular_dynamics/manual_init_vel/mcmd.inp:
--------------------------------------------------------------------------------
1 | ! Douglas Franz, Space group, USF, 2017
2 | ! Molcular dynamics example with a non orthorhombic unit-cell periodic system
3 | ! Neon atoms in MPM-1-Br MOF
4 | ! Initial velocities defined by user (in A/fs)
5 | ! Same as NVT except velocity setting
6 | ! ***NOTE: The thermostat will be overidden by
7 | ! "md_init_vel" (instead of "temperature") if "nose-hoover" is chosen
8 |
9 | name md_NVT_example
10 | mode md ! mc or md
11 | checkpoints_option off
12 |
13 | input_atoms ../../../atomfiles/MPM-1-Br+46Ne.pdb ! PDB ONLY
14 |
15 | potential_form lj
16 | com_option off ! center of mass
17 |
18 |
19 | basis1 27.19800 0.00000 0.00000
20 | basis2 -13.59900 23.55416 0.00000
21 | basis3 0.00000 0.00000 30.99800
22 |
23 |
24 | ! radial distribution option
25 | radial_dist on ! turns on/off radial distribution function. off for speedup
26 | radial_bin_size 0.05 ! in A
27 | radial_max_dist 10.0 ! in A (maybe a good value is 1/2 box length)
28 | radial_centroid Ne ! element name
29 | radial_counterpart Ne ! element name to get distance of w/centroid
30 | radial_file radialdist.dat
31 |
32 | temperature 295.0
33 | ensemble nvt
34 | thermostat andersen
35 |
36 | ! MOLECULAR DYNAMICS ONLY ===============================
37 | md_pbc on
38 | md_dt 2 ! fs
39 | md_ft 200000 ! fs
40 | md_corrtime 1 ! steps
41 | md_mode molecular
42 | md_rotations off ! important here, because the movable molecules are monatomic.
43 | md_init_vel 0.003 ! A/fs
44 |
--------------------------------------------------------------------------------
/src/rotatepoint.cpp:
--------------------------------------------------------------------------------
1 | #include
2 | #include
3 | #include
4 | #define _USE_MATH_DEFINES
5 | #include
6 | #include