Skip to content

System Class

Overview

High-level interface for molecular dynamics system analysis

Methods

box_boundaries()

box_boundaries(self: smolsat._smolsat_core.System, frame: int) -> Annotated[list[smolsat._smolsat_core.Coordinate], FixedSize(2)]

Get box boundaries at given frame

box_size()

box_size(self: smolsat._smolsat_core.System, frame: int) -> smolsat._smolsat_core.Coordinate

Get box size at given frame

center_of_mass()

center_of_mass(self: smolsat._smolsat_core.System, frame: int, use_unwrapped: bool = True) -> smolsat._smolsat_core.Coordinate

Calculate center of mass of entire system

density()

density(self: smolsat._smolsat_core.System, frame: int = 0) -> float

Calculate system density at given frame

displacement()

displacement(self: smolsat._smolsat_core.System, coord1: smolsat._smolsat_core.Coordinate, coord2: smolsat._smolsat_core.Coordinate, frame: int = 0) -> smolsat._smolsat_core.Coordinate

Calculate displacement vector between two coordinates

distance()

distance(self: smolsat._smolsat_core.System, coord1: smolsat._smolsat_core.Coordinate, coord2: smolsat._smolsat_core.Coordinate, frame: int = 0) -> float

Calculate distance between two coordinates

gyration_tensor()

gyration_tensor(self: smolsat._smolsat_core.System, particles: list[smolsat._smolsat_core.Particle], frame: int, use_unwrapped: bool = True) -> numpy.ndarray[numpy.float64[3, 3]]

Calculate gyration tensor for particle set

has_periodic_boundaries()

has_periodic_boundaries(self: smolsat._smolsat_core.System) -> bool

Check if periodic boundaries are enabled

molecule_type_names()

molecule_type_names(self: smolsat._smolsat_core.System) -> list[str]

Get list of all molecule type names

molecules_by_type()

molecules_by_type(self: smolsat._smolsat_core.System, type_name: str) -> list[smolsat._smolsat_core.Molecule]

Get molecules by type name

num_frames()

num_frames(self: smolsat._smolsat_core.System) -> int

Get number of frames

num_molecules()

num_molecules(self: smolsat._smolsat_core.System) -> int

Get number of molecules

num_particles()

num_particles(self: smolsat._smolsat_core.System) -> int

Get number of particles

particle_type_names()

particle_type_names(self: smolsat._smolsat_core.System) -> list[str]

Get list of all particle type names

particles_by_type()

particles_by_type(*args, **kwargs) Overloaded function.

  1. particles_by_type(self: smolsat._smolsat_core.System, type: int) -> list[smolsat._smolsat_core.Particle]

Get particles by type ID

  1. particles_by_type(self: smolsat._smolsat_core.System, type_name: str) -> list[smolsat._smolsat_core.Particle]

Get particles by type name

select_molecules()

select_molecules(self: smolsat._smolsat_core.System, predicate: Callable[[smolsat._smolsat_core.Molecule], bool]) -> list[smolsat._smolsat_core.Molecule]

Select molecules using predicate function

select_particles()

select_particles(self: smolsat._smolsat_core.System, predicate: Callable[[smolsat._smolsat_core.Particle], bool]) -> list[smolsat._smolsat_core.Particle]

Select particles using predicate function

set_periodic_boundaries()

set_periodic_boundaries(self: smolsat._smolsat_core.System, enabled: bool) -> None

Enable/disable periodic boundaries

time()

time(self: smolsat._smolsat_core.System, frame: int) -> float

Get time at given frame

trajectory()

trajectory(self: smolsat._smolsat_core.System) -> smolsat._smolsat_core.Trajectory

Get underlying trajectory

Usage Example

import smolsat

# Create System instance
trajectory = smolsat.create_example_trajectory()
system = smolsat.System(trajectory, periodic_boundaries=True)