--- /src ---


Filename: AlgSeven.C
Revision 1.55bhatele 2007/11/01 17:39:53+8 -1
fixed the USE_TOPOMAP flag usage
Show difference between Revision 1.54 and 1.55
Revision 1.54sameer 2007/07/23 21:44:30+1 -2
Accedentally checked in computeAverage change.
Show difference between Revision 1.53 and 1.54
Revision 1.53sameer 2007/07/23 21:42:06+2 -2

Switching Proxy Usage to a hashtable. This seems to have no additional overhead but does significantly reduce
the memory usage of the loadbalancer for large molecular systems. Also checking in topomanager changes to make it a class variable. THis reduces the number of system calls from the topo manager on BG/L.
Show difference between Revision 1.52 and 1.53

Filename: CompressPsf.C
Revision 1.12chaomei2 2007/10/25 20:41:20+1 -0
Added an output showing the number of crossterm signatures.
Show difference between Revision 1.11 and 1.12
Revision 1.11chaomei2 2007/10/25 20:04:47+153 -5
Added the implementation of compressing crossterms and reading crossterms from the compressed psf file.
Now the crossterm calculation is supported in the memory optimized version.
Show difference between Revision 1.10 and 1.11
Revision 1.10chaomei2 2007/10/25 18:31:45+11 -1
Do abortion if explicit exclusions and crossterms are encountered in the psf file.

The support will be implemented later.
Show difference between Revision 1.9 and 1.10
Revision 1.9chaomei2 2007/08/10 04:57:28+6 -3
fixed the problems in supporting extra bonds feature for memory optimized version.

The problems appeared in the previous CVS versions are caused by not differentiating "numRealBonds" and "numBonds" which are the two variables inside Molecule class. For example, the exclusions should be determined only by real bonds excluding those extra bonds. In addition, the Molecule::build_atom_status uses numRealBonds to test the status of each atom. In the mmeory optimized version, bonds information is obtained through atom signatures (the bond signature, more specifically). Obviously, the real bonds and the extra bonds cannont not be differentiated through the signatures. Therefore, one variable "isReal" is added to TupleSignature structure to indicate whether this tuple is real or is an extra tuple read from the file other than psf file. This addition will help the future implementation of other extra tuples such as angles, dihedrals and impropers.
Show difference between Revision 1.8 and 1.9
Revision 1.8chaomei2 2007/08/03 07:39:22+3 -3
Change typos for NEXTRAANGLE/DIHEDRAL/IMPROPER/PARAMS
Show difference between Revision 1.7 and 1.8
Revision 1.7chaomei2 2007/08/02 22:41:16+1311 -883
Add codes to support reading extra bonds from a separate file for memory optimized version
Show difference between Revision 1.6 and 1.7

Filename: CompressPsf.h
Revision 1.3chaomei2 2007/08/02 22:41:16+2 -1
Add codes to support reading extra bonds from a separate file for memory optimized version
Show difference between Revision 1.2 and 1.3

Filename: Compute.C
Revision 1.1029jim 2007/10/11 20:59:31+3 -2
Completely revamped message priority system. New file Priorities.h
contains high-level priorities and macros for prioritizing messages.
Show difference between Revision 1.1028 and 1.1029

Filename: Compute.h
Revision 1.1018chaomei2 2007/10/15 19:23:58+7 -0
Added user events for every compute object's work. The user event name of every compute object is "type_computeId". This is useful in two aspects:
1. Track the execution time of every compute object.
2. In the timeline view in projections (the performance analysis tool), a timeline event will be associated with such a user event which shows the compute object that is directly related with this timeline event.

To enable tracing compute objects, one has to type "make tracecomputes CXXOPTS=-DTRACE_COMPUTE_OBJECTS $(CXXOPTS)" to generate the namd binary.
Show difference between Revision 1.1017 and 1.1018

Filename: ComputeAngles.C
Revision 1.1029jim 2008/06/27 21:37:01+9 -4
Deal better with angles near 0 or 180 degrees.
This poorly defined unless the equilibrium angle is also 0 or 180.
Show difference between Revision 1.1028 and 1.1029

Filename: ComputeAngles.inl
Revision 1.1008jim 2008/04/23 00:15:16+1 -9
Cleaning up bond code, removed UniqueList for tuples.
Show difference between Revision 1.1007 and 1.1008

Filename: ComputeBonds.C
Revision 1.1024chaomei2 2008/06/17 20:26:44+1 -1
Fixed some bugs when macro DEBUGM is defined.
Show difference between Revision 1.1023 and 1.1024

Filename: ComputeBonds.inl
Revision 1.1005jim 2008/04/23 00:15:16+1 -7
Cleaning up bond code, removed UniqueList for tuples.
Show difference between Revision 1.1004 and 1.1005

Filename: ComputeCrossterms.C
Revision 1.4chaomei2 2008/06/17 20:26:44+1 -1
Fixed some bugs when macro DEBUGM is defined.
Show difference between Revision 1.3 and 1.4

Filename: ComputeCrossterms.h
Revision 1.3jim 2008/04/23 00:15:16+1 -18
Cleaning up bond code, removed UniqueList for tuples.
Show difference between Revision 1.2 and 1.3

Filename: ComputeDihedrals.inl
Revision 1.1006jim 2008/04/23 00:15:16+1 -11
Cleaning up bond code, removed UniqueList for tuples.
Show difference between Revision 1.1005 and 1.1006

Filename: ComputeGridForce.C
Revision 1.10dbwells2 2008/06/08 02:10:13+1 -1
Gridforce bug fix, for continuous grids with a non-diagonal basis tensor.
Show difference between Revision 1.9 and 1.10
Revision 1.9dbwells2 2008/06/04 00:56:49+4 -3
Fixed issues with Gridforce forces applied between continuous grids.
Show difference between Revision 1.8 and 1.9
Revision 1.8dbwells2 2007/10/30 17:44:40+2 -1
Fixed missing header includes.
Show difference between Revision 1.7 and 1.8
Revision 1.7dbwells2 2007/10/30 05:51:36+1 -1
Had deleted calls to distribute Gridforce parameters to nodes
... oops. Now repaired.
Show difference between Revision 1.6 and 1.7
Revision 1.6dbwells2 2007/10/30 02:24:46+159 -163
* Drastic structural changes to Gridforce code. There is now a
'GridforceGrid' object which includes essentially all the information
that was previously a 'gridfrc...' variable in the Molecule object.
This cleans up Molecule a lot, and more importantly paves the way
for multiple grids.

* Also fixed a fairly major Gridforce bug in which the grid was
shifted slightly from the correct position. This is because the grid
origin was not corrected when adding border grid points.
Show difference between Revision 1.5 and 1.6
Revision 1.5dbwells2 2007/10/09 22:36:53+5 -3
Updated Gridforces:

* Fixed way in which continuous grids are handled.

* Fixed handling of grids whose unit vectors are not mutually
orthogonal and/or not parallel to those of the periodic cell.
Show difference between Revision 1.4 and 1.5
Revision 1.4dbwells2 2007/09/25 05:42:04+184 -103
Significant changes to Gridforces using a new, more local
interpolation scheme (Hermite/tricubic), which however appears to
produce the same interpolant as previously. Much of the old, obsolete
code from previous schemes has now been cleaned out. Now compiles with
32-bit icc.
Show difference between Revision 1.3 and 1.4
Revision 1.3dbwells2 2007/09/05 22:30:14+106 -16
Fixed the way Gridforce interpolates boundary grid points under
periodic boundary conditions.
Show difference between Revision 1.2 and 1.3

Filename: ComputeHomePatch.C
Revision 1.7jim 2008/06/30 20:39:51+1 -5
Eliminated PositionBox and extra copies of position arrays.
Periodic cell translation now done in ComputeNonbondedBase.h outer loop.
Show difference between Revision 1.6 and 1.7
Revision 1.6jim 2007/10/11 20:59:31+3 -2
Completely revamped message priority system. New file Priorities.h
contains high-level priorities and macros for prioritizing messages.
Show difference between Revision 1.5 and 1.6

Filename: ComputeHomePatch.h
Revision 1.4jim 2008/06/30 20:39:51+1 -3
Eliminated PositionBox and extra copies of position arrays.
Periodic cell translation now done in ComputeNonbondedBase.h outer loop.
Show difference between Revision 1.3 and 1.4

Filename: ComputeHomePatches.C
Revision 1.1015jim 2007/10/11 20:59:31+1 -1
Completely revamped message priority system. New file Priorities.h
contains high-level priorities and macros for prioritizing messages.
Show difference between Revision 1.1014 and 1.1015

Filename: ComputeHomePatches.h
Revision 1.1013jim 2008/06/30 20:39:51+2 -4
Eliminated PositionBox and extra copies of position arrays.
Periodic cell translation now done in ComputeNonbondedBase.h outer loop.
Show difference between Revision 1.1012 and 1.1013

