In [1]:
import sys
import numpy as np
import math
import random
import matplotlib.pyplot as plt

def kernel1():
    kernel = []
    vec1 = [0.05, 0.2, 0.05]
    vec2 = [0.20,-1.0, 0.20]
    vec3 = [0.05, 0.2, 0.05]
    kernel.append(vec1)
    kernel.append(vec2)
    kernel.append(vec3)
    
    return kernel
    
kernel = kernel1()
print("kernel", kernel)
kernel [[0.05, 0.2, 0.05], [0.2, -1.0, 0.2], [0.05, 0.2, 0.05]]
In [2]:
def laplace(x, y, L, M, kernel):
    laplace = 0
    
    for i in range(3):
        for j in range(3):
            a = x + i - 1
            b = y + j - 1
            if (a >= 0 and b >= 0 and a < L and b < L):
                val = M[a][b] * kernel[i][j]
                laplace += val
    return laplace

def init_grid(val, x0, x1, y0, y1, M):
    for x in range(x0,x1,1):
        for y in range(y0,y1,1):
            M[x][y] = val
            
def init_grid_random(val, x0, x1, y0, y1, M):
    for x in range(x0,x1,1):
        for y in range(y0,y1,1):
            M[x][y] = val*random.uniform(0, 1)

def copyM(L, M):
    Copy = np.zeros((L,L))
    
    for x in range(L):
        for y in range(L):
            Copy[x][y] = M[x][y]
    return Copy
        
        
In [3]:
def brusselator(L, T, Da, Db, ka, kb, kernel, A, B):
    inc_t = 0.05
    inc_x = 0.5
    
    #pattern formation conditions
    if kb >= 1 + ka*ka:
        print("kb < 1+ka^2  failed", kb, 1+ka*ka)
        sys.exit()
    if kb <= (1 + ka*np.sqrt(Da/Db))*(1 + ka*np.sqrt(Da/Db)):
        print("kb > (1 + ka*sqrt(DA/DB)^2 failed", kb, (1 + ka*np.sqrt(Da/Db))*(1 + ka*np.sqrt(Da/Db)))
        sys.exit()
 
    t = 0
    n = 0
    while(t < T):
        thisA = copyM(L, A)
        thisB = copyM(L, B)
        
        for x in range(L):
            for y in range(L):
                Aval = thisA[x][y]
                Bval = thisB[x][y]
                
                # the reaction term
                addA  = ka - (1+kb)*Aval + Aval*Aval*Bval
                addB  = kb*Aval - Aval*Aval*Bval

                # the diffusion term
                addA += inc_x*DA*laplace(x, y, L, thisA, kernel)
                addB += inc_x*DB*laplace(x, y, L, thisB, kernel)
                                   
                if Aval+addA*inc_t < 0:
                    break
                if Bval+addB*inc_t < 0:
                    break

                A[x][y] += addA*inc_t
                B[x][y] += addB*inc_t
        
        
        if n % 50 == 0:
            print("time", t)
            plt.matshow(A)
            plt.colorbar()
            plt.show()


        t += inc_t
        n += 1
        
        
T = 500
L = 100

