def main(path='./'): if len(sys.argv) == 2: path = sys.argv[1] interpOrders = [1, 2, 3, 4] gl = gridlayout.GridLayout() directions = gl.directions quantities = gl.hybridQuantities nbrCellXList = [40, 40, 40] nbrCellYList = [0, 12, 12] nbrCellZList = [0, 0, 12] nbDimsList = [1, 2, 3] dxList = [0.1, 0.1, 0.1] # 1D, 2D and 3D cases dyList = [0., 0.1, 0.1] dzList = [0., 0., 0.1] maxNbrDim = 3 baseName = 'gridIndexing' outFilenameBase = os.path.join(path, baseName) outFiles = [] for interpOrder in interpOrders: filenames = [ outFilenameBase + '_' + str(dim) + 'd_O' + str(interpOrder) + '.txt' for dim in nbDimsList ] outFiles.append([open(f, 'w') for f in filenames]) for interpOrder, outFilesDim in zip(interpOrders, outFiles): for dim, outFile, nbrCellX, nbrCellY, nbrCellZ, dx, dy, dz in zip( nbDimsList, outFilesDim, nbrCellXList, nbrCellYList, nbrCellZList, dxList, dyList, dzList): params = IndexingParams(dim, interpOrder) params.setNbrCell(nbrCellX, nbrCellY, nbrCellZ) params.setDl(dx, dy, dz) for quantity in quantities: params.setIndexes(quantity, gl) outString = "{} {} {} {} {} {} {}\n".format( quantities.index(quantity), params.nbrCell, params.dl, params.physicalStart, params.physicalEnd, params.ghostStart, params.ghostEnd) outFile.write(utilities.removeTupleFormat(outString)) for files in outFiles: for f in files: f.close()
def main(path='./'): if len(sys.argv) == 2: path = sys.argv[1] # TODO: refactor this for all python since they are the same interpOrders = [1, 2, 3, 4] nbDimsList = [1, 2, 3] nbrCellXList = [40, 40, 40] nbrCellYList = [0, 12, 12] nbrCellZList = [0, 0, 12] dxList = [0.01, 0.01, 0.01] dyList = [0., 0.01, 0.01] dzList = [0., 0., 0.01] originPosition = [0., 0., 0.] gl = gridlayout.GridLayout() # TODO : end Todo # TODO: FieldCoords and CenteredCoords share a common base, refactor this baseNameSummary = "fieldCoords_summary" baseNameValues = "fieldCoords_values" outFilenameBaseSummary = os.path.join(path, baseNameSummary) outFilenameBaseValues = os.path.join(path, baseNameValues) outSummaries = [] outValues = [] for interpOrder in interpOrders: filenamesSum = [ outFilenameBaseSummary + '_' + str(dim) + 'd_O' + str(interpOrder) + '.txt' for dim in nbDimsList ] filenamesVal = [ outFilenameBaseValues + '_' + str(dim) + 'd_O' + str(interpOrder) + '.txt' for dim in nbDimsList ] outSummaries.append([open(f, 'w') for f in filenamesSum]) outValues.append([open(f, 'w') for f in filenamesVal]) for interpOrder, outFilesSumDim, outFilesValDim in zip( interpOrders, outSummaries, outValues): for dimension,outFileS, outFileV,nbrCellX,nbrCellY,\ nbrCellZ,dx,dy,dz in zip(nbDimsList, outFilesSumDim, outFilesValDim, nbrCellXList,nbrCellYList, nbrCellZList,dxList,dyList, dzList): for quantity in gl.hybridQuantities: params = FieldNodeCoordParams(dimension, interpOrder) params.setNbrCell(nbrCellX, nbrCellY, nbrCellZ) params.setDl(dx, dy, dz) centering = getQtyCentering(gl, quantity, dimension) params.setCoord(gl, originPosition, centering) summaryBasePart = "{} {} {} ".format(quantity, params.nbrCell, params.dl) summaryGridLayoutPart = "{} {} {}\n".format( params.iStart, params.iEnd, params.origin) outSummaryString = summaryBasePart + summaryGridLayoutPart outSummaryString = utilities.removeTupleFormat( outSummaryString) outFileS.write(outSummaryString) if dimension == 1: for position in np.arange(params.iStart, params.iEnd + 1): outValuesString = "{} {} {}\n".format( quantity, position, fieldCoords(position, params.iStart, quantity, 'X', params.dl, params.origin)) outFileV.write( utilities.removeTupleFormat(outValuesString)) elif dimension == 2: for positionX in np.arange(params.iStart[0], params.iEnd[0] + 1): for positionY in np.arange(params.iStart[1], params.iEnd[1] + 1): position = (positionX, positionY) centered = (fieldCoords(positionX, params.iStart[0], quantity, 'X', params.dl[0], params.origin[0]), fieldCoords(positionY, params.iStart[1], quantity, 'Y', params.dl[1], params.origin[1])) outValuesString = "{} {} {}\n".format( quantity, position, centered) outFileV.write( utilities.removeTupleFormat(outValuesString)) elif dimension == 3: for positionX in np.arange(params.iStart[0], params.iEnd[0] + 1): for positionY in np.arange(params.iStart[1], params.iEnd[1] + 1): for positionZ in np.arange(params.iStart[2], params.iEnd[2] + 1): position = (positionX, positionY, positionZ) centered = (fieldCoords( positionX, params.iStart[0], quantity, 'X', params.dl[0], params.origin[0]), fieldCoords( positionY, params.iStart[1], quantity, 'Y', params.dl[1], params.origin[1]), fieldCoords( positionZ, params.iStart[2], quantity, 'Z', params.dl[2], params.origin[2])) outValuesString = "{} {} {}\n".format( quantity, position, centered) outFileV.write( utilities.removeTupleFormat( outValuesString)) for outFilesSumDim, outFilesValDim in zip(outSummaries, outValues): for f1, f2 in zip(outFilesSumDim, outFilesValDim): f1.close() f2.close()
def main(path='./'): if len(sys.argv) == 2: path = sys.argv[1] # TODO: refactor this for all python since they are the same interpOrders = [1,2,3] nbDimsList= [1]#, 2, 3] nbrCellXList=[40, 40, 40] nbrCellYList=[ 0, 12, 12] nbrCellZList=[ 0, 0, 12] dxList=[0.01, 0.01, 0.01] dyList=[0. , 0.01, 0.01] dzList=[0. , 0. , 0.01] originPosition = [0., 0., 0.] gl = gridlayout.GridLayout() # TODO : end Todo # TODO: FieldCoords and CenteredCoords share a common base, refactor this outSummary1D = open(os.path.join(path,"deriv_summary_1d.txt"), "w") outSummary2D = open(os.path.join(path,"deriv_summary_2d.txt"), "w") outSummary3D = open(os.path.join(path,"deriv_summary_3d.txt"), "w") outSummaries =[outSummary1D, outSummary2D, outSummary3D] outActualValues1D = open(os.path.join(path,"deriv_values_1d.txt"), "w") outActualValues2D = open(os.path.join(path,"deriv_values_2d.txt"), "w") outActualValues3D = open(os.path.join(path,"deriv_values_3d.txt"), "w") outActualValuesFiles = [outActualValues1D, outActualValues2D, outActualValues3D] outDerivedValues1D = open(os.path.join(path, "deriv_derived_values_1d.txt"),"w") for interpOrder in interpOrders: for dimension,outSummary, outValues,nbrCellX,nbrCellY,\ nbrCellZ,dx,dy,dz in zip(nbDimsList, outSummaries, outActualValuesFiles, nbrCellXList,nbrCellYList, nbrCellZList,dxList,dyList, dzList): # TODO : the association depend on the direction # Here we derive in the direction X quantities = ('Ex','Ey') derivedQuantities = ('rho','Bz') for quantity,derivQuantity in zip(quantities, derivedQuantities): params = DerivParams(dimension,interpOrder); params.setNbrCell(nbrCellX,nbrCellY,nbrCellZ) params.setDl(dx,dy,dz) centering = fieldNodeCoordinates.getQtyCentering(gl,quantity,dimension) derivedCentering = fieldNodeCoordinates.getQtyCentering(gl, derivQuantity, dimension) params.setCoord(gl, originPosition, centering, derivedCentering) summaryBasePart = "{} {} {} {} {} ".format( params.interpOrder, quantity, derivQuantity, params.nbrCell, params.dl) summaryGridLayoutPart = " {} {} {} {} {}\n".format( params.iGhostStart, params.iGhostEnd, params.iStart, params.iEnd, params.origin) outSummaryString = summaryBasePart + summaryGridLayoutPart outSummaryString = utilities.removeTupleFormat(outSummaryString) outSummary.write(outSummaryString) if dimension == 1: for position in np.arange(params.iGhostStart, params.iGhostEnd ): coord = fieldNodeCoordinates.fieldCoords(position, params.iStart,quantity,'X',params.dl, params.origin) functionValue = primitive(coord) outValuesString = "{} {} {} {}\n".format( params.interpOrder, quantity, position, functionValue, ) outValues.write(utilities.removeTupleFormat(outValuesString)) for position in np.arange(params.iStart, params.iEnd + 1 ): coord = fieldNodeCoordinates.fieldCoords(position, params.iStart,derivQuantity,'X',params.dl, params.origin) derivedValue = scipy.misc.derivative(primitive,coord,dx,order=3) outDerivedValuesString = "{} {} {} {}\n".format( params.interpOrder, derivQuantity, position, derivedValue ) outDerivedValues1D.write(utilities.removeTupleFormat(outDerivedValuesString)) for outSummary,outValues in zip(outSummaries, outActualValuesFiles): outSummary.close() outValues.close() outDerivedValues1D.close()
def main(path='./'): if len(sys.argv) == 2: path = sys.argv[1] interpOrders = [1, 2, 3, 4] nbDimsList = [1, 2, 3] nbrCellXList = [40, 40, 40] nbrCellYList = [0, 12, 12] nbrCellZList = [0, 0, 12] dxList = [0.1, 0.1, 0.1] dyList = [0., 0.1, 0.1] dzList = [0., 0., 0.1] originPosition = [0., 0., 0.] gl = gridlayout.GridLayout() # ------- Debug commands ------- # for icase in icase_l: # idim = dim_l[icase] # order = interpOrder_l[icase] # print( "Interpolation order = %d" % order ) # print( "Nbr of cells = %d" % nbrCells[Direction_l[idim][1]][icase]) # print( "Nbr of ghost cells on the primal mesh = %d on each side" % # gl.nbrGhostsPrimal(order) ) # ------------------------------ baseNameSummary = "centeredCoords_summary" baseNameValues = "centeredCoords_values" outFilenameBaseSummary = os.path.join(path, baseNameSummary) outFilenameBaseValues = os.path.join(path, baseNameValues) outSummaries = [] outValues = [] for interpOrder in interpOrders: filenamesSum = [ outFilenameBaseSummary + '_' + str(dim) + 'd_O' + str(interpOrder) + '.txt' for dim in nbDimsList ] filenamesVal = [ outFilenameBaseValues + '_' + str(dim) + 'd_O' + str(interpOrder) + '.txt' for dim in nbDimsList ] outSummaries.append([open(f, 'w') for f in filenamesSum]) outValues.append([open(f, 'w') for f in filenamesVal]) for interpOrder, outFilesSumDim, outFilesValDim in zip( interpOrders, outSummaries, outValues): for dimension,outFileS, outFileV,nbrCellX,nbrCellY,\ nbrCellZ,dx,dy,dz in zip(nbDimsList, outFilesSumDim, outFilesValDim, nbrCellXList,nbrCellYList, nbrCellZList,dxList,dyList, dzList): params = CenteredCoordParams(dimension, interpOrder) params.setNbrCell(nbrCellX, nbrCellY, nbrCellZ) params.setDl(dx, dy, dz) centering = getCellCentered(dimension) params.setCoord(gl, originPosition, centering) summaryBasePart = "{} {} ".format(params.nbrCell, params.dl) summaryGridLayoutPart = "{} {} {}\n".format( params.iStart, params.iEnd, params.origin) outSummaryString = summaryBasePart + summaryGridLayoutPart outSummaryString = utilities.removeTupleFormat(outSummaryString) outFileS.write(outSummaryString) if dimension == 1: for position in np.arange(params.iStart, params.iEnd + 1): outValuesString = "{} {}\n".format( position, centeredCoords(position, params.iStart, params.dl, params.origin)) outFileV.write( utilities.removeTupleFormat(outValuesString)) elif dimension == 2: for positionX in np.arange(params.iStart[0], params.iEnd[0] + 1): for positionY in np.arange(params.iStart[1], params.iEnd[1] + 1): position = (positionX, positionY) centered = (centeredCoords(positionX, params.iStart[0], params.dl[0], params.origin[0]), centeredCoords(positionY, params.iStart[1], params.dl[1], params.origin[1])) outValuesString = "{} {}\n".format(position, centered) outFileV.write( utilities.removeTupleFormat(outValuesString)) elif dimension == 3: for positionX in np.arange(params.iStart[0], params.iEnd[0] + 1): for positionY in np.arange(params.iStart[1], params.iEnd[1] + 1): for positionZ in np.arange(params.iStart[2], params.iEnd[2] + 1): position = (positionX, positionY, positionZ) centered = (centeredCoords(positionX, params.iStart[0], params.dl[0], params.origin[0]), centeredCoords(positionY, params.iStart[1], params.dl[1], params.origin[1]), centeredCoords(positionZ, params.iStart[2], params.dl[2], params.origin[2])) outValuesString = "{} {}\n".format( position, centered) outFileV.write( utilities.removeTupleFormat(outValuesString)) for outFilesSumDim, outFilesValDim in zip(outSummaries, outValues): for f1, f2 in zip(outFilesSumDim, outFilesValDim): f1.close() f2.close()
def main(path='./'): if len(sys.argv) == 2: path = sys.argv[1] interpOrders=[1, 2, 3, 4] gl = gridlayout.GridLayout() directions = gl.directions quantities = gl.hybridQuantities nbrCellXList=[40, 40, 40] nbrCellYList=[ 0, 12, 12] nbrCellZList=[ 0, 0, 12] nbDimsList = [1, 2, 3] dxList=[0.1, 0.1, 0.1] # 1D, 2D, 3D cases dyList=[0. , 0.1, 0.1] dzList=[0. , 0. , 0.1] maxNbrDim = 3 baseName = 'allocSizes' #out_1D = open(os.path.join(path, baseName + '_1d.txt'), 'w') #out_2D = open(os.path.join(path, baseName + '_2d.txt'), 'w') #out_3D = open(os.path.join(path, baseName + '_3d.txt'), 'w') outFilenameBase = os.path.join(path, baseName) outFiles = [] for interpOrder in interpOrders: filenames = [outFilenameBase + '_'+ str(dim) + 'd_O' + str(interpOrder)+'.txt' for dim in nbDimsList] outFiles.append([open(f,'w') for f in filenames]) for interpOrder, outFilesDim in zip(interpOrders, outFiles): for dim, outFile, nbrCellX, nbrCellY,nbrCellZ, dx,dy,dz in zip(nbDimsList, outFilesDim, nbrCellXList, nbrCellYList, nbrCellZList, dxList,dyList,dzList): params = AllocParams(dim,interpOrder) params.setNbrCell(nbrCellX,nbrCellY,nbrCellZ) params.setDl(dx,dy,dz) for quantity in quantities: params.setAlloc(quantity,gl) outString = "{} {} {} {} {}\n".format( quantities.index(quantity), params.nbrCell, params.dl, params.alloc, params.allocDer) outString = utilities.removeTupleFormat(outString) outFile.write(outString) for files in outFiles: for f in files: f.close()