# Multiple boundary conditions with DAGMC

**URL:** <https://openmc.discourse.group/t/multiple-boundary-conditions-with-dagmc/4922>\
**Category:** User Support\
**Created:** [October 31, 2024, 1:42pm UTC](https://openmc.discourse.group/t/multiple-boundary-conditions-with-dagmc/4922 "2024-10-31T13:42:32Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![rbocce](https://avatars.discourse-cdn.com/v4/letter/r/858c86/32.png) [@rbocce](https://openmc.discourse.group/u/rbocce)\
**Post date:** [October 31, 2024, 1:42pm UTC](https://openmc.discourse.group/t/multiple-boundary-conditions-with-dagmc/4922/1 "2024-10-31T13:42:32Z")

</div>

Hi all,

I am importing .step geometry in OpenMC using DAGMC. I would like to exploit the symmetry of my model, thus apply reflective boundary conditions (BC) on some surfaces and vacuum BC on others, similarly to the picture:

 ![reflective](https://global.discourse-cdn.com/free1/uploads/openmc/original/2X/1/1d3854a73307d01195ef59dcb97a4532f72f634f.png)

Up to now, to import the geometry and to apply a vacuum BC to the model I did something like this:

```auto
dagmc_univ = openmc.DAGMCUniverse(filename='filename.h5m').bounded_universe()
geometry = openmc.Geometry(root=dagmc_univ)
geometry.export_to_xml()

```

Clearly, this approach is not suitable for my goal since it allows just for one BC for the whole domain.

Is there a way to apply different BC on each surface?  
Thanks

---

<div class="post-metadata">

**Author:** ![squang](https://avatars.discourse-cdn.com/v4/letter/s/eb8c5e/32.png) [@squang](https://openmc.discourse.group/u/squang)\
**Post date:** [November 4, 2024, 4:55am UTC](https://openmc.discourse.group/t/multiple-boundary-conditions-with-dagmc/4922/2 "2024-11-04T04:55:57Z")

</div>

You can try:

```auto
dagmc_univ = openmc.DAGMCUniverse(filename='filename.h5m')

vacuum_radius = 10
# Creating a bounding box

## X and Y reflective BC
px = openmc.XPlane(boundary_type = "reflective", name = "reflective boundary on X-axis")
py = openmc.YPlane(boundary_type = "reflective", name = "reflective boundary on Y-axis")

## Vacuum boundary as a cylinder
cyl = openmc.ZCylinder(x0=0.0, y0=0.0, r=vacuum_radius, boundary_type = "vacuum")

region = (+px & +py & -cyl)

containing_cell = openmc.Cell(region=region, fill= dagmc_univ)

geometry = openmc.Geometry(root=[containing_cell])
geometry.export_to_xml()

```

Best,
