# sfepy.homogenization.convolutions module

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

  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)

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

  get_exp()

    Get the exponential synchronous decay kernel approximation.

  get_full()

    Get the original (full) kernel.

  int_dt(use_exp=False)

    The integral of the kernel in time.

sfepy.homogenization.convolutions.approximate_exponential(x, y)

  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)

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

sfepy.homogenization.convolutions.eval_exponential(coefs, x)

sfepy.homogenization.convolutions.fit_exponential(x, y, return_coefs=False)

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