Complement operator

Hello everyone,
I am very new to OpenMC, I am tryinf to run an example but I have some errors using the Complement operator. This is my example:

fuel_i_b = openmc.Cell(cell_id=1, fill=fuel, region=-rb_1 & +zb_1 & -ht) #fuel inner part 
inconel_i_b = openmc.Cell(cell_id=2, fill=inconel, region=-rb_2 & +rb_1 & +zb_2 & -ht) #inconel inner part
fuel_salt_b = openmc.Cell(cell_id=3, fill=fuel, region=(-rb_3 & +zb_3 & -ht) & ~(inconel_i_b fuel_i_b)) #fuel external part

And here is the errors im getting:

TypeError: bad operand type for unary ~: ‘Cell’

or this one:

SyntaxError: invalid syntax. Perhaps you forgot a comma?

The problem is the reigon definition of line three. You are using inconel_i_b and fuel_i_b as a surface/region when you already have them defined as cells. I recommend defining the regions outside of the cell definition so that you can give them unique names. That way you can reference the unique name of the inconel_i_b region and fuel_i_b region while defining the fuel_salt_b region:

fuel_i_b_r = -rb_1 & +zb_1 & -ht
inconel_i_b_r = -rb_2 & +rb_1 & +zb_2 & -ht
fuel_salt_b_r = (-rb_3 & +zb_3 & -ht) & ~inconel_i_b_r & ~fuel_i_b_r

fuel_i_b = openmc.Cell(cell_id=1, fill=fuel, region=fuel_i_b_r)
inconel_i_b = openmc.Cell(cell_id=2, fill=inconel, region=inconel_i_b_r)
fuel_salt_b = openmc.Cell(cell_id=3, fill=fuel, region=fuel_salt_b_r)