|
6 | 6 | "source": [ |
7 | 7 | "# Example: Machine configuration\n", |
8 | 8 | "\n", |
9 | | - "Here we will describe how to create the machine description files required to begin solving for Grad-Shafranov equilbiria in FreeGSNKE. \n", |
| 9 | + "Here we will describe how to create the machine description files required to begin solving for Grad-Shafranov equilibria in FreeGSNKE. \n", |
10 | 10 | "\n", |
11 | 11 | "A machine description in FreeGSNKE is comprised of:\n", |
12 | 12 | "- **active coils** : whose currents and voltages are used to control the plasma shape and position.\n", |
|
77 | 77 | "- `polarity`: circuit wiring, enabling coil pairs to be linked in series or anti-series (typically +1 or -1).\n", |
78 | 78 | "- `multiplier`: current multiplier, used for splitting current among coils (default = 1).\n", |
79 | 79 | "\n", |
80 | | - "First, instatiate the dictionary that will contain all of the coils:" |
| 80 | + "First, instantiate the dictionary that will contain all of the coils:" |
81 | 81 | ] |
82 | 82 | }, |
83 | 83 | { |
|
93 | 93 | "cell_type": "markdown", |
94 | 94 | "metadata": {}, |
95 | 95 | "source": [ |
96 | | - "Let's define the standalone `Pz` coil first." |
| 96 | + "Let's define the standalone `Pz` coil first." |
97 | 97 | ] |
98 | 98 | }, |
99 | 99 | { |
|
240 | 240 | "## Passive structures\n", |
241 | 241 | "Passive structures in FreeGSNKE are toroidally symmetric conducting structures that contain eddy currents induced by the active coils and the plasma. These non-voltage driven currents alter the magnetic field in the device and significantly affect equilibrium calculations. These can include support structures, the vessel, coil cans, etc.\n", |
242 | 242 | "\n", |
243 | | - "FreeGSNKE supports two different kind of passive structures:\n", |
| 243 | + "FreeGSNKE supports two different kinds of passive structures:\n", |
244 | 244 | "- filaments (i.e. single point sources)\n", |
245 | 245 | "- polygonal structures (i.e. multiple grouped filaments). \n", |
246 | 246 | "\n", |
|
455 | 455 | "source": [ |
456 | 456 | "## Magnetic Probes \n", |
457 | 457 | "\n", |
458 | | - "There are a variety of magnetic probes in the machine that measure various components of the magnetic field and or the flux function. The description of these is contained in a dictionary we'll call `magnetic_probes` which has the probe type as a key and then a list of smaller dictionaries for each individual probe. Currently the *flux loops* and *pickup coils* are implemented (others may be implemented at a later date).\n", |
| 458 | + "There are a variety of magnetic probes in the machine that measure various components of the magnetic field and/or the flux function. The description of these is contained in a dictionary we'll call `magnetic_probes` which has the probe type as a key and then a list of smaller dictionaries for each individual probe. Currently the *flux loops* and *pickup coils* are implemented (others may be implemented at a later date).\n", |
459 | 459 | "- The **flux loops** compute the flux function $\\psi(R,Z)$. The dictionary description contains the `name` and the `position` of the probe which is a 2D array with $R$ and $Z$ coordinates. \n", |
460 | 460 | "- The **pickup coils** compute $B\\cdot \\hat n$ where $\\hat n$ is a unit orientation vector of the probe. They are described by dictionaries containing the `name` as before, the `position` which is now a 3D array of coordinates $(R,\\phi,Z)$, an `orientation` key with a string description of the orientation (parallel, toroidal, normal), and finally an `orientation_vector` $\\hat n$. This is also a 3D array - it must be the same dimension as the position. \n", |
461 | 461 | "\n", |
|
509 | 509 | "cell_type": "markdown", |
510 | 510 | "metadata": {}, |
511 | 511 | "source": [ |
512 | | - "First, we set the paths to the pickle files we've just built. Then when we call 'build_machine.tokamak()', it will know which files to use. After this, we can plot the machine directly from the tokamak object (note that the limiter and wall need to be plot separately). " |
| 512 | + "First, we set the paths to the pickle files we've just built. Then when we call 'build_machine.tokamak()', it will know which files to use. After this, we can plot the machine directly from the tokamak object (note that the limiter and wall need to be plotted separately). " |
513 | 513 | ] |
514 | 514 | }, |
515 | 515 | { |
|
542 | 542 | "metadata": {}, |
543 | 543 | "outputs": [], |
544 | 544 | "source": [ |
545 | | - "# plot the resulting equilbria \n", |
| 545 | + "# plot the resulting equilibria \n", |
546 | 546 | "fig1, ax1 = plt.subplots(1, 1, figsize=(4, 8), dpi=80)\n", |
547 | 547 | "plt.tight_layout()\n", |
548 | 548 | "\n", |
|
562 | 562 | "cell_type": "markdown", |
563 | 563 | "metadata": {}, |
564 | 564 | "source": [ |
565 | | - "It is worth spending some time exploring the `tokamak` object to get familiar with all of the information it holds. A number of methods may not work properly yet as we have not instatiated an equilibrium object (that will be in a future notebook). \n", |
| 565 | + "It is worth spending some time exploring the `tokamak` object to get familiar with all of the information it holds. A number of methods may not work properly yet as we have not instantiated an equilibrium object (that will be in a future notebook).\n", |
566 | 566 | "\n", |
567 | 567 | "We can, however, look at the active coils and other features defined in our tokamak." |
568 | 568 | ] |
|
684 | 684 | "metadata": {}, |
685 | 685 | "outputs": [], |
686 | 686 | "source": [ |
687 | | - "# plot the resulting equilbria \n", |
| 687 | + "# plot the resulting equilibria \n", |
688 | 688 | "fig1, ax1 = plt.subplots(1, 1, figsize=(4, 8), dpi=80)\n", |
689 | 689 | "plt.tight_layout()\n", |
690 | 690 | "\n", |
|
0 commit comments