Segmentation faults with RDF example

Issue #87 invalid
Carl Simon Adorf created an issue

The following (not really minimal, sry) example produces a segmentation fault:

# coding: utf-8

# In[1]:

import signac
import glotzformats
import freud
import io

import numpy as np


# In[2]:

index = signac.db.get_database('glotzer').master_index


# In[ ]:

posfiles = list(signac.contrib.fetch(index.find_one({'format': {'$regex': 'PosTrajectoryFile'}})))
posfile = io.StringIO(posfiles[0].read())
traj = glotzformats.reader.PosFileReader().read(posfile)
print(traj)


# In[ ]:

def calc_rdf(traj, r_max=None, delta_r=0.1):
    from freud import density
    if r_max is None:
        r_max = 5.0
    rdf = density.RDF(r_max, delta_r)
    total_rdf = None
    for frame in traj:
        box = freud.trajectory.Box(frame.box.Lx, frame.box.Ly, frame.box.Lz)
        pos = np.asarray(frame.positions, np.float32)
        rdf.compute(box, pos, pos)
        if total_rdf is None:
            total_rdf = rdf.getRDF()
        else:
            total_rdf += rdf.getRDF()
    return None
    return rdf.getR(), total_rdf / len(traj)

rdf = calc_rdf(traj)
$ conda list | grep glotzer
boost                     1.59.0           glotzer_py34_5    glotzer
freud                     0.3.2                    py34_0    file:///nfs/glotzer/software/conda-private/linux-64/freud-0.3.2-py34_0.tar.bz2
glotzformats              0.1.5                    py34_0    file:///nfs/glotzer/software/conda-private/linux-64/glotzformats-0.1.5-py34_0.tar.bz2
pymongo                   3.1.1                    py34_0    file:///nfs/glotzer/software/conda-private/linux-64/pymongo-3.1.1-py34_0.tar.bz2
signac                    0.2.4                    py34_0    file:///nfs/glotzer/software/conda-private/linux-64/signac-0.2.4-py34_0.tar.bz2
tbb                       4.4.0                         1    glotzer

Also encountered in combination with: glotzformats=0.1.4 and freud=0.3.0.

Comments (1)

  1. Log in to comment