added project files
This commit is contained in:
commit
1718e6287b
24 changed files with 3045 additions and 0 deletions
102
README.md
Normal file
102
README.md
Normal file
|
|
@ -0,0 +1,102 @@
|
|||
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.
|
||||
Loading…
Add table
Add a link
Reference in a new issue