Next: Other Compilation Flags
Up: Compiling the Code
Previous: Setting Compilation Flags
The user now needs to Enter the directory DPMTA/src and edit the
file dpmta_config.h to set the appropriate configuration flags
that will enable or disable features of DPMTA.. The following is a
list of the compile time flags and their meaning:
- TIMEPERF
- turns on the slave timing code. Each slave records
its own processing time and reports these values back to the master
process. The timing results are printed out on standard output at the
end of the run. This should not be used in production code.
- TIMESYNC
- include barriers to synchronize slave starts.
This results in more accurate timings for performance monitoring.
This should not be used in production code.
- DATADUMP
- causes the test programs to dump the particle
position data to the file dpmta-plist. The results of the
multipole force computations are dumped to the file dpmta-flist.
- DUMPILIST
- causes DPMTA to dump the interaction list
data to the file /tmp/ilist.pid[PID]. This is used for
debugging purposes only and should not be used in production code.
- DEBUG[2]
- turns on code which dumps major data structures
to files during processing. This is intended for DPMTA development
coders only and should not be used in production code.
- SIZECHECK
- prints out the current size of the DPMTA memory
images. This option works for SERIAL case only and is used for testing
purposes.
- COMP_LJ
- include the code to compute Lennard-Jones force and
potentials. See the dpmta_test.c file for an example.
- VIRIAL
- include code to compute and return the virial
tensor.
- OLDVIRIAL
- include code to compute the virial tensor.
This is the older and less accurate virial computation.
- PBC_WRAP
- enforces that particles outside the box boundaries
get wrapped around onto the other side of the box. This assures that all
particles are within the individual leaf node boundaries and thus accuracy
of the DPMTA algorithm is maintained. If this flag is not set, then
particles outside the simulation cell are assigned to the leaf node closest
to the particle.
- SORTILIST
- orders the processing of the multipole
interactions in an attempt to avoid the effects of roundoff error when
accumulating multiple remote expansions into a single local expansion.
This takes up significant processing time and has not been shown to
provide any significant benefit (not recommended).
- HLIST
- enable the use of multipole transpose matrices to
improve performance of the M2L operation (recommended).
- PARCONV
- enable parental conversion during the generation
of the interaction list (recommended).
- CHILDCONV
- enable child conversion during the generation
of the interaction list. This should not be used if the PARCONV
flag is also set (not recommended).
- USE_FMM
- use a Rohklin/Greengard cubic interaction region
instead of DPMTA's normal theta separation criteria. This is
for comparison purposes only and should not be used in production code.
- FMM_SEP
- specify the cell separation distance for FMM (set to 2 or 1).
- MACROSCOPIC
- include code to compute the effects of
macroscopic assemblies of particles in addition to the periodic
boundary conditions. A complete description of this method may be
found in the work by Christophe Lambert[8].
- PMACRO
- include parallel macroscopic generation code (must also
define MACROSCOPIC above for this to work).
- PIPED
- compiles an enhancement to DPMTA to allow the
processing of non-orthogonal (parallel-piped) unit cells. This
setting should not be used unless your application requires
non-orthogonal regions.
- HILBERT
- the mapping of the DPMTA Cell Table onto a
multiple processor set is now done via Hilbert ordering instead of
Morton ordering. This will result in an overall decrease in message
passing traffic for large systems.
- ROWCOL
- the mapping of the DPMTA Cell Table onto a
multiple processor set is now done via Row/Column ordering instead of
Morton ordering. This will result in an large increase in message
passing and computation. This option is for testing purposes only.
- SCURVE
- the mapping of the DPMTA Cell Table onto a
multiple processor set is now done in a method similar to
Row/Column ordering, but with indexing of alternate rows reversed to
provide a continuous spatial mapping scheme.
Like Row/Column. this will result in an large increase in message
passing and computation. This option is for testing purposes only.
- GRAVITATION
- reverse the force vectors so that like
charges (mass) attract instead of repel. This is almost guaranteed
not to work with any of the other force models (virial, LJ, etc).
- LOADBAL
- include code to perform load balancing.
User must specify the additional BALANCE[1-4] to specify the
load balancing methods. User should also use HILBERT option for
efficient partitioning. Load balancing functionality is currently
untested for the version 3.1 release of DPMTA.
Next: Other Compilation Flags
Up: Compiling the Code
Previous: Setting Compilation Flags
Bill Rankin
2002-04-04