statmechcrack.core

The core module for the crack model.

This module consist of the class Crack which, upon instantiation, becomes a crack model instance with methods for calculating quantities in either thermodynamic ensemble. These thermodynamic quantities are calculated using an asymptotic approach [1], [2], [3] or a Monte Carlo approach (see CrackMonteCarlo). Basic mathematical capabilities are provided by numpy [4] and scipy [5], and matplotlib [6] is often used for displaying results.

class Crack(**kwargs)[source]

Bases: CrackIsotensional

The crack model class.

beta_A(v, ensemble='isometric', approach='asymptotic', absolute=False, **kwargs)[source]

The nondimensional Helmholtz free energy as a function of the nondimensional end separation.

Parameters:
  • v (array_like) – The nondimensional end separation.

  • ensemble (str, optional, default='isometric') – The thermodynamic ensemble. The isotensional ensemble uses the Legendre transformation method.

  • approach (str, optional, default='asymptotic') – The calculation approach.

  • absolute (bool, optional, default=False) – Whether not to use the absolute free energy.

  • **kwargs – Arbitrary keyword arguments. Passed to beta_A_isometric() or p() and beta_G_isotensional().

Returns:

The nondimensional Helmholtz free energy.

Return type:

numpy.ndarray

beta_A_0(v, lambda_, ensemble='isometric', absolute=False)[source]

The nondimensional Helmholtz free energy as a function of the nondimensional end separation for the reference system.

Parameters:
  • v (array_like) – The nondimensional end separation.

  • lambda (array_like) – The intact bond stretches.

  • ensemble (str, optional, default='isometric') – The thermodynamic ensemble. The isotensional ensemble uses the Legendre transformation method.

  • absolute (bool, optional, default=False) – Whether not to use the absolute free energy.

Returns:

The nondimensional Helmholtz free energy.

Return type:

numpy.ndarray

beta_A_b(v, lambda_, ensemble='isometric', absolute=False)[source]

The nondimensional Helmholtz free energy as a function of the nondimensional end separation for the isolated bending system.

Parameters:
  • v (array_like) – The nondimensional end separation.

  • lambda (array_like) – The intact bond stretches.

  • ensemble (str, optional, default='isometric') – The thermodynamic ensemble. The isotensional ensemble uses the Legendre transformation method.

  • absolute (bool, optional, default=False) – Whether not to use the absolute free energy.

Returns:

The nondimensional Helmholtz free energy.

Return type:

numpy.ndarray

beta_G(p, ensemble='isotensional', approach='asymptotic', absolute=False, **kwargs)[source]

The nondimensional Gibbs free energy as a function of the nondimensional end force.

Parameters:
  • p (array_like) – The nondimensional end force.

  • ensemble (str, optional, default='isotensional') – The thermodynamic ensemble. The isometric ensemble uses the Legendre transformation method.

  • approach (str, optional, default='asymptotic') – The calculation approach.

  • absolute (bool, optional, default=False) – Whether not to use the absolute free energy.

  • **kwargs – Arbitrary keyword arguments. Passed to beta_G_isotensional() or v() and beta_A_isometric().

Returns:

The nondimensional Gibbs free energy.

Return type:

numpy.ndarray

beta_G_0(p, lambda_, ensemble='isotensional', absolute=False)[source]

The nondimensional Gibbs free energy as a function of the nondimensional end force for the reference system.

Parameters:
  • p (array_like) – The nondimensional end force.

  • lambda (array_like) – The intact bond stretches.

  • ensemble (str, optional, default='isotensional') – The thermodynamic ensemble. The isometric ensemble uses the Legendre transformation method.

  • absolute (bool, optional, default=False) – Whether not to use the absolute free energy.

Returns:

The nondimensional Gibbs free energy.

Return type:

numpy.ndarray

beta_G_b(p, lambda_, ensemble='isotensional', absolute=False)[source]

The nondimensional Gibbs free energy as a function of the nondimensional end force for the isolated bending system.

Parameters:
  • p (array_like) – The nondimensional end force.

  • lambda (array_like) – The intact bond stretches.

  • ensemble (str, optional, default='isotensional') – The thermodynamic ensemble. The isometric ensemble uses the Legendre transformation method.

  • absolute (bool, optional, default=False) – Whether not to use the absolute free energy.

Returns:

The nondimensional Gibbs free energy.

Return type:

numpy.ndarray

k(p_or_v, ensemble='isometric', approach='asymptotic', **kwargs)[source]

The nondimensional forward reaction rate coefficient as a function of the nondimensional end force or the nondimensional end separation.

