Esempio n. 1
0
    def __init__(self,
                 nodeList,
                 nodeIndices,
                 sampleMethod,
                 filename,
                 header=None,
                 labels=None):
        self.restart = Spheral.RestartableObject(self)
        self.nodeList = nodeList
        self.sampleMethod = sampleMethod
        self.filename = filename
        self.cycleHistory = []
        self.timeHistory = []
        self.sampleHistory = []

        # Figure out the dimensionality.
        FieldConstructor = None
        if isinstance(nodeList, Spheral.NodeList1d):
            FieldConstructor = Spheral.IntField1d
        elif isinstance(nodeList, Spheral.NodeList2d):
            FieldConstructor = Spheral.IntField2d
        elif isinstance(nodeList, Spheral.NodeList3d):
            FieldConstructor = Spheral.IntField3d
        assert FieldConstructor is not None

        # Store the set of nodes we're going to sample as a field of flags.
        # This should automatically be safe as NodeLists/Fields get renumbered,
        # redistributed, deleted, added, or what have you.
        self.nodeFlags = FieldConstructor("flag nodes", nodeList, 0)
        if nodeIndices is None:
            nodeIndices = range(nodeList.numInternalNodes)
        self.nodeIndices = nodeIndices
        if isinstance(nodeIndices, list):
            for i in nodeIndices:
                assert i >= 0 and i < nodeList.numInternalNodes
                self.nodeFlags[i] = 1
        else:
            self.currentNodeIndices()

        # Open the history file.
        self.file = None
        if mpi.rank == 0:
            self.file = open(self.filename, "w")
            assert self.file is not None

            # Write the optional header string.
            if header:
                self.file.write(header + "\n")

            # Write the optional label line
            if labels:
                self.file.write(
                    ("# " + ((len(labels) + 2) * '"%20s" ') + "\n") %
                    (("cycle", "time") + labels))

        return
Esempio n. 2
0
    def __init__(
        self,
        geometry,
        position,
        samplefunc,
        W,
        db,
        filename,
        header=None,
        labels=None,
        initializefunc=None,
    ):
        self.restart = Spheral.RestartableObject(self)

        # Set up our internal data.
        self.geometry = geometry
        self.position = position
        self.samplefunc = samplefunc
        self.initializefunc = initializefunc
        self.W = W
        self.db = db
        self.filename = filename
        self.cycleHistory = []
        self.timeHistory = []
        self.sampleHistory = []

        # Open the history file.
        self.file = None
        if mpi.rank == 0:
            if os.path.exists(self.filename):
                os.remove(self.filename)
            self.file = open(self.filename, "w")
            assert self.file is not None

            # Write the optional header string.
            if header:
                self.file.write(header + "\n")

            # Write the optional label line
            if labels:
                self.file.write(
                    ("# " + ((len(labels) + 2) * '"%20s" ') + "\n") %
                    (("cycle", "time") + labels))

        return
    def __init__(self, nodeList):
        self.restart = Spheral.RestartableObject(self)
        self.nodeList = nodeList
        self.cycleHistory = []
        self.timeHistory = []
        self.LzHistory = []

        # Figure out the dimensionality.
        FieldConstructor = None
        if isinstance(nodeList, Spheral.NodeList1d):
            FieldConstructor = Spheral.ScalarField1d
        elif isinstance(nodeList, Spheral.NodeList2d):
            FieldConstructor = Spheral.ScalarField2d
        elif isinstance(nodeList, Spheral.NodeList3d):
            FieldConstructor = Spheral.ScalarField3d
        assert FieldConstructor is not None

        return