# Create a channel for vtkMultiBlock

**URL:** https://discourse.paraview.org/t/create-a-channel-for-vtkmultiblock/13264
**Category:** In Situ Support
**Tags:** catalyst, vtk
**Created:** [November 16, 2023, 11:26am UTC](https://discourse.paraview.org/t/create-a-channel-for-vtkmultiblock/13264 "2023-11-16T11:26:03Z")
**Posts on this page:** 4
**Page:** 1

<div class="post-metadata">

### Author: ![robertsawko](https://discourse.paraview.org/user_avatar/discourse.paraview.org/robertsawko/32/6283_2.png) [@robertsawko](https://discourse.paraview.org/u/robertsawko)
#### Post date: [November 16, 2023, 11:26am UTC](https://discourse.paraview.org/t/create-a-channel-for-vtkmultiblock/13264/1 "2023-11-16T11:26:03Z")

</div>

Hello,

I am writing a Catalyst2 adapter for a particle-in-cell code. Catalyst has channels to pass different type of information. My original idea was to have a channel for mesh and for particle separately, but then I realised that there are multiple species of particles too.

I could achieve what I want by having a channel per particle specie, but I don’t think it’s very elegant. I noticed in some of the example a `multiblock` variable. To be specific the only example that has it is `Examples/Catalyst2/CxxMultiChannelInputExample`, but it doesn’t seem to develop it much as the result only has one block?

My question is therefore, how would I structure Conduit tree to obtain a vtkMultiBlockDataSet on the other side? Specifically, I would need to have point sets named after the specie.

Please advise.

---

<div class="post-metadata">

### Author: ![robertsawko](https://discourse.paraview.org/user_avatar/discourse.paraview.org/robertsawko/32/6283_2.png) [@robertsawko](https://discourse.paraview.org/u/robertsawko)
#### Post date: [November 16, 2023, 11:29am UTC](https://discourse.paraview.org/t/create-a-channel-for-vtkmultiblock/13264/2 "2023-11-16T11:29:01Z")

</div>

Sorry, the moment after writing this I realised that `vtkMultiBlockDataSet` is for distributing data across processors rather than having a single container for different data sets of the same type. I will need to rephrase this question!

---

<div class="post-metadata">

### Author: ![Alexandre\_Minot](https://discourse.paraview.org/user_avatar/discourse.paraview.org/alexandre_minot/32/7132_2.png) [@Alexandre\_Minot](https://discourse.paraview.org/u/Alexandre_Minot)
#### Post date: [November 16, 2023, 12:41pm UTC](https://discourse.paraview.org/t/create-a-channel-for-vtkmultiblock/13264/3 "2023-11-16T12:41:50Z")

</div>

Robert,

I believe what you are looking for is different `coordsets`. You can define one coordset for your cells and one for your particles, or even one per specie. All of these can go in a single channel.

If you need to organize your species - maybe you want your hydrocarbons grouped, or your liquid particles grouped - take a look at the assembly node. This node allows you to create a tree of names representing an arbitrary organization of your data. In ParaView, you can then use the ExtractBlock filter to fetch your data by path using a path in the assembly tree.

---

<div class="post-metadata">

### Author: ![Francois\_Mazen](https://discourse.paraview.org/user_avatar/discourse.paraview.org/francois_mazen/32/6483_2.png) [@Francois\_Mazen](https://discourse.paraview.org/u/Francois_Mazen)
#### Post date: [November 17, 2023, 11:33am UTC](https://discourse.paraview.org/t/create-a-channel-for-vtkmultiblock/13264/4 "2023-11-17T11:33:20Z")

</div>

Hi @robertsawko !

A different approach to represent different particle species would be to add a dedicated field for each particle which enumerate the particle type. Then in the python pipeline, use selection by id to extract specific particle based on the type field.
