constraints
Pair-distance constraints for molecular dynamics.
import mlx_atomistic.constraints
Classes
Section titled “Classes”CompositeConstraints
Section titled “CompositeConstraints”class CompositeConstraints def __init__(constraints: tuple[object, ...])Apply multiple constraint objects through the standard constraint protocol.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
constraints | tuple[object, ...] |
Methods
apply_positions
Section titled “apply_positions”def apply_positions(positions, masses, cell: Cell | None = None) -> tuple[mx.array, mx.array]Apply child position constraints in sequence.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
positions | |||
masses | |||
cell | Cell | None | None |
Returns
tuple[mx.array, mx.array]
apply_velocities
Section titled “apply_velocities”def apply_velocities(positions, velocities, masses, cell: Cell | None = None) -> mx.arrayApply child velocity constraints in sequence.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
positions | |||
velocities | |||
masses | |||
cell | Cell | None | None |
Returns
mx.array
max_error
Section titled “max_error”def max_error(positions, cell: Cell | None = None) -> mx.arrayReturn the maximum absolute error across child constraints.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
positions | |||
cell | Cell | None | None |
Returns
mx.array
DistanceConstraints
Section titled “DistanceConstraints”class DistanceConstraints def __init__(pairs: object, distances: object, tolerance: float = 1e-05, max_iterations: int = 20)Fixed pair-distance constraints.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
pairs | object | ||
distances | object | ||
tolerance | float | 1e-05 | |
max_iterations | int | 20 |
Methods
apply_positions
Section titled “apply_positions”def apply_positions(positions, masses, cell: Cell | None = None) -> tuple[mx.array, mx.array]Project positions onto the configured pair distances.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
positions | |||
masses | |||
cell | Cell | None | None |
Returns
tuple[mx.array, mx.array]
apply_velocities
Section titled “apply_velocities”def apply_velocities(positions, velocities, masses, cell: Cell | None = None) -> mx.arrayRemove constrained relative velocity components.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
positions | |||
velocities | |||
masses | |||
cell | Cell | None | None |
Returns
mx.array
max_error
Section titled “max_error”def max_error(positions, cell: Cell | None = None) -> mx.arrayReturn the maximum absolute distance error.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
positions | |||
cell | Cell | None | None |
Returns
mx.array
SettleWaterConstraints
Section titled “SettleWaterConstraints”class SettleWaterConstraints def __init__(waters: object, oh_distance: float = 1.0, hh_distance: float = 1.6329932, tolerance: float = 1e-05, max_velocity_iterations: int = 200)Analytical rigid-water constraints for (oxygen, hydrogen, hydrogen) triplets.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
waters | object | ||
oh_distance | float | 1.0 | |
hh_distance | float | 1.6329932 | |
tolerance | float | 1e-05 | |
max_velocity_iterations | int | 200 |
Methods
apply_positions
Section titled “apply_positions”def apply_positions(positions, masses, cell: Cell | None = None) -> tuple[mx.array, mx.array]Project water triplets onto the configured rigid geometry.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
positions | |||
masses | |||
cell | Cell | None | None |
Returns
tuple[mx.array, mx.array]
apply_velocities
Section titled “apply_velocities”def apply_velocities(positions, velocities, masses, cell: Cell | None = None) -> mx.arrayRemove constrained relative velocity components for SETTLE pairs.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
positions | |||
velocities | |||
masses | |||
cell | Cell | None | None |
Returns
mx.array
max_error
Section titled “max_error”def max_error(positions, cell: Cell | None = None) -> mx.arrayReturn the maximum absolute SETTLE distance error.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
positions | |||
cell | Cell | None | None |
Returns
mx.array