SouthAfricaDigitalScience / GADGET-portlet

myFirst-portlet
Mozilla Public License 2.0
1 stars 1 forks source link

JSP for generating the Makefile #26

Closed brucellino closed 10 years ago

brucellino commented 10 years ago

The GADGET 2 Makefile controls much of the functionality of GADGET. Apart from the input parameter file, this file (the Makefile) needs to be sent with the job input sandbox at runtime, so that GADGET can be compiled properly.

The user should be presented with an interface similar to the MUSIC and GADGET param file setup in order to generate the file. These are described in the GADGET source code (in `parameterfiles/

We would like to have sensible defaults for the user to improve ease of use and understanding of what the application is doing; below we describe the list of available options (taken from the Makefile) and whether they are mandatory or optional (m/o), as well as what the default value should be. Optional variables can be preset with their default values.

To close this ticket, create options for compile time by setting input areas for the following :

  1. PERIODIC (m, default=Y) :Set this if you want to have periodic boundary conditions.
  2. UNEQUALSOFTENINGS (o, default=N) :Set this if you use particles with different gravitational softening lengths.
  3. PEANOHILBERT (o, default=Y) : This is a tuning option. When set, the code will bring the particles after each domain decomposition into Peano-Hilbert order. This improves cache utilization and performance.
  4. WALLCLOCK (o, default=N) : If set, a wallclock timer is used by the code to measure internal time consumption (see cpu-log file). Otherwise, a timer that measures consumed processor ticks is used.
  5. PMGRID (m, default=Y) : This enables the TreePM method, i.e. the long-range force is computed with a PM-algorithm, and the short range force with the tree. The parameter has to be set to the size of the mesh that should be used, (e.g. 64, 96, 128, etc). The mesh dimensions need not necessarily be a power of two. _Note_: If the simulation is not in a periodic box, then a FFT method for vacuum boundaries is employed, using an actual mesh with dimension twice(!) that specified by PMGRID.
  6. PLACEHIGHRESREGION: (o, default=19) : If this option is set (will only work together with PMGRID), then the long range force is computed in two stages: One Fourier-grid is used to cover the whole simulation volume, allowing the computation of the longe-range force. A second Fourier mesh is placed on the region occupied by "high-resolution" particles, allowing the computation of an intermediate scale force. Finally, the force on short scales is computed with the tree. This procedure can be useful for "zoom-simulations", provided the majority of particles (the high-res particles) are occupying only a small fraction of the volume. To activate this option, the parameter needs to be set to an integer bit mask that encodes the particle types that make up the high-res particles. For example, if types 0, 1, and 4 form the high-res particles, set the parameter to PLACEHIGHRESREGION=19, because 2^0 + 2^1 + 2^4 = 19. The spatial region covered by the high-res grid is determined automatically from the initial conditions. Note: If a periodic box is used, the high-res zone may not intersect the box boundaries.
  7. ENLARGEREGION (o, default=1.1) : The spatial region covered by the high-res zone has a fixed size during the simulation, which initially is set to the smallest region that encompasses all high-res particles. Normally, the simulation will be interrupted if high-res particles leave this region in the course of the run. However, by setting this parameter to a value larger than one, the size of the high-res region can be expanded, providing a buffer region. For example, setting it to 1.4 will enlarge its side-length by 40% (it remains centered on the high-res particles). Hence, with this setting, the high-res region may expand or move by a limited amount. Note: If SYNCHRONIZATION is activated, the code will be able to continue even if high-res particles leave the initial high-res grid. In this case, the code will update the size and position of the grid that is placed onto the high-resolution region automatically. To prevent that this potentially happens every single PM step, one should nevertheless assign a value slightly larger than 1 to ENLARGEREGION.
  8. ASMTH (o, default=1.25) : This can be used to override the value assumed for the scale that defines the long-range/short-range force-split in the TreePM algorithm. The default value is 1.25, in mesh-cells.
  9. RCUT (o, default=4.5) : This can be used to override the maximum radius in which the short-range tree-force is evaluated (in case the TreePM algorithm is used). The default value is 4.5, given in mesh-cells.
  10. DOUBLEPRECISION (m, default=Y) : This makes the code store and compute internal particle data in double precision. Note that output files are nevertheless written by converting the particle data to single precision.
  11. DDOUBLEPRECISION_FFTW (m, default=Y) : If this is set, the code will use the double-precision version of FTTW, provided the latter has been explicitly installed with a "d" prefix, and NOTYPEPREFIX_FFTW is not set. Otherwise the single precision version ("s" prefix) is used.
  12. SYNCHRONIZATION : When this is set, particles are kept in a binary hierarchy of timesteps and may only increase their timestep if the new timestep will put them into synchronization with the higher time level.
  13. FLEXSTEPS (o, default=Y) : This is an alternative to SYNCHRONIZATION. Particle timesteps are here allowed to be integer multiples of the minimum timestep that occurs among the particles, which in turn is rounded down to the nearest power-of-two devision of the total simulated timespan. This option distributes particles more evenly over individual system timesteps, particularly once a simulation has run for a while, and may then result in a reduction of work-load imbalance losses.
  14. PSEUDOSYMMETRIC: (o, default=N) : When this option is set, the code will try to "anticipate" timestep changes by extrapolating the change of the acceleration into the future. This can in certain idealized cases improve the long-term integration behaviour of periodic orbits, but should make little or no difference in most real-world applications. May only be used together with SYNCHRONIZATION.
  15. NOSTOP_WHEN_BELOW_MINTIMESTEP (o, default=N) : If this is activated, the code will not terminate when the timestep falls below the value of MinSizeTimestep specified in the parameterfile. This is useful for runs where one wants to enforce a constant timestep for all particles. This can be done by activating this option, and by setting MinSizeTimestep and MaxSizeTimestep to an equal value.
  16. NOPMSTEPADJUSTMENT (o, default=N) : When this is set, the long-range timestep for the PM-force computation (when the TreePM algorithm is used) is always determined by MaxSizeTimeStep. Otherwise, it is determined by the MaxRMSDisplacement parameter, or MaxSizeTimeStep, whichever gives the smaller step.
  17. HAVE_HDF5: (m, default=Y) : If this is set, the code will be compiled with support for input and output in the HDF5 format. You need to have the HDF5 libraries and headers installed on your computer for this option to work. The HDF5 format can then be selected as format "3" in Gadget's parameterfile.
  18. OUTPUTPOTENTIAL (o, default=N) : This will make the code compute gravitational potentials for all particles each time a snapshot file is generated. The values are then included in the snapshot file. Note that the computation of the values of the gravitational potential costs additional CPU.
  19. OUTPUTACCELERATION (o,default=N) : This will include the physical acceleration of each particle in snapshot files.
  20. OUTPUTCHANGEOFENTROPY (o, default=N) : This will include the rate of change of entropy of gas particles in snapshot files.
  21. OUTPUTTIMESTEP (o, default=N) : This will include the current timesteps of all particles in the snapshot files.
  22. NOGRAVITY (o, default=N) : This switches off gravity. Useful only for pure SPH simulations in non-expanding space.
  23. NOTREERND (optional, default=N) : If this is not set, the tree construction will succeed even when there are a few particles at identical locations. This is done by "rerouting" particles once the node-size has fallen below 1.0e-3 of the softening length. When this option is activated, this will be suppressed and the tree construction will always fail if there are particles at extremely close coordinates.
  24. NOTYPEPREFIX_FFTW (optional, default=N) : This is an option that signals that FFTW has been compiled without the type-prefix option, i.e. no leading "d" or "s" characters are used to access the library.
  25. LONG_X/Y/Z (o, default=N) : These options can be used together with PERIODIC and NOGRAVITY only. When set, the options define numerical factors that can be used to distorts the periodic simulation cube into a parallelepiped of arbitrary aspect ratio. This can be useful for idealized SPH tests.
  26. TWODIMS (o, default=N) : This effectively switches of one dimension in SPH, i.e. the code follows only 2d hydrodynamics in the xy-, yz-, or xz-plane. This only works with NOGRAVITY, and if all coordinates of the third axis are exactly equal. Can be useful for idealized SPH tests.
  27. SPH_BND_PARTICLES (o, default=N) : If this is set, particles with a particle-ID equal to zero do not receive any SPH acceleration. This can be useful for idealized SPH tests, where these particles represent fixed "walls".
  28. NOVISCOSITYLIMITER: (o, default=N) : If this is set, the code will not try to put an upper limit on the viscous force in case an implausibly high pair-wise viscous force (which may lead to a particle 'reflection' in case of poor timestepping) should arise. Note: For proper settings of the timestep parameters, this situation should not arise.
  29. COMPUTE_POTENTIAL_ENERGY (o, default=Y) : When this option is set, the code will compute the gravitational potential energy each time a global statistics is computed. This can be useful for testing global energy conservation.
  30. LONGIDS (o, default=Y) : If this is set, the code assumes that particle-IDs are stored as 64-bit long integers. This is only really needed if you want to go beyond ~2 billion particles.
  31. ISOTHERMAL (o, default=N) : This special option makes the gas behave like an isothermal gas. The corresponding temperature is set by the parameter MinGasTemp in the parameterfile.
  32. SELECTIVE_NO_GRAVITY (o, default=N) : This can be used for special computations where one wants to exclude certain particle types from receiving gravitational forces. The particle types that are excluded in this fashion are specified by a bit mask, in the same as for the PLACEHIGHRESREGION option
  33. FORCETEST (o, default=0) : This can be set to check the force accuracy of the code. The option needs to be set to a number between 0 and 1 (e.g. 0.01), which is taken to specify a random fraction of particles for which at each timestep forces by direct summation are computed. The normal tree-forces and the correct direct summation forces are collected in a file. _Note that the simulation itself is unaffected by this option, but it will of course run much(!) slower, especially if_ FORCETEST*NumPart*NumPart >> NumPart. Note: Particle IDs must be set to numbers >=1 for this to work.
  34. MAKEGLASS (o, default=N) : This option can be used to generate a glass-like particle configuration. The value assigned gives the particle load, which is initially generated as a Poisson sample and then evolved towards a glass with the sign of gravity reversed.
brucellino commented 10 years ago

The GUI is done with commit/2f79cf28b5121533f72f35a520dfab8a0a8a2299 The interface is now stable. We just need to implement the function that creates the makefile and .param file.