Skip to content

sahmes/etics

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ETICS

This is ETICS (Expansion Techniques In Collisionless Systems), a GPU (currently CUDA only) N-body code which uses series expansion to calculate the gravitational field. See more details in this publication:

Meiron, Y., Li, B., Holley-Bockelmann, K., & Spurzem, R. 2014, ApJ, 792, 98

http://adsabs.harvard.edu/abs/2014ApJ...792...98M

What's inside

  • ETICS standalone program
  • ETICS static library
  • ETICS module for AMUSE

Prerequisites

  • CUDA (>= 6; mandatory)
  • HDF5 (optional)
  • Boost (optional)
  • AMUSE (mandatory only for AMUSE module)

To disable HDF5 [insert explanation here] To disable Boost [insert explanation here]

Compilation

Standalone program

make standalone

builds in src/.

Static library

make library

builds in src/.

AMUSE module

make

builds in top level directory. The whole etics directory has to be placed (or linked) inside:

$AMUSE_DIR/src/amuse/community/

How to use

The file.ini is a self-explanatory input file; if compiled without Boost, fill in the relevant variables in file noboost.inc which is compiled into the executable (any change of parameters requires re-compilation). Start simulation with:

./etics file.ini

Any input file name is acceptable.

Known issues

  • No MEX

The MEX (Multipole Expansion) method is not available in this version; thus, the SCF (Self-Consistent Field) method is the only expansion technique available. The ETICS program has been heavily restructured and the MEX routines are no longer compatible. Hopefully this will be fixed.

  • Hardcoded launch configuration

For at least one of the CUDA kernels, for various reasons, it seems that "brute force" search is needed to find the optimal launch configuration. Currently it is hardcoded, and a primitive search routine is provided.

  • Problem for particles with |θ| << 1

Due to using an unstable recursion relation to calculate the Associated Legendre polynomials, particles in a narrow cone around the z-axis cannot be considered accurately. This means that they give an erroneous contribution to the gravitational field and also are assigned erroneous force and potential. The size of this cone increases with the angular term of the expansion. To partly solve this, the current (ugly) fix is to only consider particles with cos(θ) > 0.999 at the monopole level. This is not so bad because the monopole is always the most dominant term (and is error free) and the number of particles in this cone is small and they are transient (i.e. they come out of it usually in a small number of steps). A somewhat better solution is to make this arbitrary cutoff of 0.999 l-dependent, and an even better solution would be to use an asymptotic expression for the Associated Legendre polynomials.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published