Added:
/trunk/src/depot/rdfSSD.c
Modified:
/trunk/src/errCheck.c
/trunk/src/main.c
/trunk/src/output.c
/trunk/src/rdf.c
/trunk/src/startUp.c
/trunk/src/sysGen.c
/trunk/src/sysLoad.c
=======================================
--- /dev/null
+++ /trunk/src/depot/rdfSSD.c Wed Feb 9 07:48:13 2011
@@ -0,0 +1,186 @@
+/* Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010 Mario Orsi
+ This file is part of Brahms.
+ Brahms is free software: you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or (at
your option) any later version.
+ Brahms is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
+ You should have received a copy of the GNU General Public License along
with Brahms. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Direct evaluation of the radial distribution function. Adapted from
[Rapaport, p.90].
+ Sets of diffusion measurements are begun at fixed time intervals, so
that several
+ sets of measurements based on different time origins will be in
progress simultaneously
+ because of the overlapped measurements.
+ Memory is allocated in module startUp.c, function AllocArrays(). */
+
+#include "dataStructs.h"
+
+extern const RMat *siteRotMat;
+extern const VecR region, *siteCoords;
+extern const Site *site;
+extern const int nSites, limitWatRdf, sizeHistWatRdf, stepWatRdf,
rdfBallsOnly;
+extern const real deltaT, rangeWatRdf, timeNow;
+extern real *histWatRdfOO, *histWatRdfOH, *histWatRdfHH;
+extern int countWatRdf;
+
+void ZeroWatRdfHistograms(); /* external function declaration */
+
+static void PrintWatRdf()
+{
+ real distance; // atom-atom distance -- the x-axis of final plot
+ int n; // counter
+
+ FILE *rdfFilePtr;
+ char rdfSnapFile[ 35 ];
+ char time_ps[ 9 ]; // string containing timeNow, e.g. "100", in ps
+
+ sprintf( time_ps, "%d", ( int ) ( 0.5 + timeNow * TIME_ps ) );
+ rdfSnapFile[ 0 ] = '\0';
+ strcat( rdfSnapFile, "waterRdf_" );
+ strcat( rdfSnapFile, time_ps );
+ strcat( rdfSnapFile, "ps" );
+ strcat( rdfSnapFile, ".dat" );
+ rdfFilePtr = fopen( rdfSnapFile, "w" );
+
+ for ( n = 0; n < sizeHistWatRdf; n++ ) {
+ distance = ( n + 0.5 ) * rangeWatRdf / sizeHistWatRdf;
+ fprintf( rdfFilePtr, "%8.3f", distance );
+ fprintf( rdfFilePtr, "%10.6f", histWatRdfOO[ n ] );
+ fprintf( rdfFilePtr, "%10.6f", histWatRdfOH[ n ] );
+ fprintf( rdfFilePtr, "%10.6f", histWatRdfHH[ n ] );
+ fprintf( rdfFilePtr, "\n" );
+ }
+ fflush( rdfFilePtr );
+}
+
+void EvalWatRdf() // [Rapaport, p 223]
+{
+ VecR dr, shift, r;
+ real deltaR, normFac, rr, rangeRdfSquared;
+ int i, j, n;
+ RMat rMat;
+ VecR OH1b, OH2b, /* oxygen-hydrogen vectors in body-fixed frame */
+ OOb, t,
+ H1is, H2is, Ois, // resolved position of hydrogens + oxygen in the
spaced-fixed frame
+ H1js, H2js, Ojs; // resolved position of hydrogens + oxygen in the
spaced-fixed frame
+
+ // water internal geometry in Brahms units
+ VSet( OH1b, 0., 0.075 / LENGTH_nm, 0.053 / LENGTH_nm ); /* from Bratko
et al, J Chem Phys, 83, 6367, 1985 */
+ VSet( OH2b, 0., -0.075 / LENGTH_nm, 0.053 / LENGTH_nm );
+ VSet( OOb, 0., 0., -0.00654 / LENGTH_nm );
+
+ deltaR = rangeWatRdf / sizeHistWatRdf;
+
+ rangeRdfSquared = Sqr( rangeWatRdf );
+
+ for ( i = 0; i < nSites - 1; i++ ) {
+ for ( j = i + 1; j < nSites; j++ ) {
+ VSub( dr, siteCoords[ i ], siteCoords[ j ] );
+ VZero( shift ); // zero auxiliary vector "shift"
+ VShiftAll( dr ); // if MIC.x, shift = \pm region.x, etc.
+ VWrapAll( dr );
+ rr = VLenSq( dr );
+ if ( rr < rangeRdfSquared ) {
+
+ MCopy( rMat.u, siteRotMat[ i ].u );
+ VCopy( r, siteCoords[ i ] );
+ MVMulT( t, rMat.u, OH1b );
+ VAdd( H1is, r, t );
+ MVMulT( t, rMat.u, OH2b );
+ VAdd( H2is, r, t );
+ MVMulT( t, rMat.u, OOb );
+ VAdd( Ois, r, t );
+
+ MCopy( rMat.u, siteRotMat[ j ].u );
+ VCopy( r, siteCoords[ j ] );
+ MVMulT( t, rMat.u, OH1b );
+ VAdd( H1js, r, t );
+ MVMulT( t, rMat.u, OH2b );
+ VAdd( H2js, r, t );
+ MVMulT( t, rMat.u, OOb );
+ VAdd( Ojs, r, t );
+
+ // computing Oxygen-Oxygen rdf
+ VSub( dr, Ois, Ojs);
+ VWrapAll( dr );
+ rr = VLenSq( dr );
+ if ( rr < rangeRdfSquared ) {
+ n = sqrt( rr ) / deltaR;
+ ++histWatRdfOO[ n ];
+ }
+
+ // computing Oxygen-Hydrogen rdf
+ VSub( dr, Ois, H1js);
+ VWrapAll( dr );
+ rr = VLenSq( dr );
+ if ( rr < rangeRdfSquared ) {
+ n = sqrt( rr ) / deltaR;
+ ++histWatRdfOH[ n ];
+ }
+ VSub( dr, Ois, H2js);
+ VWrapAll( dr );
+ rr = VLenSq( dr );
+ if ( rr < rangeRdfSquared ) {
+ n = sqrt( rr ) / deltaR;
+ ++histWatRdfOH[ n ];
+ }
+ VSub( dr, Ojs, H1is);
+ VWrapAll( dr );
+ rr = VLenSq( dr );
+ if ( rr < rangeRdfSquared ) {
+ n = sqrt( rr ) / deltaR;
+ ++histWatRdfOH[ n ];
+ }
+ VSub( dr, Ojs, H2is);
+ VWrapAll( dr );
+ rr = VLenSq( dr );
+ if ( rr < rangeRdfSquared ) {
+ n = sqrt( rr ) / deltaR;
+ ++histWatRdfOH[ n ];
+ }
+
+ // computing i-j Hydrogen-Hydrogen rdf
+ VSub( dr, H1is, H1js);
+ VWrapAll( dr );
+ rr = VLenSq( dr );
+ if ( rr < rangeRdfSquared ) {
+ n = sqrt( rr ) / deltaR;
+ ++histWatRdfHH[ n ];
+ }
+ VSub( dr, H1is, H2js);
+ VWrapAll( dr );
+ rr = VLenSq( dr );
+ if ( rr < rangeRdfSquared ) {
+ n = sqrt( rr ) / deltaR;
+ ++histWatRdfHH[ n ];
+ }
+ VSub( dr, H1js, H2is);
+ VWrapAll( dr );
+ rr = VLenSq( dr );
+ if ( rr < rangeRdfSquared ) {
+ n = sqrt( rr ) / deltaR;
+ ++histWatRdfHH[ n ];
+ }
+ VSub( dr, H2js, H2is);
+ VWrapAll( dr );
+ rr = VLenSq( dr );
+ if ( rr < rangeRdfSquared ) {
+ n = sqrt( rr ) / deltaR;
+ ++histWatRdfHH[ n ];
+ }
+ }
+ }
+ }
+
+ ++countWatRdf;
+ if ( countWatRdf == limitWatRdf ) {
+ normFac = VProd( region ) / ( 2. * PI * Cube( deltaR ) * Sqr( nSites )
* countWatRdf );
+ for ( n = 0; n < sizeHistWatRdf; n++ ) {
+ histWatRdfOO[ n ] *= normFac / Sqr( n - 0.5 );
+ histWatRdfOH[ n ] *= .25 * normFac / Sqr( n - 0.5 ); // (/ 4.)
because of the 4 H-H pair for every O-O pair [Rapaport, p.224]
+ histWatRdfHH[ n ] *= .25 * normFac / Sqr( n - 0.5 ); // ditto
+ }
+ PrintWatRdf();
+ countWatRdf = 0;
+ ZeroWatRdfHistograms();
+ }
+}
=======================================
--- /trunk/src/errCheck.c Tue Jan 18 06:19:42 2011
+++ /trunk/src/errCheck.c Wed Feb 9 07:48:13 2011
@@ -136,15 +136,14 @@
}
}
-void CheckStructTypeConsistency( int totNSites, int nSites, int
nPointMasses, int nSymmRigBodies, int nWats, int nWaters )
-{
- printf( "#pointMasses: %d\t", nPointMasses );
- printf( "#symmetricBodies: %d\t\t", nSymmRigBodies );
- printf( "#nonSymmBodies: %d", nWats );
- if ( totNSites != nSites || totNSites != nPointMasses + nSymmRigBodies |
| nWats != nWaters ) {
+void CheckStructTypeConsistency( int totNSites, int nSites, int
nPointMasses,
+ int nSymmRigBodies, int nWaters )
+{
+/* printf( "pointMasses: %d\n", nPointMasses ); */
+/* printf( "#symmetricBodies: %d\n", nSymmRigBodies ); */
+ if ( totNSites != nSites || totNSites != nPointMasses + nSymmRigBodies )
{
ErrExit( ERR_STRUCT_BUILT_INCONSISTENT_WITH_INPUT );
}
- printf("\n");
}
/****************************************************************************************************************
=======================================
--- /trunk/src/main.c Thu Jan 6 06:46:39 2011
+++ /trunk/src/main.c Wed Feb 9 07:48:13 2011
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010 Mario Orsi
+/* Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011 Mario Orsi
This file is part of Brahms.
Brahms is free software: you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or (at
your option) any later version.
@@ -60,7 +60,7 @@
*
* Scientific papers based on Brahms simulations (please cite these papers
if you use or reference Brahms!):
* - Orsi, M., M. G. Noro and J. W. Essex. Dual-resolution molecular
dynamics simulation of antimicrobials in biomembranes,
- * Journal of the Royal Society Interface
+ * Journal of the Royal Society Interface, in press (2011).
* - Orsi, M. and J. W. Essex. Permeability of drugs and hormones through
a lipid bilayer: insights from dual-resolution
* molecular dynamics, Soft Matter, 6, 3797 (2010).
* - Orsi, M., J. Michel and J. W. Essex. Coarse-grain modelling of DMPC
and DOPC lipid bilayers, Journal of Physics:
@@ -153,7 +153,7 @@
VecR *lipUnwrappedCoords; // array of "true", unwrapped, lip coords - for
visualisation and correct lat COM computation
/* wat rdf variable */
-real *histWatRdfOO, *histWatRdfOH, *histWatRdfHH, rangeWatRdf;
+real *histWatRdf, rangeWatRdf;
int countWatRdf, limitWatRdf, sizeHistWatRdf;
// local (lateral really) pressure profile variables
=======================================
--- /trunk/src/output.c Tue Jan 18 06:19:42 2011
+++ /trunk/src/output.c Wed Feb 9 07:48:13 2011
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010 Mario Orsi
+/* Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011 Mario Orsi
This file is part of Brahms.
Brahms is free software: you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or (at
your option) any later version.
@@ -34,7 +34,7 @@
void PrintBrahmsVersion()
{
printf("\n**********************\n");
- printf( "* BRAHMS - 11Jan2011 *\n");
+ printf( "* BRAHMS - 09Feb2011 *\n");
printf( "**********************\n\n");
fflush(stdout);
}
=======================================
--- /trunk/src/rdf.c Thu Jan 6 06:46:39 2011
+++ /trunk/src/rdf.c Wed Feb 9 07:48:13 2011
@@ -19,10 +19,10 @@
extern const Site *site;
extern const int nSites, limitWatRdf, sizeHistWatRdf, stepWatRdf,
rdfBallsOnly;
extern const real deltaT, rangeWatRdf, timeNow;
-extern real *histWatRdfOO, *histWatRdfOH, *histWatRdfHH;
+extern real *histWatRdf;
extern int countWatRdf;
-void ZeroWatRdfHistograms(); /* external function declaration */
+void ZeroWatRdfHistogram(); /* external function declaration */
static void PrintWatRdf()
{
@@ -44,9 +44,7 @@
for ( n = 0; n < sizeHistWatRdf; n++ ) {
distance = ( n + 0.5 ) * rangeWatRdf / sizeHistWatRdf;
fprintf( rdfFilePtr, "%8.3f", distance );
- fprintf( rdfFilePtr, "%10.6f", histWatRdfOO[ n ] );
- fprintf( rdfFilePtr, "%10.6f", histWatRdfOH[ n ] );
- fprintf( rdfFilePtr, "%10.6f", histWatRdfHH[ n ] );
+ fprintf( rdfFilePtr, "%10.6f", histWatRdf[ n ] );
fprintf( rdfFilePtr, "\n" );
}
fflush( rdfFilePtr );
@@ -54,20 +52,10 @@
void EvalWatRdf() // [Rapaport, p 223]
{
- VecR dr, shift, r;
+ VecR dr, shift;
real deltaR, normFac, rr, rangeRdfSquared;
int i, j, n;
- RMat rMat;
- VecR OH1b, OH2b, /* oxygen-hydrogen vectors in body-fixed frame */
- OOb, t,
- H1is, H2is, Ois, // resolved position of hydrogens + oxygen in the
spaced-fixed frame
- H1js, H2js, Ojs; // resolved position of hydrogens + oxygen in the
spaced-fixed frame
-
- // water internal geometry in Brahms units
- VSet( OH1b, 0., 0.075 / LENGTH_nm, 0.053 / LENGTH_nm ); /* from Bratko
et al, J Chem Phys, 83, 6367, 1985 */
- VSet( OH2b, 0., -0.075 / LENGTH_nm, 0.053 / LENGTH_nm );
- VSet( OOb, 0., 0., -0.00654 / LENGTH_nm );
-
+
deltaR = rangeWatRdf / sizeHistWatRdf;
rangeRdfSquared = Sqr( rangeWatRdf );
@@ -80,107 +68,20 @@
VWrapAll( dr );
rr = VLenSq( dr );
if ( rr < rangeRdfSquared ) {
-
- MCopy( rMat.u, siteRotMat[ i ].u );
- VCopy( r, siteCoords[ i ] );
- MVMulT( t, rMat.u, OH1b );
- VAdd( H1is, r, t );
- MVMulT( t, rMat.u, OH2b );
- VAdd( H2is, r, t );
- MVMulT( t, rMat.u, OOb );
- VAdd( Ois, r, t );
-
- MCopy( rMat.u, siteRotMat[ j ].u );
- VCopy( r, siteCoords[ j ] );
- MVMulT( t, rMat.u, OH1b );
- VAdd( H1js, r, t );
- MVMulT( t, rMat.u, OH2b );
- VAdd( H2js, r, t );
- MVMulT( t, rMat.u, OOb );
- VAdd( Ojs, r, t );
-
- // computing Oxygen-Oxygen rdf
- VSub( dr, Ois, Ojs);
- VWrapAll( dr );
- rr = VLenSq( dr );
- if ( rr < rangeRdfSquared ) {
- n = sqrt( rr ) / deltaR;
- ++histWatRdfOO[ n ];
- }
-
- // computing Oxygen-Hydrogen rdf
- VSub( dr, Ois, H1js);
- VWrapAll( dr );
- rr = VLenSq( dr );
- if ( rr < rangeRdfSquared ) {
- n = sqrt( rr ) / deltaR;
- ++histWatRdfOH[ n ];
- }
- VSub( dr, Ois, H2js);
- VWrapAll( dr );
- rr = VLenSq( dr );
- if ( rr < rangeRdfSquared ) {
- n = sqrt( rr ) / deltaR;
- ++histWatRdfOH[ n ];
- }
- VSub( dr, Ojs, H1is);
- VWrapAll( dr );
- rr = VLenSq( dr );
- if ( rr < rangeRdfSquared ) {
- n = sqrt( rr ) / deltaR;
- ++histWatRdfOH[ n ];
- }
- VSub( dr, Ojs, H2is);
- VWrapAll( dr );
- rr = VLenSq( dr );
- if ( rr < rangeRdfSquared ) {
- n = sqrt( rr ) / deltaR;
- ++histWatRdfOH[ n ];
- }
-
- // computing i-j Hydrogen-Hydrogen rdf
- VSub( dr, H1is, H1js);
- VWrapAll( dr );
- rr = VLenSq( dr );
- if ( rr < rangeRdfSquared ) {
- n = sqrt( rr ) / deltaR;
- ++histWatRdfHH[ n ];
- }
- VSub( dr, H1is, H2js);
- VWrapAll( dr );
- rr = VLenSq( dr );
- if ( rr < rangeRdfSquared ) {
- n = sqrt( rr ) / deltaR;
- ++histWatRdfHH[ n ];
- }
- VSub( dr, H1js, H2is);
- VWrapAll( dr );
- rr = VLenSq( dr );
- if ( rr < rangeRdfSquared ) {
- n = sqrt( rr ) / deltaR;
- ++histWatRdfHH[ n ];
- }
- VSub( dr, H2js, H2is);
- VWrapAll( dr );
- rr = VLenSq( dr );
- if ( rr < rangeRdfSquared ) {
- n = sqrt( rr ) / deltaR;
- ++histWatRdfHH[ n ];
- }
+ n = sqrt( rr ) / deltaR;
+ ++histWatRdf[ n ];
}
}
- }
+ }
++countWatRdf;
if ( countWatRdf == limitWatRdf ) {
normFac = VProd( region ) / ( 2. * PI * Cube( deltaR ) * Sqr( nSites )
* countWatRdf );
for ( n = 0; n < sizeHistWatRdf; n++ ) {
- histWatRdfOO[ n ] *= normFac / Sqr( n - 0.5 );
- histWatRdfOH[ n ] *= .25 * normFac / Sqr( n - 0.5 ); // (/ 4.)
because of the 4 H-H pair for every O-O pair [Rapaport, p.224]
- histWatRdfHH[ n ] *= .25 * normFac / Sqr( n - 0.5 ); // ditto
+ histWatRdf[ n ] *= normFac / Sqr( n - 0.5 );
}
PrintWatRdf();
countWatRdf = 0;
- ZeroWatRdfHistograms();
+ ZeroWatRdfHistogram();
}
}
=======================================
--- /trunk/src/startUp.c Tue Jan 18 06:19:42 2011
+++ /trunk/src/startUp.c Wed Feb 9 07:48:13 2011
@@ -34,7 +34,7 @@
extern LatDiffBuff *latDiffBuff;
extern const int nValLatDiff, nBuffLatDiff, stepLatDiff, limitLatDiffAv,
zConstraint, insertSolute;
extern const int doCheckpoint, newRun, limitDiffuseAv, writeAreaVol,
flexBox;
-extern real *histWatRdfOO, *histWatRdfOH, *histWatRdfHH, *totalHistEpp,
*histLppNormalComponent, *histLppLateralComponent;
+extern real *histWatRdf, *totalHistEpp, *histLppNormalComponent,
*histLppLateralComponent;
extern real *histWpp, *soluteHistEpp, *watHistEpp, *headgroupHistEpp,
*glycerolHistEpp, *esterHistEpp;
extern int sizeHistWatRdf, countWatRdf;
extern real *soluteHistEdp, *watHistEdp, *cholHistEdp, *phosHistEdp,
*glyHistEdp, *estHistEdp, *totalHistEdp;
@@ -52,7 +52,7 @@
void BuildNeighborList();
void BuildQuatFromRotMat( Quat*, RMat* );
void CheckStructureLoaded( int, int );
-void CheckStructTypeConsistency( int, int, int, int, int, int );
+void CheckStructTypeConsistency( int, int, int, int, int );
void ComputeLipLatCom( VecRTwo* );
void ComputeTotalMass();
void GetCheckpoint();
@@ -178,9 +178,7 @@
}
if ( rdfWat ) {
- AllocMem( histWatRdfOO, sizeHistWatRdf, real );
- AllocMem( histWatRdfOH, sizeHistWatRdf, real );
- AllocMem( histWatRdfHH, sizeHistWatRdf, real );
+ AllocMem( histWatRdf, sizeHistWatRdf, real );
}
if ( edp ) {
@@ -298,7 +296,7 @@
nPointMasses = nChol + nAmine + nPhos + nTail;
nSymmRigBodies = nEst + nGly + nWat;
nWats = nWat;
- CheckStructTypeConsistency( totNSites, nSites, nPointMasses,
nSymmRigBodies, nWats, nWaters );
+ CheckStructTypeConsistency( totNSites, nSites, nPointMasses,
nSymmRigBodies, nWaters );
fprintf(fp, "done\n");fflush(fp);
}
@@ -451,10 +449,10 @@
}
}
-void ZeroWatRdfHistograms() // as in Rapaport p 223
+void ZeroWatRdfHistogram() // as in Rapaport p 223
{
int bin;
- for ( bin = 0; bin < sizeHistWatRdf; bin++ ) histWatRdfOO[ bin ] =
histWatRdfOH[ bin ] = histWatRdfHH[ bin ] = 0.; // resetting histogram
+ for ( bin = 0; bin < sizeHistWatRdf; bin++ ) histWatRdf[ bin ] = 0; //
resetting histogram
}
static void SetUpDiff()
@@ -687,7 +685,7 @@
AccumProps( 0 );
if ( edp || lpp || wpp || epp || latDiff || diffusion || rdfWat )
anyAnalysis = 1;
- if ( anyAnalysis ) printf("*** The following properties will be measured
on-the-fly (as requested via input file \"analysis.parameters\"): ***\n");
+ if ( anyAnalysis ) printf("*** The following properties will be measured
on-the-fly (as requested via input file \"brahms.an\"): ***\n");
if ( edp ) {
printf( "- Electron densities. Averaged profiles will be written to a
file \"edp-XX.dat\" every %.1f ns.\n", stepEdp*limitEdp*deltaT*TIME_ns);
ZeroEdpHistograms();
@@ -713,7 +711,7 @@
if ( diffusion ) SetUpDiff(); /* setting up water diffusion measurement
*/
if ( rdfWat ) {
printf( "- Radial distribution functions. Averaged profiles will be
written to a file \"rdf-XX.dat\" every %d steps.\n", stepWatRdf*limitWatRdf
);
- ZeroWatRdfHistograms();
+ ZeroWatRdfHistogram();
countWatRdf = 0; /* ??? here or/and somewhere else ??? */
// fPtr = fopen( "rdf.dat", "w" ); fclose( fPtr );
}
=======================================
--- /trunk/src/sysGen.c Thu Jan 6 06:46:39 2011
+++ /trunk/src/sysGen.c Wed Feb 9 07:48:13 2011
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010 Mario Orsi
+/* Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011 Mario Orsi
This file is part of Brahms.
Brahms is free software: you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or (at
your option) any later version.
=======================================
--- /trunk/src/sysLoad.c Thu Jan 6 06:46:39 2011
+++ /trunk/src/sysLoad.c Wed Feb 9 07:48:13 2011
@@ -73,14 +73,14 @@
if ( zConstraint && nSolutes ) printf( "and %d solute", nSolute );
printf( "\n" );
totNSites = nWat + nChol + nAmine + nPhos + nGly + nEst + nTail +
nSolute;
- nPointMassSites = nChol + nAmine + nPhos + nTail;
printf( "#pointMasses: %d\t", nPointMassSites );
- nSymmRigBodySites = nGly + nEst + nWat;
printf( "#symmetricBodies: %d\t", nSymmRigBodySites );
- nWats = nWat; printf( "#nonSymmBodies: %d\t\t", nWats + nSolute );
+ nPointMassSites = nChol + nAmine + nPhos + nTail;
//printf( "#pointMasses: %d\t", nPointMassSites );
+ nSymmRigBodySites = nGly + nEst + nWat;
//printf( "#symmetricBodies: %d\t", nSymmRigBodySites );
+ nWats = nWat; //printf( "#nonSymmBodies: %d\t\t", nWats + nSolute );
if ( totNSites != nSites || totNSites != nPointMassSites +
nSymmRigBodySites + nSolute || nWats != nWaters ) {
printf("\nWarning: #sites loaded (%d) != nSites (%d) (check your
inputs!)\n", totNSites, nSites );
if ( !zConstraint ) exit( 0 );
};
- printf( "(total: %3d sites)\n", totNSites );
+ printf( "Total number of sites: %3d\n", totNSites );
}
void LoadSoluteParameters( const int insertSolute, const int nAtoms )