<div dir="ltr">
<p class="MsoNormal">Dear vtkusers,</p><p class="MsoNormal"><br></p><p class="MsoNormal">I am trying to develop an efficient method for writing different vtk
unstructured grid datasets which change with time in a single vtk file.
</p><p class="MsoNormal"><br></p><p class="MsoNormal">In particular, we have an in-house Boundary Element solver and we would like to save element and node information (unstructured grid DataSets) in a single file. Then, by using vtk methods we would like to visualise the results.</p><p class="MsoNormal"><br></p><p class="MsoNormal">The main question I would like to ask is whether any of you have developed similar vtk applications and what would be the optimal way. I found that multiblocks can be saved in either exodus or vtm file. What is the difference? Is there any other way?<br></p><p class="MsoNormal"><br></p><p class="MsoNormal">How could I save different time steps of these multiblocks? Is there any simple example of creating such a file? Moreover, I found that vtkHierrarchicalBoxDataSet is for Adaptive Meshing. Is there any example? <br></p><p class="MsoNormal"><br></p><p class="MsoNormal">Lastly, how I could extract a specific block from a multiblock by giving its name. In the following code I have managed to extract a certain block by giving its index only. Is it possible to call a block from each name?<br></p><blockquote style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex" class="gmail_quote"><p class="MsoNormal"><br></p><p class="MsoNormal">Â Â Â Â Â Â private void MultiBlockDisplay()<br>Â Â Â Â Â Â Â {<br>Â Â Â Â Â Â Â Â Â Â Â string path;<br>Â Â Â Â Â Â Â Â Â Â Â string domainName;<br>Â Â Â Â Â Â Â Â Â Â Â string fileName;<br><br>Â Â Â Â Â Â Â Â Â Â Â vtkRenderer ren = vtkRenderer.New();<br>Â Â Â Â Â Â Â Â Â Â Â ren.SetBackground(0.2, 0.3, 0.4);<br>Â Â Â Â Â Â Â Â Â Â Â vtkRenderWindow renWin = renderWindowControl1.RenderWindow;<br>Â Â Â Â Â Â Â Â Â Â Â renWin.AddRenderer(ren);<br>Â Â Â Â Â Â Â Â Â Â Â vtkRenderWindowInteractor iren = vtkRenderWindowInteractor.New();<br>Â Â Â Â Â Â Â Â Â Â Â iren.SetRenderWindow(renWin);<br><br>Â Â Â Â Â Â Â Â Â Â Â uint number = 2;<br>Â Â Â Â Â Â Â Â Â Â Â vtkMultiBlockDataSet mbset = vtkMultiBlockDataSet.New();<br>Â Â Â Â Â Â Â Â Â Â Â mbset.SetNumberOfBlocks(number);<br><br>Â Â Â Â Â Â Â Â Â Â Â for (uint i = 0; i < number; i++)<br>Â Â Â Â Â Â Â Â Â Â Â {<br>Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â vtkUnstructuredGridReader reader = vtkUnstructuredGridReader.New();<br><br>Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â path = @"C:\\A_directory\\";<br>Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â domainName = "MultiBlock_" + i.ToString();<br>Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â fileName = path + domainName + ".vtk";<br><br>Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â reader.SetFileName(fileName);<br>Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â reader.SetReadAllScalars(1);<br>Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â reader.SetReadAllVectors(1);<br>Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â reader.Update();<br><br>Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â mbset.SetBlock(i, reader.GetOutput());<br><br>Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â mbset.GetMetaData(i).Set(vtkCompositeDataSet.NAME(), domainName);<br><br>Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â //The following bit prints the name for each block<br>Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â string nameDOM = mbset.GetMetaData(i).Get(vtkCompositeDataSet.NAME());<br>Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Debug.Print(nameDOM);<br>Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â <br>Â Â Â Â Â Â Â Â Â Â Â }<br><br>Â Â Â Â Â Â Â Â Â Â Â vtkUnstructuredGrid ug = vtkUnstructuredGrid.SafeDownCast(mbset.GetBlock(1));<br><br>Â Â Â Â Â Â Â Â Â Â Â vtkDataSetMapper mapper = vtkDataSetMapper.New();<br>Â Â Â Â Â Â Â Â Â Â Â mapper.SetInput(ug);<br><br>Â Â Â Â Â Â Â Â Â Â Â vtkActor actor = vtkActor.New();<br>Â Â Â Â Â Â Â Â Â Â Â actor.SetMapper(mapper);<br><span style="background-color:rgb(0,0,0)"><span style=""></span></span><br>Â Â Â Â Â Â Â Â Â Â Â ren.AddActor(actor);<br><br>Â Â Â Â Â Â Â Â Â Â Â ren.SetBackground(0.2, 0.3, 0.4);<br><br>Â Â Â Â Â Â Â }<br></p></blockquote>
<p class="MsoNormal">Â </p>
<p class="MsoNormal">Many thanks in advance.</p>
<p class="MsoNormal">Â </p>
<p class="MsoNormal">Kindest regards,</p><p class="MsoNormal"><br></p><p class="MsoNormal">Giorgos<br></p>
</div>