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()
orp()
andbeta_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()
orv()
andbeta_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()
ork_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()
orv_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()
orp_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