Filename: ComputeHomeTuples.h
Revision 1.1050jim 2008/06/30 20:39:51+2 -4
Eliminated PositionBox and extra copies of position arrays.
Periodic cell translation now done in ComputeNonbondedBase.h outer loop.
Show difference between Revision 1.1049 and 1.1050
Revision 1.1049jim 2008/04/23 00:15:16+8 -7
Cleaning up bond code, removed UniqueList for tuples.
Show difference between Revision 1.1048 and 1.1049
Revision 1.1048bhatele 2008/01/23 07:19:31+11 -17
added commonly wrappers around some work
Show difference between Revision 1.1047 and 1.1048
Revision 1.1047jim 2007/10/11 20:59:31+2 -1
Completely revamped message priority system. New file Priorities.h
contains high-level priorities and macros for prioritizing messages.
Show difference between Revision 1.1046 and 1.1047

Filename: ComputeImpropers.C
Revision 1.1028chaomei2 2008/06/17 20:26:44+1 -1
Fixed some bugs when macro DEBUGM is defined.
Show difference between Revision 1.1027 and 1.1028

Filename: ComputeImpropers.h
Revision 1.1019jim 2008/04/23 00:15:16+1 -10
Cleaning up bond code, removed UniqueList for tuples.
Show difference between Revision 1.1018 and 1.1019

Filename: ComputeMap.C
Revision 1.1030bhatele 2008/06/01 02:32:39+0 -27
some frequently called functions inlined
Show difference between Revision 1.1029 and 1.1030

Filename: ComputeMap.h
Revision 1.1037bhatele 2008/06/01 02:32:40+17 -7
some frequently called functions inlined
Show difference between Revision 1.1036 and 1.1037

Filename: ComputeMgr.C
Revision 1.1073dbwells2 2007/11/12 17:31:29+2 -1
Added new transverse force feature to SMD. The user may now optionally
specify a second spring constant (keyword SMDk2) which will describe a
force perpendicular to the pulling direction. This second spring
constant defaults to zero, which reproduces the original SMD
behavior. This feature is particularly useful for restraining the
center of mass of atoms in all three directions simultaneously
(i.e. SMDVel = 0.)
Show difference between Revision 1.1072 and 1.1073
Revision 1.1072chaomei2 2007/10/15 19:23:58+567 -408
Added user events for every compute object's work. The user event name of every compute object is "type_computeId". This is useful in two aspects:
1. Track the execution time of every compute object.
2. In the timeline view in projections (the performance analysis tool), a timeline event will be associated with such a user event which shows the compute object that is directly related with this timeline event.

To enable tracing compute objects, one has to type "make tracecomputes CXXOPTS=-DTRACE_COMPUTE_OBJECTS $(CXXOPTS)" to generate the namd binary.
Show difference between Revision 1.1071 and 1.1072
Revision 1.1071bhatele 2007/07/26 19:31:55+20 -6
checked in code is commented for now. will be used eventually for shifting the creation of ST
Show difference between Revision 1.1070 and 1.1071

Filename: ComputeNonbondedBase.h
Revision 1.1141char 2008/06/30 23:20:09+2 -8
resolved minor conflict with Periodic cell tranlation in outer loop as implemented in 1.1139 of ComputeNonbondedBase.h
Show difference between Revision 1.1140 and 1.1141
Revision 1.1140char 2008/06/30 22:55:38+500 -41
*** added new softcore FEP and TI ***
Show difference between Revision 1.1139 and 1.1140
Revision 1.1139jim 2008/06/30 20:39:51+8 -4
Eliminated PositionBox and extra copies of position arrays.
Periodic cell translation now done in ComputeNonbondedBase.h outer loop.
Show difference between Revision 1.1138 and 1.1139
Revision 1.1138kunzman 2007/11/30 15:34:10+145 -0
Added comments to atom sort defines. Modified merge sort to try and
improve performance.
Show difference between Revision 1.1137 and 1.1138
Revision 1.1137kunzman 2007/11/27 22:32:47+647 -40
Modified atom separation code to pass the number of water atoms on to
the compute code in ComputeNonbondedBase.h.

Modified pairlist generation code to sort atoms along the line between
the center of masses for a pair of patches. The sort information is
then used to skip as many distance caclculations as possible to reduce
pairlist generation time if possible.
Show difference between Revision 1.1136 and 1.1137
Revision 1.1136johns 2007/11/04 20:22:52+34 -34
Converted all of the SSE code to intrinsics, as they are available
in new versions of GNU gcc, and Microsoft's compilers, whereas the
Intel SIMD vector classes are not. The intrinsics are also more portable
than inline assembly, since there are several dialects of inline
asm blocks which differ between Intel, GNU, and Microsoft.
The new intrinsics-based code should generate identical assembly
language to the previous class-based code. There may be a couple
of places where we can eliminate some redundant conversion instructions
since the intrinsics expose a few more details than the classes did
and map more directly to the actual machine instructions.
Show difference between Revision 1.1135 and 1.1136
Revision 1.1135johns 2007/11/02 04:19:01+4 -4
Made the SSE pairlist code use 16-byte-aligned stores, which are
slightly faster.
Show difference between Revision 1.1134 and 1.1135
Revision 1.1134jordi 2007/10/31 17:46:28+4 -4
FEP: Fixed a small mismatch when using fepVdwLambdaEnd that would cause
vdw scaling to not be completely confined in its stated range of lambda.
Show difference between Revision 1.1133 and 1.1134
Revision 1.1133jordi 2007/10/30 16:59:20+20 -5
FEP: Added fepVdwLambdaEnd and fepElecLambdaStart to control when to
scale vdw and electrostatics. This very significantly improves the
results of FEP calcuclations when charges are involved. Also, removed
fepVdwScaleExp (which was not that useful in retrospect)
Show difference between Revision 1.1132 and 1.1133
Revision 1.1132johns 2007/10/30 04:24:01+3 -2
prettied up the code a tad
Show difference between Revision 1.1131 and 1.1132
Revision 1.1131johns 2007/10/30 04:17:14+64 -1
Added another SSE accelerated pairlist loop where we already had an
existing optimized loop. The remaining loops do not appear to be
viewed as performance-critical based on their appearance, so further
SSE pairlist acceleration will require consultation with Jim and
more profiling.
Show difference between Revision 1.1130 and 1.1131
Revision 1.1130johns 2007/10/30 03:56:53+61 -2
Added an Intel SSE pairlist loop directly based on the existing
pairlist loop that was already made to be friendly to the IBM double-hummer.
This initial implementation gives a nice little speed boost, but can
definitely be improved by using SSE conditionals and other niceties that
the present code doesn't bother with.
Show difference between Revision 1.1129 and 1.1130
Revision 1.1129jordi 2007/10/07 01:03:33+19 -6
Towards a working FEP...
Implemented a new FEP vdW scaling function that removes the end-point
catastrophe that used to happen a lot in NAMD. The vdw potential has
the form:
V(r) = A/r^12 - B/r^6
The new scaled V looks like this:
V'(r) = lambda A'/r'^12 - B'/r'^6
where:
A' = lambda^2n * A
B' = lambda^n * B
r'^2 = r^2 + shift * (1.-lambda)
This form scales well and gives accurate and reproducible
results for tested FEP calculations. Velocity crashes are now almost
non-existent (if Coulomb forces are not significant).

Also added two new NAMD config file options:
fepVdwShiftCoeff: sets value "shift" [default 5, range >= 0]
fepVdwScaleExp: sets the exponent "n" [default 0]

Values one can use:
shift = 0, n=0: old NAMD way (crashes a lot and bad convergence)
shift = 5, n=0: used in CHARMM
shift = 1, n=2: this scales quite nicely as well
Show difference between Revision 1.1128 and 1.1129
Revision 1.1128jordi 2007/10/06 21:37:41+23 -3
Towards a working FEP...
This patch does not change NAMD's behavior except that it refactors the
Nonbonded calculation by clearly separating the FEP and non-FEP paths. The
FEP path now computes the vdW function explicitly without using the lookup
tables. This makes it 20-25% slower (in FEP mode), but it allows the FEP
scaling function to be easily modified. This refactoring is meant to
provide a version of the new FEP code that can be directly compared to the
previous FEP behavior (for testing, debugging and future diffing purposes).
Show difference between Revision 1.1127 and 1.1128

Filename: ComputeNonbondedBase2.h
Revision 1.28char 2008/06/30 22:55:38+109 -87
*** added new softcore FEP and TI ***
Show difference between Revision 1.27 and 1.28
Revision 1.27char 2008/01/07 16:42:50+7 -3
*** fixed scaling softcore ***
Show difference between Revision 1.26 and 1.27
Revision 1.26jordi 2007/10/30 16:59:20+39 -31
FEP: Added fepVdwLambdaEnd and fepElecLambdaStart to control when to
scale vdw and electrostatics. This very significantly improves the
results of FEP calcuclations when charges are involved. Also, removed
fepVdwScaleExp (which was not that useful in retrospect)
Show difference between Revision 1.25 and 1.26
Revision 1.25jordi 2007/10/07 01:03:34+11 -11
Towards a working FEP...
Implemented a new FEP vdW scaling function that removes the end-point
catastrophe that used to happen a lot in NAMD. The vdw potential has
the form:
V(r) = A/r^12 - B/r^6
The new scaled V looks like this:
V'(r) = lambda A'/r'^12 - B'/r'^6
where:
A' = lambda^2n * A
B' = lambda^n * B
r'^2 = r^2 + shift * (1.-lambda)
This form scales well and gives accurate and reproducible
results for tested FEP calculations. Velocity crashes are now almost
non-existent (if Coulomb forces are not significant).

