WARPXM v1.10.0
Loading...
Searching...
No Matches
dory_guest_harris_instability Namespace Reference

Variables

str torder = 'RK4'
 
str sorder = 'thirdOrder'
 
bool periodic_boundary_conditions = True
 
bool use_phmaxwell = False
 
float cfl = 0.235
 
float qe = 1.602177e-19
 
float me = 9.10938356E-31
 
float mu0 = 1.256637e-6
 
float eps0 = 8.854187e-12
 
int c_light = 1/(mu0*eps0)**.5
 
float Z_i = +1.0
 
float Z_e = -1.0
 
float mass_ratio = 1836.0
 
float A_i = 1836.0
 
float A_e = A_i / mass_ratio
 
float n_i = 1.0
 
float n_e = 1.0
 
float rho_i = A_i * n_i
 
float rho_e = A_e * n_e
 
float charge_to_mass_ion = Z_i/A_i
 
float charge_to_mass_electron = Z_e/A_e
 
float v_th_i = 1.0
 
float v_th_e = 1.0
 
float P_i = n_i * A_i * v_th_i**2
 
float P_e = n_e * A_e * v_th_e**2
 
float T_i = P_i / n_i
 
float T_e = P_e / n_e
 
int j_value = 6
 
int omega_p_over_omega_c = 20
 
float k_tilde = 3.15
 
float epsilon_pert = 1.0E-4
 
math v_perp0 = math.sqrt(2)
 
int Omega_c = 1 / omega_p_over_omega_c
 
float Bz_ic = 1.0
 
float L = 1.0
 
float omega_p_tau = 1.0
 
int skin_depth_norm = omega_p_over_omega_c
 
int omega_c_tau = 1/skin_depth_norm
 
float n0 = me*omega_c_tau**2/(mu0*L**2*qe**2)
 
float c_tilde = omega_p_tau * skin_depth_norm
 
int v0 = c_light / (skin_depth_norm * omega_p_tau)
 
float tau = L/v0
 
float omega_p = omega_p_tau / tau
 
int omega_c = omega_c_tau / tau
 
int b0 = v0 * math.sqrt(me*n0*mu0)
 
int p0 = b0**2/mu0
 
int T0 = p0/n0
 
math v_th0 = math.sqrt(T0/me)
 
math rl0 = v_th0/omega_p
 
int dp0 = c_light / omega_p
 
tuple L_debye0 = (eps0*T0/(n0*qe**2))**0.5
 
tuple L_debye = (eps0*T_e*T0/(n0*n_e*qe**2))**0.5
 
int normalized_domain_length = 2*math.pi/k_tilde * v_perp0 / Omega_c
 
int v_bound = 4
 
list v_space_num_elements = [24,24]
 
int dv = 2*v_bound / v_space_num_elements[0]
 
list min_v_ion = [-v_bound, -v_bound]
 
list dv_ion = [dv, dv]
 
list min_v_electron = [-v_bound, -v_bound]
 
list dv_electron = [dv,dv]
 
int num_physical_elements = 48
 
list domain = ['domain']
 
warpy mesh
 
warpy electron_distribution
 
warpy ion_distribution
 
warpy kinetic_electron_fluid
 
warpy kinetic_ion_fluid
 
list field_components = ['Ex','Ey','Ez','Bx','By','Bz']
 
warpy field
 
warpy electron_ic
 Initial conditions-------------------------------— Step 1: define the function as an application:
 
warpy ion_ic
 
warpy field_ic
 
warpy electron_ic_va
 
warpy ion_ic_va
 
warpy field_ic_va
 
warpy ic_ha
 
list apps_kinetic_electrons = []
 Initial conditions-------------------------------—.
 
list apps_physical = []
 
 else :
 
list applications_moments_electrons = []
 
list applications_2nd_moments_electrons = []
 
list variable_adjusters = []
 Variable adjusters.
 
warpy writer
 Variable writer.
 
warpy spatial_solver_kinetic_electrons
 
warpy spatial_solver_physical
 
warpy temporal_solver
 Temporal solver.
 
tuple ompe = (( n_e*n0 * qe**2)/(eps0*A_e*me))**0.5
 Simulation (dg)
 
int t_final = 500/ompe/tau
 
int write_steps = 100
 
int dt = t_final / write_steps
 
warpy dt_controller = warpy.dt_calc.stability_dt(dt)
 

Variable Documentation

◆ A_e

float dory_guest_harris_instability.A_e = A_i / mass_ratio

