Skip to content

Commit 825c03f

Browse files
author
Douglas Franz
committed
add polarizability for K, Rb. Add alkali metal ions as sorbate inputs.
1 parent e222d20 commit 825c03f

File tree

2 files changed

+32
-0
lines changed

2 files changed

+32
-0
lines changed

src/classes.cpp

+2
Original file line numberDiff line numberDiff line change
@@ -1506,6 +1506,8 @@ Constants::Constants() {
15061506
polars["OW"] = 0.852;//*cV/ke; // O in water (my model)
15071507
polars["O_sp3"] = polars["O_sp2"] = 0.852; // O SAPT
15081508
polars["Na"] = 24.11;//*cV/ke; // from paper https://www.researchgate.net/publication/45896756_Absolute_and_ratio_measurements_of_the_polarizability_of_Na_K_and_Rb_with_an_atom_interferometer
1509+
polars["Rb"] = 47.24; // https://www.researchgate.net/publication/45896756_Absolute_and_ratio_measurements_of_the_polarizability_of_Na_K_and_Rb_with_an_atom_interferometer
1510+
polars["K"] = 43.06; // https://www.researchgate.net/publication/45896756_Absolute_and_ratio_measurements_of_the_polarizability_of_Na_K_and_Rb_with_an_atom_interferometer
15091511
polars["P"] = 3.35;//*cV/ke;
15101512
polars["SS"] = 2.474; // S SAPT
15111513
polars["Cl"] = 2.40028;//*cV/ke;

src/system_functions.cpp

+30
Original file line numberDiff line numberDiff line change
@@ -389,6 +389,8 @@ void moleculePrintout(System &system) {
389389

390390
// each call to addAtomToProto takes 12 arguments which correspond to PDB-style input
391391
// proto id, atom name, molecule name, x, y, z, m, q, a, eps, sig
392+
// For details on the column order and units, see https://github.com/khavernathy/mcmd/wiki/Atoms-Input-formats
393+
392394
// HYDROGEN H2
393395
if (sorbmodel == "h2_buch") {
394396
addAtomToProto(system, i, "H2G", "H2", "M", 0.0, 0.0, 0.0, 2.016, 0.0, 0.0, 34.2, 2.96);
@@ -452,6 +454,34 @@ void moleculePrintout(System &system) {
452454
system.proto[i].name = "Xe";
453455
system.proto[i].dof = 3;
454456
}
457+
458+
// ALKALI METAL IONS (for use when trying to determine location of guest ions in a MOF, for example.)
459+
// When you use these models with electrostatic simulation you need to be careful to make sure the total charge of the system is zero.
460+
else if (sorbmodel == "li_ion") {
461+
addAtomToProto(system, i, "Li", "Li", "M", 0, 0, 0, system.constants.masses["Li"], 1.0, system.constants.polars["Li"],
462+
system.constants.eps["Li"], system.constants.sigs["Li"]);
463+
system.proto[i].name = "Li";
464+
system.proto[i].dof = 3;
465+
}
466+
else if (sorbmodel == "na_ion") {
467+
addAtomToProto(system, i, "Na", "Na", "M", 0, 0, 0, system.constants.masses["Na"], 1.0, system.constants.polars["Na"],
468+
system.constants.eps["Na"], system.constants.sigs["Na"]);
469+
system.proto[i].name = "Na";
470+
system.proto[i].dof = 3;
471+
}
472+
else if (sorbmodel == "k_ion") {
473+
addAtomToProto(system, i, "K", "K", "M", 0, 0, 0, system.constants.masses["K"], 1.0, system.constants.polars["K"],
474+
system.constants.eps["K"], system.constants.sigs["K"]);
475+
system.proto[i].name = "K";
476+
system.proto[i].dof = 3;
477+
}
478+
else if (sorbmodel == "rb_ion") {
479+
addAtomToProto(system, i, "Rb", "Rb", "M", 0, 0, 0, system.constants.masses["Rb"], 1.0, system.constants.polars["Rb"],
480+
system.constants.eps["Rb"], system.constants.sigs["Rb"]);
481+
system.proto[i].name = "Rb";
482+
system.proto[i].dof = 3;
483+
}
484+
455485
// CARBON DIOXIDE CO2
456486
else if (sorbmodel == "co2_phast") {
457487
addAtomToProto(system, i,"COG", "CO2", "M", 0.0, 0.0, 0.0, 12.0107, 0.77106, 0.0, 8.52238, 3.05549);

0 commit comments

Comments
 (0)