From 8e6f2cfa141b593b1b2859eb7f1722d2a822df56 Mon Sep 17 00:00:00 2001 From: Rafael Ravedutti <rafaelravedutti@gmail.com> Date: Wed, 16 Feb 2022 12:29:59 +0100 Subject: [PATCH] Update graph and source code Signed-off-by: Rafael Ravedutti <rafaelravedutti@gmail.com> --- examples/kernels | 1608 ++++++++++++++++++++---------------------- examples/kernels.pdf | Bin 47981 -> 44937 bytes examples/lj_ns.cpp | 1416 ++++++++++++++++++------------------- 3 files changed, 1462 insertions(+), 1562 deletions(-) diff --git a/examples/kernels b/examples/kernels index d3669ab..1f7c9fd 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 GIT binary patch delta 43659 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 delta 46693 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 G_J06s>}1dY diff --git a/examples/lj_ns.cpp b/examples/lj_ns.cpp index ac376f0..b588b2b 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; } -- GitLab