WARPXM v1.10.0
Loading...
Searching...
No Matches
examples.dg.plasma.gem_challenge.gem_5moment_1D Namespace Reference

Variables

bool use_phmaxwell = False
 
bool use_pcmaxwell = False
 
None nu_p_tau = None
 
float cfl = 0.8
 
bool use_limiters = False
 
bool use_interspecies_collisions = False
 
str torder = "TVDRK2"
 
str sorder = "secondOrder"
 
float n0 = 1.0
 
float n_inf = 0.2
 
float B0 = 1.0
 
float perturbation = 0.1
 
list names = ["ions", "electrons"]
 
list A = [1., 1.]
 
list Z = [1., -1.]
 
math Ti_Te = math.sqrt(A[0]/A[1])
 
float skin_depth_norm = 1.0
 
float omega_p_tau = 20.0
 
int di_L = 1.
 
float sheet_width = 0.5
 
float Te = B0**2/2.0/n0/(Ti_Te + 1.0)
 
math Ti = Ti_Te * Te
 
list T = [Ti, Te]
 
float chi = 1.0
 
float phchi = 2.0
 
int gamma = 5./3.
 
int Lx = 4*math.pi*di_L
 
int Ly = 8*math.pi*di_L
 
len N = len(names)
 
warpy mesh = warpy.mesh.block(Bounds=[-Lx/2.,Lx/2],NumCells=[512],NodeSets=["Lower","Upper"],NumLayers=2,basis_array_set=sorder)
 
list component_names = ['rho', 'px', 'py', 'pz', 'e']
 
list field_component_names = ['Ex', 'Ey', 'Ez', 'Bx', 'By', 'Bz']
 
warpy field = warpy.variable(name='field',components=field_component_names,basis_array_set=sorder)
 
list fluids = [warpy.variable(name=name,components=component_names,basis_array_set=sorder) for name in names]
 
warpy field_gradient = warpy.variable(name='field_gradient',components=[prefix + "_" + suffix for prefix in field.components() for suffix in ['x','y','z']],basis_array_set=sorder)
 
list fluid_gradients = [warpy.variable(name=name+'_gradient',components=[prefix + "_" + suffix for prefix in component_names for suffix in ['x','y','z']],basis_array_set=sorder) for name in names]
 
list fluid_functions = [warpy.functions.gem_5moment_1D(name='ic_'+names[i], gamma=gamma, skin_depth_norm=skin_depth_norm, mass=A[i], charge=Z[i], B0=B0, temperature=T[i], sheet_width=sheet_width, number_density=n0, number_density_infinity=n_inf) for i in range(N)]
 
warpy field_function = warpy.functions.gem_field_1D(name='ic_field', Bx=B0, sheet_width=sheet_width, perturbation=perturbation)
 
list applicators = [warpy.applicator(spatial_order=sorder,fun=fluid_functions[i],var=fluids[i],spatial_scheme='Nodal') for i in range(N)]
 
list apps = []
 
list dirichlet_apps = []
 
list neumann_apps = []
 
 else :
 
list write_vars = fluids + [field]
 
tuple has_gradients = (nu_p_tau != None) or use_pcmaxwell
 
list gradient_input_variables = []
 
list gradient_output_variables = []
 
warpy writer = warpy.host_actions.writer(name='writer',ReadVars=write_vars)
 
warpy spatial_solver = warpy.spatial_solvers.dg(name="dg", spatial_order=sorder, applications=apps, cfl=cfl)
 
list variable_adjusters = []
 
warpy time_integrator = warpy.host_actions.erk(name="ti", scheme=torder, spatial_solvers=[spatial_solver], variable_adjusters=variable_adjusters)
 
warpy dt_controller = warpy.dt_calc.stability_dt(init_dt=0.025)
 
warpy sim
 
 gen_xdmf
 
 True
 
 detect_nonscalar
 

Variable Documentation

◆ A

list examples.dg.plasma.gem_challenge.gem_5moment_1D.A = [1., 1.]

◆ applicators

list examples.dg.plasma.gem_challenge.gem_5moment_1D.applicators = [warpy.applicator(spatial_order=sorder,fun=fluid_functions[i],var=fluids[i],spatial_scheme='Nodal') for i in range(N)]

◆ apps

