WARPXM v1.10.0
Loading...
Searching...
No Matches
warpy.helpers.lobc.lobc Class Reference

A class that automates Lacuna based open boundary (LOBC) setup. More...

Detailed Description

A class that automates Lacuna based open boundary (LOBC) setup.

Public Member Functions

def __init__ (self, interior_variable, sorder, lacuna_time, reintegration_time, interior_subdomains, tran_subdomains, exterior_subdomains, interior_to_transition_boundary, open_boundary, exterior_boundary, other_tran_subdomain_boundaries=None)
 
def vars_setup (self, direction, center, transitionwidth)
 Sets up and initializes variables for LOBC boundary condition.
 
def vars_create (self)
 Create LOBC variables.
 
def vars_initialize_zero (self, variables)
 Applies initial conditions to all LOBC variables.
 
def vars_initialize_tran (self, direction, center, transitionwidth)
 Initialize the transition variable.
 
def calc_dmu (self, gradient_method='ip')
 Creates host action for calculating the gradient of the transition variable.
 
def create_temporal_solver (self, torder, apps_flux_interior_var, apps_flux_aux_vars, apps_source_interior_var=None, apps_source_aux_vars=None, apps_bc_physics=None)
 Creates temporal solver for all lobc specific spatial solvers and variable adjusters.
 
def apps_source (self, apps_flux_interior_var)
 Creates LOBC source apps.
 
def apps_flux_advection (self, velocity)
 Creates advection flux apps for LOBC variables.
 
def apps_flux_maxwell (self, skin_depth_norm, omega_p_norm)
 Creates maxwell flux apps for LOBC variables.
 
def apps_flux_phmaxwell (self, skin_depth_norm, omega_p_norm, chi, gamma)
 Creates maxwell flux apps for LOBC variables.
 
def apps_bcs (self)
 Creates boundary condition apps for LOBC variables.
 
def create_pre_ti_hostactions (self)
 Creates host action for auxiliary variable swapping and zeroing.
 

Public Attributes

 interior_variable
 
 sorder
 
 lacuna_time
 
 reintegration_time
 
 interior_subdomains
 
 tran_subdomains
 
 exterior_subdomains
 
 interior_to_transition_boundary
 
 open_boundary
 
 exterior_boundary
 
 all_tran_subdomain_boundaries
 
 variable_name
 
 components
 
 w
 
 wlacuna
 
 mu
 
 dmu
 

Constructor & Destructor Documentation

◆ __init__()

def warpy.helpers.lobc.lobc.__init__ (   self,
  interior_variable,
  sorder,
  lacuna_time,
  reintegration_time,
  interior_subdomains,
  tran_subdomains,
  exterior_subdomains,
  interior_to_transition_boundary,
  open_boundary,
  exterior_boundary,
  other_tran_subdomain_boundaries = None 
)
Parameters
variable_nameName of variable to be LOBCized
sorderSpatial order
lacuna_timeQuessient period during which the sorce is off for wlacuna.
reintegration_timeTime between reintigrations of auxiliary solution.
interior_subdomainsSubdomains in the interior, not including the transition region
transition_subdomainsList of transitions subdomains
exterior_subdomainsList of exterior subdomains.
interior_to_transition_boundaryList of boundaries between interior and transition subdomains.
open_boundaryList of boundaries between transition and exterior regions.
exterior_boundaryList of real exterior boundaries.

Member Function Documentation

◆ apps_bcs()

def warpy.helpers.lobc.lobc.apps_bcs (   self)

Creates boundary condition apps for LOBC variables.

◆ apps_flux_advection()

def warpy.helpers.lobc.lobc.apps_flux_advection (   self,
  velocity 
)

Creates advection flux apps for LOBC variables.

Parameters
auxilliary_variablesList of lobc auxilliary variables.
velocityList of advection velocity components [vx, vy, vz].
Returns
app_flux_w Warpy app object.
app_flux_wlacuna Warpy app object.

◆ apps_flux_maxwell()

def warpy.helpers.lobc.lobc.apps_flux_maxwell (   self,
  skin_depth_norm,
  omega_p_norm 
)

Creates maxwell flux apps for LOBC variables.

Parameters
auxilliary_variablesList of lobc auxilliary variables.
Returns
app_flux_w Warpy app object.
app_flux_wlacuna Warpy app object.

◆ apps_flux_phmaxwell()

def warpy.helpers.lobc.lobc.apps_flux_phmaxwell (   self,
  skin_depth_norm,
  omega_p_norm,
  chi,
  gamma 
)

Creates maxwell flux apps for LOBC variables.

Parameters
variablesList of warpy variables
Returns
app_flux_w Warpy app object.
app_flux_wlacuna Warpy app object.

◆ apps_source()

