def METHOD_NAME(hdf5_filename: str,
                               add_property_info=True,
                               add_material_info=True,
                               subcases=None,  # default=None -> all
                               modes=None, # default=None -> all
                               results=None, # default=None -> all,
                      ) -> tuple[BDF, vtkUnstructuredGrid]:
    #subcases = [1, 2]
    #modes = range(1, 10)
    #results = ['eigenvectors', 'displacement', 'stress', 'strain']
    add_aero = False
    add_constraints = False
    add_results = False
    model = pyNastranH5(add_aero, add_constraints, add_results, subcases)
    model.read_h5_nastran(hdf5_filename)
    geom_model = model.geom_model
    geom_model.log.info(geom_model.card_count)
    ugrid_main = vtkUnstructuredGrid()
    alt_grids = {
        'main' : ugrid_main,
    }
    eids = fill_paraview_vtk_unstructured_grid(
        geom_model, ugrid_main,
        add_property=add_property_info,
        add_material=add_material_info,
    )
    #fill_vtk_unstructured_grid_aero(geom_model, nodes, node_ids, alt_grids)
    #fill_vtk_unstructured_grid_constraints(geom_model, alt_grids, nid_map)
    fill_paraview_vtk_unstructured_grid_results(model, ugrid_main, eids)
    # PART 1 Make some Data.
    # Make a tree.
    root = vtk.vtkMultiBlockDataSet()
    #branch = vtk.vtkMultiBlockDataSet()
    #root.SetBlock(0, branch)
    # Make some leaves.
    #leaf1 = vtk.vtkSphereSource()
    #leaf1.SetCenter(0, 0, 0)
    #leaf1.Update()
    #branch.SetBlock(0, leaf1.GetOutput())
    #for key in ['mass']:
        #if key in alt_grids:
            #del alt_grids[key]
    iblock = 0
    basepath = os.path.basename(hdf5_filename)
    for name, ugrid in alt_grids.items():
        print(name)
        root.SetBlock(iblock, ugrid)
        meta_data = root.GetMetaData(iblock)
        meta_data.Set(vtk.vtkCompositeDataSet.NAME(), f'{basepath}: {name}')
        iblock += 1
    #root.SetBlock(1, grid_aero)
    #root.GetMetaData(0).Set(vtk.vtkCompositeDataSet.NAME(), basepath + ': main')
    #root.GetMetaData(1).Set(vtk.vtkCompositeDataSet.NAME(), basepath + ': CAERO')
    #print('root')
    return model, ugrid_main, root, alt_grids