Beispiel #1
0
def test_particle_nonuniform_grid():
    '''
        Test the particle stepper when the spatial domain dimensions
        are unequal
    '''
    x = np.linspace(0, 1, 10) * u.m
    y = np.linspace(0, 1, 20) * u.m
    z = np.linspace(0, 1, 30) * u.m

    plasma = Plasma(x, y, z)

    Species(plasma, 'e', dt=1e-14 * u.s, nt=5).run()
Beispiel #2
0
An example of PlasmaPy's particle stepper class, currently in need of a rewrite
for speed. Currently disabled from running.
"""


import numpy as np
from astropy import units as u
from plasmapy.classes import Plasma, Species

############################################################
# Initialize a plasma. This will be a source of electric and magnetic
# fields for our particles to move in.

plasma = Plasma(domain_x=np.linspace(-1, 1, 10) * u.m,
                domain_y=np.linspace(-1, 1, 10) * u.m,
                domain_z=np.linspace(-1, 1, 10) * u.m)

############################################################
# Initialize the fields. We'll take $\vec{B}$ in the $\hat{x}$ direction
# and $E$ in the $\hat{y}$ direction, which gets us an $E \times B$ drift
# in $\hat{z}$.

B0 = 4 * u.T
plasma.magnetic_field[0, :, :, :] = np.ones((10, 10, 10)) * B0

E0 = 2 * u.V / u.m
plasma.electric_field[1, :, :, :] = np.ones((10, 10, 10)) * E0

############################################################
# Initialize the particle. We'll take one proton `p` with a timestep of
Beispiel #3
0
An example of PlasmaPy's particle stepper class, currently in need of a rewrite
for speed.
"""

import numpy as np
from astropy import units as u
from plasmapy.classes import Plasma
from plasmapy.simulation import ParticleTracker
from plasmapy.formulary import gyrofrequency

############################################################
# Initialize a plasma. This will be a source of electric and magnetic
# fields for our particles to move in.

plasma = Plasma(domain_x=np.linspace(-1, 1, 10) * u.m,
                domain_y=np.linspace(-1, 1, 10) * u.m,
                domain_z=np.linspace(-1, 1, 10) * u.m)

############################################################
# Initialize the fields. We'll take B in the x direction
# and E in the y direction, which gets us an E cross B drift
# in the z direction.

B0 = 4 * u.T
plasma.magnetic_field[0, :, :, :] = np.ones((10, 10, 10)) * B0

E0 = 2 * u.V / u.m
plasma.electric_field[1, :, :, :] = np.ones((10, 10, 10)) * E0

############################################################
# Calculate the timestep. We'll take one proton `p`, take its gyrofrequency, invert that
Beispiel #4
0
def uniform_magnetic_field(N=3, max_x=1):
    x = np.linspace(-max_x, max_x, N) * u.m
    test_plasma = Plasma(x, x, x)
    magfieldstr = 1 * u.T
    test_plasma.magnetic_field[2] = magfieldstr
    return test_plasma
Beispiel #5
0
def uniform_magnetic_field(N=3, max_x=1):
    x = np.linspace(-max_x, max_x, N) * u.m
    test_plasma = Plasma(x, x, x)
    magfieldstr = 1 * u.T
    test_plasma.magnetic_field[2] = magfieldstr
    return test_plasma