Also added two new NAMD config file options:
fepVdwShiftCoeff: sets value "shift" [default 5, range >= 0]
fepVdwScaleExp: sets the exponent "n" [default 0]

Values one can use:
shift = 0, n=0: old NAMD way (crashes a lot and bad convergence)
shift = 5, n=0: used in CHARMM
shift = 1, n=2: this scales quite nicely as well
Show difference between Revision 1.24 and 1.25
Revision 1.24jordi 2007/10/06 21:37:41+95 -25
Towards a working FEP...
This patch does not change NAMD's behavior except that it refactors the
Nonbonded calculation by clearly separating the FEP and non-FEP paths. The
FEP path now computes the vdW function explicitly without using the lookup
tables. This makes it 20-25% slower (in FEP mode), but it allows the FEP
scaling function to be easily modified. This refactoring is meant to
provide a version of the new FEP code that can be directly compared to the
previous FEP behavior (for testing, debugging and future diffing purposes).
Show difference between Revision 1.23 and 1.24

Filename: ComputeNonbondedFEP.C
Revision 1.2char 2008/06/30 22:55:38+133 -0
*** empty log message ***
Show difference between Revision 1.1 and 1.2

Filename: ComputeNonbondedPair.C
Revision 1.1041jim 2008/06/30 20:39:51+4 -0
Eliminated PositionBox and extra copies of position arrays.
Periodic cell translation now done in ComputeNonbondedBase.h outer loop.
Show difference between Revision 1.1040 and 1.1041
Revision 1.1040chaomei2 2008/03/03 21:11:28+3 -3
A little change for the memory optimized version
Show difference between Revision 1.1039 and 1.1040
Revision 1.1039kunzman 2007/11/27 22:32:47+7 -0
Modified atom separation code to pass the number of water atoms on to
the compute code in ComputeNonbondedBase.h.

Modified pairlist generation code to sort atoms along the line between
the center of masses for a pair of patches. The sort information is
then used to skip as many distance caclculations as possible to reduce
pairlist generation time if possible.
Show difference between Revision 1.1038 and 1.1039
Revision 1.1038chaomei2 2007/10/15 19:23:58+8 -0
Added user events for every compute object's work. The user event name of every compute object is "type_computeId". This is useful in two aspects:
1. Track the execution time of every compute object.
2. In the timeline view in projections (the performance analysis tool), a timeline event will be associated with such a user event which shows the compute object that is directly related with this timeline event.

To enable tracing compute objects, one has to type "make tracecomputes CXXOPTS=-DTRACE_COMPUTE_OBJECTS $(CXXOPTS)" to generate the namd binary.
Show difference between Revision 1.1037 and 1.1038

Filename: ComputeNonbondedPair.h
Revision 1.1019jim 2008/06/30 20:39:51+1 -1
Eliminated PositionBox and extra copies of position arrays.
Periodic cell translation now done in ComputeNonbondedBase.h outer loop.
Show difference between Revision 1.1018 and 1.1019

Filename: ComputeNonbondedSelf.C
Revision 1.1034jim 2008/06/30 20:39:51+1 -0
Eliminated PositionBox and extra copies of position arrays.
Periodic cell translation now done in ComputeNonbondedBase.h outer loop.
Show difference between Revision 1.1033 and 1.1034
Revision 1.1033kunzman 2007/11/27 22:32:47+7 -0
Modified atom separation code to pass the number of water atoms on to
the compute code in ComputeNonbondedBase.h.

Modified pairlist generation code to sort atoms along the line between
the center of masses for a pair of patches. The sort information is
then used to skip as many distance caclculations as possible to reduce
pairlist generation time if possible.
Show difference between Revision 1.1032 and 1.1033
Revision 1.1032chaomei2 2007/10/15 19:23:58+8 -0
Added user events for every compute object's work. The user event name of every compute object is "type_computeId". This is useful in two aspects:
1. Track the execution time of every compute object.
2. In the timeline view in projections (the performance analysis tool), a timeline event will be associated with such a user event which shows the compute object that is directly related with this timeline event.

To enable tracing compute objects, one has to type "make tracecomputes CXXOPTS=-DTRACE_COMPUTE_OBJECTS $(CXXOPTS)" to generate the namd binary.
Show difference between Revision 1.1031 and 1.1032

Filename: ComputeNonbondedSelf.h
Revision 1.1017jim 2008/06/30 20:39:51+1 -1
Eliminated PositionBox and extra copies of position arrays.
Periodic cell translation now done in ComputeNonbondedBase.h outer loop.
Show difference between Revision 1.1016 and 1.1017

Filename: ComputeNonbondedStd.C
Revision 1.5kunzman 2007/11/27 22:32:48+8 -0
Modified atom separation code to pass the number of water atoms on to
the compute code in ComputeNonbondedBase.h.

Modified pairlist generation code to sort atoms along the line between
the center of masses for a pair of patches. The sort information is
then used to skip as many distance caclculations as possible to reduce
pairlist generation time if possible.
Show difference between Revision 1.4 and 1.5

Filename: ComputeNonbondedUtil.C
Revision 1.1090char 2008/06/30 22:55:38+31 -23
*** added new softcore FEP and TI ***
Show difference between Revision 1.1089 and 1.1090
Revision 1.1089jordi 2007/10/30 16:59:20+12 -10
FEP: Added fepVdwLambdaEnd and fepElecLambdaStart to control when to
scale vdw and electrostatics. This very significantly improves the
results of FEP calcuclations when charges are involved. Also, removed
fepVdwScaleExp (which was not that useful in retrospect)
Show difference between Revision 1.1088 and 1.1089
Revision 1.1088jordi 2007/10/07 01:03:34+5 -1
Towards a working FEP...
Implemented a new FEP vdW scaling function that removes the end-point
catastrophe that used to happen a lot in NAMD. The vdw potential has
the form:
V(r) = A/r^12 - B/r^6
The new scaled V looks like this:
V'(r) = lambda A'/r'^12 - B'/r'^6
where:
A' = lambda^2n * A
B' = lambda^n * B
r'^2 = r^2 + shift * (1.-lambda)
This form scales well and gives accurate and reproducible
results for tested FEP calculations. Velocity crashes are now almost
non-existent (if Coulomb forces are not significant).

Also added two new NAMD config file options:
fepVdwShiftCoeff: sets value "shift" [default 5, range >= 0]
fepVdwScaleExp: sets the exponent "n" [default 0]

Values one can use:
shift = 0, n=0: old NAMD way (crashes a lot and bad convergence)
shift = 5, n=0: used in CHARMM
shift = 1, n=2: this scales quite nicely as well
Show difference between Revision 1.1087 and 1.1088

Filename: ComputeNonbondedUtil.h
Revision 1.1060char 2008/06/30 22:55:38+37 -0
*** added new softcore FEP and TI ***
Show difference between Revision 1.1059 and 1.1060
Revision 1.1059jim 2008/06/30 20:39:51+2 -0
Eliminated PositionBox and extra copies of position arrays.
Periodic cell translation now done in ComputeNonbondedBase.h outer loop.
Show difference between Revision 1.1058 and 1.1059
Revision 1.1058kunzman 2007/11/27 22:32:48+21 -0
Modified atom separation code to pass the number of water atoms on to
the compute code in ComputeNonbondedBase.h.

Modified pairlist generation code to sort atoms along the line between
the center of masses for a pair of patches. The sort information is
then used to skip as many distance caclculations as possible to reduce
pairlist generation time if possible.
Show difference between Revision 1.1057 and 1.1058
Revision 1.1057jordi 2007/10/30 16:59:20+2 -1
FEP: Added fepVdwLambdaEnd and fepElecLambdaStart to control when to
scale vdw and electrostatics. This very significantly improves the
results of FEP calcuclations when charges are involved. Also, removed
fepVdwScaleExp (which was not that useful in retrospect)
Show difference between Revision 1.1056 and 1.1057
Revision 1.1056jordi 2007/10/07 01:03:34+2 -0
Towards a working FEP...
Implemented a new FEP vdW scaling function that removes the end-point
catastrophe that used to happen a lot in NAMD. The vdw potential has
the form:
V(r) = A/r^12 - B/r^6
The new scaled V looks like this:
V'(r) = lambda A'/r'^12 - B'/r'^6
where:
A' = lambda^2n * A
B' = lambda^n * B
r'^2 = r^2 + shift * (1.-lambda)
This form scales well and gives accurate and reproducible
results for tested FEP calculations. Velocity crashes are now almost
non-existent (if Coulomb forces are not significant).

