Exemplo 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)
Exemplo n.º 2
0
def test_load_ugrid_data():
    # a single cell
    # 3....>2....2
    # :          :
    # v          ^
    # 1          0
    # :          :
    # 0....<3....1
    xyz = numpy.array([(0., 0., 0.), (1., 0., 0.), (1., 1., 0.), (0., 1., 0.)],
                      dtype=numpy.float64)
    face2nodes = numpy.array([
        (0, 1, 2, 3),
    ], dtype=numpy.uintp)
    edge2nodes = numpy.array(
        [
            (1, 2),  # edge 0
            (3, 0),  # edge 1
            (3, 2),  # edge 2
            (1, 0)
        ],  # edge 3
        dtype=numpy.uintp)

    gr = Grid()
    gr.setFlags(0, 0)
    gr.loadFromUgrid2DData(xyz, face2nodes, edge2nodes)

    n0, n1 = gr.getNodeIds(cellId=0, edgeIndex=0)
    assert (n0 == 0)
    assert (n1 == 1)

    n0, n1 = gr.getNodeIds(cellId=0, edgeIndex=1)
    assert (n0 == 1)
    assert (n1 == 2)

    n0, n1 = gr.getNodeIds(cellId=0, edgeIndex=2)
    assert (n0 == 3)
    assert (n1 == 2)

    n0, n1 = gr.getNodeIds(cellId=0, edgeIndex=3)
    assert (n0 == 0)
    assert (n1 == 3)

    gr.dump('singleCell.vtk')
Exemplo n.º 3
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)