◆ A_i

float dory_guest_harris_instability.A_i = 1836.0

◆ applications_2nd_moments_electrons

list dory_guest_harris_instability.applications_2nd_moments_electrons = []

◆ applications_moments_electrons

list dory_guest_harris_instability.applications_moments_electrons = []

◆ apps_kinetic_electrons

list dory_guest_harris_instability.apps_kinetic_electrons = []

Initial conditions-------------------------------—.

◆ apps_physical

list dory_guest_harris_instability.apps_physical = []

◆ b0

int dory_guest_harris_instability.b0 = v0 * math.sqrt(me*n0*mu0)

◆ Bz_ic

warpy dory_guest_harris_instability.Bz_ic = 1.0

◆ c_light

int dory_guest_harris_instability.c_light = 1/(mu0*eps0)**.5

◆ c_tilde

float dory_guest_harris_instability.c_tilde = omega_p_tau * skin_depth_norm

◆ cfl

float dory_guest_harris_instability.cfl = 0.235

◆ charge_to_mass_electron

float dory_guest_harris_instability.charge_to_mass_electron = Z_e/A_e

◆ charge_to_mass_ion

float dory_guest_harris_instability.charge_to_mass_ion = Z_i/A_i

◆ domain

list dory_guest_harris_instability.domain = ['domain']

◆ dp0

int dory_guest_harris_instability.dp0 = c_light / omega_p

◆ dt

int dory_guest_harris_instability.dt = t_final / write_steps

◆ dt_controller

warpy dory_guest_harris_instability.dt_controller = warpy.dt_calc.stability_dt(dt)

◆ dv

int dory_guest_harris_instability.dv = 2*v_bound / v_space_num_elements[0]

◆ dv_electron

list dory_guest_harris_instability.dv_electron = [dv,dv]

◆ dv_ion

list dory_guest_harris_instability.dv_ion = [dv, dv]

◆ electron_distribution

warpy dory_guest_harris_instability.electron_distribution
Initial value:
1= warpy.variable(name = 'electron_distribution',
2 components = ['f'],
3 basis_array_set = sorder,
4 phase_space_basis_array_set = sorder,
5 v_space_num_elements = v_space_num_elements,
6 subdomains=domain,
7 virtual_subdomains=None)
Definition: variable.py:4

◆ electron_ic

warpy dory_guest_harris_instability.electron_ic
Initial value:
2 distribution=electron_distribution,
3 distribution_components=None,
4 j_value=j_value,
5 k_tilde = k_tilde,
6 Omega_c = Omega_c,
7 number_density = n_e,
8 v_perp0 = v_perp0,
9 epsilon = epsilon_pert
10)
Function which sets a Dory-Guest-Harris Initial Condition See Genia Vogman Dissertation equation 5....
Definition: kinetics.py:268

Initial conditions-------------------------------— Step 1: define the function as an application:

◆ electron_ic_va

warpy dory_guest_harris_instability.electron_ic_va
Initial value:
2 priority = 0,
3 spatial_order = sorder,
4 phase_space_spatial_order = sorder,
5 v_space_num_elements = v_space_num_elements,
6 min_v = min_v_electron,
7 dv = dv_electron,
8 on_subdomains=['all'],
9 applications=[electron_ic])
phase_space function evaluator
Definition: function_evaluation.py:42

◆ else

dory_guest_harris_instability.else :

◆ eps0

float dory_guest_harris_instability.eps0 = 8.854187e-12

◆ epsilon_pert

float dory_guest_harris_instability.epsilon_pert = 1.0E-4

◆ field

warpy dory_guest_harris_instability.field
Initial value:
1= warpy.variable(name = 'field',
2 components = field_components,
3 basis_array_set = sorder,
4 subdomains=domain,
5 virtual_subdomains=None)

◆ field_components

list dory_guest_harris_instability.field_components = ['Ex','Ey','Ez','Bx','By','Bz']

◆ field_ic

warpy dory_guest_harris_instability.field_ic
Initial value:
2 value = 0,
3 variable=field,
4 variable_components=['Ex','Ey', 'Ez','Bx','By'])
Function which sets field to a given uniform value.
Definition: arbitrary.py:4

◆ field_ic_va

warpy dory_guest_harris_instability.field_ic_va
Initial value:
2 priority=0,
3 spatial_order=sorder,
4 on_subdomains=['all'],
5 applications=[field_ic, Bz_ic])
function evaluator
Definition: function_evaluation.py:4

