{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "47c34537",
   "metadata": {},
   "source": [
    "Tristan Hoellinger<br/>\n",
    "Institut d'Astrophysique de Paris</br>\n",
    "tristan.hoellinger@iap.fr"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b31e6021",
   "metadata": {},
   "source": [
    "# Exploring baseline CONCEPT time step limiters for P3M\n",
    "\n",
    "## Set up the environment and parameters"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "0f8c355d",
   "metadata": {},
   "outputs": [],
   "source": [
    "# pyright: reportWildcardImportFromLibrary=false\n",
    "from wip3m import *"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "2c415aeb",
   "metadata": {},
   "outputs": [],
   "source": [
    "workdir = ROOT_PATH + \"results/\"\n",
    "output_path = OUTPUT_PATH\n",
    "\n",
    "# L = 8  # Box size in Mpc/h\n",
    "# N = 8  # Density grid size\n",
    "# Np = 8  # Number of dark matter particles per spatial dimension\n",
    "# Npm = 16  # PM grid size\n",
    "# n_Tiles = 2  # Make sure Npm/n_Tiles >= 6\n",
    "\n",
    "# L = 16  # Box size in Mpc/h\n",
    "# N = 16  # Density grid size\n",
    "# Np = 16  # Number of dark matter particles per spatial dimension\n",
    "# Npm = 32  # PM grid size\n",
    "# n_Tiles = 4  # Make sure Npm/n_Tiles >= 6\n",
    "\n",
    "# L = 32  # Box size in Mpc/h\n",
    "# N = 32  # Density grid size\n",
    "# Np = 32  # Number of dark matter particles per spatial dimension\n",
    "# Npm = 256  # PM grid size\n",
    "# n_Tiles = 32  # Make sure Npm/n_Tiles >= 6\n",
    "\n",
    "# L = 64  # Box size in Mpc/h\n",
    "# N = 64  # Density grid size\n",
    "# Np = 64  # Number of dark matter particles per spatial dimension\n",
    "# Npm = 128  # PM grid size\n",
    "# n_Tiles = 16  # Make sure Npm/n_Tiles >= 6\n",
    "\n",
    "# STANDARD PARAMETERS:\n",
    "L = 32  # Box size in Mpc/h\n",
    "N = 64  # Density grid size\n",
    "Np = 32  # Number of dark matter particles per spatial dimension\n",
    "Npm = 64  # PM grid size\n",
    "n_Tiles = 8  # Make sure Npm/n_Tiles >= 6\n",
    "\n",
    "go_beyond_Nyquist_ss = True  # for the summary statistics\n",
    "    \n",
    "force = force_hard = True\n",
    "run_id = \"notebook4\"\n",
    "\n",
    "TimeStepDistribution = 1 # 0: constant time step, 1: log\n",
    "nsteps = 30"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "03aa3f4e",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Automatic reloading of modules\n",
    "%load_ext autoreload\n",
    "%autoreload 2\n",
    "\n",
    "from os.path import isfile\n",
    "from pathlib import Path\n",
    "import numpy as np\n",
    "\n",
    "from pysbmy.power import PowerSpectrum\n",
    "from pysbmy.field import read_field\n",
    "from pysbmy.timestepping import StandardTimeStepping\n",
    "\n",
    "from wip3m.tools import get_k_max, generate_sim_params, generate_white_noise_Field, run_simulation\n",
    "from wip3m.params import params_CONCEPT_kmax_missing, cosmo_small_to_full_dict, z2a, BASELINE_SEEDPHASE\n",
    "from wip3m.plot_utils import *  # type: ignore"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "57436422",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "k_max = 10.883000000000001\n"
     ]
    }
   ],
   "source": [
    "corner = 0.0\n",
    "RedshiftLPT = 199.0\n",
    "# RedshiftLPT = 19.0\n",
    "RedshiftFCs = 0.0\n",
    "ai = z2a(RedshiftLPT)\n",
    "af = z2a(RedshiftFCs)\n",
    "k_max = get_k_max(L, N)  # k_max in h/Mpc\n",
    "print(f\"k_max = {k_max}\")\n",
    "# cosmo = params_planck_kmax_missing.copy()\n",
    "cosmo = params_CONCEPT_kmax_missing.copy()\n",
    "cosmo[\"k_max\"] = k_max\n",
    "\n",
    "wd = workdir + run_id + \"/\"\n",
    "simdir = output_path + run_id + \"/\"\n",
    "logdir = simdir + \"logs/\"\n",
    "if force_hard:\n",
    "    import shutil\n",
    "    if Path(simdir).exists():\n",
    "        shutil.rmtree(simdir)\n",
    "    if Path(wd).exists():\n",
    "        shutil.rmtree(wd)\n",
    "Path(wd).mkdir(parents=True, exist_ok=True)\n",
    "Path(logdir).mkdir(parents=True, exist_ok=True)\n",
    "\n",
    "input_white_noise_file = simdir + \"input_white_noise.h5\"\n",
    "input_seed_phase_file = simdir + \"seed\"\n",
    "ICs_path = simdir + \"initial_density.h5\"\n",
    "simpath = simdir\n",
    "\n",
    "# Path to the input matter power spectrum (generated later)\n",
    "input_power_file = simdir + \"input_power.h5\"\n",
    "\n",
    "# Paths to the time step logs\n",
    "OutputTimestepsLog = simdir + \"timesteps_log.txt\""
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d3bc340d",
   "metadata": {},
   "source": [
    "### Generate the parameter files"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "012c5e01",
   "metadata": {},
   "outputs": [],
   "source": [
    "common_params = {\n",
    "    \"Np\": Np,\n",
    "    \"N\": N,\n",
    "    \"L\": L,\n",
    "    \"corner0\": corner,\n",
    "    \"corner1\": corner,\n",
    "    \"corner2\": corner,\n",
    "    \"h\": cosmo[\"h\"],\n",
    "    \"Omega_m\": cosmo[\"Omega_m\"],\n",
    "    \"Omega_b\": cosmo[\"Omega_b\"],\n",
    "    \"n_s\": cosmo[\"n_s\"],\n",
    "    \"sigma8\": cosmo[\"sigma8\"],\n",
    "}\n",
    "\n",
    "lpt_params = common_params.copy()\n",
    "lpt_params[\"method\"] = \"lpt\"\n",
    "lpt_params[\"InputPowerSpectrum\"] = input_power_file\n",
    "lpt_params[\"ICsMode\"] = 1\n",
    "lpt_params[\"InputWhiteNoise\"] = input_white_noise_file\n",
    "\n",
    "p3m_params = common_params.copy()\n",
    "p3m_params[\"method\"] = \"p3m\"\n",
    "p3m_params[\"EvolutionMode\"] = 4\n",
    "p3m_params[\"TimeStepDistribution\"] = TimeStepDistribution\n",
    "p3m_params[\"ai\"] = ai\n",
    "p3m_params[\"af\"] = af\n",
    "p3m_params[\"RedshiftLPT\"] = RedshiftLPT\n",
    "p3m_params[\"RedshiftFCs\"] = RedshiftFCs\n",
    "p3m_params[\"Npm\"] = Npm\n",
    "p3m_params[\"nsteps\"] = nsteps\n",
    "p3m_params[\"n_Tiles\"] = n_Tiles\n",
    "p3m_params[\"RunForceDiagnostic\"] = False\n",
    "p3m_params[\"PrintOutputTimestepsLog\"] = True\n",
    "p3m_params[\"OutputTimestepsLog\"] = OutputTimestepsLog"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "a162fa70",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[01:56:09|\u001b[1;36mINFO      \u001b[00m]|\u001b[38;5;147m(wip3m.tools)\u001b[00m Generating parameter file...\n",
      "[01:56:09|\u001b[38;5;113mSTATUS    \u001b[00m]|Writing parameter file in '/Users/hoellinger/Library/CloudStorage/Dropbox/travail/these/science/code/simbelmyne/simbelmyne2025/WIP_P3M/results/notebook4/example_lpt.sbmy'...\n",
      "[01:56:09|\u001b[38;5;113mSTATUS    \u001b[00m]|Writing parameter file in '/Users/hoellinger/Library/CloudStorage/Dropbox/travail/these/science/code/simbelmyne/simbelmyne2025/WIP_P3M/results/notebook4/example_lpt.sbmy' done.\n",
      "[01:56:09|\u001b[1;36mINFO      \u001b[00m]|\u001b[38;5;147m(wip3m.tools)\u001b[00m Parameter file written to /Users/hoellinger/Library/CloudStorage/Dropbox/travail/these/science/code/simbelmyne/simbelmyne2025/WIP_P3M/results/notebook4/example_lpt.sbmy\n",
      "[01:56:09|\u001b[1;36mINFO      \u001b[00m]|\u001b[38;5;147m(wip3m.tools)\u001b[00m Time-stepping distribution file: /Users/hoellinger/Library/CloudStorage/Dropbox/travail/these/science/code/simbelmyne/simbelmyne2025/WIP_P3M/results/notebook4/p3m_nsteps30_ts_p3m.h5\n",
      "[01:56:09|\u001b[38;5;113mSTATUS    \u001b[00m]|Write timestepping configuration in '/Users/hoellinger/Library/CloudStorage/Dropbox/travail/these/science/code/simbelmyne/simbelmyne2025/WIP_P3M/results/notebook4/p3m_nsteps30_ts_p3m.h5'...\n",
      "[01:56:09|\u001b[38;5;113mSTATUS    \u001b[00m]|Write timestepping configuration in '/Users/hoellinger/Library/CloudStorage/Dropbox/travail/these/science/code/simbelmyne/simbelmyne2025/WIP_P3M/results/notebook4/p3m_nsteps30_ts_p3m.h5' done.\n",
      "[01:56:09|\u001b[1;36mINFO      \u001b[00m]|\u001b[38;5;147m(wip3m.tools)\u001b[00m TS.ai = 0.005000, TS.af = 1.000000, TS.nsteps = 30\n",
      "[01:56:09|\u001b[38;5;113mSTATUS    \u001b[00m]|Read timestepping configuration in '/Users/hoellinger/Library/CloudStorage/Dropbox/travail/these/science/code/simbelmyne/simbelmyne2025/WIP_P3M/results/notebook4/p3m_nsteps30_ts_p3m.h5'...\n",
      "[01:56:09|\u001b[38;5;113mSTATUS    \u001b[00m]|Read timestepping configuration in '/Users/hoellinger/Library/CloudStorage/Dropbox/travail/these/science/code/simbelmyne/simbelmyne2025/WIP_P3M/results/notebook4/p3m_nsteps30_ts_p3m.h5' done.\n",
      "[01:56:10|\u001b[1;36mINFO      \u001b[00m]|\u001b[38;5;147m(wip3m.tools)\u001b[00m Generating parameter file...\n",
      "[01:56:10|\u001b[38;5;113mSTATUS    \u001b[00m]|Writing parameter file in '/Users/hoellinger/Library/CloudStorage/Dropbox/travail/these/science/code/simbelmyne/simbelmyne2025/WIP_P3M/results/notebook4/p3m_nsteps30_example_p3m.sbmy'...\n",
      "[01:56:10|\u001b[38;5;113mSTATUS    \u001b[00m]|Writing parameter file in '/Users/hoellinger/Library/CloudStorage/Dropbox/travail/these/science/code/simbelmyne/simbelmyne2025/WIP_P3M/results/notebook4/p3m_nsteps30_example_p3m.sbmy' done.\n",
      "[01:56:10|\u001b[1;36mINFO      \u001b[00m]|\u001b[38;5;147m(wip3m.tools)\u001b[00m Parameter file written to /Users/hoellinger/Library/CloudStorage/Dropbox/travail/these/science/code/simbelmyne/simbelmyne2025/WIP_P3M/results/notebook4/p3m_nsteps30_example_p3m.sbmy\n"
     ]
    },
    {
     "data": {
      "image/png": "[encoded data, 26044 characters]",
      "text/plain": [
       "<Figure size 500x100 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "reset_plotting()  # Default style for Simbelmynë\n",
    "generate_sim_params(lpt_params, ICs_path, wd, simdir, None, force)\n",
    "file_ext = f\"p3m_nsteps{p3m_params['nsteps']}\"\n",
    "generate_sim_params(p3m_params, ICs_path, wd, simdir, file_ext, force)\n",
    "setup_plotting()  # Reset plotting style for this project"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "51aa0ec3",
   "metadata": {},
   "source": [
    "Load time stepping:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "a8aa16b2",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[01:56:10|\u001b[38;5;113mSTATUS    \u001b[00m]|Read timestepping configuration in '/Users/hoellinger/Library/CloudStorage/Dropbox/travail/these/science/code/simbelmyne/simbelmyne2025/WIP_P3M/results/notebook4/p3m_nsteps30_ts_p3m.h5'...\n",
      "[01:56:10|\u001b[38;5;113mSTATUS    \u001b[00m]|Read timestepping configuration in '/Users/hoellinger/Library/CloudStorage/Dropbox/travail/these/science/code/simbelmyne/simbelmyne2025/WIP_P3M/results/notebook4/p3m_nsteps30_ts_p3m.h5' done.\n"
     ]
    }
   ],
   "source": [
    "TS = StandardTimeStepping.read(wd + file_ext + \"_ts_p3m.h5\")\n",
    "aKickBeg = TS.aKickBeg\n",
    "aKickEnd = TS.aKickEnd\n",
    "aDriftBeg = TS.aDriftBeg\n",
    "aDriftEnd = TS.aDriftEnd\n",
    "aiDrift = TS.aiDrift\n",
    "afDrift = TS.afDrift"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "56d49527",
   "metadata": {},
   "source": [
    "### Generate the initial phase"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "6969353d",
   "metadata": {},
   "outputs": [],
   "source": [
    "generate_white_noise_Field(\n",
    "    L=L,\n",
    "    size=N,\n",
    "    corner=corner,\n",
    "    seedphase=BASELINE_SEEDPHASE,\n",
    "    fname_whitenoise=input_white_noise_file,\n",
    "    seedname_whitenoise=input_seed_phase_file,\n",
    "    force_phase=force,\n",
    ")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "af2c102d",
   "metadata": {},
   "source": [
    "### Generating the input power spectrum"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "eeddae78",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[01:56:10|\u001b[38;5;113mSTATUS    \u001b[00m]|Setting up Fourier grid...\n",
      "[01:56:10|\u001b[38;5;113mSTATUS    \u001b[00m]|Setting up Fourier grid done.\n",
      "[01:56:10\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m][01:56:10|\u001b[38;5;113mSTATUS    \u001b[00m]|Write power spectrum in data file '/Users/hoellinger/WIP3M/notebook4/input_power.h5'...\n",
      "|Computing normalization of the power spectrum...\n",
      "[01:56:10\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]|Computing normalization of the power spectrum done.\n",
      "[01:56:10\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]|Computing power spectrum...\n",
      "[01:56:10\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]|Computing power spectrum done.\n",
      "[01:56:10|\u001b[38;5;246mDIAGNOSTIC\u001b[00m]==|\u001b[38;5;246mL0=32, L1=32, L2=32\u001b[00m\n",
      "[01:56:10|\u001b[38;5;246mDIAGNOSTIC\u001b[00m]==|\u001b[38;5;246mN0=64, N1=64, N2=64, N2_HC=33, N_HC=135168, NUM_MODES=1914\u001b[00m\n",
      "[01:56:10|\u001b[38;5;113mSTATUS    \u001b[00m]|Write power spectrum in data file '/Users/hoellinger/WIP3M/notebook4/input_power.h5' done.\n"
     ]
    }
   ],
   "source": [
    "# If cosmo[\"WhichSpectrum\"] == \"class\", then classy is required.\n",
    "if not isfile(input_power_file) or force:\n",
    "    Pk = PowerSpectrum(L, L, L, N, N, N, cosmo_small_to_full_dict(cosmo))\n",
    "    Pk.write(input_power_file)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ed3ab1c8",
   "metadata": {},
   "source": [
    "## Running the simulations"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "e3ed21b6",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[01:56:10\u001b[00m|\u001b[38;5;227mCOMMAND   \u001b[00m]|\u001b[38;5;227msimbelmyne /Users/hoellinger/Library/CloudStorage/Dropbox/travail/these/science/code/simbelmyne/simbelmyne2025/WIP_P3M/results/notebook4/example_lpt.sbmy /Users/hoellinger/WIP3M/notebook4/logs/lpt.txt\u001b[00m\n",
      "[01:56:10\u001b[00m|\u001b[38;5;117mINFO      \u001b[00m]|\n",
      "[01:56:10\u001b[00m|\u001b[38;5;117mINFO      \u001b[00m]|            .-~~-.--.\n",
      "[01:56:10\u001b[00m|\u001b[38;5;117mINFO      \u001b[00m]|           :         )\n",
      "[01:56:10\u001b[00m|\u001b[38;5;117mINFO      \u001b[00m]|     .~ ~ -.\\       /.- ~~ .\n",
      "[01:56:10\u001b[00m|\u001b[38;5;117mINFO      \u001b[00m]|     >       `.   .'       <\n",
      "[01:56:10\u001b[00m|\u001b[38;5;117mINFO      \u001b[00m]|    (         .- -.         )\n",
      "[01:56:10\u001b[00m|\u001b[38;5;117mINFO      \u001b[00m]|     `- -.-~  `- -'  ~-.- -'\n",
      "[01:56:10\u001b[00m|\u001b[38;5;117mINFO      \u001b[00m]|       (        :        )           _ _ .-:        ___________________________________\n",
      "[01:56:10\u001b[00m|\u001b[38;5;117mINFO      \u001b[00m]|        ~--.    :    .--~        .-~  .-~  }                    \u001b[1;38;5;157mSIMBELMYNË\u001b[00m\n",
      "[01:56:10\u001b[00m|\u001b[38;5;117mINFO      \u001b[00m]|            ~-.-^-.-~ \\_      .~  .-~   .~           (c) Florent Leclercq 2012 - SBMY_YEAR \n",
      "[01:56:10\u001b[00m|\u001b[38;5;117mINFO      \u001b[00m]|                     \\ '     \\ '_ _ -~              ___________________________________\n",
      "[01:56:10\u001b[00m|\u001b[38;5;117mINFO      \u001b[00m]|                      `.`.    //\n",
      "[01:56:10\u001b[00m|\u001b[38;5;117mINFO      \u001b[00m]|             . - ~ ~-.__`.`-.//\n",
      "[01:56:10\u001b[00m|\u001b[38;5;117mINFO      \u001b[00m]|         .-~   . - ~  }~ ~ ~-.~-.\n",
      "[01:56:10\u001b[00m|\u001b[38;5;117mINFO      \u001b[00m]|       .' .-~      .-~       :/~-.~-./:\n",
      "[01:56:10\u001b[00m|\u001b[38;5;117mINFO      \u001b[00m]|      /_~_ _ . - ~                 ~-.~-._\n",
      "[01:56:10\u001b[00m|\u001b[38;5;117mINFO      \u001b[00m]|                                       ~-.<\n",
      "[01:56:10\u001b[00m|\u001b[38;5;117mINFO      \u001b[00m]|\n",
      "[01:56:10\u001b[00m|\u001b[38;5;117mINFO      \u001b[00m]|2025-06-16 01:56:10: Starting SIMBELMYNË, commit hash bcdce9c1b02682972d65f1d3d414b5774015c141\n",
      "[01:56:10\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]|Reading parameter file in '/Users/hoellinger/Library/CloudStorage/Dropbox/travail/these/science/code/simbelmyne/simbelmyne2025/WIP_P3M/results/notebook4/example_lpt.sbmy'...\n",
      "[01:56:10\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]|Reading parameter file in '/Users/hoellinger/Library/CloudStorage/Dropbox/travail/these/science/code/simbelmyne/simbelmyne2025/WIP_P3M/results/notebook4/example_lpt.sbmy' done.\n",
      "[01:56:10\u001b[00m|\u001b[38;5;147mMODULE    \u001b[00m]|\u001b[38;5;147mModuleLPT: Initializing snapshot...\u001b[00m\n",
      "[01:56:10\u001b[00m|\u001b[38;5;147mMODULE    \u001b[00m]|\u001b[38;5;147mModuleLPT: Initializing snapshot done.\u001b[00m\n",
      "[01:56:10\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]|LPT snapshot initialization: 0.000 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:10\u001b[00m|\u001b[38;5;147mMODULE    \u001b[00m]|\u001b[38;5;147mModuleLPT: Returning initial conditions...\u001b[00m\n",
      "[01:56:10\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|Reading field in '/Users/hoellinger/WIP3M/notebook4/input_white_noise.h5'...\n",
      "[01:56:10\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|Reading field in '/Users/hoellinger/WIP3M/notebook4/input_white_noise.h5' done.\n",
      "[01:56:10\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|Reading power spectrum...\n",
      "[01:56:10\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Reading power spectrum in '/Users/hoellinger/WIP3M/notebook4/input_power.h5'...\n",
      "[01:56:10\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Reading power spectrum in '/Users/hoellinger/WIP3M/notebook4/input_power.h5' done.\n",
      "[01:56:10\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|Reading power spectrum done.\n",
      "[01:56:10\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|Generating Gaussian random field (using 8 cores)...\n",
      "[01:56:10\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|Generating Gaussian random field (using 8 cores) done.\n",
      "[01:56:10\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|Writing field to '/Users/hoellinger/WIP3M/notebook4/initial_density.h5'...\n",
      "[01:56:10\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|Writing field to '/Users/hoellinger/WIP3M/notebook4/initial_density.h5' done.\n",
      "[01:56:10\u001b[00m|\u001b[38;5;147mMODULE    \u001b[00m]|\u001b[38;5;147mModuleLPT: Returning initial conditions done.\u001b[00m\n",
      "[01:56:10\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]|LPT initial conditions: 0.006 CPU - 0.006 wallclock seconds used.\n",
      "[01:56:10\u001b[00m|\u001b[38;5;147mMODULE    \u001b[00m]|\u001b[38;5;147mModuleLPT: Evolving with Lagrangian perturbation theory (using 8 cores)...\u001b[00m\n",
      "[01:56:10\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|Computing Lagrangian potentials, periodic boundary conditions (using 8 cores)...\n",
      "[01:56:10\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|Computing Lagrangian potentials, periodic boundary conditions (using 8 cores) done.\n",
      "[01:56:10\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|Computing Lagrangian displacement field (using 8 cores)...\n",
      "[01:56:10\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|Computing Lagrangian displacement field (using 8 cores) done.\n",
      "[01:56:10\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|Changing velocities of particles...\n",
      "[01:56:10\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|Changing velocities of particles done.\n",
      "[01:56:10\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|Displacing particles...\n",
      "[01:56:10\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|Displacing particles done.\n",
      "[01:56:10\u001b[00m|\u001b[38;5;147mMODULE    \u001b[00m]|\u001b[38;5;147mModuleLPT: Evolving with Lagrangian perturbation theory (using 8 cores) done.\u001b[00m\n",
      "[01:56:10\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]|LPT evolution: 0.235 CPU - 0.071 wallclock seconds used.\n",
      "[01:56:10\u001b[00m|\u001b[38;5;147mMODULE    \u001b[00m]|\u001b[38;5;147mModuleLPT: Computing outputs...\u001b[00m\n",
      "[01:56:10\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|Getting density contrast (using 8 cores and 8 arrays, parallel routine 1)...\n",
      "[01:56:10\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|Getting density contrast (using 8 cores and 8 arrays, parallel routine 1) done.\n",
      "[01:56:10\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|Writing field to '/Users/hoellinger/WIP3M/notebook4/lpt_density.h5'...\n",
      "[01:56:10\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|Writing field to '/Users/hoellinger/WIP3M/notebook4/lpt_density.h5' done.\n",
      "[01:56:10\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|Writing header in '/Users/hoellinger/WIP3M/notebook4/lpt_particles.gadget3'...\n",
      "[01:56:10\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|Writing header in '/Users/hoellinger/WIP3M/notebook4/lpt_particles.gadget3' done.\n",
      "[01:56:10\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|Writing snapshot in '/Users/hoellinger/WIP3M/notebook4/lpt_particles.gadget3' (32768 particles)...\n",
      "[01:56:10\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Writing block: 'POS '...\n",
      "[01:56:10\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Writing block: 'POS ' done.\n",
      "[01:56:10\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Writing block: 'VEL '...\n",
      "[01:56:10\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Writing block: 'VEL ' done.\n",
      "[01:56:10\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Writing block: 'ID  '...\n",
      "[01:56:10\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Writing block: 'ID  ' done.\n",
      "[01:56:10\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|Writing snapshot in '/Users/hoellinger/WIP3M/notebook4/lpt_particles.gadget3' done.\n",
      "[01:56:10\u001b[00m|\u001b[38;5;147mMODULE    \u001b[00m]|\u001b[38;5;147mModuleLPT: Computing outputs done.\u001b[00m\n",
      "[01:56:10\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]|LPT output: 0.015 CPU - 0.006 wallclock seconds used.\n",
      "[01:56:10\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]|ModuleLPT: 0.256 CPU - 0.083 wallclock seconds used.\n",
      "[01:56:10\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]|Simbelmynë: 0.257 CPU - 0.084 wallclock seconds used.\n",
      "[01:56:10\u001b[00m|\u001b[38;5;117mINFO      \u001b[00m]|Everything done successfully, exiting.\n"
     ]
    }
   ],
   "source": [
    "run_simulation(\"lpt\", lpt_params, wd, logdir)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "39c97bc2",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[01:56:10\u001b[00m|\u001b[38;5;227mCOMMAND   \u001b[00m]|\u001b[38;5;227msimbelmyne /Users/hoellinger/Library/CloudStorage/Dropbox/travail/these/science/code/simbelmyne/simbelmyne2025/WIP_P3M/results/notebook4/p3m_nsteps30_example_p3m.sbmy /Users/hoellinger/WIP3M/notebook4/logs/p3m_nsteps30p3m.txt\u001b[00m\n",
      "[01:56:10\u001b[00m|\u001b[38;5;117mINFO      \u001b[00m]|\n",
      "[01:56:10\u001b[00m|\u001b[38;5;117mINFO      \u001b[00m]|            .-~~-.--.\n",
      "[01:56:10\u001b[00m|\u001b[38;5;117mINFO      \u001b[00m]|           :         )\n",
      "[01:56:10\u001b[00m|\u001b[38;5;117mINFO      \u001b[00m]|     .~ ~ -.\\       /.- ~~ .\n",
      "[01:56:10\u001b[00m|\u001b[38;5;117mINFO      \u001b[00m]|     >       `.   .'       <\n",
      "[01:56:10\u001b[00m|\u001b[38;5;117mINFO      \u001b[00m]|    (         .- -.         )\n",
      "[01:56:10\u001b[00m|\u001b[38;5;117mINFO      \u001b[00m]|     `- -.-~  `- -'  ~-.- -'\n",
      "[01:56:10\u001b[00m|\u001b[38;5;117mINFO      \u001b[00m]|       (        :        )           _ _ .-:        ___________________________________\n",
      "[01:56:10\u001b[00m|\u001b[38;5;117mINFO      \u001b[00m]|        ~--.    :    .--~        .-~  .-~  }                    \u001b[1;38;5;157mSIMBELMYNË\u001b[00m\n",
      "[01:56:10\u001b[00m|\u001b[38;5;117mINFO      \u001b[00m]|            ~-.-^-.-~ \\_      .~  .-~   .~           (c) Florent Leclercq 2012 - SBMY_YEAR \n",
      "[01:56:10\u001b[00m|\u001b[38;5;117mINFO      \u001b[00m]|                     \\ '     \\ '_ _ -~              ___________________________________\n",
      "[01:56:10\u001b[00m|\u001b[38;5;117mINFO      \u001b[00m]|                      `.`.    //\n",
      "[01:56:10\u001b[00m|\u001b[38;5;117mINFO      \u001b[00m]|             . - ~ ~-.__`.`-.//\n",
      "[01:56:10\u001b[00m|\u001b[38;5;117mINFO      \u001b[00m]|         .-~   . - ~  }~ ~ ~-.~-.\n",
      "[01:56:10\u001b[00m|\u001b[38;5;117mINFO      \u001b[00m]|       .' .-~      .-~       :/~-.~-./:\n",
      "[01:56:10\u001b[00m|\u001b[38;5;117mINFO      \u001b[00m]|      /_~_ _ . - ~                 ~-.~-._\n",
      "[01:56:10\u001b[00m|\u001b[38;5;117mINFO      \u001b[00m]|                                       ~-.<\n",
      "[01:56:10\u001b[00m|\u001b[38;5;117mINFO      \u001b[00m]|\n",
      "[01:56:10\u001b[00m|\u001b[38;5;117mINFO      \u001b[00m]|2025-06-16 01:56:10: Starting SIMBELMYNË, commit hash bcdce9c1b02682972d65f1d3d414b5774015c141\n",
      "[01:56:10\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]|Reading parameter file in '/Users/hoellinger/Library/CloudStorage/Dropbox/travail/these/science/code/simbelmyne/simbelmyne2025/WIP_P3M/results/notebook4/p3m_nsteps30_example_p3m.sbmy'...\n",
      "[01:56:10\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]|Reading parameter file in '/Users/hoellinger/Library/CloudStorage/Dropbox/travail/these/science/code/simbelmyne/simbelmyne2025/WIP_P3M/results/notebook4/p3m_nsteps30_example_p3m.sbmy' done.\n",
      "[01:56:10\u001b[00m|\u001b[38;5;147mMODULE    \u001b[00m]|\u001b[38;5;147mModuleLPT: Initializing snapshot...\u001b[00m\n",
      "[01:56:10\u001b[00m|\u001b[38;5;147mMODULE    \u001b[00m]|\u001b[38;5;147mModuleLPT: Initializing snapshot done.\u001b[00m\n",
      "[01:56:10\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]|LPT snapshot initialization: 0.000 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:10\u001b[00m|\u001b[38;5;147mMODULE    \u001b[00m]|\u001b[38;5;147mModuleLPT: Returning initial conditions...\u001b[00m\n",
      "[01:56:10\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|Reading field in '/Users/hoellinger/WIP3M/notebook4/initial_density.h5'...\n",
      "[01:56:10\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|Reading field in '/Users/hoellinger/WIP3M/notebook4/initial_density.h5' done.\n",
      "[01:56:10\u001b[00m|\u001b[38;5;147mMODULE    \u001b[00m]|\u001b[38;5;147mModuleLPT: Returning initial conditions done.\u001b[00m\n",
      "[01:56:10\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]|LPT initial conditions: 0.000 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:10\u001b[00m|\u001b[38;5;147mMODULE    \u001b[00m]|\u001b[38;5;147mModuleLPT: Evolving with Lagrangian perturbation theory (using 8 cores)...\u001b[00m\n",
      "[01:56:10\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|Computing Lagrangian potentials, periodic boundary conditions (using 8 cores)...\n",
      "[01:56:10\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|Computing Lagrangian potentials, periodic boundary conditions (using 8 cores) done.\n",
      "[01:56:10\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|Computing Lagrangian displacement field (using 8 cores)...\n",
      "[01:56:10\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|Computing Lagrangian displacement field (using 8 cores) done.\n",
      "[01:56:10\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|Changing velocities of particles...\n",
      "[01:56:10\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|Changing velocities of particles done.\n",
      "[01:56:10\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|Displacing particles...\n",
      "[01:56:10\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|Displacing particles done.\n",
      "[01:56:10\u001b[00m|\u001b[38;5;147mMODULE    \u001b[00m]|\u001b[38;5;147mModuleLPT: Evolving with Lagrangian perturbation theory (using 8 cores) done.\u001b[00m\n",
      "[01:56:10\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]|LPT evolution: 0.223 CPU - 0.060 wallclock seconds used.\n",
      "[01:56:10\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]|ModuleLPT: 0.224 CPU - 0.060 wallclock seconds used.\n",
      "[01:56:10\u001b[00m|\u001b[38;5;147mMODULE    \u001b[00m]|\u001b[38;5;147mModuleP3M: Evolving with P3M...\u001b[00m\n",
      "[01:56:10\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|Read timestepping configuration in '/Users/hoellinger/Library/CloudStorage/Dropbox/travail/these/science/code/simbelmyne/simbelmyne2025/WIP_P3M/results/notebook4/p3m_nsteps30_ts_p3m.h5'...\n",
      "[01:56:10\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|Read timestepping configuration in '/Users/hoellinger/Library/CloudStorage/Dropbox/travail/these/science/code/simbelmyne/simbelmyne2025/WIP_P3M/results/notebook4/p3m_nsteps30_ts_p3m.h5' done.\n",
      "[01:56:10\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|OutputForceDiagnostic: force_diagnostic.csv\n",
      "[01:56:10\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|OutputSnapshotsBase: particles_\n",
      "[01:56:10\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|ModuleP3M: Begin P3M step 1/30, time_kick:0.005000, time_drift=0.005000.\n",
      "[01:56:10\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|ModuleP3M: Compute time step limiters for step 1/30 done.\n",
      "[01:56:10\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting density contrast (using 8 cores and 8 arrays, parallel routine 1)...\n",
      "[01:56:10\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting density contrast (using 8 cores and 8 arrays, parallel routine 1) done.\n",
      "[01:56:10\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting gravitational potential, periodic boundary conditions (using 8 cores)...\n",
      "[01:56:10\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting gravitational potential, periodic boundary conditions (using 8 cores) done.\n",
      "[01:56:10\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Kicking particles (using 8 cores)...\n",
      "[01:56:10\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Kicking particles (using 8 cores) done.\n",
      "[01:56:10\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Drifting particles (using 8 cores)...\n",
      "[01:56:10\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Drifting particles (using 8 cores) done.\n",
      "[01:56:10\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|ModuleP3M: End P3M step 1/30, time_kick:0.005462, time_drift=0.005966.\n",
      "[01:56:10\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 1/30: Density: 0.008 CPU - 0.003 wallclock seconds used.\n",
      "[01:56:10\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 1/30: Potential: 0.006 CPU - 0.002 wallclock seconds used.\n",
      "[01:56:10\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 1/30: Accelerations (long-range): 0.092 CPU - 0.021 wallclock seconds used.\n",
      "[01:56:10\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 1/30: Accelerations (short-range): 0.254 CPU - 0.041 wallclock seconds used.\n",
      "[01:56:10\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 1/30: Kick: 0.006 CPU - 0.001 wallclock seconds used.\n",
      "[01:56:10\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 1/30: Drift: 0.002 CPU - 0.001 wallclock seconds used.\n",
      "[01:56:10\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 1/30: Inputs: 0.000 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:10\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 1/30: Diagnostic: 0.000 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:10\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 1/30: Outputs: 0.000 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:10\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 1/30: Total Evolution: 0.367 CPU - 0.069 wallclock seconds used.\n",
      "[01:56:10\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|ModuleP3M: Begin P3M step 2/30, time_kick:0.005462, time_drift=0.005966.\n",
      "[01:56:10\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|ModuleP3M: Compute time step limiters for step 2/30 done.\n",
      "[01:56:10\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting density contrast (using 8 cores and 8 arrays, parallel routine 1)...\n",
      "[01:56:10\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting density contrast (using 8 cores and 8 arrays, parallel routine 1) done.\n",
      "[01:56:10\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting gravitational potential, periodic boundary conditions (using 8 cores)...\n",
      "[01:56:10\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting gravitational potential, periodic boundary conditions (using 8 cores) done.\n",
      "[01:56:10\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Kicking particles (using 8 cores)...\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Kicking particles (using 8 cores) done.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Drifting particles (using 8 cores)...\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Drifting particles (using 8 cores) done.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|ModuleP3M: End P3M step 2/30, time_kick:0.006517, time_drift=0.007118.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 2/30: Density: 0.010 CPU - 0.003 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 2/30: Potential: 0.007 CPU - 0.003 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 2/30: Accelerations (long-range): 0.096 CPU - 0.036 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 2/30: Accelerations (short-range): 0.256 CPU - 0.069 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 2/30: Kick: 0.007 CPU - 0.003 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 2/30: Drift: 0.002 CPU - 0.001 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 2/30: Inputs: 0.000 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 2/30: Diagnostic: 0.000 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 2/30: Outputs: 0.000 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 2/30: Total Evolution: 0.378 CPU - 0.114 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|ModuleP3M: Begin P3M step 3/30, time_kick:0.006517, time_drift=0.007118.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|ModuleP3M: Compute time step limiters for step 3/30 done.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting density contrast (using 8 cores and 8 arrays, parallel routine 1)...\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting density contrast (using 8 cores and 8 arrays, parallel routine 1) done.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting gravitational potential, periodic boundary conditions (using 8 cores)...\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting gravitational potential, periodic boundary conditions (using 8 cores) done.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Kicking particles (using 8 cores)...\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Kicking particles (using 8 cores) done.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Drifting particles (using 8 cores)...\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Drifting particles (using 8 cores) done.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|ModuleP3M: End P3M step 3/30, time_kick:0.007775, time_drift=0.008493.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 3/30: Density: 0.011 CPU - 0.003 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 3/30: Potential: 0.006 CPU - 0.004 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 3/30: Accelerations (long-range): 0.097 CPU - 0.027 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 3/30: Accelerations (short-range): 0.252 CPU - 0.053 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 3/30: Kick: 0.006 CPU - 0.002 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 3/30: Drift: 0.002 CPU - 0.001 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 3/30: Inputs: 0.000 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 3/30: Diagnostic: 0.000 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 3/30: Outputs: 0.000 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 3/30: Total Evolution: 0.374 CPU - 0.090 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|ModuleP3M: Begin P3M step 4/30, time_kick:0.007775, time_drift=0.008493.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|ModuleP3M: Compute time step limiters for step 4/30 done.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting density contrast (using 8 cores and 8 arrays, parallel routine 1)...\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting density contrast (using 8 cores and 8 arrays, parallel routine 1) done.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting gravitational potential, periodic boundary conditions (using 8 cores)...\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting gravitational potential, periodic boundary conditions (using 8 cores) done.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Kicking particles (using 8 cores)...\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Kicking particles (using 8 cores) done.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Drifting particles (using 8 cores)...\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Drifting particles (using 8 cores) done.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|ModuleP3M: End P3M step 4/30, time_kick:0.009277, time_drift=0.010134.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 4/30: Density: 0.012 CPU - 0.003 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 4/30: Potential: 0.006 CPU - 0.003 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 4/30: Accelerations (long-range): 0.095 CPU - 0.025 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 4/30: Accelerations (short-range): 0.258 CPU - 0.050 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 4/30: Kick: 0.006 CPU - 0.002 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 4/30: Drift: 0.001 CPU - 0.001 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 4/30: Inputs: 0.000 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 4/30: Diagnostic: 0.000 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 4/30: Outputs: 0.000 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 4/30: Total Evolution: 0.378 CPU - 0.083 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|ModuleP3M: Begin P3M step 5/30, time_kick:0.009277, time_drift=0.010134.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|ModuleP3M: Compute time step limiters for step 5/30 done.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting density contrast (using 8 cores and 8 arrays, parallel routine 1)...\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting density contrast (using 8 cores and 8 arrays, parallel routine 1) done.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting gravitational potential, periodic boundary conditions (using 8 cores)...\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting gravitational potential, periodic boundary conditions (using 8 cores) done.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Kicking particles (using 8 cores)...\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Kicking particles (using 8 cores) done.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Drifting particles (using 8 cores)...\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Drifting particles (using 8 cores) done.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|ModuleP3M: End P3M step 5/30, time_kick:0.011069, time_drift=0.012091.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 5/30: Density: 0.011 CPU - 0.003 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 5/30: Potential: 0.006 CPU - 0.002 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 5/30: Accelerations (long-range): 0.091 CPU - 0.021 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 5/30: Accelerations (short-range): 0.245 CPU - 0.041 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 5/30: Kick: 0.006 CPU - 0.001 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 5/30: Drift: 0.002 CPU - 0.001 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 5/30: Inputs: 0.000 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 5/30: Diagnostic: 0.000 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 5/30: Outputs: 0.000 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 5/30: Total Evolution: 0.360 CPU - 0.069 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|ModuleP3M: Begin P3M step 6/30, time_kick:0.011069, time_drift=0.012091.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|ModuleP3M: Compute time step limiters for step 6/30 done.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting density contrast (using 8 cores and 8 arrays, parallel routine 1)...\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting density contrast (using 8 cores and 8 arrays, parallel routine 1) done.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting gravitational potential, periodic boundary conditions (using 8 cores)...\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting gravitational potential, periodic boundary conditions (using 8 cores) done.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Kicking particles (using 8 cores)...\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Kicking particles (using 8 cores) done.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Drifting particles (using 8 cores)...\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Drifting particles (using 8 cores) done.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|ModuleP3M: End P3M step 6/30, time_kick:0.013208, time_drift=0.014427.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 6/30: Density: 0.012 CPU - 0.003 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 6/30: Potential: 0.005 CPU - 0.002 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 6/30: Accelerations (long-range): 0.095 CPU - 0.020 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 6/30: Accelerations (short-range): 0.250 CPU - 0.037 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 6/30: Kick: 0.005 CPU - 0.001 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 6/30: Drift: 0.001 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 6/30: Inputs: 0.000 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 6/30: Diagnostic: 0.000 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 6/30: Outputs: 0.000 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 6/30: Total Evolution: 0.369 CPU - 0.063 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|ModuleP3M: Begin P3M step 7/30, time_kick:0.013208, time_drift=0.014427.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|ModuleP3M: Compute time step limiters for step 7/30 done.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting density contrast (using 8 cores and 8 arrays, parallel routine 1)...\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting density contrast (using 8 cores and 8 arrays, parallel routine 1) done.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting gravitational potential, periodic boundary conditions (using 8 cores)...\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting gravitational potential, periodic boundary conditions (using 8 cores) done.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Kicking particles (using 8 cores)...\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Kicking particles (using 8 cores) done.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Drifting particles (using 8 cores)...\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Drifting particles (using 8 cores) done.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|ModuleP3M: End P3M step 7/30, time_kick:0.015759, time_drift=0.017214.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 7/30: Density: 0.013 CPU - 0.002 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 7/30: Potential: 0.006 CPU - 0.002 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 7/30: Accelerations (long-range): 0.094 CPU - 0.020 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 7/30: Accelerations (short-range): 0.251 CPU - 0.037 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 7/30: Kick: 0.006 CPU - 0.001 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 7/30: Drift: 0.001 CPU - 0.001 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 7/30: Inputs: 0.000 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 7/30: Diagnostic: 0.000 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 7/30: Outputs: 0.000 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 7/30: Total Evolution: 0.371 CPU - 0.064 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|ModuleP3M: Begin P3M step 8/30, time_kick:0.015759, time_drift=0.017214.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|ModuleP3M: Compute time step limiters for step 8/30 done.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting density contrast (using 8 cores and 8 arrays, parallel routine 1)...\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting density contrast (using 8 cores and 8 arrays, parallel routine 1) done.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting gravitational potential, periodic boundary conditions (using 8 cores)...\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting gravitational potential, periodic boundary conditions (using 8 cores) done.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Kicking particles (using 8 cores)...\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Kicking particles (using 8 cores) done.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Drifting particles (using 8 cores)...\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Drifting particles (using 8 cores) done.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|ModuleP3M: End P3M step 8/30, time_kick:0.018803, time_drift=0.020539.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 8/30: Density: 0.012 CPU - 0.002 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 8/30: Potential: 0.006 CPU - 0.002 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 8/30: Accelerations (long-range): 0.091 CPU - 0.020 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 8/30: Accelerations (short-range): 0.253 CPU - 0.037 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 8/30: Kick: 0.006 CPU - 0.001 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 8/30: Drift: 0.001 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 8/30: Inputs: 0.000 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 8/30: Diagnostic: 0.000 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 8/30: Outputs: 0.000 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 8/30: Total Evolution: 0.370 CPU - 0.063 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|ModuleP3M: Begin P3M step 9/30, time_kick:0.018803, time_drift=0.020539.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|ModuleP3M: Compute time step limiters for step 9/30 done.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting density contrast (using 8 cores and 8 arrays, parallel routine 1)...\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting density contrast (using 8 cores and 8 arrays, parallel routine 1) done.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting gravitational potential, periodic boundary conditions (using 8 cores)...\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting gravitational potential, periodic boundary conditions (using 8 cores) done.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Kicking particles (using 8 cores)...\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Kicking particles (using 8 cores) done.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Drifting particles (using 8 cores)...\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Drifting particles (using 8 cores) done.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|ModuleP3M: End P3M step 9/30, time_kick:0.022435, time_drift=0.024506.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 9/30: Density: 0.012 CPU - 0.002 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 9/30: Potential: 0.006 CPU - 0.002 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 9/30: Accelerations (long-range): 0.095 CPU - 0.019 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 9/30: Accelerations (short-range): 0.256 CPU - 0.036 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 9/30: Kick: 0.006 CPU - 0.001 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 9/30: Drift: 0.001 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 9/30: Inputs: 0.000 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 9/30: Diagnostic: 0.000 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 9/30: Outputs: 0.000 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 9/30: Total Evolution: 0.375 CPU - 0.061 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|ModuleP3M: Begin P3M step 10/30, time_kick:0.022435, time_drift=0.024506.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|ModuleP3M: Compute time step limiters for step 10/30 done.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting density contrast (using 8 cores and 8 arrays, parallel routine 1)...\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting density contrast (using 8 cores and 8 arrays, parallel routine 1) done.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting gravitational potential, periodic boundary conditions (using 8 cores)...\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting gravitational potential, periodic boundary conditions (using 8 cores) done.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Kicking particles (using 8 cores)...\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Kicking particles (using 8 cores) done.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Drifting particles (using 8 cores)...\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Drifting particles (using 8 cores) done.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|ModuleP3M: End P3M step 10/30, time_kick:0.026769, time_drift=0.029240.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 10/30: Density: 0.013 CPU - 0.003 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 10/30: Potential: 0.006 CPU - 0.002 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 10/30: Accelerations (long-range): 0.093 CPU - 0.024 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 10/30: Accelerations (short-range): 0.239 CPU - 0.038 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 10/30: Kick: 0.006 CPU - 0.002 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 10/30: Drift: 0.002 CPU - 0.001 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 10/30: Inputs: 0.000 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 10/30: Diagnostic: 0.000 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 10/30: Outputs: 0.000 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 10/30: Total Evolution: 0.359 CPU - 0.069 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|ModuleP3M: Begin P3M step 11/30, time_kick:0.026769, time_drift=0.029240.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|ModuleP3M: Compute time step limiters for step 11/30 done.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting density contrast (using 8 cores and 8 arrays, parallel routine 1)...\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting density contrast (using 8 cores and 8 arrays, parallel routine 1) done.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting gravitational potential, periodic boundary conditions (using 8 cores)...\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting gravitational potential, periodic boundary conditions (using 8 cores) done.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Kicking particles (using 8 cores)...\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Kicking particles (using 8 cores) done.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Drifting particles (using 8 cores)...\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Drifting particles (using 8 cores) done.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|ModuleP3M: End P3M step 11/30, time_kick:0.031940, time_drift=0.034888.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 11/30: Density: 0.011 CPU - 0.003 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 11/30: Potential: 0.006 CPU - 0.002 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 11/30: Accelerations (long-range): 0.092 CPU - 0.021 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 11/30: Accelerations (short-range): 0.260 CPU - 0.039 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 11/30: Kick: 0.006 CPU - 0.001 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 11/30: Drift: 0.001 CPU - 0.001 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 11/30: Inputs: 0.000 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 11/30: Diagnostic: 0.000 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 11/30: Outputs: 0.000 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 11/30: Total Evolution: 0.376 CPU - 0.067 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|ModuleP3M: Begin P3M step 12/30, time_kick:0.031940, time_drift=0.034888.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|ModuleP3M: Compute time step limiters for step 12/30 done.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting density contrast (using 8 cores and 8 arrays, parallel routine 1)...\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting density contrast (using 8 cores and 8 arrays, parallel routine 1) done.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting gravitational potential, periodic boundary conditions (using 8 cores)...\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting gravitational potential, periodic boundary conditions (using 8 cores) done.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Kicking particles (using 8 cores)...\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Kicking particles (using 8 cores) done.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Drifting particles (using 8 cores)...\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Drifting particles (using 8 cores) done.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|ModuleP3M: End P3M step 12/30, time_kick:0.038109, time_drift=0.041628.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 12/30: Density: 0.012 CPU - 0.002 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 12/30: Potential: 0.006 CPU - 0.002 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 12/30: Accelerations (long-range): 0.095 CPU - 0.023 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 12/30: Accelerations (short-range): 0.248 CPU - 0.043 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 12/30: Kick: 0.006 CPU - 0.002 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 12/30: Drift: 0.002 CPU - 0.001 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 12/30: Inputs: 0.000 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 12/30: Diagnostic: 0.000 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 12/30: Outputs: 0.000 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 12/30: Total Evolution: 0.368 CPU - 0.073 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|ModuleP3M: Begin P3M step 13/30, time_kick:0.038109, time_drift=0.041628.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|ModuleP3M: Compute time step limiters for step 13/30 done.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting density contrast (using 8 cores and 8 arrays, parallel routine 1)...\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting density contrast (using 8 cores and 8 arrays, parallel routine 1) done.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting gravitational potential, periodic boundary conditions (using 8 cores)...\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting gravitational potential, periodic boundary conditions (using 8 cores) done.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Kicking particles (using 8 cores)...\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Kicking particles (using 8 cores) done.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Drifting particles (using 8 cores)...\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Drifting particles (using 8 cores) done.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|ModuleP3M: End P3M step 13/30, time_kick:0.045471, time_drift=0.049669.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 13/30: Density: 0.013 CPU - 0.003 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 13/30: Potential: 0.007 CPU - 0.003 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 13/30: Accelerations (long-range): 0.088 CPU - 0.031 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 13/30: Accelerations (short-range): 0.244 CPU - 0.060 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 13/30: Kick: 0.006 CPU - 0.002 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 13/30: Drift: 0.002 CPU - 0.001 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 13/30: Inputs: 0.000 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 13/30: Diagnostic: 0.000 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 13/30: Outputs: 0.000 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 13/30: Total Evolution: 0.360 CPU - 0.099 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|ModuleP3M: Begin P3M step 14/30, time_kick:0.045471, time_drift=0.049669.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|ModuleP3M: Compute time step limiters for step 14/30 done.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting density contrast (using 8 cores and 8 arrays, parallel routine 1)...\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting density contrast (using 8 cores and 8 arrays, parallel routine 1) done.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting gravitational potential, periodic boundary conditions (using 8 cores)...\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting gravitational potential, periodic boundary conditions (using 8 cores) done.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Kicking particles (using 8 cores)...\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Kicking particles (using 8 cores) done.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Drifting particles (using 8 cores)...\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Drifting particles (using 8 cores) done.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|ModuleP3M: End P3M step 14/30, time_kick:0.054254, time_drift=0.059263.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 14/30: Density: 0.008 CPU - 0.006 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 14/30: Potential: 0.007 CPU - 0.005 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 14/30: Accelerations (long-range): 0.092 CPU - 0.020 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 14/30: Accelerations (short-range): 0.252 CPU - 0.052 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 14/30: Kick: 0.006 CPU - 0.002 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 14/30: Drift: 0.002 CPU - 0.001 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 14/30: Inputs: 0.000 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 14/30: Diagnostic: 0.000 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 14/30: Outputs: 0.000 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 14/30: Total Evolution: 0.367 CPU - 0.086 wallclock seconds used.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|ModuleP3M: Begin P3M step 15/30, time_kick:0.054254, time_drift=0.059263.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|ModuleP3M: Compute time step limiters for step 15/30 done.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting density contrast (using 8 cores and 8 arrays, parallel routine 1)...\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting density contrast (using 8 cores and 8 arrays, parallel routine 1) done.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting gravitational potential, periodic boundary conditions (using 8 cores)...\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting gravitational potential, periodic boundary conditions (using 8 cores) done.\n",
      "[01:56:11\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Kicking particles (using 8 cores)...\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Kicking particles (using 8 cores) done.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Drifting particles (using 8 cores)...\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Drifting particles (using 8 cores) done.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|ModuleP3M: End P3M step 15/30, time_kick:0.064734, time_drift=0.070711.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 15/30: Density: 0.012 CPU - 0.003 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 15/30: Potential: 0.006 CPU - 0.002 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 15/30: Accelerations (long-range): 0.096 CPU - 0.021 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 15/30: Accelerations (short-range): 0.258 CPU - 0.037 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 15/30: Kick: 0.006 CPU - 0.002 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 15/30: Drift: 0.001 CPU - 0.001 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 15/30: Inputs: 0.000 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 15/30: Diagnostic: 0.000 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 15/30: Outputs: 0.000 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 15/30: Total Evolution: 0.379 CPU - 0.065 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|ModuleP3M: Begin P3M step 16/30, time_kick:0.064734, time_drift=0.070711.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|ModuleP3M: Compute time step limiters for step 16/30 done.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting density contrast (using 8 cores and 8 arrays, parallel routine 1)...\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting density contrast (using 8 cores and 8 arrays, parallel routine 1) done.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting gravitational potential, periodic boundary conditions (using 8 cores)...\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting gravitational potential, periodic boundary conditions (using 8 cores) done.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Kicking particles (using 8 cores)...\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Kicking particles (using 8 cores) done.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Drifting particles (using 8 cores)...\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Drifting particles (using 8 cores) done.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|ModuleP3M: End P3M step 16/30, time_kick:0.077239, time_drift=0.084370.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 16/30: Density: 0.011 CPU - 0.002 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 16/30: Potential: 0.006 CPU - 0.002 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 16/30: Accelerations (long-range): 0.089 CPU - 0.022 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 16/30: Accelerations (short-range): 0.258 CPU - 0.036 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 16/30: Kick: 0.005 CPU - 0.001 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 16/30: Drift: 0.001 CPU - 0.001 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 16/30: Inputs: 0.000 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 16/30: Diagnostic: 0.000 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 16/30: Outputs: 0.000 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 16/30: Total Evolution: 0.371 CPU - 0.065 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|ModuleP3M: Begin P3M step 17/30, time_kick:0.077239, time_drift=0.084370.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|ModuleP3M: Compute time step limiters for step 17/30 done.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting density contrast (using 8 cores and 8 arrays, parallel routine 1)...\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting density contrast (using 8 cores and 8 arrays, parallel routine 1) done.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting gravitational potential, periodic boundary conditions (using 8 cores)...\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting gravitational potential, periodic boundary conditions (using 8 cores) done.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Kicking particles (using 8 cores)...\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Kicking particles (using 8 cores) done.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Drifting particles (using 8 cores)...\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Drifting particles (using 8 cores) done.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|ModuleP3M: End P3M step 17/30, time_kick:0.092159, time_drift=0.100667.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 17/30: Density: 0.013 CPU - 0.002 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 17/30: Potential: 0.006 CPU - 0.002 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 17/30: Accelerations (long-range): 0.093 CPU - 0.019 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 17/30: Accelerations (short-range): 0.264 CPU - 0.036 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 17/30: Kick: 0.006 CPU - 0.001 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 17/30: Drift: 0.001 CPU - 0.001 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 17/30: Inputs: 0.000 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 17/30: Diagnostic: 0.000 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 17/30: Outputs: 0.000 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 17/30: Total Evolution: 0.383 CPU - 0.061 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|ModuleP3M: Begin P3M step 18/30, time_kick:0.092159, time_drift=0.100667.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|ModuleP3M: Compute time step limiters for step 18/30 done.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting density contrast (using 8 cores and 8 arrays, parallel routine 1)...\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting density contrast (using 8 cores and 8 arrays, parallel routine 1) done.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting gravitational potential, periodic boundary conditions (using 8 cores)...\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting gravitational potential, periodic boundary conditions (using 8 cores) done.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Kicking particles (using 8 cores)...\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Kicking particles (using 8 cores) done.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Drifting particles (using 8 cores)...\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Drifting particles (using 8 cores) done.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|ModuleP3M: End P3M step 18/30, time_kick:0.109961, time_drift=0.120112.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 18/30: Density: 0.013 CPU - 0.002 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 18/30: Potential: 0.006 CPU - 0.002 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 18/30: Accelerations (long-range): 0.099 CPU - 0.022 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 18/30: Accelerations (short-range): 0.267 CPU - 0.037 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 18/30: Kick: 0.006 CPU - 0.002 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 18/30: Drift: 0.001 CPU - 0.001 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 18/30: Inputs: 0.000 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 18/30: Diagnostic: 0.000 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 18/30: Outputs: 0.000 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 18/30: Total Evolution: 0.393 CPU - 0.066 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|ModuleP3M: Begin P3M step 19/30, time_kick:0.109961, time_drift=0.120112.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|ModuleP3M: Compute time step limiters for step 19/30 done.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting density contrast (using 8 cores and 8 arrays, parallel routine 1)...\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting density contrast (using 8 cores and 8 arrays, parallel routine 1) done.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting gravitational potential, periodic boundary conditions (using 8 cores)...\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting gravitational potential, periodic boundary conditions (using 8 cores) done.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Kicking particles (using 8 cores)...\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Kicking particles (using 8 cores) done.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Drifting particles (using 8 cores)...\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Drifting particles (using 8 cores) done.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|ModuleP3M: End P3M step 19/30, time_kick:0.131201, time_drift=0.143314.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 19/30: Density: 0.014 CPU - 0.002 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 19/30: Potential: 0.006 CPU - 0.002 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 19/30: Accelerations (long-range): 0.095 CPU - 0.018 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 19/30: Accelerations (short-range): 0.272 CPU - 0.037 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 19/30: Kick: 0.006 CPU - 0.001 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 19/30: Drift: 0.002 CPU - 0.001 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 19/30: Inputs: 0.000 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 19/30: Diagnostic: 0.000 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 19/30: Outputs: 0.000 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 19/30: Total Evolution: 0.395 CPU - 0.061 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|ModuleP3M: Begin P3M step 20/30, time_kick:0.131201, time_drift=0.143314.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|ModuleP3M: Compute time step limiters for step 20/30 done.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting density contrast (using 8 cores and 8 arrays, parallel routine 1)...\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting density contrast (using 8 cores and 8 arrays, parallel routine 1) done.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting gravitational potential, periodic boundary conditions (using 8 cores)...\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting gravitational potential, periodic boundary conditions (using 8 cores) done.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Kicking particles (using 8 cores)...\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Kicking particles (using 8 cores) done.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Drifting particles (using 8 cores)...\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Drifting particles (using 8 cores) done.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|ModuleP3M: End P3M step 20/30, time_kick:0.156545, time_drift=0.170998.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 20/30: Density: 0.015 CPU - 0.003 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 20/30: Potential: 0.006 CPU - 0.002 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 20/30: Accelerations (long-range): 0.092 CPU - 0.019 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 20/30: Accelerations (short-range): 0.269 CPU - 0.037 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 20/30: Kick: 0.006 CPU - 0.001 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 20/30: Drift: 0.001 CPU - 0.001 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 20/30: Inputs: 0.000 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 20/30: Diagnostic: 0.000 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 20/30: Outputs: 0.000 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 20/30: Total Evolution: 0.389 CPU - 0.062 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|ModuleP3M: Begin P3M step 21/30, time_kick:0.156545, time_drift=0.170998.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|ModuleP3M: Compute time step limiters for step 21/30 done.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting density contrast (using 8 cores and 8 arrays, parallel routine 1)...\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting density contrast (using 8 cores and 8 arrays, parallel routine 1) done.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting gravitational potential, periodic boundary conditions (using 8 cores)...\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting gravitational potential, periodic boundary conditions (using 8 cores) done.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Kicking particles (using 8 cores)...\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Kicking particles (using 8 cores) done.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Drifting particles (using 8 cores)...\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Drifting particles (using 8 cores) done.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|ModuleP3M: End P3M step 21/30, time_kick:0.186784, time_drift=0.204029.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 21/30: Density: 0.012 CPU - 0.002 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 21/30: Potential: 0.006 CPU - 0.002 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 21/30: Accelerations (long-range): 0.089 CPU - 0.020 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 21/30: Accelerations (short-range): 0.277 CPU - 0.038 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 21/30: Kick: 0.006 CPU - 0.001 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 21/30: Drift: 0.001 CPU - 0.001 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 21/30: Inputs: 0.000 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 21/30: Diagnostic: 0.000 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 21/30: Outputs: 0.000 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 21/30: Total Evolution: 0.390 CPU - 0.064 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|ModuleP3M: Begin P3M step 22/30, time_kick:0.186784, time_drift=0.204029.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|ModuleP3M: Compute time step limiters for step 22/30 done.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting density contrast (using 8 cores and 8 arrays, parallel routine 1)...\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting density contrast (using 8 cores and 8 arrays, parallel routine 1) done.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting gravitational potential, periodic boundary conditions (using 8 cores)...\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting gravitational potential, periodic boundary conditions (using 8 cores) done.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Kicking particles (using 8 cores)...\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Kicking particles (using 8 cores) done.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Drifting particles (using 8 cores)...\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Drifting particles (using 8 cores) done.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|ModuleP3M: End P3M step 22/30, time_kick:0.222865, time_drift=0.243440.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 22/30: Density: 0.013 CPU - 0.003 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 22/30: Potential: 0.005 CPU - 0.002 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 22/30: Accelerations (long-range): 0.091 CPU - 0.020 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 22/30: Accelerations (short-range): 0.275 CPU - 0.094 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 22/30: Kick: 0.005 CPU - 0.001 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 22/30: Drift: 0.001 CPU - 0.001 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 22/30: Inputs: 0.000 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 22/30: Diagnostic: 0.000 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 22/30: Outputs: 0.000 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 22/30: Total Evolution: 0.391 CPU - 0.121 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|ModuleP3M: Begin P3M step 23/30, time_kick:0.222865, time_drift=0.243440.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|ModuleP3M: Compute time step limiters for step 23/30 done.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting density contrast (using 8 cores and 8 arrays, parallel routine 1)...\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting density contrast (using 8 cores and 8 arrays, parallel routine 1) done.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting gravitational potential, periodic boundary conditions (using 8 cores)...\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting gravitational potential, periodic boundary conditions (using 8 cores) done.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Kicking particles (using 8 cores)...\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Kicking particles (using 8 cores) done.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Drifting particles (using 8 cores)...\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Drifting particles (using 8 cores) done.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|ModuleP3M: End P3M step 23/30, time_kick:0.265915, time_drift=0.290464.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 23/30: Density: 0.010 CPU - 0.003 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 23/30: Potential: 0.006 CPU - 0.002 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 23/30: Accelerations (long-range): 0.095 CPU - 0.020 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 23/30: Accelerations (short-range): 0.299 CPU - 0.066 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 23/30: Kick: 0.007 CPU - 0.002 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 23/30: Drift: 0.002 CPU - 0.001 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 23/30: Inputs: 0.000 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 23/30: Diagnostic: 0.000 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 23/30: Outputs: 0.000 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 23/30: Total Evolution: 0.418 CPU - 0.094 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|ModuleP3M: Begin P3M step 24/30, time_kick:0.265915, time_drift=0.290464.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|ModuleP3M: Compute time step limiters for step 24/30 done.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting density contrast (using 8 cores and 8 arrays, parallel routine 1)...\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting density contrast (using 8 cores and 8 arrays, parallel routine 1) done.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting gravitational potential, periodic boundary conditions (using 8 cores)...\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting gravitational potential, periodic boundary conditions (using 8 cores) done.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Kicking particles (using 8 cores)...\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Kicking particles (using 8 cores) done.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Drifting particles (using 8 cores)...\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Drifting particles (using 8 cores) done.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|ModuleP3M: End P3M step 24/30, time_kick:0.317281, time_drift=0.346572.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 24/30: Density: 0.013 CPU - 0.003 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 24/30: Potential: 0.007 CPU - 0.002 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 24/30: Accelerations (long-range): 0.092 CPU - 0.019 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 24/30: Accelerations (short-range): 0.322 CPU - 0.052 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 24/30: Kick: 0.006 CPU - 0.001 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 24/30: Drift: 0.001 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 24/30: Inputs: 0.000 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 24/30: Diagnostic: 0.000 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 24/30: Outputs: 0.000 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 24/30: Total Evolution: 0.441 CPU - 0.078 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|ModuleP3M: Begin P3M step 25/30, time_kick:0.317281, time_drift=0.346572.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|ModuleP3M: Compute time step limiters for step 25/30 done.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting density contrast (using 8 cores and 8 arrays, parallel routine 1)...\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting density contrast (using 8 cores and 8 arrays, parallel routine 1) done.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting gravitational potential, periodic boundary conditions (using 8 cores)...\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting gravitational potential, periodic boundary conditions (using 8 cores) done.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Kicking particles (using 8 cores)...\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Kicking particles (using 8 cores) done.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Drifting particles (using 8 cores)...\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Drifting particles (using 8 cores) done.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|ModuleP3M: End P3M step 25/30, time_kick:0.378569, time_drift=0.413519.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 25/30: Density: 0.016 CPU - 0.003 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 25/30: Potential: 0.006 CPU - 0.002 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 25/30: Accelerations (long-range): 0.087 CPU - 0.021 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 25/30: Accelerations (short-range): 0.354 CPU - 0.051 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 25/30: Kick: 0.006 CPU - 0.001 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 25/30: Drift: 0.001 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 25/30: Inputs: 0.000 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 25/30: Diagnostic: 0.000 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 25/30: Outputs: 0.000 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 25/30: Total Evolution: 0.470 CPU - 0.079 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|ModuleP3M: Begin P3M step 26/30, time_kick:0.378569, time_drift=0.413519.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|ModuleP3M: Compute time step limiters for step 26/30 done.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting density contrast (using 8 cores and 8 arrays, parallel routine 1)...\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting density contrast (using 8 cores and 8 arrays, parallel routine 1) done.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting gravitational potential, periodic boundary conditions (using 8 cores)...\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting gravitational potential, periodic boundary conditions (using 8 cores) done.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Kicking particles (using 8 cores)...\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Kicking particles (using 8 cores) done.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Drifting particles (using 8 cores)...\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Drifting particles (using 8 cores) done.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|ModuleP3M: End P3M step 26/30, time_kick:0.451695, time_drift=0.493396.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 26/30: Density: 0.014 CPU - 0.003 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 26/30: Potential: 0.006 CPU - 0.002 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 26/30: Accelerations (long-range): 0.093 CPU - 0.019 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 26/30: Accelerations (short-range): 0.394 CPU - 0.058 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 26/30: Kick: 0.006 CPU - 0.001 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 26/30: Drift: 0.001 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 26/30: Inputs: 0.000 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 26/30: Diagnostic: 0.000 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 26/30: Outputs: 0.000 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 26/30: Total Evolution: 0.513 CPU - 0.084 wallclock seconds used.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|ModuleP3M: Begin P3M step 27/30, time_kick:0.451695, time_drift=0.493396.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|ModuleP3M: Compute time step limiters for step 27/30 done.\n",
      "[01:56:12\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting density contrast (using 8 cores and 8 arrays, parallel routine 1)...\n",
      "[01:56:13\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting density contrast (using 8 cores and 8 arrays, parallel routine 1) done.\n",
      "[01:56:13\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting gravitational potential, periodic boundary conditions (using 8 cores)...\n",
      "[01:56:13\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting gravitational potential, periodic boundary conditions (using 8 cores) done.\n",
      "[01:56:13\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Kicking particles (using 8 cores)...\n",
      "[01:56:13\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Kicking particles (using 8 cores) done.\n",
      "[01:56:13\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Drifting particles (using 8 cores)...\n",
      "[01:56:13\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Drifting particles (using 8 cores) done.\n",
      "[01:56:13\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|ModuleP3M: End P3M step 27/30, time_kick:0.538948, time_drift=0.588704.\n",
      "[01:56:13\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 27/30: Density: 0.017 CPU - 0.003 wallclock seconds used.\n",
      "[01:56:13\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 27/30: Potential: 0.006 CPU - 0.002 wallclock seconds used.\n",
      "[01:56:13\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 27/30: Accelerations (long-range): 0.094 CPU - 0.020 wallclock seconds used.\n",
      "[01:56:13\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 27/30: Accelerations (short-range): 0.446 CPU - 0.070 wallclock seconds used.\n",
      "[01:56:13\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 27/30: Kick: 0.006 CPU - 0.001 wallclock seconds used.\n",
      "[01:56:13\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 27/30: Drift: 0.002 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:13\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 27/30: Inputs: 0.000 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:13\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 27/30: Diagnostic: 0.000 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:13\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 27/30: Outputs: 0.000 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:13\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 27/30: Total Evolution: 0.570 CPU - 0.096 wallclock seconds used.\n",
      "[01:56:13\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|ModuleP3M: Begin P3M step 28/30, time_kick:0.538948, time_drift=0.588704.\n",
      "[01:56:13\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|ModuleP3M: Compute time step limiters for step 28/30 done.\n",
      "[01:56:13\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting density contrast (using 8 cores and 8 arrays, parallel routine 1)...\n",
      "[01:56:13\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting density contrast (using 8 cores and 8 arrays, parallel routine 1) done.\n",
      "[01:56:13\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting gravitational potential, periodic boundary conditions (using 8 cores)...\n",
      "[01:56:13\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting gravitational potential, periodic boundary conditions (using 8 cores) done.\n",
      "[01:56:13\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Kicking particles (using 8 cores)...\n",
      "[01:56:13\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Kicking particles (using 8 cores) done.\n",
      "[01:56:13\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Drifting particles (using 8 cores)...\n",
      "[01:56:13\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Drifting particles (using 8 cores) done.\n",
      "[01:56:13\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|ModuleP3M: End P3M step 28/30, time_kick:0.643054, time_drift=0.702422.\n",
      "[01:56:13\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 28/30: Density: 0.009 CPU - 0.002 wallclock seconds used.\n",
      "[01:56:13\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 28/30: Potential: 0.007 CPU - 0.003 wallclock seconds used.\n",
      "[01:56:13\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 28/30: Accelerations (long-range): 0.095 CPU - 0.020 wallclock seconds used.\n",
      "[01:56:13\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 28/30: Accelerations (short-range): 0.508 CPU - 0.096 wallclock seconds used.\n",
      "[01:56:13\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 28/30: Kick: 0.006 CPU - 0.001 wallclock seconds used.\n",
      "[01:56:13\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 28/30: Drift: 0.002 CPU - 0.001 wallclock seconds used.\n",
      "[01:56:13\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 28/30: Inputs: 0.000 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:13\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 28/30: Diagnostic: 0.000 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:13\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 28/30: Outputs: 0.000 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:13\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 28/30: Total Evolution: 0.626 CPU - 0.124 wallclock seconds used.\n",
      "[01:56:13\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|ModuleP3M: Begin P3M step 29/30, time_kick:0.643054, time_drift=0.702422.\n",
      "[01:56:13\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|ModuleP3M: Compute time step limiters for step 29/30 done.\n",
      "[01:56:13\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting density contrast (using 8 cores and 8 arrays, parallel routine 1)...\n",
      "[01:56:13\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting density contrast (using 8 cores and 8 arrays, parallel routine 1) done.\n",
      "[01:56:13\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting gravitational potential, periodic boundary conditions (using 8 cores)...\n",
      "[01:56:13\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting gravitational potential, periodic boundary conditions (using 8 cores) done.\n",
      "[01:56:13\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Kicking particles (using 8 cores)...\n",
      "[01:56:13\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Kicking particles (using 8 cores) done.\n",
      "[01:56:13\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Drifting particles (using 8 cores)...\n",
      "[01:56:13\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Drifting particles (using 8 cores) done.\n",
      "[01:56:13\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|ModuleP3M: End P3M step 29/30, time_kick:0.767270, time_drift=0.838106.\n",
      "[01:56:13\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 29/30: Density: 0.014 CPU - 0.003 wallclock seconds used.\n",
      "[01:56:13\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 29/30: Potential: 0.006 CPU - 0.002 wallclock seconds used.\n",
      "[01:56:13\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 29/30: Accelerations (long-range): 0.094 CPU - 0.019 wallclock seconds used.\n",
      "[01:56:13\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 29/30: Accelerations (short-range): 0.618 CPU - 0.113 wallclock seconds used.\n",
      "[01:56:13\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 29/30: Kick: 0.007 CPU - 0.001 wallclock seconds used.\n",
      "[01:56:13\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 29/30: Drift: 0.001 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:13\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 29/30: Inputs: 0.000 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:13\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 29/30: Diagnostic: 0.000 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:13\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 29/30: Outputs: 0.000 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:13\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 29/30: Total Evolution: 0.740 CPU - 0.138 wallclock seconds used.\n",
      "[01:56:13\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|ModuleP3M: Begin P3M step 30/30, time_kick:0.767270, time_drift=0.838106.\n",
      "[01:56:13\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|ModuleP3M: Compute time step limiters for step 30/30 done.\n",
      "[01:56:13\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting density contrast (using 8 cores and 8 arrays, parallel routine 1)...\n",
      "[01:56:13\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting density contrast (using 8 cores and 8 arrays, parallel routine 1) done.\n",
      "[01:56:13\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting gravitational potential, periodic boundary conditions (using 8 cores)...\n",
      "[01:56:13\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting gravitational potential, periodic boundary conditions (using 8 cores) done.\n",
      "[01:56:13\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Kicking particles (using 8 cores)...\n",
      "[01:56:13\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Kicking particles (using 8 cores) done.\n",
      "[01:56:13\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Drifting particles (using 8 cores)...\n",
      "[01:56:13\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Drifting particles (using 8 cores) done.\n",
      "[01:56:13\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting density contrast (using 8 cores and 8 arrays, parallel routine 1)...\n",
      "[01:56:13\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting density contrast (using 8 cores and 8 arrays, parallel routine 1) done.\n",
      "[01:56:13\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting gravitational potential, periodic boundary conditions (using 8 cores)...\n",
      "[01:56:13\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Getting gravitational potential, periodic boundary conditions (using 8 cores) done.\n",
      "[01:56:13\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Kicking particles (using 8 cores)...\n",
      "[01:56:13\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Kicking particles (using 8 cores) done.\n",
      "[01:56:13\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|ModuleP3M: End P3M step 30/30, time_kick:1.000000, time_drift=1.000000.\n",
      "[01:56:13\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 30/30: Density: 0.031 CPU - 0.006 wallclock seconds used.\n",
      "[01:56:13\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 30/30: Potential: 0.012 CPU - 0.004 wallclock seconds used.\n",
      "[01:56:13\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 30/30: Accelerations (long-range): 0.184 CPU - 0.039 wallclock seconds used.\n",
      "[01:56:13\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 30/30: Accelerations (short-range): 1.513 CPU - 0.289 wallclock seconds used.\n",
      "[01:56:13\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 30/30: Kick: 0.012 CPU - 0.003 wallclock seconds used.\n",
      "[01:56:13\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 30/30: Drift: 0.001 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:13\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 30/30: Inputs: 0.000 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:13\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 30/30: Diagnostic: 0.000 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:13\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 30/30: Outputs: 0.000 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:13\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Step 30/30: Total Evolution: 1.753 CPU - 0.341 wallclock seconds used.\n",
      "[01:56:13\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Box: Density: 0.386 CPU - 0.085 wallclock seconds used.\n",
      "[01:56:13\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Box: Potential: 0.186 CPU - 0.070 wallclock seconds used.\n",
      "[01:56:13\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Box: Accelerations (long-range): 2.882 CPU - 0.665 wallclock seconds used.\n",
      "[01:56:13\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Box: Accelerations (short-range): 10.111 CPU - 1.780 wallclock seconds used.\n",
      "[01:56:13\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Box: Kick: 0.183 CPU - 0.050 wallclock seconds used.\n",
      "[01:56:13\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Box: Drift: 0.045 CPU - 0.018 wallclock seconds used.\n",
      "[01:56:13\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Box: Inputs: 0.000 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:13\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Box: Diagnostic: 0.000 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:13\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Box: Outputs: 0.000 CPU - 0.000 wallclock seconds used.\n",
      "[01:56:13\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]==|Box: Total Evolution: 13.793 CPU - 2.668 wallclock seconds used.\n",
      "[01:56:13\u001b[00m|\u001b[38;5;147mMODULE    \u001b[00m]|\u001b[38;5;147mModuleP3M: Evolving with P3M done.\u001b[00m\n",
      "[01:56:13\u001b[00m|\u001b[38;5;147mMODULE    \u001b[00m]|\u001b[38;5;147mModulePMCOLA: Computing outputs...\u001b[00m\n",
      "[01:56:13\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|Getting density contrast (using 8 cores and 8 arrays, parallel routine 1)...\n",
      "[01:56:13\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|Getting density contrast (using 8 cores and 8 arrays, parallel routine 1) done.\n",
      "[01:56:13\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|Writing field to '/Users/hoellinger/WIP3M/notebook4/p3m_nsteps30_final_density_p3m.h5'...\n",
      "[01:56:13\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|Writing field to '/Users/hoellinger/WIP3M/notebook4/p3m_nsteps30_final_density_p3m.h5' done.\n",
      "[01:56:13\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|Writing header in '/Users/hoellinger/WIP3M/notebook4/p3m_nsteps30_p3m_snapshot.gadget3'...\n",
      "[01:56:13\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|Writing header in '/Users/hoellinger/WIP3M/notebook4/p3m_nsteps30_p3m_snapshot.gadget3' done.\n",
      "[01:56:13\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|Writing snapshot in '/Users/hoellinger/WIP3M/notebook4/p3m_nsteps30_p3m_snapshot.gadget3' (32768 particles)...\n",
      "[01:56:13\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Writing block: 'POS '...\n",
      "[01:56:13\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Writing block: 'POS ' done.\n",
      "[01:56:13\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Writing block: 'VEL '...\n",
      "[01:56:13\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Writing block: 'VEL ' done.\n",
      "[01:56:13\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Writing block: 'ID  '...\n",
      "[01:56:13\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]====|Writing block: 'ID  ' done.\n",
      "[01:56:13\u001b[00m|\u001b[38;5;113mSTATUS    \u001b[00m]==|Writing snapshot in '/Users/hoellinger/WIP3M/notebook4/p3m_nsteps30_p3m_snapshot.gadget3' done.\n",
      "[01:56:13\u001b[00m|\u001b[38;5;147mMODULE    \u001b[00m]|\u001b[38;5;147mModulePMCOLA: Computing outputs done.\u001b[00m\n",
      "[01:56:13\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]|PMCOLA output: 0.013 CPU - 0.005 wallclock seconds used.\n",
      "[01:56:13\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]|ModulePMCOLA: 14.043 CPU - 2.919 wallclock seconds used.\n",
      "[01:56:13\u001b[00m|\u001b[38;5;159mTIMER     \u001b[00m]|Simbelmynë: 14.268 CPU - 2.980 wallclock seconds used.\n",
      "[01:56:13\u001b[00m|\u001b[38;5;117mINFO      \u001b[00m]|Everything done successfully, exiting.\n"
     ]
    }
   ],
   "source": [
    "run_simulation(\"p3m\", p3m_params, wd, logdir)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "7d24f105",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[01:56:13|\u001b[1;36mINFO      \u001b[00m]|\u001b[38;5;147m(wip3m.plot_utils)\u001b[00m Plotting timestep limiters from /Users/hoellinger/WIP3M/notebook4/timesteps_log.txt...\n",
      "[01:56:14|\u001b[1;36mINFO      \u001b[00m]==|\u001b[38;5;147m(wip3m.plot_utils)\u001b[00m Figure saved to: /Users/hoellinger/Library/CloudStorage/Dropbox/travail/these/science/code/simbelmyne/simbelmyne2025/WIP_P3M/results/notebook4/time_step_diagnostics.pdf\n",
      "[01:56:14|\u001b[1;36mINFO      \u001b[00m]|\u001b[38;5;147m(wip3m.plot_utils)\u001b[00m Plotting timestep limiters from /Users/hoellinger/WIP3M/notebook4/timesteps_log.txt done.\n"
     ]
    },
    {
     "data": {
      "image/png": "[encoded data, 209236 characters]",
      "text/plain": [
       "<Figure size 1650x1200 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_timestepping_diagnostics(\n",
    "    log_path=OutputTimestepsLog,\n",
    "    aiDrift=aiDrift,\n",
    "    TimeStepDistribution=TimeStepDistribution,\n",
    "    nsteps=nsteps,\n",
    "    save_path=wd+\"time_step_diagnostics.pdf\",\n",
    "    show=False,\n",
    ")\n",
    "a = aiDrift\n",
    "plt.loglog(a, 0.1 * 0.031 * np.ones_like(a) / a)\n",
    "plt.loglog(a, 1e-2 * np.ones_like(a))\n",
    "fac_p3m_concept = 0.14\n",
    "lambda_p3m = lambda x, eta: eta * np.maximum(0.1 * 0.031 / x, 0.01)/fac_p3m_concept\n",
    "approx_P3Mlim = lambda_p3m(a, fac_p3m_concept)\n",
    "plt.loglog(a, approx_P3Mlim, color=\"black\")\n",
    "approx_P3Mlim_eta01 = lambda_p3m(a, 0.1)\n",
    "plt.loglog(a, approx_P3Mlim_eta01, color=\"red\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "c1c096bb",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "dadb9198",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "p3m",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.13.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
