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
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