def warpy.helpers.lobc.lobc.apps_source (   self,
  apps_flux_interior_var 
)

Creates LOBC source apps.

Parameters
interior_variablesWarpy variables on the interior.
auxilliary_variablesWarpy variables on the auxilliuary domain, w and wlacuna.
dmuGradient of the transition variable.
flux_appFlux app for the interior variable.
Returns
app_lobcsource_w Warpy app object.
app_lobcsource_wlacuna Warpy app object.

◆ calc_dmu()

def warpy.helpers.lobc.lobc.calc_dmu (   self,
  gradient_method = 'ip' 
)

Creates host action for calculating the gradient of the transition variable.

Parameters
gradient_methodMethod for calculating transition grad. Default=interior penalty.
Returns
host_action A Warpy host_action object

◆ create_pre_ti_hostactions()

def warpy.helpers.lobc.lobc.create_pre_ti_hostactions (   self)

Creates host action for auxiliary variable swapping and zeroing.

Returns
host_actions_lobc_post_ti List of Warpy host_action objects.

◆ create_temporal_solver()

def warpy.helpers.lobc.lobc.create_temporal_solver (   self,
  torder,
  apps_flux_interior_var,
  apps_flux_aux_vars,
  apps_source_interior_var = None,
  apps_source_aux_vars = None,
  apps_bc_physics = None 
)

Creates temporal solver for all lobc specific spatial solvers and variable adjusters.

Parameters
torderType of temporal integration scheme
apps_flux_interior_varList of physics apps for the interior variable
apps_flux_aux_varsDitto for auxiliary variables (same app types as interior)
apps_source_interior_varList of physics sources for the interior variable
apps_source_aux_varsDitto for auxiliary variables (same app types as interior)
apps_bc_physicsList of boundary condition apps for physics boundaries
Returns
temporal_solver A Warpy temporal_solver host_action object

◆ vars_create()

def warpy.helpers.lobc.lobc.vars_create (   self)

Create LOBC variables.

Returns
w Primary auxilary variable, where w = mu*q. (subdmains "transition", "exterior")
wlacuna Secondary auxilary variable, swapped with w every reintigration_time.
mu Transition variable, governs the near-boundary source term for w and wlacuna.
dmu Gradient of mu.

◆ vars_initialize_tran()

def warpy.helpers.lobc.lobc.vars_initialize_tran (   self,
  direction,
  center,
  transitionwidth 
)

Initialize the transition variable.

Parameters
variablesList of warpy variables
directionVector coordinates of direction of transition function change
centerLocation of center of transition region.
transitionwidthWidth of transition region.
Returns
lobc_ic_applicators Warpy applicator object

◆ vars_initialize_zero()

def warpy.helpers.lobc.lobc.vars_initialize_zero (   self,
  variables 
)

Applies initial conditions to all LOBC variables.

For now, it just zeros.

Parameters
variablesList of warpy variables
Returns
lobc_ic_applicators Warpy applicator object for variable intial conditions

◆ vars_setup()

def warpy.helpers.lobc.lobc.vars_setup (   self,
  direction,
  center,
  transitionwidth 
)

Sets up and initializes variables for LOBC boundary condition.

Parameters
directionVector coordinates of direction of transition function change
centerLocation of center of transition region.
transitionwidthWidth of transition region.
Returns
ic_applicators List of Warpy applicator objects.

Member Data Documentation

◆ all_tran_subdomain_boundaries

warpy.helpers.lobc.lobc.all_tran_subdomain_boundaries

◆ components

warpy.helpers.lobc.lobc.components

◆ dmu

warpy.helpers.lobc.lobc.dmu

◆ exterior_boundary

warpy.helpers.lobc.lobc.exterior_boundary

◆ exterior_subdomains

warpy.helpers.lobc.lobc.exterior_subdomains

◆ interior_subdomains

warpy.helpers.lobc.lobc.interior_subdomains

◆ interior_to_transition_boundary

warpy.helpers.lobc.lobc.interior_to_transition_boundary

◆ interior_variable

warpy.helpers.lobc.lobc.interior_variable

◆ lacuna_time

warpy.helpers.lobc.lobc.lacuna_time

◆ mu

warpy.helpers.lobc.lobc.mu

◆ open_boundary

warpy.helpers.lobc.lobc.open_boundary

◆ reintegration_time

warpy.helpers.lobc.lobc.reintegration_time

◆ sorder

warpy.helpers.lobc.lobc.sorder

◆ tran_subdomains

warpy.helpers.lobc.lobc.tran_subdomains

◆ variable_name

warpy.helpers.lobc.lobc.variable_name

◆ w

warpy.helpers.lobc.lobc.w

◆ wlacuna

warpy.helpers.lobc.lobc.wlacuna

The documentation for this class was generated from the following file: