Ejemplo n.º 1
0
def test_load_from_ugrid_file():

    data_dir = Path(__file__).absolute().parent / '../../data'

    gr = Grid()

    gr.setFlags(1, 1)

    filename = str(data_dir / Path('cs_4.nc'))
    gr.loadFrom2DUgrid(f'{filename}:physics')

    nedges = gr.getNumberOfEdges()
    print(f'nedges = {nedges}')
    assert nedges == 192

    ncells = gr.getNumberOfCells()
    for icell in range(ncells):
        for iedge in range(4):
            edgeId, edgeSign = gr.getEdgeId(icell, iedge)
            nodeIds = gr.getNodeIds(icell, iedge)
            print(
                f'cell {icell} edge {iedge}: edgeId = {edgeId}, {edgeSign} nodeIds = {nodeIds}'
            )

    # attaching a 3 components field to the grid
    data = numpy.array(range(ncells * 4 * 3), numpy.float64)
    gr.attach('myData', data)
Ejemplo n.º 2
0
def test_load_from_ugrid_file():
    gr = Grid()
    gr.setFlags(1, 1)
    filename = str(DATA_DIR / Path('cs_4.nc'))
    gr.loadFromUgrid2DFile(f'{filename}$physics')
    nedges = gr.getNumberOfEdges()
    print(f'nedges = {nedges}')
    assert (nedges == 192)
    ncells = gr.getNumberOfCells()
    for icell in range(ncells):
        for iedge in range(4):
            edgeId, edgeSign = gr.getEdgeId(icell, iedge)
            nodeIds = gr.getNodeIds(icell, iedge)
            print(f"cell {icell} edge {iedge}: " +
                  f"edgeId = {edgeId}, {edgeSign} nodeIds = {nodeIds}")
    # attaching a 3 components field to the grid
    data = numpy.array(range(ncells * 4 * 3), numpy.float64)
    gr.attach('myData', data)
    num_bad_cells = gr.check()
    assert (num_bad_cells == 0)
Ejemplo n.º 3
0
def test_attach_data():
    # create the grid
    gr = Grid()
    # 2 cells
    points = numpy.array([(0., 0., 0.), (1., 0., 0.), (1., 1., 0.),
                          (0., 1., 0.), (1., 0., 0.), (2., 0., 0.),
                          (2., 1., 0.), (1., 1., 0.)]).reshape((2, 4, 3))
    gr.setPoints(points)
    # create cell data, 3 per cell
    nDataPerCell = 3
    data = numpy.arange(0, 2 * nDataPerCell, dtype=numpy.float64).reshape(
        (2, nDataPerCell))
    gr.attach('mydata', data)
    with TemporaryDirectory() as d:
        fname = str(Path(d) / Path('grid.vtk'))
        gr.dump(fname)
        # read the data back to check the layout of the data
        reader = vtk.vtkUnstructuredGridReader()
        reader.SetFileName(fname)
        reader.Update()
        ugrid = reader.GetOutput()
        arr = ugrid.GetCellData().GetArray('mydata')
        assert (arr.GetNumberOfTuples() == gr.getNumberOfCells())
        assert (arr.GetNumberOfComponents() == nDataPerCell)