def test_Plasma3D_add_magnetostatics(): r"""Function to test add_magnetostatic function """ dipole = magnetostatics.MagneticDipole( np.array([0, 0, 1]) * u.A * u.m * u.m, np.array([0, 0, 0]) * u.m) cw = magnetostatics.CircularWire(np.array([0, 0, 1]), np.array([0, 0, 0]) * u.m, 1 * u.m, 1 * u.A) gw_cw = cw.to_GeneralWire() iw = magnetostatics.InfiniteStraightWire(np.array([0, 1, 0]), np.array([0, 0, 0]) * u.m, 1 * u.A) plasma = plasma3d.Plasma3D(domain_x=np.linspace(-2, 2, 30) * u.m, domain_y=np.linspace(0, 0, 1) * u.m, domain_z=np.linspace(-2, 2, 20) * u.m) plasma.add_magnetostatic(dipole, cw, gw_cw, iw)
""" import plasmapy as pp from plasmapy.physics import magnetostatics from plasmapy.classes.sources import Plasma3D import numpy as np import astropy.units as u import matplotlib.pyplot as plt import itertools ############################################################ # Some common magnetostatic fields can be generated and added to a plasma object. # A dipole dipole = magnetostatics.MagneticDipole( np.array([0, 0, 1]) * u.A * u.m * u.m, np.array([0, 0, 0]) * u.m) print(dipole) ############################################################ # initialize a a plasma, where the magnetic field will be calculated on plasma = Plasma3D(domain_x=np.linspace(-2, 2, 30) * u.m, domain_y=np.linspace(0, 0, 1) * u.m, domain_z=np.linspace(-2, 2, 20) * u.m) ############################################################ # add the dipole field to it plasma.add_magnetostatic(dipole) X, Z = plasma.grid[0, :, 0, :], plasma.grid[2, :, 0, :]