Commit 7eb5a10f authored by Peter Eastman's avatar Peter Eastman
Browse files

Merge branch 'amoeba' of https://github.com/peastman/openmm into peastman-amoeba

parents cafd3d74 918af983
......@@ -660,7 +660,9 @@ amber99sbildn.xml AMBER99SB plus improved side chain torsions\ :cite:`Lindorff-
amber99sbnmr.xml AMBER99SB with modifications to fit NMR data\ :cite:`Li2010`
amber03.xml AMBER03\ :cite:`Duan2003`
amber10.xml AMBER10
amoeba2009.xml AMOEBA\ :cite:`Ren2002`
amoeba2009.xml AMOEBA 2009\ :cite:`Ren2002`. This force field is deprecated. It is
recommended to use AMOEBA 2013 instead.
amoeba2013.xml AMOEBA 2013\ :cite:`Shi2013`
================= ================================================================================
......@@ -692,15 +694,16 @@ the following files:
.. tabularcolumns:: |l|L|
================= ==============================================================================================
================= =================================================================================================
File Implicit Solvation Model
================= ==============================================================================================
================= =================================================================================================
amber96_obc.xml GBSA-OBC solvation model\ :cite:`Onufriev2004` for use with AMBER96 force field
amber99_obc.xml GBSA-OBC solvation model for use with AMBER99 force fields
amber03_obc.xml GBSA-OBC solvation model for use with AMBER03 force field
amber10_obc.xml GBSA-OBC solvation model for use with AMBER10 force field
amoeba2009_gk.xml Generalized Kirkwood solvation model\ :cite:`Schnieders2007` for use with AMOEBA force field
================= ==============================================================================================
amoeba2009_gk.xml Generalized Kirkwood solvation model\ :cite:`Schnieders2007` for use with AMOEBA 2009 force field
amoeba2013_gk.xml Generalized Kirkwood solvation model for use with AMOEBA 2013 force field
================= =================================================================================================
For example, to use the GBSA-OBC solvation model with the Amber99SB force field,
......
......@@ -336,10 +336,20 @@
type = {Journal Article}
}
@article{Shi2013
author = {Shi, Yue and Xia, Zhen and Zhang, Jiajing and Best, Robert and Wu, Chuanjie and Ponder, Jay W. and Ren, Pengyu},
title = {Polarizable Atomic Multipole-Based AMOEBA Force Field for Proteins},
journal = {Journal of Chemical Theory and Computation},
volume = {9},
number = {9},
pages = {4046-4063},
year = {2013},
type = {Journal Article}
}
@article{Shirts2007
author = {Shirts, Michael R. and Mobley, David L. and Chodera, John D. and Pande, Vijay S.},
title = {Accurate and Efficient Corrections for Missing Dispersion Interactions in Molecular
Simulations},
title = {Accurate and Efficient Corrections for Missing Dispersion Interactions in Molecular Simulations},
journal = {Journal of Physical Chemistry B},
volume = {111},
pages = {13052-13063},
......
......@@ -126,13 +126,15 @@ public:
* Set the torsion-torsion grid at the specified index
*
* @param index the index of the torsion-torsion for which to get parameters
* @param grid grid
* @param grid either 3 or 6 values may be specified per grid point. If the derivatives
* are omitted, they are calculated automatically by fitting a 2D spline to
* the energies.
* grid[x][y][0] = x value
* grid[x][y][1] = y value
* grid[x][y][2] = function value
* grid[x][y][3] = dfdx value
* grid[x][y][4] = dfdy value
* grid[x][y][5] = dfd(xy) value
* grid[x][y][2] = energy
* grid[x][y][3] = dEdx value
* grid[x][y][4] = dEdy value
* grid[x][y][5] = dEd(xy) value
*/
void setTorsionTorsionGrid(int index, const std::vector<std::vector<std::vector<double> > >& grid);
......@@ -181,29 +183,7 @@ public:
_spacing[0] = _spacing[1] = 1.0;
}
TorsionTorsionGridInfo(const TorsionTorsionGrid& grid) {
_grid.resize(grid.size());
for(unsigned int kk = 0; kk < grid.size(); kk++){
_grid[kk].resize(grid[kk].size());
for(unsigned int jj = 0; jj < grid[kk].size(); jj++){
_grid[kk][jj].resize(grid[kk][jj].size());
for(unsigned int ii = 0; ii < grid[kk][jj].size(); ii++){
_grid[kk][jj][ii] = grid[kk][jj][ii];
}
}
}
_startValues[0] = _grid[0][0][0];
_startValues[1] = _grid[0][0][1];
_spacing[0] = static_cast<double>(_grid.size()-1)/360.0;
_spacing[1] = static_cast<double>(grid.size()-1)/360.0;
_size[0] = static_cast<int>(grid.size());
_size[1] = static_cast<int>(grid[0].size());
}
TorsionTorsionGridInfo(const TorsionTorsionGrid& grid);
const TorsionTorsionGrid& getTorsionTorsionGrid(void) const {
return _grid;
......
......@@ -6,7 +6,7 @@
* Biological Structures at Stanford, funded under the NIH Roadmap for *
* Medical Research, grant U54 GM072970. See https://simtk.org. *
* *
* Portions copyright (c) 2008-2009 Stanford University and the Authors. *
* Portions copyright (c) 2008-2014 Stanford University and the Authors. *
* Authors: *
* Contributors: *
* *
......@@ -33,8 +33,10 @@
#include "openmm/OpenMMException.h"
#include "openmm/AmoebaTorsionTorsionForce.h"
#include "openmm/internal/AmoebaTorsionTorsionForceImpl.h"
#include "openmm/internal/SplineFitter.h"
using namespace OpenMM;
using namespace std;
AmoebaTorsionTorsionForce::AmoebaTorsionTorsionForce() {
}
......@@ -82,3 +84,102 @@ void AmoebaTorsionTorsionForce::setTorsionTorsionGrid(int index, const TorsionTo
ForceImpl* AmoebaTorsionTorsionForce::createImpl() const {
return new AmoebaTorsionTorsionForceImpl(*this);
}
AmoebaTorsionTorsionForce::TorsionTorsionGridInfo::TorsionTorsionGridInfo(const TorsionTorsionGrid& grid) {
if (grid[0][0][0] != grid[1][0][0])
_grid = grid;
else {
// We need to transpose the grid.
int xsize = grid[0].size();
int ysize = grid.size();
_grid.resize(xsize);
for (int i = 0; i < xsize; i++) {
_grid[i].resize(ysize);
for (int j = 0; j < ysize; j++)
_grid[i][j] = grid[j][i];
}
}
_startValues[0] = _grid[0][0][0];
_startValues[1] = _grid[0][0][1];
_spacing[0] = static_cast<double>(_grid.size()-1)/360.0;
_spacing[1] = static_cast<double>(_grid.size()-1)/360.0;
_size[0] = static_cast<int>(_grid.size());
_size[1] = static_cast<int>(_grid[0].size());
if (_grid[0][0].size() == 3) {
// We need to compute the derivatives ourselves. First determine if the grid is periodic.
int xsize = _size[0];
int ysize = _size[1];
bool periodic = true;
for (int i = 0; i < xsize; i++)
if (_grid[i][0][2] != _grid[i][ysize-1][2])
periodic = false;
for (int i = 0; i < ysize; i++)
if (_grid[0][i][2] != _grid[xsize-1][i][2])
periodic = false;
// Compute derivatives with respect to the first angle.
vector<double> x(xsize), y(ysize);
for (int i = 0; i < xsize; i++)
x[i] = _grid[i][0][0];
for (int i = 0; i < ysize; i++)
y[i] = _grid[0][i][1];
vector<double> d1(xsize*ysize), d2(xsize*ysize), d12(xsize*ysize);
vector<double> t(xsize), deriv(xsize);
for (int i = 0; i < ysize; i++) {
for (int j = 0; j < xsize; j++)
t[j] = _grid[j][i][2];
if (periodic)
SplineFitter::createPeriodicSpline(x, t, deriv);
else
SplineFitter::createNaturalSpline(x, t, deriv);
for (int j = 0; j < xsize; j++)
d1[j+xsize*i] = SplineFitter::evaluateSplineDerivative(x, t, deriv, x[j]);
}
// Compute derivatives with respect to the second angle.
t.resize(ysize);
deriv.resize(ysize);
for (int i = 0; i < xsize; i++) {
for (int j = 0; j < ysize; j++)
t[j] = _grid[i][j][2];
if (periodic)
SplineFitter::createPeriodicSpline(y, t, deriv);
else
SplineFitter::createNaturalSpline(y, t, deriv);
for (int j = 0; j < ysize; j++)
d2[i+xsize*j] = SplineFitter::evaluateSplineDerivative(y, t, deriv, y[j]);
}
// Compute cross derivatives.
t.resize(xsize);
deriv.resize(xsize);
for (int i = 0; i < ysize; i++) {
for (int j = 0; j < xsize; j++)
t[j] = d2[j+xsize*i];
if (periodic)
SplineFitter::createPeriodicSpline(x, t, deriv);
else
SplineFitter::createNaturalSpline(x, t, deriv);
for (int j = 0; j < xsize; j++)
d12[j+xsize*i] = SplineFitter::evaluateSplineDerivative(x, t, deriv, x[j]);
}
// Add the derivatives to the grid.
for (int i = 0; i < xsize; i++)
for (int j = 0; j < ysize; j++) {
_grid[i][j].push_back(d1[i+xsize*j]);
_grid[i][j].push_back(d2[i+xsize*j]);
_grid[i][j].push_back(d12[i+xsize*j]);
}
}
}
......@@ -49,7 +49,7 @@ extern "C" OPENMM_EXPORT void registerAmoebaReferenceKernelFactories();
const double TOL = 1e-4;
TorsionTorsionGrid& getTorsionGrid( int gridIndex ) {
TorsionTorsionGrid getTorsionGrid(int gridIndex, bool includeDerivs) {
static double grid[4][625][6] = {
{
......@@ -2557,16 +2557,14 @@ static double grid[4][625][6] = {
{ 165.0000, 180.0000, -0.182999000E+01, 0.377952854E-01, 0.233583295E-01, -0.109828932E-02 },
{ 180.0000, 180.0000, -0.146854000E+01, 0.491175487E-02, 0.195601580E-02, -0.163177030E-02 } } };
// static std::vector< std::vector< std::vector<double> > > TorsionTorsionGrid
static std::vector<TorsionTorsionGrid> grids;
if( grids.size() == 0 ){
grids.resize(4);
int elementCount = (includeDerivs ? 6 : 3);
std::vector<TorsionTorsionGrid> grids(4);
for( int ii = 0; ii < 4; ii++ ){
grids[ii].resize( 25 );
for( int jj = 0; jj < 25; jj++ ){
grids[ii][jj].resize(25);
for( int kk = 0; kk < 25; kk++ ){
grids[ii][jj][kk].resize(6);
grids[ii][jj][kk].resize(elementCount);
}
}
int index = 0;
......@@ -2574,18 +2572,17 @@ static double grid[4][625][6] = {
for( int kk = 0; kk < 25; kk++ ){
int jjIndex = static_cast<int>(((grid[ii][index][0] + 180.0)/15.0)+1.0e-05);
int kkIndex = static_cast<int>(((grid[ii][index][1] + 180.0)/15.0)+1.0e-05);
for( int ll = 0; ll < 6; ll++ ){
for( int ll = 0; ll < elementCount; ll++ ){
grids[ii][kk][jj][ll] = grid[ii][index][ll];
}
index++;
}
}
}
}
return grids[gridIndex];
}
void testTorsionTorsion( FILE* log, int systemId ) {
void testTorsionTorsion(int systemId, bool includeDerivs) {
System system;
int numberOfParticles = 6;
......@@ -2645,11 +2642,11 @@ void testTorsionTorsion( FILE* log, int systemId ) {
expectedEnergy = -3.372536909E+00;
}
amoebaTorsionTorsionForce->addTorsionTorsion( 0, 1, 2, 3, 4, chiralCheckAtomIndex, 0 );
amoebaTorsionTorsionForce->setTorsionTorsionGrid( 0, getTorsionGrid( gridIndex ) );
amoebaTorsionTorsionForce->addTorsionTorsion(0, 1, 2, 3, 4, chiralCheckAtomIndex, 0);
amoebaTorsionTorsionForce->setTorsionTorsionGrid(0, getTorsionGrid(gridIndex, includeDerivs));
system.addForce(amoebaTorsionTorsionForce);
Context context(system, integrator, Platform::getPlatformByName( "Reference"));
Context context(system, integrator, Platform::getPlatformByName("Reference"));
context.setPositions(positions);
State state = context.getState(State::Forces | State::Energy);
......@@ -2662,18 +2659,6 @@ void testTorsionTorsion( FILE* log, int systemId ) {
forces[ii][2] *= conversion;
}
#ifdef AMOEBA_DEBUG
if( log ){
(void) fprintf( log, "computeAmoebaTorsionTorsionForces: expected energy=%14.7e %14.7e\n", expectedEnergy, state.getPotentialEnergy() );
for( unsigned int ii = 0; ii < forces.size(); ii++ ){
(void) fprintf( log, "%6u [%14.7e %14.7e %14.7e] [%14.7e %14.7e %14.7e]\n", ii,
expectedForces[ii][0], expectedForces[ii][1], expectedForces[ii][2],
forces[ii][0], forces[ii][1], forces[ii][2] );
}
(void) fflush( log );
}
#endif
double tolerance = 1.0e-03;
for( unsigned int ii = 0; ii < forces.size(); ii++ ){
ASSERT_EQUAL_VEC( expectedForces[ii], forces[ii], tolerance );
......@@ -2687,10 +2672,8 @@ int main( int numberOfArguments, char* argv[] ) {
try {
std::cout << "TestReferenceAmoebaTorsionTorsionForce running test..." << std::endl;
registerAmoebaReferenceKernelFactories();
//registerAmoebaCudaKernelFactories();
FILE* log = NULL;
testTorsionTorsion( log, 1 );
testTorsionTorsion(1, true);
testTorsionTorsion(1, false);
} catch(const std::exception& e) {
std::cout << "exception: " << e.what() << std::endl;
std::cout << "FAIL - ERROR. Test failed." << std::endl;
......
This source diff could not be displayed because it is too large. You can view the blob instead.
<ForceField>
<Info>
<Source>amoebapro13_5-2014.prm</Source>
<DateGenerated>2014-05-08</DateGenerated>
<Reference>Yue Shi, Zhen Xia, Jiajing Zhang, Robert Best, Chuanjie Wu, Jay W. Ponder, and Pengyu Ren. Polarizable Atomic Multipole-Based AMOEBA Force Field for Proteins. Journal of Chemical Theory and Computation, 9(9):4046–4063, 2013.</Reference>
</Info>
<AmoebaGeneralizedKirkwoodForce solventDielectric="78.3" soluteDielectric="1.0" includeCavityTerm="1" probeRadius="0.14" surfaceAreaFactor="-170.351730663">
<GeneralizedKirkwood type="1" charge="-0.22483" shct="0.79" />
<GeneralizedKirkwood type="2" charge="-0.09722" shct="0.72" />
<GeneralizedKirkwood type="2" charge="-0.31113" shct="0.72" />
<GeneralizedKirkwood type="2" charge="-0.18217" shct="0.72" />
<GeneralizedKirkwood type="2" charge="-0.06142" shct="0.72" />
<GeneralizedKirkwood type="3" charge="0.79586" shct="0.72" />
<GeneralizedKirkwood type="4" charge="0.13964" shct="0.85" />
<GeneralizedKirkwood type="5" charge="-0.76219" shct="0.85" />
<GeneralizedKirkwood type="6" charge="0.07437" shct="0.85" />
<GeneralizedKirkwood type="7" charge="-0.15418" shct="0.79" />
<GeneralizedKirkwood type="7" charge="-0.14115" shct="0.79" />
<GeneralizedKirkwood type="8" charge="-0.17302" shct="0.72" />
<GeneralizedKirkwood type="8" charge="-0.36199" shct="0.72" />
<GeneralizedKirkwood type="8" charge="-0.11441" shct="0.72" />
<GeneralizedKirkwood type="8" charge="0.04440" shct="0.72" />
<GeneralizedKirkwood type="9" charge="0.81010" shct="0.72" />
<GeneralizedKirkwood type="9" charge="0.85003" shct="0.72" />
<GeneralizedKirkwood type="10" charge="0.12044" shct="0.85" />
<GeneralizedKirkwood type="10" charge="0.12637" shct="0.85" />
<GeneralizedKirkwood type="11" charge="-0.75149" shct="0.85" />
<GeneralizedKirkwood type="11" charge="-0.77014" shct="0.85" />
<GeneralizedKirkwood type="12" charge="0.08514" shct="0.85" />
<GeneralizedKirkwood type="12" charge="0.08514" shct="0.85" />
<GeneralizedKirkwood type="12" charge="0.08514" shct="0.85" />
<GeneralizedKirkwood type="12" charge="0.08514" shct="0.85" />
<GeneralizedKirkwood type="12" charge="0.08514" shct="0.85" />
<GeneralizedKirkwood type="12" charge="0.08514" shct="0.85" />
<GeneralizedKirkwood type="12" charge="0.08514" shct="0.85" />
<GeneralizedKirkwood type="12" charge="0.08514" shct="0.85" />
<GeneralizedKirkwood type="12" charge="0.08514" shct="0.85" />
<GeneralizedKirkwood type="12" charge="0.08514" shct="0.85" />
<GeneralizedKirkwood type="12" charge="0.08514" shct="0.85" />
<GeneralizedKirkwood type="12" charge="0.08514" shct="0.85" />
<GeneralizedKirkwood type="12" charge="0.08514" shct="0.85" />
<GeneralizedKirkwood type="12" charge="0.08514" shct="0.85" />
<GeneralizedKirkwood type="12" charge="0.08514" shct="0.85" />
<GeneralizedKirkwood type="12" charge="0.08514" shct="0.85" />
<GeneralizedKirkwood type="12" charge="0.08514" shct="0.85" />
<GeneralizedKirkwood type="12" charge="0.08514" shct="0.85" />
<GeneralizedKirkwood type="12" charge="0.08514" shct="0.85" />
<GeneralizedKirkwood type="12" charge="0.08514" shct="0.85" />
<GeneralizedKirkwood type="12" charge="0.08514" shct="0.85" />
<GeneralizedKirkwood type="12" charge="0.08514" shct="0.85" />
<GeneralizedKirkwood type="12" charge="0.08514" shct="0.85" />
<GeneralizedKirkwood type="12" charge="0.08514" shct="0.85" />
<GeneralizedKirkwood type="12" charge="0.07834" shct="0.85" />
<GeneralizedKirkwood type="13" charge="-0.15959" shct="0.72" />
<GeneralizedKirkwood type="14" charge="0.07420" shct="0.85" />
<GeneralizedKirkwood type="15" charge="-0.06548" shct="0.72" />
<GeneralizedKirkwood type="16" charge="0.07117" shct="0.85" />
<GeneralizedKirkwood type="17" charge="-0.16832" shct="0.72" />
<GeneralizedKirkwood type="18" charge="0.06566" shct="0.85" />
<GeneralizedKirkwood type="19" charge="-0.13173" shct="0.72" />
<GeneralizedKirkwood type="20" charge="0.06916" shct="0.85" />
<GeneralizedKirkwood type="21" charge="-0.02887" shct="0.72" />
<GeneralizedKirkwood type="22" charge="0.08767" shct="0.85" />
<GeneralizedKirkwood type="23" charge="-0.17741" shct="0.72" />
<GeneralizedKirkwood type="24" charge="0.05874" shct="0.85" />
<GeneralizedKirkwood type="25" charge="-0.08555" shct="0.72" />
<GeneralizedKirkwood type="26" charge="0.08230" shct="0.85" />
<GeneralizedKirkwood type="27" charge="-0.11939" shct="0.72" />
<GeneralizedKirkwood type="28" charge="0.07096" shct="0.85" />
<GeneralizedKirkwood type="29" charge="-0.17217" shct="0.72" />
<GeneralizedKirkwood type="30" charge="0.06823" shct="0.85" />
<GeneralizedKirkwood type="31" charge="-0.16882" shct="0.72" />
<GeneralizedKirkwood type="32" charge="0.06001" shct="0.85" />
<GeneralizedKirkwood type="33" charge="0.16229" shct="0.72" />
<GeneralizedKirkwood type="34" charge="0.05600" shct="0.85" />
<GeneralizedKirkwood type="35" charge="-0.44145" shct="0.85" />
<GeneralizedKirkwood type="36" charge="0.23017" shct="0.85" />
<GeneralizedKirkwood type="37" charge="0.10834" shct="0.72" />
<GeneralizedKirkwood type="38" charge="0.06805" shct="0.85" />
<GeneralizedKirkwood type="39" charge="-0.40177" shct="0.85" />
<GeneralizedKirkwood type="40" charge="0.24568" shct="0.85" />
<GeneralizedKirkwood type="41" charge="-0.16081" shct="0.72" />
<GeneralizedKirkwood type="42" charge="0.06784" shct="0.85" />
<GeneralizedKirkwood type="43" charge="-0.30144" shct="0.72" />
<GeneralizedKirkwood type="43" charge="-0.30144" shct="0.72" />
<GeneralizedKirkwood type="43" charge="-0.08027" shct="0.72" />
<GeneralizedKirkwood type="44" charge="0.14381" shct="0.85" />
<GeneralizedKirkwood type="44" charge="0.00975" shct="0.85" />
<GeneralizedKirkwood type="45" charge="-0.03264" shct="0.96" />
<GeneralizedKirkwood type="46" charge="0.10947" shct="0.85" />
<GeneralizedKirkwood type="47" charge="0.07683" shct="0.96" />
<GeneralizedKirkwood type="48" charge="-0.23113" shct="0.72" />
<GeneralizedKirkwood type="49" charge="-0.85155" shct="0.96" />
<GeneralizedKirkwood type="50" charge="-0.13558" shct="0.79" />
<GeneralizedKirkwood type="51" charge="-0.26070" shct="0.72" />
<GeneralizedKirkwood type="52" charge="0.90470" shct="0.72" />
<GeneralizedKirkwood type="53" charge="-0.76984" shct="0.85" />
<GeneralizedKirkwood type="54" charge="0.09550" shct="0.85" />
<GeneralizedKirkwood type="55" charge="-0.13205" shct="0.72" />
<GeneralizedKirkwood type="55" charge="-0.12680" shct="0.72" />
<GeneralizedKirkwood type="56" charge="0.09686" shct="0.85" />
<GeneralizedKirkwood type="56" charge="0.11510" shct="0.85" />
<GeneralizedKirkwood type="57" charge="-0.16591" shct="0.72" />
<GeneralizedKirkwood type="57" charge="-0.14420" shct="0.72" />
<GeneralizedKirkwood type="58" charge="0.08886" shct="0.85" />
<GeneralizedKirkwood type="58" charge="0.12121" shct="0.85" />
<GeneralizedKirkwood type="59" charge="-0.03932" shct="0.72" />
<GeneralizedKirkwood type="60" charge="0.06588" shct="0.85" />
<GeneralizedKirkwood type="61" charge="-0.11216" shct="0.72" />
<GeneralizedKirkwood type="62" charge="0.09205" shct="0.85" />
<GeneralizedKirkwood type="63" charge="-0.04246" shct="0.72" />
<GeneralizedKirkwood type="64" charge="0.04681" shct="0.72" />
<GeneralizedKirkwood type="65" charge="0.00023" shct="0.85" />
<GeneralizedKirkwood type="66" charge="-0.02656" shct="0.72" />
<GeneralizedKirkwood type="67" charge="0.00719" shct="0.85" />
<GeneralizedKirkwood type="68" charge="-0.02866" shct="0.72" />
<GeneralizedKirkwood type="69" charge="0.00685" shct="0.85" />
<GeneralizedKirkwood type="70" charge="-0.10731" shct="0.72" />
<GeneralizedKirkwood type="71" charge="0.09011" shct="0.85" />
<GeneralizedKirkwood type="72" charge="-0.05309" shct="0.72" />
<GeneralizedKirkwood type="73" charge="0.07134" shct="0.72" />
<GeneralizedKirkwood type="74" charge="0.00345" shct="0.85" />
<GeneralizedKirkwood type="75" charge="-0.12512" shct="0.72" />
<GeneralizedKirkwood type="76" charge="0.01090" shct="0.85" />
<GeneralizedKirkwood type="77" charge="0.35744" shct="0.72" />
<GeneralizedKirkwood type="78" charge="-0.46438" shct="0.85" />
<GeneralizedKirkwood type="79" charge="0.22899" shct="0.85" />
<GeneralizedKirkwood type="80" charge="-0.14909" shct="0.72" />
<GeneralizedKirkwood type="81" charge="0.07954" shct="0.85" />
<GeneralizedKirkwood type="82" charge="-0.21590" shct="0.72" />
<GeneralizedKirkwood type="83" charge="-0.04549" shct="0.72" />
<GeneralizedKirkwood type="84" charge="0.01759" shct="0.85" />
<GeneralizedKirkwood type="85" charge="-0.15892" shct="0.72" />
<GeneralizedKirkwood type="86" charge="-0.03324" shct="0.85" />
<GeneralizedKirkwood type="87" charge="0.62054" shct="0.72" />
<GeneralizedKirkwood type="88" charge="-0.91150" shct="0.85" />
<GeneralizedKirkwood type="89" charge="-0.16339" shct="0.72" />
<GeneralizedKirkwood type="90" charge="0.08819" shct="0.85" />
<GeneralizedKirkwood type="91" charge="-0.14846" shct="0.72" />
<GeneralizedKirkwood type="92" charge="0.09676" shct="0.72" />
<GeneralizedKirkwood type="93" charge="0.02989" shct="0.85" />
<GeneralizedKirkwood type="94" charge="0.00548" shct="0.72" />
<GeneralizedKirkwood type="95" charge="-0.03588" shct="0.79" />
<GeneralizedKirkwood type="96" charge="0.08805" shct="0.85" />
<GeneralizedKirkwood type="97" charge="0.27382" shct="0.72" />
<GeneralizedKirkwood type="98" charge="-0.20979" shct="0.72" />
<GeneralizedKirkwood type="99" charge="0.00102" shct="0.85" />
<GeneralizedKirkwood type="100" charge="-0.11296" shct="0.72" />
<GeneralizedKirkwood type="101" charge="0.00446" shct="0.85" />
<GeneralizedKirkwood type="102" charge="0.06902" shct="0.72" />
<GeneralizedKirkwood type="103" charge="0.00474" shct="0.85" />
<GeneralizedKirkwood type="104" charge="-0.01987" shct="0.72" />
<GeneralizedKirkwood type="105" charge="0.00374" shct="0.85" />
<GeneralizedKirkwood type="106" charge="-0.10044" shct="0.72" />
<GeneralizedKirkwood type="107" charge="0.11241" shct="0.85" />
<GeneralizedKirkwood type="108" charge="0.16205" shct="0.72" />
<GeneralizedKirkwood type="109" charge="-0.10600" shct="0.79" />
<GeneralizedKirkwood type="110" charge="0.20247" shct="0.85" />
<GeneralizedKirkwood type="111" charge="0.04476" shct="0.72" />
<GeneralizedKirkwood type="112" charge="0.08897" shct="0.85" />
<GeneralizedKirkwood type="113" charge="0.39335" shct="0.72" />
<GeneralizedKirkwood type="114" charge="0.09278" shct="0.85" />
<GeneralizedKirkwood type="115" charge="-0.08186" shct="0.79" />
<GeneralizedKirkwood type="116" charge="0.14211" shct="0.85" />
<GeneralizedKirkwood type="117" charge="-0.10846" shct="0.72" />
<GeneralizedKirkwood type="118" charge="0.08849" shct="0.85" />
<GeneralizedKirkwood type="119" charge="0.04660" shct="0.72" />
<GeneralizedKirkwood type="120" charge="-0.16996" shct="0.79" />
<GeneralizedKirkwood type="121" charge="0.13110" shct="0.85" />
<GeneralizedKirkwood type="122" charge="0.08866" shct="0.72" />
<GeneralizedKirkwood type="123" charge="0.02049" shct="0.85" />
<GeneralizedKirkwood type="124" charge="0.34991" shct="0.72" />
<GeneralizedKirkwood type="125" charge="0.03404" shct="0.85" />
<GeneralizedKirkwood type="126" charge="-0.50635" shct="0.79" />
<GeneralizedKirkwood type="127" charge="-0.11338" shct="0.72" />
<GeneralizedKirkwood type="128" charge="0.08990" shct="0.85" />
<GeneralizedKirkwood type="129" charge="0.20611" shct="0.72" />
<GeneralizedKirkwood type="130" charge="-0.56975" shct="0.79" />
<GeneralizedKirkwood type="131" charge="-0.02289" shct="0.72" />
<GeneralizedKirkwood type="132" charge="0.03876" shct="0.85" />
<GeneralizedKirkwood type="133" charge="0.33110" shct="0.72" />
<GeneralizedKirkwood type="134" charge="0.03651" shct="0.85" />
<GeneralizedKirkwood type="135" charge="-0.13121" shct="0.79" />
<GeneralizedKirkwood type="136" charge="0.10796" shct="0.85" />
<GeneralizedKirkwood type="137" charge="-0.33682" shct="0.72" />
<GeneralizedKirkwood type="138" charge="0.04965" shct="0.85" />
<GeneralizedKirkwood type="139" charge="1.01811" shct="0.72" />
<GeneralizedKirkwood type="140" charge="-0.85879" shct="0.85" />
<GeneralizedKirkwood type="141" charge="-0.17303" shct="0.72" />
<GeneralizedKirkwood type="142" charge="0.10446" shct="0.85" />
<GeneralizedKirkwood type="143" charge="0.85923" shct="0.72" />
<GeneralizedKirkwood type="144" charge="-0.63514" shct="0.85" />
<GeneralizedKirkwood type="145" charge="-0.43939" shct="0.85" />
<GeneralizedKirkwood type="146" charge="0.24242" shct="0.85" />
<GeneralizedKirkwood type="147" charge="-0.15914" shct="0.72" />
<GeneralizedKirkwood type="148" charge="0.10149" shct="0.85" />
<GeneralizedKirkwood type="149" charge="0.76984" shct="0.72" />
<GeneralizedKirkwood type="150" charge="-0.74313" shct="0.85" />
<GeneralizedKirkwood type="151" charge="-0.28938" shct="0.79" />
<GeneralizedKirkwood type="152" charge="0.14092" shct="0.85" />
<GeneralizedKirkwood type="153" charge="-0.10324" shct="0.72" />
<GeneralizedKirkwood type="154" charge="0.06492" shct="0.85" />
<GeneralizedKirkwood type="155" charge="-0.35416" shct="0.72" />
<GeneralizedKirkwood type="156" charge="0.06420" shct="0.85" />
<GeneralizedKirkwood type="157" charge="1.05691" shct="0.72" />
<GeneralizedKirkwood type="158" charge="-0.89737" shct="0.85" />
<GeneralizedKirkwood type="159" charge="-0.10668" shct="0.72" />
<GeneralizedKirkwood type="160" charge="0.09513" shct="0.85" />
<GeneralizedKirkwood type="161" charge="-0.23637" shct="0.72" />
<GeneralizedKirkwood type="162" charge="0.10600" shct="0.85" />
<GeneralizedKirkwood type="163" charge="0.90086" shct="0.72" />
<GeneralizedKirkwood type="164" charge="-0.60677" shct="0.85" />
<GeneralizedKirkwood type="165" charge="-0.53100" shct="0.85" />
<GeneralizedKirkwood type="166" charge="0.24071" shct="0.85" />
<GeneralizedKirkwood type="167" charge="-0.07575" shct="0.72" />
<GeneralizedKirkwood type="168" charge="0.09458" shct="0.85" />
<GeneralizedKirkwood type="169" charge="-0.27255" shct="0.72" />
<GeneralizedKirkwood type="170" charge="0.10149" shct="0.85" />
<GeneralizedKirkwood type="171" charge="0.76984" shct="0.72" />
<GeneralizedKirkwood type="172" charge="-0.74313" shct="0.85" />
<GeneralizedKirkwood type="173" charge="-0.28938" shct="0.79" />
<GeneralizedKirkwood type="174" charge="0.14092" shct="0.85" />
<GeneralizedKirkwood type="175" charge="-0.14215" shct="0.72" />
<GeneralizedKirkwood type="176" charge="0.08383" shct="0.85" />
<GeneralizedKirkwood type="177" charge="-0.22038" shct="0.72" />
<GeneralizedKirkwood type="178" charge="0.07884" shct="0.85" />
<GeneralizedKirkwood type="179" charge="0.14780" shct="0.96" />
<GeneralizedKirkwood type="180" charge="-0.21776" shct="0.72" />
<GeneralizedKirkwood type="181" charge="0.05672" shct="0.85" />
<GeneralizedKirkwood type="182" charge="-0.08975" shct="0.72" />
<GeneralizedKirkwood type="183" charge="0.08202" shct="0.85" />
<GeneralizedKirkwood type="184" charge="-0.21565" shct="0.72" />
<GeneralizedKirkwood type="185" charge="0.08265" shct="0.85" />
<GeneralizedKirkwood type="186" charge="-0.02245" shct="0.72" />
<GeneralizedKirkwood type="187" charge="0.07982" shct="0.85" />
<GeneralizedKirkwood type="188" charge="-0.01637" shct="0.72" />
<GeneralizedKirkwood type="189" charge="0.09822" shct="0.85" />
<GeneralizedKirkwood type="190" charge="0.10000" shct="0.79" />
<GeneralizedKirkwood type="191" charge="0.20727" shct="0.85" />
<GeneralizedKirkwood type="192" charge="-0.14610" shct="0.72" />
<GeneralizedKirkwood type="193" charge="0.06260" shct="0.85" />
<GeneralizedKirkwood type="194" charge="-0.13934" shct="0.72" />
<GeneralizedKirkwood type="195" charge="0.07212" shct="0.85" />
<GeneralizedKirkwood type="196" charge="-0.12642" shct="0.72" />
<GeneralizedKirkwood type="197" charge="0.06261" shct="0.85" />
<GeneralizedKirkwood type="198" charge="0.04761" shct="0.72" />
<GeneralizedKirkwood type="199" charge="0.02822" shct="0.85" />
<GeneralizedKirkwood type="200" charge="-0.20360" shct="0.79" />
<GeneralizedKirkwood type="201" charge="0.08988" shct="0.85" />
<GeneralizedKirkwood type="202" charge="-0.09097" shct="0.72" />
<GeneralizedKirkwood type="203" charge="0.07770" shct="0.85" />
<GeneralizedKirkwood type="204" charge="-0.21722" shct="0.72" />
<GeneralizedKirkwood type="205" charge="0.08258" shct="0.85" />
<GeneralizedKirkwood type="206" charge="-0.01121" shct="0.72" />
<GeneralizedKirkwood type="207" charge="0.07564" shct="0.85" />
<GeneralizedKirkwood type="208" charge="-0.27936" shct="0.79" />
<GeneralizedKirkwood type="209" charge="0.15532" shct="0.85" />
<GeneralizedKirkwood type="210" charge="0.98761" shct="0.72" />
<GeneralizedKirkwood type="211" charge="-0.29224" shct="0.79" />
<GeneralizedKirkwood type="212" charge="0.15787" shct="0.85" />
<GeneralizedKirkwood type="213" charge="-0.08587" shct="0.72" />
<GeneralizedKirkwood type="214" charge="0.08588" shct="0.85" />
<GeneralizedKirkwood type="215" charge="-0.01858" shct="0.72" />
<GeneralizedKirkwood type="216" charge="0.08368" shct="0.85" />
<GeneralizedKirkwood type="217" charge="-0.01249" shct="0.72" />
<GeneralizedKirkwood type="218" charge="0.10208" shct="0.85" />
<GeneralizedKirkwood type="219" charge="0.10000" shct="0.79" />
<GeneralizedKirkwood type="220" charge="0.20727" shct="0.85" />
<GeneralizedKirkwood type="221" charge="-0.19058" shct="0.72" />
<GeneralizedKirkwood type="222" charge="0.07778" shct="0.85" />
<GeneralizedKirkwood type="223" charge="0.68484" shct="0.72" />
<GeneralizedKirkwood type="224" charge="-0.72760" shct="0.85" />
<GeneralizedKirkwood type="225" charge="-0.30948" shct="0.79" />
<GeneralizedKirkwood type="226" charge="0.15474" shct="0.85" />
<GeneralizedKirkwood type="227" charge="-0.26804" shct="0.79" />
<GeneralizedKirkwood type="228" charge="0.11919" shct="0.85" />
<GeneralizedKirkwood type="229" charge="-0.00970" shct="0.72" />
<GeneralizedKirkwood type="230" charge="0.05285" shct="0.85" />
<GeneralizedKirkwood type="231" charge="0.07891" shct="0.79" />
<GeneralizedKirkwood type="231" charge="0.11164" shct="0.79" />
<GeneralizedKirkwood type="231" charge="0.11164" shct="0.79" />
<GeneralizedKirkwood type="232" charge="0.26670" shct="0.85" />
<GeneralizedKirkwood type="232" charge="0.21240" shct="0.85" />
<GeneralizedKirkwood type="232" charge="0.21240" shct="0.85" />
<GeneralizedKirkwood type="233" charge="1.02670" shct="0.72" />
<GeneralizedKirkwood type="234" charge="-0.88956" shct="0.85" />
<GeneralizedKirkwood type="235" charge="0.92336" shct="0.72" />
<GeneralizedKirkwood type="235" charge="0.83309" shct="0.72" />
<GeneralizedKirkwood type="235" charge="0.83309" shct="0.72" />
<GeneralizedKirkwood type="236" charge="-0.58827" shct="0.85" />
<GeneralizedKirkwood type="236" charge="-0.61662" shct="0.85" />
<GeneralizedKirkwood type="236" charge="-0.61662" shct="0.85" />
<GeneralizedKirkwood type="237" charge="-0.46459" shct="0.85" />
<GeneralizedKirkwood type="238" charge="0.24812" shct="0.85" />
<GeneralizedKirkwood type="239" charge="0.07219" shct="0.79" />
<GeneralizedKirkwood type="240" charge="0.23262" shct="0.85" />
<GeneralizedKirkwood type="241" charge="-0.16428" shct="0.72" />
<GeneralizedKirkwood type="242" charge="0.94625" shct="0.72" />
<GeneralizedKirkwood type="243" charge="-0.74794" shct="0.85" />
<GeneralizedKirkwood type="244" charge="0.12611" shct="0.85" />
<GeneralizedKirkwood type="245" charge="-0.04567" shct="0.72" />
<GeneralizedKirkwood type="246" charge="0.10559" shct="0.85" />
<GeneralizedKirkwood type="247" charge="-0.51966" shct="0.85" />
<GeneralizedKirkwood type="248" charge="0.25983" shct="0.85" />
<GeneralizedKirkwood type="249" charge="1.00000" shct="0.8" />
<GeneralizedKirkwood type="250" charge="1.00000" shct="0.8" />
<GeneralizedKirkwood type="251" charge="1.00000" shct="0.8" />
<GeneralizedKirkwood type="252" charge="1.00000" shct="0.8" />
<GeneralizedKirkwood type="253" charge="1.00000" shct="0.8" />
<GeneralizedKirkwood type="254" charge="2.00000" shct="0.8" />
<GeneralizedKirkwood type="255" charge="2.00000" shct="0.8" />
<GeneralizedKirkwood type="256" charge="2.00000" shct="0.8" />
<GeneralizedKirkwood type="257" charge="2.00000" shct="0.8" />
<GeneralizedKirkwood type="258" charge="-1.00000" shct="0.8" />
</AmoebaGeneralizedKirkwoodForce>
<AmoebaWcaDispersionForce epso="0.46024" epsh="0.056484" rmino="0.17025" rminh="0.13275" awater="33.428" slevy="1.0" dispoff="0.026" shctd="0.81" >
<WcaDispersion class="1" radius="0.1855" epsilon="0.46024" />
<WcaDispersion class="2" radius="0.191" epsilon="0.422584" />
<WcaDispersion class="3" radius="0.191" epsilon="0.443504" />
<WcaDispersion class="4" radius="0.1295" epsilon="0.092048" />
<WcaDispersion class="5" radius="0.165" epsilon="0.468608" />
<WcaDispersion class="6" radius="0.147" epsilon="0.108784" />
<WcaDispersion class="7" radius="0.1825" epsilon="0.422584" />
<WcaDispersion class="8" radius="0.191" epsilon="0.422584" />
<WcaDispersion class="9" radius="0.149" epsilon="0.100416" />
<WcaDispersion class="10" radius="0.17025" epsilon="0.46024" />
<WcaDispersion class="11" radius="0.13275" epsilon="0.056484" />
<WcaDispersion class="12" radius="0.20025" epsilon="1.48532" />
<WcaDispersion class="14" radius="0.21" epsilon="1.48532" />
<WcaDispersion class="13" radius="0.15" epsilon="0.110876" />
<WcaDispersion class="15" radius="0.1855" epsilon="0.46024" />
<WcaDispersion class="16" radius="0.191" epsilon="0.422584" />
<WcaDispersion class="17" radius="0.19" epsilon="0.372376" />
<WcaDispersion class="18" radius="0.149" epsilon="0.108784" />
<WcaDispersion class="19" radius="0.17025" epsilon="0.46024" />
<WcaDispersion class="20" radius="0.13275" epsilon="0.056484" />
<WcaDispersion class="22" radius="0.19" epsilon="0.422584" />
<WcaDispersion class="23" radius="0.149" epsilon="0.108784" />
<WcaDispersion class="24" radius="0.1855" epsilon="0.46024" />
<WcaDispersion class="25" radius="0.1295" epsilon="0.092048" />
<WcaDispersion class="26" radius="0.19" epsilon="0.422584" />
<WcaDispersion class="27" radius="0.149" epsilon="0.108784" />
<WcaDispersion class="28" radius="0.19" epsilon="0.422584" />
<WcaDispersion class="29" radius="0.1855" epsilon="0.46024" />
<WcaDispersion class="30" radius="0.191" epsilon="0.443504" />
<WcaDispersion class="31" radius="0.185" epsilon="0.539736" />
<WcaDispersion class="32" radius="0.191" epsilon="0.443504" />
<WcaDispersion class="33" radius="0.165" epsilon="0.468608" />
<WcaDispersion class="34" radius="0.17025" epsilon="0.46024" />
<WcaDispersion class="35" radius="0.13275" epsilon="0.06276" />
<WcaDispersion class="36" radius="0.191" epsilon="0.422584" />
<WcaDispersion class="37" radius="0.1905" epsilon="0.43932" />
<WcaDispersion class="38" radius="0.124" epsilon="0.054392" />
<WcaDispersion class="39" radius="0.1825" epsilon="0.422584" />
<WcaDispersion class="40" radius="0.191" epsilon="0.422584" />
<WcaDispersion class="41" radius="0.188" epsilon="0.43932" />
<WcaDispersion class="42" radius="0.135" epsilon="0.08368" />
<WcaDispersion class="43" radius="0.17025" epsilon="0.46024" />
<WcaDispersion class="44" radius="0.13275" epsilon="0.056484" />
<WcaDispersion class="45" radius="0.119" epsilon="0.33472" />
<WcaDispersion class="46" radius="0.151" epsilon="1.08784" />
<WcaDispersion class="47" radius="0.1855" epsilon="1.4644" />
<WcaDispersion class="48" radius="0.207" epsilon="1.84096" />
<WcaDispersion class="49" radius="0.2185" epsilon="2.21752" />
<WcaDispersion class="50" radius="0.094" epsilon="0.380744" />
<WcaDispersion class="51" radius="0.147" epsilon="1.2552" />
<WcaDispersion class="52" radius="0.1815" epsilon="1.4644" />
<WcaDispersion class="53" radius="0.134" epsilon="0.928848" />
<WcaDispersion class="54" radius="0.2065" epsilon="1.42256" />
</AmoebaWcaDispersionForce>
</ForceField>
......@@ -2517,6 +2517,7 @@ class AmoebaTorsionTorsionGenerator:
gridRow.append(float(gridEntry.attrib['angle1']))
gridRow.append(float(gridEntry.attrib['angle2']))
gridRow.append(float(gridEntry.attrib['f']))
if 'fx' in gridEntry.attrib:
gridRow.append(float(gridEntry.attrib['fx']))
gridRow.append(float(gridEntry.attrib['fy']))
gridRow.append(float(gridEntry.attrib['fxy']))
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment