Propagators

class propagators.sspade.DiscreteLocalBC(q1: complex, q2: complex, q3: complex)

Coefficients of the discrete local boundary condition of the form q_1*u_1 + q_2*u_2 = q3

class propagators.sspade.DiscreteNonLocalBC(coefs: numpy array)

Coefficients of the discrete nonlocal boundary condition of the form oldsymbol{u}_{J-1}- extbf{D}^{0}oldsymbol{u}_{J}^{n}=sum_{m=1}^{n-1} extbf{D}^{m}oldsymbol{u}_{J}^{n-m}

class propagators.sspade.Edge(x: float, z_min: float, z_max: float)

Infinitely thin impenetrable edge

class propagators.sspade.HelmholtzEnvironment(x_max_m: float, lower_bc: propagators.sspade.BoundaryCondition = <propagators.sspade.TransparentBC object>, upper_bc: propagators.sspade.BoundaryCondition = <propagators.sspade.TransparentBC object>, z_min: float = 0, z_max: float = 300, n2minus1: function = <function HelmholtzEnvironment.<lambda>>, use_n2minus1: bool = True, rho: function = <function HelmholtzEnvironment.<lambda>>, use_rho: bool = True, lower_z: function = <function HelmholtzEnvironment.<lambda>>, knife_edges: List[propagators.sspade.Edge] = <factory>)

Mathematical statement of propagation conditions

class propagators.sspade.HelmholtzPropagatorComputationalParams(max_range_m: float = None, max_height_m: float = None, dx_wl: float = None, dz_wl: float = None, max_propagation_angle: float = None, max_src_angle: float = 0, exp_pade_order: tuple = None, exp_pade_coefs: List[tuple] = None, exp_pade_a0_coef: complex = 1.0, x_output_filter: int = None, z_output_filter: int = None, two_way: bool = None, two_way_iter_num: int = 0, two_way_threshold: float = 0.05, standard_pe: bool = False, sqrt_alpha: float = 0, z_order: int = None, terrain_method: propagators.sspade.TerrainMethod = None, inv_z_transform_rtol: float = None, grid_optimizator_abs_threshold: float = 0.001, storage: propagators.sspade.HelmholtzPropagatorStorage = None, max_abc_permittivity: float = 1, inv_z_transform_tau: float = None, modify_grid: bool = True)

Computational parameters for HelmholtzPadeSolver.

class propagators.sspade.RobinBC(q1: complex, q2: complex, q3: complex)

Parameters of the third type (Robin) boundary condition of the following form q_{1}u+q_{2}u’=q_3

class propagators.sspade.TerrainMethod

Terrain accounting method no: flat surface pass_through: transparent boundary and varying refractive index staircase: impedance boundary and varying lower boundary height

class propagators.sspade.TransparentBC(beta=1, gamma=0)

Parameters of the transparent boundary condition for the Helmholtz equation Assumes that function m^2=eta+gamma z outsize the domain

class propagators.sspade.TruncationMethod

An enumeration.