Also added two new NAMD config file options:
fepVdwShiftCoeff: sets value "shift" [default 5, range >= 0]
fepVdwScaleExp: sets the exponent "n" [default 0]

Values one can use:
shift = 0, n=0: old NAMD way (crashes a lot and bad convergence)
shift = 5, n=0: used in CHARMM
shift = 1, n=2: this scales quite nicely as well
Show difference between Revision 1.1055 and 1.1056

Filename: ComputePatch.C
Revision 1.1026jim 2008/06/30 20:39:51+1 -5
Eliminated PositionBox and extra copies of position arrays.
Periodic cell translation now done in ComputeNonbondedBase.h outer loop.
Show difference between Revision 1.1025 and 1.1026
Revision 1.1025kunzman 2007/11/27 22:32:48+5 -0
Modified atom separation code to pass the number of water atoms on to
the compute code in ComputeNonbondedBase.h.

Modified pairlist generation code to sort atoms along the line between
the center of masses for a pair of patches. The sort information is
then used to skip as many distance caclculations as possible to reduce
pairlist generation time if possible.
Show difference between Revision 1.1024 and 1.1025
Revision 1.1024jim 2007/10/11 20:59:31+3 -2
Completely revamped message priority system. New file Priorities.h
contains high-level priorities and macros for prioritizing messages.
Show difference between Revision 1.1023 and 1.1024

Filename: ComputePatch.h
Revision 1.1014jim 2008/06/30 20:39:51+1 -3
Eliminated PositionBox and extra copies of position arrays.
Periodic cell translation now done in ComputeNonbondedBase.h outer loop.
Show difference between Revision 1.1013 and 1.1014
Revision 1.1013kunzman 2007/11/27 22:32:48+6 -0
Modified atom separation code to pass the number of water atoms on to
the compute code in ComputeNonbondedBase.h.

Modified pairlist generation code to sort atoms along the line between
the center of masses for a pair of patches. The sort information is
then used to skip as many distance caclculations as possible to reduce
pairlist generation time if possible.
Show difference between Revision 1.1012 and 1.1013

Filename: ComputePatchPair.C
Revision 1.1028jim 2008/06/30 20:39:51+1 -7
Eliminated PositionBox and extra copies of position arrays.
Periodic cell translation now done in ComputeNonbondedBase.h outer loop.
Show difference between Revision 1.1027 and 1.1028
Revision 1.1027chaomei2 2008/03/03 21:11:28+9 -0
A little change for the memory optimized version
Show difference between Revision 1.1026 and 1.1027
Revision 1.1026kunzman 2007/11/27 22:32:48+8 -0
Modified atom separation code to pass the number of water atoms on to
the compute code in ComputeNonbondedBase.h.

Modified pairlist generation code to sort atoms along the line between
the center of masses for a pair of patches. The sort information is
then used to skip as many distance caclculations as possible to reduce
pairlist generation time if possible.
Show difference between Revision 1.1025 and 1.1026
Revision 1.1025jim 2007/10/11 20:59:31+14 -14
Completely revamped message priority system. New file Priorities.h
contains high-level priorities and macros for prioritizing messages.
Show difference between Revision 1.1024 and 1.1025

Filename: ComputePatchPair.h
Revision 1.1014jim 2008/06/30 20:39:51+1 -3
Eliminated PositionBox and extra copies of position arrays.
Periodic cell translation now done in ComputeNonbondedBase.h outer loop.
Show difference between Revision 1.1013 and 1.1014
Revision 1.1013kunzman 2007/11/27 22:32:48+6 -0
Modified atom separation code to pass the number of water atoms on to
the compute code in ComputeNonbondedBase.h.

Modified pairlist generation code to sort atoms along the line between
the center of masses for a pair of patches. The sort information is
then used to skip as many distance caclculations as possible to reduce
pairlist generation time if possible.
Show difference between Revision 1.1012 and 1.1013

Filename: ComputePme.C
Revision 1.115char 2008/06/30 22:55:38+61 -8
*** added new softcore FEP and TI ***
Show difference between Revision 1.114 and 1.115
Revision 1.114jim 2008/04/09 19:16:48+3 -3
AIX compile fixes.
Show difference between Revision 1.113 and 1.114
Revision 1.113bhatele 2008/01/23 07:19:31+3 -1
added commonly wrappers around some work
Show difference between Revision 1.112 and 1.113
Revision 1.112jordi 2007/11/07 16:42:50+2 -13
*** empty log message ***
Show difference between Revision 1.111 and 1.112
Revision 1.111jordi 2007/11/02 18:36:32+13 -2
FEP: FEP electrostatics clamping (through the fepElecLambdaStart
option) now supports PME.
Show difference between Revision 1.110 and 1.111
Revision 1.110jim 2007/10/16 01:13:25+92 -70
Reworked pencil placement to use bit reversal and patch locations
followed by round-robin to avoid sending and receiving in the same
phase as much as possible. Only uses node 0 if it has a patch or
is very likely to improve performance.
Show difference between Revision 1.109 and 1.110
Revision 1.109jim 2007/10/15 20:40:14+86 -12
Eliminate replies to empty pencil PME messages.
Show difference between Revision 1.108 and 1.109
Revision 1.108chaomei2 2007/10/15 19:23:58+8 -0
Added user events for every compute object's work. The user event name of every compute object is "type_computeId". This is useful in two aspects:
1. Track the execution time of every compute object.
2. In the timeline view in projections (the performance analysis tool), a timeline event will be associated with such a user event which shows the compute object that is directly related with this timeline event.

To enable tracing compute objects, one has to type "make tracecomputes CXXOPTS=-DTRACE_COMPUTE_OBJECTS $(CXXOPTS)" to generate the namd binary.
Show difference between Revision 1.107 and 1.108
Revision 1.107jim 2007/10/14 16:42:24+10 -8
simple cleanups
Show difference between Revision 1.106 and 1.107
Revision 1.106jim 2007/10/11 20:59:31+39 -34
Completely revamped message priority system. New file Priorities.h
contains high-level priorities and macros for prioritizing messages.
Show difference between Revision 1.105 and 1.106
Revision 1.105jim 2007/10/10 23:29:41+17 -7
prioritize pencil pme messages
Show difference between Revision 1.104 and 1.105
Revision 1.104jim 2007/10/08 03:38:55+11 -6
Put PME grid and transpose slabs on different processors.
Show difference between Revision 1.103 and 1.104
Revision 1.103jim 2007/10/07 21:12:20+19 -3
Prioritize slab-based PME messages.
Show difference between Revision 1.102 and 1.103

Filename: ComputePme.h
Revision 1.24char 2008/06/30 22:55:38+2 -1
*** added new softcore FEP and TI ***
Show difference between Revision 1.23 and 1.24

Filename: ComputePmeMgr.ci
Revision 1.21bhatele 2008/02/11 19:20:16+38 -38
fixed indentation for better readability
Show difference between Revision 1.20 and 1.21
Revision 1.20jim 2007/10/15 20:40:14+34 -2
Eliminate replies to empty pencil PME messages.
Show difference between Revision 1.19 and 1.20
Revision 1.19jim 2007/10/14 16:42:24+4 -12
simple cleanups
Show difference between Revision 1.18 and 1.19
Revision 1.18jim 2007/10/10 23:30:50+20 -20
removed [expedited] to allow prioritization of messages
Show difference between Revision 1.17 and 1.18

Filename: ComputeSelfTuples.h
Revision 1.17jim 2008/04/23 00:15:16+2 -59
Cleaning up bond code, removed UniqueList for tuples.
Show difference between Revision 1.16 and 1.17
Revision 1.16chaomei2 2007/10/15 19:23:58+8 -0
Added user events for every compute object's work. The user event name of every compute object is "type_computeId". This is useful in two aspects:
1. Track the execution time of every compute object.
2. In the timeline view in projections (the performance analysis tool), a timeline event will be associated with such a user event which shows the compute object that is directly related with this timeline event.

To enable tracing compute objects, one has to type "make tracecomputes CXXOPTS=-DTRACE_COMPUTE_OBJECTS $(CXXOPTS)" to generate the namd binary.
Show difference between Revision 1.15 and 1.16
Revision 1.15jim 2007/10/11 20:59:31+2 -2
Completely revamped message priority system. New file Priorities.h
contains high-level priorities and macros for prioritizing messages.
Show difference between Revision 1.14 and 1.15

Filename: ComputeTclBC.C
Revision 1.5jim 2007/12/05 22:08:37+4 -3
Define USE_COMPAT_CONST before every include of tcl.h to allow building
with either Tcl 8.3 or 8.4. Treat strings returned from Tcl as const.
Show difference between Revision 1.4 and 1.5