◆ ic_ha

warpy dory_guest_harris_instability.ic_ha
Initial value:
2 variable_adjusters=[electron_ic_va, ion_ic_va, field_ic_va])
Runs a list of host actions.
Definition: va_runner.py:5

◆ ion_distribution

warpy dory_guest_harris_instability.ion_distribution
Initial value:
1= warpy.variable(name = 'ion_distribution',
2 components = ['f'],
3 basis_array_set = sorder,
4 phase_space_basis_array_set = sorder,
5 v_space_num_elements = v_space_num_elements,
6 subdomains=domain,
7 virtual_subdomains=None,
8 explodable=False)

◆ ion_ic

warpy dory_guest_harris_instability.ion_ic
Initial value:
2 distribution=ion_distribution,
3 distribution_components=None,
4 mass=A_i,
5 density=rho_i,
6 velocity=[0,0,0],
7 pressure=P_i)
Function which sets a maxwellian distribution.
Definition: kinetics.py:127

◆ ion_ic_va

warpy dory_guest_harris_instability.ion_ic_va
Initial value:
2 priority = 0,
3 spatial_order = sorder,
4 phase_space_spatial_order = sorder,
5 v_space_num_elements = v_space_num_elements,
6 min_v = min_v_ion,
7 dv = dv_ion,
8 on_subdomains=['all'],
9 applications=[ion_ic])

◆ j_value

int dory_guest_harris_instability.j_value = 6

◆ k_tilde

float dory_guest_harris_instability.k_tilde = 3.15

◆ kinetic_electron_fluid

warpy dory_guest_harris_instability.kinetic_electron_fluid
Initial value:
1= warpy.variable(name = 'kinetic_electron_fluid',
2 components = ['n','nvx','nvy','nvz','nT'],
3 basis_array_set = sorder,
4 subdomains=domain,
5 virtual_subdomains=None,
6 explodable=True)

◆ kinetic_ion_fluid

warpy dory_guest_harris_instability.kinetic_ion_fluid
Initial value:
1= warpy.variable(name = 'kinetic_ion_fluid',
2 components = ['n','nvx','nvy','nvz','nT'],
3 basis_array_set = sorder,
4 subdomains=domain,
5 virtual_subdomains=None,
6 explodable=False)

◆ L

float dory_guest_harris_instability.L = 1.0

◆ L_debye

tuple dory_guest_harris_instability.L_debye = (eps0*T_e*T0/(n0*n_e*qe**2))**0.5

◆ L_debye0

tuple dory_guest_harris_instability.L_debye0 = (eps0*T0/(n0*qe**2))**0.5

◆ mass_ratio

float dory_guest_harris_instability.mass_ratio = 1836.0

◆ me

float dory_guest_harris_instability.me = 9.10938356E-31

◆ mesh

warpy dory_guest_harris_instability.mesh
Initial value:
1= warpy.mesh.block(Bounds = [0, normalized_domain_length],
2 NumCells = [num_physical_elements],
3 NodeSets = ['Left', 'Right'],
4 NumLayers = 1,
5 PeriodicBoundaries = ['Left','Right'] if periodic_boundary_conditions else None,
6 basis_array_set = sorder)
block mesh generator
Definition: mesh.py:87

◆ min_v_electron

list dory_guest_harris_instability.min_v_electron = [-v_bound, -v_bound]

◆ min_v_ion

list dory_guest_harris_instability.min_v_ion = [-v_bound, -v_bound]

◆ mu0

float dory_guest_harris_instability.mu0 = 1.256637e-6

◆ n0

float dory_guest_harris_instability.n0 = me*omega_c_tau**2/(mu0*L**2*qe**2)

◆ n_e

float dory_guest_harris_instability.n_e = 1.0

◆ n_i

float dory_guest_harris_instability.n_i = 1.0

◆ normalized_domain_length

int dory_guest_harris_instability.normalized_domain_length = 2*math.pi/k_tilde * v_perp0 / Omega_c

◆ num_physical_elements

int dory_guest_harris_instability.num_physical_elements = 48

◆ Omega_c

int dory_guest_harris_instability.Omega_c = 1 / omega_p_over_omega_c

◆ omega_c

int dory_guest_harris_instability.omega_c = omega_c_tau / tau

◆ omega_c_tau

int dory_guest_harris_instability.omega_c_tau = 1/skin_depth_norm

◆ omega_p

float dory_guest_harris_instability.omega_p = omega_p_tau / tau

◆ omega_p_over_omega_c

