Narupa Frame Format

Particle Positions

Key

particle.positions

Canonical representation

Array of dimensions \((N_{\text{particles}}, 3)\), storing the x, y and z coordinates of each particle.

Dimension

length

Standard Units

nanometers

Python Representation

NumPy float array with shape (N, 3).

FrameData Representation

Float array of dimension 3N, storing the coordinates in the form \((x_0, y_0, z_0, x_1, y_1, z_1, ...)\), under the key particle.positions.

Particle Velocities

Key

particle.velocities

Canonical representation

Array of dimensions \((N_{\text{particles}}, 3)\), storing the x, y and z components of the velocity of each particle.

Dimension

length / time

Standard Units

nanometers / picoseconds

Python Representation

NumPy float array with shape (N, 3).

FrameData Representation

Float array of dimension 3N, storing the components in the form \((v_0^x, v_0^y, v_0^z, v_1^x, v_1^y, v_1^z, ...)\), under the key particle.velocities.

Particle Forces

Key

particle.forces

Canonical representation

Array of dimensions \((N_{\text{particles}}, 3)\), storing the x, y and z components of the force on each particle.

Dimension

length * mass / (time * time)

Standard Units

kilojoules / mole / picoseconds

Python Representation

NumPy float array with shape (N, 3).

FrameData Representation

Float array of dimension 3N, storing the components in the form \((F_0^x, F_0^y, F_0^z, F_1^x, F_1^y, F_1^z, ...)\), under the key particle.forces.

Particle Element (Atomic Number)

Key

particle.elements

Canonical representation

Array of dimensions \((N_{\text{particles}})\), storing the atomic number Z of each particle. A value of 0 shall be taken to indicate a particle which does not have an element.

Dimension

N/A

Standard Units

N/A

Python Representation

NumPy int array with shape (N,).

FrameData Representation

Index array of dimension N, under the key particle.elements.

Particle Residues

Key

particle.residues

Canonical representation

Array of dimensions \((N_{\text{particles}})\), storing the index of the residue this particle belongs to.

Dimension

N/A

Standard Units

N/A

Python Representation

NumPy int array with shape (N,).

FrameData Representation

Index array of dimension N, under the key particle.residues.

Particle Names

Key

particle.names

Canonical representation

Array of dimensions \((N_{\text{particles}})\), storing a string name for each particle. The name has no meaning to the protocol. It is usually defined by the force field.

Dimension

N/A

Standard Units

N/A

Python Representation

NumPy object array with shape (N,).

FrameData Representation

String array of dimension N, under the key particle.names.

Particle Types

Key

particle.types

Canonical representation

Array of dimensions \((N_{\text{particles}})\), storing a string type for each particle. The type has no meaning to the protocol. Its use is for identifying particles when they do not correspond to a specific element, for example when running coarse grained simulations.

Dimension

N/A

Standard Units

N/A

Python Representation

NumPy object array with shape (N,).

FrameData Representation

String array of dimension N, under the key particle.types.

Particle Masses

Key

particle.masses

Canonical representation

Array of dimensions \((N_{\text{particles}})\), storing the mass m of each particle.

Dimension

mass

Standard Units

dalton

Python Representation

NumPy float array with shape (N,).

FrameData Representation

Float array of dimension N, under the key particle.masses.

Calculation

Implementations may allow the value of this key to be inferred from the existence of the particle.elements key. If this is present, masses may be derived from the masses of each particle.

Particle Charges

Key

particle.charges

Canonical representation

Array of dimensions \((N_{\text{particles}})\), storing the charge q of each particle.

Dimension

charge

Standard Units

elementary charge

Python Representation

NumPy float array with shape (N,).

FrameData Representation

Float array of dimension N, under the key particle.charges.

Particle Count

Key

particle.count

Canonical representation

Integer \(N_{\text{particles}}\), denoting the number of particles.

Dimension

N/A

Standard Units

N/A

Python Representation

int

FrameData Representation

NumberValue, under the key particle.count.

Residue Names

Key

residue.names

Canonical representation

Array of dimensions \((N_{\text{residues}})\), storing a string name for each residue.

Dimension

N/A

Standard Units

N/A

Python Representation

NumPy object array with shape (N,).

FrameData Representation

String array of dimension N, under the key residue.names.

Residue IDs

Key

residue.ids

Canonical representation

Array of dimensions \((N_{\text{residues}})\), storing an id for each residue. This is often known as the seg id.

Dimension

N/A

Standard Units

N/A

Python Representation

NumPy object array with shape (N,).

FrameData Representation

String array of dimension N, under the key residue.ids.

Residue Chains

Key

residue.chains

Canonical representation

Array of length \(N_{\text{residues}}\), storing the index of the chain each residue belongs to.

Dimension

N/A

Standard Units

N/A

Python Representation

NumPy int array with shape (N,).

FrameData Representation

Index array of dimension N, under the key residue.chains.

Residue Count

Key

residue.count

Canonical representation

Integer \(N_{\text{residues}}\), denoting the number of residues.

