General

compute_rad_robin_eigenfrequencies(param, l, n_roots=10, show_plot=False)[source]

Return the first n_roots eigenfrequencies \omega (and eigenvalues \lambda)

\omega = \sqrt{-\frac{a_1^2}{4a_2^2}+\frac{a_0-\lambda}{a_2}}

to the eigenvalue problem

a_2\varphi''(z) + a_1&\varphi'(z) + a_0\varphi(z) = \lambda\varphi(z) \\
\varphi'(0) &= \alpha\varphi(0) \\
\varphi'(l) &= -\beta\varphi(l).

Parameters:
  • param (array_like) – \Big( a_2, a_1, a_0, \alpha, \beta \Big)^T
  • l (numbers.Number) – Right boundary value of the domain [0,l]\ni z.
  • n_roots (int) – Amount of eigenfrequencies to be compute.
  • show_plot (bool) – A plot window of the characteristic equation appears if it is True.
Returns:

\Big(\big[\omega_1,...,\omega_\text{n\_roots}\Big],
\Big[\lambda_1,...,\lambda_\text{n\_roots}\big]\Big)

Return type:

tuple –> two numpy.ndarrays of length nroots

eliminate_advection_term(param, domain_end)[source]

This method performs a transformation

\tilde x(z,t)=x(z,t)
e^{\int_0^z \frac{a_1(\bar z)}{2 a_2}\,d\bar z} ,

on the system, which eliminates the advection term a_1 x(z,t) from a reaction-advection-diffusion equation of the type:

\dot x(z,t) = a_2 x''(z,t) + a_1(z) x'(z,t) + a_0(z) x(z,t) .

The boundary can be given by robin

x'(0,t) = \alpha x(0,t), \quad x'(l,t) = -\beta x(l,t) ,

dirichlet

x(0,t) = 0, \quad x(l,t) = 0

or mixed boundary conditions.

Parameters:
  • param (array_like) – \Big( a_2, a_1, a_0, \alpha, \beta \Big)^T
  • domain_end (float) – upper bound of the spatial domain
Raises:
  • TypeError – If a_1(z) is callable but no derivative handle is
  • defined for it.
Returns:

Parameters

\big(a_2, \tilde a_1=0, \tilde a_0(z),
\tilde \alpha, \tilde \beta \big) for

the transformed system

\dot{\tilde{x}}(z,t) = a_2 \tilde x''(z,t) +
\tilde a_0(z) \tilde x(z,t)

and the corresponding boundary conditions (\alpha and/or \beta set to None by dirichlet boundary condition).

Return type:

SecondOrderOperator or tuple

get_parabolic_dirichlet_weak_form(init_func_label, test_func_label, input_handle, param, spatial_domain)[source]

Return the weak formulation of a parabolic 2nd order system, using an inhomogeneous dirichlet boundary at both sides.

Parameters:
  • init_func_label (str) – Label of shape base to use.
  • test_func_label (str) – Label of test base to use.
  • input_handle (SimulationInput) – Input.
  • param (tuple) – Parameters of the spatial operator.
  • spatial_domain (#) – Spatial domain of the problem.
  • spatial_domain – Spatial domain of the
  • problem. (#) –
Returns:

Weak form of the system.

Return type:

WeakFormulation

get_parabolic_robin_weak_form(shape_base_label, test_base_label, input_handle, param, spatial_domain, actuation_type_point=None)[source]
Parameters:
  • shape_base_label
  • test_base_label
  • input_handle
  • param
  • spatial_domain
  • actuation_type_point
Returns:

get_in_domain_transformation_matrix(k1, k2, mode='n_plus_1')[source]

Returns the transformation matrix M. M is one part of a transformation

where x is the field variable of an interior point controlled parabolic system and y is the field variable of an boundary controlled parabolic system. T is a (Fredholm-) integral transformation (which can be approximated with M).

Parameters:
  • k1
  • k2
  • mode

    Available modes:

    • ’n_plus_1’: M.shape = (n+1,n+1), w = (w(0),…,w(n))^T, w in {x,y}
    • ‘2n’: M.shape = (2n,2n), w = (w(0),…,w(n),…,w(1))^T, w in {x,y}
Returns:

Transformation matrix M.

Return type:

numpy.array