matscipy.calculators.manybody.potentials
Manybody potential definitions.
Functions
Decorate class to help potential definition from distance. |
|
|
Decorate class to help potential definition from distance. |
Classes
|
Implementation of the Born-Mayer potential. |
|
Implementation of a harmonic angle interaction. |
|
Implementation of a harmonic pair interaction. |
|
Implementation of Theta for the Kumagai potential |
|
Implementation of Phi for the Kumagai potential |
|
Implementation of LennardJones potential. |
|
Implementation of the Stillinger-Weber Potential |
|
Implementation of the Stillinger-Weber Potential |
|
Pair potential from Sympy symbolic expression. |
|
Three-body potential from Sympy symbolic expression. |
|
Implementation of Theta for Tersoff-Brenner potentials |
|
Implementation of Phi for Tersoff-Brenner potentials |
Implementation of a zero three-body interaction. |
|
|
Implementation of zero pair interaction. |
- matscipy.calculators.manybody.potentials.distance_defined(cls)
Decorate class to help potential definition from distance.
Transforms a potential defined with the distance to one defined by the distance squared.
- matscipy.calculators.manybody.potentials.angle_distance_defined(cls)
Decorate class to help potential definition from distance.
Transforms a potential defined with the distance to one defined by the distance squared.
- class matscipy.calculators.manybody.potentials.ZeroPair
Bases:
Phi
Implementation of zero pair interaction.
Methods
__call__
(r_p, xi_p)Return ɸ(rᵢⱼ², ξᵢⱼ).
gradient
(r_p, xi_p)Return [∂₁ɸ(rᵢⱼ², ξᵢⱼ), ∂₂ɸ(rᵢⱼ², ξᵢⱼ)].
hessian
(r_p, xi_p)Return [∂₁₁ɸ(rᵢⱼ², ξᵢⱼ), ∂₂₂ɸ(rᵢⱼ², ξᵢⱼ), ∂₁₂ɸ(rᵢⱼ², ξᵢⱼ)].
- gradient(r_p, xi_p)
Return [∂₁ɸ(rᵢⱼ², ξᵢⱼ), ∂₂ɸ(rᵢⱼ², ξᵢⱼ)].
- hessian(r_p, xi_p)
Return [∂₁₁ɸ(rᵢⱼ², ξᵢⱼ), ∂₂₂ɸ(rᵢⱼ², ξᵢⱼ), ∂₁₂ɸ(rᵢⱼ², ξᵢⱼ)].
- class matscipy.calculators.manybody.potentials.ZeroAngle
Bases:
Theta
Implementation of a zero three-body interaction.
Methods
__call__
(R1, R2, R3)Return Θ(rᵢⱼ², rᵢₖ², rⱼₖ²).
gradient
(R1, R2, R3)Return [∂₁Θ(rᵢⱼ², rᵢₖ², rⱼₖ²),
hessian
(R1, R2, R3)Return [∂₁₁Θ(rᵢⱼ², rᵢₖ², rⱼₖ²),
- gradient(R1, R2, R3)
- Return [∂₁Θ(rᵢⱼ², rᵢₖ², rⱼₖ²),
∂₂Θ(rᵢⱼ², rᵢₖ², rⱼₖ²), ∂₃Θ(rᵢⱼ², rᵢₖ², rⱼₖ²)].
- hessian(R1, R2, R3)
- Return [∂₁₁Θ(rᵢⱼ², rᵢₖ², rⱼₖ²),
∂₂₂Θ(rᵢⱼ², rᵢₖ², rⱼₖ²), ∂₃₃Θ(rᵢⱼ², rᵢₖ², rⱼₖ²), ∂₂₃Θ(rᵢⱼ², rᵢₖ², rⱼₖ²), ∂₁₃Θ(rᵢⱼ², rᵢₖ², rⱼₖ²), ∂₁₂Θ(rᵢⱼ², rᵢₖ², rⱼₖ²)].
- class matscipy.calculators.manybody.potentials.HarmonicPair(K=1, r0=0)
Bases:
Phi
Implementation of a harmonic pair interaction.
Methods
__call__
(r_p, xi_p)Return ɸ(rᵢⱼ², ξᵢⱼ).
gradient
(r_p, xi_p)Return [∂₁ɸ(rᵢⱼ², ξᵢⱼ), ∂₂ɸ(rᵢⱼ², ξᵢⱼ)].
hessian
(r_p, xi_p)Return [∂₁₁ɸ(rᵢⱼ², ξᵢⱼ), ∂₂₂ɸ(rᵢⱼ², ξᵢⱼ), ∂₁₂ɸ(rᵢⱼ², ξᵢⱼ)].
- __init__(K=1, r0=0)
- gradient(r_p, xi_p)
Return [∂₁ɸ(rᵢⱼ², ξᵢⱼ), ∂₂ɸ(rᵢⱼ², ξᵢⱼ)].
- hessian(r_p, xi_p)
Return [∂₁₁ɸ(rᵢⱼ², ξᵢⱼ), ∂₂₂ɸ(rᵢⱼ², ξᵢⱼ), ∂₁₂ɸ(rᵢⱼ², ξᵢⱼ)].
- class matscipy.calculators.manybody.potentials.HarmonicAngle(k0=1, theta0=1.5707963267948966)
Bases:
Theta
Implementation of a harmonic angle interaction.
Methods
__call__
(rij, rik, rjk)Angle harmonic energy.
gradient
(rij, rik, rjk)First order derivatives of \(\Theta\) w/r to \(r_{ij}, r_{ik}, r_{jk}\)
hessian
(rij, rik, rjk)Second order derivatives of \(\Theta\) w/r to \(r_{ij}, r_{ik}, r_{jk}\)
- __init__(k0=1, theta0=1.5707963267948966)
- gradient(rij, rik, rjk)
First order derivatives of \(\Theta\) w/r to \(r_{ij}, r_{ik}, r_{jk}\)
- hessian(rij, rik, rjk)
Second order derivatives of \(\Theta\) w/r to \(r_{ij}, r_{ik}, r_{jk}\)
- class matscipy.calculators.manybody.potentials.LennardJones(epsilon=1, sigma=1, cutoff=inf)
Bases:
Phi
Implementation of LennardJones potential.
Methods
__call__
(r, xi)Return ɸ(rᵢⱼ², ξᵢⱼ).
gradient
(r, xi)Return [∂₁ɸ(rᵢⱼ², ξᵢⱼ), ∂₂ɸ(rᵢⱼ², ξᵢⱼ)].
hessian
(r, xi)Return [∂₁₁ɸ(rᵢⱼ², ξᵢⱼ), ∂₂₂ɸ(rᵢⱼ², ξᵢⱼ), ∂₁₂ɸ(rᵢⱼ², ξᵢⱼ)].
- __init__(epsilon=1, sigma=1, cutoff=inf)
- gradient(r, xi)
Return [∂₁ɸ(rᵢⱼ², ξᵢⱼ), ∂₂ɸ(rᵢⱼ², ξᵢⱼ)].
- hessian(r, xi)
Return [∂₁₁ɸ(rᵢⱼ², ξᵢⱼ), ∂₂₂ɸ(rᵢⱼ², ξᵢⱼ), ∂₁₂ɸ(rᵢⱼ², ξᵢⱼ)].
- class matscipy.calculators.manybody.potentials.BornMayerCut(A=1, C=1, D=1, sigma=1, rho=1, cutoff=inf)
Bases:
Phi
Implementation of the Born-Mayer potential. Energy is shifted to zero at the cutoff
Methods
__call__
(r, xi)Return ɸ(rᵢⱼ², ξᵢⱼ).
gradient
(r, xi)Return [∂₁ɸ(rᵢⱼ², ξᵢⱼ), ∂₂ɸ(rᵢⱼ², ξᵢⱼ)].
hessian
(r, xi)Return [∂₁₁ɸ(rᵢⱼ², ξᵢⱼ), ∂₂₂ɸ(rᵢⱼ², ξᵢⱼ), ∂₁₂ɸ(rᵢⱼ², ξᵢⱼ)].
- __init__(A=1, C=1, D=1, sigma=1, rho=1, cutoff=inf)
- gradient(r, xi)
Return [∂₁ɸ(rᵢⱼ², ξᵢⱼ), ∂₂ɸ(rᵢⱼ², ξᵢⱼ)].
- hessian(r, xi)
Return [∂₁₁ɸ(rᵢⱼ², ξᵢⱼ), ∂₂₂ɸ(rᵢⱼ², ξᵢⱼ), ∂₁₂ɸ(rᵢⱼ², ξᵢⱼ)].
- class matscipy.calculators.manybody.potentials.StillingerWeberPair(parameters, cutoff=None)
Bases:
Phi
Implementation of the Stillinger-Weber Potential
Methods
__call__
(r_p, xi_p)Return ɸ(rᵢⱼ², ξᵢⱼ).
gradient
(r_p, xi_p)Return [∂₁ɸ(rᵢⱼ², ξᵢⱼ), ∂₂ɸ(rᵢⱼ², ξᵢⱼ)].
hessian
(r_p, xi_p)Return [∂₁₁ɸ(rᵢⱼ², ξᵢⱼ), ∂₂₂ɸ(rᵢⱼ², ξᵢⱼ), ∂₁₂ɸ(rᵢⱼ², ξᵢⱼ)].
- __init__(parameters, cutoff=None)
- gradient(r_p, xi_p)
Return [∂₁ɸ(rᵢⱼ², ξᵢⱼ), ∂₂ɸ(rᵢⱼ², ξᵢⱼ)].
- hessian(r_p, xi_p)
Return [∂₁₁ɸ(rᵢⱼ², ξᵢⱼ), ∂₂₂ɸ(rᵢⱼ², ξᵢⱼ), ∂₁₂ɸ(rᵢⱼ², ξᵢⱼ)].
- class matscipy.calculators.manybody.potentials.StillingerWeberAngle(parameters)
Bases:
Theta
Implementation of the Stillinger-Weber Potential
Methods
__call__
(rij, rik, rjk)Return Θ(rᵢⱼ², rᵢₖ², rⱼₖ²).
gradient
(rij, rik, rjk)Return [∂₁Θ(rᵢⱼ², rᵢₖ², rⱼₖ²),
hessian
(rij, rik, rjk)Return [∂₁₁Θ(rᵢⱼ², rᵢₖ², rⱼₖ²),
- __init__(parameters)
- gradient(rij, rik, rjk)
- Return [∂₁Θ(rᵢⱼ², rᵢₖ², rⱼₖ²),
∂₂Θ(rᵢⱼ², rᵢₖ², rⱼₖ²), ∂₃Θ(rᵢⱼ², rᵢₖ², rⱼₖ²)].
- hessian(rij, rik, rjk)
- Return [∂₁₁Θ(rᵢⱼ², rᵢₖ², rⱼₖ²),
∂₂₂Θ(rᵢⱼ², rᵢₖ², rⱼₖ²), ∂₃₃Θ(rᵢⱼ², rᵢₖ², rⱼₖ²), ∂₂₃Θ(rᵢⱼ², rᵢₖ², rⱼₖ²), ∂₁₃Θ(rᵢⱼ², rᵢₖ², rⱼₖ²), ∂₁₂Θ(rᵢⱼ², rᵢₖ², rⱼₖ²)].
- class matscipy.calculators.manybody.potentials.KumagaiPair(parameters)
Bases:
Phi
Implementation of Phi for the Kumagai potential
Methods
__call__
(r_p, xi_p)Return ɸ(rᵢⱼ², ξᵢⱼ).
gradient
(r_p, xi_p)Return [∂₁ɸ(rᵢⱼ², ξᵢⱼ), ∂₂ɸ(rᵢⱼ², ξᵢⱼ)].
hessian
(r_p, xi_p)Return [∂₁₁ɸ(rᵢⱼ², ξᵢⱼ), ∂₂₂ɸ(rᵢⱼ², ξᵢⱼ), ∂₁₂ɸ(rᵢⱼ², ξᵢⱼ)].
- __init__(parameters)
- gradient(r_p, xi_p)
Return [∂₁ɸ(rᵢⱼ², ξᵢⱼ), ∂₂ɸ(rᵢⱼ², ξᵢⱼ)].
- hessian(r_p, xi_p)
Return [∂₁₁ɸ(rᵢⱼ², ξᵢⱼ), ∂₂₂ɸ(rᵢⱼ², ξᵢⱼ), ∂₁₂ɸ(rᵢⱼ², ξᵢⱼ)].
- class matscipy.calculators.manybody.potentials.KumagaiAngle(parameters)
Bases:
Theta
Implementation of Theta for the Kumagai potential
Methods
__call__
(rij, rik, rjk)Return Θ(rᵢⱼ², rᵢₖ², rⱼₖ²).
gradient
(rij, rik, rjk)Return [∂₁Θ(rᵢⱼ², rᵢₖ², rⱼₖ²),
hessian
(rij, rik, rjk)Return [∂₁₁Θ(rᵢⱼ², rᵢₖ², rⱼₖ²),
- __init__(parameters)
- gradient(rij, rik, rjk)
- Return [∂₁Θ(rᵢⱼ², rᵢₖ², rⱼₖ²),
∂₂Θ(rᵢⱼ², rᵢₖ², rⱼₖ²), ∂₃Θ(rᵢⱼ², rᵢₖ², rⱼₖ²)].
- hessian(rij, rik, rjk)
- Return [∂₁₁Θ(rᵢⱼ², rᵢₖ², rⱼₖ²),
∂₂₂Θ(rᵢⱼ², rᵢₖ², rⱼₖ²), ∂₃₃Θ(rᵢⱼ², rᵢₖ², rⱼₖ²), ∂₂₃Θ(rᵢⱼ², rᵢₖ², rⱼₖ²), ∂₁₃Θ(rᵢⱼ², rᵢₖ², rⱼₖ²), ∂₁₂Θ(rᵢⱼ², rᵢₖ², rⱼₖ²)].
- class matscipy.calculators.manybody.potentials.TersoffBrennerPair(parameters)
Bases:
Phi
Implementation of Phi for Tersoff-Brenner potentials
Methods
__call__
(r_p, xi_p)Return ɸ(rᵢⱼ², ξᵢⱼ).
gradient
(r_p, xi_p)Return [∂₁ɸ(rᵢⱼ², ξᵢⱼ), ∂₂ɸ(rᵢⱼ², ξᵢⱼ)].
hessian
(r_p, xi_p)Return [∂₁₁ɸ(rᵢⱼ², ξᵢⱼ), ∂₂₂ɸ(rᵢⱼ², ξᵢⱼ), ∂₁₂ɸ(rᵢⱼ², ξᵢⱼ)].
- __init__(parameters)
- gradient(r_p, xi_p)
Return [∂₁ɸ(rᵢⱼ², ξᵢⱼ), ∂₂ɸ(rᵢⱼ², ξᵢⱼ)].
- hessian(r_p, xi_p)
Return [∂₁₁ɸ(rᵢⱼ², ξᵢⱼ), ∂₂₂ɸ(rᵢⱼ², ξᵢⱼ), ∂₁₂ɸ(rᵢⱼ², ξᵢⱼ)].
- class matscipy.calculators.manybody.potentials.TersoffBrennerAngle(parameters)
Bases:
Theta
Implementation of Theta for Tersoff-Brenner potentials
Methods
__call__
(rij, rik, rjk)Return Θ(rᵢⱼ², rᵢₖ², rⱼₖ²).
gradient
(rij, rik, rjk)Return [∂₁Θ(rᵢⱼ², rᵢₖ², rⱼₖ²),
hessian
(rij, rik, rjk)Return [∂₁₁Θ(rᵢⱼ², rᵢₖ², rⱼₖ²),
- __init__(parameters)
- gradient(rij, rik, rjk)
- Return [∂₁Θ(rᵢⱼ², rᵢₖ², rⱼₖ²),
∂₂Θ(rᵢⱼ², rᵢₖ², rⱼₖ²), ∂₃Θ(rᵢⱼ², rᵢₖ², rⱼₖ²)].
- hessian(rij, rik, rjk)
- Return [∂₁₁Θ(rᵢⱼ², rᵢₖ², rⱼₖ²),
∂₂₂Θ(rᵢⱼ², rᵢₖ², rⱼₖ²), ∂₃₃Θ(rᵢⱼ², rᵢₖ², rⱼₖ²), ∂₂₃Θ(rᵢⱼ², rᵢₖ², rⱼₖ²), ∂₁₃Θ(rᵢⱼ², rᵢₖ², rⱼₖ²), ∂₁₂Θ(rᵢⱼ², rᵢₖ², rⱼₖ²)].
- class matscipy.calculators.manybody.potentials.SymPhi(energy_expression: Expr, symbols: Iterable[Symbol])
Bases:
Phi
Pair potential from Sympy symbolic expression.
Methods
__call__
(rsq_p, xi_p)Return ɸ(rᵢⱼ², ξᵢⱼ).
gradient
(rsq_p, xi_p)Return [∂₁ɸ(rᵢⱼ², ξᵢⱼ), ∂₂ɸ(rᵢⱼ², ξᵢⱼ)].
hessian
(rsq_p, xi_p)Return [∂₁₁ɸ(rᵢⱼ², ξᵢⱼ), ∂₂₂ɸ(rᵢⱼ², ξᵢⱼ), ∂₁₂ɸ(rᵢⱼ², ξᵢⱼ)].
- __init__(energy_expression: Expr, symbols: Iterable[Symbol])
- gradient(rsq_p, xi_p)
Return [∂₁ɸ(rᵢⱼ², ξᵢⱼ), ∂₂ɸ(rᵢⱼ², ξᵢⱼ)].
- hessian(rsq_p, xi_p)
Return [∂₁₁ɸ(rᵢⱼ², ξᵢⱼ), ∂₂₂ɸ(rᵢⱼ², ξᵢⱼ), ∂₁₂ɸ(rᵢⱼ², ξᵢⱼ)].
- class matscipy.calculators.manybody.potentials.SymTheta(energy_expression: Expr, symbols: Iterable[Symbol])
Bases:
Theta
Three-body potential from Sympy symbolic expression.
Methods
__call__
(R1_t, R2_t, R3_t)Return Θ(rᵢⱼ², rᵢₖ², rⱼₖ²).
gradient
(R1_t, R2_t, R3_t)Return [∂₁Θ(rᵢⱼ², rᵢₖ², rⱼₖ²),
hessian
(R1_t, R2_t, R3_t)Return [∂₁₁Θ(rᵢⱼ², rᵢₖ², rⱼₖ²),
- __init__(energy_expression: Expr, symbols: Iterable[Symbol])
- gradient(R1_t, R2_t, R3_t)
- Return [∂₁Θ(rᵢⱼ², rᵢₖ², rⱼₖ²),
∂₂Θ(rᵢⱼ², rᵢₖ², rⱼₖ²), ∂₃Θ(rᵢⱼ², rᵢₖ², rⱼₖ²)].
- hessian(R1_t, R2_t, R3_t)
- Return [∂₁₁Θ(rᵢⱼ², rᵢₖ², rⱼₖ²),
∂₂₂Θ(rᵢⱼ², rᵢₖ², rⱼₖ²), ∂₃₃Θ(rᵢⱼ², rᵢₖ², rⱼₖ²), ∂₂₃Θ(rᵢⱼ², rᵢₖ², rⱼₖ²), ∂₁₃Θ(rᵢⱼ², rᵢₖ², rⱼₖ²), ∂₁₂Θ(rᵢⱼ², rᵢₖ², rⱼₖ²)].