matscipy.calculators.manybody.potentials

Manybody potential definitions.

Functions

angle_distance_defined(cls)

Decorate class to help potential definition from distance.

distance_defined(cls)

Decorate class to help potential definition from distance.

Classes

BornMayerCut([A, C, D, sigma, rho, cutoff])

Implementation of the Born-Mayer potential.

HarmonicAngle([k0, theta0])

Implementation of a harmonic angle interaction.

HarmonicPair([K, r0])

Implementation of a harmonic pair interaction.

KumagaiAngle(parameters)

Implementation of Theta for the Kumagai potential

KumagaiPair(parameters)

Implementation of Phi for the Kumagai potential

LennardJones([epsilon, sigma, cutoff])

Implementation of LennardJones potential.

StillingerWeberAngle(parameters)

Implementation of the Stillinger-Weber Potential

StillingerWeberPair(parameters[, cutoff])

Implementation of the Stillinger-Weber Potential

SymPhi(energy_expression, symbols)

Pair potential from Sympy symbolic expression.

SymTheta(energy_expression, symbols)

Three-body potential from Sympy symbolic expression.

TersoffBrennerAngle(parameters)

Implementation of Theta for Tersoff-Brenner potentials

TersoffBrennerPair(parameters)

Implementation of Phi for Tersoff-Brenner potentials

ZeroAngle()

Implementation of a zero three-body interaction.

ZeroPair()

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ⱼₖ²)].