pycompact - more informative test messages
This commit is contained in:
parent
ca3920c8f9
commit
52c2d1f574
1 changed files with 33 additions and 52 deletions
|
|
@ -114,9 +114,9 @@ class CompactScheme:
|
|||
|
||||
dx_fortran = compact.rhs1np(self.hx, x)
|
||||
|
||||
print (np.linalg.norm((dx - dx_fortran) / dx_fortran))
|
||||
print (((dx - dx_fortran) / dx_fortran).min())
|
||||
print (((dx - dx_fortran) / dx_fortran).max())
|
||||
print ("RelError Norm: ", np.linalg.norm((dx - dx_fortran) / dx_fortran))
|
||||
print ("RelError Min : ", ((dx - dx_fortran) / dx_fortran).min())
|
||||
print ("RelError Min : ", ((dx - dx_fortran) / dx_fortran).max())
|
||||
|
||||
|
||||
|
||||
|
|
@ -130,16 +130,14 @@ class CompactScheme:
|
|||
compact.tdslv(dx_fortran,l1)
|
||||
|
||||
print ("dx - exact")
|
||||
print (np.linalg.norm((dx - exact) / exact))
|
||||
|
||||
print (((dx - exact) / exact).min())
|
||||
print (((dx - exact) / exact).max())
|
||||
print ("RelError Norm: ", np.linalg.norm((dx - exact) / exact))
|
||||
print ("RelError Min : ", ((dx - exact) / exact).min())
|
||||
print ("RelError Min : ", ((dx - exact) / exact).max())
|
||||
|
||||
print ("dx_fortran - exact")
|
||||
print (np.linalg.norm((dx_fortran - exact) / exact))
|
||||
|
||||
print (((dx_fortran - exact) / exact).min())
|
||||
print (((dx_fortran - exact) / exact).max())
|
||||
print ("RelError Norm: ", np.linalg.norm((dx_fortran - exact) / exact))
|
||||
print ("RelError Min : ", ((dx_fortran - exact) / exact).min())
|
||||
print ("RelError Min : ", ((dx_fortran - exact) / exact).max())
|
||||
|
||||
'''
|
||||
import pprint
|
||||
|
|
@ -165,7 +163,7 @@ class CompactScheme:
|
|||
|
||||
coef_verify = self.py_stdlu(aa)
|
||||
|
||||
print (np.linalg.norm((coef - coef_verify)/coef_verify))
|
||||
print ("RelError Norm: ", np.linalg.norm((coef - coef_verify)/coef_verify))
|
||||
|
||||
|
||||
def verify_nonp_lud2(self):
|
||||
|
|
@ -183,7 +181,7 @@ class CompactScheme:
|
|||
|
||||
coef_verify = self.py_stdlu(aa)
|
||||
|
||||
print (np.linalg.norm((coef - coef_verify)/coef_verify))
|
||||
print ("RelError Norm: ", np.linalg.norm((coef - coef_verify)/coef_verify))
|
||||
|
||||
|
||||
def py_stdlu(self, aa):
|
||||
|
|
@ -211,13 +209,11 @@ class CompactScheme:
|
|||
|
||||
if self.px: # Periodic BC
|
||||
for i in range(nz):
|
||||
xsrc[:] = src[i]
|
||||
dst[i] = compact.dfp(self.hx, xsrc, 1)
|
||||
dst[i] = compact.dfp(self.hx, src[i], 1)
|
||||
|
||||
else:
|
||||
for i in range(nz):
|
||||
xsrc[:] = src[i]
|
||||
dst[i] = compact.dfnonp(self.hx, xsrc, 1)
|
||||
dst[i] = compact.dfnonp(self.hx, src[i], 1)
|
||||
|
||||
# return np.swapaxes(dst, 1, 2)
|
||||
return dst
|
||||
|
|
@ -236,13 +232,11 @@ class CompactScheme:
|
|||
|
||||
if self.py: # Periodic BC
|
||||
for i in range(nz):
|
||||
xysrc = src[i].reshape(-1).reshape((nx,ny), order='F')
|
||||
dst[i] = compact.dfp(self.hx, xysrc, 2).reshape(-1).reshape((ny,nx), order='C')
|
||||
dst[i] = compact.dfp(self.hx, src[i].T, 2).T
|
||||
|
||||
else:
|
||||
for i in range(nz):
|
||||
xysrc = src[i].reshape(-1).reshape((nx,ny), order='F')
|
||||
dst[i] = compact.dfnonp(self.hx, xysrc, 2).reshape(-1).reshape((ny,nx), order='C')
|
||||
dst[i] = compact.dfnonp(self.hx, src[i].T, 2).T
|
||||
|
||||
# return np.swapaxes(dst, 1, 2)
|
||||
return dst
|
||||
|
|
@ -254,20 +248,17 @@ class CompactScheme:
|
|||
|
||||
nz, ny, nx = self.shape
|
||||
|
||||
xsrc = np.zeros((nz, nx,), dtype=np.float64) # , order="F")
|
||||
|
||||
# dst = np.zeros((nx, ny, nz,), order="F")
|
||||
dst = np.zeros((nz, ny, nx,), dtype=np.float64,)
|
||||
|
||||
if self.pz: # Periodic BC
|
||||
for i in range(ny):
|
||||
xsrc[:] = src[:,i,:]
|
||||
dst[i] = compact.dfp(self.hx, xsrc, 3)
|
||||
dst[:,i,:] = compact.dfp(self.hx, src[:,i,:], 3)
|
||||
|
||||
else:
|
||||
for i in range(ny):
|
||||
xsrc[:] = src[:,i,:]
|
||||
dst[i] = compact.dfnonp(self.hx, xsrc, 3)
|
||||
dst[:,i,:] = compact.dfnonp(self.hx, src[:,i,:], 3)
|
||||
|
||||
# return np.swapaxes(dst, 1, 2)
|
||||
return dst
|
||||
|
|
@ -377,14 +368,8 @@ def read_data (fname):
|
|||
V = np.fromfile(f1, dtype=np.float64, count=(3*count)).reshape((3,nz,ny,nx))
|
||||
s = np.fromfile(f1, dtype=np.float64, count=(2*count)).reshape((2,nz,ny,nx))
|
||||
|
||||
print (V.order)
|
||||
print (s.order)
|
||||
|
||||
print (V.shape)
|
||||
print (s.shape)
|
||||
|
||||
V.order="F"
|
||||
s.order="F"
|
||||
print (V.flags)
|
||||
print (s.flags)
|
||||
|
||||
print (V.shape)
|
||||
print (s.shape)
|
||||
|
|
@ -443,11 +428,11 @@ def validate_trigonometric():
|
|||
cos_fortran = compact.dfnonp(hxp, np.sin(1.1*XX).reshape((1,-1)), 1)
|
||||
cos_exact = 1.1 * np.cos(1.1*XX).reshape((1,-1))
|
||||
|
||||
print (cos_fortran.min(), cos_fortran.max())
|
||||
print ("Compact Scheme: ", cos_fortran.min(), cos_fortran.max())
|
||||
|
||||
print (cos_exact.min(), cos_exact.max())
|
||||
print ("Exact : ",cos_exact.min(), cos_exact.max())
|
||||
|
||||
print (np.linalg.norm((cos_fortran - cos_exact)/cos_exact))
|
||||
print ("Norm of relative errors: ", np.linalg.norm((cos_fortran - cos_exact)/cos_exact))
|
||||
# print (((cos_fortran - cos_exact)/cos_exact))
|
||||
|
||||
|
||||
|
|
@ -510,30 +495,26 @@ def validate_trigonometric():
|
|||
def test_dns_data():
|
||||
import sys
|
||||
|
||||
file_name = sys.argv[1]
|
||||
file_name = "./fort.1000"
|
||||
|
||||
t, nx, ny, nz, u, v, w, Y0, Y1 = read_data(file_name)
|
||||
answer = "export-ddxc.dat"
|
||||
|
||||
t, nx, ny, nz, u, v, w, Y0, Y1 = read_data(file_name)
|
||||
|
||||
ddx_answer = np.fromfile(answer, dtype=np.float64, count=Y1.size).reshape(Y1.shape)
|
||||
|
||||
cs = CompactScheme(nx, ny, nz, False, True, True, 4, 2, 2)
|
||||
|
||||
y = np.memmap("yr", dtype=np.float64, mode="w+", shape=cs.shape)
|
||||
|
||||
y[:] = Y1[:]
|
||||
ddx = cs.ddx(1.-Y1)
|
||||
|
||||
print (y.min(), y.max())
|
||||
|
||||
dydx = np.memmap("dyr", dtype=np.float64, mode="w+", shape=cs.shape)
|
||||
|
||||
dydx[:] = cs.ddx(Y1)[:]
|
||||
|
||||
dydx.flush()
|
||||
|
||||
print (dydx.min(), dydx.max())
|
||||
print (ddx.min(), ddx.max())
|
||||
print (ddx_answer.min(), ddx_answer.max())
|
||||
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
validate_trigonometric()
|
||||
# test_dns_data()
|
||||
|
||||
test_dns_data()
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue