kups.potential.classical.lennard_jones
¶
Lennard-Jones potential implementations with tail corrections.
This module provides the Lennard-Jones 12-6 potential for van der Waals interactions:
Includes variants with smooth tail corrections and analytical long-range corrections for periodic systems. Supports Lorentz-Berthelot mixing rules for multi-component systems.
lennard_jones_energy = GraphPairEnergy(lennard_jones_pair)
module-attribute
¶
Lennard-Jones graph evaluator derived from the shared pair term.
lennard_jones_pair = PairEnergy[LennardJonesParameters, IsLennardJonesParticles, Index[Label]](kernel=lennard_jones_pair_kernel, features=(lambda p: p.labels), cutoffs=(lambda p: p.cutoff))
module-attribute
¶
LJ pair term; add terms before constructing a fused evaluator.
GlobalTailCorrectedLennardJonesParameters
¶
Bases: LennardJonesParameters
Lennard-Jones parameters with analytical long-range correction.
Attributes:
| Name | Type | Description |
|---|---|---|
tail_corrected |
Array
|
Enable correction per species pair, shape |
Source code in src/kups/potential/classical/lennard_jones.py
tail_coefficients
property
¶
Two cutoff-independent coefficient matrices over species pairs.
tail_weights
property
¶
Current pair weights, shaped (2, n_systems, n_species, n_species).
from_dict(cutoff, parameters, mixing_rule, tail_correction=True)
classmethod
¶
Create tail-corrected parameters from a dict of per-species values.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
cutoff
|
float | Array
|
Cutoff radius [Angstrom]. |
required |
parameters
|
dict[str, tuple[float | None, float | None]]
|
Map from species label to |
required |
mixing_rule
|
MixingRule
|
Combining rule for cross-species interactions. |
required |
tail_correction
|
bool
|
Whether to enable tail corrections for all non-zero epsilon pairs. |
True
|
Source code in src/kups/potential/classical/lennard_jones.py
LennardJonesParameters
¶
Lennard-Jones potential parameters.
Attributes:
| Name | Type | Description |
|---|---|---|
labels |
tuple[Label, ...]
|
Species labels as |
sigma |
Array
|
Length scale parameters [Ã…], shape |
epsilon |
Array
|
Energy well depths [energy units], shape |
cutoff |
Table[SystemId, Array]
|
Cutoff radius [Ã…], shape |
Source code in src/kups/potential/classical/lennard_jones.py
from_dict(cutoff, parameters, mixing_rule)
classmethod
¶
Create parameters from a dict of per-species values.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
cutoff
|
float | Array
|
Cutoff radius [Angstrom]. |
required |
parameters
|
dict[str, tuple[float | None, float | None]]
|
Map from species label to |
required |
mixing_rule
|
MixingRule
|
Combining rule for cross-species interactions. |
required |
Source code in src/kups/potential/classical/lennard_jones.py
from_lorentz_berthelot_mixing(labels, sigma, epsilon, cutoff)
classmethod
¶
Create parameters using Lorentz-Berthelot mixing rules.
- σᵢⱼ = (σᵢ + σⱼ) / 2 (arithmetic mean)
- εᵢⱼ = √(εᵢ × εⱼ) (geometric mean)
Source code in src/kups/potential/classical/lennard_jones.py
PairTailCorrectedLennardJonesParameters
¶
Bases: LennardJonesParameters
Lennard-Jones parameters with smooth pairwise tail correction.
Attributes:
| Name | Type | Description |
|---|---|---|
truncation_radius |
Table[SystemId, Array]
|
Radius where smoothing begins [Ã…], shape |
Source code in src/kups/potential/classical/lennard_jones.py
global_lennard_jones_tail_correction_energy(inp)
¶
Compute analytical long-range tail correction energy.
Source code in src/kups/potential/classical/lennard_jones.py
global_lennard_jones_tail_correction_pressure(inp)
¶
Compute analytical long-range tail correction for pressure.
Source code in src/kups/potential/classical/lennard_jones.py
lennard_jones_pair_kernel(parameters, labels_i, labels_j, rij, r2, system)
¶
Lennard-Jones pair kernel shared by graph and fused evaluation.
Callers apply the cutoff; pair inputs broadcast to a common shape.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
parameters
|
LennardJonesParameters
|
LJ mixing tables. |
required |
labels_i
|
Index[Label]
|
Species labels of the left atoms. |
required |
labels_j
|
Index[Label]
|
Species labels of the right atoms. |
required |
rij
|
Array
|
Difference vectors (unused). |
required |
r2
|
Array
|
Squared distances. |
required |
system
|
Index[SystemId]
|
Left-side system ids (unused). |
required |
Returns:
| Type | Description |
|---|---|
Array
|
Pair energies. |
Source code in src/kups/potential/classical/lennard_jones.py
make_global_lennard_jones_tail_correction_potential(particles_view, systems_view, parameter_view, gradient_lens, hessian_lens, hessian_idx_view, patch_idx_view=None, out_cache_lens=None, *, composition=None)
¶
Create the LJ tail correction, optionally prepared for rigid bodies.
composition projects the same tail formula onto rigid-body counts once
at construction. It requires fixed parameters and cells and no derivatives.
Source code in src/kups/potential/classical/lennard_jones.py
make_global_lennard_jones_tail_correction_pressure(particles_view, systems_view, parameter_view)
¶
Create long-range pressure correction for Lennard-Jones systems.
Source code in src/kups/potential/classical/lennard_jones.py
make_lennard_jones_potential(particles_view, systems_view, neighborlist_view, parameter_view, probe, gradient_lens, hessian_lens, hessian_idx_view, patch_idx_view=None, out_cache_lens=None)
¶
Create a standard Lennard-Jones potential with sharp cutoff.
Source code in src/kups/potential/classical/lennard_jones.py
make_pair_tail_corrected_lennard_jones_potential(particles_view, systems_view, neighborlist_view, parameter_view, probe, gradient_lens, hessian_lens, hessian_idx_view, patch_idx_view=None, out_cache_lens=None)
¶
Create a Lennard-Jones potential with smooth pairwise tail correction.
Source code in src/kups/potential/classical/lennard_jones.py
pair_tail_corrected_lennard_jones_energy(inp)
¶
Compute Lennard-Jones energy with smooth pairwise tail correction.