Orrery
A GPU-accelerated N-body gravitational simulator
Toggle main menu visibility
Loading...
Searching...
No Matches
Related Pages
Here is a list of all related documentation pages:
The validation report
The performance report
The Python bindings
Visualisation
The instrument
ADR-0000: Title in the imperative
ADR-0001: Record architecture decisions
ADR-0002: Pin dependencies to exact commits fetched at configure time
ADR-0003: Carry build settings on interface targets rather than global flags
ADR-0004: Store particles as one array per component
ADR-0005: Allocate particle arrays on cache-line boundaries
ADR-0006: Select the scalar precision when the project is configured
ADR-0007: Work in units where the gravitational constant is one
ADR-0008: Share one softening definition between the solver and the diagnostics
ADR-0009: Generate the random distributions in the project rather than with the standard library
ADR-0010: Give initial conditions their own layer
ADR-0011: Prefer a symplectic second-order integrator to a non-symplectic fourth-order one
ADR-0012: Give the integrators an abstract acceleration field of their own
ADR-0013: Carry the acceleration between steps as an interface invariant
ADR-0014: Give the force solvers an interface of their own above the acceleration field
ADR-0015: Compute every pair from both ends rather than applying Newton's third law
ADR-0016: Balance the threads dynamically by stealing ranges
ADR-0017: Thread the solver through an executor it does not own
ADR-0018: Compile the vector kernel apart and choose it at run time
ADR-0019: Report the median with its dispersion, and measure the throttling
ADR-0020: Keep the arithmetic IEEE and measure what vectorising changed
ADR-0021: Sort a copy of the configuration rather than the caller's particles
ADR-0022: Rebuild the tree on every force evaluation
ADR-0023: Open a cell on the distance to its centre of mass, corrected for where that is
ADR-0024: Make quadrupole moments an option that is off by default
ADR-0025: Write the GPU backend in SYCL
ADR-0026: Put the GPU behind the solver interface, not behind the executor
ADR-0027: Stage particle data into the solver's own shared allocations
ADR-0028: Build the tree on the host and walk it on the device
ADR-0029: Mask the accepted cells rather than descending together
ADR-0030: Send the node array to the device narrowed rather than transposed
ADR-0031: Define a configuration format rather than adopting one
ADR-0032: Store the whole state in a checkpoint, accelerations included
ADR-0033: Keep the trajectory and the checkpoint apart
ADR-0034: Draw with OpenGL 3.3 through GLFW
ADR-0035: Resolve the OpenGL entry points by hand
ADR-0036: Tone map exported frames on the host
ADR-0037: Write frames as PPM and leave the encoding to an external tool
ADR-0038: Sample the galaxy as a scenario rather than as an equilibrium model
ADR-0039: Bind to Python with pybind11
ADR-0040: Expose the component arrays rather than arrays of triples
ADR-0041: Give a running simulation's state a read-only type of its own
ADR-0042: Package the whole project from the repository root
ADR-0043: Generate the site with the tool that generates the reference
ADR-0044: Write the validation report rather than generating it
ADR-0045: Keep the browser client in this repository
ADR-0046: Put the renderer's device behind one interface
ADR-0047: Decode trajectories off the main thread
ADR-0048: Read the diagnostics the run wrote
ADR-0049: Put the run and the moment in the address
ADR-0050: Serve the reading half as static pages
The checkpoint format
The configuration format
The trajectory format
The tree solver, against the algorithm it replaces
Vectorisation, and the kernels against this machine's measured limits
The GPU direct kernel, against the CPU it shares its memory with
The tree traversal on the GPU, and what coherence is worth inside it
CPU threading on a hybrid processor
Generated by
1.17.0