Filename: ComputeTclBC.h
Revision 1.5jim 2007/12/05 22:08:37+1 -0
Define USE_COMPAT_CONST before every include of tcl.h to allow building
with either Tcl 8.3 or 8.4. Treat strings returned from Tcl as const.
Show difference between Revision 1.4 and 1.5

Filename: Controller.C
Revision 1.1220char 2008/06/30 22:55:38+127 -3
*** added new softcore FEP and TI ***
Show difference between Revision 1.1219 and 1.1220
Revision 1.1219bhatele 2008/06/05 06:23:49+8 -1
added a SimParameter lastLdbStep to stop load balancing after certain number
of time steps

Also cleaned up some code in the load balancers which was confusing
Show difference between Revision 1.1218 and 1.1219
Revision 1.1218petefred 2008/02/25 23:58:11+7 -3
Add initial implementation of TIP4P water.

TIP4P is requested with the watModel tip4p simulation parameter. I'll be curating and distributing compatible top/par files; a couple of namd-l denizens seem interested in early access, but all of the physical properties check out ok, so I don't expect that many further changes will be needed until we move to wanting more general lone pairs.
Show difference between Revision 1.1217 and 1.1218
Revision 1.1217johns 2007/10/25 21:17:57+4 -0
Added comments warning about SMP-unsafe global and static variables.
Signal handlers are also potentially thread-unsafe, though this is
extremely platform dependent.
Show difference between Revision 1.1216 and 1.1217

Filename: Controller.h
Revision 1.1060char 2008/06/30 22:55:38+26 -0
*** added new softcore FEP and TI ***
Show difference between Revision 1.1059 and 1.1060

Filename: Debug.h
Revision 1.1007chaomei2 2008/06/17 20:35:18+61 -0
Added a processor private variable that helps writing debugging info to files (every different core writes to a different file).
Show difference between Revision 1.1006 and 1.1007

Filename: DumpBenchParams.h
Revision 1.5jordi 2007/10/30 16:59:21+0 -1
FEP: Added fepVdwLambdaEnd and fepElecLambdaStart to control when to
scale vdw and electrostatics. This very significantly improves the
results of FEP calcuclations when charges are involved. Also, removed
fepVdwScaleExp (which was not that useful in retrospect)
Show difference between Revision 1.4 and 1.5
Revision 1.4jordi 2007/10/07 01:03:34+3 -1
Towards a working FEP...
Implemented a new FEP vdW scaling function that removes the end-point
catastrophe that used to happen a lot in NAMD. The vdw potential has
the form:
V(r) = A/r^12 - B/r^6
The new scaled V looks like this:
V'(r) = lambda A'/r'^12 - B'/r'^6
where:
A' = lambda^2n * A
B' = lambda^n * B
r'^2 = r^2 + shift * (1.-lambda)
This form scales well and gives accurate and reproducible
results for tested FEP calculations. Velocity crashes are now almost
non-existent (if Coulomb forces are not significant).

Also added two new NAMD config file options:
fepVdwShiftCoeff: sets value "shift" [default 5, range >= 0]
fepVdwScaleExp: sets the exponent "n" [default 0]

Values one can use:
shift = 0, n=0: old NAMD way (crashes a lot and bad convergence)
shift = 5, n=0: used in CHARMM
shift = 1, n=2: this scales quite nicely as well
Show difference between Revision 1.3 and 1.4

Filename: FileIO.C
Revision 1.3bhatele 2008/06/19 01:20:06+0 -3
fixed compilation error
Show difference between Revision 1.2 and 1.3
Revision 1.2kunzman 2008/06/18 19:08:44+3 -0
Fixed FileIO compile issues.
Show difference between Revision 1.1 and 1.2
Revision 1.1bohm 2008/06/17 19:26:03None
basic infrastructure to support parallel I/O

Filename: FileIO.ci
Revision 1.1bohm 2008/06/17 19:26:04None
basic infrastructure to support parallel I/O

Filename: FileIO.h
Revision 1.2bohm 2008/06/18 20:06:13+38 -8
slightly more useful version
Show difference between Revision 1.1 and 1.2
Revision 1.1kunzman 2008/06/18 19:10:00None
Fixed FileIO compile issues.

Filename: FileIOMgr.h
Revision 1.1bohm 2008/06/17 19:26:04None
basic infrastructure to support parallel I/O

Filename: FreeEnergyAssert.C

Filename: GlobalMasterFreeEnergy.C
Revision 1.6jim 2008/02/09 21:45:40+1 -0
Fix crash when truncating very long config for printing.
Show difference between Revision 1.5 and 1.6

Filename: GlobalMasterIMD.C
Revision 1.8johns 2007/10/25 21:14:10+4 -0
Added comments warning about SMP-unsafe global and static variables.
Show difference between Revision 1.7 and 1.8

Filename: GlobalMasterSMD.C
Revision 1.7dbwells2 2007/11/12 17:31:29+6 -2
Added new transverse force feature to SMD. The user may now optionally
specify a second spring constant (keyword SMDk2) which will describe a
force perpendicular to the pulling direction. This second spring
constant defaults to zero, which reproduces the original SMD
behavior. This feature is particularly useful for restraining the
center of mass of atoms in all three directions simultaneously
(i.e. SMDVel = 0.)
Show difference between Revision 1.6 and 1.7

Filename: GlobalMasterSMD.h
Revision 1.3dbwells2 2007/11/12 17:31:29+4 -1
Added new transverse force feature to SMD. The user may now optionally
specify a second spring constant (keyword SMDk2) which will describe a
force perpendicular to the pulling direction. This second spring
constant defaults to zero, which reproduces the original SMD
behavior. This feature is particularly useful for restraining the
center of mass of atoms in all three directions simultaneously
(i.e. SMDVel = 0.)
Show difference between Revision 1.2 and 1.3

Filename: GlobalMasterServer.C
Revision 1.6jim 2008/02/10 20:29:43+8 -0
Catch bug. Due to a design error, GlobalMasterServer does not support
individual atom requests from multiple global force clients on parallel runs.
Show difference between Revision 1.5 and 1.6

Filename: GlobalMasterTMD.C
Revision 1.3jim 2008/02/11 02:14:44+13 -2
Fix bug that broke targetted MD for parallel runs. Forces were calculated
correctly but applied to the wrong targetted atoms in random permutation.
Show difference between Revision 1.2 and 1.3

Filename: GlobalMasterTMD.h
Revision 1.2jim 2008/02/11 02:14:44+1 -0
Fix bug that broke targetted MD for parallel runs. Forces were calculated
correctly but applied to the wrong targetted atoms in random permutation.
Show difference between Revision 1.1 and 1.2

Filename: GlobalMasterTcl.C
Revision 1.18petefred 2008/06/12 21:44:24+29 -6
Fix loadforces to not clobber previous entries if there have been multiple
forces applied to an atom (they are now summed instead)
Show difference between Revision 1.17 and 1.18
Revision 1.17jim 2007/12/05 22:08:37+5 -4
Define USE_COMPAT_CONST before every include of tcl.h to allow building
with either Tcl 8.3 or 8.4. Treat strings returned from Tcl as const.
Show difference between Revision 1.16 and 1.17

Filename: GlobalMasterTcl.h
Revision 1.7jim 2007/12/05 22:08:37+1 -0
Define USE_COMPAT_CONST before every include of tcl.h to allow building
with either Tcl 8.3 or 8.4. Treat strings returned from Tcl as const.
Show difference between Revision 1.6 and 1.7

Filename: GridForceGrid.C
Revision 1.7dbwells2 2008/06/08 02:10:13+6 -6
Gridforce bug fix, for continuous grids with a non-diagonal basis tensor.
Show difference between Revision 1.6 and 1.7
Revision 1.6dbwells2 2008/06/04 00:56:49+46 -22
Fixed issues with Gridforce forces applied between continuous grids.
Show difference between Revision 1.5 and 1.6
Revision 1.5dbwells2 2008/05/16 20:48:37+7 -2
Fixed bug in Gridforce. Sim parameters for gridcont keywords were not
correctly copied between nodes.
Show difference between Revision 1.4 and 1.5
Revision 1.4dbwells2 2008/04/14 23:14:47+1 -1
Removing "DEBUGM" definition to suppress debugging output.
Show difference between Revision 1.3 and 1.4
Revision 1.3dbwells2 2008/04/07 21:22:24+41 -35
Gridforce update: voltage offsets between periodic images of grid fixed.
Show difference between Revision 1.2 and 1.3
Revision 1.2dbwells2 2007/10/30 05:51:36+19 -1
Had deleted calls to distribute Gridforce parameters to nodes
... oops. Now repaired.
Show difference between Revision 1.1 and 1.2
Revision 1.1dbwells2 2007/10/30 02:24:47None
* Drastic structural changes to Gridforce code. There is now a
'GridforceGrid' object which includes essentially all the information
that was previously a 'gridfrc...' variable in the Molecule object.
This cleans up Molecule a lot, and more importantly paves the way
for multiple grids.

* Also fixed a fairly major Gridforce bug in which the grid was
shifted slightly from the correct position. This is because the grid
origin was not corrected when adding border grid points.

