diff --git a/examples/kernels b/examples/kernels
index d3669abcb372de0f4eda05bbb5ba1eac45bd0b61..1f7c9fdff97f215376a03633459e237e95cc118f 100644
--- a/examples/kernels
+++ b/examples/kernels
@@ -1,841 +1,775 @@
 digraph AST {
 	node [color=lightblue2 style=filled]
 	size="6,6"
-	n140589003589112 [label=Block]
-	n140589003139560 [label=KernelBlock]
-	n140589003589112 -> n140589003139560
-	n140589003139616 [label=KernelBlock]
-	n140589003589112 -> n140589003139616
-	n140589003139560 [label=KernelBlock]
-	n140589003139168 [label=Block]
-	n140589003139560 -> n140589003139168
-	n140589003139168 [label=Block]
-	n140589002480104 [label=ParticleFor]
-	n140589003139168 -> n140589002480104
-	n140589002480104 [label=ParticleFor]
-	n140589002480160 [label="Iter(14)"]
-	n140589002480104 -> n140589002480160
-	n140589002480328 [label=Block]
-	n140589002480104 -> n140589002480328
-	n140589002480216 [label=0]
-	n140589002480104 -> n140589002480216
-	n140589002480272 [label=0]
-	n140589002480104 -> n140589002480272
-	n140589002480160 [label="Iter(14)"]
-	n140589002480328 [label=Block]
-	n140589002480496 [label=For]
-	n140589002480328 -> n140589002480496
-	n140589002480776 [label="*"]
-	n140589002480160 [label="Iter(14)"]
-	n140589002480776 -> n140589002480160
-	n140589003590792 [label=neighborlist_capacity]
-	n140589002480776 -> n140589003590792
-	n140589003590792 [label=neighborlist_capacity]
-	n140589002481000 [label=PropertyAccess]
-	n140589003589280 [label=position]
-	n140589002481000 -> n140589003589280
-	n140589002480160 [label="Iter(14)"]
-	n140589002481000 -> n140589002480160
-	n140589002519104 [label="*"]
-	n140589002481000 -> n140589002519104
-	n140589002520952 [label="+"]
-	n140589002481000 -> n140589002520952
-	n140589002547384 [label="+"]
-	n140589002481000 -> n140589002547384
-	n140589003589280 [label=position]
-	n140589002519104 [label="*"]
-	n140589002480160 [label="Iter(14)"]
-	n140589002519104 -> n140589002480160
-	n140589002519160 [label=3]
-	n140589002519104 -> n140589002519160
-	n140589002519160 [label=3]
-	n140589002520952 [label="+"]
-	n140589002520784 [label="*"]
-	n140589002520952 -> n140589002520784
-	n140589002521008 [label=1]
-	n140589002520952 -> n140589002521008
-	n140589002520784 [label="*"]
-	n140589002480160 [label="Iter(14)"]
-	n140589002520784 -> n140589002480160
-	n140589002520840 [label=3]
-	n140589002520784 -> n140589002520840
-	n140589002520840 [label=3]
-	n140589002521008 [label=1]
-	n140589002547384 [label="+"]
-	n140589002522576 [label="*"]
-	n140589002547384 -> n140589002522576
-	n140589002547440 [label=2]
-	n140589002547384 -> n140589002547440
-	n140589002522576 [label="*"]
-	n140589002480160 [label="Iter(14)"]
-	n140589002522576 -> n140589002480160
-	n140589002547272 [label=3]
-	n140589002522576 -> n140589002547272
-	n140589002547272 [label=3]
-	n140589002547440 [label=2]
-	n140589002481392 [label="*"]
-	n140589002480160 [label="Iter(14)"]
-	n140589002481392 -> n140589002480160
-	n140589002481448 [label=3]
-	n140589002481392 -> n140589002481448
-	n140589002481448 [label=3]
-	n140589002520000 [label="*"]
-	n140589002480160 [label="Iter(14)"]
-	n140589002520000 -> n140589002480160
-	n140589002520056 [label=3]
-	n140589002520000 -> n140589002520056
-	n140589002520056 [label=3]
-	n140589002520168 [label="+"]
-	n140589002520000 [label="*"]
-	n140589002520168 -> n140589002520000
-	n140589002520224 [label=1]
-	n140589002520168 -> n140589002520224
-	n140589002520224 [label=1]
-	n140589002521792 [label="*"]
-	n140589002480160 [label="Iter(14)"]
-	n140589002521792 -> n140589002480160
-	n140589002521848 [label=3]
-	n140589002521792 -> n140589002521848
-	n140589002521848 [label=3]
-	n140589002521960 [label="+"]
-	n140589002521792 [label="*"]
-	n140589002521960 -> n140589002521792
-	n140589002522016 [label=2]
-	n140589002521960 -> n140589002522016
-	n140589002522016 [label=2]
-	n140589003272432 [label="*"]
-	n140589002480160 [label="Iter(14)"]
-	n140589003272432 -> n140589002480160
-	n140589003272488 [label=3]
-	n140589003272432 -> n140589003272488
-	n140589003272488 [label=3]
-	n140589003272824 [label="*"]
-	n140589002480160 [label="Iter(14)"]
-	n140589003272824 -> n140589002480160
-	n140589003272880 [label=3]
-	n140589003272824 -> n140589003272880
-	n140589003272880 [label=3]
-	n140589003273328 [label="*"]
-	n140589002480160 [label="Iter(14)"]
-	n140589003273328 -> n140589002480160
-	n140589003273384 [label=3]
-	n140589003273328 -> n140589003273384
-	n140589003273384 [label=3]
-	n140589003273496 [label="+"]
-	n140589003273328 [label="*"]
-	n140589003273496 -> n140589003273328
-	n140589003273552 [label=1]
-	n140589003273496 -> n140589003273552
-	n140589003273552 [label=1]
-	n140589003273720 [label="*"]
-	n140589002480160 [label="Iter(14)"]
-	n140589003273720 -> n140589002480160
-	n140589003273776 [label=3]
-	n140589003273720 -> n140589003273776
-	n140589003273776 [label=3]
-	n140589003273888 [label="+"]
-	n140589003273720 [label="*"]
-	n140589003273888 -> n140589003273720
-	n140589003273944 [label=1]
-	n140589003273888 -> n140589003273944
-	n140589003273944 [label=1]
-	n140589003274224 [label="*"]
-	n140589002480160 [label="Iter(14)"]
-	n140589003274224 -> n140589002480160
-	n140589003274280 [label=3]
-	n140589003274224 -> n140589003274280
-	n140589003274280 [label=3]
-	n140589003274392 [label="+"]
-	n140589003274224 [label="*"]
-	n140589003274392 -> n140589003274224
-	n140589003274448 [label=2]
-	n140589003274392 -> n140589003274448
-	n140589003274448 [label=2]
-	n140589003274616 [label="*"]
-	n140589002480160 [label="Iter(14)"]
-	n140589003274616 -> n140589002480160
-	n140589003274672 [label=3]
-	n140589003274616 -> n140589003274672
-	n140589003274672 [label=3]
-	n140589003274784 [label="+"]
-	n140589003274616 [label="*"]
-	n140589003274784 -> n140589003274616
-	n140589003274840 [label=2]
-	n140589003274784 -> n140589003274840
-	n140589003274840 [label=2]
-	n140589002480496 [label=For]
-	n140589002480552 [label="Iter(15)"]
-	n140589002480496 -> n140589002480552
-	n140589002480664 [label=Block]
-	n140589002480496 -> n140589002480664
-	n140589002480608 [label=0]
-	n140589002480496 -> n140589002480608
-	n140589002480440 [label=ArrayAccess]
-	n140589002480496 -> n140589002480440
-	n140589002480552 [label="Iter(15)"]
-	n140589002480664 [label=Block]
-	n140589002548336 [label=Filter]
-	n140589002480664 -> n140589002548336
-	n140589002480888 [label="+"]
-	n140589002480776 [label="*"]
-	n140589002480888 -> n140589002480776
-	n140589002480552 [label="Iter(15)"]
-	n140589002480888 -> n140589002480552
-	n140589002481112 [label=PropertyAccess]
-	n140589003589280 [label=position]
-	n140589002481112 -> n140589003589280
-	n140589002480720 [label=ArrayAccess]
-	n140589002481112 -> n140589002480720
-	n140589002519440 [label="*"]
-	n140589002481112 -> n140589002519440
-	n140589002521288 [label="+"]
-	n140589002481112 -> n140589002521288
-	n140589002547720 [label="+"]
-	n140589002481112 -> n140589002547720
-	n140589002480720 [label=ArrayAccess]
-	n140589003590848 [label=neighborlists]
-	n140589002480720 -> n140589003590848
-	n140589002480888 [label="+"]
-	n140589002480720 -> n140589002480888
-	n140589003590848 [label=neighborlists]
-	n140589002519440 [label="*"]
-	n140589002480720 [label=ArrayAccess]
-	n140589002519440 -> n140589002480720
-	n140589002519496 [label=3]
-	n140589002519440 -> n140589002519496
-	n140589002519496 [label=3]
-	n140589002521288 [label="+"]
-	n140589002521120 [label="*"]
-	n140589002521288 -> n140589002521120
-	n140589002521344 [label=1]
-	n140589002521288 -> n140589002521344
-	n140589002521120 [label="*"]
-	n140589002480720 [label=ArrayAccess]
-	n140589002521120 -> n140589002480720
-	n140589002521176 [label=3]
-	n140589002521120 -> n140589002521176
-	n140589002521176 [label=3]
-	n140589002521344 [label=1]
-	n140589002547720 [label="+"]
-	n140589002547552 [label="*"]
-	n140589002547720 -> n140589002547552
-	n140589002547776 [label=2]
-	n140589002547720 -> n140589002547776
-	n140589002547552 [label="*"]
-	n140589002480720 [label=ArrayAccess]
-	n140589002547552 -> n140589002480720
-	n140589002547608 [label=3]
-	n140589002547552 -> n140589002547608
-	n140589002547608 [label=3]
-	n140589002547776 [label=2]
-	n140589002481224 [label="-"]
-	n140589002481000 [label=PropertyAccess]
-	n140589002481224 -> n140589002481000
-	n140589002481112 [label=PropertyAccess]
-	n140589002481224 -> n140589002481112
-	n140589002518656 [label="*"]
-	n140589002480720 [label=ArrayAccess]
-	n140589002518656 -> n140589002480720
-	n140589002518712 [label=3]
-	n140589002518656 -> n140589002518712
-	n140589002518712 [label=3]
-	n140589002519832 [label="*"]
-	n140589002518992 [label=VectorAccess]
-	n140589002519832 -> n140589002518992
-	n140589002519776 [label=VectorAccess]
-	n140589002519832 -> n140589002519776
-	n140589002518992 [label=VectorAccess]
-	n140589002481224 [label="-"]
-	n140589002518992 -> n140589002481224
-	n140589002519776 [label=VectorAccess]
-	n140589002481224 [label="-"]
-	n140589002519776 -> n140589002481224
-	n140589002520336 [label="*"]
-	n140589002480720 [label=ArrayAccess]
-	n140589002520336 -> n140589002480720
-	n140589002520392 [label=3]
-	n140589002520336 -> n140589002520392
-	n140589002520392 [label=3]
-	n140589002520504 [label="+"]
-	n140589002520336 [label="*"]
-	n140589002520504 -> n140589002520336
-	n140589002520560 [label=1]
-	n140589002520504 -> n140589002520560
-	n140589002520560 [label=1]
-	n140589002521512 [label="*"]
-	n140589002520672 [label=VectorAccess]
-	n140589002521512 -> n140589002520672
-	n140589002521456 [label=VectorAccess]
-	n140589002521512 -> n140589002521456
-	n140589002520672 [label=VectorAccess]
-	n140589002481224 [label="-"]
-	n140589002520672 -> n140589002481224
-	n140589002521456 [label=VectorAccess]
-	n140589002481224 [label="-"]
-	n140589002521456 -> n140589002481224
-	n140589002521624 [label="+"]
-	n140589002519832 [label="*"]
-	n140589002521624 -> n140589002519832
-	n140589002521512 [label="*"]
-	n140589002521624 -> n140589002521512
-	n140589002522128 [label="*"]
-	n140589002480720 [label=ArrayAccess]
-	n140589002522128 -> n140589002480720
-	n140589002522184 [label=3]
-	n140589002522128 -> n140589002522184
-	n140589002522184 [label=3]
-	n140589002522296 [label="+"]
-	n140589002522128 [label="*"]
-	n140589002522296 -> n140589002522128
-	n140589002522352 [label=2]
-	n140589002522296 -> n140589002522352
-	n140589002522352 [label=2]
-	n140589002547944 [label="*"]
-	n140589002522464 [label=VectorAccess]
-	n140589002547944 -> n140589002522464
-	n140589002547888 [label=VectorAccess]
-	n140589002547944 -> n140589002547888
-	n140589002522464 [label=VectorAccess]
-	n140589002481224 [label="-"]
-	n140589002522464 -> n140589002481224
-	n140589002547888 [label=VectorAccess]
-	n140589002481224 [label="-"]
-	n140589002547888 -> n140589002481224
-	n140589002548056 [label="+"]
-	n140589002521624 [label="+"]
-	n140589002548056 -> n140589002521624
-	n140589002547944 [label="*"]
-	n140589002548056 -> n140589002547944
-	n140589002548168 [label="<"]
-	n140589002548056 [label="+"]
-	n140589002548168 -> n140589002548056
-	n140589002548224 [label=2.5]
-	n140589002548168 -> n140589002548224
-	n140589002548224 [label=2.5]
-	n140589002548336 [label=Filter]
-	n140589002548168 [label="<"]
-	n140589002548336 -> n140589002548168
-	n140589003139504 [label=Block]
-	n140589002548336 -> n140589003139504
-	n140589003139504 [label=Block]
-	n140589003272320 [label=Assign]
-	n140589003139504 -> n140589003272320
-	n140589003139840 [label="/"]
-	n140589003139896 [label=1.0]
-	n140589003139840 -> n140589003139896
-	n140589002548056 [label="+"]
-	n140589003139840 -> n140589002548056
-	n140589003139896 [label=1.0]
-	n140589003140008 [label="*"]
-	n140589003139840 [label="/"]
-	n140589003140008 -> n140589003139840
-	n140589003139840 [label="/"]
-	n140589003140008 -> n140589003139840
-	n140589003140120 [label="*"]
-	n140589003140008 [label="*"]
-	n140589003140120 -> n140589003140008
-	n140589003139840 [label="/"]
-	n140589003140120 -> n140589003139840
-	n140589003139784 [label=PropertyAccess]
-	n140589003589392 [label=force]
-	n140589003139784 -> n140589003589392
-	n140589002480160 [label="Iter(14)"]
-	n140589003139784 -> n140589002480160
-	n140589003272824 [label="*"]
-	n140589003139784 -> n140589003272824
-	n140589003273888 [label="+"]
-	n140589003139784 -> n140589003273888
-	n140589003274784 [label="+"]
-	n140589003139784 -> n140589003274784
-	n140589003589392 [label=force]
-	n140589003140456 [label="*"]
-	n140589002481224 [label="-"]
-	n140589003140456 -> n140589002481224
-	n140589003140680 [label=48.0]
-	n140589003140456 -> n140589003140680
-	n140589003140680 [label=48.0]
-	n140589003140792 [label="*"]
-	n140589002481224 [label="-"]
-	n140589003140792 -> n140589002481224
-	n140589002859408 [label="*"]
-	n140589003140792 -> n140589002859408
-	n140589002859408 [label="*"]
-	n140589003140680 [label=48.0]
-	n140589002859408 -> n140589003140680
-	n140589003140120 [label="*"]
-	n140589002859408 -> n140589003140120
-	n140589003140904 [label="-"]
-	n140589003140120 [label="*"]
-	n140589003140904 -> n140589003140120
-	n140589003140960 [label=0.5]
-	n140589003140904 -> n140589003140960
-	n140589003140960 [label=0.5]
-	n140589003589000 [label="*"]
-	n140589002481224 [label="-"]
-	n140589003589000 -> n140589002481224
-	n140589002963264 [label="*"]
-	n140589003589000 -> n140589002963264
-	n140589002963264 [label="*"]
-	n140589002859408 [label="*"]
-	n140589002963264 -> n140589002859408
-	n140589003140904 [label="-"]
-	n140589002963264 -> n140589003140904
-	n140589003591520 [label="*"]
-	n140589002481224 [label="-"]
-	n140589003591520 -> n140589002481224
-	n140589002548952 [label="*"]
-	n140589003591520 -> n140589002548952
-	n140589002548952 [label="*"]
-	n140589002963264 [label="*"]
-	n140589002548952 -> n140589002963264
-	n140589003139840 [label="/"]
-	n140589002548952 -> n140589003139840
-	n140589003591576 [label="*"]
-	n140589002481224 [label="-"]
-	n140589003591576 -> n140589002481224
-	n140589002548952 [label="*"]
-	n140589003591576 -> n140589002548952
-	n140589003591352 [label="+"]
-	n140589003139784 [label=PropertyAccess]
-	n140589003591352 -> n140589003139784
-	n140589003591576 [label="*"]
-	n140589003591352 -> n140589003591576
-	n140589003272320 [label=Assign]
-	n140589003273216 [label=VectorAccess]
-	n140589003272320 -> n140589003273216
-	n140589003272768 [label=VectorAccess]
-	n140589003272320 -> n140589003272768
-	n140589003274112 [label=VectorAccess]
-	n140589003272320 -> n140589003274112
-	n140589003273664 [label=VectorAccess]
-	n140589003272320 -> n140589003273664
-	n140589003275008 [label=VectorAccess]
-	n140589003272320 -> n140589003275008
-	n140589003274560 [label=VectorAccess]
-	n140589003272320 -> n140589003274560
-	n140589003273216 [label=VectorAccess]
-	n140589003139784 [label=PropertyAccess]
-	n140589003273216 -> n140589003139784
-	n140589003272768 [label=VectorAccess]
-	n140589003591352 [label="+"]
-	n140589003272768 -> n140589003591352
-	n140589003274112 [label=VectorAccess]
-	n140589003139784 [label=PropertyAccess]
-	n140589003274112 -> n140589003139784
-	n140589003273664 [label=VectorAccess]
-	n140589003591352 [label="+"]
-	n140589003273664 -> n140589003591352
-	n140589003275008 [label=VectorAccess]
-	n140589003139784 [label=PropertyAccess]
-	n140589003275008 -> n140589003139784
-	n140589003274560 [label=VectorAccess]
-	n140589003591352 [label="+"]
-	n140589003274560 -> n140589003591352
-	n140589002480608 [label=0]
-	n140589002480440 [label=ArrayAccess]
-	n140589003590904 [label=numneighs]
-	n140589002480440 -> n140589003590904
-	n140589002480160 [label="Iter(14)"]
-	n140589002480440 -> n140589002480160
-	n140589003590904 [label=numneighs]
-	n140589002480216 [label=0]
-	n140589002480272 [label=0]
-	n140589003139616 [label=KernelBlock]
-	n140589003138160 [label=Block]
-	n140589003139616 -> n140589003138160
-	n140589003138160 [label=Block]
-	n140589003138216 [label=ParticleFor]
-	n140589003138160 -> n140589003138216
-	n140589003138216 [label=ParticleFor]
-	n140589003138104 [label="Iter(0)"]
-	n140589003138216 -> n140589003138104
-	n140589003137096 [label=Block]
-	n140589003138216 -> n140589003137096
-	n140589003140624 [label=0]
-	n140589003138216 -> n140589003140624
-	n140589003137152 [label=0]
-	n140589003138216 -> n140589003137152
-	n140589003138104 [label="Iter(0)"]
-	n140589003137096 [label=Block]
-	n140589003275848 [label=Assign]
-	n140589003137096 -> n140589003275848
-	n140589003321128 [label=Assign]
-	n140589003137096 -> n140589003321128
-	n140589003275120 [label=PropertyAccess]
-	n140589003589336 [label=velocity]
-	n140589003275120 -> n140589003589336
-	n140589003138104 [label="Iter(0)"]
-	n140589003275120 -> n140589003138104
-	n140589003317376 [label="*"]
-	n140589003275120 -> n140589003317376
-	n140589003319112 [label="+"]
-	n140589003275120 -> n140589003319112
-	n140589003320344 [label="+"]
-	n140589003275120 -> n140589003320344
-	n140589003589336 [label=velocity]
-	n140589003317376 [label="*"]
-	n140589003138104 [label="Iter(0)"]
-	n140589003317376 -> n140589003138104
-	n140589003317768 [label=3]
-	n140589003317376 -> n140589003317768
-	n140589003317768 [label=3]
-	n140589003319112 [label="+"]
-	n140589003318608 [label="*"]
-	n140589003319112 -> n140589003318608
-	n140589003319168 [label=1]
-	n140589003319112 -> n140589003319168
-	n140589003318608 [label="*"]
-	n140589003138104 [label="Iter(0)"]
-	n140589003318608 -> n140589003138104
-	n140589003319000 [label=3]
-	n140589003318608 -> n140589003319000
-	n140589003319000 [label=3]
-	n140589003319168 [label=1]
-	n140589003320344 [label="+"]
-	n140589003319840 [label="*"]
-	n140589003320344 -> n140589003319840
-	n140589003320400 [label=2]
-	n140589003320344 -> n140589003320400
-	n140589003319840 [label="*"]
-	n140589003138104 [label="Iter(0)"]
-	n140589003319840 -> n140589003138104
-	n140589003320232 [label=3]
-	n140589003319840 -> n140589003320232
-	n140589003320232 [label=3]
-	n140589003320400 [label=2]
-	n140589003275232 [label=PropertyAccess]
-	n140589003589392 [label=force]
-	n140589003275232 -> n140589003589392
-	n140589003138104 [label="Iter(0)"]
-	n140589003275232 -> n140589003138104
-	n140589003317432 [label="*"]
-	n140589003275232 -> n140589003317432
-	n140589003318832 [label="+"]
-	n140589003275232 -> n140589003318832
-	n140589003320064 [label="+"]
-	n140589003275232 -> n140589003320064
-	n140589003317432 [label="*"]
-	n140589003138104 [label="Iter(0)"]
-	n140589003317432 -> n140589003138104
-	n140589003317488 [label=3]
-	n140589003317432 -> n140589003317488
-	n140589003317488 [label=3]
-	n140589003318832 [label="+"]
-	n140589003318664 [label="*"]
-	n140589003318832 -> n140589003318664
-	n140589003318888 [label=1]
-	n140589003318832 -> n140589003318888
-	n140589003318664 [label="*"]
-	n140589003138104 [label="Iter(0)"]
-	n140589003318664 -> n140589003138104
-	n140589003318720 [label=3]
-	n140589003318664 -> n140589003318720
-	n140589003318720 [label=3]
-	n140589003318888 [label=1]
-	n140589003320064 [label="+"]
-	n140589003319896 [label="*"]
-	n140589003320064 -> n140589003319896
-	n140589003320120 [label=2]
-	n140589003320064 -> n140589003320120
-	n140589003319896 [label="*"]
-	n140589003138104 [label="Iter(0)"]
-	n140589003319896 -> n140589003138104
-	n140589003319952 [label=3]
-	n140589003319896 -> n140589003319952
-	n140589003319952 [label=3]
-	n140589003320120 [label=2]
-	n140589003275344 [label="*"]
-	n140589003275400 [label=0.005]
-	n140589003275344 -> n140589003275400
-	n140589003275232 [label=PropertyAccess]
-	n140589003275344 -> n140589003275232
-	n140589003275400 [label=0.005]
-	n140589003275512 [label=PropertyAccess]
-	n140589003589224 [label=mass]
-	n140589003275512 -> n140589003589224
-	n140589003138104 [label="Iter(0)"]
-	n140589003275512 -> n140589003138104
-	n140589003589224 [label=mass]
-	n140589003275624 [label="/"]
-	n140589003275344 [label="*"]
-	n140589003275624 -> n140589003275344
-	n140589003275512 [label=PropertyAccess]
-	n140589003275624 -> n140589003275512
-	n140589003275736 [label="+"]
-	n140589003275120 [label=PropertyAccess]
-	n140589003275736 -> n140589003275120
-	n140589003275624 [label="/"]
-	n140589003275736 -> n140589003275624
-	n140589003275960 [label="*"]
-	n140589003138104 [label="Iter(0)"]
-	n140589003275960 -> n140589003138104
-	n140589003276016 [label=3]
-	n140589003275960 -> n140589003276016
-	n140589003276016 [label=3]
-	n140589003318216 [label="*"]
-	n140589003138104 [label="Iter(0)"]
-	n140589003318216 -> n140589003138104
-	n140589003318272 [label=3]
-	n140589003318216 -> n140589003318272
-	n140589003318272 [label=3]
-	n140589003318384 [label="+"]
-	n140589003318216 [label="*"]
-	n140589003318384 -> n140589003318216
-	n140589003318440 [label=1]
-	n140589003318384 -> n140589003318440
-	n140589003318440 [label=1]
-	n140589003319448 [label="*"]
-	n140589003138104 [label="Iter(0)"]
-	n140589003319448 -> n140589003138104
-	n140589003319504 [label=3]
-	n140589003319448 -> n140589003319504
-	n140589003319504 [label=3]
-	n140589003319616 [label="+"]
-	n140589003319448 [label="*"]
-	n140589003319616 -> n140589003319448
-	n140589003319672 [label=2]
-	n140589003319616 -> n140589003319672
-	n140589003319672 [label=2]
-	n140589003275848 [label=Assign]
-	n140589003318104 [label=VectorAccess]
-	n140589003275848 -> n140589003318104
-	n140589003317320 [label=VectorAccess]
-	n140589003275848 -> n140589003317320
-	n140589003319336 [label=VectorAccess]
-	n140589003275848 -> n140589003319336
-	n140589003318552 [label=VectorAccess]
-	n140589003275848 -> n140589003318552
-	n140589003320568 [label=VectorAccess]
-	n140589003275848 -> n140589003320568
-	n140589003319784 [label=VectorAccess]
-	n140589003275848 -> n140589003319784
-	n140589003318104 [label=VectorAccess]
-	n140589003275120 [label=PropertyAccess]
-	n140589003318104 -> n140589003275120
-	n140589003317320 [label=VectorAccess]
-	n140589003275736 [label="+"]
-	n140589003317320 -> n140589003275736
-	n140589003319336 [label=VectorAccess]
-	n140589003275120 [label=PropertyAccess]
-	n140589003319336 -> n140589003275120
-	n140589003318552 [label=VectorAccess]
-	n140589003275736 [label="+"]
-	n140589003318552 -> n140589003275736
-	n140589003320568 [label=VectorAccess]
-	n140589003275120 [label=PropertyAccess]
-	n140589003320568 -> n140589003275120
-	n140589003319784 [label=VectorAccess]
-	n140589003275736 [label="+"]
-	n140589003319784 -> n140589003275736
-	n140589003320624 [label=PropertyAccess]
-	n140589003589280 [label=position]
-	n140589003320624 -> n140589003589280
-	n140589003138104 [label="Iter(0)"]
-	n140589003320624 -> n140589003138104
-	n140589003354800 [label="*"]
-	n140589003320624 -> n140589003354800
-	n140589003356200 [label="+"]
-	n140589003320624 -> n140589003356200
-	n140589003357432 [label="+"]
-	n140589003320624 -> n140589003357432
-	n140589003354800 [label="*"]
-	n140589003138104 [label="Iter(0)"]
-	n140589003354800 -> n140589003138104
-	n140589003354856 [label=3]
-	n140589003354800 -> n140589003354856
-	n140589003354856 [label=3]
-	n140589003356200 [label="+"]
-	n140589003356032 [label="*"]
-	n140589003356200 -> n140589003356032
-	n140589003356256 [label=1]
-	n140589003356200 -> n140589003356256
-	n140589003356032 [label="*"]
-	n140589003138104 [label="Iter(0)"]
-	n140589003356032 -> n140589003138104
-	n140589003356088 [label=3]
-	n140589003356032 -> n140589003356088
-	n140589003356088 [label=3]
-	n140589003356256 [label=1]
-	n140589003357432 [label="+"]
-	n140589003357264 [label="*"]
-	n140589003357432 -> n140589003357264
-	n140589003357488 [label=2]
-	n140589003357432 -> n140589003357488
-	n140589003357264 [label="*"]
-	n140589003138104 [label="Iter(0)"]
-	n140589003357264 -> n140589003138104
-	n140589003357320 [label=3]
-	n140589003357264 -> n140589003357320
-	n140589003357320 [label=3]
-	n140589003357488 [label=2]
-	n140589003320736 [label=PropertyAccess]
-	n140589003589336 [label=velocity]
-	n140589003320736 -> n140589003589336
-	n140589003138104 [label="Iter(0)"]
-	n140589003320736 -> n140589003138104
-	n140589003354464 [label="*"]
-	n140589003320736 -> n140589003354464
-	n140589003355864 [label="+"]
-	n140589003320736 -> n140589003355864
-	n140589003357096 [label="+"]
-	n140589003320736 -> n140589003357096
-	n140589003354464 [label="*"]
-	n140589003138104 [label="Iter(0)"]
-	n140589003354464 -> n140589003138104
-	n140589003354520 [label=3]
-	n140589003354464 -> n140589003354520
-	n140589003354520 [label=3]
-	n140589003355864 [label="+"]
-	n140589003355696 [label="*"]
-	n140589003355864 -> n140589003355696
-	n140589003355920 [label=1]
-	n140589003355864 -> n140589003355920
-	n140589003355696 [label="*"]
-	n140589003138104 [label="Iter(0)"]
-	n140589003355696 -> n140589003138104
-	n140589003355752 [label=3]
-	n140589003355696 -> n140589003355752
-	n140589003355752 [label=3]
-	n140589003355920 [label=1]
-	n140589003357096 [label="+"]
-	n140589003356928 [label="*"]
-	n140589003357096 -> n140589003356928
-	n140589003357152 [label=2]
-	n140589003357096 -> n140589003357152
-	n140589003356928 [label="*"]
-	n140589003138104 [label="Iter(0)"]
-	n140589003356928 -> n140589003138104
-	n140589003356984 [label=3]
-	n140589003356928 -> n140589003356984
-	n140589003356984 [label=3]
-	n140589003357152 [label=2]
-	n140589003320848 [label="*"]
-	n140589003320904 [label=0.005]
-	n140589003320848 -> n140589003320904
-	n140589003320736 [label=PropertyAccess]
-	n140589003320848 -> n140589003320736
-	n140589003320904 [label=0.005]
-	n140589003321016 [label="+"]
-	n140589003320624 [label=PropertyAccess]
-	n140589003321016 -> n140589003320624
-	n140589003320848 [label="*"]
-	n140589003321016 -> n140589003320848
-	n140589003321240 [label="*"]
-	n140589003138104 [label="Iter(0)"]
-	n140589003321240 -> n140589003138104
-	n140589003321296 [label=3]
-	n140589003321240 -> n140589003321296
-	n140589003321296 [label=3]
-	n140589003355304 [label="*"]
-	n140589003138104 [label="Iter(0)"]
-	n140589003355304 -> n140589003138104
-	n140589003355360 [label=3]
-	n140589003355304 -> n140589003355360
-	n140589003355360 [label=3]
-	n140589003355472 [label="+"]
-	n140589003355304 [label="*"]
-	n140589003355472 -> n140589003355304
-	n140589003355528 [label=1]
-	n140589003355472 -> n140589003355528
-	n140589003355528 [label=1]
-	n140589003356536 [label="*"]
-	n140589003138104 [label="Iter(0)"]
-	n140589003356536 -> n140589003138104
-	n140589003356592 [label=3]
-	n140589003356536 -> n140589003356592
-	n140589003356592 [label=3]
-	n140589003356704 [label="+"]
-	n140589003356536 [label="*"]
-	n140589003356704 -> n140589003356536
-	n140589003356760 [label=2]
-	n140589003356704 -> n140589003356760
-	n140589003356760 [label=2]
-	n140589003321128 [label=Assign]
-	n140589003355192 [label=VectorAccess]
-	n140589003321128 -> n140589003355192
-	n140589003354408 [label=VectorAccess]
-	n140589003321128 -> n140589003354408
-	n140589003356424 [label=VectorAccess]
-	n140589003321128 -> n140589003356424
-	n140589003355640 [label=VectorAccess]
-	n140589003321128 -> n140589003355640
-	n140589003357656 [label=VectorAccess]
-	n140589003321128 -> n140589003357656
-	n140589003356872 [label=VectorAccess]
-	n140589003321128 -> n140589003356872
-	n140589003355192 [label=VectorAccess]
-	n140589003320624 [label=PropertyAccess]
-	n140589003355192 -> n140589003320624
-	n140589003354408 [label=VectorAccess]
-	n140589003321016 [label="+"]
-	n140589003354408 -> n140589003321016
-	n140589003356424 [label=VectorAccess]
-	n140589003320624 [label=PropertyAccess]
-	n140589003356424 -> n140589003320624
-	n140589003355640 [label=VectorAccess]
-	n140589003321016 [label="+"]
-	n140589003355640 -> n140589003321016
-	n140589003357656 [label=VectorAccess]
-	n140589003320624 [label=PropertyAccess]
-	n140589003357656 -> n140589003320624
-	n140589003356872 [label=VectorAccess]
-	n140589003321016 [label="+"]
-	n140589003356872 -> n140589003321016
-	n140589003140624 [label=0]
-	n140589003137152 [label=0]
-	n140589003137824 [label="%"]
-	n140589003139000 [label="Iter(1)"]
-	n140589003137824 -> n140589003139000
-	n140589003137880 [label=20]
-	n140589003137824 -> n140589003137880
-	n140589003139000 [label="Iter(1)"]
-	n140589003137880 [label=20]
-	n140589003137488 [label="=="]
-	n140589003137824 [label="%"]
-	n140589003137488 -> n140589003137824
-	n140589003137320 [label=0]
-	n140589003137488 -> n140589003137320
-	n140589003137320 [label=0]
-	n140589003138832 [label="%"]
-	n140589003139000 [label="Iter(1)"]
-	n140589003138832 -> n140589003139000
-	n140589003138440 [label=20]
-	n140589003138832 -> n140589003138440
-	n140589003138440 [label=20]
-	n140589003138608 [label="=="]
-	n140589003138832 [label="%"]
-	n140589003138608 -> n140589003138832
-	n140589003138664 [label=0]
-	n140589003138608 -> n140589003138664
-	n140589003138664 [label=0]
-	n140589003138888 [label="%"]
-	n140589003139000 [label="Iter(1)"]
-	n140589003138888 -> n140589003139000
-	n140589003139112 [label=20]
-	n140589003138888 -> n140589003139112
-	n140589003139112 [label=20]
-	n140589003139672 [label="=="]
-	n140589003138888 [label="%"]
-	n140589003139672 -> n140589003138888
-	n140589003139728 [label=0]
-	n140589003139672 -> n140589003139728
-	n140589003139728 [label=0]
-	n140589003357824 [label="%"]
-	n140589003139000 [label="Iter(1)"]
-	n140589003357824 -> n140589003139000
-	n140589003357880 [label=20]
-	n140589003357824 -> n140589003357880
-	n140589003357880 [label=20]
-	n140589003357992 [label="=="]
-	n140589003357824 [label="%"]
-	n140589003357992 -> n140589003357824
-	n140589003358048 [label=0]
-	n140589003357992 -> n140589003358048
-	n140589003358048 [label=0]
-	n140589003137432 [label="+"]
-	n140589003139000 [label="Iter(1)"]
-	n140589003137432 -> n140589003139000
-	n140589002858680 [label=1]
-	n140589003137432 -> n140589002858680
-	n140589002858680 [label=1]
+	n139894378445120 [label=Block]
+	n139894377979128 [label=Module]
+	n139894378445120 -> n139894377979128
+	n139894377979184 [label=Module]
+	n139894378445120 -> n139894377979184
+	n139894377979128 [label=Module]
+	n139894377979072 [label=Block]
+	n139894377979128 -> n139894377979072
+	n139894377979072 [label=Block]
+	n139894377976328 [label=ParticleFor]
+	n139894377979072 -> n139894377976328
+	n139894377976328 [label=ParticleFor]
+	n139894377215144 [label=Block]
+	n139894377976328 -> n139894377215144
+	n139894380476008 [label=nlocal]
+	n139894377976328 -> n139894380476008
+	n139894377215144 [label=Block]
+	n139894377215312 [label=For]
+	n139894377215144 -> n139894377215312
+	n139894377215592 [label="*"]
+	n139894377214976 [label="Iter(14)"]
+	n139894377215592 -> n139894377214976
+	n139894377975880 [label=neighborlist_capacity]
+	n139894377215592 -> n139894377975880
+	n139894377214976 [label="Iter(14)"]
+	n139894377975880 [label=neighborlist_capacity]
+	n139894377215816 [label=PropertyAccess]
+	n139894378445344 [label=position]
+	n139894377215816 -> n139894378445344
+	n139894377214976 [label="Iter(14)"]
+	n139894377215816 -> n139894377214976
+	n139894377216992 [label="*"]
+	n139894377215816 -> n139894377216992
+	n139894377251672 [label="+"]
+	n139894377215816 -> n139894377251672
+	n139894377253464 [label="+"]
+	n139894377215816 -> n139894377253464
+	n139894378445344 [label=position]
+	n139894377216992 [label="*"]
+	n139894377214976 [label="Iter(14)"]
+	n139894377216992 -> n139894377214976
+	n139894377217048 [label=3]
+	n139894377216992 -> n139894377217048
+	n139894377217048 [label=3]
+	n139894377251672 [label="+"]
+	n139894377251504 [label="*"]
+	n139894377251672 -> n139894377251504
+	n139894377251728 [label=1]
+	n139894377251672 -> n139894377251728
+	n139894377251504 [label="*"]
+	n139894377214976 [label="Iter(14)"]
+	n139894377251504 -> n139894377214976
+	n139894377251560 [label=3]
+	n139894377251504 -> n139894377251560
+	n139894377251560 [label=3]
+	n139894377251728 [label=1]
+	n139894377253464 [label="+"]
+	n139894377253296 [label="*"]
+	n139894377253464 -> n139894377253296
+	n139894377253520 [label=2]
+	n139894377253464 -> n139894377253520
+	n139894377253296 [label="*"]
+	n139894377214976 [label="Iter(14)"]
+	n139894377253296 -> n139894377214976
+	n139894377253352 [label=3]
+	n139894377253296 -> n139894377253352
+	n139894377253352 [label=3]
+	n139894377253520 [label=2]
+	n139894377216208 [label="*"]
+	n139894377214976 [label="Iter(14)"]
+	n139894377216208 -> n139894377214976
+	n139894377216264 [label=3]
+	n139894377216208 -> n139894377216264
+	n139894377216264 [label=3]
+	n139894377217888 [label="*"]
+	n139894377214976 [label="Iter(14)"]
+	n139894377217888 -> n139894377214976
+	n139894377217944 [label=3]
+	n139894377217888 -> n139894377217944
+	n139894377217944 [label=3]
+	n139894377250888 [label="+"]
+	n139894377217888 [label="*"]
+	n139894377250888 -> n139894377217888
+	n139894377250944 [label=1]
+	n139894377250888 -> n139894377250944
+	n139894377250944 [label=1]
+	n139894377252512 [label="*"]
+	n139894377214976 [label="Iter(14)"]
+	n139894377252512 -> n139894377214976
+	n139894377252568 [label=3]
+	n139894377252512 -> n139894377252568
+	n139894377252568 [label=3]
+	n139894377252680 [label="+"]
+	n139894377252512 [label="*"]
+	n139894377252680 -> n139894377252512
+	n139894377252736 [label=2]
+	n139894377252680 -> n139894377252736
+	n139894377252736 [label=2]
+	n139894378124344 [label="*"]
+	n139894377214976 [label="Iter(14)"]
+	n139894378124344 -> n139894377214976
+	n139894378124400 [label=3]
+	n139894378124344 -> n139894378124400
+	n139894378124400 [label=3]
+	n139894378124736 [label="*"]
+	n139894377214976 [label="Iter(14)"]
+	n139894378124736 -> n139894377214976
+	n139894378124792 [label=3]
+	n139894378124736 -> n139894378124792
+	n139894378124792 [label=3]
+	n139894378125240 [label="*"]
+	n139894377214976 [label="Iter(14)"]
+	n139894378125240 -> n139894377214976
+	n139894378125296 [label=3]
+	n139894378125240 -> n139894378125296
+	n139894378125296 [label=3]
+	n139894378125408 [label="+"]
+	n139894378125240 [label="*"]
+	n139894378125408 -> n139894378125240
+	n139894378125464 [label=1]
+	n139894378125408 -> n139894378125464
+	n139894378125464 [label=1]
+	n139894378125632 [label="*"]
+	n139894377214976 [label="Iter(14)"]
+	n139894378125632 -> n139894377214976
+	n139894378125688 [label=3]
+	n139894378125632 -> n139894378125688
+	n139894378125688 [label=3]
+	n139894378125800 [label="+"]
+	n139894378125632 [label="*"]
+	n139894378125800 -> n139894378125632
+	n139894378125856 [label=1]
+	n139894378125800 -> n139894378125856
+	n139894378125856 [label=1]
+	n139894378126136 [label="*"]
+	n139894377214976 [label="Iter(14)"]
+	n139894378126136 -> n139894377214976
+	n139894378126192 [label=3]
+	n139894378126136 -> n139894378126192
+	n139894378126192 [label=3]
+	n139894378126304 [label="+"]
+	n139894378126136 [label="*"]
+	n139894378126304 -> n139894378126136
+	n139894378126360 [label=2]
+	n139894378126304 -> n139894378126360
+	n139894378126360 [label=2]
+	n139894378126528 [label="*"]
+	n139894377214976 [label="Iter(14)"]
+	n139894378126528 -> n139894377214976
+	n139894378126584 [label=3]
+	n139894378126528 -> n139894378126584
+	n139894378126584 [label=3]
+	n139894378126696 [label="+"]
+	n139894378126528 [label="*"]
+	n139894378126696 -> n139894378126528
+	n139894378126752 [label=2]
+	n139894378126696 -> n139894378126752
+	n139894378126752 [label=2]
+	n139894377215312 [label=For]
+	n139894377215368 [label="Iter(15)"]
+	n139894377215312 -> n139894377215368
+	n139894377215480 [label=Block]
+	n139894377215312 -> n139894377215480
+	n139894377215424 [label=0]
+	n139894377215312 -> n139894377215424
+	n139894377215256 [label=ArrayAccess]
+	n139894377215312 -> n139894377215256
+	n139894377215368 [label="Iter(15)"]
+	n139894377215480 [label=Block]
+	n139894377254416 [label=Filter]
+	n139894377215480 -> n139894377254416
+	n139894377215704 [label="+"]
+	n139894377215592 [label="*"]
+	n139894377215704 -> n139894377215592
+	n139894377215368 [label="Iter(15)"]
+	n139894377215704 -> n139894377215368
+	n139894377215928 [label=PropertyAccess]
+	n139894378445344 [label=position]
+	n139894377215928 -> n139894378445344
+	n139894377215536 [label=ArrayAccess]
+	n139894377215928 -> n139894377215536
+	n139894377217328 [label="*"]
+	n139894377215928 -> n139894377217328
+	n139894377252008 [label="+"]
+	n139894377215928 -> n139894377252008
+	n139894377253800 [label="+"]
+	n139894377215928 -> n139894377253800
+	n139894377215536 [label=ArrayAccess]
+	n139894377975936 [label=neighborlists]
+	n139894377215536 -> n139894377975936
+	n139894377215704 [label="+"]
+	n139894377215536 -> n139894377215704
+	n139894377975936 [label=neighborlists]
+	n139894377217328 [label="*"]
+	n139894377215536 [label=ArrayAccess]
+	n139894377217328 -> n139894377215536
+	n139894377217384 [label=3]
+	n139894377217328 -> n139894377217384
+	n139894377217384 [label=3]
+	n139894377252008 [label="+"]
+	n139894377251840 [label="*"]
+	n139894377252008 -> n139894377251840
+	n139894377252064 [label=1]
+	n139894377252008 -> n139894377252064
+	n139894377251840 [label="*"]
+	n139894377215536 [label=ArrayAccess]
+	n139894377251840 -> n139894377215536
+	n139894377251896 [label=3]
+	n139894377251840 -> n139894377251896
+	n139894377251896 [label=3]
+	n139894377252064 [label=1]
+	n139894377253800 [label="+"]
+	n139894377253632 [label="*"]
+	n139894377253800 -> n139894377253632
+	n139894377253856 [label=2]
+	n139894377253800 -> n139894377253856
+	n139894377253632 [label="*"]
+	n139894377215536 [label=ArrayAccess]
+	n139894377253632 -> n139894377215536
+	n139894377253688 [label=3]
+	n139894377253632 -> n139894377253688
+	n139894377253688 [label=3]
+	n139894377253856 [label=2]
+	n139894377216040 [label="-"]
+	n139894377215816 [label=PropertyAccess]
+	n139894377216040 -> n139894377215816
+	n139894377215928 [label=PropertyAccess]
+	n139894377216040 -> n139894377215928
+	n139894377216544 [label="*"]
+	n139894377215536 [label=ArrayAccess]
+	n139894377216544 -> n139894377215536
+	n139894377216600 [label=3]
+	n139894377216544 -> n139894377216600
+	n139894377216600 [label=3]
+	n139894377217720 [label="*"]
+	n139894377216880 [label=VectorAccess]
+	n139894377217720 -> n139894377216880
+	n139894377217664 [label=VectorAccess]
+	n139894377217720 -> n139894377217664
+	n139894377216880 [label=VectorAccess]
+	n139894377216040 [label="-"]
+	n139894377216880 -> n139894377216040
+	n139894377217664 [label=VectorAccess]
+	n139894377216040 [label="-"]
+	n139894377217664 -> n139894377216040
+	n139894377251056 [label="*"]
+	n139894377215536 [label=ArrayAccess]
+	n139894377251056 -> n139894377215536
+	n139894377251112 [label=3]
+	n139894377251056 -> n139894377251112
+	n139894377251112 [label=3]
+	n139894377251224 [label="+"]
+	n139894377251056 [label="*"]
+	n139894377251224 -> n139894377251056
+	n139894377251280 [label=1]
+	n139894377251224 -> n139894377251280
+	n139894377251280 [label=1]
+	n139894377252232 [label="*"]
+	n139894377251392 [label=VectorAccess]
+	n139894377252232 -> n139894377251392
+	n139894377252176 [label=VectorAccess]
+	n139894377252232 -> n139894377252176
+	n139894377251392 [label=VectorAccess]
+	n139894377216040 [label="-"]
+	n139894377251392 -> n139894377216040
+	n139894377252176 [label=VectorAccess]
+	n139894377216040 [label="-"]
+	n139894377252176 -> n139894377216040
+	n139894377252344 [label="+"]
+	n139894377217720 [label="*"]
+	n139894377252344 -> n139894377217720
+	n139894377252232 [label="*"]
+	n139894377252344 -> n139894377252232
+	n139894377252848 [label="*"]
+	n139894377215536 [label=ArrayAccess]
+	n139894377252848 -> n139894377215536
+	n139894377252904 [label=3]
+	n139894377252848 -> n139894377252904
+	n139894377252904 [label=3]
+	n139894377253016 [label="+"]
+	n139894377252848 [label="*"]
+	n139894377253016 -> n139894377252848
+	n139894377253072 [label=2]
+	n139894377253016 -> n139894377253072
+	n139894377253072 [label=2]
+	n139894377254024 [label="*"]
+	n139894377253184 [label=VectorAccess]
+	n139894377254024 -> n139894377253184
+	n139894377253968 [label=VectorAccess]
+	n139894377254024 -> n139894377253968
+	n139894377253184 [label=VectorAccess]
+	n139894377216040 [label="-"]
+	n139894377253184 -> n139894377216040
+	n139894377253968 [label=VectorAccess]
+	n139894377216040 [label="-"]
+	n139894377253968 -> n139894377216040
+	n139894377254136 [label="+"]
+	n139894377252344 [label="+"]
+	n139894377254136 -> n139894377252344
+	n139894377254024 [label="*"]
+	n139894377254136 -> n139894377254024
+	n139894377254248 [label="<"]
+	n139894377254136 [label="+"]
+	n139894377254248 -> n139894377254136
+	n139894377254304 [label=2.5]
+	n139894377254248 -> n139894377254304
+	n139894377254304 [label=2.5]
+	n139894377254416 [label=Filter]
+	n139894377254248 [label="<"]
+	n139894377254416 -> n139894377254248
+	n139894377979016 [label=Block]
+	n139894377254416 -> n139894377979016
+	n139894377979016 [label=Block]
+	n139894378124232 [label=Assign]
+	n139894377979016 -> n139894378124232
+	n139894377979352 [label="/"]
+	n139894381174120 [label=1.0]
+	n139894377979352 -> n139894381174120
+	n139894377254136 [label="+"]
+	n139894377979352 -> n139894377254136
+	n139894381174120 [label=1.0]
+	n139894377979464 [label="*"]
+	n139894377979352 [label="/"]
+	n139894377979464 -> n139894377979352
+	n139894377979352 [label="/"]
+	n139894377979464 -> n139894377979352
+	n139894377979576 [label="*"]
+	n139894377979464 [label="*"]
+	n139894377979576 -> n139894377979464
+	n139894377979352 [label="/"]
+	n139894377979576 -> n139894377979352
+	n139894377979296 [label=PropertyAccess]
+	n139894378445456 [label=force]
+	n139894377979296 -> n139894378445456
+	n139894377214976 [label="Iter(14)"]
+	n139894377979296 -> n139894377214976
+	n139894378124736 [label="*"]
+	n139894377979296 -> n139894378124736
+	n139894378125800 [label="+"]
+	n139894377979296 -> n139894378125800
+	n139894378126696 [label="+"]
+	n139894377979296 -> n139894378126696
+	n139894378445456 [label=force]
+	n139894377976552 [label="*"]
+	n139894377216040 [label="-"]
+	n139894377976552 -> n139894377216040
+	n139894378123336 [label=48.0]
+	n139894377976552 -> n139894378123336
+	n139894378123336 [label=48.0]
+	n139894378123448 [label="*"]
+	n139894377216040 [label="-"]
+	n139894378123448 -> n139894377216040
+	n139894377694768 [label="*"]
+	n139894378123448 -> n139894377694768
+	n139894377694768 [label="*"]
+	n139894378123336 [label=48.0]
+	n139894377694768 -> n139894378123336
+	n139894377979576 [label="*"]
+	n139894377694768 -> n139894377979576
+	n139894378123560 [label="-"]
+	n139894377979576 [label="*"]
+	n139894378123560 -> n139894377979576
+	n139894378123616 [label=0.5]
+	n139894378123560 -> n139894378123616
+	n139894378123616 [label=0.5]
+	n139894378123728 [label="*"]
+	n139894377216040 [label="-"]
+	n139894378123728 -> n139894377216040
+	n139894377694264 [label="*"]
+	n139894378123728 -> n139894377694264
+	n139894377694264 [label="*"]
+	n139894377694768 [label="*"]
+	n139894377694264 -> n139894377694768
+	n139894378123560 [label="-"]
+	n139894377694264 -> n139894378123560
+	n139894378123840 [label="*"]
+	n139894377216040 [label="-"]
+	n139894378123840 -> n139894377216040
+	n139894377977672 [label="*"]
+	n139894378123840 -> n139894377977672
+	n139894377977672 [label="*"]
+	n139894377694264 [label="*"]
+	n139894377977672 -> n139894377694264
+	n139894377979352 [label="/"]
+	n139894377977672 -> n139894377979352
+	n139894378123952 [label="*"]
+	n139894377216040 [label="-"]
+	n139894378123952 -> n139894377216040
+	n139894377977672 [label="*"]
+	n139894378123952 -> n139894377977672
+	n139894378124120 [label="+"]
+	n139894377979296 [label=PropertyAccess]
+	n139894378124120 -> n139894377979296
+	n139894378123952 [label="*"]
+	n139894378124120 -> n139894378123952
+	n139894378124232 [label=Assign]
+	n139894378125128 [label=VectorAccess]
+	n139894378124232 -> n139894378125128
+	n139894378124680 [label=VectorAccess]
+	n139894378124232 -> n139894378124680
+	n139894378126024 [label=VectorAccess]
+	n139894378124232 -> n139894378126024
+	n139894378125576 [label=VectorAccess]
+	n139894378124232 -> n139894378125576
+	n139894378126920 [label=VectorAccess]
+	n139894378124232 -> n139894378126920
+	n139894378126472 [label=VectorAccess]
+	n139894378124232 -> n139894378126472
+	n139894378125128 [label=VectorAccess]
+	n139894377979296 [label=PropertyAccess]
+	n139894378125128 -> n139894377979296
+	n139894378124680 [label=VectorAccess]
+	n139894378124120 [label="+"]
+	n139894378124680 -> n139894378124120
+	n139894378126024 [label=VectorAccess]
+	n139894377979296 [label=PropertyAccess]
+	n139894378126024 -> n139894377979296
+	n139894378125576 [label=VectorAccess]
+	n139894378124120 [label="+"]
+	n139894378125576 -> n139894378124120
+	n139894378126920 [label=VectorAccess]
+	n139894377979296 [label=PropertyAccess]
+	n139894378126920 -> n139894377979296
+	n139894378126472 [label=VectorAccess]
+	n139894378124120 [label="+"]
+	n139894378126472 -> n139894378124120
+	n139894377215424 [label=0]
+	n139894377215256 [label=ArrayAccess]
+	n139894377975992 [label=numneighs]
+	n139894377215256 -> n139894377975992
+	n139894377214976 [label="Iter(14)"]
+	n139894377215256 -> n139894377214976
+	n139894377975992 [label=numneighs]
+	n139894380476008 [label=nlocal]
+	n139894377979184 [label=Module]
+	n139894377976440 [label=Block]
+	n139894377979184 -> n139894377976440
+	n139894377976440 [label=Block]
+	n139894377978736 [label=ParticleFor]
+	n139894377976440 -> n139894377978736
+	n139894377978736 [label=ParticleFor]
+	n139894377976664 [label=Block]
+	n139894377978736 -> n139894377976664
+	n139894380476008 [label=nlocal]
+	n139894377978736 -> n139894380476008
+	n139894377976664 [label=Block]
+	n139894378172880 [label=Assign]
+	n139894377976664 -> n139894378172880
+	n139894378193528 [label=Assign]
+	n139894377976664 -> n139894378193528
+	n139894378127032 [label=PropertyAccess]
+	n139894378445400 [label=velocity]
+	n139894378127032 -> n139894378445400
+	n139894377977728 [label="Iter(0)"]
+	n139894378127032 -> n139894377977728
+	n139894378173384 [label="*"]
+	n139894378127032 -> n139894378173384
+	n139894378175120 [label="+"]
+	n139894378127032 -> n139894378175120
+	n139894378176296 [label="+"]
+	n139894378127032 -> n139894378176296
+	n139894378445400 [label=velocity]
+	n139894377977728 [label="Iter(0)"]
+	n139894378173384 [label="*"]
+	n139894377977728 [label="Iter(0)"]
+	n139894378173384 -> n139894377977728
+	n139894378173776 [label=3]
+	n139894378173384 -> n139894378173776
+	n139894378173776 [label=3]
+	n139894378175120 [label="+"]
+	n139894378174616 [label="*"]
+	n139894378175120 -> n139894378174616
+	n139894379473608 [label=1]
+	n139894378175120 -> n139894379473608
+	n139894378174616 [label="*"]
+	n139894377977728 [label="Iter(0)"]
+	n139894378174616 -> n139894377977728
+	n139894378175008 [label=3]
+	n139894378174616 -> n139894378175008
+	n139894378175008 [label=3]
+	n139894379473608 [label=1]
+	n139894378176296 [label="+"]
+	n139894378175792 [label="*"]
+	n139894378176296 -> n139894378175792
+	n139894378176352 [label=2]
+	n139894378176296 -> n139894378176352
+	n139894378175792 [label="*"]
+	n139894377977728 [label="Iter(0)"]
+	n139894378175792 -> n139894377977728
+	n139894378176184 [label=3]
+	n139894378175792 -> n139894378176184
+	n139894378176184 [label=3]
+	n139894378176352 [label=2]
+	n139894378127144 [label=PropertyAccess]
+	n139894378445456 [label=force]
+	n139894378127144 -> n139894378445456
+	n139894377977728 [label="Iter(0)"]
+	n139894378127144 -> n139894377977728
+	n139894378173440 [label="*"]
+	n139894378127144 -> n139894378173440
+	n139894378174840 [label="+"]
+	n139894378127144 -> n139894378174840
+	n139894378176016 [label="+"]
+	n139894378127144 -> n139894378176016
+	n139894378173440 [label="*"]
+	n139894377977728 [label="Iter(0)"]
+	n139894378173440 -> n139894377977728
+	n139894378173496 [label=3]
+	n139894378173440 -> n139894378173496
+	n139894378173496 [label=3]
+	n139894378174840 [label="+"]
+	n139894378174672 [label="*"]
+	n139894378174840 -> n139894378174672
+	n139894378174896 [label=1]
+	n139894378174840 -> n139894378174896
+	n139894378174672 [label="*"]
+	n139894377977728 [label="Iter(0)"]
+	n139894378174672 -> n139894377977728
+	n139894378174728 [label=3]
+	n139894378174672 -> n139894378174728
+	n139894378174728 [label=3]
+	n139894378174896 [label=1]
+	n139894378176016 [label="+"]
+	n139894378175848 [label="*"]
+	n139894378176016 -> n139894378175848
+	n139894378176072 [label=2]
+	n139894378176016 -> n139894378176072
+	n139894378175848 [label="*"]
+	n139894377977728 [label="Iter(0)"]
+	n139894378175848 -> n139894377977728
+	n139894378175904 [label=3]
+	n139894378175848 -> n139894378175904
+	n139894378175904 [label=3]
+	n139894378176072 [label=2]
+	n139894378127256 [label="*"]
+	n139894378127312 [label=0.005]
+	n139894378127256 -> n139894378127312
+	n139894378127144 [label=PropertyAccess]
+	n139894378127256 -> n139894378127144
+	n139894378127312 [label=0.005]
+	n139894378172544 [label=PropertyAccess]
+	n139894378445288 [label=mass]
+	n139894378172544 -> n139894378445288
+	n139894377977728 [label="Iter(0)"]
+	n139894378172544 -> n139894377977728
+	n139894378445288 [label=mass]
+	n139894378172656 [label="/"]
+	n139894378127256 [label="*"]
+	n139894378172656 -> n139894378127256
+	n139894378172544 [label=PropertyAccess]
+	n139894378172656 -> n139894378172544
+	n139894378172768 [label="+"]
+	n139894378127032 [label=PropertyAccess]
+	n139894378172768 -> n139894378127032
+	n139894378172656 [label="/"]
+	n139894378172768 -> n139894378172656
+	n139894378172992 [label="*"]
+	n139894377977728 [label="Iter(0)"]
+	n139894378172992 -> n139894377977728
+	n139894378173048 [label=3]
+	n139894378172992 -> n139894378173048
+	n139894378173048 [label=3]
+	n139894378174224 [label="*"]
+	n139894377977728 [label="Iter(0)"]
+	n139894378174224 -> n139894377977728
+	n139894378174280 [label=3]
+	n139894378174224 -> n139894378174280
+	n139894378174280 [label=3]
+	n139894378174392 [label="+"]
+	n139894378174224 [label="*"]
+	n139894378174392 -> n139894378174224
+	n139894378174448 [label=1]
+	n139894378174392 -> n139894378174448
+	n139894378174448 [label=1]
+	n139894378175400 [label="*"]
+	n139894377977728 [label="Iter(0)"]
+	n139894378175400 -> n139894377977728
+	n139894378175456 [label=3]
+	n139894378175400 -> n139894378175456
+	n139894378175456 [label=3]
+	n139894378175568 [label="+"]
+	n139894378175400 [label="*"]
+	n139894378175568 -> n139894378175400
+	n139894378175624 [label=2]
+	n139894378175568 -> n139894378175624
+	n139894378175624 [label=2]
+	n139894378172880 [label=Assign]
+	n139894378174112 [label=VectorAccess]
+	n139894378172880 -> n139894378174112
+	n139894378173328 [label=VectorAccess]
+	n139894378172880 -> n139894378173328
+	n139894378175288 [label=VectorAccess]
+	n139894378172880 -> n139894378175288
+	n139894378174560 [label=VectorAccess]
+	n139894378172880 -> n139894378174560
+	n139894378192968 [label=VectorAccess]
+	n139894378172880 -> n139894378192968
+	n139894378175736 [label=VectorAccess]
+	n139894378172880 -> n139894378175736
+	n139894378174112 [label=VectorAccess]
+	n139894378127032 [label=PropertyAccess]
+	n139894378174112 -> n139894378127032
+	n139894378173328 [label=VectorAccess]
+	n139894378172768 [label="+"]
+	n139894378173328 -> n139894378172768
+	n139894378175288 [label=VectorAccess]
+	n139894378127032 [label=PropertyAccess]
+	n139894378175288 -> n139894378127032
+	n139894378174560 [label=VectorAccess]
+	n139894378172768 [label="+"]
+	n139894378174560 -> n139894378172768
+	n139894378192968 [label=VectorAccess]
+	n139894378127032 [label=PropertyAccess]
+	n139894378192968 -> n139894378127032
+	n139894378175736 [label=VectorAccess]
+	n139894378172768 [label="+"]
+	n139894378175736 -> n139894378172768
+	n139894378193024 [label=PropertyAccess]
+	n139894378445344 [label=position]
+	n139894378193024 -> n139894378445344
+	n139894377977728 [label="Iter(0)"]
+	n139894378193024 -> n139894377977728
+	n139894378194368 [label="*"]
+	n139894378193024 -> n139894378194368
+	n139894378195768 [label="+"]
+	n139894378193024 -> n139894378195768
+	n139894377693256 [label="+"]
+	n139894378193024 -> n139894377693256
+	n139894378194368 [label="*"]
+	n139894377977728 [label="Iter(0)"]
+	n139894378194368 -> n139894377977728
+	n139894378194424 [label=3]
+	n139894378194368 -> n139894378194424
+	n139894378194424 [label=3]
+	n139894378195768 [label="+"]
+	n139894378195600 [label="*"]
+	n139894378195768 -> n139894378195600
+	n139894378195824 [label=1]
+	n139894378195768 -> n139894378195824
+	n139894378195600 [label="*"]
+	n139894377977728 [label="Iter(0)"]
+	n139894378195600 -> n139894377977728
+	n139894378195656 [label=3]
+	n139894378195600 -> n139894378195656
+	n139894378195656 [label=3]
+	n139894378195824 [label=1]
+	n139894377693256 [label="+"]
+	n139894378196832 [label="*"]
+	n139894377693256 -> n139894378196832
+	n139894377693312 [label=2]
+	n139894377693256 -> n139894377693312
+	n139894378196832 [label="*"]
+	n139894377977728 [label="Iter(0)"]
+	n139894378196832 -> n139894377977728
+	n139894378196888 [label=3]
+	n139894378196832 -> n139894378196888
+	n139894378196888 [label=3]
+	n139894377693312 [label=2]
+	n139894378193136 [label=PropertyAccess]
+	n139894378445400 [label=velocity]
+	n139894378193136 -> n139894378445400
+	n139894377977728 [label="Iter(0)"]
+	n139894378193136 -> n139894377977728
+	n139894378194032 [label="*"]
+	n139894378193136 -> n139894378194032
+	n139894378195432 [label="+"]
+	n139894378193136 -> n139894378195432
+	n139894378196664 [label="+"]
+	n139894378193136 -> n139894378196664
+	n139894378194032 [label="*"]
+	n139894377977728 [label="Iter(0)"]
+	n139894378194032 -> n139894377977728
+	n139894378194088 [label=3]
+	n139894378194032 -> n139894378194088
+	n139894378194088 [label=3]
+	n139894378195432 [label="+"]
+	n139894378195264 [label="*"]
+	n139894378195432 -> n139894378195264
+	n139894378195488 [label=1]
+	n139894378195432 -> n139894378195488
+	n139894378195264 [label="*"]
+	n139894377977728 [label="Iter(0)"]
+	n139894378195264 -> n139894377977728
+	n139894378195320 [label=3]
+	n139894378195264 -> n139894378195320
+	n139894378195320 [label=3]
+	n139894378195488 [label=1]
+	n139894378196664 [label="+"]
+	n139894378196496 [label="*"]
+	n139894378196664 -> n139894378196496
+	n139894378196720 [label=2]
+	n139894378196664 -> n139894378196720
+	n139894378196496 [label="*"]
+	n139894377977728 [label="Iter(0)"]
+	n139894378196496 -> n139894377977728
+	n139894378196552 [label=3]
+	n139894378196496 -> n139894378196552
+	n139894378196552 [label=3]
+	n139894378196720 [label=2]
+	n139894378193248 [label="*"]
+	n139894378193304 [label=0.005]
+	n139894378193248 -> n139894378193304
+	n139894378193136 [label=PropertyAccess]
+	n139894378193248 -> n139894378193136
+	n139894378193304 [label=0.005]
+	n139894378193416 [label="+"]
+	n139894378193024 [label=PropertyAccess]
+	n139894378193416 -> n139894378193024
+	n139894378193248 [label="*"]
+	n139894378193416 -> n139894378193248
+	n139894378193640 [label="*"]
+	n139894377977728 [label="Iter(0)"]
+	n139894378193640 -> n139894377977728
+	n139894378193696 [label=3]
+	n139894378193640 -> n139894378193696
+	n139894378193696 [label=3]
+	n139894378194872 [label="*"]
+	n139894377977728 [label="Iter(0)"]
+	n139894378194872 -> n139894377977728
+	n139894378194928 [label=3]
+	n139894378194872 -> n139894378194928
+	n139894378194928 [label=3]
+	n139894378195040 [label="+"]
+	n139894378194872 [label="*"]
+	n139894378195040 -> n139894378194872
+	n139894378195096 [label=1]
+	n139894378195040 -> n139894378195096
+	n139894378195096 [label=1]
+	n139894378196104 [label="*"]
+	n139894377977728 [label="Iter(0)"]
+	n139894378196104 -> n139894377977728
+	n139894378196160 [label=3]
+	n139894378196104 -> n139894378196160
+	n139894378196160 [label=3]
+	n139894378196272 [label="+"]
+	n139894378196104 [label="*"]
+	n139894378196272 -> n139894378196104
+	n139894378196328 [label=2]
+	n139894378196272 -> n139894378196328
+	n139894378196328 [label=2]
+	n139894378193528 [label=Assign]
+	n139894378194760 [label=VectorAccess]
+	n139894378193528 -> n139894378194760
+	n139894378193976 [label=VectorAccess]
+	n139894378193528 -> n139894378193976
+	n139894378195992 [label=VectorAccess]
+	n139894378193528 -> n139894378195992
+	n139894378195208 [label=VectorAccess]
+	n139894378193528 -> n139894378195208
+	n139894377693480 [label=VectorAccess]
+	n139894378193528 -> n139894377693480
+	n139894378196440 [label=VectorAccess]
+	n139894378193528 -> n139894378196440
+	n139894378194760 [label=VectorAccess]
+	n139894378193024 [label=PropertyAccess]
+	n139894378194760 -> n139894378193024
+	n139894378193976 [label=VectorAccess]
+	n139894378193416 [label="+"]
+	n139894378193976 -> n139894378193416
+	n139894378195992 [label=VectorAccess]
+	n139894378193024 [label=PropertyAccess]
+	n139894378195992 -> n139894378193024
+	n139894378195208 [label=VectorAccess]
+	n139894378193416 [label="+"]
+	n139894378195208 -> n139894378193416
+	n139894377693480 [label=VectorAccess]
+	n139894378193024 [label=PropertyAccess]
+	n139894377693480 -> n139894378193024
+	n139894378196440 [label=VectorAccess]
+	n139894378193416 [label="+"]
+	n139894378196440 -> n139894378193416
 }
