{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Modelling neutral beam injection with BBNBI\n", "\n", "This example shows how to generate beam ions with BBNBI5.\n", "\n", "In order to run BBNBI, you'll need to compile it separately with ``make bbnbi5`` and the resulting binary will be in the ``build`` folder.\n", "Once that is done, we initialize some test data.\n", "BBNBI requires magnetic field, plasma, neutral, wall, and atomic data to be present.\n", "\n", "> **_NOTE:_** Currently atomic data is not used even though it is required; it is a placeholder for future development.\n", "\n", "Here we use spline interpolated magnetic field and 3D wall to demonstrate specific aspects of BBNBI." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "execution": { "iopub.execute_input": "2025-04-01T09:05:14.040781Z", "iopub.status.busy": "2025-04-01T09:05:14.040607Z", "iopub.status.idle": "2025-04-01T09:05:16.035706Z", "shell.execute_reply": "2025-04-01T09:05:16.035061Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Inputs created" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\n" ] } ], "source": [ "import numpy as np\n", "import unyt\n", "import matplotlib.pyplot as plt\n", "from a5py import Ascot\n", "\n", "a5 = Ascot(\"ascot.h5\", create=True)\n", "\n", "# Use splines for a more realistic case\n", "a5.data.create_input(\"bfield analytical iter circular\", splines=True,\n", " desc=\"SPLINE2D\")\n", "\n", "nrho = 101\n", "rho = np.linspace(0, 2, nrho).T\n", "prof = (rho<=1)*(1.0 - rho**(3.0/2))**3 + 1e-6\n", "vtor = np.zeros((nrho, 1))\n", "edens = 2e20 * prof\n", "etemp = 1e4 * np.ones((nrho, 1))\n", "idens = 1e20 * np.reshape(prof,(nrho,1))\n", "itemp = 1e4 * np.ones((nrho, 1))\n", "\n", "edens[rho>=1] = 1\n", "idens[rho>=1] = 1\n", "\n", "pls = {\n", " \"nrho\" : nrho, \"nion\" : 1, \"rho\" : rho, \"vtor\": vtor,\n", " \"anum\" : np.array([2]), \"znum\" : np.array([1]),\n", " \"mass\" : np.array([2.014]), \"charge\" : np.array([1]),\n", " \"edensity\" : edens, \"etemperature\" : etemp,\n", " \"idensity\" : idens, \"itemperature\" : itemp}\n", "a5.data.create_input(\"plasma_1D\", **pls, desc=\"FLATDT\")\n", "\n", "from a5py.ascot5io.wall import wall_3D\n", "rad = 2.1\n", "pol = np.linspace(0, 2*np.pi, 180)\n", "wall = {\"nelements\":180,\n", " \"r\":6.2 + rad*np.cos(pol), \"z\":0.0 + rad*np.sin(pol)}\n", "wall = wall_3D.convert_wall_2D(180, **wall)\n", "a5.data.create_input(\"wall_3D\", **wall, desc=\"ROTATED\")\n", "\n", "a5.data.create_input(\"N0_1D\")\n", "a5.data.create_input(\"asigma_loc\")\n", "\n", "print(\"Inputs created\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "One input that is entirely BBNBI specific is the NBI input that contains a bundle of injectors.\n", "The injector data defines the geometry of the injectory, the injected species, its energy (distribution), and power.\n", "Often one does not need to specify the geometry as the data already exists.\n", "\n", "> **_NOTE:_** Injector specifications exists for the following machines: ITER, JET, ASDEX Upgrade, MAST-U, JT-60SA, NSTX, and TCV.\n", " These cannot be shared publicly within the ASCOT5 repository, so please contact the maintainers to gain access to the data.\n", "\n", "For this tutorial, we use the method ``a5py.ascot5io.nbi.NBI.generate`` which creates a simplified injector." ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "execution": { "iopub.execute_input": "2025-04-01T09:05:16.037656Z", "iopub.status.busy": "2025-04-01T09:05:16.037201Z", "iopub.status.idle": "2025-04-01T09:05:16.063043Z", "shell.execute_reply": "2025-04-01T09:05:16.062496Z" } }, "outputs": [ { "data": { "text/plain": [ "'nbi_1523940375'" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from a5py.ascot5io.nbi import NBI\n", "inj = NBI.generate(r=10.0, phi=10.0, z=0.0, tanrad=-6.0, focallen=1.0,\n", " dgrid=[0.23, 0.52], nbeamlet=1, anum=2, znum=1,\n", " mass=2.0141, energy=1e6, efrac=[1.0, 0.0, 0.0],\n", " power=1e6, tilt=0.1,\n", " div=[np.deg2rad(0.95)/2, np.deg2rad(0.95)/2])\n", "a5.data.create_input(\"nbi\", **{\"ninj\":1, \"injectors\":[inj]},\n", " desc=\"INJECTORS\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "BBNBI shares some of the options with the main program.\n", "Mainly the distribution output settings (which are optional)." ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "execution": { "iopub.execute_input": "2025-04-01T09:05:16.064937Z", "iopub.status.busy": "2025-04-01T09:05:16.064468Z", "iopub.status.idle": "2025-04-01T09:05:16.100399Z", "shell.execute_reply": "2025-04-01T09:05:16.099842Z" } }, "outputs": [ { "data": { "text/plain": [ "'opt_0896763049'" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from a5py.ascot5io.options import Opt\n", "\n", "opt = Opt.get_default()\n", "opt.update({\n", " \"ENABLE_DIST_5D\":1,\n", " \"DIST_MIN_R\":4.3, \"DIST_MAX_R\":8.3, \"DIST_NBIN_R\":50,\n", " \"DIST_MIN_PHI\":0, \"DIST_MAX_PHI\":360, \"DIST_NBIN_PHI\":1,\n", " \"DIST_MIN_Z\":-2.0, \"DIST_MAX_Z\":2.0, \"DIST_NBIN_Z\":50,\n", " \"DIST_MIN_PPA\":-1.3e-19, \"DIST_MAX_PPA\":1.3e-19, \"DIST_NBIN_PPA\":100,\n", " \"DIST_MIN_PPE\":0, \"DIST_MAX_PPE\":1.3e-19, \"DIST_NBIN_PPE\":50,\n", " \"DIST_MIN_TIME\":0, \"DIST_MAX_TIME\":1.0, \"DIST_NBIN_TIME\":1,\n", " \"DIST_MIN_CHARGE\":0, \"DIST_MAX_CHARGE\":2, \"DIST_NBIN_CHARGE\":1,\n", "})\n", "a5.data.create_input(\"opt\", **opt, desc=\"BEAMDEPOSITION\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To run a simulation, BBNBI works in a similar fashion as ``ascot5_main``.\n", "One notable difference is that BBNBI is not MPI parallelized.\n", "The total number of markers to be injected from all injectors is given as a command line parameter." ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "execution": { "iopub.execute_input": "2025-04-01T09:05:16.102466Z", "iopub.status.busy": "2025-04-01T09:05:16.101934Z", "iopub.status.idle": "2025-04-01T09:05:26.873227Z", "shell.execute_reply": "2025-04-01T09:05:26.872593Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "BBNBI5\n", "Tag e37fd83\n", "Branch docs\n", "\n", "\n", "Reading and initializing input.\n", "\n", "Input file is ascot.h5.\n", "\n", "Reading options input.\n", "Active QID is 0896763049\n", "Options read and initialized.\n", "\n", "Reading magnetic field input.\n", "Active QID is 3561378752\n", "\n", "2D magnetic field (B_2DS)\n", "Grid: nR = 120 Rmin = 4.000 Rmax = 8.500\n", " nz = 200 zmin = -4.000 zmax = 4.000\n", "Psi at magnetic axis (6.618 m, -0.000 m)\n", "-5.410 (evaluated)\n", "-5.410 (given)\n", "Magnetic field on axis:\n", "B_R = 0.000 B_phi = 4.965 B_z = -0.000\n", "Magnetic field read and initialized.\n", "\n", "Reading plasma input.\n", "Active QID is 3211038608\n", "\n", "1D plasma profiles (P_1D)\n", "Min rho = 0.00e+00, Max rho = 2.00e+00, Number of rho grid points = 101, Number of ion species = 1\n", "Species Z/A charge [e]/mass [amu] Density [m^-3] at Min/Max rho Temperature [eV] at Min/Max rho\n", " 1 / 2 1 / 2.014 1.00e+20/1.00e+00 1.00e+04/1.00e+04 \n", "[electrons] -1 / 0.001 2.00e+20/1.00e+00 1.00e+04/1.00e+04 \n", "Toroidal rotation [rad/s] at Min/Max rho: 0.00e+00/0.00e+00\n", "Quasi-neutrality is (electron / ion charge density) 1.50\n", "Toroidal rotation [rad/s] at Min/Max rho: 0.00e+00/0.00e+00\n", "Plasma data read and initialized.\n", "\n", "Reading neutral input.\n", "Active QID is 1150864394\n", "\n", "1D neutral density and temperature (N0_1D)\n", "Grid: nrho = 3 rhomin = 0.000 rhomax = 2.000\n", " Number of neutral species = 1\n", "Species Z/A (Maxwellian)\n", " 1/ 1 (1) \n", "Neutral data read and initialized.\n", "\n", "Reading wall input.\n", "Active QID is 0811485683\n", "\n", "3D wall model (wall_3D)\n", "Number of wall elements 64800\n", "Spanning xmin = -8.400 m, xmax = 8.400 m\n", " ymin = -8.400 m, ymax = 8.400 m\n", " zmin = -2.200 m, zmax = 2.200 m\n", "Wall data read and initialized.\n", "\n", "Reading atomic reaction input.\n", "Active QID is 1557690681\n", "\n", "Found data for 1 atomic reactions:\n", "Reaction number / Total number of reactions = 1 / 1\n", " Reactant species Z_1 / A_1, Z_2 / A_2 = 0 / 0, 0 / 0\n", " Min/Max energy = 1.00e+03 / 1.00e+04\n", " Min/Max density = 1.00e+18 / 1.00e+20\n", " Min/Max temperature = 1.00e+03 / 1.00e+04\n", " Number of energy grid points = 3\n", " Number of density grid points = 4\n", " Number of temperature grid points = 5\n", "Atomic reaction data read and initialized.\n", "\n", "Reading NBI input.\n", "Active QID is 1523940375\n", "\n", "NBI input\n", "Number of injectors 1:\n", "\n", " Injector ID 1 (1 beamlets) Power: 1.0e+06\n", " Anum 2 Znum 1 mass 2.0e+00 amu energy 1.0e+06 eV\n", " Energy fractions: 1.0e+00 (Full) 0.0e+00 (1/2) 0.0e+00 (1/3)\n", "NBI data read and initialized.\n", "\n", "All input read and initialized.\n", "\n", "Preparing output.\n", "Note: Output file ascot.h5 is already present.\n", "\n", "The qid of this run is 1905882797\n", "Generated 10000 markers for injector 1.\n", "\n", "Marker state written.\n", "\n", "Writing diagnostics output.\n", "\n", "Writing 5D distribution.\n", "\n", "Diagnostics output written.\n", "\n", "Done\n", "Simulation completed" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\n" ] } ], "source": [ "import subprocess\n", "subprocess.run([\"./../../build/bbnbi5\", \"--n=10000\", \"--d=\\\"BEAMS\\\"\"])\n", "print(\"Simulation completed\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The results are stored as a (BBNBI) run group that can be accessed via ``Ascot`` object.\n", "Data and methods related to marker state, wall loads, and distributions are accessible.\n", "Note that this run does not have a separate ini and endstate but just a single state that corresponds to the marker final position." ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "execution": { "iopub.execute_input": "2025-04-01T09:05:26.875049Z", "iopub.status.busy": "2025-04-01T09:05:26.874864Z", "iopub.status.idle": "2025-04-01T09:05:27.029979Z", "shell.execute_reply": "2025-04-01T09:05:27.029368Z" } }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from a5py import Ascot\n", "a5 = Ascot(\"ascot.h5\")\n", "r, z = a5.data.active.getstate(\"r\", \"z\", mode=\"prt\")\n", "\n", "fig, ax = plt.subplots()\n", "ax.scatter(r, z)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The plot above shows that some of the markers were not ionized but instead continued until they hit the wall on the opposite end, i.e., they became *shinethrough*.\n", "We can visualize the shinethrough with the same methods as are used to plot the wall loads." ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "execution": { "iopub.execute_input": "2025-04-01T09:05:27.031811Z", "iopub.status.busy": "2025-04-01T09:05:27.031612Z", "iopub.status.idle": "2025-04-01T09:05:27.284683Z", "shell.execute_reply": "2025-04-01T09:05:27.284118Z" } }, "outputs": [ { "data": { "image/png": "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GAAAUEFX6VNyTz31lPr166cbbrjBpecpV8KUkJDg0iAAAAAqIisrS7fffrs8PDzUu3dv9e3bV926dZO3t7dTz+OaZ+8AAMCVZdH/Jq+s8FLZF2G/pUuX6ujRo3r//fdVs2ZNjR8/XmFhYdYH1o4fP+6U81TDrwYAAPze1fwuOcMw1KlTJ82cOVPff/+9tm7dqptuukmvvfaa6tatq86dO2v27Nn65ZdfKnwOuyeuBAAAVdBV/mqU32revLmaN2+uxx9/XP/5z3+0YsUKrVixQpI0YcKECrVJwgQAAKqt/fv3Kzo6+rLba9eurREjRmjEiBEOnadCXXIXL17UF198oUWLFuns2bOSpCNHjig3N9ehYAAAQAUVPyXn6FLNNGnSRPXr19d9992npUuX6tChQy45j90Vpn//+9+65ZZblJmZqby8PHXv3l2BgYGaOXOmLly4oIULF7oiTgAA8AcMy6XF0Taqm7Vr12rt2rVas2aNxowZowsXLqhBgwbq2rWrEhMTlZiY6JSpjuz+ah599FG1a9dOp06dkq+vr3V9//799eWXXzocEAAAQHl16tRJEydO1BdffKHTp08rLS1Nw4YN08GDB/XAAw+oQYMGatq0qcPnsbvClJ6erg0bNsjLy8tmfVRUlEOjzwEAgAOu0okrf6tGjRrq3Lmz4uLiFB8fr1WrVum1117T/v37HW7b7oSpqKhIhYWFJdb//PPPCgwMdDggAABgP8PihFejVNOn5C5cuKCNGzcqLS1Na9asUUZGhho2bKiEhAQtWLDAKRNw250wde/eXS+99JIWL14s6dLcB7m5uZo8ebJuvfVWhwMCAAAor4SEBGVkZKhx48bq3LmzHn74YSUkJCg8PNyp57E7YZo7d64SExMVExOjCxcuaNCgQfrxxx8VFhamd99916nBAQCAcrpKu+Q2btyoOnXqKDExUV26dFHnzp0VFhbm9PPYnTBFRkZq586devfdd/X111+rqKhII0aM0D333GMzCBwAAFxBV+nEladPn9b69eu1Zs0avfjii7r77rvVpEkTJSQkqEuXLkpISFDt2rUdPo9hmqbphHivKjk5OQoODtaZM2cUFBRU2eEAAKqoK/Hzovgc2Xe0V1ANx+ajzim4qIgPN1brn29nz55Venq6dTzTN998o+uuu07ffvutQ+2W65stnk68PPr06VPhYAAA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U9sCAACoHhjDBAAAUAYSJgAAgDKQMAEAAJSBhAkAAKAMJEwAAABlIGECAAAoAwkTAABAGUiYgGrGMAx98sknl91+6NAhGYahnTt3lrvNoUOHql+/fg7H5qiKxP57y5Ytk2EYMgxDycnJf7jvtddeq5deeqnC5yrNlClTrOd3dtsAKg8JE1BBxT8UL7cMHTrUJefNyspSr169XNK2uwgKClJWVpaee+65K37uCRMmKCsr67IvxwVQPXlWdgBAdZWVlWX9/fLly/XMM8/YvHjT19fXrvYKCgpUo0aNMveLiIiwq92rkWEYlfY9BQQEKCAgQB4eHpVyfgCuQYUJqKCIiAjrEhwcbP0hXby88847aty4sby8vNS0aVO99dZbNscbhqGFCxeqb9++8vf317Rp0yRJCxYsKPO433bJbd26VW3atJGPj4/atWunHTt22OxfWFioESNGqGHDhvL19VXTpk318ssv23WtJ06c0N1336169erJz89P119/vd59912bfbp06aJHHnlEjz/+uEJDQxUREaEpU6bY7PP999+rY8eO8vHxUUxMjL744osyuxj37NmjW2+9VQEBAQoPD9fgwYN1/Phxu+KXpGPHjql3797y9fVVw4YN9fe//73EPmfOnNEDDzyga665RkFBQeratau++eYbm32mTZuma665RoGBgRo5cqSeeOIJ/elPf7I7HgDVCwkT4AIff/yxHn30UY0fP17ffvutHnzwQQ0bNkxpaWk2+02ePFl9+/bV7t27NXz48HIfV+zcuXO6/fbb1bRpU23fvl1TpkzRhAkTbPYpKipSvXr19P7772vPnj165pln9NRTT+n9998v9/VcuHBBsbGx+uyzz/Ttt9/qgQce0ODBg7Vlyxab/d588035+/try5YtmjlzpqZOnarU1FRrHP369ZOfn5+2bNmixYsX6+mnn/7D82ZlZSkhIUF/+tOftG3bNq1cuVJHjx7VnXfeWe7Yiw0dOlSHDh3SV199pQ8++EDz58/XsWPHrNtN09Rtt92m7Oxsff7559q+fbvatm2rm2++WSdPnpQk/f3vf9f06dP14osvavv27WrQoIEWLFhgdywAqqFKfvkv4BaWLl1qBgcHWz+3b9/evP/++232+fOf/2zeeuut1s+SzOTkZJt9ynvcxx9/bJrmpbfTh4aGmufOnbNuX7BggSnJ3LFjx2XjHT16tHnHHXdYPw8ZMsTs27dvWZdp49ZbbzXHjx9v/ZyQkGB27NjRZp+4uDjzL3/5i2mapvmvf/3L9PT0NLOysqzbU1NTba7n4MGDNrFPmjTJ7NGjh02bhw8fNiWZ+/btKzWu398L0zTNffv2mZLMzZs3W9ft3bvXlGTOnTvXNE3T/PLLL82goCDzwoULNsc2btzYXLRokWmapnnjjTeaSUlJNts7dOhgtm7dukQcUVFR1rYBVH9UmAAX2Lt3rzp06GCzrkOHDtq7d6/Nunbt2lXouN/u37p1a/n5+VnXxcfHl9hv4cKFateunWrXrq2AgAC99tpryszMLPf1FBYWavr06WrVqpVq1aqlgIAArV69ukQbrVq1svlcp04daxVn3759ql+/vs3YohtuuOEPz7t9+3alpaVZxwUFBASoWbNmkqQDBw6UO/69e/fK09PT5vtu1qyZatasaXOu3Nxc6/UVLwcPHrSea9++fSViLusaALgHBn0DLmIYhs1n0zRLrPP396/Qcb/dVpb3339fY8eO1Zw5cxQfH6/AwEDNmjWrRHfaH5kzZ47mzp2rl156Sddff738/f2VnJys/Px8m/1+P2jdMAwVFRWVeR2XU1RUpN69e+vFF18ssa1OnTrlbqf4e/qj8xcVFalOnTpas2ZNiW2/TaxKuz8A3B8VJsAFmjdvrvT0dJt1GzduVPPmzZ16XExMjL755hudP3/eum7z5s02+6xfv17t27fX6NGj1aZNG0VHR9tVnSluo2/fvrr33nvVunVrNWrUSD/++KNdbTRr1kyZmZk6evSodV1GRsYfHtO2bVt99913uvbaaxUdHW2zlJZsXk7z5s118eJFbdu2zbpu3759On36tM25srOz5enpWeJcYWFhkqSmTZtq69atNm3/tk0A7ouECXCBxx57TMuWLdPChQv1448/KiUlRR999FGJAdmOHjdo0CBZLBaNGDFCe/bs0eeff67Zs2fb7BMdHa1t27Zp1apV+uGHHzRp0qQyE5Xfi46OVmpqqjZu3Ki9e/fqwQcfVHZ2tl1tdO/eXY0bN9aQIUO0a9cubdiwwTro+3KVn6SkJJ08eVJ33323tm7dqp9++kmrV6/W8OHDVVhYWO5zN23aVLfccovuv/9+bdmyRdu3b9fIkSNtpn7o1q2b4uPj1a9fP61atUqHDh3Sxo0bNXHiRGtS9PDDD2vJkiV688039eOPP2ratGnatWuX3ZUzANUPCRPgAv369dPLL7+sWbNmqUWLFlq0aJGWLl2qLl26OPW4gIAAffrpp9qzZ4/atGmjp59+ukT31ahRozRgwAANHDhQN954o06cOKHRo0fbdT2TJk1S27Zt1bNnT3Xp0kURERF2zwzu4eGhTz75RLm5uYqLi9PIkSM1ceJESZKPj0+px0RGRmrDhg0qLCxUz5491bJlSz366KMKDg6WxWLfX19Lly5V/fr1lZCQoAEDBlinDyhmGIY+//xzde7cWcOHD1eTJk1011136dChQwoPD5ck3XPPPXryySc1YcIEtW3bVgcPHtTQoUMvGz8A92GYdMADqCQbNmxQx44dtX//fjVu3NgpbS5btkzJyck23W2u1L17d0VERJSYL+vaa69VcnJyma9nAVA9UGECcMV8/PHHSk1N1aFDh/TFF1/ogQceUIcOHZyWLBU7c+aMAgIC9Je//MWp7f76669KSUnRd999p++//16TJ0/WF198oSFDhlj3ef755xUQEGDXU4gAqj4qTACumL/97W967rnndPjwYYWFhalbt26aM2eOatWq5bRznD171jqwvGbNmtYB285w/vx59e7dW19//bXy8vLUtGlTTZw4UQMGDLDuc/LkSetEl7Vr11ZwcLDTzg+g8pAwAQAAlIEuOQAAgDKQMAEAAJSBhAkAAKAMJEwAAABlIGECAAAoAwkTAABAGUiYAAAAykDCBAAAUAYSJgAAgDL8f1JfleMukOxyAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "a5.input_init(bfield=True)\n", "a5.data.active.plotwall_torpol()\n", "a5.input_free()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If distributions were collected, we can plot the beam deposition.\n", "Keep in mind that this is not a steady-state distribution but instead it shows the birth rate of beam ions." ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "execution": { "iopub.execute_input": "2025-04-01T09:05:27.286589Z", "iopub.status.busy": "2025-04-01T09:05:27.286373Z", "iopub.status.idle": "2025-04-01T09:05:27.679361Z", "shell.execute_reply": "2025-04-01T09:05:27.678743Z" } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAiMAAAHACAYAAABwEmgAAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/TGe4hAAAACXBIWXMAAA9hAAAPYQGoP6dpAABGLUlEQVR4nO3de1yUZf7/8fcIAp7AlDhtiGhpJh38QptgpNaGp9gOrlnuapq6uWamLB3oJFrK17Z1yczTrsey1t3MjlTSFh4SN0Wt3TK1UuFnsAQWeCgQ5v794TrfRpgRZm4Yhnk9H4/78XDu676u+7rJnA+f63BbDMMwBAAA4CFtPN0BAADg2whGAACARxGMAAAAjyIYAQAAHkUwAgAAPIpgBAAAeBTBCAAA8CiCEQAA4FEEIwAAwKMIRgAAgEcRjAAAIGnLli1KTU1VVFSULBaLXnvttUbVz8vL080336zIyEh16NBBV111ldatW2d3zbZt2zRgwAB17dpV7dq106WXXqo//elPJj6Fd/L3dAcAAGgJTp48qSuvvFITJkzQyJEjG11/+/btuuKKK/TQQw8pPDxcb7/9tsaNG6fg4GClpqZKkjp06KBp06bpiiuuUIcOHbRt2zbdc8896tChg37729+a/Uhew8KL8gAAsGexWLRx40bdcssttnPV1dV67LHHtG7dOn3//feKi4vT/PnzNWjQIIftjBgxQuHh4Vq5cqXDa2677TZ16NBBL7zwgolP4F0YpgEAoAEmTJigjz76SH/961/16aefatSoURo6dKgOHjzosE5FRYW6dOnisHzPnj3avn27Bg4c2BRd9hoEIwAAnMdXX32ll19+WX//+9+VnJysnj17Kj09Xddee61WrVpVb51XXnlFO3fu1IQJE+qUXXTRRQoMDFRCQoLuvfdeTZo0qakfoUVjzggAAOexe/duGYahXr162Z2vqqpS165d61yfl5en8ePH689//rP69u1bp3zr1q06ceKEduzYoYcfflgXX3yx7rzzzibrf0tHMAIAwHlYrVb5+fmpoKBAfn5+dmUdO3a0+7x582alpqZqwYIFGjduXL3txcbGSpIuv/xy/ec//1FmZibBCAAAcKxfv36qra1VaWmpkpOTHV6Xl5enm266SfPnz2/w6hjDMFRVVWVWV70SwQgAAJJOnDihL7/80vb50KFD2rt3r7p0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5ctVWFioKVOmSJIyMjJ09OhRrV27VpI0ZswYPfnkk5owYYJmz56tsrIyPfDAA7r77rsdTmANCgpSamqqUlNTZRiG8vPz9cYbb+jhhx/WnXfeqV/84he6+eabddNNNyksLKzRz9CgYCQmJkbXXXedunbt2qBGe/ToUWeGLQAAMN/o0aNVXl6uOXPmqLi4WHFxccrJyVFMTIwkqbi4WIWFhbbrO3bsqNzcXN13331KSEhQ165ddfvtt+upp55q0P0sFouSkpKUlJSk//3f/9XBgwf1xhtvaPXq1frd736nBQsW6N57723UM1gMw92FSK1bZWWlQkJCNEg3y99CgAUA3qbGOK08va6Kioommc949nsi+k9Pqk27ILfasv7wo4pmPt5kfW1q5eXlOnbsWL3zTpxh0zMAAMxgmHS0YGvWrNHbb79t+/zggw+qc+fOSkpK0pEjR9S1a9dGByKSi0t7P/74Y+Xl5am0tFRWq9WubMGCBa40CQAAWrh58+bZdnbNz8/XokWLlJ2drbfeekszZ85svrf2zps3T4899ph69+6t8PBwu3XMZr29DwAAr+PBF+U1l6KiIl188cWSpNdee02/+tWv9Nvf/lYDBgzQoEGDXG630cHIs88+q5UrV2r8+PEu3xQAgFbHB4KRjh07qry8XN26ddOmTZs0c+ZMSWdW2/zwww8ut9voYKRNmzYaMGCAyzcEAADe6cYbb9SkSZPUr18/HThwQCNGjJAkffbZZ+revbvL7TZ6AuvMmTP1/PPPu3xDAABapbM7sLp7tGDPP/+8EhMT9e2332rDhg22LT8KCgp05513utxuozMj6enpGjFihHr27KnLLruszn4irk5eAQDAm/10B1V32mjJOnfurEWLFtU5P3v2bLfabXRm5L777tOHH36oXr16qWvXrgoJCbE7mtrixYsVGxuroKAgxcfHa+vWrU6v37x5s+Lj4xUUFKQePXpo6dKlTd5HAABaq61bt+o3v/mNkpKSdPToUUnSCy+8oG3btrncZqMzI2vXrtWGDRts40TNaf369ZoxY4YWL16sAQMGaNmyZRo2bJg+//xzdevWrc71hw4d0vDhwzV58mS9+OKL+uijjzR16lRdeOGFGjlyZLP3HwDQivnABNYNGzZo7Nix+vWvf63du3erqqpKknT8+HHNmzdPOTk5LrXb6MxIly5d1LNnT5du5q4FCxZo4sSJmjRpkvr06aPs7GxFR0fb1jyfa+nSperWrZuys7PVp08fTZo0SXfffbeeeeaZZu45AADe76mnntLSpUv15z//2W6aRlJSknbv3u1yu40ORjIzMzVr1iydOnXK5Zu6orq6WgUFBUpJSbE7n5KSou3bt9dbJz8/v871Q4YM0a5du3T69Okm6ysAwPdYZMJbez39EOexf/9+XXfddXXOBwcH6/vvv3e53UYP0yxcuFBfffWVwsPD1b179zoTWN2JjJwpKytTbW2twsPD7c6Hh4erpKSk3jolJSX1Xl9TU6OysjJFRkbWqVNVVWVLO0ln3jkAAACkyMhIffnll3WW8W7btk09evRwud1GByO33HKLyzczw7m7vBqG4XTn1/qur+/8WVlZWW7PCgYA+CAzlua28KW999xzj+6//36tXLlSFotF33zzjfLz85Wenq4nnnjC5XYbHYzMmjXL5Zu5IzQ0VH5+fnWyIKWlpXWyH2dFRETUe72/v79tbfS5MjIylJaWZvtcWVmp6OhoN3sPAGj1fGAC64MPPqiKigoNHjxYP/74o6677joFBgYqPT1d06ZNc7ldr3lrb0BAgOLj45Wbm2t3Pjc3V0lJSfXWSUxMrHP9pk2blJCQUGd46azAwEAFBwfbHQAA4Iy5c+eqrKxMH3/8sXbs2KFvv/1WTz75pFttNigY6dKli8rKyhrcaLdu3XTkyBGXO+VIWlqa/vKXv2jlypXat2+fZs6cqcLCQk2ZMkXSmazGuHHjbNdPmTJFR44cUVpamvbt26eVK1dqxYoVSk9PN71vAAAfZ5h0eIH27dsrISFBP//5z9WxY0e322vQMM3333+vd955p8GbmpWXl6u2ttatjtVn9OjRKi8v15w5c1RcXKy4uDjl5OQoJiZGklRcXKzCwkLb9bGxscrJybFtYR8VFaWFCxeyxwgAwHStdQfW2267rcHXuroLe4PnjNx1110u3cBsU6dO1dSpU+stW716dZ1zAwcObLIVPgAAtHbNsbt6g4IRq9Xa1P0AAMC7tdIJrKtWrWrye3jNBFYAAFo0H5gzcujQIR08eLDO+YMHD+rw4cMut0swAgAAGmT8+PH17nr+z3/+U+PHj3e5XYIRAABM4PZW8CZMgG1qe/bs0YABA+qc79+/v/bu3etyu43e9AwAANTDB3ZgtVgsOn78eJ3zFRUVbq2iJTMCAIAZfGDOSHJysrKysuwCj9raWmVlZenaa691ud1GZ0auv/56DRw4sM628N99951GjhypDz74wOXOAACAluvpp5/Wddddp969eys5OVmStHXrVlVWVrr1/d/ozEheXp4WLVqkW265RSdPnrSdr66u1ubNm13uCAAA3swX5oxcdtll+vTTT3X77bertLRUx48f17hx4/TFF18oLi7O5XZdmjPy/vvv65577lH//v315ptv1nmVMAAAPqeV7jNyrqioKM2bN8/UNl0KRiIjI7V582bdfffduvrqq/X3v/9dffr0MbVjAADA8z799FPFxcWpTZs2+vTTT51ee8UVV7h0j0YHIxbLmZm+gYGBWrdunZ566ikNHTpUDz30kEsdAACgVTBjmKUFZkauuuoqlZSUKCwsTFdddZUsFosMo25HLRaLyytqGh2MnNuBxx57TH369Gkx764BAMAjWukwzaFDh3ThhRfa/twUGh2M/LRTZ40cOVKXXnqpdu3aZVrHAACA58XExNj+fOTIESUlJcnf3z58qKmp0fbt2+2ubYxGByOObtS3b1/17dvXpU4AAOD1Wmlm5KcGDx6s4uJihYWF2Z2vqKjQ4MGDm2+YBgAA1GXG0tyWvrTXMAzb3NGfKi8vV4cOHVxul2AEAAA4ddttt0k6M0l1/PjxCgwMtJXV1tbq008/VVJSksvtE4wAAFoEi5+f0/LT1/dzWHb1047nLFadkPJc36kckkJCQiSdyYx06tRJ7dq1s5UFBASof//+mjx5ssvtE4wAAGCGVjxnZNWqVTIMQ4Zh6LnnnlOnTp1MbZ8X5QEAYILWvh28YRh66aWXVFJSYnrbBCMAAOC82rRpo0suuUTl5eXmt216iwAA+CrDzaOFe/rpp/XAAw/o3//+t6ntMmcEAAAztOI5I2f95je/0alTp3TllVcqICDAbiKrJB07dsyldglGAABAg2RnZzdJuwQjAIBGsfi3dVp+evCVDssumfu5w7KlF+U7bXfWt1UOy7Y+0N9hWU3Nj5Jed9q2GXxh07Omeg8dwQgAAGbwgWGan/rhhx90+vRpu3PBwcEutcUEVgAA0CAnT57UtGnTFBYWpo4dO+qCCy6wO1xFMAIAgAla+z4jkvTggw/qgw8+0OLFixUYGKi//OUvmj17tqKiorR27VqX22WYBgAAM/jAMM2bb76ptWvXatCgQbr77ruVnJysiy++WDExMVq3bp1+/etfu9QumREAANAgx44dU2xsrKQz80POLuW99tprtWXLFpfbJRgBAMAM7m545gUbn/Xo0UOHDx+WJF122WX629/+JulMxqRz584ut0swAgCACXxhzsiECRP0ySefSJIyMjJsc0dmzpypBx54wOV2mTMCAK2Us/1ArIlxTusamWUOy3L7vOW07oLvHL+75NVZKQ7Lhr522mGZJBk1jsvbapfDMovhvF3T+MCckZkzZ9r+PHjwYO3bt08FBQXq2bOnrrzS8f4y50MwAgAAXBITE6OYmBi322GYBgAAM/jAnBFJ+sc//qGbbrpJPXv21MUXX6ybbrpJ77//vlttEowAAGACX5gzsmjRIg0dOlSdOnXS/fffr+nTpys4OFjDhw/XokWLXG6XYRoAANAgWVlZ+tOf/qRp06bZzk2fPl0DBgzQ3Llz7c43htdkRr777juNHTtWISEhCgkJ0dixY/X99987rTN+/HhZLBa7o39/xy9TAgDAZT4wTFNZWamhQ4fWOZ+SkqLKykqX2/WaYGTMmDHau3ev3n33Xb377rvau3evxo4de956Q4cOVXFxse3Iyclpht4CAHyNLwzT/PKXv9TGjRvrnH/99deVmprqcrteMUyzb98+vfvuu9qxY4euueYaSdKf//xnJSYmav/+/erdu7fDuoGBgYqIiGiurgJAo1n8/ByWtelzsdO6XzzQ0WHZzhuec1i29Yd9TtudvXCcw7LhNw9wWrf2xAmHZR20w2FZC/8ehqQ+ffpo7ty5ysvLU2JioiRpx44d+uijj/T73/9eCxcutF07ffr0BrfrFcFIfn6+QkJCbIGIJPXv318hISHavn2702AkLy9PYWFh6ty5swYOHKi5c+cqLCzM4fVVVVWqqqqyfXYn7QQA8CEe3Gdk8eLF+sMf/qDi4mL17dtX2dnZSk5OPm+9jz76SAMHDlRcXJz27t173utXrFihCy64QJ9//rk+//xz2/nOnTtrxYoVts8Wi6X1BSMlJSX1BhBhYWEqKSlxWG/YsGEaNWqUYmJidOjQIT3++OO6/vrrVVBQoMDAwHrrZGVlafbs2ab1HQDgIzwUjKxfv14zZszQ4sWLNWDAAC1btkzDhg3T559/rm7dujmsV1FRoXHjxumGG27Qf/7znwbd69Ch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uuuuuzzdPXgYc0bQIB06dNDll1+ugwcPerorrVZkZKQuu+wyu3N9+vTRhg0bPNQj33DkyBG9//77evXVVz3dlVbtgQce0MMPP6w77rhDknT55ZfryJEjysrKIhgBc0bQMFVVVdq3b58iIyM93ZVWa8CAAdq/f7/duQMHDthedoWmsWrVKoWFhdkmVqJpnDp1Sm3a2H/l+Pn5sbQXksiMwIH09HSlpqaqW7duKi0t1VNPPaXKykp+g2lCM2fOVFJSkubNm6fbb79dH3/8sZYvX67ly5d7umutltVq1apVq3TXXXfJ359/DptSamqq5s6dq27duqlv377as2ePFixYoLvvvtvTXUMLwJwR1OuOO+7Qli1bVFZWpgsvvFD9+/fXk08+WWcYAeZ66623lJGRoYMHDyo2NlZpaWmaPHmyp7vVam3atElDhgzR/v371atXL093p1U7fvy4Hn/8cW3cuFGlpaWKiorSnXfeqSeeeEIBAQGe7h48jGAEAAB4FHNGAACARxGMAAAAjyIYAQAAHkUwAgAAPIpgBAAAeBTBCAAA8CiCEQAA4FEEIwAAwKMIRgAfMn78eFksFlksFr322mtutZWZmWlrKzs725T+AfBNBCOAjxk6dKiKi4s1bNgwt9pJT09XcXGxLrroIpN6BsBX8WYooBWqrq52+L6PwMBARUREuH2Pjh07qmPHjvLz83O7LQC+jcwI0AoMGjRI06ZNU1pamkJDQ3XjjTc2uO7hw4dlsVj0t7/9TcnJyWrXrp2uvvpqHThwQDt37lRCQoI6duyooUOH6ttvv23CpwDgqwhGgFZizZo18vf310cffaRly5Y1uv6sWbP02GOPaffu3fL399edd96pBx98UM8++6y2bt2qr776Sk888UQT9ByAr2OYBmglLr74Yj399NMu109PT9eQIUMkSffff7/uvPNO/eMf/9CAAQMkSRMnTtTq1avN6CoA2CEzArQSCQkJbtW/4oorbH8ODw+XJF1++eV250pLS926BwDUh2AEaCU6dOjgVv22bdva/myxWOo9Z7Va3boHANSHYAQAAHgUwQgAAPAoghEAAOBRrKYBWoG8vDyX63bv3l2GYdidGzRoUJ1z48eP1/jx412+DwA4QmYE8DFvvfWWOnbsqLfeesutdubNm6eOHTuqsLDQpJ4B8FUW49xffwC0WqWlpaqsrJQkRUZGurUC59ixYzp27Jgk6cILL1RISIgpfQTgewhGAACARzFMAwAAPIpgBAAAeBTBCAAA8CiCEQAA4FEEIwAAwKMIRgAAgEcRjAAAAI8iGAEAAB5FMAIAADzq/wN5OueTpY2ukAAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "dist = a5.data.active.getdist(\"5d\")\n", "dist.integrate(phi=np.s_[:], ppar=np.s_[:], pperp=np.s_[:], charge=np.s_[:], time=np.s_[:])\n", "dist.plot()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "One can use either the above distribution to generate markers for the slowing down simulation (using the ``MarkerGenerator`` class) or use the ionized markers directly:" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "execution": { "iopub.execute_input": "2025-04-01T09:05:27.681101Z", "iopub.status.busy": "2025-04-01T09:05:27.680936Z", "iopub.status.idle": "2025-04-01T09:05:27.727629Z", "shell.execute_reply": "2025-04-01T09:05:27.727131Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "6016" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "[1. 1. 1. ... 1. 1. 1.] e" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\n" ] } ], "source": [ "ids = a5.data.active.getstate(\"ids\", endcond=\"IONIZED\")\n", "mrk = a5.data.active.getstate_markers(\"gc\", ids=ids)\n", "print(mrk[\"n\"])\n", "print(mrk[\"charge\"])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [] } ], "metadata": { "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.10.16" } }, "nbformat": 4, "nbformat_minor": 4 }