From 443019bca3518e72327e89ff964643576e339bce Mon Sep 17 00:00:00 2001 From: rmojgani <rmojgani@gmail.com> Date: Mon, 3 Jul 2023 13:11:08 -0500 Subject: [PATCH 1/2] random initilization added to a file --- py2d/Py2D_solver.py | 22 ++-------------------- py2d/initialize.py | 30 ++++++++++++++++++++++++++++++ 2 files changed, 32 insertions(+), 20 deletions(-) create mode 100644 py2d/initialize.py diff --git a/py2d/Py2D_solver.py b/py2d/Py2D_solver.py index 4e681f6..beb1144 100644 --- a/py2d/Py2D_solver.py +++ b/py2d/Py2D_solver.py @@ -220,25 +220,7 @@ def Py2D_solver(Re, fkx, fky, alpha, beta, NX, SGSModel_string, eddyViscosityCoe if readTrue: # -------------- Initialization using pertubration -------------- - kp = 10.0 - A = 4*np.power(kp,(-5))/(3*np.pi) - absK = np.sqrt(Kx*Kx+Ky*Ky) - Ek = A*np.power(absK,4)*np.exp(-np.power(absK/kp,2)) - coef1 = np.random.uniform(0,1,[NX//2+1,NX//2+1])*np.pi*2 - coef2 = np.random.uniform(0,1,[NX//2+1,NX//2+1])*np.pi*2 - - perturb = np.zeros([NX,NX]) - perturb[0:NX//2+1, 0:NX//2+1] = coef1[0:NX//2+1, 0:NX//2+1]+coef2[0:NX//2+1, 0:NX//2+1] - perturb[NX//2+1:, 0:NX//2+1] = coef2[NX//2-1:0:-1, 0:NX//2+1] - coef1[NX//2-1:0:-1, 0:NX//2+1] - perturb[0:NX//2+1, NX//2+1:] = coef1[0:NX//2+1, NX//2-1:0:-1] - coef2[0:NX//2+1, NX//2-1:0:-1] - perturb[NX//2+1:, NX//2+1:] = -(coef1[NX//2-1:0:-1, NX//2-1:0:-1] + coef2[NX//2-1:0:-1, NX//2-1:0:-1]) - perturb = np.exp(1j*perturb) - - w1_hat = np.sqrt(absK/np.pi*Ek)*perturb*np.power(NX,2) - - psi_hat = -w1_hat*invKsq - psiPrevious_hat = psi_hat.astype(np.complex128) - psiCurrent_hat = psi_hat.astype(np.complex128) + w1_hat, psi_hat, psiPrevious_hat, psiCurrent_hat = initialize_random(NX, Kx, Ky): time = 0.0 else: @@ -481,4 +463,4 @@ def Py2D_solver(Re, fkx, fky, alpha, beta, NX, SGSModel_string, eddyViscosityCoe # Print elapsed time print('Total Iteration: ', it+1) endTime = timer() - print('Total Time Taken: ', endTime-startTime) \ No newline at end of file + print('Total Time Taken: ', endTime-startTime) diff --git a/py2d/initialize.py b/py2d/initialize.py new file mode 100644 index 0000000..8b92c64 --- /dev/null +++ b/py2d/initialize.py @@ -0,0 +1,30 @@ +import numpy as np +import numpy as nnp +import jax.numpy as np + +def initialize_random(NX, Kx, Ky): + # -------------- Initialization using pertubration -------------- + kp = 10.0 + A = 4*np.power(kp,(-5))/(3*np.pi) + absK = np.sqrt(Kx*Kx+Ky*Ky) + Ek = A*np.power(absK,4)*np.exp(-np.power(absK/kp,2)) + coef1 = np.random.uniform(0,1,[NX//2+1,NX//2+1])*np.pi*2 + coef2 = np.random.uniform(0,1,[NX//2+1,NX//2+1])*np.pi*2 + + perturb = np.zeros([NX,NX]) + perturb[0:NX//2+1, 0:NX//2+1] = coef1[0:NX//2+1, 0:NX//2+1]+coef2[0:NX//2+1, 0:NX//2+1] + perturb[NX//2+1:, 0:NX//2+1] = coef2[NX//2-1:0:-1, 0:NX//2+1] - coef1[NX//2-1:0:-1, 0:NX//2+1] + perturb[0:NX//2+1, NX//2+1:] = coef1[0:NX//2+1, NX//2-1:0:-1] - coef2[0:NX//2+1, NX//2-1:0:-1] + perturb[NX//2+1:, NX//2+1:] = -(coef1[NX//2-1:0:-1, NX//2-1:0:-1] + coef2[NX//2-1:0:-1, NX//2-1:0:-1]) + perturb = np.exp(1j*perturb) + + w1_hat = np.sqrt(absK/np.pi*Ek)*perturb*np.power(NX,2) + + psi_hat = -w1_hat*invKsq + psiPrevious_hat = psi_hat.astype(np.complex128) + psiCurrent_hat = psi_hat.astype(np.complex128) + + return w1_hat, psi_hat, psiPrevious_hat, psiCurrent_hat + + +#def initialize_resume(NX, Kx, Ky): From 31316bf6093f0f9b764de3815e2418f46dc2f3f2 Mon Sep 17 00:00:00 2001 From: rmojgani <rmojgani@gmail.com> Date: Mon, 3 Jul 2023 13:15:22 -0500 Subject: [PATCH 2/2] function import --- py2d/Py2D_solver.py | 3 ++- py2d/initialize.py | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/py2d/Py2D_solver.py b/py2d/Py2D_solver.py index beb1144..d769734 100644 --- a/py2d/Py2D_solver.py +++ b/py2d/Py2D_solver.py @@ -28,6 +28,7 @@ from py2d.aposteriori_analysis import eddyTurnoverTime_2DFHIT from py2d.SGSModel import * # from py2d.uv2tau_CNN import * +from py2d.initialize import * # Enable x64 Precision for Jax jax.config.update('jax_enable_x64', True) @@ -220,7 +221,7 @@ def Py2D_solver(Re, fkx, fky, alpha, beta, NX, SGSModel_string, eddyViscosityCoe if readTrue: # -------------- Initialization using pertubration -------------- - w1_hat, psi_hat, psiPrevious_hat, psiCurrent_hat = initialize_random(NX, Kx, Ky): + w1_hat, psi_hat, psiPrevious_hat, psiCurrent_hat = initialize_perturbation(NX, Kx, Ky): time = 0.0 else: diff --git a/py2d/initialize.py b/py2d/initialize.py index 8b92c64..72f62b9 100644 --- a/py2d/initialize.py +++ b/py2d/initialize.py @@ -2,7 +2,7 @@ import numpy as nnp import jax.numpy as np -def initialize_random(NX, Kx, Ky): +def initialize_perturbation(NX, Kx, Ky): # -------------- Initialization using pertubration -------------- kp = 10.0 A = 4*np.power(kp,(-5))/(3*np.pi) @@ -28,3 +28,4 @@ def initialize_random(NX, Kx, Ky): #def initialize_resume(NX, Kx, Ky): +