gsd.hoomd module¶
Read and write HOOMD schema GSD files.
gsd.hoomd reads and writes GSD files with the hoomd schema.
HOOMDTrajectory- Read and write hoomd schema GSD files.Frame- Store the state of a single frame.ConfigurationData- Store configuration data in a frame.ParticleData- Store particle data in a frame.BondData- Store topology data in a frame.
open- Open a hoomd schema GSD file.read_log- Read log from a hoomd schema GSD file into a dict of time-series arrays.
See also
See HOOMD examples for full examples.
- class gsd.hoomd.BondData(M)¶
Bases:
objectStore bond data chunks.
Use the
Frame.bonds,Frame.angles,Frame.dihedrals,Frame.impropers, andFrame.pairsattributes to access the bond topology.Instances resulting from file read operations will always store array quantities in
numpy.ndarrayobjects of the defined types. User created frames may provide input data that can be converted to anumpy.ndarray.See also
hoomd.Statefor a full description of how HOOMD interprets this data.Note
M varies depending on the type of bond.
BondDatarepresents all types of topology connections.Type
M
Bond
2
Angle
3
Dihedral
4
Improper
4
Pair
2
- N¶
Number of bonds/angles/dihedrals/impropers/pairs in the frame (
bonds/N,angles/N,dihedrals/N,impropers/N,pairs/N).- Type:
- types¶
Names of the particle types (
bonds/types,angles/types,dihedrals/types,impropers/types,pairs/types).
- typeid¶
Bond type id (
bonds/typeid,angles/typeid,dihedrals/typeid,impropers/typeid,pairs/types).- Type:
(N,)
numpy.ndarrayofnumpy.uint32
- group¶
Tags of the particles in the bond (
bonds/group,angles/group,dihedrals/group,impropers/group,pairs/group).- Type:
(N, M)
numpy.ndarrayofnumpy.uint32
- validate()¶
Validate all attributes.
Convert every array attribute to a
numpy.ndarrayof the proper type and check that all attributes have the correct dimensions.Ignore any attributes that are
None.Warning
Array attributes that are not contiguous numpy arrays will be replaced with contiguous numpy arrays of the appropriate type.
- class gsd.hoomd.ConfigurationData¶
Bases:
objectStore configuration data.
Use the
Frame.configurationattribute of a to access the configuration.- step¶
Time step of this frame (
configuration/step).- Type:
- dimensions¶
Number of dimensions (
configuration/dimensions). When not set explicitly, dimensions will default to different values based on the value of \(L_z\) inbox. When \(L_z = 0\) dimensions will default to 2, otherwise 3. User set values always take precedence.- Type:
- property box¶
Box dimensions.
[lx, ly, lz, xy, xz, yz]. See
configuration/box.- Type:
((6, 1)
numpy.ndarrayofnumpy.float32)
- validate()¶
Validate all attributes.
Convert every array attribute to a
numpy.ndarrayof the proper type and check that all attributes have the correct dimensions.Ignore any attributes that are
None.Warning
Array attributes that are not contiguous numpy arrays will be replaced with contiguous numpy arrays of the appropriate type.
- class gsd.hoomd.ConstraintData¶
Bases:
objectStore constraint data.
Use the
Frame.constraintsattribute to access the constraints.Instances resulting from file read operations will always store array quantities in
numpy.ndarrayobjects of the defined types. User created frames may provide input data that can be converted to anumpy.ndarray.See also
hoomd.Statefor a full description of how HOOMD interprets this data.- N¶
Number of constraints in the frame (
constraints/N).- Type:
- value¶
Constraint length (
constraints/value).- Type:
(N, )
numpy.ndarrayofnumpy.float32
- group¶
Tags of the particles in the constraint (
constraints/group).- Type:
(N, 2)
numpy.ndarrayofnumpy.uint32
- validate()¶
Validate all attributes.
Convert every array attribute to a
numpy.ndarrayof the proper type and check that all attributes have the correct dimensions.Ignore any attributes that are
None.Warning
Array attributes that are not contiguous numpy arrays will be replaced with contiguous numpy arrays of the appropriate type.
- class gsd.hoomd.Frame¶
Bases:
objectSystem state at one point in time.
- configuration¶
Configuration data.
- Type:
- particles¶
Particles.
- Type:
- constraints¶
Distance constraints.
- Type:
- log¶
Logged data (values must be
numpy.ndarrayorarray_like)- Type:
- validate()¶
Validate all contained frame data.
- class gsd.hoomd.HOOMDTrajectory(file)¶
Bases:
objectRead and write hoomd gsd files.
- Parameters:
file (
gsd.fl.GSDFile) – File to access.
Open hoomd GSD files with
open.- __enter__()¶
Enter the context manager.
- __exit__(exc_type, exc_value, traceback)¶
Close the file when the context manager exits.
- __getitem__(key)¶
Index trajectory frames.
The index can be a positive integer, negative integer, or slice and is interpreted the same as
listindexing.Warning
As you loop over frames, each frame is read from the file when it is reached in the iteration. Multiple passes may lead to multiple disk reads if the file does not fit in cache.
- __iter__()¶
Iterate over frames in the trajectory.
- __len__()¶
The number of frames in the trajectory.
- append(frame)¶
Append a frame to a hoomd gsd file.
- Parameters:
frame (
Frame) – Frame to append.
Write the given frame to the file at the current frame and increase the frame counter. Do not write any fields that are
None. For all non-Nonefields, scan them and see if they match the initial frame or the default value. If the given data differs, write it out to the frame. If it is the same, do not write it out as it can be instantiated either from the value at the initial frame or the default value.
- close()¶
Close the file.
- extend(iterable)¶
Append each item of the iterable to the file.
- Parameters:
iterable – An iterable object that provides
Frameinstances. This could be another HOOMDTrajectory, a generator that modifies frames, or a list of frames.
- property file¶
The file handle.
- Type:
- flush()¶
Flush all buffered frames to the file.
- truncate()¶
Remove all frames from the file.
- class gsd.hoomd.ParticleData¶
Bases:
objectStore particle data chunks.
Use the
Frame.particlesattribute of a to access the particles.Instances resulting from file read operations will always store array quantities in
numpy.ndarrayobjects of the defined types. User created frames may provide input data that can be converted to anumpy.ndarray.See also
hoomd.Statefor a full description of how HOOMD interprets this data.- N¶
Number of particles in the frame (
particles/N).- Type:
- types¶
Names of the particle types (
particles/types).
- position¶
Particle position (
particles/position).- Type:
(N, 3)
numpy.ndarrayofnumpy.float32
- orientation¶
Particle orientation. (
particles/orientation).- Type:
(N, 4)
numpy.ndarrayofnumpy.float32
- typeid¶
Particle type id (
particles/typeid).- Type:
(N, )
numpy.ndarrayofnumpy.uint32
- mass¶
Particle mass (
particles/mass).- Type:
(N, )
numpy.ndarrayofnumpy.float32
- charge¶
Particle charge (
particles/charge).- Type:
(N, )
numpy.ndarrayofnumpy.float32
- diameter¶
Particle diameter (
particles/diameter).- Type:
(N, )
numpy.ndarrayofnumpy.float32
- body¶
Particle body (
particles/body).- Type:
(N, )
numpy.ndarrayofnumpy.int32
- moment_inertia¶
Particle moment of inertia (
particles/moment_inertia).- Type:
(N, 3)
numpy.ndarrayofnumpy.float32
- velocity¶
Particle velocity (
particles/velocity).- Type:
(N, 3)
numpy.ndarrayofnumpy.float32
- angmom¶
Particle angular momentum (
particles/angmom).- Type:
(N, 4)
numpy.ndarrayofnumpy.float32
- image¶
Particle image (
particles/image).- Type:
(N, 3)
numpy.ndarrayofnumpy.int32
- type_shapes¶
Shape specifications for visualizing particle types (
particles/type_shapes).
- validate()¶
Validate all attributes.
Convert every array attribute to a
numpy.ndarrayof the proper type and check that all attributes have the correct dimensions.Ignore any attributes that are
None.Warning
Array attributes that are not contiguous numpy arrays will be replaced with contiguous numpy arrays of the appropriate type.
- gsd.hoomd.open(name, mode='r')¶
Open a hoomd schema GSD file.
The return value of
opencan be used as a context manager.- Parameters:
- Returns:
HOOMDTrajectoryinstance that accesses the file name with the given mode.
Valid values for
mode:mode
description
'r'Open an existing file for reading.
'r+'Open an existing file for reading and writing.
'w'Open a file for reading and writing. Creates the file if needed, or overwrites an existing file.
'x'Create a gsd file exclusively and opens it for reading and writing. Raise
FileExistsErrorif it already exists.'a'Open a file for reading and writing. Creates the file if it doesn’t exist.
- gsd.hoomd.read_log(name: str, scalar_only=False, glob_pattern='*')¶
Read log from a hoomd schema GSD file into a dict of time-series arrays.
- Parameters:
The log data includes
configuration/stepand all matchinglog/user_defined,log/bonds/user_defined, andlog/particles/user_definedquantities in the file that match the providedglob_pattern.- Returns:
Note
read_logissues aRuntimeWarningwhen there are no matchinglog/quantities in the file.Caution
read_logrequires that a logged quantity has the same shape in all frames. UseopenandFrame.logto read files where the shape changes from frame to frame.To create a pandas
DataFramewith the logged data:In [1]: import pandas In [2]: df = pandas.DataFrame(gsd.hoomd.read_log('log-example.gsd', ...: scalar_only=True)) ...: In [3]: df Out[3]: configuration/step log/value/potential_energy 0 0 1.5 1 100 2.5 2 200 3.5 3 300 4.5 4 400 5.5 5 500 6.5 6 600 7.5 7 700 8.5 8 800 9.5 9 900 10.5