diff --git a/examples/kernels.pdf b/examples/kernels.pdf
index ce7b3462a9f6380bce3b82a907317bc6979cfe78..c83c9db416d54831ecca26e6031d90f04ebe9433 100644
Binary files a/examples/kernels.pdf and b/examples/kernels.pdf differ
diff --git a/examples/lj_ns.cpp b/examples/lj_ns.cpp
index ac376f0318cc2547f737c7e5a27053d7cc41f652..b588b2b4a2f59d5087857ed57e16bc7f9e245fcf 100644
--- a/examples/lj_ns.cpp
+++ b/examples/lj_ns.cpp
@@ -3,704 +3,25 @@
 #include <stdio.h>
 #include <stdlib.h>
 //---
-#include "../src/pairs/runtime/pairs.hpp"
-#include "../src/pairs/runtime/read_from_file.hpp"
-#include "../src/pairs/runtime/vtk.hpp"
+#include "runtime/pairs.hpp"
+#include "runtime/read_from_file.hpp"
+#include "runtime/vtk.hpp"
 
 using namespace pairs;
 
-int main() {
-    PairsSim *ps = new PairsSim();
-    int particle_capacity = 10000;
-    int nlocal = 0;
-    int nghost = 0;
-    double grid0_d0_min = 0;
-    double grid0_d0_max = 0;
-    double grid0_d1_min = 0;
-    double grid0_d1_max = 0;
-    double grid0_d2_min = 0;
-    double grid0_d2_max = 0;
-    int nstencil = 0;
-    int ncells = 1;
-    int ncells_capacity = 100;
-    int cell_capacity = 20;
-    int neighborlist_capacity = 32;
-    int npbc = 0;
-    int pbc_capacity = 100;
-    double grid_buffer[6];
-    int dim_cells[3];
-    int *cell_particles = (int *) malloc((sizeof(int) * (ncells_capacity * cell_capacity)));
-    int *cell_sizes = (int *) malloc((sizeof(int) * ncells_capacity));
-    int *stencil = (int *) malloc((sizeof(int) * 27));
-    int *particle_cell = (int *) malloc((sizeof(int) * particle_capacity));
-    int *neighborlists = (int *) malloc((sizeof(int) * (particle_capacity * neighborlist_capacity)));
-    int *numneighs = (int *) malloc((sizeof(int) * particle_capacity));
-    int *pbc_map = (int *) malloc((sizeof(int) * pbc_capacity));
-    int *pbc_mult = (int *) malloc((sizeof(int) * (pbc_capacity * 3)));
-    double *mass = (double *) malloc((sizeof(double) * (particle_capacity + pbc_capacity)));
-    ps->addProperty(Property(0, "mass", mass, Prop_Float));
-    double *position = (double *) malloc((sizeof(double) * ((particle_capacity + pbc_capacity) * 3)));
-    ps->addProperty(Property(1, "position", position, Prop_Vector, AoS, (particle_capacity + pbc_capacity), 3));
-    double *velocity = (double *) malloc((sizeof(double) * ((particle_capacity + pbc_capacity) * 3)));
-    ps->addProperty(Property(2, "velocity", velocity, Prop_Vector, AoS, (particle_capacity + pbc_capacity), 3));
-    double *force = (double *) malloc((sizeof(double) * ((particle_capacity + pbc_capacity) * 3)));
-    ps->addProperty(Property(3, "force", force, Prop_Vector, AoS, (particle_capacity + pbc_capacity), 3));
-    const int prop_list_0[] = {0, 1, 2};
-    nlocal = pairs::read_particle_data(ps, "data/minimd_setup_4x4x4.input", grid_buffer, prop_list_0, 3);
-    const double a0 = grid_buffer[0];
-    grid0_d0_min = a0;
-    const double a1 = grid_buffer[1];
-    grid0_d0_max = a1;
-    const double a2 = grid_buffer[2];
-    grid0_d1_min = a2;
-    const double a3 = grid_buffer[3];
-    grid0_d1_max = a3;
-    const double a4 = grid_buffer[4];
-    grid0_d2_min = a4;
-    const double a5 = grid_buffer[5];
-    grid0_d2_max = a5;
-    const double e94 = grid0_d0_max - grid0_d0_min;
-    const double e95 = e94 / 2.8;
-    const int e96 = ceil(e95) + 2;
-    dim_cells[0] = e96;
-    const double e98 = grid0_d1_max - grid0_d1_min;
-    const double e99 = e98 / 2.8;
-    const int e100 = ceil(e99) + 2;
-    dim_cells[1] = e100;
-    const int a7 = dim_cells[0];
-    const int a9 = dim_cells[1];
-    const int e101 = a7 * a9;
-    const double e102 = grid0_d2_max - grid0_d2_min;
-    const double e103 = e102 / 2.8;
-    const int e104 = ceil(e103) + 2;
-    dim_cells[2] = e104;
-    const int a11 = dim_cells[2];
-    const int e105 = e101 * a11;
-    ncells = e105;
-    int resize = 1;
-    while((resize > 0)) {
-        resize = 0;
-        const bool e107 = ncells >= ncells_capacity;
-        if(e107) {
-            resize = ncells;
-        }
-        const bool e108 = resize > 0;
-        if(e108) {
-            fprintf(stdout, "Resize ncells_capacity\n");
-            fflush(stdout);
-            const int e109 = resize * 2;
-            ncells_capacity = e109;
-            cell_particles = (int *) realloc(cell_particles, (sizeof(int) * (ncells_capacity * cell_capacity)));
-            cell_sizes = (int *) realloc(cell_sizes, (sizeof(int) * ncells_capacity));
-        }
-    }
-    nstencil = 0;
-    for(int i2 = -1; i2 < 2; i2++) {
-        const int a12 = dim_cells[0];
-        const int e113 = i2 * a12;
-        for(int i3 = -1; i3 < 2; i3++) {
-            const int e114 = e113 + i3;
-            const int a13 = dim_cells[1];
-            const int e115 = e114 * a13;
-            for(int i4 = -1; i4 < 2; i4++) {
-                const int e116 = e115 + i4;
-                stencil[nstencil] = e116;
-                const int e117 = nstencil + 1;
-                nstencil = e117;
-            }
-        }
-    }
-    const int e118 = nlocal + npbc;
-    pairs::vtk_write_data(ps, "output/test_local", 0, nlocal, 0);
-    pairs::vtk_write_data(ps, "output/test_pbc", nlocal, e118, 0);
-    for(int i1 = 0; i1 < 101; i1++) {
-        const int e65 = i1 % 20;
-        const bool e66 = e65 == 0;
-        if(e66) {
-            //pairs::copy_to_device(position)
-            const double e124 = grid0_d0_max - grid0_d0_min;
-            const double e131 = grid0_d0_max - grid0_d0_min;
-            const double e138 = grid0_d1_max - grid0_d1_min;
-            const double e145 = grid0_d1_max - grid0_d1_min;
-            const double e152 = grid0_d2_max - grid0_d2_min;
-            const double e159 = grid0_d2_max - grid0_d2_min;
-            for(int i5 = 0; i5 < nlocal; i5++) {
-                const int e119 = i5 * 3;
-                const double p6_0 = position[e119];
-                const bool e121 = p6_0 < grid0_d0_min;
-                if(e121) {
-                    const int e122 = i5 * 3;
-                    const double p7_0 = position[e122];
-                    const double e125 = p7_0 + e124;
-                    position[e122] = e125;
-                }
-                const int e126 = i5 * 3;
-                const double p8_0 = position[e126];
-                const bool e128 = p8_0 > grid0_d0_max;
-                if(e128) {
-                    const int e129 = i5 * 3;
-                    const double p9_0 = position[e129];
-                    const double e132 = p9_0 - e131;
-                    position[e129] = e132;
-                }
-                const int e133 = i5 * 3;
-                const int e134 = e133 + 1;
-                const double p10_1 = position[e134];
-                const bool e135 = p10_1 < grid0_d1_min;
-                if(e135) {
-                    const int e136 = i5 * 3;
-                    const int e137 = e136 + 1;
-                    const double p11_1 = position[e137];
-                    const double e139 = p11_1 + e138;
-                    position[e137] = e139;
-                }
-                const int e140 = i5 * 3;
-                const int e141 = e140 + 1;
-                const double p12_1 = position[e141];
-                const bool e142 = p12_1 > grid0_d1_max;
-                if(e142) {
-                    const int e143 = i5 * 3;
-                    const int e144 = e143 + 1;
-                    const double p13_1 = position[e144];
-                    const double e146 = p13_1 - e145;
-                    position[e144] = e146;
-                }
-                const int e147 = i5 * 3;
-                const int e148 = e147 + 2;
-                const double p14_2 = position[e148];
-                const bool e149 = p14_2 < grid0_d2_min;
-                if(e149) {
-                    const int e150 = i5 * 3;
-                    const int e151 = e150 + 2;
-                    const double p15_2 = position[e151];
-                    const double e153 = p15_2 + e152;
-                    position[e151] = e153;
-                }
-                const int e154 = i5 * 3;
-                const int e155 = e154 + 2;
-                const double p16_2 = position[e155];
-                const bool e156 = p16_2 > grid0_d2_max;
-                if(e156) {
-                    const int e157 = i5 * 3;
-                    const int e158 = e157 + 2;
-                    const double p17_2 = position[e158];
-                    const double e160 = p17_2 - e159;
-                    position[e158] = e160;
-                }
-            }
-        }
-        const int e67 = i1 % 20;
-        const bool e68 = e67 == 0;
-        if(e68) {
-            resize = 1;
-            while((resize > 0)) {
-                resize = 0;
-                npbc = 0;
-                const int e162 = nlocal + npbc;
-                const double e166 = grid0_d0_min + 2.8;
-                const double e177 = grid0_d0_max - grid0_d0_min;
-                const double e194 = grid0_d0_max - 2.8;
-                const double e205 = grid0_d0_max - grid0_d0_min;
-                for(int i6 = 0; i6 < e162; i6++) {
-                    const int e163 = nlocal + npbc;
-                    const int e164 = i6 * 3;
-                    const double p18_0 = position[e164];
-                    const bool e167 = p18_0 < e166;
-                    if(e167) {
-                        const bool e168 = npbc >= pbc_capacity;
-                        if(e168) {
-                            const bool e169 = resize > npbc;
-                            resize = (e169) ? ((resize + 1)) : (npbc);
-                        } else {
-                            pbc_map[npbc] = i6;
-                            const int e171 = npbc * 3;
-                            pbc_mult[e171] = 1;
-                            const int e173 = e163 * 3;
-                            const double p19_0 = position[e173];
-                            const int e175 = i6 * 3;
-                            const double p20_0 = position[e175];
-                            const double e178 = p20_0 + e177;
-                            position[e173] = e178;
-                            const int e179 = npbc * 3;
-                            const int e180 = e179 + 1;
-                            pbc_mult[e180] = 0;
-                            const int e181 = e163 * 3;
-                            const int e182 = e181 + 1;
-                            const double p21_1 = position[e182];
-                            const int e183 = i6 * 3;
-                            const int e184 = e183 + 1;
-                            const double p22_1 = position[e184];
-                            position[e182] = p22_1;
-                            const int e185 = npbc * 3;
-                            const int e186 = e185 + 2;
-                            pbc_mult[e186] = 0;
-                            const int e187 = e163 * 3;
-                            const int e188 = e187 + 2;
-                            const double p23_2 = position[e188];
-                            const int e189 = i6 * 3;
-                            const int e190 = e189 + 2;
-                            const double p24_2 = position[e190];
-                            position[e188] = p24_2;
-                            const int e191 = npbc + 1;
-                            npbc = e191;
-                        }
-                    }
-                    const int e192 = i6 * 3;
-                    const double p25_0 = position[e192];
-                    const bool e195 = p25_0 > e194;
-                    if(e195) {
-                        const bool e196 = npbc >= pbc_capacity;
-                        if(e196) {
-                            const bool e197 = resize > npbc;
-                            resize = (e197) ? ((resize + 1)) : (npbc);
-                        } else {
-                            pbc_map[npbc] = i6;
-                            const int e199 = npbc * 3;
-                            pbc_mult[e199] = -1;
-                            const int e201 = e163 * 3;
-                            const double p26_0 = position[e201];
-                            const int e203 = i6 * 3;
-                            const double p27_0 = position[e203];
-                            const double e206 = p27_0 - e205;
-                            position[e201] = e206;
-                            const int e207 = npbc * 3;
-                            const int e208 = e207 + 1;
-                            pbc_mult[e208] = 0;
-                            const int e209 = e163 * 3;
-                            const int e210 = e209 + 1;
-                            const double p28_1 = position[e210];
-                            const int e211 = i6 * 3;
-                            const int e212 = e211 + 1;
-                            const double p29_1 = position[e212];
-                            position[e210] = p29_1;
-                            const int e213 = npbc * 3;
-                            const int e214 = e213 + 2;
-                            pbc_mult[e214] = 0;
-                            const int e215 = e163 * 3;
-                            const int e216 = e215 + 2;
-                            const double p30_2 = position[e216];
-                            const int e217 = i6 * 3;
-                            const int e218 = e217 + 2;
-                            const double p31_2 = position[e218];
-                            position[e216] = p31_2;
-                            const int e219 = npbc + 1;
-                            npbc = e219;
-                        }
-                    }
-                }
-                const int e220 = nlocal + npbc;
-                const double e224 = grid0_d1_min + 2.8;
-                const double e235 = grid0_d1_max - grid0_d1_min;
-                const double e252 = grid0_d1_max - 2.8;
-                const double e263 = grid0_d1_max - grid0_d1_min;
-                for(int i7 = 0; i7 < e220; i7++) {
-                    const int e221 = nlocal + npbc;
-                    const int e222 = i7 * 3;
-                    const int e223 = e222 + 1;
-                    const double p32_1 = position[e223];
-                    const bool e225 = p32_1 < e224;
-                    if(e225) {
-                        const bool e226 = npbc >= pbc_capacity;
-                        if(e226) {
-                            const bool e227 = resize > npbc;
-                            resize = (e227) ? ((resize + 1)) : (npbc);
-                        } else {
-                            pbc_map[npbc] = i7;
-                            const int e229 = npbc * 3;
-                            const int e230 = e229 + 1;
-                            pbc_mult[e230] = 1;
-                            const int e231 = e221 * 3;
-                            const int e232 = e231 + 1;
-                            const double p33_1 = position[e232];
-                            const int e233 = i7 * 3;
-                            const int e234 = e233 + 1;
-                            const double p34_1 = position[e234];
-                            const double e236 = p34_1 + e235;
-                            position[e232] = e236;
-                            const int e237 = npbc * 3;
-                            pbc_mult[e237] = 0;
-                            const int e239 = e221 * 3;
-                            const double p35_0 = position[e239];
-                            const int e241 = i7 * 3;
-                            const double p36_0 = position[e241];
-                            position[e239] = p36_0;
-                            const int e243 = npbc * 3;
-                            const int e244 = e243 + 2;
-                            pbc_mult[e244] = 0;
-                            const int e245 = e221 * 3;
-                            const int e246 = e245 + 2;
-                            const double p37_2 = position[e246];
-                            const int e247 = i7 * 3;
-                            const int e248 = e247 + 2;
-                            const double p38_2 = position[e248];
-                            position[e246] = p38_2;
-                            const int e249 = npbc + 1;
-                            npbc = e249;
-                        }
-                    }
-                    const int e250 = i7 * 3;
-                    const int e251 = e250 + 1;
-                    const double p39_1 = position[e251];
-                    const bool e253 = p39_1 > e252;
-                    if(e253) {
-                        const bool e254 = npbc >= pbc_capacity;
-                        if(e254) {
-                            const bool e255 = resize > npbc;
-                            resize = (e255) ? ((resize + 1)) : (npbc);
-                        } else {
-                            pbc_map[npbc] = i7;
-                            const int e257 = npbc * 3;
-                            const int e258 = e257 + 1;
-                            pbc_mult[e258] = -1;
-                            const int e259 = e221 * 3;
-                            const int e260 = e259 + 1;
-                            const double p40_1 = position[e260];
-                            const int e261 = i7 * 3;
-                            const int e262 = e261 + 1;
-                            const double p41_1 = position[e262];
-                            const double e264 = p41_1 - e263;
-                            position[e260] = e264;
-                            const int e265 = npbc * 3;
-                            pbc_mult[e265] = 0;
-                            const int e267 = e221 * 3;
-                            const double p42_0 = position[e267];
-                            const int e269 = i7 * 3;
-                            const double p43_0 = position[e269];
-                            position[e267] = p43_0;
-                            const int e271 = npbc * 3;
-                            const int e272 = e271 + 2;
-                            pbc_mult[e272] = 0;
-                            const int e273 = e221 * 3;
-                            const int e274 = e273 + 2;
-                            const double p44_2 = position[e274];
-                            const int e275 = i7 * 3;
-                            const int e276 = e275 + 2;
-                            const double p45_2 = position[e276];
-                            position[e274] = p45_2;
-                            const int e277 = npbc + 1;
-                            npbc = e277;
-                        }
-                    }
-                }
-                const int e278 = nlocal + npbc;
-                const double e282 = grid0_d2_min + 2.8;
-                const double e293 = grid0_d2_max - grid0_d2_min;
-                const double e310 = grid0_d2_max - 2.8;
-                const double e321 = grid0_d2_max - grid0_d2_min;
-                for(int i8 = 0; i8 < e278; i8++) {
-                    const int e279 = nlocal + npbc;
-                    const int e280 = i8 * 3;
-                    const int e281 = e280 + 2;
-                    const double p46_2 = position[e281];
-                    const bool e283 = p46_2 < e282;
-                    if(e283) {
-                        const bool e284 = npbc >= pbc_capacity;
-                        if(e284) {
-                            const bool e285 = resize > npbc;
-                            resize = (e285) ? ((resize + 1)) : (npbc);
-                        } else {
-                            pbc_map[npbc] = i8;
-                            const int e287 = npbc * 3;
-                            const int e288 = e287 + 2;
-                            pbc_mult[e288] = 1;
-                            const int e289 = e279 * 3;
-                            const int e290 = e289 + 2;
-                            const double p47_2 = position[e290];
-                            const int e291 = i8 * 3;
-                            const int e292 = e291 + 2;
-                            const double p48_2 = position[e292];
-                            const double e294 = p48_2 + e293;
-                            position[e290] = e294;
-                            const int e295 = npbc * 3;
-                            pbc_mult[e295] = 0;
-                            const int e297 = e279 * 3;
-                            const double p49_0 = position[e297];
-                            const int e299 = i8 * 3;
-                            const double p50_0 = position[e299];
-                            position[e297] = p50_0;
-                            const int e301 = npbc * 3;
-                            const int e302 = e301 + 1;
-                            pbc_mult[e302] = 0;
-                            const int e303 = e279 * 3;
-                            const int e304 = e303 + 1;
-                            const double p51_1 = position[e304];
-                            const int e305 = i8 * 3;
-                            const int e306 = e305 + 1;
-                            const double p52_1 = position[e306];
-                            position[e304] = p52_1;
-                            const int e307 = npbc + 1;
-                            npbc = e307;
-                        }
-                    }
-                    const int e308 = i8 * 3;
-                    const int e309 = e308 + 2;
-                    const double p53_2 = position[e309];
-                    const bool e311 = p53_2 > e310;
-                    if(e311) {
-                        const bool e312 = npbc >= pbc_capacity;
-                        if(e312) {
-                            const bool e313 = resize > npbc;
-                            resize = (e313) ? ((resize + 1)) : (npbc);
-                        } else {
-                            pbc_map[npbc] = i8;
-                            const int e315 = npbc * 3;
-                            const int e316 = e315 + 2;
-                            pbc_mult[e316] = -1;
-                            const int e317 = e279 * 3;
-                            const int e318 = e317 + 2;
-                            const double p54_2 = position[e318];
-                            const int e319 = i8 * 3;
-                            const int e320 = e319 + 2;
-                            const double p55_2 = position[e320];
-                            const double e322 = p55_2 - e321;
-                            position[e318] = e322;
-                            const int e323 = npbc * 3;
-                            pbc_mult[e323] = 0;
-                            const int e325 = e279 * 3;
-                            const double p56_0 = position[e325];
-                            const int e327 = i8 * 3;
-                            const double p57_0 = position[e327];
-                            position[e325] = p57_0;
-                            const int e329 = npbc * 3;
-                            const int e330 = e329 + 1;
-                            pbc_mult[e330] = 0;
-                            const int e331 = e279 * 3;
-                            const int e332 = e331 + 1;
-                            const double p58_1 = position[e332];
-                            const int e333 = i8 * 3;
-                            const int e334 = e333 + 1;
-                            const double p59_1 = position[e334];
-                            position[e332] = p59_1;
-                            const int e335 = npbc + 1;
-                            npbc = e335;
-                        }
-                    }
-                }
-                const bool e336 = resize > 0;
-                if(e336) {
-                    fprintf(stdout, "Resize pbc_capacity\n");
-                    fflush(stdout);
-                    const int e337 = resize * 2;
-                    pbc_capacity = e337;
-                    pbc_map = (int *) realloc(pbc_map, (sizeof(int) * pbc_capacity));
-                    pbc_mult = (int *) realloc(pbc_mult, (sizeof(int) * (pbc_capacity * 3)));
-                    mass = (double *) realloc(mass, (sizeof(double) * (particle_capacity + pbc_capacity)));
-                    ps->updateProperty(0, mass);
-                    position = (double *) realloc(position, (sizeof(double) * ((particle_capacity + pbc_capacity) * 3)));
-                    ps->updateProperty(1, position, (particle_capacity + pbc_capacity), 3);
-                    velocity = (double *) realloc(velocity, (sizeof(double) * ((particle_capacity + pbc_capacity) * 3)));
-                    ps->updateProperty(2, velocity, (particle_capacity + pbc_capacity), 3);
-                    force = (double *) realloc(force, (sizeof(double) * ((particle_capacity + pbc_capacity) * 3)));
-                    ps->updateProperty(3, force, (particle_capacity + pbc_capacity), 3);
-                }
-            }
-        } else {
-            const double e357 = grid0_d0_max - grid0_d0_min;
-            const double e367 = grid0_d1_max - grid0_d1_min;
-            const double e377 = grid0_d2_max - grid0_d2_min;
-            for(int i9 = 0; i9 < npbc; i9++) {
-                const int e350 = nlocal + i9;
-                const int e351 = e350 * 3;
-                const double p60_0 = position[e351];
-                const int a39 = pbc_map[i9];
-                const int e353 = a39 * 3;
-                const double p61_0 = position[e353];
-                const int e355 = i9 * 3;
-                const int a40 = pbc_mult[e355];
-                const double e358 = a40 * e357;
-                const double e359 = p61_0 + e358;
-                position[e351] = e359;
-                const int e360 = nlocal + i9;
-                const int e361 = e360 * 3;
-                const int e362 = e361 + 1;
-                const double p62_1 = position[e362];
-                const int a41 = pbc_map[i9];
-                const int e363 = a41 * 3;
-                const int e364 = e363 + 1;
-                const double p63_1 = position[e364];
-                const int e365 = i9 * 3;
-                const int e366 = e365 + 1;
-                const int a42 = pbc_mult[e366];
-                const double e368 = a42 * e367;
-                const double e369 = p63_1 + e368;
-                position[e362] = e369;
-                const int e370 = nlocal + i9;
-                const int e371 = e370 * 3;
-                const int e372 = e371 + 2;
-                const double p64_2 = position[e372];
-                const int a43 = pbc_map[i9];
-                const int e373 = a43 * 3;
-                const int e374 = e373 + 2;
-                const double p65_2 = position[e374];
-                const int e375 = i9 * 3;
-                const int e376 = e375 + 2;
-                const int a44 = pbc_mult[e376];
-                const double e378 = a44 * e377;
-                const double e379 = p65_2 + e378;
-                position[e372] = e379;
-            }
-        }
-        const int e69 = i1 % 20;
-        const bool e70 = e69 == 0;
-        if(e70) {
-            resize = 1;
-            while((resize > 0)) {
-                resize = 0;
-                for(int i10 = 0; i10 < ncells; i10++) {
-                    cell_sizes[i10] = 0;
-                }
-                const int e499 = nlocal + npbc;
-                for(int i11 = 0; i11 < e499; i11++) {
-                    const int e381 = i11 * 3;
-                    const double p66_0 = position[e381];
-                    const double e383 = p66_0 - grid0_d0_min;
-                    const double e384 = e383 / 2.8;
-                    const int e385 = i11 * 3;
-                    const int e386 = e385 + 1;
-                    const double p67_1 = position[e386];
-                    const double e387 = p67_1 - grid0_d1_min;
-                    const double e388 = e387 / 2.8;
-                    const int e389 = i11 * 3;
-                    const int e390 = e389 + 2;
-                    const double p68_2 = position[e390];
-                    const double e391 = p68_2 - grid0_d2_min;
-                    const double e392 = e391 / 2.8;
-                    const int a46 = dim_cells[1];
-                    const int e393 = (int)(e384) * a46;
-                    const int e394 = e393 + (int)(e388);
-                    const int a47 = dim_cells[2];
-                    const int e395 = e394 * a47;
-                    const int e396 = e395 + (int)(e392);
-                    const bool e397 = e396 >= 0;
-                    const bool e398 = e396 <= ncells;
-                    const bool e399 = e397 && e398;
-                    if(e399) {
-                        const int a48 = cell_sizes[e396];
-                        const bool e400 = a48 >= cell_capacity;
-                        if(e400) {
-                            resize = a48;
-                        } else {
-                            const int e401 = e396 * cell_capacity;
-                            const int e402 = e401 + a48;
-                            cell_particles[e402] = i11;
-                            particle_cell[i11] = e396;
-                        }
-                        const int e403 = a48 + 1;
-                        cell_sizes[e396] = e403;
-                    }
-                }
-                const bool e404 = resize > 0;
-                if(e404) {
-                    fprintf(stdout, "Resize cell_capacity\n");
-                    fflush(stdout);
-                    const int e405 = resize * 2;
-                    cell_capacity = e405;
-                    cell_particles = (int *) realloc(cell_particles, (sizeof(int) * (ncells_capacity * cell_capacity)));
-                }
-            }
-        }
-        const int e71 = i1 % 20;
-        const bool e72 = e71 == 0;
-        if(e72) {
-            resize = 1;
-            while((resize > 0)) {
-                resize = 0;
-                for(int i12 = 0; i12 < nlocal; i12++) {
-                    numneighs[i12] = 0;
-                }
-                for(int i16 = 0; i16 < nlocal; i16++) {
-                    for(int i17 = 0; i17 < nstencil; i17++) {
-                        const int a58 = particle_cell[i16];
-                        const int a59 = stencil[i17];
-                        const int e457 = a58 + a59;
-                        const bool e458 = e457 >= 0;
-                        const bool e459 = e457 <= ncells;
-                        const bool e460 = e458 && e459;
-                        if(e460) {
-                            const int e461 = e457 * cell_capacity;
-                            const int e469 = i16 * 3;
-                            const double p72_0 = position[e469];
-                            const int e478 = i16 * 3;
-                            const int e479 = e478 + 1;
-                            const double p72_1 = position[e479];
-                            const int e488 = i16 * 3;
-                            const int e489 = e488 + 2;
-                            const double p72_2 = position[e489];
-                            const int e410 = i16 * neighborlist_capacity;
-                            const int a60 = cell_sizes[e457];
-                            for(int i18 = 0; i18 < a60; i18++) {
-                                const int e462 = e461 + i18;
-                                const int a61 = cell_particles[e462];
-                                const bool e463 = a61 != i16;
-                                if(e463) {
-                                    const int e471 = a61 * 3;
-                                    const double p73_0 = position[e471];
-                                    const int e480 = a61 * 3;
-                                    const int e481 = e480 + 1;
-                                    const double p73_1 = position[e481];
-                                    const int e490 = a61 * 3;
-                                    const int e491 = e490 + 2;
-                                    const double p73_2 = position[e491];
-                                    const double e464_0 = p72_0 - p73_0;
-                                    const double e464_1 = p72_1 - p73_1;
-                                    const double e464_2 = p72_2 - p73_2;
-                                    const double e473 = e464_0 * e464_0;
-                                    const double e482 = e464_1 * e464_1;
-                                    const double e483 = e473 + e482;
-                                    const double e492 = e464_2 * e464_2;
-                                    const double e493 = e483 + e492;
-                                    const bool e494 = e493 < 2.8;
-                                    if(e494) {
-                                        const int a53 = numneighs[i16];
-                                        const bool e409 = a53 >= neighborlist_capacity;
-                                        if(e409) {
-                                            resize = a53;
-                                        } else {
-                                            const int e411 = e410 + a53;
-                                            neighborlists[e411] = a61;
-                                            const int e412 = a53 + 1;
-                                            numneighs[i16] = e412;
-                                        }
-                                    }
-                                }
-                            }
-                        }
-                    }
-                }
-                const bool e413 = resize > 0;
-                if(e413) {
-                    fprintf(stdout, "Resize neighborlist_capacity\n");
-                    fflush(stdout);
-                    const int e414 = resize * 2;
-                    neighborlist_capacity = e414;
-                    neighborlists = (int *) realloc(neighborlists, (sizeof(int) * (particle_capacity * neighborlist_capacity)));
-                }
-            }
-        }
-        //pairs::copy_to_device(force)
-        for(int i13 = 0; i13 < nlocal; i13++) {
-            const int e417 = i13 * 3;
-            const double p69_0 = force[e417];
-            const int e419 = i13 * 3;
-            const int e420 = e419 + 1;
-            const double p69_1 = force[e420];
-            const int e421 = i13 * 3;
-            const int e422 = e421 + 2;
-            const double p69_2 = force[e422];
-            force[e417] = 0.0;
-            force[e420] = 0.0;
-            force[e422] = 0.0;
-        }
+void module_0(int neighborlist_capacity, int nlocal, int *neighborlists, int *numneighs, double *position, double *force) {
+    fprintf(stdout, "module_0 --- enter\n");
+    fflush(stdout);
         for(int i14 = 0; i14 < nlocal; i14++) {
-            const int e423 = i14 * neighborlist_capacity;
-            const int e430 = i14 * 3;
-            const double p70_0 = position[e430];
-            const int e439 = i14 * 3;
-            const int e440 = e439 + 1;
-            const double p70_1 = position[e440];
-            const int e449 = i14 * 3;
-            const int e450 = e449 + 2;
-            const double p70_2 = position[e450];
+            const int e369 = i14 * neighborlist_capacity;
+            const int e376 = i14 * 3;
+            const double p23_0 = position[e376];
+            const int e385 = i14 * 3;
+            const int e386 = e385 + 1;
+            const double p23_1 = position[e386];
+            const int e395 = i14 * 3;
+            const int e396 = e395 + 2;
+            const double p23_2 = position[e396];
             const int e14 = i14 * 3;
             const int e18 = i14 * 3;
             const int e19 = e18 + 1;
@@ -708,39 +29,39 @@ int main() {
             const int e23 = e22 + 2;
             const int a56 = numneighs[i14];
             for(int i15 = 0; i15 < a56; i15++) {
-                const int e424 = e423 + i15;
-                const int a57 = neighborlists[e424];
-                const int e432 = a57 * 3;
-                const double p71_0 = position[e432];
-                const int e441 = a57 * 3;
-                const int e442 = e441 + 1;
-                const double p71_1 = position[e442];
-                const int e451 = a57 * 3;
-                const int e452 = e451 + 2;
-                const double p71_2 = position[e452];
-                const double e425_0 = p70_0 - p71_0;
-                const double e425_1 = p70_1 - p71_1;
-                const double e425_2 = p70_2 - p71_2;
-                const double e434 = e425_0 * e425_0;
-                const double e443 = e425_1 * e425_1;
-                const double e444 = e434 + e443;
-                const double e453 = e425_2 * e425_2;
-                const double e454 = e444 + e453;
-                const bool e455 = e454 < 2.5;
-                if(e455) {
-                    const double e1 = 1.0 / e454;
+                const int e370 = e369 + i15;
+                const int a57 = neighborlists[e370];
+                const int e378 = a57 * 3;
+                const double p24_0 = position[e378];
+                const int e387 = a57 * 3;
+                const int e388 = e387 + 1;
+                const double p24_1 = position[e388];
+                const int e397 = a57 * 3;
+                const int e398 = e397 + 2;
+                const double p24_2 = position[e398];
+                const double e371_0 = p23_0 - p24_0;
+                const double e371_1 = p23_1 - p24_1;
+                const double e371_2 = p23_2 - p24_2;
+                const double e380 = e371_0 * e371_0;
+                const double e389 = e371_1 * e371_1;
+                const double e390 = e380 + e389;
+                const double e399 = e371_2 * e371_2;
+                const double e400 = e390 + e399;
+                const bool e401 = e400 < 2.5;
+                if(e401) {
+                    const double e1 = 1.0 / e400;
                     const double e2 = e1 * e1;
                     const double e3 = e2 * e1;
                     const double p0_0 = force[e14];
                     const double p0_1 = force[e19];
                     const double p0_2 = force[e23];
                     const double e7 = e3 - 0.5;
-                    const double e495 = 48.0 * e3;
-                    const double e496 = e495 * e7;
-                    const double e497 = e496 * e1;
-                    const double e10_0 = e425_0 * e497;
-                    const double e10_1 = e425_1 * e497;
-                    const double e10_2 = e425_2 * e497;
+                    const double e441 = 48.0 * e3;
+                    const double e442 = e441 * e7;
+                    const double e443 = e442 * e1;
+                    const double e10_0 = e371_0 * e443;
+                    const double e10_1 = e371_1 * e443;
+                    const double e10_2 = e371_2 * e443;
                     const double e11_0 = p0_0 + e10_0;
                     const double e11_1 = p0_1 + e10_1;
                     const double e11_2 = p0_2 + e10_2;
@@ -750,8 +71,12 @@ int main() {
                 }
             }
         }
-        //pairs::copy_to_device(velocity)
-        //pairs::copy_to_device(mass)
+    fprintf(stdout, "module_0 --- exit\n");
+    fflush(stdout);
+}
+void module_1(int nlocal, double *velocity, double *force, double *mass, double *position) {
+    fprintf(stdout, "module_1 --- enter\n");
+    fflush(stdout);
         for(int i0 = 0; i0 < nlocal; i0++) {
             const int e31 = i0 * 3;
             const double p1_0 = velocity[e31];
@@ -808,9 +133,650 @@ int main() {
             position[e58] = e46_1;
             position[e64] = e46_2;
         }
+    fprintf(stdout, "module_1 --- exit\n");
+    fflush(stdout);
+}
+void build_cell_lists_stencil(double grid0_d0_max, double grid0_d0_min, double grid0_d1_max, double grid0_d1_min, double grid0_d2_max, double grid0_d2_min, int ncells_capacity, int *ncells, int *nstencil, int *dim_cells, int *resizes, int *stencil) {
+    fprintf(stdout, "build_cell_lists_stencil --- enter\n");
+    fflush(stdout);
+        const double e95 = grid0_d0_max - grid0_d0_min;
+        const double e96 = e95 / 2.8;
+        const int e97 = ceil(e96) + 2;
+        dim_cells[0] = e97;
+        const double e99 = grid0_d1_max - grid0_d1_min;
+        const double e100 = e99 / 2.8;
+        const int e101 = ceil(e100) + 2;
+        dim_cells[1] = e101;
+        const int a7 = dim_cells[0];
+        const int a9 = dim_cells[1];
+        const int e102 = a7 * a9;
+        const double e103 = grid0_d2_max - grid0_d2_min;
+        const double e104 = e103 / 2.8;
+        const int e105 = ceil(e104) + 2;
+        dim_cells[2] = e105;
+        const int a11 = dim_cells[2];
+        const int e106 = e102 * a11;
+        const int e445 = e106 + 1;
+        const bool e446 = e445 >= ncells_capacity;
+        if(e446) {
+            resizes[0] = e106;
+        } else {
+            (*ncells) = e106;
+        }
+        (*nstencil) = 0;
+        for(int i2 = -1; i2 < 2; i2++) {
+            const int a12 = dim_cells[0];
+            const int e107 = i2 * a12;
+            for(int i3 = -1; i3 < 2; i3++) {
+                const int e108 = e107 + i3;
+                const int a13 = dim_cells[1];
+                const int e109 = e108 * a13;
+                for(int i4 = -1; i4 < 2; i4++) {
+                    const int e110 = e109 + i4;
+                    stencil[(*nstencil)] = e110;
+                    const int e111 = (*nstencil) + 1;
+                    (*nstencil) = e111;
+                }
+            }
+        }
+    fprintf(stdout, "build_cell_lists_stencil --- exit\n");
+    fflush(stdout);
+}
+void enforce_pbc(double grid0_d0_max, double grid0_d0_min, double grid0_d1_max, double grid0_d1_min, double grid0_d2_max, double grid0_d2_min, int nlocal, double *position) {
+    fprintf(stdout, "enforce_pbc --- enter\n");
+    fflush(stdout);
+        const double e118 = grid0_d0_max - grid0_d0_min;
+        const double e125 = grid0_d0_max - grid0_d0_min;
+        const double e132 = grid0_d1_max - grid0_d1_min;
+        const double e139 = grid0_d1_max - grid0_d1_min;
+        const double e146 = grid0_d2_max - grid0_d2_min;
+        const double e153 = grid0_d2_max - grid0_d2_min;
+        for(int i5 = 0; i5 < nlocal; i5++) {
+            const int e123 = i5 * 3;
+            const double p6_0 = position[e123];
+            const int e137 = i5 * 3;
+            const int e138 = e137 + 1;
+            const double p6_1 = position[e138];
+            const int e151 = i5 * 3;
+            const int e152 = e151 + 2;
+            const double p6_2 = position[e152];
+            const bool e115 = p6_0 < grid0_d0_min;
+            if(e115) {
+                const double e119 = p6_0 + e118;
+                position[e123] = e119;
+            }
+            const bool e122 = p6_0 > grid0_d0_max;
+            if(e122) {
+                const double e126 = p6_0 - e125;
+                position[e123] = e126;
+            }
+            const bool e129 = p6_1 < grid0_d1_min;
+            if(e129) {
+                const double e133 = p6_1 + e132;
+                position[e138] = e133;
+            }
+            const bool e136 = p6_1 > grid0_d1_max;
+            if(e136) {
+                const double e140 = p6_1 - e139;
+                position[e138] = e140;
+            }
+            const bool e143 = p6_2 < grid0_d2_min;
+            if(e143) {
+                const double e147 = p6_2 + e146;
+                position[e152] = e147;
+            }
+            const bool e150 = p6_2 > grid0_d2_max;
+            if(e150) {
+                const double e154 = p6_2 - e153;
+                position[e152] = e154;
+            }
+        }
+    fprintf(stdout, "enforce_pbc --- exit\n");
+    fflush(stdout);
+}
+void setup_pbc(double grid0_d0_max, double grid0_d0_min, int pbc_capacity, double grid0_d1_max, double grid0_d1_min, double grid0_d2_max, double grid0_d2_min, int *npbc, int *nlocal, int *pbc_map, int *pbc_mult, int *resizes, double *position) {
+    fprintf(stdout, "setup_pbc --- enter\n");
+    fflush(stdout);
+        (*npbc) = 0;
+        const int e155 = (*nlocal) + (*npbc);
+        const double e157 = grid0_d0_max - grid0_d0_min;
+        const double e160 = grid0_d0_min + 2.8;
+        const double e184 = grid0_d0_max - 2.8;
+        for(int i6 = 0; i6 < e155; i6++) {
+            const int e190 = i6 * 3;
+            const double p7_0 = position[e190];
+            const int e197 = i6 * 3;
+            const int e198 = e197 + 1;
+            const double p7_1 = position[e198];
+            const int e203 = i6 * 3;
+            const int e204 = e203 + 2;
+            const double p7_2 = position[e204];
+            const int e156 = (*nlocal) + (*npbc);
+            const int e188 = e156 * 3;
+            const double p8_0 = position[e188];
+            const int e195 = e156 * 3;
+            const int e196 = e195 + 1;
+            const double p8_1 = position[e196];
+            const int e201 = e156 * 3;
+            const int e202 = e201 + 2;
+            const double p8_2 = position[e202];
+            const bool e161 = p7_0 < e160;
+            if(e161) {
+                pbc_map[(*npbc)] = i6;
+                const int e162 = (*npbc) * 3;
+                pbc_mult[e162] = 1;
+                const double e168 = p7_0 + e157;
+                position[e188] = e168;
+                const int e169 = (*npbc) * 3;
+                const int e170 = e169 + 1;
+                pbc_mult[e170] = 0;
+                position[e196] = p7_1;
+                const int e175 = (*npbc) * 3;
+                const int e176 = e175 + 2;
+                pbc_mult[e176] = 0;
+                position[e202] = p7_2;
+                const int e181 = (*npbc) + 1;
+                const int e447 = e181 + 1;
+                const bool e448 = e447 >= pbc_capacity;
+                if(e448) {
+                    resizes[0] = e181;
+                } else {
+                    (*npbc) = e181;
+                }
+            }
+            const bool e185 = p7_0 > e184;
+            if(e185) {
+                pbc_map[(*npbc)] = i6;
+                const int e186 = (*npbc) * 3;
+                pbc_mult[e186] = -1;
+                const double e192 = p7_0 - e157;
+                position[e188] = e192;
+                const int e193 = (*npbc) * 3;
+                const int e194 = e193 + 1;
+                pbc_mult[e194] = 0;
+                position[e196] = p7_1;
+                const int e199 = (*npbc) * 3;
+                const int e200 = e199 + 2;
+                pbc_mult[e200] = 0;
+                position[e202] = p7_2;
+                const int e205 = (*npbc) + 1;
+                const int e449 = e205 + 1;
+                const bool e450 = e449 >= pbc_capacity;
+                if(e450) {
+                    resizes[0] = e205;
+                } else {
+                    (*npbc) = e205;
+                }
+            }
+        }
+        const int e206 = (*nlocal) + (*npbc);
+        const double e208 = grid0_d1_max - grid0_d1_min;
+        const double e211 = grid0_d1_min + 2.8;
+        const double e235 = grid0_d1_max - 2.8;
+        for(int i7 = 0; i7 < e206; i7++) {
+            const int e248 = i7 * 3;
+            const double p9_0 = position[e248];
+            const int e241 = i7 * 3;
+            const int e242 = e241 + 1;
+            const double p9_1 = position[e242];
+            const int e254 = i7 * 3;
+            const int e255 = e254 + 2;
+            const double p9_2 = position[e255];
+            const int e207 = (*nlocal) + (*npbc);
+            const int e246 = e207 * 3;
+            const double p10_0 = position[e246];
+            const int e239 = e207 * 3;
+            const int e240 = e239 + 1;
+            const double p10_1 = position[e240];
+            const int e252 = e207 * 3;
+            const int e253 = e252 + 2;
+            const double p10_2 = position[e253];
+            const bool e212 = p9_1 < e211;
+            if(e212) {
+                pbc_map[(*npbc)] = i7;
+                const int e213 = (*npbc) * 3;
+                const int e214 = e213 + 1;
+                pbc_mult[e214] = 1;
+                const double e219 = p9_1 + e208;
+                position[e240] = e219;
+                const int e220 = (*npbc) * 3;
+                pbc_mult[e220] = 0;
+                position[e246] = p9_0;
+                const int e226 = (*npbc) * 3;
+                const int e227 = e226 + 2;
+                pbc_mult[e227] = 0;
+                position[e253] = p9_2;
+                const int e232 = (*npbc) + 1;
+                const int e451 = e232 + 1;
+                const bool e452 = e451 >= pbc_capacity;
+                if(e452) {
+                    resizes[0] = e232;
+                } else {
+                    (*npbc) = e232;
+                }
+            }
+            const bool e236 = p9_1 > e235;
+            if(e236) {
+                pbc_map[(*npbc)] = i7;
+                const int e237 = (*npbc) * 3;
+                const int e238 = e237 + 1;
+                pbc_mult[e238] = -1;
+                const double e243 = p9_1 - e208;
+                position[e240] = e243;
+                const int e244 = (*npbc) * 3;
+                pbc_mult[e244] = 0;
+                position[e246] = p9_0;
+                const int e250 = (*npbc) * 3;
+                const int e251 = e250 + 2;
+                pbc_mult[e251] = 0;
+                position[e253] = p9_2;
+                const int e256 = (*npbc) + 1;
+                const int e453 = e256 + 1;
+                const bool e454 = e453 >= pbc_capacity;
+                if(e454) {
+                    resizes[0] = e256;
+                } else {
+                    (*npbc) = e256;
+                }
+            }
+        }
+        const int e257 = (*nlocal) + (*npbc);
+        const double e259 = grid0_d2_max - grid0_d2_min;
+        const double e262 = grid0_d2_min + 2.8;
+        const double e286 = grid0_d2_max - 2.8;
+        for(int i8 = 0; i8 < e257; i8++) {
+            const int e299 = i8 * 3;
+            const double p11_0 = position[e299];
+            const int e305 = i8 * 3;
+            const int e306 = e305 + 1;
+            const double p11_1 = position[e306];
+            const int e292 = i8 * 3;
+            const int e293 = e292 + 2;
+            const double p11_2 = position[e293];
+            const int e258 = (*nlocal) + (*npbc);
+            const int e297 = e258 * 3;
+            const double p12_0 = position[e297];
+            const int e303 = e258 * 3;
+            const int e304 = e303 + 1;
+            const double p12_1 = position[e304];
+            const int e290 = e258 * 3;
+            const int e291 = e290 + 2;
+            const double p12_2 = position[e291];
+            const bool e263 = p11_2 < e262;
+            if(e263) {
+                pbc_map[(*npbc)] = i8;
+                const int e264 = (*npbc) * 3;
+                const int e265 = e264 + 2;
+                pbc_mult[e265] = 1;
+                const double e270 = p11_2 + e259;
+                position[e291] = e270;
+                const int e271 = (*npbc) * 3;
+                pbc_mult[e271] = 0;
+                position[e297] = p11_0;
+                const int e277 = (*npbc) * 3;
+                const int e278 = e277 + 1;
+                pbc_mult[e278] = 0;
+                position[e304] = p11_1;
+                const int e283 = (*npbc) + 1;
+                const int e455 = e283 + 1;
+                const bool e456 = e455 >= pbc_capacity;
+                if(e456) {
+                    resizes[0] = e283;
+                } else {
+                    (*npbc) = e283;
+                }
+            }
+            const bool e287 = p11_2 > e286;
+            if(e287) {
+                pbc_map[(*npbc)] = i8;
+                const int e288 = (*npbc) * 3;
+                const int e289 = e288 + 2;
+                pbc_mult[e289] = -1;
+                const double e294 = p11_2 - e259;
+                position[e291] = e294;
+                const int e295 = (*npbc) * 3;
+                pbc_mult[e295] = 0;
+                position[e297] = p11_0;
+                const int e301 = (*npbc) * 3;
+                const int e302 = e301 + 1;
+                pbc_mult[e302] = 0;
+                position[e304] = p11_1;
+                const int e307 = (*npbc) + 1;
+                const int e457 = e307 + 1;
+                const bool e458 = e457 >= pbc_capacity;
+                if(e458) {
+                    resizes[0] = e307;
+                } else {
+                    (*npbc) = e307;
+                }
+            }
+        }
+    fprintf(stdout, "setup_pbc --- exit\n");
+    fflush(stdout);
+}
+void update_pbc(double grid0_d0_max, double grid0_d0_min, double grid0_d1_max, double grid0_d1_min, double grid0_d2_max, double grid0_d2_min, int npbc, int *nlocal, int *pbc_map, int *pbc_mult, double *position) {
+    fprintf(stdout, "update_pbc --- enter\n");
+    fflush(stdout);
+        const double e315 = grid0_d0_max - grid0_d0_min;
+        const double e325 = grid0_d1_max - grid0_d1_min;
+        const double e335 = grid0_d2_max - grid0_d2_min;
+        for(int i9 = 0; i9 < npbc; i9++) {
+            const int e308 = (*nlocal) + i9;
+            const int e309 = e308 * 3;
+            const double p13_0 = position[e309];
+            const int a39 = pbc_map[i9];
+            const int e311 = a39 * 3;
+            const double p14_0 = position[e311];
+            const int e313 = i9 * 3;
+            const int a40 = pbc_mult[e313];
+            const double e316 = a40 * e315;
+            const double e317 = p14_0 + e316;
+            position[e309] = e317;
+            const int e318 = (*nlocal) + i9;
+            const int e319 = e318 * 3;
+            const int e320 = e319 + 1;
+            const double p15_1 = position[e320];
+            const int a41 = pbc_map[i9];
+            const int e321 = a41 * 3;
+            const int e322 = e321 + 1;
+            const double p16_1 = position[e322];
+            const int e323 = i9 * 3;
+            const int e324 = e323 + 1;
+            const int a42 = pbc_mult[e324];
+            const double e326 = a42 * e325;
+            const double e327 = p16_1 + e326;
+            position[e320] = e327;
+            const int e328 = (*nlocal) + i9;
+            const int e329 = e328 * 3;
+            const int e330 = e329 + 2;
+            const double p17_2 = position[e330];
+            const int a43 = pbc_map[i9];
+            const int e331 = a43 * 3;
+            const int e332 = e331 + 2;
+            const double p18_2 = position[e332];
+            const int e333 = i9 * 3;
+            const int e334 = e333 + 2;
+            const int a44 = pbc_mult[e334];
+            const double e336 = a44 * e335;
+            const double e337 = p18_2 + e336;
+            position[e330] = e337;
+        }
+    fprintf(stdout, "update_pbc --- exit\n");
+    fflush(stdout);
+}
+void build_cell_lists(int ncells, int nlocal, int npbc, double *grid0_d0_min, double *grid0_d1_min, double *grid0_d2_min, int *cell_capacity, int *cell_sizes, int *dim_cells, int *particle_cell, int *cell_particles, int *resizes, double *position) {
+    fprintf(stdout, "build_cell_lists --- enter\n");
+    fflush(stdout);
+        for(int i10 = 0; i10 < ncells; i10++) {
+            cell_sizes[i10] = 0;
+        }
+        const int e500 = nlocal + npbc;
+        for(int i11 = 0; i11 < e500; i11++) {
+            const int e338 = i11 * 3;
+            const double p19_0 = position[e338];
+            const double e340 = p19_0 - (*grid0_d0_min);
+            const double e341 = e340 / 2.8;
+            const int e342 = i11 * 3;
+            const int e343 = e342 + 1;
+            const double p20_1 = position[e343];
+            const double e344 = p20_1 - (*grid0_d1_min);
+            const double e345 = e344 / 2.8;
+            const int e346 = i11 * 3;
+            const int e347 = e346 + 2;
+            const double p21_2 = position[e347];
+            const double e348 = p21_2 - (*grid0_d2_min);
+            const double e349 = e348 / 2.8;
+            const int a46 = dim_cells[1];
+            const int e350 = (int)(e341) * a46;
+            const int e351 = e350 + (int)(e345);
+            const int a47 = dim_cells[2];
+            const int e352 = e351 * a47;
+            const int e353 = e352 + (int)(e349);
+            const bool e354 = e353 >= 0;
+            const bool e355 = e353 <= ncells;
+            const bool e356 = e354 && e355;
+            if(e356) {
+                particle_cell[i11] = e353;
+                const int e357 = e353 * (*cell_capacity);
+                const int a48 = cell_sizes[e353];
+                const int e358 = e357 + a48;
+                cell_particles[e358] = i11;
+                const int e359 = a48 + 1;
+                const int e459 = e359 + 1;
+                const bool e460 = e459 >= (*cell_capacity);
+                if(e460) {
+                    resizes[0] = e359;
+                } else {
+                    cell_sizes[e353] = e359;
+                }
+            }
+        }
+    fprintf(stdout, "build_cell_lists --- exit\n");
+    fflush(stdout);
+}
+void neighbor_lists_build(int nlocal, int ncells, int cell_capacity, int nstencil, int *neighborlist_capacity, int *numneighs, int *particle_cell, int *stencil, int *cell_particles, int *neighborlists, int *resizes, int *cell_sizes, double *position) {
+    fprintf(stdout, "neighbor_lists_build --- enter\n");
+    fflush(stdout);
+        for(int i12 = 0; i12 < nlocal; i12++) {
+            numneighs[i12] = 0;
+        }
+        for(int i16 = 0; i16 < nlocal; i16++) {
+            for(int i17 = 0; i17 < nstencil; i17++) {
+                const int a58 = particle_cell[i16];
+                const int a59 = stencil[i17];
+                const int e403 = a58 + a59;
+                const bool e404 = e403 >= 0;
+                const bool e405 = e403 <= ncells;
+                const bool e406 = e404 && e405;
+                if(e406) {
+                    const int e407 = e403 * cell_capacity;
+                    const int e415 = i16 * 3;
+                    const double p25_0 = position[e415];
+                    const int e424 = i16 * 3;
+                    const int e425 = e424 + 1;
+                    const double p25_1 = position[e425];
+                    const int e434 = i16 * 3;
+                    const int e435 = e434 + 2;
+                    const double p25_2 = position[e435];
+                    const int e360 = i16 * (*neighborlist_capacity);
+                    const int a60 = cell_sizes[e403];
+                    for(int i18 = 0; i18 < a60; i18++) {
+                        const int e408 = e407 + i18;
+                        const int a61 = cell_particles[e408];
+                        const bool e409 = a61 != i16;
+                        if(e409) {
+                            const int e417 = a61 * 3;
+                            const double p26_0 = position[e417];
+                            const int e426 = a61 * 3;
+                            const int e427 = e426 + 1;
+                            const double p26_1 = position[e427];
+                            const int e436 = a61 * 3;
+                            const int e437 = e436 + 2;
+                            const double p26_2 = position[e437];
+                            const double e410_0 = p25_0 - p26_0;
+                            const double e410_1 = p25_1 - p26_1;
+                            const double e410_2 = p25_2 - p26_2;
+                            const double e419 = e410_0 * e410_0;
+                            const double e428 = e410_1 * e410_1;
+                            const double e429 = e419 + e428;
+                            const double e438 = e410_2 * e410_2;
+                            const double e439 = e429 + e438;
+                            const bool e440 = e439 < 2.8;
+                            if(e440) {
+                                const int a53 = numneighs[i16];
+                                const int e361 = e360 + a53;
+                                neighborlists[e361] = a61;
+                                const int e362 = a53 + 1;
+                                const int e461 = e362 + 1;
+                                const bool e462 = e461 >= (*neighborlist_capacity);
+                                if(e462) {
+                                    resizes[0] = e362;
+                                } else {
+                                    numneighs[i16] = e362;
+                                }
+                            }
+                        }
+                    }
+                }
+            }
+        }
+    fprintf(stdout, "neighbor_lists_build --- exit\n");
+    fflush(stdout);
+}
+void reset_volatile_properties(int nlocal, double *force) {
+    fprintf(stdout, "reset_volatile_properties --- enter\n");
+    fflush(stdout);
+        for(int i13 = 0; i13 < nlocal; i13++) {
+            const int e363 = i13 * 3;
+            const double p22_0 = force[e363];
+            const int e365 = i13 * 3;
+            const int e366 = e365 + 1;
+            const double p22_1 = force[e366];
+            const int e367 = i13 * 3;
+            const int e368 = e367 + 2;
+            const double p22_2 = force[e368];
+            force[e363] = 0.0;
+            force[e366] = 0.0;
+            force[e368] = 0.0;
+        }
+    fprintf(stdout, "reset_volatile_properties --- exit\n");
+    fflush(stdout);
+}
+int main() {
+    PairsSim *ps = new PairsSim();
+    int particle_capacity = 10000;
+    int nlocal = 0;
+    int nghost = 0;
+    double grid0_d0_min = 0;
+    double grid0_d0_max = 0;
+    double grid0_d1_min = 0;
+    double grid0_d1_max = 0;
+    double grid0_d2_min = 0;
+    double grid0_d2_max = 0;
+    int nstencil = 0;
+    int ncells = 1;
+    int ncells_capacity = 100;
+    int cell_capacity = 20;
+    int neighborlist_capacity = 32;
+    int npbc = 0;
+    int pbc_capacity = 100;
+    int *resizes = (int *) malloc((sizeof(int) * 3));
+    double grid_buffer[6];
+    int dim_cells[3];
+    int *cell_particles = (int *) malloc((sizeof(int) * (ncells_capacity * cell_capacity)));
+    int *cell_sizes = (int *) malloc((sizeof(int) * ncells_capacity));
+    int *stencil = (int *) malloc((sizeof(int) * 27));
+    int *particle_cell = (int *) malloc((sizeof(int) * particle_capacity));
+    int *neighborlists = (int *) malloc((sizeof(int) * (particle_capacity * neighborlist_capacity)));
+    int *numneighs = (int *) malloc((sizeof(int) * particle_capacity));
+    int *pbc_map = (int *) malloc((sizeof(int) * pbc_capacity));
+    int *pbc_mult = (int *) malloc((sizeof(int) * (pbc_capacity * 3)));
+    double *mass = (double *) malloc((sizeof(double) * (particle_capacity + pbc_capacity)));
+    ps->addProperty(Property(0, "mass", mass, Prop_Float));
+    double *position = (double *) malloc((sizeof(double) * ((particle_capacity + pbc_capacity) * 3)));
+    ps->addProperty(Property(1, "position", position, Prop_Vector, AoS, (particle_capacity + pbc_capacity), 3));
+    double *velocity = (double *) malloc((sizeof(double) * ((particle_capacity + pbc_capacity) * 3)));
+    ps->addProperty(Property(2, "velocity", velocity, Prop_Vector, AoS, (particle_capacity + pbc_capacity), 3));
+    double *force = (double *) malloc((sizeof(double) * ((particle_capacity + pbc_capacity) * 3)));
+    ps->addProperty(Property(3, "force", force, Prop_Vector, AoS, (particle_capacity + pbc_capacity), 3));
+    const int prop_list_0[] = {0, 1, 2};
+    nlocal = pairs::read_particle_data(ps, "data/minimd_setup_4x4x4.input", grid_buffer, prop_list_0, 3);
+    const double a0 = grid_buffer[0];
+    grid0_d0_min = a0;
+    const double a1 = grid_buffer[1];
+    grid0_d0_max = a1;
+    const double a2 = grid_buffer[2];
+    grid0_d1_min = a2;
+    const double a3 = grid_buffer[3];
+    grid0_d1_max = a3;
+    const double a4 = grid_buffer[4];
+    grid0_d2_min = a4;
+    const double a5 = grid_buffer[5];
+    grid0_d2_max = a5;
+    resizes[0] = 1;
+    while((resizes[0] > 0)) {
+        resizes[0] = 0;
+        build_cell_lists_stencil(grid0_d0_max, grid0_d0_min, grid0_d1_max, grid0_d1_min, grid0_d2_max, grid0_d2_min, ncells_capacity, &ncells, &nstencil, dim_cells, resizes, stencil);
+        const int a74 = resizes[0];
+        const bool e464 = a74 > 0;
+        if(e464) {
+            const int a75 = resizes[0];
+            const int e465 = a75 * 2;
+            ncells_capacity = e465;
+            cell_particles = (int *) realloc(cell_particles, (sizeof(int) * (ncells_capacity * cell_capacity)));
+            cell_sizes = (int *) realloc(cell_sizes, (sizeof(int) * ncells_capacity));
+        }
+    }
+    const int e112 = nlocal + npbc;
+    pairs::vtk_write_data(ps, "output/test_local", 0, nlocal, 0);
+    pairs::vtk_write_data(ps, "output/test_pbc", nlocal, e112, 0);
+    for(int i1 = 0; i1 < 101; i1++) {
+        if(((i1 % 20) == 0)) {
+            enforce_pbc(grid0_d0_max, grid0_d0_min, grid0_d1_max, grid0_d1_min, grid0_d2_max, grid0_d2_min, nlocal, position);
+        }
+        if(((i1 % 20) == 0)) {
+            resizes[0] = 1;
+            while((resizes[0] > 0)) {
+                resizes[0] = 0;
+                setup_pbc(grid0_d0_max, grid0_d0_min, pbc_capacity, grid0_d1_max, grid0_d1_min, grid0_d2_max, grid0_d2_min, &npbc, &nlocal, pbc_map, pbc_mult, resizes, position);
+                const int a79 = resizes[0];
+                const bool e485 = a79 > 0;
+                if(e485) {
+                    const int a80 = resizes[0];
+                    const int e486 = a80 * 2;
+                    pbc_capacity = e486;
+                    pbc_map = (int *) realloc(pbc_map, (sizeof(int) * pbc_capacity));
+                    pbc_mult = (int *) realloc(pbc_mult, (sizeof(int) * (pbc_capacity * 3)));
+                    mass = (double *) realloc(mass, (sizeof(double) * ((0 + particle_capacity) + pbc_capacity)));
+                    ps->updateProperty(0, mass);
+                    position = (double *) realloc(position, (sizeof(double) * (((0 + particle_capacity) + pbc_capacity) * 3)));
+                    ps->updateProperty(1, position, ((0 + particle_capacity) + pbc_capacity), 3);
+                    velocity = (double *) realloc(velocity, (sizeof(double) * (((0 + particle_capacity) + pbc_capacity) * 3)));
+                    ps->updateProperty(2, velocity, ((0 + particle_capacity) + pbc_capacity), 3);
+                    force = (double *) realloc(force, (sizeof(double) * (((0 + particle_capacity) + pbc_capacity) * 3)));
+                    ps->updateProperty(3, force, ((0 + particle_capacity) + pbc_capacity), 3);
+                }
+            }
+        } else {
+            update_pbc(grid0_d0_max, grid0_d0_min, grid0_d1_max, grid0_d1_min, grid0_d2_max, grid0_d2_min, npbc, &nlocal, pbc_map, pbc_mult, position);
+        }
+        if(((i1 % 20) == 0)) {
+            resizes[0] = 1;
+            while((resizes[0] > 0)) {
+                resizes[0] = 0;
+                build_cell_lists(ncells, nlocal, npbc, &grid0_d0_min, &grid0_d1_min, &grid0_d2_min, &cell_capacity, cell_sizes, dim_cells, particle_cell, cell_particles, resizes, position);
+                const int a84 = resizes[0];
+                const bool e491 = a84 > 0;
+                if(e491) {
+                    const int a85 = resizes[0];
+                    const int e492 = a85 * 2;
+                    cell_capacity = e492;
+                    cell_particles = (int *) realloc(cell_particles, (sizeof(int) * (ncells_capacity * cell_capacity)));
+                }
+            }
+        }
+        if(((i1 % 20) == 0)) {
+            resizes[0] = 1;
+            while((resizes[0] > 0)) {
+                resizes[0] = 0;
+                neighbor_lists_build(nlocal, ncells, cell_capacity, nstencil, &neighborlist_capacity, numneighs, particle_cell, stencil, cell_particles, neighborlists, resizes, cell_sizes, position);
+                const int a89 = resizes[0];
+                const bool e496 = a89 > 0;
+                if(e496) {
+                    const int a90 = resizes[0];
+                    const int e497 = a90 * 2;
+                    neighborlist_capacity = e497;
+                    neighborlists = (int *) realloc(neighborlists, (sizeof(int) * (particle_capacity * neighborlist_capacity)));
+                }
+            }
+        }
+        reset_volatile_properties(nlocal, force);
+        module_0(neighborlist_capacity, nlocal, neighborlists, numneighs, position, force);
+        module_1(nlocal, velocity, force, mass, position);
         const int e73 = i1 + 1;
-        const int e456 = nlocal + npbc;
+        const int e402 = nlocal + npbc;
         pairs::vtk_write_data(ps, "output/test_local", 0, nlocal, e73);
-        pairs::vtk_write_data(ps, "output/test_pbc", nlocal, e456, e73);
+        pairs::vtk_write_data(ps, "output/test_pbc", nlocal, e402, e73);
     }
+    return 0;
 }