Пример #1
0
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()
Пример #3
0
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()
Пример #5
0
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()