Commit 00c9671c by Pieter van Velde

### git error

parent 3610c510
 import numpy as np import sys def add_bead(pos, n, T_dim, j, w_jl, w_l): # Standard phi, KAN NAAR MAIN.PY phi_0 = np.linspace(0, 2 * np.pi - (2 / n) * np.pi, n) # Preallocate arrays def add_bead(pos, n, T_dim): phi = np.linspace(0, 2*np.pi - (2/n)*np.pi, n) E = np.zeros(n) # Calculate energy of different angles. DEZE FOR LOOP KAN WEG. for i in range(n): phi = phi_0 + (1-2*np.random.rand(n))*np.pi/n pos_new = np.zeros(2) pos_new[0] = pos[j-1, 0] + np.cos(phi[i]) pos_new[1] = pos[j-1, 1] + np.sin(phi[i]) rx = pos_new[0] - pos[0:j, 0] ry = pos_new[1] - pos[0:j, 1] pos_new = np.zeros(2) pos_new[0] = pos[1,0] + np.cos(phi[i]) pos_new[1] = pos[1,1] + np.sin(phi[i]) r = np.sqrt(rx ** 2 + ry ** 2) r[r == 0] = np.nan E[i] = np.sum(4 * ((1 / r) ** 12 - (1 / r) ** 6)) #print('E = ', E) w = np.exp(-E / T_dim) #if w == NaN: print('w = ', w) #w[np.isnan(w)] = 0 rx = pos_new[0] - pos[:, 0] ry = pos_new[1] - pos[:, 1] r = np.sqrt(rx**2 + ry**2) r[r==0] = np.nan E[i] = np.sum(4*((1/r)**12 - (1/r)**6)) w = np.exp(-E/T_dim) w[np.isnan(w)]=0 w_tot = np.sum(w) if w_tot == 0: print('Help, I have nowhere to go') print('w_tot = ', w_tot) sys.exit() P = w / w_tot P = w/w_tot final_phi = np.random.choice(phi, p=P) pos[j] = np.array([[pos[j-1, 0] + np.cos(final_phi), pos[j-1, 1] + np.sin(final_phi)]]) new = np.array([[pos[1,0] + np.cos(final_phi), pos[1,1] + np.sin(final_phi)]]) pos = np.r_[pos, new] w_idx = np.where(phi == final_phi) print('w_idx = ', w_idx[0]) w_jl = w_jl*w[w_idx[0]] w_l = w_l * w_tot return pos, w_jl, w_l \ No newline at end of file return pos \ No newline at end of file
 # Import libaries/functions import numpy as np from matplotlib import pyplot as plt import time from functions import add_bead # Simultion constants # Simulation parameters n_beads = 100 #number of beads n = 6 #number of angles # Physical parameters T_dim = 0.1 #T * (Kb / eps) # Non-dimensional temperature # Preallocate arrays pos = np.zeros([n_beads, 2]) # Initialization pos[1] = np.array([1, 0]) #bead 1: pos[0, 0]. bead 2: pos[1, 0] w_jl = 1 #start value of weight w_j w_l = 1 #start value of weight W n = 6 # number of phis T_dim = 0.001 pos = np.array([[0, 0], [1, 0]]) n_beads = 30 # Make polymer of lenght n_beads for j in range(2,n_beads): pos, w_jl, w_l = add_bead(pos, n, T_dim, j, w_jl, w_l) for j in range(n_beads): pos = add_bead(pos, n, T_dim) P = w_jl/w_l #Weight per polymer # Plot polymer plt.plot(pos[:,0], pos[:,1], marker= ".", markersize=20, color="k" ) plt.show() ... ...
Markdown is supported
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