@@ -569,7 +569,7 @@ def test_3to4_equilibrium_boundary():
569
569
ts .boundary_separatrix .gap .resize (1 )
570
570
if i == 3 :
571
571
# Fill second_separatrix
572
- ts .boundary_secondary_separatrix .psi = - 1.0
572
+ ts .boundary_secondary_separatrix .psi = - 1.1
573
573
# Use limiter for time_slice[1], otherwise divertor:
574
574
ts .boundary_secondary_separatrix .outline .r = [0.9 , 3.1 , 2.1 , 0.9 ]
575
575
ts .boundary_secondary_separatrix .outline .z = [0.9 , 2.1 , 3.1 , 0.9 ]
@@ -588,10 +588,11 @@ def test_3to4_equilibrium_boundary():
588
588
assert len (eq4 .time_slice ) == 5
589
589
for i , ts in enumerate (eq4 .time_slice ):
590
590
node = ts .contour_tree .node
591
- assert len (node ) == [1 , 2 , 2 , 3 , 2 ][i ]
591
+ assert len (node ) == [1 , 2 , 2 , 3 , 3 ][i ]
592
592
# Test magnetic axis
593
593
assert node [0 ].critical_type == 0
594
594
assert node [0 ].r == node [0 ].z == 2.0
595
+ assert node [0 ].psi == - 1.0
595
596
assert len (node [0 ].levelset .r ) == len (node [0 ].levelset .z ) == 0
596
597
# boundary_separatrix
597
598
if i == 1 : # node[1] is boundary for limiter plasma
@@ -602,18 +603,33 @@ def test_3to4_equilibrium_boundary():
602
603
assert node [1 ].critical_type == 1
603
604
assert node [1 ].r == node [1 ].z == 1.0
604
605
if i > 0 :
606
+ assert node [1 ].psi == 1.0
605
607
assert numpy .array_equal (node [1 ].levelset .r , [1.0 , 3.0 , 2.0 , 1.0 ])
606
608
assert numpy .array_equal (node [1 ].levelset .z , [1.0 , 2.0 , 3.0 , 1.0 ])
607
609
# boundary_secondary_separatrix
608
610
if i == 3 :
609
611
assert node [2 ].critical_type == 1
610
612
assert node [2 ].r == 2.1
611
613
assert node [2 ].z == 3.1
614
+ assert node [2 ].psi == 1.1
612
615
assert numpy .array_equal (node [2 ].levelset .r , [0.9 , 3.1 , 2.1 , 0.9 ])
613
616
assert numpy .array_equal (node [2 ].levelset .z , [0.9 , 2.1 , 3.1 , 0.9 ])
617
+ # Second x-point from boundary_separatrix
618
+ if i == 4 :
619
+ assert node [2 ].critical_type == 1
620
+ assert node [2 ].r == 2.0
621
+ assert node [2 ].z == 3.0
622
+ assert node [2 ].psi == node [1 ].psi == 1.0
623
+ # Levelset is only filled for the main x-point (node[1])
624
+ assert not node [2 ].levelset .r .has_value
625
+ assert not node [2 ].levelset .z .has_value
614
626
615
627
# not deepcopied, should share numpy arrays
616
- assert (
617
- eq342 .time_slice [1 ].boundary_separatrix .outline .r .value
618
- is eq4 .time_slice [1 ].contour_tree .node [1 ].levelset .r .value
628
+ slice1_outline_r = eq342 .time_slice [1 ].boundary_separatrix .outline .r .value
629
+ assert slice1_outline_r is eq4 .time_slice [1 ].contour_tree .node [1 ].levelset .r .value
630
+
631
+ # deepcopy should create a copy of the numpy arrays
632
+ eq4_cp = convert_ids (eq342 , "4.0.0" , deepcopy = True )
633
+ assert not numpy .may_share_memory (
634
+ slice1_outline_r , eq4_cp .time_slice [1 ].contour_tree .node [1 ].levelset .r .value
619
635
)
0 commit comments