Dimension

N/A

Standard Units

N/A

Python Representation

int

FrameData Representation

NumberValue, under the key residue.count.

Chain Names

Key

chain.names

Canonical representation

Array of dimensions \((N_{\text{chains}})\), storing a string name for each chain.

Dimension

N/A

Standard Units

N/A

Python Representation

NumPy object array with shape (N,).

FrameData Representation

String array of dimension N, under the key chain.names.

Chain Count

Key

chain.count

Canonical representation

Integer \(N_{\text{chains}}\), denoting the number of residues.

Dimension

N/A

Standard Units

N/A

Python Representation

int

FrameData Representation

NumberValue, under the key chain.count.

Bond Pairs

Key

bond.pairs

Canonical representation

Array of dimensions \((N_{\text{bonds}}, 2)\), storing the indices of the two particles involved in each bond.

Dimension

N/A

Standard Units

N/A

Python Representation

NumPy int array with shape (N, 2).

FrameData Representation

Index array of dimension 2N, storing the indices in the form \((a_0, b_0, a_1, b_1, ...)\), under the key bond.pairs.

Bond Orders

Key

bond.orders

Canonical representation

Array of length \(N_{\text{bonds}}\), storing the bond order of each bond.

Dimension

N/A

Standard Units

N/A

Python Representation

NumPy int array with shape (N,).

FrameData Representation

Index array of dimension N, under the key bond.orders.

Bond Count

Key

bond.count

Canonical representation

Integer \(N_{\text{bonds}}\), denoting the number of bonds.

Dimension

N/A

Standard Units

N/A

Python Representation

int

FrameData Representation

NumberValue, under the key bond.count.

Box Vectors

Key

box.vectors

Canonical representation

\(3\times 3\) matrix, whose columns denote the three axes of the unit scell.

Dimension

length

Standard Units

nanometer

Python Representation

NumPy float array of shape (3,3).

FrameData Representation

Float array of length 9, with components stored in the order \((a_x, a_y, a_z, b_x, b_y, b_z, c_x, c_y, c_z)\).

Potential Energy

Key

energy.potential

Canonical representation

Decimal \(PE\), denoting the total potential energy of the system.

Dimension

mass * length * length / (time * time)

Standard Units

kilojoule / mole

Python Representation

float

FrameData Representation

NumberValue, under the key energy.potential.

Kinetic Energy

Key

energy.kinetic

Canonical representation

Decimal \(KE\), denoting the total kinetic energy of the system.

Dimension

mass * length * length / (time * time)

Standard Units

kilojoule / mole

Python Representation

float

FrameData Representation

NumberValue, under the key energy.kinetic.

Calculation

Kinetic energy may be calculated if both particle.masses and particle.velocities are present. The kinetic energy is given by:

\[KE = \sum_i \frac{1}{2} m_i v_i^2\]

Simulation Elapsed Time

Key

simulation.elapsed_time

Canonical representation

Decimal \(t\), denoting the time that has passed in simulation time. This time resets when the simulation is reset.

Dimension

time

Standard Units

picosecond

Python Representation

float

FrameData Representation

NumberValue, under the key simulation.elapsed_time.

Simulation Total Time

Key

simulation.total_time

Canonical representation

Decimal \(t\), denoting the time that has passed in simulation time. This time does not reset when the simulation is reset.

Dimension

time

Standard Units

picosecond

Python Representation

float

FrameData Representation

NumberValue, under the key simulation.total_time.

Simulation Elapsed Steps

Key

simulation.elapsed_steps

Canonical representation

Integer \(n\), denoting the number of steps that has passed in the simulation. This resets when the simulation is reset.

Dimension

N/A

Standard Units

N/A

Python Representation

int

FrameData Representation

NumberValue, under the key simulation.elapsed_steps.

Simulation Total Steps

Key

simulation.total_steps

Canonical representation

Integer \(n\), denoting the number of steps that has passed in the simulation. This does not reset when the simulation is reset.

Dimension

N/A

Standard Units

N/A

Python Representation

int

FrameData Representation

NumberValue, under the key simulation.total_steps.

Derived Particle Properties

The following are fields which should not be stored to disk, but they could be computed from other fields.

Particle Momenta

Key

particle.momenta

Canonical representation

Array of dimensions \((N_{\text{particles}})\), storing the x, y and z components of the momentum \(p\) of each particle.

Dimension

mass * length / time

Standard Units

dalton * nanometer / picosecond

Calculation

Momenta may be calculated if both particle.masses and particle.velocities are present. The momenta may be calculated for each particle by:

\[p_i = m_i v_i\]

Particle Acceleration

Key

particle.accelerations

Canonical representation

Array of dimensions \((N_{\text{particles}}, 3)\), storing the x, y and z components of the acceleration \(a\) of each particle.

Dimension

length / (time * time)

Standard Units

nanometer / (picosecond * picosecond)

Calculation

Acceleration may be calculated if both particle.masses and particle.forces are present. The acceleration may be calculated for each particle by:

\[a_i = F_i / m_i\]