From: Toshi Nagata Date: Sun, 7 Nov 2021 14:32:41 +0000 (+0900) Subject: UFF bond length and angle parameters are now automatically set. (octahedral and squar... X-Git-Tag: v1.0.2~3 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=ddaf6f5e66ed3d93d9c0ef4f1d5364a14e2981a4;p=molby%2FMolby.git UFF bond length and angle parameters are now automatically set. (octahedral and square planar geometries are also taken account.) --- diff --git a/Scripts/uff.rb b/Scripts/uff.rb index 187759a..5f19c85 100644 --- a/Scripts/uff.rb +++ b/Scripts/uff.rb @@ -6,7 +6,7 @@ class Molby::Molecule # http://rdkit.svn.sourceforge.net/viewvc/rdkit/trunk/Code/ForceField/UFF/Params.cpp?revision=2044&view=markup # Accessed on 2012.5.8. # -# Atom an r1 theta0 x1 D1 zeta Z1 Vi Uj Xi Hard Radius Description +# Atom an r1 theta0 x1 D1 zeta Z1 Vi Uj Xi Hard Radius Description GeometryFlag ("oc" or "sq") UFFParams = [ ["H_", 1, 0.354, 180, 2.886, 0.044, 12, 0.712, 0, 0, 4.528, 6.9452, 0.371, "H generic"], ["H_b", 1, 0.46, 83.5, 2.886, 0.044, 12, 0.712, 0, 0, 4.528, 6.9452, 0.371, "H bridging B-H-B"], @@ -48,14 +48,14 @@ UFFParams = [ ["Ca6+2", 20, 1.761, 90, 3.399, 0.238, 12, 2.141, 0, 0.7, 3.231, 2.88, 2, "Ca2+ octahedral"], ["Sc3+3", 21, 1.513, 109.47, 3.295, 0.019, 12, 2.592, 0, 0.7, 3.395, 3.08, 1.75, "Sc3+ tetrahedral"], ["Ti3+4", 22, 1.412, 109.47, 3.175, 0.017, 12, 2.659, 0, 0.7, 3.47, 3.38, 1.607, "Ti4+ tetrahedral"], -["Ti6+4", 22, 1.412, 90, 3.175, 0.017, 12, 2.659, 0, 0.7, 3.47, 3.38, 1.607, "Ti6+ octahedral"], +["Ti6+4", 22, 1.412, 90, 3.175, 0.017, 12, 2.659, 0, 0.7, 3.47, 3.38, 1.607, "Ti6+ octahedral", "oc"], ["V_3+5", 23, 1.402, 109.47, 3.144, 0.016, 12, 2.679, 0, 0.7, 3.65, 3.41, 1.47, "V5+ tetrahedral"], -["Cr6+3", 24, 1.345, 90, 3.023, 0.015, 12, 2.463, 0, 0.7, 3.415, 3.865, 1.402, "Cr3+ octahedral"], -["Mn6+2", 25, 1.382, 90, 2.961, 0.013, 12, 2.43, 0, 0.7, 3.325, 4.105, 1.533, "Mn2+ octahedral"], +["Cr6+3", 24, 1.345, 90, 3.023, 0.015, 12, 2.463, 0, 0.7, 3.415, 3.865, 1.402, "Cr3+ octahedral", "oc"], +["Mn6+2", 25, 1.382, 90, 2.961, 0.013, 12, 2.43, 0, 0.7, 3.325, 4.105, 1.533, "Mn2+ octahedral", "oc"], ["Fe3+2", 26, 1.27, 109.47, 2.912, 0.013, 12, 2.43, 0, 0.7, 3.76, 4.14, 1.393, "Fe2+ tetrahedral"], -["Fe6+2", 26, 1.335, 90, 2.912, 0.013, 12, 2.43, 0, 0.7, 3.76, 4.14, 1.393, "Fe2+ octahedral"], -["Co6+3", 27, 1.241, 90, 2.872, 0.014, 12, 2.43, 0, 0.7, 4.105, 4.175, 1.406, "Co3+ octahedral"], -["Ni4+2", 28, 1.164, 90, 2.834, 0.015, 12, 2.43, 0, 0.7, 4.465, 4.205, 1.398, "Ni2+ square planar"], +["Fe6+2", 26, 1.335, 90, 2.912, 0.013, 12, 2.43, 0, 0.7, 3.76, 4.14, 1.393, "Fe2+ octahedral", "oc"], +["Co6+3", 27, 1.241, 90, 2.872, 0.014, 12, 2.43, 0, 0.7, 4.105, 4.175, 1.406, "Co3+ octahedral", "oc"], +["Ni4+2", 28, 1.164, 90, 2.834, 0.015, 12, 2.43, 0, 0.7, 4.465, 4.205, 1.398, "Ni2+ square planar", "sq"], ["Cu3+1", 29, 1.302, 109.47, 3.495, 0.005, 12, 1.756, 0, 0.7, 4.2, 4.22, 1.434, "Cu+ tetrahedral"], ["Zn3+2", 30, 1.193, 109.47, 2.763, 0.124, 12, 1.308, 0, 0.7, 5.106, 4.285, 1.4, "Zn2+ tetrahedral"], ["Ga3+3", 31, 1.26, 109.47, 4.383, 0.415, 11, 1.821, 0, 0.7, 3.641, 3.16, 1.211, "Ga3+ tetrahedral"], @@ -65,16 +65,16 @@ UFFParams = [ ["Br", 35, 1.192, 180, 4.189, 0.251, 15, 2.519, 0, 0.7, 7.79, 4.425, 1.141, "Br"], ["Kr4+4", 36, 1.147, 90, 4.141, 0.22, 16, 0.452, 0, 0.7, 8.505, 5.715, 2.27, "Kr"], ["Rb", 37, 2.26, 180, 4.114, 0.04, 12, 1.592, 0, 0.2, 2.331, 1.846, 2.77, "Rb"], -["Sr6+2", 38, 2.052, 90, 3.641, 0.235, 12, 2.449, 0, 0.2, 3.024, 2.44, 2.415, "Sr2+ octahedral"], +["Sr6+2", 38, 2.052, 90, 3.641, 0.235, 12, 2.449, 0, 0.2, 3.024, 2.44, 2.415, "Sr2+ octahedral", "oc"], ["Y_3+3", 39, 1.698, 109.47, 3.345, 0.072, 12, 3.257, 0, 0.2, 3.83, 2.81, 1.998, "Y3+ tetrahedral"], ["Zr3+4", 40, 1.564, 109.47, 3.124, 0.069, 12, 3.667, 0, 0.2, 3.4, 3.55, 1.758, "Zr4+ tetrahedral"], ["Nb3+5", 41, 1.473, 109.47, 3.165, 0.059, 12, 3.618, 0, 0.2, 3.55, 3.38, 1.603, "Nb5+ tetrahedral"], -["Mo6+6", 42, 1.467, 90, 3.052, 0.056, 12, 3.4, 0, 0.2, 3.465, 3.755, 1.53, "Mo6+ octahedral"], +["Mo6+6", 42, 1.467, 90, 3.052, 0.056, 12, 3.4, 0, 0.2, 3.465, 3.755, 1.53, "Mo6+ octahedral", "oc"], ["Mo3+6", 42, 1.484, 109.47, 3.052, 0.056, 12, 3.4, 0, 0.2, 3.465, 3.755, 1.53, "Mo6+ tetrahedral"], -["Tc6+5", 43, 1.322, 90, 2.998, 0.048, 12, 3.4, 0, 0.2, 3.29, 3.99, 1.5, "Tc5+ octahedral"], -["Ru6+2", 44, 1.478, 90, 2.963, 0.056, 12, 3.4, 0, 0.2, 3.575, 4.015, 1.5, "Ru2+ octahedral"], -["Rh6+3", 45, 1.332, 90, 2.929, 0.053, 12, 3.5, 0, 0.2, 3.975, 4.005, 1.509, "Rh3+ octahedral"], -["Pd4+2", 46, 1.338, 90, 2.899, 0.048, 12, 3.21, 0, 0.2, 4.32, 4, 1.544, "Pd2+ square planar"], +["Tc6+5", 43, 1.322, 90, 2.998, 0.048, 12, 3.4, 0, 0.2, 3.29, 3.99, 1.5, "Tc5+ octahedral", "oc"], +["Ru6+2", 44, 1.478, 90, 2.963, 0.056, 12, 3.4, 0, 0.2, 3.575, 4.015, 1.5, "Ru2+ octahedral", "oc"], +["Rh6+3", 45, 1.332, 90, 2.929, 0.053, 12, 3.5, 0, 0.2, 3.975, 4.005, 1.509, "Rh3+ octahedral", "oc"], +["Pd4+2", 46, 1.338, 90, 2.899, 0.048, 12, 3.21, 0, 0.2, 4.32, 4, 1.544, "Pd2+ square planar", "sq"], ["Ag1+1", 47, 1.386, 180, 3.148, 0.036, 12, 1.956, 0, 0.2, 4.436, 3.134, 1.622, "Ag+ linear"], ["Cd3+2", 48, 1.403, 109.47, 2.848, 0.228, 12, 1.65, 0, 0.2, 5.034, 3.957, 1.6, "Cd2+ tetrahedral"], ["In3+3", 49, 1.459, 109.47, 4.463, 0.599, 11, 2.07, 0, 0.2, 3.506, 2.896, 1.404, "In3+ tetrahedral"], @@ -84,32 +84,32 @@ UFFParams = [ ["I_", 53, 1.382, 180, 4.5, 0.339, 15, 2.65, 0, 0.2, 6.822, 3.762, 1.333, "I"], ["Xe4+4", 54, 1.267, 90, 4.404, 0.332, 12, 0.556, 0, 0.2, 7.595, 4.975, 2.459, "Xe"], ["Cs", 55, 2.57, 180, 4.517, 0.045, 12, 1.573, 0, 0.1, 2.183, 1.711, 2.984, "Cs"], -["Ba6+2", 56, 2.277, 90, 3.703, 0.364, 12, 2.727, 0, 0.1, 2.814, 2.396, 2.442, "Ba2+ octahedral"], +["Ba6+2", 56, 2.277, 90, 3.703, 0.364, 12, 2.727, 0, 0.1, 2.814, 2.396, 2.442, "Ba2+ octahedral", "oc"], ["La3+3", 57, 1.943, 109.47, 3.522, 0.017, 12, 3.3, 0, 0.1, 2.8355, 2.7415, 2.071, "La3+ tetrahedral"], -["Ce6+3", 58, 1.841, 90, 3.556, 0.013, 12, 3.3, 0, 0.1, 2.774, 2.692, 1.925, "Ce3+ octahedral"], -["Pr6+3", 59, 1.823, 90, 3.606, 0.01, 12, 3.3, 0, 0.1, 2.858, 2.564, 2.007, "Pr3+ octahedral"], -["Nd6+3", 60, 1.816, 90, 3.575, 0.01, 12, 3.3, 0, 0.1, 2.8685, 2.6205, 2.007, "Nd3+ octahedral"], -["Pm6+3", 61, 1.801, 90, 3.547, 0.009, 12, 3.3, 0, 0.1, 2.881, 2.673, 2, "Pm3+ octahedral"], -["Sm6+3", 62, 1.78, 90, 3.52, 0.008, 12, 3.3, 0, 0.1, 2.9115, 2.7195, 1.978, "Sm3+ octahedral"], -["Eu6+3", 63, 1.771, 90, 3.493, 0.008, 12, 3.3, 0, 0.1, 2.8785, 2.7875, 2.227, "Eu3+ octahedral"], -["Gd6+3", 64, 1.735, 90, 3.368, 0.009, 12, 3.3, 0, 0.1, 3.1665, 2.9745, 1.968, "Gd3+ octahedral"], -["Tb6+3", 65, 1.732, 90, 3.451, 0.007, 12, 3.3, 0, 0.1, 3.018, 2.834, 1.954, "Tb3+ octahedral"], -["Dy6+3", 66, 1.71, 90, 3.428, 0.007, 12, 3.3, 0, 0.1, 3.0555, 2.8715, 1.934, "Dy3+ octahedral"], -["Ho6+3", 67, 1.696, 90, 3.409, 0.007, 12, 3.416, 0, 0.1, 3.127, 2.891, 1.925, "Ho3+ octahedral"], -["Er6+3", 68, 1.673, 90, 3.391, 0.007, 12, 3.3, 0, 0.1, 3.1865, 2.9145, 1.915, "Er3+ octahedral"], -["Tm6+3", 69, 1.66, 90, 3.374, 0.006, 12, 3.3, 0, 0.1, 3.2514, 2.9329, 2, "Tm3+ octahedral"], -["Yb6+3", 70, 1.637, 90, 3.355, 0.228, 12, 2.618, 0, 0.1, 3.2889, 2.965, 2.158, "Yb3+ octahedral"], -["Lu6+3", 71, 1.671, 90, 3.64, 0.041, 12, 3.271, 0, 0.1, 2.9629, 2.4629, 1.896, "Lu3+ octahedral"], +["Ce6+3", 58, 1.841, 90, 3.556, 0.013, 12, 3.3, 0, 0.1, 2.774, 2.692, 1.925, "Ce3+ octahedral", "oc"], +["Pr6+3", 59, 1.823, 90, 3.606, 0.01, 12, 3.3, 0, 0.1, 2.858, 2.564, 2.007, "Pr3+ octahedral", "oc"], +["Nd6+3", 60, 1.816, 90, 3.575, 0.01, 12, 3.3, 0, 0.1, 2.8685, 2.6205, 2.007, "Nd3+ octahedral", "oc"], +["Pm6+3", 61, 1.801, 90, 3.547, 0.009, 12, 3.3, 0, 0.1, 2.881, 2.673, 2, "Pm3+ octahedral", "oc"], +["Sm6+3", 62, 1.78, 90, 3.52, 0.008, 12, 3.3, 0, 0.1, 2.9115, 2.7195, 1.978, "Sm3+ octahedral", "oc"], +["Eu6+3", 63, 1.771, 90, 3.493, 0.008, 12, 3.3, 0, 0.1, 2.8785, 2.7875, 2.227, "Eu3+ octahedral", "oc"], +["Gd6+3", 64, 1.735, 90, 3.368, 0.009, 12, 3.3, 0, 0.1, 3.1665, 2.9745, 1.968, "Gd3+ octahedral", "oc"], +["Tb6+3", 65, 1.732, 90, 3.451, 0.007, 12, 3.3, 0, 0.1, 3.018, 2.834, 1.954, "Tb3+ octahedral", "oc"], +["Dy6+3", 66, 1.71, 90, 3.428, 0.007, 12, 3.3, 0, 0.1, 3.0555, 2.8715, 1.934, "Dy3+ octahedral", "oc"], +["Ho6+3", 67, 1.696, 90, 3.409, 0.007, 12, 3.416, 0, 0.1, 3.127, 2.891, 1.925, "Ho3+ octahedral", "oc"], +["Er6+3", 68, 1.673, 90, 3.391, 0.007, 12, 3.3, 0, 0.1, 3.1865, 2.9145, 1.915, "Er3+ octahedral", "oc"], +["Tm6+3", 69, 1.66, 90, 3.374, 0.006, 12, 3.3, 0, 0.1, 3.2514, 2.9329, 2, "Tm3+ octahedral", "oc"], +["Yb6+3", 70, 1.637, 90, 3.355, 0.228, 12, 2.618, 0, 0.1, 3.2889, 2.965, 2.158, "Yb3+ octahedral", "oc"], +["Lu6+3", 71, 1.671, 90, 3.64, 0.041, 12, 3.271, 0, 0.1, 2.9629, 2.4629, 1.896, "Lu3+ octahedral", "oc"], ["Hf3+4", 72, 1.611, 109.47, 3.141, 0.072, 12, 3.921, 0, 0.1, 3.7, 3.4, 1.759, "Hf4+ tetrahedral"], ["Ta3+5", 73, 1.511, 109.47, 3.17, 0.081, 12, 4.075, 0, 0.1, 5.1, 2.85, 1.605, "Ta5+ tetrahedral"], -["W_6+6", 74, 1.392, 90, 3.069, 0.067, 12, 3.7, 0, 0.1, 4.63, 3.31, 1.538, "W6+ octahedral"], +["W_6+6", 74, 1.392, 90, 3.069, 0.067, 12, 3.7, 0, 0.1, 4.63, 3.31, 1.538, "W6+ octahedral", "oc"], ["W_3+4", 74, 1.526, 109.47, 3.069, 0.067, 12, 3.7, 0, 0.1, 4.63, 3.31, 1.538, "W4+ tetrahedral"], ["W_3+6", 74, 1.38, 109.47, 3.069, 0.067, 12, 3.7, 0, 0.1, 4.63, 3.31, 1.538, "W6+ tetrahedral"], -["Re6+5", 75, 1.372, 90, 2.954, 0.066, 12, 3.7, 0, 0.1, 3.96, 3.92, 1.6, "Re5+ octahedral"], +["Re6+5", 75, 1.372, 90, 2.954, 0.066, 12, 3.7, 0, 0.1, 3.96, 3.92, 1.6, "Re5+ octahedral", "oc"], ["Re3+7", 75, 1.314, 109.47, 2.954, 0.066, 12, 3.7, 0, 0.1, 3.96, 3.92, 1.6, "Re7+ tetrahedral"], -["Os6+6", 76, 1.372, 90, 3.12, 0.037, 12, 3.7, 0, 0.1, 5.14, 3.63, 1.7, "Os6+ octahedral"], -["Ir6+3", 77, 1.371, 90, 2.84, 0.073, 12, 3.731, 0, 0.1, 5, 4, 1.866, "Ir3+ octahedral"], -["Pt4+2", 78, 1.364, 90, 2.754, 0.08, 12, 3.382, 0, 0.1, 4.79, 4.43, 1.557, "Pt2+ square planar"], +["Os6+6", 76, 1.372, 90, 3.12, 0.037, 12, 3.7, 0, 0.1, 5.14, 3.63, 1.7, "Os6+ octahedral", "oc"], +["Ir6+3", 77, 1.371, 90, 2.84, 0.073, 12, 3.731, 0, 0.1, 5, 4, 1.866, "Ir3+ octahedral", "oc"], +["Pt4+2", 78, 1.364, 90, 2.754, 0.08, 12, 3.382, 0, 0.1, 4.79, 4.43, 1.557, "Pt2+ square planar", "sq"], ["Au4+3", 79, 1.262, 90, 3.293, 0.039, 12, 2.625, 0, 0.1, 4.894, 2.586, 1.618, "Au3+ tetrahedral"], ["Hg1+2", 80, 1.34, 180, 2.705, 0.385, 12, 1.75, 0, 0.1, 6.27, 4.16, 1.6, "Hg2+ linear"], ["Tl3+3", 81, 1.518, 120, 4.347, 0.68, 11, 2.068, 0, 0.1, 3.2, 2.9, 1.53, "Tl3+ tetrahedral"], @@ -119,22 +119,22 @@ UFFParams = [ ["At", 85, 1.545, 180, 4.75, 0.284, 15, 2.24, 0, 0.1, 4.75, 4.75, 1.47, "At"], ["Rn4+4", 86, 1.42, 90, 4.765, 0.248, 16, 0.583, 0, 0.1, 5.37, 5.37, 2.2, "Rn"], ["Fr", 87, 2.88, 180, 4.9, 0.05, 12, 1.847, 0, 0, 2, 2, 2.3, "Fr"], -["Ra6+2", 88, 2.512, 90, 3.677, 0.404, 12, 2.92, 0, 0, 2.843, 2.434, 2.2, "Ra2+ octahedral"], -["Ac6+3", 89, 1.983, 90, 3.478, 0.033, 12, 3.9, 0, 0, 2.835, 2.835, 2.108, "Ac3+ octahedral"], -["Th6+4", 90, 1.721, 90, 3.396, 0.026, 12, 4.202, 0, 0, 3.175, 2.905, 2.018, "Th4+ octahedral"], -["Pa6+4", 91, 1.711, 90, 3.424, 0.022, 12, 3.9, 0, 0, 2.985, 2.905, 1.8, "Pa4+ octahedral"], -["U_6+4", 92, 1.684, 90, 3.395, 0.022, 12, 3.9, 0, 0, 3.341, 2.853, 1.713, "U4+ octahedral"], -["Np6+4", 93, 1.666, 90, 3.424, 0.019, 12, 3.9, 0, 0, 3.549, 2.717, 1.8, "Np4+ octahedral"], -["Pu6+4", 94, 1.657, 90, 3.424, 0.016, 12, 3.9, 0, 0, 3.243, 2.819, 1.84, "Pu4+ octahedral"], -["Am6+4", 95, 1.66, 90, 3.381, 0.014, 12, 3.9, 0, 0, 2.9895, 3.0035, 1.942, "Am4+ octahedral"], -["Cm6+3", 96, 1.801, 90, 3.326, 0.013, 12, 3.9, 0, 0, 2.8315, 3.1895, 1.9, "Cm3+ octahedral"], -["Bk6+3", 97, 1.761, 90, 3.339, 0.013, 12, 3.9, 0, 0, 3.1935, 3.0355, 1.9, "Bk3+ octahedral"], -["Cf6+3", 98, 1.75, 90, 3.313, 0.013, 12, 3.9, 0, 0, 3.197, 3.101, 1.9, "Cf3+ octahedral"], -["Es6+3", 99, 1.724, 90, 3.299, 0.012, 12, 3.9, 0, 0, 3.333, 3.089, 1.9, "Es3+ octahedral"], -["Fm6+3", 100, 1.712, 90, 3.286, 0.012, 12, 3.9, 0, 0, 3.4, 3.1, 1.9, "Fm3+ octahedral"], -["Md6+3", 101, 1.689, 90, 3.274, 0.011, 12, 3.9, 0, 0, 3.47, 3.11, 1.9, "Md3+ octahedral"], -["No6+3", 102, 1.679, 90, 3.248, 0.011, 12, 3.9, 0, 0, 3.475, 3.175, 1.9, "No3+ octahedral"], -["Lw6+3", 103, 1.698, 90, 3.236, 0.011, 12, 3.9, 0, 0, 3.5, 3.2, 1.9, "Lr3+ octahedral"] +["Ra6+2", 88, 2.512, 90, 3.677, 0.404, 12, 2.92, 0, 0, 2.843, 2.434, 2.2, "Ra2+ octahedral", "oc"], +["Ac6+3", 89, 1.983, 90, 3.478, 0.033, 12, 3.9, 0, 0, 2.835, 2.835, 2.108, "Ac3+ octahedral", "oc"], +["Th6+4", 90, 1.721, 90, 3.396, 0.026, 12, 4.202, 0, 0, 3.175, 2.905, 2.018, "Th4+ octahedral", "oc"], +["Pa6+4", 91, 1.711, 90, 3.424, 0.022, 12, 3.9, 0, 0, 2.985, 2.905, 1.8, "Pa4+ octahedral", "oc"], +["U_6+4", 92, 1.684, 90, 3.395, 0.022, 12, 3.9, 0, 0, 3.341, 2.853, 1.713, "U4+ octahedral", "oc"], +["Np6+4", 93, 1.666, 90, 3.424, 0.019, 12, 3.9, 0, 0, 3.549, 2.717, 1.8, "Np4+ octahedral", "oc"], +["Pu6+4", 94, 1.657, 90, 3.424, 0.016, 12, 3.9, 0, 0, 3.243, 2.819, 1.84, "Pu4+ octahedral", "oc"], +["Am6+4", 95, 1.66, 90, 3.381, 0.014, 12, 3.9, 0, 0, 2.9895, 3.0035, 1.942, "Am4+ octahedral", "oc"], +["Cm6+3", 96, 1.801, 90, 3.326, 0.013, 12, 3.9, 0, 0, 2.8315, 3.1895, 1.9, "Cm3+ octahedral", "oc"], +["Bk6+3", 97, 1.761, 90, 3.339, 0.013, 12, 3.9, 0, 0, 3.1935, 3.0355, 1.9, "Bk3+ octahedral", "oc"], +["Cf6+3", 98, 1.75, 90, 3.313, 0.013, 12, 3.9, 0, 0, 3.197, 3.101, 1.9, "Cf3+ octahedral", "oc"], +["Es6+3", 99, 1.724, 90, 3.299, 0.012, 12, 3.9, 0, 0, 3.333, 3.089, 1.9, "Es3+ octahedral", "oc"], +["Fm6+3", 100, 1.712, 90, 3.286, 0.012, 12, 3.9, 0, 0, 3.4, 3.1, 1.9, "Fm3+ octahedral", "oc"], +["Md6+3", 101, 1.689, 90, 3.274, 0.011, 12, 3.9, 0, 0, 3.47, 3.11, 1.9, "Md3+ octahedral", "oc"], +["No6+3", 102, 1.679, 90, 3.248, 0.011, 12, 3.9, 0, 0, 3.475, 3.175, 1.9, "No3+ octahedral", "oc"], +["Lw6+3", 103, 1.698, 90, 3.236, 0.011, 12, 3.9, 0, 0, 3.5, 3.2, 1.9, "Lr3+ octahedral", "oc"] ] # Calculate UFF bond length @@ -875,8 +875,10 @@ def guess_uff_parameters end if pref.source != false && pref.r0 > 0.0 len = pref.r0 - else - len = mol.calc_bond(b[0], b[1]) + elsif is[0] >= 0 && is[1] >= 0 + len = mol.uff_bond_length(UFFParams[is[0]][2], UFFParams[is[1]][2], UFFParams[is[0]][10], UFFParams[is[1]][10], bo) + else + len = mol.calc_bond(b[0], b[1]) end if is[0] == -1 && is[1] == -1 # Bond between anchors: no force @@ -950,7 +952,19 @@ def guess_uff_parameters } if pref.source != false && pref.a0 > 0.0 ang = pref.a0 - else + elsif is[0] >= 0 && is[1] >= 0 && is[2] >= 0 + ang = UFFParams[is[1]][3] + if UFFParams[is[1]][14] == "oc" || UFFParams[is[1]][14] == "sq" + # Octahedral or square planar: we need to account for the actual geometry + # If the present angle is larger than 135 deg, then we set 180 deg + ang = mol.calc_angle(a[0], a[1], a[2]) + if ang >= 135.0 + ang = 180.0 + else + ang = 90.0 + end + end + else ang = mol.calc_angle(a[0], a[1], a[2]) end met = [aps[0].atomic_number, aps[1].atomic_number, aps[2].atomic_number].max