n_vertices = 20 vertices=[] for k in range(n_vertices): t = 2.0*pi*float(k)/n_vertices vertices.append( array((cos(t),sin(t)))*(cos((t-atan2(-1,-1))*3)+2)*3.0 ) D = polygon2D(vertices) chi_D = simpleFunction([(D,1.0)]) chi_D = grid.evaluate( lambda x,y: chi_D((x,y)) ) chi_Dc = grid.ones()-chi_D f = lambda x,y: 5.0*exp(-norm(array((x,y))-array((-5,-5)))**2/9) F = chi_Dc* grid.evaluate( f ) write_png( chi_D, "chi_D.png", major_scale=std(chi_D)*1, center=mean(chi_D) ) write_png( F, "F.png", major_scale=std(F)*1, center=mean(F) ) #---------------------- class terminator: def __init__(self, ode_instance ): self.ode_instance = ode_instance self.last = None def terminate(self, t, v, dt): v_norm = norm(v)
vertices=[] for k in range(n_vertices): t = 2.0*pi*float(k)/n_vertices vertices.append( array((cos(t),sin(t)))*(cos((t-atan2(-1,-1))*3)+2)*3.0 ) D = polygon2D(vertices) chi_D = simpleFunction([(D,1.0)]) D = grid.evaluate( lambda x,y: chi_D((x,y)) ) Dc = grid.ones()-D f = lambda x,y: 5.0*exp(-norm(array((x,y))-array((-5,-5)))**2/9) F = grid.evaluate( f ) F *= Dc write_png( D, "chi_D.png", major_scale=std(D)*1, center=mean(D) ) write_png( F, "F.png", major_scale=std(F)*1, center=mean(F) ) """ D = grid.ones() F = grid.evaluate( lambda x,y: exp(-norm((x,y))**2) ) """ class terminator: def __init__(self, ode_instance ):
def draw(u, fname, s=1.0): write_png( u, fname, major_scale=std(u)*s, center=mean(u) )
n_vertices = 40 vertices=[] for k in range(n_vertices): t = 2.0*pi*float(k)/n_vertices vertices.append( array((cos(t),sin(t)))*(cos((t-atan2(-1,-1))*3)+2)*3.0 ) D = polygon2D(vertices) chi_D = simpleFunction([(D, 1.0)]) chi_D = grid.evaluate( lambda x,y: chi_D((x,y)) ) chi_Dc = grid.ones()-chi_D f = lambda x,y: 5.0*exp(-norm(array((x,y))-array((-5,-5)))**2/9) F = chi_Dc* grid.evaluate( f ) write_png( chi_D, "chi_D.png", major_scale=std(chi_D)*1, center=mean(chi_D) ) write_png( F, "F.png", major_scale=std(F)*1, center=mean(F) ) #---------------------- class terminator: def __init__(self, ode_instance ): self.ode_instance = ode_instance self.last = None def terminate(self, t, v, dt): v_norm = norm(v)