Skip to content
Snippets Groups Projects
user avatar
Matthieu Schaller authored
Particle caching

Summary
-------
- Implements a vectorised version of `runner_doself1_density()`. 
- Implements a particle cache on each thread and allocates the memory `in engine_init()`
- Modified `test27cells.c` so that particles that have been interacted with vectors are checked manually against a serial interaction
- Implemented another vectorised version of `kernel_deval()` which calculates the kernel for two particles.
- Fixes a bug in `runner_iact_vec_force` and `runner_iact_nonsym_vec_force` when calculating the SPH term

`test27cells` will fail because of the thresholds set for the diff, I have attached the differences in: [brute_force_h_1.2348.dat](/uploads/8e32fd88cee93bd429bc57c64ab16b4d/brute_force_h_1.2348.dat)
[swift_dopair_h_1.2348_avx_doself1_loop.dat](/uploads/4c61c74b5d4a7aef8a2c0d01cdc17e9e/swift_dopair_h_1.2348_avx_doself1_loop.dat)

@nnrw56 @pdraper



See merge request !287
3ee51c2b
History
 Welcome to the cosmological hydrodynamical code
    ______       _________________
   / ___/ |     / /  _/ ___/_  __/
   \__ \| | /| / // // /_   / /   
  ___/ /| |/ |/ // // __/  / /    
 /____/ |__/|__/___/_/    /_/     
 SPH With Inter-dependent Fine-grained Tasking

 Website: www.swiftsim.com
 Twitter: @SwiftSimulation

See INSTALL.swift for install instructions.

Usage: swift [OPTION]... PARAMFILE
       swift_mpi [OPTION]... PARAMFILE

Valid options are:
  -a          Pin runners using processor affinity
  -c          Run with cosmological time integration
  -C          Run with cooling
  -d          Dry run. Read the parameter file, allocate memory but does not read 
              the particles from ICs and exit before the start of time integration.
              Allows user to check validy of parameter and IC files as well as memory limits.
  -D          Always drift all particles even the ones far from active particles.
  -e          Enable floating-point exceptions (debugging mode)
  -f    {int} Overwrite the CPU frequency (Hz) to be used for time measurements
  -g          Run with an external gravitational potential
  -G          Run with self-gravity
  -n    {int} Execute a fixed number of time steps. When unset use the time_end parameter to stop. 
  -s          Run with SPH
  -t    {int} The number of threads to use on each MPI rank. Defaults to 1 if not specified.
  -v     [12] Increase the level of verbosity
  	      1: MPI-rank 0 writes
	      2: All MPI-ranks write
  -y    {int} Time-step frequency at which task graphs are dumped
  -h          Print this help message and exit

See the file examples/parameter_example.yml for an example of parameter file.