Circuit elements

The following elements are available. Since prefixes are possible, each element is referred to as by a special name. The elements’ parameters are called as in the original function. This is the concept of LMFIT.

Names for building the model

Name

Corresponding function

R

impedancefitter.elements.Z_R()

C

impedancefitter.elements.Z_C()

L

impedancefitter.elements.Z_L()

W

impedancefitter.elements.Z_w()

Wo

impedancefitter.elements.Z_wo()

Ws

impedancefitter.elements.Z_ws()

Cstray

impedancefitter.elements.Z_stray()

ADIbR

impedancefitter.elements.Z_ADIb_r()

ADIaR

impedancefitter.elements.Z_ADIa_r()

ADIIR

impedancefitter.elements.Z_ADII_r()

ADIbA

impedancefitter.elements.Z_ADIb_a()

ADIaA

impedancefitter.elements.Z_ADIa_a()

ADIIA

impedancefitter.elements.Z_ADII_a()

API reference

impedancefitter.elements.Z_ADII_a(omega, Rw, wd, gamma)[source]

Anomalous diffusion II with absorbing boundary.

Parameters:
  • omega (numpy.ndarray) – List of frequencies.

  • Rw (double) – Resistance

  • wd (double) – \(\omega_d\)

  • gamma (double) – \(\gamma\)

Returns:

Impedance array

Return type:

numpy.ndarray, complex

Notes

This element is described in [Bisquert2001].

impedancefitter.elements.Z_ADII_r(omega, Rw, wd, gamma)[source]

Anomalous diffusion II with reflecting boundary.

Parameters:
  • omega (numpy.ndarray) – List of frequencies.

  • Rw (double) – Resistance

  • wd (double) – \(\omega_d\)

  • gamma (double) – \(\gamma\)

Returns:

Impedance array

Return type:

numpy.ndarray, complex

Notes

This element is described in [Bisquert2001].

impedancefitter.elements.Z_ADIa_a(omega, Rw, wd, gamma)[source]

Anomalous diffusion Ia with absorbing boundary.

Parameters:
  • omega (numpy.ndarray) – List of frequencies.

  • Rw (double) – Resistance

  • wd (double) – \(\omega_d\)

  • gamma (double) – \(\gamma\)

Returns:

Impedance array

Return type:

numpy.ndarray, complex

Notes

This element is described in [Bisquert2001].

impedancefitter.elements.Z_ADIa_r(omega, Rw, wd, gamma)[source]

Anomalous diffusion Ia with reflecting boundary.

Parameters:
  • omega (numpy.ndarray) – List of frequencies.

  • Rw (double) – Resistance

  • wd (double) – \(\omega_d\)

  • gamma (double) – \(\gamma\)

Returns:

Impedance array

Return type:

numpy.ndarray, complex

Notes

This element is described in [Bisquert2001].

impedancefitter.elements.Z_ADIb_a(omega, Rw, wd, gamma)[source]

Anomalous diffusion Ib with absorbing boundary.

Parameters:
  • omega (numpy.ndarray) – List of frequencies.

  • Rw (double) – Resistance

  • wd (double) – \(\omega_d\)

  • gamma (double) – \(\gamma\)

Returns:

Impedance array

Return type:

numpy.ndarray, complex

Notes

This element is described in [Bisquert2001].

impedancefitter.elements.Z_ADIb_r(omega, Rw, wd, gamma)[source]

Anomalous diffusion Ib with reflecting boundary.

Parameters:
  • omega (numpy.ndarray) – List of frequencies.

  • Rw (double) – Resistance

  • wd (double) – \(\omega_d\)

  • gamma (double) – \(\gamma\)

Returns:

Impedance array

Return type:

numpy.ndarray, complex

Notes

This element is described in [Bisquert2001].

References

[Bisquert2001] (1,2,3,4,5,6,7,8)

Bisquert, J., and Compte, A. (2001). Theory of the electrochemical impedance of anomalous diffusion. Journal of Electroanalytical Chemistry, 499(1), 112–120. https://doi.org/10.1016/S0022-0728(00)00497-6