Filename: GridForceGrid.h
Revision 1.3dbwells2 2008/06/04 00:56:49+2 -0
Fixed issues with Gridforce forces applied between continuous grids.
Show difference between Revision 1.2 and 1.3
Revision 1.2jim 2008/04/09 19:16:49+1 -1
AIX compile fixes.
Show difference between Revision 1.1 and 1.2
Revision 1.1dbwells2 2007/10/30 02:24:47None
* Drastic structural changes to Gridforce code. There is now a
'GridforceGrid' object which includes essentially all the information
that was previously a 'gridfrc...' variable in the Molecule object.
This cleans up Molecule a lot, and more importantly paves the way
for multiple grids.

* Also fixed a fairly major Gridforce bug in which the grid was
shifted slightly from the correct position. This is because the grid
origin was not corrected when adding border grid points.

Filename: GromacsTopFile.C

Filename: HomePatch.C
Revision 1.1153chaomei2 2008/06/17 20:43:22+192 -20
An initial implementation (a very straightforward way) of node aware spanning tree related to proxies. This spanning tree code is separated from others by macro NODEAWARE_PROXY_SPANNINGTREE. When this change gives better performance to namd, we could discard the old spanning tree codes.
Show difference between Revision 1.1152 and 1.1153
Revision 1.1152chaomei2 2008/03/07 00:57:39+29 -1
1. Add comppile-time flags to allow users to choose whether to remove
the extra copy overhead of proxy msgs (ProxyDataMsg and ProxyResultMsg).

2. Add the optimization to remove the extra copy involved in the proxy
result msg.

2. Add padding bytes to the varsize proxy msgs, so that the beginning of
CompAtom list in the ProxyDataMsg is 32-byte aligned if the underlying
Charm layer has ensured the beginning of a msg is 32-byte aligned;
the beginning of Force list in the ProxyResultVarsizeMsg is 8-byte
aligned. This is done to accord to the alignment requirement before this
optimization since the alignment will give better performance,
especially on the BG/L machine.
Show difference between Revision 1.1151 and 1.1152
Revision 1.1151chaomei2 2008/03/03 21:05:52+61 -38
1. Declare the ProxyDataMsg and ProxyAllMsg as the same type which makes codes cleaner. The only overhead per msg added is just 4 bytes.

2. Change the packed type ProxyDataMsg (including ProxyAllMsg) into varsize msg, and the position array inside the msg will be reused in the computation so that the overhead of extra copy
is avoided.

3. Fixed a tricky bug that is related to load balancing for the memory optimized version.
Show difference between Revision 1.1150 and 1.1151
Revision 1.1150petefred 2008/02/25 23:58:11+254 -21
Add initial implementation of TIP4P water.

TIP4P is requested with the watModel tip4p simulation parameter. I'll be curating and distributing compatible top/par files; a couple of namd-l denizens seem interested in early access, but all of the physical properties check out ok, so I don't expect that many further changes will be needed until we move to wanting more general lone pairs.
Show difference between Revision 1.1149 and 1.1150
Revision 1.1149bhatele 2008/02/03 05:08:36+19 -16
PROXY_SPAN_DIM is no longer a #define
it is now defined in ProxyMgr.C as proxySpanDim
Eventually it'll become a SimParameter
Show difference between Revision 1.1148 and 1.1149
Revision 1.1148kunzman 2007/11/27 22:32:48+12 -0
Modified atom separation code to pass the number of water atoms on to
the compute code in ComputeNonbondedBase.h.

Modified pairlist generation code to sort atoms along the line between
the center of masses for a pair of patches. The sort information is
then used to skip as many distance caclculations as possible to reduce
pairlist generation time if possible.
Show difference between Revision 1.1147 and 1.1148
Revision 1.1147kunzman 2007/11/05 19:49:16+433 -18
Modified HomePatch to separate hydrogen groups (waters vs.
non-waters). To enable this separation, set NAMD_SeparateWaters (in
common.h) to a non-zero value.
Show difference between Revision 1.1146 and 1.1147
Revision 1.1146johns 2007/10/26 21:50:54+20 -3
Split the initialization logic for cached water atom properties into a new
settle1init() function, added a settle1isinitted() query, and eliminated
runtime initialization tests from settle1().
Eliminated redundant arithmetic in settlec() and inlined the whole
function into settle1() since it is not used elsewhere.
The new code avoids expensive divisions where possible, precalculates
a couple of additional quantities, but makes no assumptions that the
original code wasn't already making. The settle1init() routine is
currently called on entry into rattle1() if it has not already been
initialized. The initialization will move to Molecule::build_atom_status
once that version is debugged.
Show difference between Revision 1.1145 and 1.1146
Revision 1.1145johns 2007/10/26 15:45:06+1 -1
Replaced floating point divides in settle1() with multiplies with invdt
Show difference between Revision 1.1144 and 1.1145
Revision 1.1144johns 2007/10/26 15:32:17+13 -10
Replaced slow floating point divides by dt with multiplies by precalculated
invdt. Changed the per-water-atom fixed atom checks with a single test of
groupFixed.
Show difference between Revision 1.1143 and 1.1144
Revision 1.1143jim 2007/10/11 20:59:31+6 -7
Completely revamped message priority system. New file Priorities.h
contains high-level priorities and macros for prioritizing messages.
Show difference between Revision 1.1142 and 1.1143
Revision 1.1142jim 2007/09/26 22:02:06+4 -0
Adjust pairlist more quickly when violation occurs.
Show difference between Revision 1.1141 and 1.1142

Filename: HomePatch.h
Revision 1.1056chaomei2 2008/06/17 20:43:22+26 -1
An initial implementation (a very straightforward way) of node aware spanning tree related to proxies. This spanning tree code is separated from others by macro NODEAWARE_PROXY_SPANNINGTREE. When this change gives better performance to namd, we could discard the old spanning tree codes.
Show difference between Revision 1.1055 and 1.1056
Revision 1.1055chaomei2 2008/03/07 00:57:40+5 -2
1. Add comppile-time flags to allow users to choose whether to remove
the extra copy overhead of proxy msgs (ProxyDataMsg and ProxyResultMsg).

2. Add the optimization to remove the extra copy involved in the proxy
result msg.

2. Add padding bytes to the varsize proxy msgs, so that the beginning of
CompAtom list in the ProxyDataMsg is 32-byte aligned if the underlying
Charm layer has ensured the beginning of a msg is 32-byte aligned;
the beginning of Force list in the ProxyResultVarsizeMsg is 8-byte
aligned. This is done to accord to the alignment requirement before this
optimization since the alignment will give better performance,
especially on the BG/L machine.
Show difference between Revision 1.1054 and 1.1055
Revision 1.1054chaomei2 2008/03/03 21:05:52+11 -0
1. Declare the ProxyDataMsg and ProxyAllMsg as the same type which makes codes cleaner. The only overhead per msg added is just 4 bytes.

2. Change the packed type ProxyDataMsg (including ProxyAllMsg) into varsize msg, and the position array inside the msg will be reused in the computation so that the overhead of extra copy
is avoided.

3. Fixed a tricky bug that is related to load balancing for the memory optimized version.
Show difference between Revision 1.1053 and 1.1054
Revision 1.1053petefred 2008/02/25 23:58:11+6 -1
Add initial implementation of TIP4P water.

TIP4P is requested with the watModel tip4p simulation parameter. I'll be curating and distributing compatible top/par files; a couple of namd-l denizens seem interested in early access, but all of the physical properties check out ok, so I don't expect that many further changes will be needed until we move to wanting more general lone pairs.
Show difference between Revision 1.1052 and 1.1053
Revision 1.1052bhatele 2008/02/03 05:08:36+1 -1
PROXY_SPAN_DIM is no longer a #define
it is now defined in ProxyMgr.C as proxySpanDim
Eventually it'll become a SimParameter
Show difference between Revision 1.1051 and 1.1052
Revision 1.1051kunzman 2007/11/27 22:32:48+1 -6
Modified atom separation code to pass the number of water atoms on to
the compute code in ComputeNonbondedBase.h.

Modified pairlist generation code to sort atoms along the line between
the center of masses for a pair of patches. The sort information is
then used to skip as many distance caclculations as possible to reduce
pairlist generation time if possible.
Show difference between Revision 1.1050 and 1.1051
Revision 1.1050kunzman 2007/11/05 19:49:16+22 -0
Modified HomePatch to separate hydrogen groups (waters vs.
non-waters). To enable this separation, set NAMD_SeparateWaters (in
common.h) to a non-zero value.
Show difference between Revision 1.1049 and 1.1050

Filename: Lattice.h
Revision 1.1031jim 2008/06/30 20:39:51+2 -36
Eliminated PositionBox and extra copies of position arrays.
Periodic cell translation now done in ComputeNonbondedBase.h outer loop.
Show difference between Revision 1.1030 and 1.1031

Filename: LdbCoordinator.C
Revision 1.86bhatele 2008/06/05 06:23:49+59 -35
added a SimParameter lastLdbStep to stop load balancing after certain number
of time steps

