sfepy.homogenization.convolutions module

class sfepy.homogenization.convolutions.ConvolutionKernel(name, times, kernel, decay=None, exp_coefs=None, exp_decay=None)[source]

The convolution kernel with exponential synchronous decay approximation approximating the original kernel represented by the array c[i], i = 0, 1, \dots.

\begin{split}
& c_0 \equiv c[0] \;, c_{e0} \equiv c_0 c^e_0 \;, \\
& c(t) \approx c_0 d(t) \approx c_0 e(t) = c_{e0} e_n(t) \;,
\end{split}

where d(0) = e_n(0) = 1, d is the synchronous decay and e its exponential approximation, e = c^e_0 exp(-c^e_1 t).

diff_dt(use_exp=False)[source]

The derivative of the kernel w.r.t. time.

get_exp()[source]

Get the exponential synchronous decay kernel approximation.

get_full()[source]

Get the original (full) kernel.

int_dt(use_exp=False)[source]

The integral of the kernel in time.

sfepy.homogenization.convolutions.approximate_exponential(x, y)[source]

Approximate y = f(x) by y_a = c_1 exp(- c_2 x).

Initial guess is given by assuming y has already the required exponential form.

sfepy.homogenization.convolutions.compute_mean_decay(coef)[source]

Compute mean decay approximation of a non-scalar fading memory coefficient.

sfepy.homogenization.convolutions.eval_exponential(coefs, x)[source]
sfepy.homogenization.convolutions.fit_exponential(x, y, return_coefs=False)[source]

Evaluate y = f(x) after approximating f by an exponential.