int dory_guest_harris_instability.omega_p_over_omega_c = 20

◆ omega_p_tau

float dory_guest_harris_instability.omega_p_tau = 1.0

◆ ompe

tuple dory_guest_harris_instability.ompe = (( n_e*n0 * qe**2)/(eps0*A_e*me))**0.5

Simulation (dg)

◆ p0

int dory_guest_harris_instability.p0 = b0**2/mu0

◆ P_e

float dory_guest_harris_instability.P_e = n_e * A_e * v_th_e**2

◆ P_i

float dory_guest_harris_instability.P_i = n_i * A_i * v_th_i**2

◆ periodic_boundary_conditions

bool dory_guest_harris_instability.periodic_boundary_conditions = True

◆ qe

float dory_guest_harris_instability.qe = 1.602177e-19

◆ rho_e

float dory_guest_harris_instability.rho_e = A_e * n_e

◆ rho_i

float dory_guest_harris_instability.rho_i = A_i * n_i

◆ rl0

math dory_guest_harris_instability.rl0 = v_th0/omega_p

◆ skin_depth_norm

int dory_guest_harris_instability.skin_depth_norm = omega_p_over_omega_c

◆ sorder

str dory_guest_harris_instability.sorder = 'thirdOrder'

◆ spatial_solver_kinetic_electrons

warpy dory_guest_harris_instability.spatial_solver_kinetic_electrons
Initial value:
1= warpy.spatial_solvers.dg_kinetic(name="dg_kinetic_electrons",
2 spatial_order = sorder,
3 phase_space_spatial_order = sorder,
4 v_space_num_elements = v_space_num_elements,
5 min_v = min_v_electron,
6 dv = dv_electron,
7 applications = apps_kinetic_electrons,
8 on_subdomains = domain,
9 cfl = cfl)

◆ spatial_solver_physical

warpy dory_guest_harris_instability.spatial_solver_physical
Initial value:
1= warpy.spatial_solvers.dg(name="dg_physical",
2 spatial_order=sorder,
3 applications=apps_physical,
4 cfl = cfl)

◆ T0

int dory_guest_harris_instability.T0 = p0/n0

◆ T_e

float dory_guest_harris_instability.T_e = P_e / n_e

◆ t_final

int dory_guest_harris_instability.t_final = 500/ompe/tau

◆ T_i

float dory_guest_harris_instability.T_i = P_i / n_i

◆ tau

float dory_guest_harris_instability.tau = L/v0

◆ temporal_solver

warpy dory_guest_harris_instability.temporal_solver
Initial value:
1= warpy.host_actions.erk(name = 'rk',
2 scheme = torder,
3 spatial_solvers = [spatial_solver_physical,
4 # spatial_solver_kinetic_ions,
5 spatial_solver_kinetic_electrons],
6 variable_adjusters = variable_adjusters)
Explicit Runge-Kutta temporal solver Note: Dormand45 currently will not work correctly with limiters ...
Definition: erk.py:5

Temporal solver.

◆ torder

str dory_guest_harris_instability.torder = 'RK4'

◆ use_phmaxwell

bool dory_guest_harris_instability.use_phmaxwell = False

◆ v0

int dory_guest_harris_instability.v0 = c_light / (skin_depth_norm * omega_p_tau)

◆ v_bound

int dory_guest_harris_instability.v_bound = 4

◆ v_perp0

math dory_guest_harris_instability.v_perp0 = math.sqrt(2)

◆ v_space_num_elements

list dory_guest_harris_instability.v_space_num_elements = [24,24]

◆ v_th0

math dory_guest_harris_instability.v_th0 = math.sqrt(T0/me)

◆ v_th_e

float dory_guest_harris_instability.v_th_e = 1.0

◆ v_th_i

float dory_guest_harris_instability.v_th_i = 1.0

◆ variable_adjusters

list dory_guest_harris_instability.variable_adjusters = []

Variable adjusters.

◆ write_steps

int dory_guest_harris_instability.write_steps = 100

◆ writer

warpy dory_guest_harris_instability.writer
Initial value:
1= warpy.host_actions.writer(name = 'writer',
2 ReadVars = [ion_distribution, electron_distribution, field, kinetic_ion_fluid, kinetic_electron_fluid])
Writes out a list of variables.
Definition: writer.py:4

Variable writer.

◆ Z_e

float dory_guest_harris_instability.Z_e = -1.0

◆ Z_i

float dory_guest_harris_instability.Z_i = +1.0