Also cleaned up some code in the load balancers which was confusing
Show difference between Revision 1.85 and 1.86
Revision 1.85bhatele 2008/05/31 19:06:14+32 -31
replaced excessive use of numComputes() by numComputes
Show difference between Revision 1.84 and 1.85
Revision 1.84bhatele 2008/01/17 23:30:10+2 -2
corrected some changes which shouldn't be turned on in the CVS version
Show difference between Revision 1.83 and 1.84
Revision 1.83bhatele 2008/01/17 23:21:57+4 -6
new ldbs can be used from the config file now
Show difference between Revision 1.82 and 1.83
Revision 1.82johns 2007/10/25 21:12:47+2 -2
Added comments warning about SMP-unsafe global and static variables.
Show difference between Revision 1.81 and 1.82

Filename: LdbCoordinator.h
Revision 1.39bhatele 2008/06/05 06:23:49+12 -2
added a SimParameter lastLdbStep to stop load balancing after certain number
of time steps

Also cleaned up some code in the load balancers which was confusing
Show difference between Revision 1.38 and 1.39
Revision 1.38bhatele 2008/05/31 19:06:14+1 -1
replaced excessive use of numComputes() by numComputes
Show difference between Revision 1.37 and 1.38

Filename: MStream.C
Revision 1.15chaomei2 2008/06/17 20:26:44+1 -1
Fixed some bugs when macro DEBUGM is defined.
Show difference between Revision 1.14 and 1.15

Filename: Measure.h
Revision 1.2jim 2007/12/05 22:08:37+1 -0
Define USE_COMPAT_CONST before every include of tcl.h to allow building
with either Tcl 8.3 or 8.4. Treat strings returned from Tcl as const.
Show difference between Revision 1.1 and 1.2

Filename: Molecule.C
Revision 1.1140char 2008/06/30 22:55:39+7 -7
*** added softcore FEP and TI ***
Show difference between Revision 1.1139 and 1.1140
Revision 1.1139petefred 2008/02/25 23:58:11+74 -10
Add initial implementation of TIP4P water.

TIP4P is requested with the watModel tip4p simulation parameter. I'll be curating and distributing compatible top/par files; a couple of namd-l denizens seem interested in early access, but all of the physical properties check out ok, so I don't expect that many further changes will be needed until we move to wanting more general lone pairs.
Show difference between Revision 1.1138 and 1.1139
Revision 1.1138chaomei2 2007/12/11 05:49:58+2 -0
Fixed errors that multiple memory deletion operations are performed regard with some data structures in the Molecule object. This error has caused NAMD-smp version to crash. Only one Molecule object copy is kept on a node in the smp version.
Show difference between Revision 1.1137 and 1.1138
Revision 1.1137dbwells2 2007/10/30 17:44:40+3 -1
Fixed missing header includes.
Show difference between Revision 1.1136 and 1.1137
Revision 1.1136dbwells2 2007/10/30 05:51:36+14 -8
Had deleted calls to distribute Gridforce parameters to nodes
... oops. Now repaired.
Show difference between Revision 1.1135 and 1.1136
Revision 1.1135dbwells2 2007/10/30 02:24:47+14 -515
* Drastic structural changes to Gridforce code. There is now a
'GridforceGrid' object which includes essentially all the information
that was previously a 'gridfrc...' variable in the Molecule object.
This cleans up Molecule a lot, and more importantly paves the way
for multiple grids.

* Also fixed a fairly major Gridforce bug in which the grid was
shifted slightly from the correct position. This is because the grid
origin was not corrected when adding border grid points.
Show difference between Revision 1.1134 and 1.1135
Revision 1.1134chaomei2 2007/10/25 20:04:47+36 -1
Added the implementation of compressing crossterms and reading crossterms from the compressed psf file.
Now the crossterm calculation is supported in the memory optimized version.
Show difference between Revision 1.1133 and 1.1134
Revision 1.1133dbwells2 2007/10/09 22:36:53+73 -64
Updated Gridforces:

* Fixed way in which continuous grids are handled.

* Fixed handling of grids whose unit vectors are not mutually
orthogonal and/or not parallel to those of the periodic cell.
Show difference between Revision 1.1132 and 1.1133
Revision 1.1132chaomei2 2007/10/02 07:19:04+17 -2
Write the corresponding print_* (atoms, bonds, exclusions) functions for memory optimized version. By the way, those functions are used for debugging.
Show difference between Revision 1.1131 and 1.1132
Revision 1.1131dbwells2 2007/09/25 05:42:04+262 -553
Significant changes to Gridforces using a new, more local
interpolation scheme (Hermite/tricubic), which however appears to
produce the same interpolant as previously. Much of the old, obsolete
code from previous schemes has now been cleaned out. Now compiles with
32-bit icc.
Show difference between Revision 1.1130 and 1.1131
Revision 1.1130dbwells2 2007/09/05 22:30:15+642 -125
Fixed the way Gridforce interpolates boundary grid points under
periodic boundary conditions.
Show difference between Revision 1.1129 and 1.1130
Revision 1.1129chaomei2 2007/08/10 04:57:28+22 -13
fixed the problems in supporting extra bonds feature for memory optimized version.

The problems appeared in the previous CVS versions are caused by not differentiating "numRealBonds" and "numBonds" which are the two variables inside Molecule class. For example, the exclusions should be determined only by real bonds excluding those extra bonds. In addition, the Molecule::build_atom_status uses numRealBonds to test the status of each atom. In the mmeory optimized version, bonds information is obtained through atom signatures (the bond signature, more specifically). Obviously, the real bonds and the extra bonds cannont not be differentiated through the signatures. Therefore, one variable "isReal" is added to TupleSignature structure to indicate whether this tuple is real or is an extra tuple read from the file other than psf file. This addition will help the future implementation of other extra tuples such as angles, dihedrals and impropers.
Show difference between Revision 1.1128 and 1.1129
Revision 1.1128chaomei2 2007/08/03 19:57:09+2 -1
1. Separate the deleting of mass and charge space for memory optimized version.
2. Should not delete mass space when freeEnergyOn is enabled for memory optimized version
Show difference between Revision 1.1127 and 1.1128
Revision 1.1127chaomei2 2007/08/02 22:41:16+60 -2
Add codes to support reading extra bonds from a separate file for memory optimized version
Show difference between Revision 1.1126 and 1.1127

Filename: Molecule.h
Revision 1.1072petefred 2008/02/25 23:58:11+2 -0
Add initial implementation of TIP4P water.

TIP4P is requested with the watModel tip4p simulation parameter. I'll be curating and distributing compatible top/par files; a couple of namd-l denizens seem interested in early access, but all of the physical properties check out ok, so I don't expect that many further changes will be needed until we move to wanting more general lone pairs.
Show difference between Revision 1.1071 and 1.1072
Revision 1.1071chaomei2 2007/12/11 05:49:58+14 -1
Fixed errors that multiple memory deletion operations are performed regard with some data structures in the Molecule object. This error has caused NAMD-smp version to crash. Only one Molecule object copy is kept on a node in the smp version.
Show difference between Revision 1.1070 and 1.1071
Revision 1.1070dbwells2 2007/10/30 02:24:47+4 -44
* Drastic structural changes to Gridforce code. There is now a
'GridforceGrid' object which includes essentially all the information
that was previously a 'gridfrc...' variable in the Molecule object.
This cleans up Molecule a lot, and more importantly paves the way
for multiple grids.

* Also fixed a fairly major Gridforce bug in which the grid was
shifted slightly from the correct position. This is because the grid
origin was not corrected when adding border grid points.
Show difference between Revision 1.1069 and 1.1070
Revision 1.1069dbwells2 2007/10/09 22:36:53+3 -1
Updated Gridforces:

* Fixed way in which continuous grids are handled.

* Fixed handling of grids whose unit vectors are not mutually
orthogonal and/or not parallel to those of the periodic cell.
Show difference between Revision 1.1068 and 1.1069
Revision 1.1068chaomei2 2007/10/02 07:16:10+1 -1
fixed a bug in retrieving the type of an atom in memory optimized version
Show difference between Revision 1.1067 and 1.1068
Revision 1.1067dbwells2 2007/09/25 05:42:04+20 -13
Significant changes to Gridforces using a new, more local
interpolation scheme (Hermite/tricubic), which however appears to
produce the same interpolant as previously. Much of the old, obsolete
code from previous schemes has now been cleaned out. Now compiles with
32-bit icc.
Show difference between Revision 1.1066 and 1.1067
Revision 1.1066dbwells2 2007/09/05 22:30:15+27 -7
Fixed the way Gridforce interpolates boundary grid points under
periodic boundary conditions.
Show difference between Revision 1.1065 and 1.1066
Revision 1.1065chaomei2 2007/08/03 19:57:09+7 -4
1. Separate the deleting of mass and charge space for memory optimized version.
2. Should not delete mass space when freeEnergyOn is enabled for memory optimized version
Show difference between Revision 1.1064 and 1.1065
Revision 1.1064chaomei2 2007/08/02 22:41:16+2 -1
Add codes to support reading extra bonds from a separate file for memory optimized version
Show difference between Revision 1.1063 and 1.1064

