# Mesh, Submesh , Torus, Boundary

**URL:** <https://fenicsproject.discourse.group/t/mesh-submesh-torus-boundary/6378>\
**Category:** mesh\
**Created:** [August 10, 2021, 7:15am UTC](https://fenicsproject.discourse.group/t/mesh-submesh-torus-boundary/6378 "2021-08-10T07:15:40Z")\
**Posts on this page:** 1\
**Showing post:** 5

<div class="post-metadata">

**Author:** ![dokken](https://yyz2.discourse-cdn.com/free1/user_avatar/fenicsproject.discourse.group/dokken/32/1560_2.png) [@dokken](https://fenicsproject.discourse.group/u/dokken)\
**Post date:** [August 13, 2021, 9:30am UTC](https://fenicsproject.discourse.group/t/mesh-submesh-torus-boundary/6378/5 "2021-08-13T09:30:58Z")

</div>

> [@Noya](#):
>
> And what is the “fragment”?

Fragment means that it takes multiple geometries, merge them, but keep the boundary between them. For more information see: [Gmsh 4.11.1](https://gmsh.info/doc/texinfo/gmsh.html#Boolean-operations)

> [@Noya](#):
>
> Does I need N? Or where I need it?

You should no need `N` any longer.

> [@Noya](#):
>
> Actually I’m a little bit confused about mff and mft.

`mft` is the marked cells (tetrahedrons) of the torus and surrounding box, while `mff` is the marked facets of the boundary of the torus (with value 3) and outer boundary (with value 4).

if you want to compute the integral over the torus, you can use:

```python
dx = Measure("dx", domain=mesh, subdomain_data=mft)
print(assemble(Constant(1)*dx(1)))

```

which should give you the volume of the torus (note that `dx(1)` indicates that we are integrating all cells tagged in `mft` with value 1).  
Similarly, for the box surrounding the torus (marked with 2), you would get  
`print(assemble(Constant(1)*dx(2)))`

---

_[View the full topic](https://fenicsproject.discourse.group/t/mesh-submesh-torus-boundary/6378)._
