From d56564218e53ec5c073de2b4c0830d7b823855c5 Mon Sep 17 00:00:00 2001 From: Rodrigo Nemmen Date: Tue, 16 Jun 2015 21:07:39 -0300 Subject: [PATCH 1/4] noticed issues with pypluto.pload.grid The grid method is not reading the grid file correctly. Need to correct for this. --- pyPLUTO.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) mode change 100644 => 100755 pyPLUTO.py diff --git a/pyPLUTO.py b/pyPLUTO.py old mode 100644 new mode 100755 index 759f6fe..0b8aad1 --- a/pyPLUTO.py +++ b/pyPLUTO.py @@ -158,9 +158,11 @@ def grid(self): fname_g = self.wdir+"grid.out" f_grid=open(fname_g) lnum_g = len(f_grid.readlines()) - n1 = linecache.getline(fname_g,1) - n2 = linecache.getline(fname_g,int(n1)+2) - n3 = linecache.getline(fname_g,int(n1)+int(n2)+3) + # have to make smart code that does pattern matching to find values of n below + ##### + n1 = linecache.getline(fname_g,10) + n2 = linecache.getline(fname_g,int(n1)+11) + n3 = linecache.getline(fname_g,int(n1)+int(n2)+12) x1=[] x2=[] x3=[] From e7a9257394dac2154bb1f9fcc4c1d9b49f22ad88 Mon Sep 17 00:00:00 2001 From: Rodrigo Nemmen Date: Wed, 17 Jun 2015 01:36:02 -0300 Subject: [PATCH 2/4] pypluto.pload.grid now working had to correct line numbers and issues with columns --- pyPLUTO.py | 84 +++++++++++++++++++++++++++--------------------------- 1 file changed, 42 insertions(+), 42 deletions(-) diff --git a/pyPLUTO.py b/pyPLUTO.py index 0b8aad1..6dd4915 100755 --- a/pyPLUTO.py +++ b/pyPLUTO.py @@ -154,48 +154,48 @@ def grid(self): dx2 - Array dx2\n dx3 - Array dx3\n """ - - fname_g = self.wdir+"grid.out" - f_grid=open(fname_g) - lnum_g = len(f_grid.readlines()) - # have to make smart code that does pattern matching to find values of n below - ##### - n1 = linecache.getline(fname_g,10) - n2 = linecache.getline(fname_g,int(n1)+11) - n3 = linecache.getline(fname_g,int(n1)+int(n2)+12) - x1=[] - x2=[] - x3=[] - dx1=[] - dx2=[] - dx3=[] - for i in range(2,int(n1)+2): - A = linecache.getline(fname_g,i).split() - x1.append(float(A[2])) - dx1.append(float(A[4])) - - x1 = np.asarray(x1) - dx1 = np.asarray(dx1) - - for j in range(3+int(n1),int(n1)+int(n2)+3): - B = linecache.getline(fname_g,j).split() - x2.append(float(B[2])) - dx2.append(float(B[4])) - - x2 = np.asarray(x2) - dx2 = np.asarray(dx2) - - for k in range(4+int(n1)+int(n2),lnum_g+1): - C = linecache.getline(fname_g,k).split() - x3.append(float(C[2])) - dx3.append(float(C[4])) - - x3 = np.asarray(x3) - dx3 = np.asarray(dx3) - - f_grid.close() - - grid_dict={'n1':int(n1),'n2':int(n2),'n3':int(n3),'x1':x1,'x2':x2,'x3':x3,'dx1':dx1,'dx2':dx2,'dx3':dx3} + fname_g = self.wdir+"grid.out" + f_grid= open(fname_g) + lnum_g = len(f_grid.readlines()) + # have to make smart code that does pattern matching to find values of n below + ##### + n1 = linecache.getline(fname_g,10) + n2 = linecache.getline(fname_g,int(n1)+11) + n3 = linecache.getline(fname_g,int(n1)+int(n2)+12) + x1=[] + x2=[] + x3=[] + dx1=[] + dx2=[] + dx3=[] + + for i in range(11,int(n1)+10): + A = linecache.getline(fname_g,i).split() + x1.append(float(A[1])) + dx1.append(float(A[2])) + + x1 = np.asarray(x1) + dx1 = np.asarray(dx1) + + for j in range(12+int(n1),int(n1)+int(n2)+11): + B = linecache.getline(fname_g,j).split() + x2.append(float(B[1])) + dx2.append(float(B[2])) + + x2 = np.asarray(x2) + dx2 = np.asarray(dx2) + + for k in range(13+int(n1)+int(n2),lnum_g+1): + C = linecache.getline(fname_g,k).split() + x3.append(float(C[1])) + dx3.append(float(C[2])) + + x3 = np.asarray(x3) + dx3 = np.asarray(dx3) + + f_grid.close() + + grid_dict={'n1':int(n1),'n2':int(n2),'n3':int(n3),'x1':x1,'x2':x2,'x3':x3,'dx1':dx1,'dx2':dx2,'dx3':dx3} return grid_dict From 7a4b6abf53f7f5e191aba4ad9967328a3831693f Mon Sep 17 00:00:00 2001 From: Rodrigo Nemmen Date: Sat, 20 Jun 2015 16:39:41 -0300 Subject: [PATCH 3/4] pypluto.pload.grid now works for arbitrary number of dimensions --- pyPLUTO.py | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/pyPLUTO.py b/pyPLUTO.py index 6dd4915..d90e2a4 100755 --- a/pyPLUTO.py +++ b/pyPLUTO.py @@ -157,11 +157,18 @@ def grid(self): fname_g = self.wdir+"grid.out" f_grid= open(fname_g) lnum_g = len(f_grid.readlines()) - # have to make smart code that does pattern matching to find values of n below - ##### - n1 = linecache.getline(fname_g,10) - n2 = linecache.getline(fname_g,int(n1)+11) - n3 = linecache.getline(fname_g,int(n1)+int(n2)+12) + + # figure out number of dimensions of the problem + ndim=linecache.getline(fname_g,5).split() + ndim=int(ndim[2]) + + # number of points for each coordinate + n1 = linecache.getline(fname_g,8+ndim) + n1 = int(n1) + n2 = linecache.getline(fname_g,9+ndim+n1) + n2 = int(n2) + n3 = linecache.getline(fname_g,10+ndim+n1+n2) + n3 = int(n3) x1=[] x2=[] x3=[] @@ -169,7 +176,7 @@ def grid(self): dx2=[] dx3=[] - for i in range(11,int(n1)+10): + for i in range(11,n1+10): A = linecache.getline(fname_g,i).split() x1.append(float(A[1])) dx1.append(float(A[2])) @@ -177,7 +184,7 @@ def grid(self): x1 = np.asarray(x1) dx1 = np.asarray(dx1) - for j in range(12+int(n1),int(n1)+int(n2)+11): + for j in range(12+n1,n1+n2+11): B = linecache.getline(fname_g,j).split() x2.append(float(B[1])) dx2.append(float(B[2])) @@ -185,7 +192,7 @@ def grid(self): x2 = np.asarray(x2) dx2 = np.asarray(dx2) - for k in range(13+int(n1)+int(n2),lnum_g+1): + for k in range(13+n1+n2,lnum_g+1): C = linecache.getline(fname_g,k).split() x3.append(float(C[1])) dx3.append(float(C[2])) @@ -195,7 +202,7 @@ def grid(self): f_grid.close() - grid_dict={'n1':int(n1),'n2':int(n2),'n3':int(n3),'x1':x1,'x2':x2,'x3':x3,'dx1':dx1,'dx2':dx2,'dx3':dx3} + grid_dict={'n1':n1,'n2':n2,'n3':n3,'x1':x1,'x2':x2,'x3':x3,'dx1':dx1,'dx2':dx2,'dx3':dx3} return grid_dict From 9168282619bed77a82eb2398f9f2efc5505c4fb9 Mon Sep 17 00:00:00 2001 From: Rodrigo Nemmen Date: Tue, 23 Jun 2015 16:39:52 -0300 Subject: [PATCH 4/4] corrected bug in for loops at pypluto.pload.grid the previous commit works for 2D. Now this one works for 3D. Tested and working for 2D and 3D --- pyPLUTO.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pyPLUTO.py b/pyPLUTO.py index d90e2a4..c81053a 100755 --- a/pyPLUTO.py +++ b/pyPLUTO.py @@ -176,7 +176,7 @@ def grid(self): dx2=[] dx3=[] - for i in range(11,n1+10): + for i in range(ndim+9,n1+ndim+8): A = linecache.getline(fname_g,i).split() x1.append(float(A[1])) dx1.append(float(A[2])) @@ -184,7 +184,7 @@ def grid(self): x1 = np.asarray(x1) dx1 = np.asarray(dx1) - for j in range(12+n1,n1+n2+11): + for j in range(n1+ndim+10,n1+n2+ndim+9): B = linecache.getline(fname_g,j).split() x2.append(float(B[1])) dx2.append(float(B[2])) @@ -192,7 +192,7 @@ def grid(self): x2 = np.asarray(x2) dx2 = np.asarray(dx2) - for k in range(13+n1+n2,lnum_g+1): + for k in range(n1+n2+ndim+11,lnum_g+1): C = linecache.getline(fname_g,k).split() x3.append(float(C[1])) dx3.append(float(C[2]))