import zmq import json import random def jacobi_iteration(u): for i in range(1, len(u) - 1): u[i] = 0.5 * (u[i - 1] + u[i + 1]) context = zmq.Context() socket = context.socket(zmq.REQ) socket.connect("tcp://192.168.2.110:5555") print("Requesting parameters…") socket.send(b"jacobi_request") message = socket.recv().decode("ascii") params = json.loads(message) # initialize domain u = [random.random() for i in range(params["n_unknowns"])] u[0] = 0.0 u[len(u) - 1] = 0.0 socket.send("-".join(str(x) for x in u).encode("ascii")) while True: # if requested, perform jacobi iteration and send result message = socket.recv().decode("ascii") if message != "next": break jacobi_iteration(u) socket.send("-".join(str(x) for x in u).encode("ascii"))