http://code.google.com/p/brahms-md/source/detail?r=67
Modified:
/trunk/src/checkpts.c
/trunk/src/definitions.h
/trunk/src/diffusion.c
/trunk/src/edp.c
/trunk/src/epp.c
/trunk/src/errCheck.c
/trunk/src/forceBdMain.c
/trunk/src/forceNbdES.c
/trunk/src/forceNbdLJ.c
/trunk/src/forceNbdMain.c
/trunk/src/in_namelist.c
/trunk/src/in_namelist.h
/trunk/src/lammps.c
/trunk/src/latDiff.c
/trunk/src/lpp.c
/trunk/src/main.c
/trunk/src/nebrList.c
/trunk/src/output.c
/trunk/src/rdf.c
/trunk/src/rotation.c
/trunk/src/startUp.c
/trunk/src/stepCalc.c
/trunk/src/stepInt.c
/trunk/src/stepMain.c
/trunk/src/sysGen.c
/trunk/src/sysLoad.c
/trunk/src/topology.c
/trunk/src/utils.c
/trunk/src/wpp.c
=======================================
--- /trunk/src/checkpts.c Thu Jan 6 06:46:39 2011
+++ /trunk/src/checkpts.c Thu Feb 9 06:16:31 2012
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010 Mario Orsi
+/* Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 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/definitions.h Wed Jul 6 10:04:36 2011
+++ /trunk/src/definitions.h Thu Feb 9 06:16:31 2012
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010 Mario Orsi
+/* Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 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.
@@ -275,18 +275,6 @@
// Trace operator
#define Trace( m ) ( (m)[0] + (m)[4] + (m)[8] )
-// macro to extract (pL - pN) from the stress/pressure tensor
-#define ExtractLatPress( m ) ( 0.5 * ( (m)[0] + (m)[4] ) - (m)[8] )
-
-// macro to extract (pN - pL) from the stress/pressure tensor
-#define ExtractNormPress( m ) ( (m)[8] - 0.5 * ( (m)[0] + (m)[4] ) )
-
-// macro to extract (pL - pN) from the stress/pressure tensor
-#define ExtractLatPressComponent( m ) ( 0.5 * ( (m)[0] + (m)[4] ) )
-
-// macro to extract (pN - pL) from the stress/pressure tensor
-#define ExtractNormPressComponent( m ) ( (m)[8] )
-
// Outer product between vectors v1, v2 - result is (stored in) matrix m
#define VOuter( m, v1, v2 ) \
(m)[0] = (v1).x * (v2).x, \
=======================================
--- /trunk/src/diffusion.c Wed Dec 21 02:14:05 2011
+++ /trunk/src/diffusion.c Thu Feb 9 06:16:31 2012
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011 Mario Orsi
+/* Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 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/edp.c Thu Jan 6 06:46:39 2011
+++ /trunk/src/edp.c Thu Feb 9 06:16:31 2012
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010 Mario Orsi
+/* Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 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/epp.c Wed Sep 28 10:00:59 2011
+++ /trunk/src/epp.c Thu Feb 9 06:16:31 2012
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011 Mario Orsi
+/* Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 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/errCheck.c Wed Feb 9 07:48:13 2011
+++ /trunk/src/errCheck.c Thu Feb 9 06:16:31 2012
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010 Mario Orsi
+/* Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 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/forceBdMain.c Mon Oct 17 09:15:55 2011
+++ /trunk/src/forceBdMain.c Thu Feb 9 06:16:31 2012
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011 Mario Orsi
+/* Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 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/forceNbdES.c Wed Jul 20 07:59:24 2011
+++ /trunk/src/forceNbdES.c Thu Feb 9 06:16:31 2012
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011 Mario Orsi
+/* Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 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/forceNbdLJ.c Thu Jan 6 06:46:39 2011
+++ /trunk/src/forceNbdLJ.c Thu Feb 9 06:16:31 2012
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010 Mario Orsi
+/* Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 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/forceNbdMain.c Wed Dec 21 02:14:05 2011
+++ /trunk/src/forceNbdMain.c Thu Feb 9 06:16:31 2012
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011 Mario Orsi
+/* Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 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/in_namelist.c Mon Oct 17 09:15:55 2011
+++ /trunk/src/in_namelist.c Thu Feb 9 06:16:31 2012
@@ -27,6 +27,9 @@
int limitEdp, limitLpp, limitEpp, limitWpp, limitDiff, centerInputStruct,
randSeed, zReplicas;
int applyThermostat, applyBarostat, flexBox, stepNebr;
int adjustRegion; // input parameter; logical, used to require
modification of the region edges loaded from previous run
+int contourIrvKirk; /* logical variable controlling the calculation of
pressure profiles:
+ - if set to 1 (or any other positive integer), use the
Irving-Kirkwood contour
+ - if set to 0 (or any negative integer), use the Harasima
contour*/
int resetTime; // input parameter; logical, used to require resetting
of stepCount and timeNow variables
int removeSystemTranslation; /* logical variable controlling the removal
of the net motion of the mass center of the whole system:
- if set to 1 (or any other positive integer),
activates 'RemoveSystemTranslation()'
@@ -212,6 +215,7 @@
NameI( limitEpp ),
NameI( lpp ),
+ NameI( contourIrvKirk ),
NameI( sizeHistLpp ),
NameI( stepLpp ),
NameI( limitLpp ),
=======================================
--- /trunk/src/in_namelist.h Wed Sep 28 10:00:59 2011
+++ /trunk/src/in_namelist.h Thu Feb 9 06:16:31 2012
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011 Mario Orsi
+/* Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 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/lammps.c Wed Dec 21 02:14:05 2011
+++ /trunk/src/lammps.c Thu Feb 9 06:16:31 2012
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011 Mario Orsi
+/* Copyright (C) 2011, 2012 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/latDiff.c Thu Jan 6 06:46:39 2011
+++ /trunk/src/latDiff.c Thu Feb 9 06:16:31 2012
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010 Mario Orsi
+/* Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 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/lpp.c Thu Jan 6 06:46:39 2011
+++ /trunk/src/lpp.c Thu Feb 9 06:16:31 2012
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010 Mario Orsi
+/* Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 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.
@@ -12,88 +12,114 @@
#include "dataStructs.h"
-//#define SPLIT_LATERAL_NORMAL_COMPONENTS // uncomment to calculate the
individual components (normal and lateral)
-
extern const VecR *siteCoords;
extern const VecR *siteVelocity;
extern const Site *site;
extern const VecR region;
-extern const int nSites, stepCount, sizeHistLpp, limitLpp, nDOPCsDSPCs,
nDOPEs,
+extern const int nSites, stepCount, sizeHistLpp, limitLpp, nDOPCsDSPCs,
nDOPEs, contourIrvKirk,
halfSizeHistLpp; // defined in startUp.c
extern const real deltaT, *mass, timeNow, lppDeltaZ, extTemperature;
extern int countLpp; // global, defined & initialised in startUp.c
-extern real *totalHistLpp, *histLppP1, *histLppP2,
*histLppNormalComponent, *histLppLateralComponent,
+extern real *totalHistLpp, *histLppTau1, *histLppTau2, *histPress_xx,
*histPress_yy, *histPress_zz,
meanLppSlabVol, meanLppDeltaZ, meanLppBoxHeight; // global, defined and
initialised in startUp.c
void ZeroLppHistograms(); // external function declaration (function
defined in startUp.c)
-/************************************************************************************************************
- * DistributeVirial -- local stress decomposition
- * The Harasima contour is normally used -- "#define IRVING_KIRKWOOD" is
normally commented out
- * To use the Irving-Kirkwood contour, restore "#define IRVING_KIRKWOOD"
-
************************************************************************************************************/
+/**************************************************
+ * DistributeVirial -- local stress decomposition *
+ **************************************************/
void DistributeVirial( const RMat virTens, const int i, const int j )
{
int iSlab, jSlab;
- real latPress = ExtractLatPress( virTens.u ); // pL - pN
-
- //#define IRVING_KIRKWOOD // uncomment to use IK contour (default is
Harasima)
-#ifdef IRVING_KIRKWOOD
- int rightmostSlab, leftmostSlab, nInterSlabs, slabCounter;
- real zij, fLatPress;
- VecR rij;
- VSub( rij, site[i].r, site[j].r );
- VWrap( rij, z ); /* Minimum Image Convention */
- zij = fabs( rij.z );
-#endif
-
-#ifdef SPLIT_LATERAL_NORMAL_COMPONENTS
- real normPressComp = ExtractNormPressComponent( virTens.u ); // pN
- real latPressComp = ExtractLatPressComponent( virTens.u ); // pL
-#endif
+ real virial_xx = virTens.u[0];
+ real virial_yy = virTens.u[4];
+ real virial_zz = virTens.u[8];
+ real latPress = 0.5*(virial_xx + virial_yy) - virial_zz; // pL - pN
iSlab = siteCoords[ i ].z / lppDeltaZ + halfSizeHistLpp; // make all
slab bins positive
jSlab = siteCoords[ j ].z / lppDeltaZ + halfSizeHistLpp;
-#ifdef IRVING_KIRKWOOD
- if ( iSlab == jSlab ) /* if both sites are in the same slab */
- totalHistLpp[ iSlab ] += latPress; /* place the entire virial in the
common slab */
- else {
- rightmostSlab = Max( iSlab, jSlab );
- leftmostSlab = Min( iSlab, jSlab );
- nInterSlabs = ( rightmostSlab - leftmostSlab ) - 1; // compute the
#slabs between the sites, without considering MIC/PBC
- if ( nInterSlabs == 0 || nInterSlabs == (sizeHistLpp-2) ) { // if
directly adjacent, or through PBC
- fLatPress = .5 * latPress; // assign half virial to each of the two
slabs
- totalHistLpp[ iSlab ] += fLatPress;
- totalHistLpp[ jSlab ] += fLatPress;
- } else { // this is the general case when the two sites are separated
by one or more slabs
- if ( nInterSlabs < halfSizeHistLpp ) { // if PBC are definitely not
involved
- fLatPress = latPress / (nInterSlabs+2); // then, distribute this to the
inter-slabs
- totalHistLpp[ iSlab ] += fLatPress; // in primis, assign the adequate bit
of virial to iSlab and jSlab
- totalHistLpp[ jSlab ] += fLatPress;
- for ( slabCounter = leftmostSlab + 1; slabCounter < rightmostSlab;
slabCounter++ ) // loop through the inter-slabs between i and j
- totalHistLpp[ slabCounter ] += fLatPress;
- } else { // PBC wrapping
- fLatPress = latPress / (sizeHistLpp-nInterSlabs);
- totalHistLpp[ iSlab ] += fLatPress; // in primis, assign the adequate bit
of virial to iSlab and jSlab
- totalHistLpp[ jSlab ] += fLatPress;
- for ( slabCounter = 0; slabCounter < leftmostSlab; slabCounter++ ) //
scan the bottom slabs
- totalHistLpp[ slabCounter ] += fLatPress;
- for ( slabCounter = rightmostSlab + 1; slabCounter < sizeHistLpp;
slabCounter++ ) // scan the top slabs
- totalHistLpp[ slabCounter ] += fLatPress;
- }
- }
- }
-#else /* Harasima contour */
- totalHistLpp[ iSlab ] += .5 * latPress;
- totalHistLpp[ jSlab ] += .5 * latPress;
-#endif
-#ifdef SPLIT_LATERAL_NORMAL_COMPONENTS
- histLppNormalComponent[ iSlab ] += .5 * normPressComp;
- histLppNormalComponent[ jSlab ] += .5 * normPressComp;
- histLppLateralComponent[ iSlab ] += .5 * latPressComp;
- histLppLateralComponent[ jSlab ] += .5 * latPressComp;
-#endif
+ if (contourIrvKirk) { // use the Irving-Kirkwood contour
+
+ int rightmostSlab, leftmostSlab, nInterSlabs, slabCounter;
+ real zij, fLatPress;
+ real weightFac; // weighting factor for distributing the virial
+ VecR rij;
+ VSub( rij, siteCoords[ i ], siteCoords[ j ] );
+ VWrap( rij, z ); /* Minimum Image Convention */
+ zij = fabs( rij.z );
+
+ if ( iSlab == jSlab ) {/* if both sites are in the same slab */
+ totalHistLpp[ iSlab ] += latPress; /* place the entire virial in the
common slab */
+ histPress_xx[ iSlab ] += virial_xx;
+ histPress_yy[ iSlab ] += virial_yy;
+ histPress_zz[ iSlab ] += virial_zz;
+ } else {
+ rightmostSlab = Max( iSlab, jSlab );
+ leftmostSlab = Min( iSlab, jSlab );
+ nInterSlabs = ( rightmostSlab - leftmostSlab ) - 1; // compute the
#slabs between the sites, without considering MIC/PBC
+ if ( nInterSlabs == 0 || nInterSlabs == (sizeHistLpp-2) ) { // if
directly adjacent, or through PBC
+ weightFac = 0.5; // assign half virial to each of the two slabs
+ totalHistLpp[ iSlab ] += weightFac * latPress;
+ totalHistLpp[ jSlab ] += weightFac * latPress;
+ histPress_xx[ iSlab ] += weightFac * virial_xx;
+ histPress_xx[ jSlab ] += weightFac * virial_xx;
+ histPress_yy[ iSlab ] += weightFac * virial_yy;
+ histPress_yy[ jSlab ] += weightFac * virial_yy;
+ histPress_zz[ iSlab ] += weightFac * virial_zz;
+ histPress_zz[ jSlab ] += weightFac * virial_zz;
+ } else { // this is the general case when the two sites are
separated by one or more slabs
+ if ( nInterSlabs < halfSizeHistLpp ) { // if PBC are definitely not
involved
+ weightFac = 1.0 / (nInterSlabs+2);
+ totalHistLpp[ iSlab ] += weightFac * latPress; // in primis, assign the
adequate bit of virial to iSlab and jSlab
+ totalHistLpp[ jSlab ] += weightFac * latPress;
+ histPress_xx[ iSlab ] += weightFac * virial_xx;
+ histPress_xx[ jSlab ] += weightFac * virial_xx;
+ histPress_yy[ iSlab ] += weightFac * virial_yy;
+ histPress_yy[ jSlab ] += weightFac * virial_yy;
+ histPress_zz[ iSlab ] += weightFac * virial_zz;
+ histPress_zz[ jSlab ] += weightFac * virial_zz;
+ for ( slabCounter = leftmostSlab + 1; slabCounter < rightmostSlab;
slabCounter++ ) { // loop through the inter-slabs between i and j
+ totalHistLpp[ slabCounter ] += weightFac * latPress;
+ histPress_xx[ slabCounter ] += weightFac * virial_xx;
+ histPress_yy[ slabCounter ] += weightFac * virial_yy;
+ histPress_zz[ slabCounter ] += weightFac * virial_zz;
+ }
+ } else { // PBC wrapping
+ weightFac = 1.0 / (sizeHistLpp-nInterSlabs);
+ totalHistLpp[ iSlab ] += weightFac * latPress;
+ totalHistLpp[ jSlab ] += weightFac * latPress;
+ histPress_xx[ iSlab ] += weightFac * virial_xx;
+ histPress_xx[ jSlab ] += weightFac * virial_xx;
+ histPress_yy[ iSlab ] += weightFac * virial_yy;
+ histPress_yy[ jSlab ] += weightFac * virial_yy;
+ histPress_zz[ iSlab ] += weightFac * virial_zz;
+ histPress_zz[ jSlab ] += weightFac * virial_zz;
+ for ( slabCounter = 0; slabCounter < leftmostSlab; slabCounter++ ) { //
scan the bottom slabs
+ totalHistLpp[ slabCounter ] += weightFac * latPress;
+ histPress_xx[ slabCounter ] += weightFac * virial_xx;
+ histPress_yy[ slabCounter ] += weightFac * virial_yy;
+ histPress_zz[ slabCounter ] += weightFac * virial_zz;
+ }
+ for ( slabCounter = rightmostSlab + 1; slabCounter < sizeHistLpp;
slabCounter++ ) { // scan the top slabs
+ totalHistLpp[ slabCounter ] += weightFac * latPress;
+ histPress_xx[ slabCounter ] += weightFac * virial_xx;
+ histPress_yy[ slabCounter ] += weightFac * virial_yy;
+ histPress_zz[ slabCounter ] += weightFac * virial_zz;
+ }
+ }
+ }
+ }
+ } else { /* use the Harasima contour */
+ totalHistLpp[ iSlab ] += .5 * latPress;
+ totalHistLpp[ jSlab ] += .5 * latPress;
+ histPress_xx[ iSlab ] += .5 * virial_xx;
+ histPress_xx[ jSlab ] += .5 * virial_xx;
+ histPress_yy[ iSlab ] += .5 * virial_yy;
+ histPress_yy[ jSlab ] += .5 * virial_yy;
+ histPress_zz[ iSlab ] += .5 * virial_zz;
+ histPress_zz[ jSlab ] += .5 * virial_zz;
+ }
}
static void PrintLpp()
@@ -104,6 +130,7 @@
char lppFileName[ 20 ];
char time_ns[ 9 ]; // string containing timeNow, e.g. "100", in ns
+ // Print lateral pressure profile lpp = PL - PN = 0.5*(Pxx+Pyy) - Pzz
sprintf( time_ns, "%d", ( int ) ( 0.5 + timeNow * TIME_ns ) );
lppFileName[ 0 ] = '\0';
strcat( lppFileName, "lpp-" );
@@ -119,40 +146,42 @@
}
fclose( lppFilePtr );
+ // Print Pxx(z)
sprintf( time_ns, "%d", ( int ) ( 0.5 + timeNow * TIME_ns ) );
lppFileName[ 0 ] = '\0';
- strcat( lppFileName, "P1-" );
+ strcat( lppFileName, "Pxx-" );
strcat( lppFileName, time_ns );
strcat( lppFileName, ".dat" );
lppFilePtr = fopen( lppFileName, "w" );
for ( bin = 0; bin < sizeHistLpp; bin++ ) {
- distanceFromBilayerCentre = ( bin + 0.5 ) * meanLppDeltaZ -
meanLppBoxHeight / 2.;
+ distanceFromBilayerCentre = ( bin + 0.5 ) * meanLppDeltaZ -
meanLppBoxHeight / 2.;
fprintf( lppFilePtr, "%7.3f", ( ( distanceFromBilayerCentre ) *
LENGTH_nm ) );
- fprintf( lppFilePtr, "%15.3f", ( histLppP1[ bin ] * PRESSURE_atm *
LENGTH_nm ) );
- fprintf( lppFilePtr, "\n" );
+ fprintf( lppFilePtr, "%15.3f", ( histPress_xx[ bin ] * PRESSURE_atm )
);
+ fprintf( lppFilePtr, "\n" );
}
fclose( lppFilePtr );
+ // Print Pyy(z)
sprintf( time_ns, "%d", ( int ) ( 0.5 + timeNow * TIME_ns ) );
lppFileName[ 0 ] = '\0';
- strcat( lppFileName, "P2-" );
+ strcat( lppFileName, "Pyy-" );
strcat( lppFileName, time_ns );
strcat( lppFileName, ".dat" );
lppFilePtr = fopen( lppFileName, "w" );
for ( bin = 0; bin < sizeHistLpp; bin++ ) {
- distanceFromBilayerCentre = ( bin + 0.5 ) * meanLppDeltaZ -
meanLppBoxHeight / 2.;
+ distanceFromBilayerCentre = ( bin + 0.5 ) * meanLppDeltaZ -
meanLppBoxHeight / 2.;
fprintf( lppFilePtr, "%7.3f", ( ( distanceFromBilayerCentre ) *
LENGTH_nm ) );
- fprintf( lppFilePtr, "%15.3f", ( histLppP2[ bin ] * PRESSURE_atm *
Sqr( LENGTH_nm ) ) );
- fprintf( lppFilePtr, "\n" );
+ fprintf( lppFilePtr, "%15.3f", ( histPress_yy[ bin ] * PRESSURE_atm )
);
+ fprintf( lppFilePtr, "\n" );
}
fclose( lppFilePtr );
-#ifdef SPLIT_LATERAL_NORMAL_COMPONENTS
+ // Print Pzz(z)
sprintf( time_ns, "%d", ( int ) ( 0.5 + timeNow * TIME_ns ) );
lppFileName[ 0 ] = '\0';
- strcat( lppFileName, "PN-" );
+ strcat( lppFileName, "Pzz-" );
strcat( lppFileName, time_ns );
strcat( lppFileName, ".dat" );
lppFilePtr = fopen( lppFileName, "w" );
@@ -160,26 +189,40 @@
for ( bin = 0; bin < sizeHistLpp; bin++ ) {
distanceFromBilayerCentre = ( bin + 0.5 ) * meanLppDeltaZ -
meanLppBoxHeight / 2.;
fprintf( lppFilePtr, "%7.3f", ( ( distanceFromBilayerCentre ) *
LENGTH_nm ) );
- fprintf( lppFilePtr, "%15.3f", ( histLppNormalComponent[ bin ] *
PRESSURE_atm ) );
+ fprintf( lppFilePtr, "%15.3f", ( histPress_zz[ bin ] * PRESSURE_atm )
);
fprintf( lppFilePtr, "\n" );
}
fclose( lppFilePtr );
sprintf( time_ns, "%d", ( int ) ( 0.5 + timeNow * TIME_ns ) );
lppFileName[ 0 ] = '\0';
- strcat( lppFileName, "PL-" );
+ strcat( lppFileName, "Tau1-" );
strcat( lppFileName, time_ns );
strcat( lppFileName, ".dat" );
lppFilePtr = fopen( lppFileName, "w" );
for ( bin = 0; bin < sizeHistLpp; bin++ ) {
- distanceFromBilayerCentre = ( bin + 0.5 ) * meanLppDeltaZ -
meanLppBoxHeight / 2.;
+ distanceFromBilayerCentre = ( bin + 0.5 ) * meanLppDeltaZ -
meanLppBoxHeight / 2.;
fprintf( lppFilePtr, "%7.3f", ( ( distanceFromBilayerCentre ) *
LENGTH_nm ) );
- fprintf( lppFilePtr, "%15.3f", ( histLppLateralComponent[ bin ] *
PRESSURE_atm ) );
- fprintf( lppFilePtr, "\n" );
+ fprintf( lppFilePtr, "%15.3f", ( histLppTau1[ bin ] * PRESSURE_atm *
LENGTH_nm ) );
+ fprintf( lppFilePtr, "\n" );
}
fclose( lppFilePtr );
-#endif
+
+ sprintf( time_ns, "%d", ( int ) ( 0.5 + timeNow * TIME_ns ) );
+ lppFileName[ 0 ] = '\0';
+ strcat( lppFileName, "Tau2-" );
+ strcat( lppFileName, time_ns );
+ strcat( lppFileName, ".dat" );
+ lppFilePtr = fopen( lppFileName, "w" );
+
+ for ( bin = 0; bin < sizeHistLpp; bin++ ) {
+ distanceFromBilayerCentre = ( bin + 0.5 ) * meanLppDeltaZ -
meanLppBoxHeight / 2.;
+ fprintf( lppFilePtr, "%7.3f", ( ( distanceFromBilayerCentre ) *
LENGTH_nm ) );
+ fprintf( lppFilePtr, "%15.3f", ( histLppTau2[ bin ] * PRESSURE_atm *
Sqr( LENGTH_nm ) ) );
+ fprintf( lppFilePtr, "\n" );
+ }
+ fclose( lppFilePtr );
}
static void ComputeSurfaceTension() { // integrate the lateral pressure
profile: gamma = - 0.5 * int( lpp ) dz
@@ -214,9 +257,9 @@
const real DOPC_BILAYER_BENDING_MODULUS_J = 0.76e-19; // [J] from Pan
et al., BJ [2008]
const real DOPE_BILAYER_BENDING_MODULUS_J = 0.90e-19; // [J] from Chen
& Rand, BJ [1997]
/* const real c0_DOPC_per_nm = -0.115; // [1/nm] DOPC spontaneous
curvature, from Chen & Rand, BJ, [1997] */
- /* const real P1_DOPC_kBT_per_nm =
0.5*DOPC_BILAYER_BENDING_MODULUS_J/kBT_room_J*c0_DOPC_per_nm; // pressure
profile's first moment */
-
- real p, P1, P2, kG_left, kG_right, kG, P1Left, P1Right, P2Left, P2Right,
z;
+ /* const real tau1m_DOPC_kBT_per_nm =
0.5*DOPC_BILAYER_BENDING_MODULUS_J/kBT_room_J*c0_DOPC_per_nm; // pressure
profile's first moment */
+
+ real p, tau1m, tau2m, kG_left, kG_right, kG, tau1mLeft, tau1mRight,
tau2mLeft, tau2mRight, z;
real c0_left, c0_right, c0; // monolayer spontaneous curvatures: left
monolayer, right monolayer, average
real xi = 1.; // [nm] z-distance of the pivotal plane (polar-apolar
interface) from the bilayer centre [Orsi et al, JPCM, 2010]
@@ -225,7 +268,7 @@
int bin;
FILE *fPtr;
- P1Left = P1Right = P2Left = P2Right = 0.;
+ tau1mLeft = tau1mRight = tau2mLeft = tau2mRight = 0.;
// Setting the *monolayer* bending modulus for subsequent c0 calculation
- this formula gives a rough estimate for mixtures too
kBendingMonolayer_J = 0.5 * ( nDOPCsDSPCs *
DOPC_BILAYER_BENDING_MODULUS_J + nDOPEs * DOPE_BILAYER_BENDING_MODULUS_J )
/ ( nDOPCsDSPCs + nDOPEs );
@@ -235,62 +278,62 @@
z = ( ( halfSizeHistLpp - 1 ) - bin + 0.5 ) * meanLppDeltaZ; //
compute the (positive!) distance "z" from the bilayer centre
// printf("\nz = %f\n", z * LENGTH_nm);
p = totalHistLpp[ bin ]; // get the local net lateral pressure
acting at distance "z"
- histLppP1[ bin ] = - z * p;
- P1Left -= histLppP1[ bin ]; //accumulate first integral moment of the
lateral pressure (negative summation as we are on the negative side of the
z-axis)
- histLppP2[ bin ] = Sqr( z ) * p;
- P2Left += histLppP2[ bin ]; // accumulate second integral moment of
the lateral pressure
+ histLppTau1[ bin ] = - z * p;
+ tau1mLeft -= histLppTau1[ bin ]; //accumulate first integral moment of
the lateral pressure (negative summation as we are on the negative side of
the z-axis)
+ histLppTau2[ bin ] = Sqr( z ) * p;
+ tau2mLeft += histLppTau2[ bin ]; // accumulate second integral moment
of the lateral pressure
}
- P1Left *= meanLppDeltaZ;
- P2Left *= meanLppDeltaZ;
-
- c0_left = P1Left / ( kBendingMonolayer_J / ENERGY_J ) / LENGTH_nm; //
units: [ 1 / nm ]
- kG_left = 2. * xi * P1Left - P2Left;
+ tau1mLeft *= meanLppDeltaZ;
+ tau2mLeft *= meanLppDeltaZ;
+
+ c0_left = tau1mLeft / ( kBendingMonolayer_J / ENERGY_J ) / LENGTH_nm; //
units: [ 1 / nm ]
+ kG_left = 2. * xi * tau1mLeft - tau2mLeft;
fPtr = fopen( "lppMoments.log", "a");
- /* fprintf( fPtr, "P1 left layer = % 7.4f kB * T / nm\t", P1Left *
ENERGY_J / kBT_room_J ); */
- /* fprintf( fPtr, "P2 left layer = % 7.4f kB * T\n", P2Left *
ENERGY_J / kBT_room_J ); */
- /* fprintf( fPtr, "c0_left = P1_left / k = % 5.4f / nm\t", c0_left );
*/
- /* fprintf( fPtr, "kG_left = 2*xi*P1 - P2_left = % 7.4f kBT\n\n",
kG_left * ENERGY_J / kBT_room_J ); */
+ /* fprintf( fPtr, "tau1m left layer = % 7.4f kB * T / nm\t", tau1mLeft
* ENERGY_J / kBT_room_J ); */
+ /* fprintf( fPtr, "tau2m left layer = % 7.4f kB * T\n", tau2mLeft
* ENERGY_J / kBT_room_J ); */
+ /* fprintf( fPtr, "c0_left = tau1m_left / k = % 5.4f / nm\t", c0_left
); */
+ /* fprintf( fPtr, "kG_left = 2*xi*tau1m - tau2m_left = % 7.4f
kBT\n\n", kG_left * ENERGY_J / kBT_room_J ); */
for ( bin = halfSizeHistLpp; bin < sizeHistLpp; bin++ ) { // "right"
monolayer
z = ( bin - halfSizeHistLpp + 0.5 ) * meanLppDeltaZ; // compute the
distance from the bilayer centre
p = totalHistLpp[ bin ]; // get the local net lateral pressure
acting at distance "z"
- histLppP1[ bin ] = z * p;
- P1Right += histLppP1[ bin ];
- histLppP2[ bin ] = Sqr( z ) * p;
- P2Right += histLppP2[ bin ];
+ histLppTau1[ bin ] = z * p;
+ tau1mRight += histLppTau1[ bin ];
+ histLppTau2[ bin ] = Sqr( z ) * p;
+ tau2mRight += histLppTau2[ bin ];
}
- P1Right *= meanLppDeltaZ;
- P2Right *= meanLppDeltaZ;
-
- c0_right = P1Right / ( kBendingMonolayer_J / ENERGY_J ) / LENGTH_nm; //
units: [ 1 / nm ]
- kG_right = 2. * xi * P1Right - P2Right;
-
- /* fprintf( fPtr, "P1 right layer = % 7.4f kB * T / nm\t", P1Right *
ENERGY_J / kBT_room_J ); */
- /* fprintf( fPtr, "P2 right layer = % 7.4f kB * T\n", P2Right *
ENERGY_J / kBT_room_J ); */
- /* fprintf( fPtr, "c0_right = P1_right / k = % 5.4f / nm\t", c0_right
); */
- /* fprintf( fPtr, "kG_right = - ( P2_right - 2*xi*P1_right ) = % 7.4f
kBT\n\n", kG_right * ENERGY_J / kBT_room_J ); */
-
- P1 = 0.5 * ( P1Right + P1Left );
- P2 = 0.5 * ( P2Right + P2Left );
- c0 = P1 / ( kBendingMonolayer_J / ENERGY_J ); // units: [ 1 / nm ]
- kG = 2. * xi * P1 - P2;
-
- fprintf( fPtr, "Monolayer torque tension tau = P1 = % .2f kB * T_room /
nm", P1 * ENERGY_J / kBT_room_J );
+ tau1mRight *= meanLppDeltaZ;
+ tau2mRight *= meanLppDeltaZ;
+
+ c0_right = tau1mRight / ( kBendingMonolayer_J / ENERGY_J ) / LENGTH_nm;
// units: [ 1 / nm ]
+ kG_right = 2. * xi * tau1mRight - tau2mRight;
+
+ /* fprintf( fPtr, "tau1m right layer = % 7.4f kB * T / nm\t",
tau1mRight * ENERGY_J / kBT_room_J ); */
+ /* fprintf( fPtr, "tau2m right layer = % 7.4f kB * T\n",
tau2mRight * ENERGY_J / kBT_room_J ); */
+ /* fprintf( fPtr, "c0_right = tau1m_right / k = % 5.4f / nm\t",
c0_right ); */
+ /* fprintf( fPtr, "kG_right = - ( tau2m_right - 2*xi*tau1m_right ) = %
7.4f kBT\n\n", kG_right * ENERGY_J / kBT_room_J ); */
+
+ tau1m = 0.5 * ( tau1mRight + tau1mLeft );
+ tau2m = 0.5 * ( tau2mRight + tau2mLeft );
+ c0 = tau1m / ( kBendingMonolayer_J / ENERGY_J ); // units: [ 1 / nm ]
+ kG = 2. * xi * tau1m - tau2m;
+
+ fprintf( fPtr, "Monolayer torque tension tau = tau1m = % .2f kB * T_room
/ nm", tau1m * ENERGY_J / kBT_room_J );
if ( nDOPCsDSPCs ) fprintf( fPtr, " - for DOPC this should range from
-0.09 to -2.39 kBT/nm" );
- fprintf( fPtr, "\nMonolayer spontaneous curvature c0 = P1 / k = % .2f /
nm (assuming k = %.2e J)\n", c0, kBendingMonolayer_J );
- fprintf( fPtr, "Monolayer Gaussian curvature kG=2*xi*P1-P2=%.2f kBT;
should be -%.2f kBT < kG < 0 ", kG*ENERGY_J/kBT_room_J,
kBendingMonolayer_J/kBT_room_J );
+ fprintf( fPtr, "\nMonolayer spontaneous curvature c0 = tau1m / k = % .2f
/ nm (assuming k = %.2e J)\n", c0, kBendingMonolayer_J );
+ fprintf( fPtr, "Monolayer Gaussian curvature kG=2*xi*tau1m-tau2m=%.2f
kBT (-%.2f kBT < kG < 0) ", kG*ENERGY_J/kBT_room_J,
kBendingMonolayer_J/kBT_room_J );
fprintf( fPtr, "(assuming xi = %.2f nm)\n", xi );
fclose( fPtr );
- fPtr = fopen( "P1.dat", "a");
- fprintf( fPtr, "% 8.6f\n", P1 * ENERGY_J / kBT_room_J ); // kB * T_room
/ nm
+ fPtr = fopen( "tau1m.dat", "a");
+ fprintf( fPtr, "% 8.6f\n", tau1m * ENERGY_J / kBT_room_J ); // kB *
T_room / nm
fclose( fPtr );
- fPtr = fopen( "P2.dat", "a");
- fprintf( fPtr, "% 8.6f\n", P2 * ENERGY_J / kBT_room_J ); // kB * T
+ fPtr = fopen( "tau2m.dat", "a");
+ fprintf( fPtr, "% 8.6f\n", tau2m * ENERGY_J / kBT_room_J ); // kB * T
fclose( fPtr );
}
@@ -306,11 +349,10 @@
VOuter( kinEnDensTensor.u, siteVelocity[ n ], siteVelocity[ n ] );
MScale( kinEnDensTensor.u, mass[ site[ n ].type ] );
bin = siteCoords[ n ].z / lppDeltaZ + halfSizeHistLpp;
- totalHistLpp[ bin ] += ExtractLatPress( kinEnDensTensor.u );
-#ifdef SPLIT_LATERAL_NORMAL_COMPONENTS
- histLppNormalComponent[ bin ]+= ExtractNormPressComponent(
kinEnDensTensor.u );
- histLppLateralComponent[ bin ]+= ExtractLatPressComponent(
kinEnDensTensor.u );
-#endif
+ totalHistLpp[ bin ] += 0.5 *
(kinEnDensTensor.u[0]+kinEnDensTensor.u[4]) - kinEnDensTensor.u[8];
+ histPress_xx[ bin ] += kinEnDensTensor.u[0];
+ histPress_yy[ bin ] += kinEnDensTensor.u[4];
+ histPress_zz[ bin ] += kinEnDensTensor.u[8];
}
meanLppSlabVol += slabVolume; // accumulating - really only necessary
for NPT (redundant at constant volume, but its no big deal 2 compute, hence
leave it)
@@ -322,10 +364,9 @@
if ( limitLpp == countLpp ) { // if happy with the amount of data
collected
for ( bin = 0; bin < sizeHistLpp; bin++ ) {// normalising to have an
averaged value
totalHistLpp[ bin ] /= meanLppSlabVol;
-#ifdef SPLIT_LATERAL_NORMAL_COMPONENTS
- histLppNormalComponent[ bin ] /= meanLppSlabVol;
- histLppLateralComponent[ bin ] /= meanLppSlabVol;
-#endif
+ histPress_xx[ bin ] /= meanLppSlabVol;
+ histPress_yy[ bin ] /= meanLppSlabVol;
+ histPress_zz[ bin ] /= meanLppSlabVol;
}
meanLppDeltaZ /= countLpp;
=======================================
--- /trunk/src/main.c Wed Dec 21 02:14:05 2011
+++ /trunk/src/main.c Thu Feb 9 06:16:31 2012
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011 Mario Orsi
+/* Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 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.
@@ -157,7 +157,7 @@
int countWatRdf, limitWatRdf, sizeHistWatRdf;
// local (lateral really) pressure profile variables
-real *totalHistLpp, *histLppP1, *histLppP2, *histLppNormalComponent,
*histLppLateralComponent;
+real *totalHistLpp, *histLppTau1, *histLppTau2, *histPress_xx,
*histPress_yy, *histPress_zz;
// *watHistLpp, *hgHistLpp, *glyHistLpp, *tailHistLpp, *vdwHistLpp,
*electroHistLpp, *bondHistLpp, *dummyHistLpp;
// water polarisation profile variables
=======================================
--- /trunk/src/nebrList.c Tue Jan 18 06:19:42 2011
+++ /trunk/src/nebrList.c Thu Feb 9 06:16:31 2012
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010 Mario Orsi
+/* Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 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/output.c Wed Dec 21 02:14:05 2011
+++ /trunk/src/output.c Thu Feb 9 06:16:31 2012
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011 Mario Orsi
+/* Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 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,8 +34,7 @@
void PrintBrahmsVersion()
{
printf("\n**********************\n");
- printf( "* BRAHMS - 21Dec2011 *\n");
- printf( "* All shifted-force *\n");
+ printf( "* BRAHMS - 09Feb2012 *\n");
printf( "**********************\n\n");
fflush(stdout);
}
=======================================
--- /trunk/src/rdf.c Wed Feb 9 07:48:13 2011
+++ /trunk/src/rdf.c Thu Feb 9 06:16:31 2012
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010 Mario Orsi
+/* Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 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/rotation.c Thu Jan 6 06:46:39 2011
+++ /trunk/src/rotation.c Thu Feb 9 06:16:31 2012
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010 Mario Orsi
+/* Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 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/startUp.c Mon Oct 17 09:15:55 2011
+++ /trunk/src/startUp.c Thu Feb 9 06:16:31 2012
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011 Mario Orsi
+/* Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 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,12 +34,12 @@
extern LatDiffBuff *latDiffBuff;
extern const int nValLatDiff, nBuffLatDiff, stepLatDiff, limitLatDiffAv,
zConstraint;
extern const int doCheckpoint, newRun, limitDiffuseAv, writeAreaVol,
flexBox;
-extern real *histWatRdf, *totalHistEpp, *histLppNormalComponent,
*histLppLateralComponent;
+extern real *histWatRdf, *totalHistEpp, *histPress_xx, *histPress_yy,
*histPress_zz;
extern real *histWpp, *soluteHistEpp, *watHistEpp, *headgroupHistEpp,
*glycerolHistEpp, *esterHistEpp;
extern int sizeHistWatRdf, countWatRdf;
extern real *soluteHistEdp, *watHistEdp, *cholHistEdp, *phosHistEdp,
*glyHistEdp, *estHistEdp, *totalHistEdp;
extern real *CH2_3HistEdp, *CHCH2_2HistEdp, *CH3CH2_2HistEdp;
-extern real *totalHistLpp, *histLppP1, *histLppP2;
+extern real *totalHistLpp, *histLppTau1, *histLppTau2;
extern const int edp, sizeHistEdp, limitEdp, stepEdp, lpp, sizeHistLpp,
limitLpp, stepLpp;
extern const int wpp, sizeHistWpp, limitWpp, stepWpp, epp, sizeHistEpp,
limitEpp, stepEpp;
extern VecR *currWatCoords, *prevWatCoords, *refWatCoords;
@@ -197,10 +197,11 @@
if ( lpp ) {
AllocMem( totalHistLpp, sizeHistLpp, real );
- AllocMem( histLppP1, sizeHistLpp, real );
- AllocMem( histLppP2, sizeHistLpp, real );
- AllocMem( histLppNormalComponent, sizeHistLpp, real );
- AllocMem( histLppLateralComponent, sizeHistLpp, real );
+ AllocMem( histLppTau1, sizeHistLpp, real );
+ AllocMem( histLppTau2, sizeHistLpp, real );
+ AllocMem( histPress_xx, sizeHistLpp, real );
+ AllocMem( histPress_yy, sizeHistLpp, real );
+ AllocMem( histPress_zz, sizeHistLpp, real );
halfSizeHistLpp = sizeHistLpp / 2; // setting variable THIS SHOULD
REALLY BE SOMEWHERE ELSE
}
@@ -423,7 +424,7 @@
{
int bin;
for ( bin = 0; bin < sizeHistLpp; bin++ ) { // resetting histograms
- totalHistLpp[ bin ] = histLppP1[ bin ] = histLppP2[ bin ] =
histLppLateralComponent[ bin ] = histLppNormalComponent[ bin ] = 0.;
+ totalHistLpp[ bin ] = histLppTau1[ bin ] = histLppTau2[ bin ] =
histPress_xx[ bin ] = histPress_yy[ bin ] = histPress_zz[ bin ] = 0.;
}
}
=======================================
--- /trunk/src/stepCalc.c Tue Jan 18 06:19:42 2011
+++ /trunk/src/stepCalc.c Thu Feb 9 06:16:31 2012
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010 Mario Orsi
+/* Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 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/stepInt.c Wed Dec 21 02:14:05 2011
+++ /trunk/src/stepInt.c Thu Feb 9 06:16:31 2012
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011 Mario Orsi
+/* Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 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/stepMain.c Mon Oct 17 09:15:55 2011
+++ /trunk/src/stepMain.c Thu Feb 9 06:16:31 2012
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011 Mario Orsi
+/* Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 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/sysGen.c Tue Jun 28 02:10:55 2011
+++ /trunk/src/sysGen.c Thu Feb 9 06:16:31 2012
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011 Mario Orsi
+/* Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 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 Wed Feb 9 07:48:13 2011
+++ /trunk/src/sysLoad.c Thu Feb 9 06:16:31 2012
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010 Mario Orsi
+/* Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 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/topology.c Wed Jul 20 07:59:24 2011
+++ /trunk/src/topology.c Thu Feb 9 06:16:31 2012
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011 Mario Orsi
+/* Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 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/utils.c Thu Jan 6 06:46:39 2011
+++ /trunk/src/utils.c Thu Feb 9 06:16:31 2012
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010 Mario Orsi
+/* Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 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/wpp.c Thu Jan 6 06:46:39 2011
+++ /trunk/src/wpp.c Thu Feb 9 06:16:31 2012
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010 Mario Orsi
+/* Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 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.