diff --git a/new_syntax/test.py b/new_syntax/test.py new file mode 100644 index 0000000000000000000000000000000000000000..48e25a32b021c25eef45fef2cb9d3e2fbb3ecd4d --- /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 f46612644d8d87433b43e5dc49aba3cc98754671..e3bd7897ad9beca13548bac4607745ae1c0a9c42 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'])