From a030ec47c617a2ea583f855546c0b464b91750c0 Mon Sep 17 00:00:00 2001 From: Wassim KABALAN Date: Wed, 30 Oct 2024 01:59:07 +0100 Subject: [PATCH] delete outdated design file --- design.md | 52 ---------------------------------------------------- 1 file changed, 52 deletions(-) delete mode 100644 design.md diff --git a/design.md b/design.md deleted file mode 100644 index a0727a1..0000000 --- a/design.md +++ /dev/null @@ -1,52 +0,0 @@ -# Design Document for JaxPM - -This document aims to detail some of the API, implementation choices, and internal mechanism. - -## Objective - -Provide a user-friendly framework for distributed Particle-Mesh N-body simulations. - -## Related Work - -This project would be the latest iteration of a number of past libraries that have provided differentiable N-body models. - -- [FlowPM](https://github.com/DifferentiableUniverseInitiative/flowpm): TensorFlow -- [vmad FastPM](https://github.com/rainwoodman/vmad/blob/master/vmad/lib/fastpm.py): VMAD -- Borg - - -In addition, a number of fast N-body simulation projets exist out there: -- [FastPM](https://github.com/fastpm/fastpm) -- ... - -## Design Overview - -### Coding principles - -Following recent trends and JAX philosophy, the library should have a functional programming type of interface. - - -### Illustration of API - -Here is a potential illustration of what the user interface could be for the simulation code: -```python -import jaxpm as jpm -import jax_cosmo as jc - -# Instantiate differentiable cosmology object -cosmo = jc.Planck() - -# Creates initial conditions -inital_conditions = jpm.generate_ic(cosmo, boxsize, nmesh, dtype='float32') - -# Create a particular solver -solver = jpm.solvers.fastpm(cosmo, B=1) - -# Initialize and run the simulation -state = solver.init(initial_conditions) -state = solver.nbody(state) - -# Painting the results -density = jpm.zeros(boxsize, nmesh) -density = jpm.paint(density, state.positions) -```