rolland.discretization.DiscretizationEBBVertic

class rolland.discretization.DiscretizationEBBVertic(*args, **kwargs)[source]

Bases: Discretization

Abstract base class for FDM discretization according to Stampka and Sarradj [4].

Discretizes the differential equation and can be applied either with constant or time-dependent parameters, which is the case, for example, with a moving sound source.

Parameters:
  • args (t.Any)

  • kwargs (t.Any)

track

Track instance.

Type:

Track

dt

Step size in time \([s]\).

Type:

float

req_simt

Requested simulation time \([s]\).

Type:

float

bx

Stability coefficient for dx calculation (must be \(b_x \geq 1\)) \([-]\).

Type:

float

nt

Number of time steps \([-]\).

Type:

int

sim_t

Actual simulation time \([s]\).

Type:

float

dx

Step size in space \([m]\).

Type:

float

bx_upd

Updated stability coefficient \([-]\).

Type:

float

nx

Number of spatial steps \([-]\).

Type:

int

bound

Boundary instance.

Type:

PMLRailDampVertic

n_bound

Number of spatial steps in single sided boundary domain \([-]\).

Type:

int

pml

Damping array for boundary domain.

Type:

numpy.ndarray

A

Coefficient matrix A.

Type:

scipy.sparse.csc_matrix

B

Coefficient matrix B.

Type:

scipy.sparse.csc_matrix

C

Coefficient matrix C.

Type:

scipy.sparse.csc_matrix

calc_grid()[source]

Calculate grid parameters.

calc_bound()[source]

Calculate boundary properties.

build_matrix(vec_dr, vec_sp, vec_dp, vec_ms, vec_sb, vec_db)[source]

Build matrices A, B, and C according to Stampka and Sarradj [4].

Parameters:
  • vec_dr (numpy.ndarray) – Rail damping vector.

  • vec_sp (numpy.ndarray) – Pad stiffness vector.

  • vec_dp (numpy.ndarray) – Pad damping vector.

  • vec_ms (numpy.ndarray) – Sleeper/Slab mass vector.

  • vec_sb (numpy.ndarray) – Ballast stiffness vector.

  • vec_db (numpy.ndarray) – Ballast damping vector.

Return type:

None

abstractmethod validate_discretization_stampka()[source]

Validate the discretization according to Stampka.