list examples.dg.plasma.gem_challenge.gem_5moment_1D.apps = []

◆ B0

float examples.dg.plasma.gem_challenge.gem_5moment_1D.B0 = 1.0

◆ cfl

float examples.dg.plasma.gem_challenge.gem_5moment_1D.cfl = 0.8

◆ chi

float examples.dg.plasma.gem_challenge.gem_5moment_1D.chi = 1.0

◆ component_names

list examples.dg.plasma.gem_challenge.gem_5moment_1D.component_names = ['rho', 'px', 'py', 'pz', 'e']

◆ detect_nonscalar

examples.dg.plasma.gem_challenge.gem_5moment_1D.detect_nonscalar

◆ di_L

int examples.dg.plasma.gem_challenge.gem_5moment_1D.di_L = 1.

◆ dirichlet_apps

list examples.dg.plasma.gem_challenge.gem_5moment_1D.dirichlet_apps = []

◆ dt_controller

warpy examples.dg.plasma.gem_challenge.gem_5moment_1D.dt_controller = warpy.dt_calc.stability_dt(init_dt=0.025)

◆ else

examples.dg.plasma.gem_challenge.gem_5moment_1D.else :

◆ field

warpy examples.dg.plasma.gem_challenge.gem_5moment_1D.field = warpy.variable(name='field',components=field_component_names,basis_array_set=sorder)

◆ field_component_names

list examples.dg.plasma.gem_challenge.gem_5moment_1D.field_component_names = ['Ex', 'Ey', 'Ez', 'Bx', 'By', 'Bz']

◆ field_function

warpy examples.dg.plasma.gem_challenge.gem_5moment_1D.field_function = warpy.functions.gem_field_1D(name='ic_field', Bx=B0, sheet_width=sheet_width, perturbation=perturbation)

◆ field_gradient

warpy examples.dg.plasma.gem_challenge.gem_5moment_1D.field_gradient = warpy.variable(name='field_gradient',components=[prefix + "_" + suffix for prefix in field.components() for suffix in ['x','y','z']],basis_array_set=sorder)

◆ fluid_functions

list examples.dg.plasma.gem_challenge.gem_5moment_1D.fluid_functions = [warpy.functions.gem_5moment_1D(name='ic_'+names[i], gamma=gamma, skin_depth_norm=skin_depth_norm, mass=A[i], charge=Z[i], B0=B0, temperature=T[i], sheet_width=sheet_width, number_density=n0, number_density_infinity=n_inf) for i in range(N)]

◆ fluid_gradients

list examples.dg.plasma.gem_challenge.gem_5moment_1D.fluid_gradients = [warpy.variable(name=name+'_gradient',components=[prefix + "_" + suffix for prefix in component_names for suffix in ['x','y','z']],basis_array_set=sorder) for name in names]

◆ fluids

list examples.dg.plasma.gem_challenge.gem_5moment_1D.fluids = [warpy.variable(name=name,components=component_names,basis_array_set=sorder) for name in names]

◆ gamma

int examples.dg.plasma.gem_challenge.gem_5moment_1D.gamma = 5./3.

◆ gen_xdmf

examples.dg.plasma.gem_challenge.gem_5moment_1D.gen_xdmf

◆ gradient_input_variables

list examples.dg.plasma.gem_challenge.gem_5moment_1D.gradient_input_variables = []

◆ gradient_output_variables

list examples.dg.plasma.gem_challenge.gem_5moment_1D.gradient_output_variables = []

◆ has_gradients

tuple examples.dg.plasma.gem_challenge.gem_5moment_1D.has_gradients = (nu_p_tau != None) or use_pcmaxwell

◆ Lx

int examples.dg.plasma.gem_challenge.gem_5moment_1D.Lx = 4*math.pi*di_L

◆ Ly

int examples.dg.plasma.gem_challenge.gem_5moment_1D.Ly = 8*math.pi*di_L

◆ mesh

warpy examples.dg.plasma.gem_challenge.gem_5moment_1D.mesh = warpy.mesh.block(Bounds=[-Lx/2.,Lx/2],NumCells=[512],NodeSets=["Lower","Upper"],NumLayers=2,basis_array_set=sorder)

◆ N

len examples.dg.plasma.gem_challenge.gem_5moment_1D.N = len(names)