# My setup
DA = 5
DB = 12
ka = 3
kb = 9.9
A = np.zeros((L,L))
B = np.zeros((L,L))
init_grid_random(ka, 0, L-1, 0, L-1, A)
brusselator(L, T, DA, DB, ka, kb, kernel, A, B)
time 0
No description has been provided for this image
time 2.499999999999999
No description has been provided for this image
time 4.99999999999999
No description has been provided for this image
time 7.499999999999981
No description has been provided for this image
time 10.000000000000007
No description has been provided for this image
time 12.500000000000043
No description has been provided for this image
time 15.000000000000078
No description has been provided for this image
time 17.500000000000114
No description has been provided for this image
time 20.00000000000015
No description has been provided for this image
time 22.500000000000185
No description has been provided for this image
time 25.00000000000022
No description has been provided for this image
time 27.500000000000256
No description has been provided for this image
time 30.00000000000029
No description has been provided for this image
time 32.50000000000029
No description has been provided for this image
time 35.00000000000015
No description has been provided for this image
time 37.50000000000001
No description has been provided for this image
time 39.999999999999865
No description has been provided for this image
time 42.49999999999972
No description has been provided for this image
time 44.99999999999958
No description has been provided for this image
time 47.49999999999944
No description has been provided for this image
time 49.9999999999993
No description has been provided for this image
time 52.499999999999154
No description has been provided for this image
time 54.99999999999901
No description has been provided for this image
time 57.49999999999887
No description has been provided for this image
time 59.99999999999873
No description has been provided for this image
time 62.499999999998586
No description has been provided for this image
time 64.99999999999845
No description has been provided for this image
time 67.49999999999831
No description has been provided for this image
time 69.99999999999817
No description has been provided for this image
time 72.49999999999802
No description has been provided for this image
time 74.99999999999788
No description has been provided for this image
time 77.49999999999774
No description has been provided for this image
time 79.9999999999976
No description has been provided for this image
time 82.49999999999746
No description has been provided for this image
time 84.99999999999731
No description has been provided for this image
time 87.49999999999717
No description has been provided for this image
time 89.99999999999703
No description has been provided for this image
time 92.49999999999689
No description has been provided for this image
time 94.99999999999675
No description has been provided for this image
time 97.4999999999966
No description has been provided for this image
time 99.99999999999646
No description has been provided for this image
time 102.49999999999632
No description has been provided for this image
time 104.99999999999618
No description has been provided for this image
time 107.49999999999604
No description has been provided for this image
time 109.9999999999959
No description has been provided for this image
time 112.49999999999575
No description has been provided for this image
time 114.99999999999561
No description has been provided for this image
time 117.49999999999547
No description has been provided for this image
time 119.99999999999532
No description has been provided for this image
time 122.49999999999518
No description has been provided for this image
time 124.99999999999504
No description has been provided for this image
time 127.4999999999949
No description has been provided for this image
time 129.9999999999953
No description has been provided for this image
time 132.49999999999588
No description has been provided for this image
time 134.99999999999645
No description has been provided for this image
time 137.49999999999702
No description has been provided for this image
time 139.99999999999758
No description has been provided for this image
time 142.49999999999815
No description has been provided for this image
time 144.99999999999872
No description has been provided for this image
time 147.4999999999993
No description has been provided for this image
time 149.99999999999986
No description has been provided for this image
time 152.50000000000043
No description has been provided for this image
time 155.000000000001
No description has been provided for this image
time 157.50000000000156
No description has been provided for this image
time 160.00000000000213
No description has been provided for this image
time 162.5000000000027
No description has been provided for this image
time 165.00000000000327
No description has been provided for this image
time 167.50000000000384
No description has been provided for this image
time 170.0000000000044
No description has been provided for this image
time 172.50000000000497
No description has been provided for this image
time 175.00000000000554
No description has been provided for this image
time 177.5000000000061
No description has been provided for this image
time 180.00000000000668
No description has been provided for this image
time 182.50000000000725
No description has been provided for this image
time 185.00000000000782
No description has been provided for this image
time 187.50000000000838
No description has been provided for this image
time 190.00000000000895
No description has been provided for this image
time 192.50000000000952
No description has been provided for this image
time 195.0000000000101
No description has been provided for this image
time 197.50000000001066
No description has been provided for this image
time 200.00000000001123
No description has been provided for this image
time 202.5000000000118
No description has been provided for this image
time 205.00000000001236
No description has been provided for this image
time 207.50000000001293
No description has been provided for this image
time 210.0000000000135
No description has been provided for this image
time 212.50000000001407
No description has been provided for this image
time 215.00000000001464
No description has been provided for this image
time 217.5000000000152
No description has been provided for this image
time 220.00000000001577
No description has been provided for this image
time 222.50000000001634
No description has been provided for this image
time 225.0000000000169
No description has been provided for this image
time 227.50000000001748
No description has been provided for this image
time 230.00000000001805
No description has been provided for this image
time 232.50000000001862
No description has been provided for this image
time 235.00000000001918
No description has been provided for this image
time 237.50000000001975
No description has been provided for this image
time 240.00000000002032
No description has been provided for this image
time 242.5000000000209
No description has been provided for this image
time 245.00000000002146
No description has been provided for this image
time 247.50000000002203
No description has been provided for this image
time 250.0000000000226
No description has been provided for this image
time 252.50000000002316
No description has been provided for this image
time 255.00000000002373
No description has been provided for this image
time 257.5000000000243
No description has been provided for this image
time 260.00000000002484
No description has been provided for this image
time 262.5000000000254
No description has been provided for this image
time 265.000000000026
No description has been provided for this image
time 267.50000000002655
No description has been provided for this image
time 270.0000000000271
No description has been provided for this image
time 272.5000000000277
No description has been provided for this image
time 275.00000000002825
No description has been provided for this image
time 277.5000000000288
No description has been provided for this image
time 280.0000000000294
No description has been provided for this image
time 282.50000000002996
No description has been provided for this image
time 285.0000000000305
No description has been provided for this image
time 287.5000000000311
No description has been provided for this image
time 290.00000000003166
No description has been provided for this image
time 292.50000000003223
No description has been provided for this image
time 295.0000000000328
No description has been provided for this image
time 297.50000000003337
No description has been provided for this image
time 300.00000000003394
No description has been provided for this image
time 302.5000000000345
No description has been provided for this image
time 305.0000000000351
No description has been provided for this image
time 307.50000000003564
No description has been provided for this image
time 310.0000000000362
No description has been provided for this image
time 312.5000000000368
No description has been provided for this image
time 315.00000000003735
No description has been provided for this image
time 317.5000000000379
No description has been provided for this image
time 320.0000000000385
No description has been provided for this image
time 322.50000000003905
No description has been provided for this image
time 325.0000000000396
No description has been provided for this image
time 327.5000000000402
No description has been provided for this image
time 330.00000000004076
No description has been provided for this image
time 332.5000000000413
No description has been provided for this image
time 335.0000000000419
No description has been provided for this image
time 337.50000000004246
No description has been provided for this image
time 340.00000000004303
No description has been provided for this image
time 342.5000000000436
No description has been provided for this image
time 345.00000000004417
No description has been provided for this image
time 347.50000000004474
No description has been provided for this image
time 350.0000000000453
No description has been provided for this image
time 352.5000000000459
No description has been provided for this image
time 355.00000000004644
No description has been provided for this image
time 357.500000000047
No description has been provided for this image
time 360.0000000000476
No description has been provided for this image
time 362.50000000004815
No description has been provided for this image
time 365.0000000000487
No description has been provided for this image
time 367.5000000000493
No description has been provided for this image
time 370.00000000004985
No description has been provided for this image
time 372.5000000000504
No description has been provided for this image
time 375.000000000051
No description has been provided for this image
time 377.50000000005156
No description has been provided for this image
time 380.0000000000521
No description has been provided for this image
time 382.5000000000527
No description has been provided for this image
time 385.00000000005326
No description has been provided for this image
time 387.50000000005383
No description has been provided for this image
time 390.0000000000544
No description has been provided for this image
time 392.50000000005497
No description has been provided for this image
time 395.00000000005554
No description has been provided for this image
time 397.5000000000561
No description has been provided for this image
time 400.0000000000567
No description has been provided for this image
time 402.50000000005724
No description has been provided for this image
time 405.0000000000578
No description has been provided for this image
time 407.5000000000584
No description has been provided for this image
time 410.00000000005895
No description has been provided for this image
time 412.5000000000595
No description has been provided for this image
time 415.0000000000601
No description has been provided for this image
time 417.50000000006065
No description has been provided for this image
time 420.0000000000612
No description has been provided for this image
time 422.5000000000618
No description has been provided for this image
time 425.00000000006236
No description has been provided for this image
time 427.5000000000629
No description has been provided for this image
time 430.0000000000635
No description has been provided for this image
time 432.50000000006406
No description has been provided for this image
time 435.00000000006463
No description has been provided for this image
time 437.5000000000652
No description has been provided for this image
time 440.00000000006577
No description has been provided for this image
time 442.50000000006634
No description has been provided for this image
time 445.0000000000669
No description has been provided for this image
time 447.5000000000675
No description has been provided for this image
time 450.00000000006804
No description has been provided for this image
time 452.5000000000686
No description has been provided for this image
time 455.0000000000692
No description has been provided for this image
time 457.50000000006975
No description has been provided for this image
time 460.0000000000703
No description has been provided for this image
time 462.5000000000709
No description has been provided for this image
time 465.00000000007145
No description has been provided for this image
time 467.500000000072
No description has been provided for this image
time 470.0000000000726
No description has been provided for this image
time 472.50000000007316
No description has been provided for this image
time 475.0000000000737
No description has been provided for this image
time 477.5000000000743
No description has been provided for this image
time 480.00000000007486
No description has been provided for this image
time 482.50000000007543
No description has been provided for this image
time 485.000000000076
No description has been provided for this image
time 487.50000000007657
No description has been provided for this image
time 490.00000000007714
No description has been provided for this image
time 492.5000000000777
No description has been provided for this image
time 495.0000000000783
No description has been provided for this image
time 497.50000000007884
No description has been provided for this image
In [4]:
DA = 2.8
DB = 22.4
ka = 1.5
kb = 2.4
A = np.zeros((L,L))
B = np.zeros((L,L))
init_grid(1, 48, 52, 48, 52, A)
brusselator(L, T, DA, DB, ka, kb, kernel, A, B)
time 0
No description has been provided for this image
time 2.499999999999999
No description has been provided for this image
time 4.99999999999999
No description has been provided for this image
time 7.499999999999981
No description has been provided for this image
time 10.000000000000007
No description has been provided for this image
time 12.500000000000043
No description has been provided for this image
time 15.000000000000078
No description has been provided for this image
time 17.500000000000114
No description has been provided for this image
time 20.00000000000015
No description has been provided for this image
time 22.500000000000185
No description has been provided for this image
time 25.00000000000022
No description has been provided for this image
time 27.500000000000256
No description has been provided for this image
time 30.00000000000029
No description has been provided for this image
time 32.50000000000029
No description has been provided for this image
time 35.00000000000015
No description has been provided for this image
time 37.50000000000001
No description has been provided for this image
time 39.999999999999865
No description has been provided for this image
time 42.49999999999972
No description has been provided for this image
time 44.99999999999958
No description has been provided for this image
time 47.49999999999944
No description has been provided for this image
time 49.9999999999993
No description has been provided for this image
time 52.499999999999154
No description has been provided for this image
time 54.99999999999901
No description has been provided for this image
time 57.49999999999887
No description has been provided for this image
time 59.99999999999873
No description has been provided for this image
time 62.499999999998586
No description has been provided for this image
time 64.99999999999845
No description has been provided for this image
time 67.49999999999831
No description has been provided for this image
time 69.99999999999817
No description has been provided for this image
time 72.49999999999802
No description has been provided for this image
time 74.99999999999788
No description has been provided for this image
time 77.49999999999774
No description has been provided for this image
time 79.9999999999976
No description has been provided for this image
time 82.49999999999746
No description has been provided for this image
time 84.99999999999731
No description has been provided for this image
time 87.49999999999717
No description has been provided for this image
time 89.99999999999703
No description has been provided for this image
time 92.49999999999689
No description has been provided for this image
time 94.99999999999675
No description has been provided for this image
time 97.4999999999966
No description has been provided for this image
time 99.99999999999646
No description has been provided for this image
time 102.49999999999632
No description has been provided for this image
time 104.99999999999618
No description has been provided for this image
time 107.49999999999604
No description has been provided for this image
time 109.9999999999959
No description has been provided for this image
time 112.49999999999575
No description has been provided for this image
time 114.99999999999561
No description has been provided for this image
time 117.49999999999547
No description has been provided for this image
time 119.99999999999532
No description has been provided for this image
time 122.49999999999518
No description has been provided for this image
time 124.99999999999504
No description has been provided for this image
time 127.4999999999949
No description has been provided for this image
time 129.9999999999953
No description has been provided for this image
time 132.49999999999588
No description has been provided for this image
time 134.99999999999645
No description has been provided for this image
time 137.49999999999702
No description has been provided for this image
time 139.99999999999758
No description has been provided for this image
time 142.49999999999815
No description has been provided for this image
time 144.99999999999872
No description has been provided for this image
time 147.4999999999993
No description has been provided for this image
time 149.99999999999986
No description has been provided for this image
time 152.50000000000043
No description has been provided for this image
time 155.000000000001
No description has been provided for this image
time 157.50000000000156
No description has been provided for this image
time 160.00000000000213
No description has been provided for this image
time 162.5000000000027
No description has been provided for this image
time 165.00000000000327
No description has been provided for this image
time 167.50000000000384
No description has been provided for this image
time 170.0000000000044
No description has been provided for this image
time 172.50000000000497
No description has been provided for this image
time 175.00000000000554
No description has been provided for this image
time 177.5000000000061
No description has been provided for this image
time 180.00000000000668
No description has been provided for this image
time 182.50000000000725
No description has been provided for this image
time 185.00000000000782
No description has been provided for this image
time 187.50000000000838
No description has been provided for this image
time 190.00000000000895
No description has been provided for this image
time 192.50000000000952
No description has been provided for this image
time 195.0000000000101
No description has been provided for this image
time 197.50000000001066
No description has been provided for this image
time 200.00000000001123
No description has been provided for this image
time 202.5000000000118
No description has been provided for this image
time 205.00000000001236
No description has been provided for this image
time 207.50000000001293
No description has been provided for this image
time 210.0000000000135
No description has been provided for this image
time 212.50000000001407
No description has been provided for this image
time 215.00000000001464
No description has been provided for this image
time 217.5000000000152
No description has been provided for this image
time 220.00000000001577
No description has been provided for this image
time 222.50000000001634
No description has been provided for this image
time 225.0000000000169
No description has been provided for this image
time 227.50000000001748
No description has been provided for this image
time 230.00000000001805
No description has been provided for this image
time 232.50000000001862
No description has been provided for this image
time 235.00000000001918
No description has been provided for this image
time 237.50000000001975
No description has been provided for this image
time 240.00000000002032
No description has been provided for this image
time 242.5000000000209
No description has been provided for this image
time 245.00000000002146
No description has been provided for this image
time 247.50000000002203
No description has been provided for this image
time 250.0000000000226
No description has been provided for this image
time 252.50000000002316
No description has been provided for this image
time 255.00000000002373
No description has been provided for this image
time 257.5000000000243
No description has been provided for this image
time 260.00000000002484
No description has been provided for this image
time 262.5000000000254
No description has been provided for this image
time 265.000000000026
No description has been provided for this image
time 267.50000000002655
No description has been provided for this image
time 270.0000000000271
No description has been provided for this image
time 272.5000000000277
No description has been provided for this image
time 275.00000000002825
No description has been provided for this image
time 277.5000000000288
No description has been provided for this image
time 280.0000000000294
No description has been provided for this image
time 282.50000000002996
No description has been provided for this image
time 285.0000000000305
No description has been provided for this image
time 287.5000000000311
No description has been provided for this image
time 290.00000000003166
No description has been provided for this image
time 292.50000000003223
No description has been provided for this image
time 295.0000000000328
No description has been provided for this image
time 297.50000000003337
No description has been provided for this image
time 300.00000000003394
No description has been provided for this image
time 302.5000000000345
No description has been provided for this image
time 305.0000000000351
No description has been provided for this image
time 307.50000000003564
No description has been provided for this image
time 310.0000000000362
No description has been provided for this image
time 312.5000000000368
No description has been provided for this image
time 315.00000000003735
No description has been provided for this image
time 317.5000000000379
No description has been provided for this image
time 320.0000000000385
No description has been provided for this image
time 322.50000000003905
No description has been provided for this image
time 325.0000000000396
No description has been provided for this image
time 327.5000000000402
No description has been provided for this image
time 330.00000000004076
No description has been provided for this image
time 332.5000000000413
No description has been provided for this image
time 335.0000000000419
No description has been provided for this image
time 337.50000000004246
No description has been provided for this image
time 340.00000000004303
No description has been provided for this image
time 342.5000000000436
No description has been provided for this image
time 345.00000000004417
No description has been provided for this image
time 347.50000000004474
No description has been provided for this image
time 350.0000000000453
No description has been provided for this image
time 352.5000000000459
No description has been provided for this image
time 355.00000000004644
No description has been provided for this image
time 357.500000000047
No description has been provided for this image
time 360.0000000000476
No description has been provided for this image
time 362.50000000004815
No description has been provided for this image
time 365.0000000000487
No description has been provided for this image
time 367.5000000000493
No description has been provided for this image
time 370.00000000004985
No description has been provided for this image
time 372.5000000000504
No description has been provided for this image
time 375.000000000051
No description has been provided for this image
time 377.50000000005156
No description has been provided for this image
time 380.0000000000521
No description has been provided for this image
time 382.5000000000527
No description has been provided for this image
time 385.00000000005326
No description has been provided for this image
time 387.50000000005383
No description has been provided for this image
time 390.0000000000544
No description has been provided for this image
time 392.50000000005497
No description has been provided for this image
time 395.00000000005554
No description has been provided for this image
time 397.5000000000561
No description has been provided for this image
time 400.0000000000567
No description has been provided for this image
time 402.50000000005724
No description has been provided for this image
time 405.0000000000578
No description has been provided for this image
time 407.5000000000584
No description has been provided for this image
time 410.00000000005895
No description has been provided for this image
time 412.5000000000595
No description has been provided for this image
time 415.0000000000601
No description has been provided for this image
time 417.50000000006065
No description has been provided for this image
time 420.0000000000612
No description has been provided for this image
time 422.5000000000618
No description has been provided for this image
time 425.00000000006236
No description has been provided for this image
time 427.5000000000629
No description has been provided for this image
time 430.0000000000635
No description has been provided for this image
time 432.50000000006406
No description has been provided for this image
time 435.00000000006463
No description has been provided for this image
time 437.5000000000652
No description has been provided for this image
time 440.00000000006577
No description has been provided for this image
time 442.50000000006634
No description has been provided for this image
time 445.0000000000669
No description has been provided for this image
time 447.5000000000675
No description has been provided for this image
time 450.00000000006804
No description has been provided for this image
time 452.5000000000686
No description has been provided for this image
time 455.0000000000692
No description has been provided for this image
time 457.50000000006975
No description has been provided for this image
time 460.0000000000703
No description has been provided for this image
time 462.5000000000709
No description has been provided for this image
time 465.00000000007145
No description has been provided for this image
time 467.500000000072
No description has been provided for this image
time 470.0000000000726
No description has been provided for this image
time 472.50000000007316
No description has been provided for this image
time 475.0000000000737
No description has been provided for this image
time 477.5000000000743
No description has been provided for this image
time 480.00000000007486
No description has been provided for this image
time 482.50000000007543
No description has been provided for this image
time 485.000000000076
No description has been provided for this image
time 487.50000000007657
No description has been provided for this image
time 490.00000000007714
No description has been provided for this image
time 492.5000000000777
No description has been provided for this image
time 495.0000000000783
No description has been provided for this image
time 497.50000000007884
No description has been provided for this image
In [ ]: