diff --git a/src/pairs/code_gen/cgen.py b/src/pairs/code_gen/cgen.py index d6261dca9111501e479b9acb1160c60932915456..51ada586a620b070d052c99c8c205f5cccf60f65 100644 --- a/src/pairs/code_gen/cgen.py +++ b/src/pairs/code_gen/cgen.py @@ -326,7 +326,7 @@ class CGen: if isinstance(ast_node, Deref): var = self.generate_expression(ast_node.var) - return f"*{var}" + return f"(*{var})" if isinstance(ast_node, Iter): assert mem is False, "Iterator is not lvalue!" diff --git a/src/pairs/sim/pbc.py b/src/pairs/sim/pbc.py index 08a5d9609628c905bf7b32400cfb032f0b91857b..f91dd136a9a0fc7f33b24f7b79cfdf7113d60e81 100644 --- a/src/pairs/sim/pbc.py +++ b/src/pairs/sim/pbc.py @@ -89,12 +89,12 @@ class SetupPBC(Lowerable): sim.check_resize(pbc_capacity, npbc) npbc.set(0) - for i in For(sim, 0, nlocal + npbc): - pos = positions[i] - last_id = nlocal + npbc - last_pos = positions[last_id] + for d in range(0, ndims): + for i in For(sim, 0, nlocal + npbc): + pos = positions[i] + last_id = nlocal + npbc + last_pos = positions[last_id] - for d in range(0, ndims): grid_length = grid.length(d) # TODO: VecFilter? for _ in Filter(sim, pos[d] < grid.min(d) + cutneigh): diff --git a/src/pairs/sim/simulation.py b/src/pairs/sim/simulation.py index 8e30895eb1a9d06c3f938502baec03fb08acbd9b..8ef7b4fb45a5c2f6caf5d340a73876afd1b13b81 100644 --- a/src/pairs/sim/simulation.py +++ b/src/pairs/sim/simulation.py @@ -71,7 +71,15 @@ class Simulation: self.module_list.append(module) def modules(self): - return self.module_list + sorted_mods = [] + main_mod = None + for m in self.module_list: + if m.name != 'main': + sorted_mods.append(m) + else: + main_mod = m + + return sorted_mods + [main_mod] def ndims(self): return self.dims