Filename: NamdCentLB.C
Revision 1.85bhatele 2008/06/05 06:23:49+4 -2
added a SimParameter lastLdbStep to stop load balancing after certain number
of time steps

Also cleaned up some code in the load balancers which was confusing
Show difference between Revision 1.84 and 1.85
Revision 1.84bhatele 2008/02/03 05:21:50+3 -3
To use new load balancers use "ldbStrategy asb8" in the config file
Show difference between Revision 1.83 and 1.84
Revision 1.83bhatele 2008/01/17 23:21:58+10 -52
new ldbs can be used from the config file now
Show difference between Revision 1.82 and 1.83
Revision 1.82bhatele 2007/12/10 23:04:48+3 -3
topo placement of proxies is good with the new LDBs also
once the spanning tree is moved to the LDBs, we wouldnt need it anymore
Show difference between Revision 1.81 and 1.82
Revision 1.81bhatele 2007/11/20 05:04:39+14 -2
correct the way hops are calculated
Show difference between Revision 1.80 and 1.81
Revision 1.80bhatele 2007/11/10 19:45:58+8 -6
some changes in the dump logs function
Show difference between Revision 1.79 and 1.80
Revision 1.79bhatele 2007/11/01 21:39:41+4 -4
we dont need to use the topomap requiredProxiesOnGrid for the new ldbs
Show difference between Revision 1.78 and 1.79
Revision 1.78bhatele 2007/11/01 18:38:59+43 -17
1. changed the way how LDB_DEBUG is used
2. added a new flag USE_NEW_LDBS
3. added comments and headers
Show difference between Revision 1.77 and 1.78
Revision 1.77bhatele 2007/07/26 19:38:49+29 -6
all changes are commented right now. By uncommenting these, the new load
balancers can be used
Show difference between Revision 1.76 and 1.77

Filename: NamdCentLB.h
Revision 1.11bhatele 2007/11/01 18:41:40+32 -0
comments
Show difference between Revision 1.10 and 1.11
Revision 1.10bhatele 2007/07/26 19:33:56+2 -0
some header files added
Show difference between Revision 1.9 and 1.10

Filename: NamdState.C
Revision 1.1058char 2008/06/30 22:55:39+6 -2
*** added new softcore FEP and TI ***
Show difference between Revision 1.1057 and 1.1058
Revision 1.1057jim 2008/03/20 19:17:22+2 -0
Fix crash when using constraints with amber coordinate file.
Show difference between Revision 1.1056 and 1.1057
Revision 1.1056chaomei2 2007/08/02 22:59:42+5 -1
To support reading extra bonds from a separate file for memory optimized version
Show difference between Revision 1.1055 and 1.1056

Filename: NamdTypes.h
Revision 1.1033chaomei2 2008/06/17 20:43:22+42 -0
An initial implementation (a very straightforward way) of node aware spanning tree related to proxies. This spanning tree code is separated from others by macro NODEAWARE_PROXY_SPANNINGTREE. When this change gives better performance to namd, we could discard the old spanning tree codes.
Show difference between Revision 1.1032 and 1.1033
Revision 1.1032chaomei2 2008/03/03 21:09:31+16 -8
CompAtomExt class is now needed even for non-memory optimized version because of the change in ProxyPatch related msgs
Show difference between Revision 1.1031 and 1.1032
Revision 1.1031kunzman 2007/11/27 22:32:48+13 -0
Modified atom separation code to pass the number of water atoms on to
the compute code in ComputeNonbondedBase.h.

Modified pairlist generation code to sort atoms along the line between
the center of masses for a pair of patches. The sort information is
then used to skip as many distance caclculations as possible to reduce
pairlist generation time if possible.
Show difference between Revision 1.1030 and 1.1031

Filename: Node.C
Revision 1.1084chaomei2 2008/06/17 20:39:55+10 -0
1. Added codes to check whether sendProxySpanningTree or recvProxySpanningTree are enabled or not.
2. Added code to initialize the variable that helps to write debugging info into a processor specific file.
Show difference between Revision 1.1083 and 1.1084
Revision 1.1083chaomei2 2007/10/15 19:23:58+5 -0
Added user events for every compute object's work. The user event name of every compute object is "type_computeId". This is useful in two aspects:
1. Track the execution time of every compute object.
2. In the timeline view in projections (the performance analysis tool), a timeline event will be associated with such a user event which shows the compute object that is directly related with this timeline event.

To enable tracing compute objects, one has to type "make tracecomputes CXXOPTS=-DTRACE_COMPUTE_OBJECTS $(CXXOPTS)" to generate the namd binary.
Show difference between Revision 1.1082 and 1.1083
Revision 1.1082chaomei2 2007/08/03 19:57:10+3 -1
1. Separate the deleting of mass and charge space for memory optimized version.
2. Should not delete mass space when freeEnergyOn is enabled for memory optimized version
Show difference between Revision 1.1081 and 1.1082

Filename: Patch.C
Revision 1.1048jim 2008/06/30 20:39:52+9 -9
Eliminated PositionBox and extra copies of position arrays.
Periodic cell translation now done in ComputeNonbondedBase.h outer loop.
Show difference between Revision 1.1047 and 1.1048
Revision 1.1047chaomei2 2008/03/07 01:15:56+16 -3
Changes due to keeping the extra copy overhead for ProxyDataMsg because
if we still want the 32-byte alignment on CompAtom list regardless the
underlying Charm layer.
Show difference between Revision 1.1046 and 1.1047
Revision 1.1046chaomei2 2008/03/03 21:05:52+9 -8
1. Declare the ProxyDataMsg and ProxyAllMsg as the same type which makes codes cleaner. The only overhead per msg added is just 4 bytes.

2. Change the packed type ProxyDataMsg (including ProxyAllMsg) into varsize msg, and the position array inside the msg will be reused in the computation so that the overhead of extra copy
is avoided.

3. Fixed a tricky bug that is related to load balancing for the memory optimized version.
Show difference between Revision 1.1045 and 1.1046
Revision 1.1045kunzman 2007/11/27 22:32:48+5 -0
Modified atom separation code to pass the number of water atoms on to
the compute code in ComputeNonbondedBase.h.

Modified pairlist generation code to sort atoms along the line between
the center of masses for a pair of patches. The sort information is
then used to skip as many distance caclculations as possible to reduce
pairlist generation time if possible.
Show difference between Revision 1.1044 and 1.1045

Filename: Patch.h
Revision 1.1028jim 2008/06/30 20:39:52+6 -8
Eliminated PositionBox and extra copies of position arrays.
Periodic cell translation now done in ComputeNonbondedBase.h outer loop.
Show difference between Revision 1.1027 and 1.1028
Revision 1.1027chaomei2 2008/03/07 01:15:56+8 -3
Changes due to keeping the extra copy overhead for ProxyDataMsg because
if we still want the 32-byte alignment on CompAtom list regardless the
underlying Charm layer.
Show difference between Revision 1.1026 and 1.1027
Revision 1.1026chaomei2 2008/03/03 21:05:52+13 -2
1. Declare the ProxyDataMsg and ProxyAllMsg as the same type which makes codes cleaner. The only overhead per msg added is just 4 bytes.

2. Change the packed type ProxyDataMsg (including ProxyAllMsg) into varsize msg, and the position array inside the msg will be reused in the computation so that the overhead of extra copy
is avoided.

3. Fixed a tricky bug that is related to load balancing for the memory optimized version.
Show difference between Revision 1.1025 and 1.1026
Revision 1.1025kunzman 2007/11/27 22:32:48+14 -0
Modified atom separation code to pass the number of water atoms on to
the compute code in ComputeNonbondedBase.h.

Modified pairlist generation code to sort atoms along the line between
the center of masses for a pair of patches. The sort information is
then used to skip as many distance caclculations as possible to reduce
pairlist generation time if possible.
Show difference between Revision 1.1024 and 1.1025

Filename: PatchMap.C
Revision 1.1046chaomei2 2008/06/17 20:37:28+1 -1
Comment out a Debug msg as it requires some variables that cannot be found anymore inside the function in the case macro DEBUGM is defined.
Show difference between Revision 1.1045 and 1.1046
Revision 1.1045jim 2007/11/02 22:26:38+4 -0
Ensure that basednodes and PME nodes do not overlap if possible. Only
works with bit-reversal assignment (i.e., not with Blue Gene torus mapper).
Show difference between Revision 1.1044 and 1.1045

Filename: PatchMap.h
Revision 1.1029jim 2007/11/02 22:26:38+1 -0
Ensure that basednodes and PME nodes do not overlap if possible. Only
works with bit-reversal assignment (i.e., not with Blue Gene torus mapper).
Show difference between Revision 1.1028 and 1.1029