Parameters:
  • p_or_v (array_like) – The nondimensional end force or position. Assumed to be the end separation for the isometric ensemble and the end force for the isotensional ensemble.

  • ensemble (str, optional, default='isotensional') – The thermodynamic ensemble.

  • approach (str, optional, default='asymptotic') – The calculation approach.

  • **kwargs – Arbitrary keyword arguments. Passed to k_isometric() or k_isotensional().

Returns:

The nondimensional forward reaction rate.

Return type:

numpy.ndarray

k_0(p_or_v, lambda_, ensemble='isometric')[source]

The nondimensional forward reaction rate coefficient as a function of the nondimensional end force or the nondimensional end separation for the reference system.

Parameters:
  • p_or_v (array_like) – The nondimensional end force or position. Assumed to be the end separation for the isometric ensemble and the end force for the isotensional ensemble.

  • lambda (array_like) – The intact bond stretches.

  • ensemble (str, optional, default='isotensional') – The thermodynamic ensemble.

Returns:

The nondimensional forward reaction rate.

Return type:

numpy.ndarray

k_b(p_or_v, lambda_, ensemble='isometric')[source]

The nondimensional forward reaction rate coefficient as a function of the nondimensional end force or the nondimensional end separation for the isolated bending system.

Parameters:
  • p_or_v (array_like) – The nondimensional end force or position. Assumed to be the end separation for the isometric ensemble and the end force for the isotensional ensemble.

  • lambda (array_like) – The intact bond stretches.

  • ensemble (str, optional, default='isotensional') – The thermodynamic ensemble.

Returns:

The nondimensional forward reaction rate.

Return type:

numpy.ndarray

k_net(p_or_v, ensemble='isometric')[source]

The nondimensional net reaction rate coefficient as a function of the nondimensional end force or the nondimensional end separation.

Parameters:
  • p_or_v (array_like) – The nondimensional end force or position. Assumed to be the end separation for the isometric ensemble and the end force for the isotensional ensemble.

  • ensemble (str, optional, default='isotensional') – The thermodynamic ensemble.

Returns:

The nondimensional net reaction rate.

Return type:

numpy.ndarray

Note

Only the asymptotic approach is currently available.

p(v, ensemble='isometric', approach='asymptotic', **kwargs)[source]

The nondimensional end force as a function of the nondimensional end separation.

Parameters:
  • v (array_like) – The nondimensional end separation.

  • ensemble (str, optional, default='isotensional') – The thermodynamic ensemble.

  • approach (str, optional, default='asymptotic') – The calculation approach.

  • **kwargs – Arbitrary keyword arguments. Passed to p_isometric() or v_isotensional().

Returns:

The nondimensional end force.

Return type:

numpy.ndarray

p_0(v, lambda_, ensemble='isometric')[source]

The nondimensional end force as a function of the nondimensional end separation for the reference system.

Parameters:
  • v (array_like) – The nondimensional end separation.

  • lambda (array_like) – The intact bond stretches.

  • ensemble (str, optional, default='isometric') – The thermodynamic ensemble.

Returns:

The nondimensional end force.

Return type:

numpy.ndarray

p_b(v, lambda_, ensemble='isometric')[source]

The nondimensional end force as a function of the nondimensional end separation for the isolated bending system.

Parameters:
  • v (array_like) – The nondimensional end separation.

  • lambda (array_like) – The intact bond stretches.

  • ensemble (str, optional, default='isometric') – The thermodynamic ensemble.

Returns:

The nondimensional end force.

Return type:

numpy.ndarray

v(p, ensemble='isotensional', approach='asymptotic', **kwargs)[source]

The nondimensional end separation as a function of the nondimensional end force.

Parameters:
  • p (array_like) – The nondimensional end force.

  • ensemble (str, optional, default='isotensional') – The thermodynamic ensemble.

  • approach (str, optional, default='asymptotic') – The calculation approach.

  • **kwargs – Arbitrary keyword arguments. Passed to v_isotensional() or p_isometric().

Returns:

The nondimensional end separation.

Return type:

numpy.ndarray

v_0(p, lambda_, ensemble='isotensional')[source]

The nondimensional end separation as a function of the nondimensional end force for the reference system.

Parameters:
  • p (array_like) – The nondimensional end force.

  • lambda (array_like) – The intact bond stretches.

  • ensemble (str, optional, default='isotensional') – The thermodynamic ensemble.

Returns:

The nondimensional end separation.

Return type:

numpy.ndarray

v_b(p, lambda_, ensemble='isotensional')[source]

The nondimensional end separation as a function of the nondimensional end force for the isolated bending system.

Parameters:
  • p (array_like) – The nondimensional end force.

  • lambda (array_like) – The intact bond stretches.

  • ensemble (str, optional, default='isotensional') – The thermodynamic ensemble.

Returns:

The nondimensional end separation.

Return type:

numpy.ndarray


References