◆ n0

float examples.dg.plasma.gem_challenge.gem_5moment_1D.n0 = 1.0

◆ n_inf

float examples.dg.plasma.gem_challenge.gem_5moment_1D.n_inf = 0.2

◆ names

list examples.dg.plasma.gem_challenge.gem_5moment_1D.names = ["ions", "electrons"]

◆ neumann_apps

list examples.dg.plasma.gem_challenge.gem_5moment_1D.neumann_apps = []

◆ nu_p_tau

None examples.dg.plasma.gem_challenge.gem_5moment_1D.nu_p_tau = None

◆ omega_p_tau

float examples.dg.plasma.gem_challenge.gem_5moment_1D.omega_p_tau = 20.0

◆ perturbation

float examples.dg.plasma.gem_challenge.gem_5moment_1D.perturbation = 0.1

◆ phchi

float examples.dg.plasma.gem_challenge.gem_5moment_1D.phchi = 2.0

◆ sheet_width

float examples.dg.plasma.gem_challenge.gem_5moment_1D.sheet_width = 0.5

◆ sim

warpy examples.dg.plasma.gem_challenge.gem_5moment_1D.sim
Initial value:
1= warpy.dg_sim(name='gem_5moment_1D_test',
2 meshes=[mesh],
3 initial_conditions=applicators,
4 temporal_solvers=[time_integrator],
5 writers=[writer],
6 # time=[0,40.0],
7 # time=[0,4.0],
8 time=[0,0.4],
9 dt_controller=dt_controller,
10 write_steps=100,
11 verbosity='debug',
12 profile='icpus')
Discontinuous finite element RK simulation.
Definition: dg_sim.py:11

◆ skin_depth_norm

float examples.dg.plasma.gem_challenge.gem_5moment_1D.skin_depth_norm = 1.0

◆ sorder

str examples.dg.plasma.gem_challenge.gem_5moment_1D.sorder = "secondOrder"

◆ spatial_solver

warpy examples.dg.plasma.gem_challenge.gem_5moment_1D.spatial_solver = warpy.spatial_solvers.dg(name="dg", spatial_order=sorder, applications=apps, cfl=cfl)

◆ T

list examples.dg.plasma.gem_challenge.gem_5moment_1D.T = [Ti, Te]

◆ Te

float examples.dg.plasma.gem_challenge.gem_5moment_1D.Te = B0**2/2.0/n0/(Ti_Te + 1.0)

◆ Ti

math examples.dg.plasma.gem_challenge.gem_5moment_1D.Ti = Ti_Te * Te

◆ Ti_Te

math examples.dg.plasma.gem_challenge.gem_5moment_1D.Ti_Te = math.sqrt(A[0]/A[1])

◆ time_integrator

warpy examples.dg.plasma.gem_challenge.gem_5moment_1D.time_integrator = warpy.host_actions.erk(name="ti", scheme=torder, spatial_solvers=[spatial_solver], variable_adjusters=variable_adjusters)

◆ torder

str examples.dg.plasma.gem_challenge.gem_5moment_1D.torder = "TVDRK2"

◆ True

examples.dg.plasma.gem_challenge.gem_5moment_1D.True

◆ use_interspecies_collisions

bool examples.dg.plasma.gem_challenge.gem_5moment_1D.use_interspecies_collisions = False

◆ use_limiters

bool examples.dg.plasma.gem_challenge.gem_5moment_1D.use_limiters = False

◆ use_pcmaxwell

bool examples.dg.plasma.gem_challenge.gem_5moment_1D.use_pcmaxwell = False

◆ use_phmaxwell

bool examples.dg.plasma.gem_challenge.gem_5moment_1D.use_phmaxwell = False

◆ variable_adjusters

list examples.dg.plasma.gem_challenge.gem_5moment_1D.variable_adjusters = []

◆ write_vars

list examples.dg.plasma.gem_challenge.gem_5moment_1D.write_vars = fluids + [field]

◆ writer

warpy examples.dg.plasma.gem_challenge.gem_5moment_1D.writer = warpy.host_actions.writer(name='writer',ReadVars=write_vars)

◆ Z

list examples.dg.plasma.gem_challenge.gem_5moment_1D.Z = [1., -1.]