def writeXMLDescriptionFile(self,_fileName=""): from os.path import join """ This function will write XML description of the stored fields. It has to be called after initialization of theCMLFieldHandler is completed """ import CompuCellSetup latticeTypeStr = CompuCellSetup.ExtractLatticeType() if latticeTypeStr=="": latticeTypeStr = "Square" typeIdTypeNameDict = CompuCellSetup.ExtractTypeNamesAndIds() print "typeIdTypeNameDict",typeIdTypeNameDict from XMLUtils import ElementCC3D dim = self.sim.getPotts().getCellFieldG().getDim() numberOfSteps = self.sim.getNumSteps() latticeDataXMLElement=ElementCC3D("CompuCell3DLatticeData",{"Version":"1.0"}) latticeDataXMLElement.ElementCC3D("Dimensions",{"x":str(dim.x),"y":str(dim.y),"z":str(dim.z)}) latticeDataXMLElement.ElementCC3D("Lattice",{"Type":latticeTypeStr}) latticeDataXMLElement.ElementCC3D("Output",{"Frequency":str(self.outputFrequency),"NumberOfSteps":str(numberOfSteps),"CoreFileName":self.outputFileCoreName,"Directory":self.outputDirName}) #output information about cell type names and cell ids. It is necessary during generation of the PIF files from VTK output for typeId in typeIdTypeNameDict.keys(): latticeDataXMLElement.ElementCC3D("CellType",{"TypeName":str(typeIdTypeNameDict[typeId]),"TypeId":str(typeId)}) fieldsXMLElement=latticeDataXMLElement.ElementCC3D("Fields") for fieldName in self.fieldTypes.keys(): fieldsXMLElement.ElementCC3D("Field",{"Name":fieldName,"Type":self.fieldTypes[fieldName]}) # writing XML description to the disk if _fileName!="": latticeDataXMLElement.CC3DXMLElement.saveXML(str(_fileName)) else: latticeDataFileName = join(self.outputDirName,self.outputFileCoreName+"LDF.dml") latticeDataXMLElement.CC3DXMLElement.saveXML(str(latticeDataFileName))
def init_lattice_type(self): """ Initializes lattice type and lattice type enum :return: None """ self.lattice_type_str = CompuCellSetup.ExtractLatticeType() if self.lattice_type_str in Configuration.LATTICE_TYPES.keys(): self.lattice_type = Configuration.LATTICE_TYPES[ self.lattice_type_str] else: # default choice self.lattice_type = Configuration.LATTICE_TYPES["Square"]