From 1d65a5ff84b9cfb50c2b84b6f561b140586763fe Mon Sep 17 00:00:00 2001 From: Ray Speth Date: Mon, 3 Sep 2018 23:04:01 -0400 Subject: [PATCH] Use np.hstack instead of nested np.append calls --- reactors/1D_pfr_surfchem.ipynb | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/reactors/1D_pfr_surfchem.ipynb b/reactors/1D_pfr_surfchem.ipynb index 7ac7a87..75a8b57 100644 --- a/reactors/1D_pfr_surfchem.ipynb +++ b/reactors/1D_pfr_surfchem.ipynb @@ -310,14 +310,14 @@ "wdot = gas.net_production_rates # homogeneous molar production rate\n", "################### a #########################\n", "a = np.zeros((3+N,3+N))\n", - "a[0,:] = np.append([rho0,u0], np.zeros(1+N))\n", + "a[0,:] = np.hstack((rho0, u0, np.zeros(1+N)))\n", "for i in range(N):\n", " a[1+i,2+i] = rho0*u0*Ac\n", - "a[1+N,:] = np.append(np.append([2*rho0*u0, u0**2],np.zeros(N)),[1])\n", + "a[1+N,:] = np.hstack((2*rho0*u0, u0**2, np.zeros(N), 1))\n", "coef = np.zeros(N)\n", "for j in range(N):\n", " coef[j] = gas.P/W[j]/np.power(np.sum(gas.Y/W),2)\n", - "a[2+N,:] = np.append(np.append([0,ct.gas_constant*T0],coef),-W_avg)\n", + "a[2+N,:] = np.hstack((0, ct.gas_constant*T0, coef, -W_avg))\n", "################### b ###########################\n", "b = np.zeros(3+gas.n_species)\n", "b[0] = perim*np.sum(sdot[:N]*W)/Ac\n", @@ -328,7 +328,9 @@ "b[1+gas.n_species] = -32*u0*mu/D**2\n", "b[2+gas.n_species] = 0\n", "part_vecp0 = np.linalg.solve(a,b)\n", - "vecp0 = np.append(part_vecp0,np.zeros(M))" + "\n", + "vecp0 = np.hstack((part_vecp0, np.zeros(M)))\n", + "vec0 = np.hstack((11.53, gas.density, gas.Y, gas.P, Zk_0))" ] }, { @@ -362,7 +364,6 @@ " old_api=False # Forces use of new api (namedtuple)\n", ")\n", "\n", - "vec0 = np.append(np.append(np.append([11.53, gas.density], gas.Y),gas.P),Zk_0)\n", "solution = solver.solve(np.arange(0,0.7,0.1), vec0,vecp0)" ] }, @@ -604,7 +605,7 @@ " result[3+N+M] = (rho*u*Ac*gas.cp*dTdz\n", " + Ac*np.sum(wdot_g*W_g*h)\n", " + perim*np.sum(h*sdot_g*W_g)\n", - " + perim*np.sum(bdot*np.append(W_Si_b,W_N_b)*np.append(h_Si,h_N)))" + " + perim*(bdot[0]*W_Si_b*h_Si + bdot[1]*W_N_b*h_N))" ] }, { @@ -633,15 +634,15 @@ "W_N = bulk_N.molecular_weights\n", "################### a #########################\n", "a = np.zeros((4+N,4+N))\n", - "a[0,:] = np.append([rho0,u0],np.zeros(2+N))\n", + "a[0,:] = np.hstack((rho0, u0, np.zeros(2+N)))\n", "for i in range(N):\n", " a[1+i,2+i] = rho0*u0*Ac\n", - "a[1+N,:] = np.append(np.append([2*rho0*u0, u0**2],np.zeros(N)),[1,0])\n", + "a[1+N,:] = np.hstack((2*rho0*u0, u0**2, np.zeros(N), 1,0))\n", "coef = np.zeros(N)\n", "for j in range(N):\n", " coef[j] = gas.P/W[j]/np.power(np.sum(gas.Y/W),2)\n", - "a[2+N,:] = np.append(np.append([0,ct.gas_constant*T0],coef),[-W_avg,0])\n", - "a[3+N,:] = np.append(np.zeros(3+N),rho0*u0*Ac*gas.cp)\n", + "a[2+N,:] = np.hstack((0, ct.gas_constant*T0, coef, -W_avg, 0))\n", + "a[3+N,:] = np.hstack((np.zeros(3+N), rho0*u0*Ac*gas.cp))\n", "################### b ###########################\n", "b = np.zeros(4+gas.n_species)\n", "b[0] = perim*np.sum(sdot[:N]*W)/Ac\n", @@ -653,9 +654,11 @@ "b[2+gas.n_species] = 0\n", "b[3+gas.n_species] = (- Ac*np.sum(wdot*W*h)\n", " - perim*np.sum(h*sdot[:N]*W)\n", - " - perim*np.sum(sdot[N:N+2]*np.append(W_Si,W_N)*np.append(h_Si,h_N)))\n", + " - perim*np.sum(sdot[N]*W_Si*h_Si + sdot[N+1]*W_N*h_N))\n", "part_vecp0 = np.linalg.solve(a,b)\n", - "vecp0 = np.append(np.append(part_vecp0[:-1],np.zeros(M)),part_vecp0[-1])" + "\n", + "vecp0 = np.hstack((part_vecp0[:-1], np.zeros(M), part_vecp0[-1]))\n", + "vec0 = np.hstack((11.53, gas.density, gas.Y, gas.P, Zk_0, T0))" ] }, { @@ -677,7 +680,6 @@ " old_api=False\n", ")\n", "\n", - "vec0 = np.append(np.append(np.append(np.append([11.53, gas.density], gas.Y),gas.P),Zk_0),T0)\n", "solution = solver.solve(np.arange(0,0.7,0.1), vec0,vecp0)" ] },