import sys from os import sep sys.path.append('..'+sep+'pyvolution') #======================================================================== from config import g, epsilon from Numeric import allclose, array, zeros, ones, Float from parallel_meshes import parallel_rectangle from advection import Domain from parallel_advection import Parallel_Domain from parallel_advection import Transmissive_boundary, Dirichlet_boundary import pypar numprocs = pypar.size() myid = pypar.rank() processor_name = pypar.Get_processor_name() #N = 50 N = 50 M = 50 points, vertices, boundary, full_send_dict, ghost_recv_dict = \ parallel_rectangle(N, M, len1_g=1.0) #Create advection domain with direction (1,-1) domain = Parallel_Domain(points, vertices, boundary, full_send_dict, ghost_recv_dict, velocity=[1.0, 0.0]) # Initial condition is zero by default #turn on the visualisation rect = [0.0, 0.0, 1.0, 1.0] domain.initialise_visualiser(rect=rect) #Boundaries T = Transmissive_boundary(domain) D = Dirichlet_boundary(array([1.0])) domain.default_order = 2 domain.set_boundary( {'left': T, 'right': T, 'bottom': T, 'top': T} ) domain.check_integrity() class Set_Stage: """Set an initial condition with constant water height, for xself.x0)&(x