From 49b8bc8936240302d89132d5e0c7819e2fc2de95 Mon Sep 17 00:00:00 2001
From: Rafael Ravedutti Lucio Machado <rafael.r.ravedutti@fau.de>
Date: Sat, 20 Mar 2021 20:14:43 +0100
Subject: [PATCH] Add code for new syntax

Signed-off-by: Rafael Ravedutti Lucio Machado <rafael.r.ravedutti@fau.de>
---
 new_syntax/test.py | 36 ++++++++++++++++++++++++++++++++++++
 particle.py        | 12 ++++++++++++
 2 files changed, 48 insertions(+)
 create mode 100644 new_syntax/test.py

diff --git a/new_syntax/test.py b/new_syntax/test.py
new file mode 100644
index 0000000..48e25a3
--- /dev/null
+++ b/new_syntax/test.py
@@ -0,0 +1,36 @@
+import ast
+import inspect
+
+
+def lj(i, j):
+    sr2 = 1.0 / rsq(i, j)
+    sr6 = sr2 * sr2 * sr2 * sigma6
+    force[i] += delta(i, j) * 48.0 * sr6 * (sr6 - 0.5) * sr2 * epsilon
+
+
+def euler(i):
+    velocity[i] += dt * force[i] / mass[i]
+    position[i] += dt * velocity[i]
+
+
+class BuildParticleAST(ast.NodeVisitor):
+    def __init__(self, sim):
+        self.sim = sim
+        self.block = Block([])
+        self.temp_values = {}
+
+    def visit_Assign(self, node):
+        print(node.targets[0].id)
+        print(node.value)
+
+    def visit_AugAssign(self, node):
+        print(node.targets[0].id)
+        print(node.value)
+
+
+lj_src = inspect.getsource(lj)
+#print(ast.dump(ast.parse(lj_src, mode='eval'), indent=4))
+tree = ast.parse(lj_src, mode='exec')
+build = BuildParticleAST()
+build.visit(tree)
+#print(ast.dump(ast.parse(lj_src, mode='exec')))
diff --git a/particle.py b/particle.py
index f466126..e3bd789 100644
--- a/particle.py
+++ b/particle.py
@@ -14,6 +14,18 @@ position = psim.add_vector_property('position')
 velocity = psim.add_vector_property('velocity')
 force = psim.add_vector_property('force', vol=True)
 
+#def lj(i, j):
+#    sr2 = 1.0 / rsq(i, j)
+#    sr6 = sr2 * sr2 * sr2 * sigma6
+#    force[i] += delta(i, j) * 48.0 * sr6 * (sr6 - 0.5) * sr2 * epsilon
+
+#def euler(i):
+#    velocity[i] += dt * force[i] / mass[i]
+#    position[i] += dt * velocity[i]
+
+# psim.compute(lj)
+# psim.compute(euler)
+
 #grid = psim.grid_3d(0.0, 4.0, 0.0, 4.0, 0.0, 4.0)
 #psim.create_particle_lattice(grid, spacing=[0.82323, 0.82323, 0.82323])
 psim.from_file("data/minimd_setup_4x4x4.input", ['mass', 'position', 'velocity'])
-- 
GitLab