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):
+