impedancefitter.elements.Z_C(omega, C)[source]

Capacitor impedance.

Parameters:
  • omega (numpy.ndarray) – List of frequencies.

  • C (double) – capacitance of capacitor

Returns:

Impedance array

Return type:

numpy.ndarray, complex

impedancefitter.elements.Z_CPE(omega, k, alpha)[source]

CPE impedance.

\[Z_\mathrm{CPE} = k (j \omega)^{-\alpha}\]
Parameters:
  • omega (numpy.ndarray) – List of frequencies.

  • k (double) – CPE factor

  • alpha (double) – CPE phase

Returns:

Impedance array

Return type:

numpy.ndarray, complex

impedancefitter.elements.Z_L(omega, L)[source]

Impedance of an inductor.

Parameters:
  • omega (numpy.ndarray) – List of frequencies.

  • L (double) – inductance

Returns:

Impedance array

Return type:

numpy.ndarray, complex

impedancefitter.elements.Z_R(omega, R)[source]

Create array for a resistor.

Parameters:
  • omega (numpy.ndarray) – List of frequencies.

  • R (double) – Resistance.

Returns:

Impedance array

Return type:

numpy.ndarray, complex

impedancefitter.elements.Z_stray(omega, Cs)[source]

Stray capacitance in pF.

Parameters:
  • omega (numpy.ndarray) – List of frequencies.

  • Cs (double) – Stray capacitance, for numerical reasons in pF.

Returns:

Impedance array

Return type:

numpy.ndarray, complex

impedancefitter.elements.Z_w(omega, Aw)[source]

Warburg element.

\[Z_\mathrm{W} = A_\mathrm{W} \frac{1-j}{\sqrt{\omega}}\]
Parameters:
  • omega (numpy.ndarray) – List of frequencies.

  • Aw (double) – Warburg coefficient

Returns:

Impedance array

Return type:

numpy.ndarray, complex

impedancefitter.elements.Z_wo(omega, Rw, wd)[source]

Warburg open element with reflecting boundary.

Parameters:
  • omega (numpy.ndarray) – List of frequencies.

  • Rw (double) – Warburg coefficient

  • wd (double) – \(\omega_d\)

Returns:

Impedance array

Return type:

numpy.ndarray, complex

Notes

This element is also referred to as finite-length Warburg element with reflective boundary [Barsoukov2018]. Here, the formulation from [Bisquert2001] is used

\[Z_\mathrm{W} = \frac{R_\mathrm{W} (\omega_d j \omega)^{1/2}} {\tanh\left( \sqrt{j \omega / \omega_d}\right)}\]

is implemented.

impedancefitter.elements.Z_ws(omega, Rw, wd)[source]

Warburg short element with absorbing boundary.

Parameters:
  • omega (numpy.ndarray) – List of frequencies.

  • Rw (double) – Warburg resistance

  • wd (double) – Second coefficient

Returns:

Impedance array

Return type:

numpy.ndarray, complex

Notes

This element is also referred to as finite-length Warburg element with transmissive boundary [Barsoukov2018]. Here, the formulation from [Bisquert2001] is used

\[Z_\mathrm{W} = R_\mathrm{W} \sqrt{\omega_d / (j \omega)} \tanh\left(\sqrt{j \omega / omega_d}\right)\]

is implemented.

impedancefitter.elements.eps(Z1, make_eps)[source]

Return complex permittivity for LMFIT.

Parameters:
impedancefitter.elements.log(Z1, dummy)[source]

Return logarithm of impedance for LMFIT.

Parameters:
  • Z1 (numpy.ndarray, complex) – Impedance 1 (model fit)

  • dummy (numpy.ndarray, complex) – Array full of ones, such that np.log10(dummy) is zero.

impedancefitter.elements.parallel(Z1, Z2)[source]

Return values of parallel circuit.

Parameters:
Returns:

Impedance array

Return type:

numpy.ndarray, complex