Skip to content

Commit

Permalink
Adding block for positive side of spheres and adding a nested spheres…
Browse files Browse the repository at this point in the history
… test
  • Loading branch information
pshriwise committed Nov 7, 2024
1 parent c312dbf commit 516d0ac
Show file tree
Hide file tree
Showing 3 changed files with 47 additions and 0 deletions.
5 changes: 5 additions & 0 deletions src/openmc_cad_adapter/surfaces.py
Original file line number Diff line number Diff line change
Expand Up @@ -283,6 +283,11 @@ def to_cubit_surface_inner(self, ent_type, node, extents, inner_world=None, hex=
cad_cmds.append( f"sphere radius {self.r}")
ids = emit_get_last_id(ent_type, cad_cmds)
move(ids, self.x0, self.y0, self.z0, cad_cmds)
if node.side != '-':
cad_cmds.append( f"brick x {extents[0]} y {extents[1]} z {extents[2]}" )
wid = emit_get_last_id( ent_type , cad_cmds)
cad_cmds.append(f"subtract body {{ {ids} }} from body {{ {wid} }}")
ids = wid
return ids, cad_cmds

@classmethod
Expand Down
28 changes: 28 additions & 0 deletions test/gold/nested_spheres.jou
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
set echo off
set info off
set warning off
graphics pause
set journal off
set default autosize off
#CELL 4
sphere radius 30.0
#{ id1 = Id("body") }
body { id1 } name "Cell_4"
group "mat:void" add body { id1 }
#CELL 3
sphere radius 20.0
#{ id2 = Id("body") }
body { id2 } name "Cell_3"
group "mat:void" add body { id2 }
#CELL 2
sphere radius 10.0
#{ id3 = Id("body") }
body { id3 } name "Cell_2"
group "mat:void" add body { id3 }
graphics flush
set default autosize on
zoom reset
set echo on
set info on
set warning on
set journal on
14 changes: 14 additions & 0 deletions test/test_local.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,20 @@ def test_planes(request, run_in_tmpdir):
diff_gold_file('plane.jou')


def test_nested_spheres(request, run_in_tmpdir):
inner_sphere = openmc.Sphere(r=10.0)
middle_sphere = openmc.Sphere(r=20.0)
outer_sphere = openmc.Sphere(r=30.0)

inner_cell = openmc.Cell(region=-inner_sphere)
middle_cell = openmc.Cell(region=-middle_sphere)
outer_cell = openmc.Cell(region=-outer_sphere)

g = openmc.Geometry([outer_cell, middle_cell, inner_cell])
to_cubit_journal(g, world=(500, 500, 500), filename='nested_spheres.jou')
diff_gold_file('nested_spheres.jou')


# Test the XCylinder and YCylinder classes, the ZCylinder surface is tested
# extensively in the OpenMC example tests
@reset_openmc_ids
Expand Down

0 comments on commit 516d0ac

Please sign in to comment.