Skip to content
Snippets Groups Projects
Commit ea3310d7 authored by Rafael Ravedutti's avatar Rafael Ravedutti
Browse files

Fix references in modules


Signed-off-by: default avatarRafael Ravedutti <rafaelravedutti@gmail.com>
parent 3514c9cd
Branches
Tags
No related merge requests found
...@@ -76,7 +76,7 @@ class ParticleFor(For): ...@@ -76,7 +76,7 @@ class ParticleFor(For):
return f"ParticleFor<>" return f"ParticleFor<>"
def children(self): def children(self):
return [self.sim.nlocal] + ([] if self.local_only else [self.sim.pbc.npbc]) return [self.block, self.sim.nlocal] + ([] if self.local_only else [self.sim.pbc.npbc])
class While(ASTNode): class While(ASTNode):
......
...@@ -19,7 +19,14 @@ class Visitor: ...@@ -19,7 +19,14 @@ class Visitor:
if method is not None: if method is not None:
method(ast_node) method(ast_node)
else: else:
self.visit_children(ast_node) for b in type(ast_node).__bases__:
method = self.get_method(f"visit_{b.__name__}")
if method is not None:
method(ast_node)
break
if method is None:
self.visit_children(ast_node)
def visit_children(self, ast_node): def visit_children(self, ast_node):
for c in ast_node.children(): for c in ast_node.children():
......
...@@ -216,7 +216,9 @@ class Simulation: ...@@ -216,7 +216,9 @@ class Simulation:
self.kernels self.kernels
]) ])
self.enter(timestep.block)
timestep.add(VTKWrite(self, self.vtk_file, timestep.timestep() + 1)) timestep.add(VTKWrite(self, self.vtk_file, timestep.timestep() + 1))
self.leave()
body = Block.from_list(self, [ body = Block.from_list(self, [
self.setups, self.setups,
......
...@@ -28,16 +28,19 @@ class Timestep: ...@@ -28,16 +28,19 @@ class Timestep:
stmts = item if not isinstance(item, Block) else item.statements() stmts = item if not isinstance(item, Block) else item.statements()
stmts_else = None stmts_else = None
ts = self.timestep_loop.iter() ts = self.timestep_loop.iter()
self.sim.enter(self.block)
if item_else is not None: if item_else is not None:
stmts_else = item_else if not isinstance(item_else, Block) else item_else.statements() stmts_else = item_else if not isinstance(item_else, Block) else item_else.statements()
if exec_every > 0: if exec_every > 0:
self.block.add_statement( self.block.add_statement(
Branch(self.sim, BinOp.cmp(ts % exec_every, 0), True if stmts_else is None else False, Branch(self.sim, BinOp.inline(BinOp.cmp(ts % exec_every, 0)), True if stmts_else is None else False,
Block(self.sim, stmts), None if stmts_else is None else Block(self.sim, stmts_else))) Block(self.sim, stmts), None if stmts_else is None else Block(self.sim, stmts_else)))
else: else:
self.block.add_statement(stmts) self.block.add_statement(stmts)
self.sim.leave()
def as_block(self): def as_block(self):
return Block(self.sim, [self.timestep_loop]) return Block(self.sim, [self.timestep_loop])
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment