Ian Jauslin
summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorIan Jauslin <ian@jauslin.org>2022-05-25 10:23:53 -0400
committerIan Jauslin <ian@jauslin.org>2022-05-25 10:41:11 -0400
commit4b7c89fb354790064d4d823e3b657e43c38d6ce8 (patch)
tree618fb19d0f8f22f1a24b894960d5465b3e15e5b6 /src
parentd58123d7cc0b61179b21ecfa0bb9d712c562e5d8 (diff)
Same initial u as Gallavotti
Diffstat (limited to 'src')
-rw-r--r--src/navier-stokes.c34
1 files changed, 15 insertions, 19 deletions
diff --git a/src/navier-stokes.c b/src/navier-stokes.c
index 0a2842c..99e41ab 100644
--- a/src/navier-stokes.c
+++ b/src/navier-stokes.c
@@ -278,31 +278,26 @@ int ns_init_u(
int K2
){
int kx,ky;
- /*
- double rescale;
srand(17);
// random init (set half, then the other half are the conjugates)
- for(ky=0;ky<=K2;ky++){
- u[klookup(0,ky,2*K1+1,2*K2+1)]=(-RAND_MAX*0.5+rand())*1.0/RAND_MAX+(-RAND_MAX*0.5+rand())*1.0/RAND_MAX*I;
- }
- for(kx=1;kx<=K1;kx++){
- for(ky=-K2;ky<=K2;ky++){
- u[klookup(kx,ky,2*K1+1,2*K2+1)]=(-RAND_MAX*0.5+rand())*1.0/RAND_MAX+(-RAND_MAX*0.5+rand())*1.0/RAND_MAX*I;
- }
- }
- // conjugates
- for(ky=-K2;ky<=-1;ky++){
- u[klookup(0,ky,2*K1+1,2*K2+1)]=conj(u[klookup(0,-ky,2*K1+1,2*K2+1)]);
- }
- for(kx=-K1;kx<=-1;kx++){
+ for(kx=0;kx<=K1;kx++){
for(ky=-K2;ky<=K2;ky++){
- u[klookup(kx,ky,2*K1+1,2*K2+1)]=conj(u[klookup(-kx,-ky,2*K1+1,2*K2+1)]);
+ if (kx==0 && ky<=0){
+ u[klookup(kx,ky,2*K1+1,2*K2+1)]=0.;
+ }
+ else{
+ double x=-0.5+((double) rand())/RAND_MAX;
+ double y=-0.5+((double) rand())/RAND_MAX;
+ u[klookup(kx,ky,2*K1+1,2*K2+1)]=x+y*I;
+ u[klookup(-kx,-ky,2*K1+1,2*K2+1)]=conj(u[klookup(kx,ky,2*K1+1,2*K2+1)]);
+ }
}
}
- // rescale: 1/k decay
+ // rescale to match with Gallavotti's initialization
+ double rescale;
rescale=0;
for(kx=-K1;kx<=K1;kx++){
for(ky=-K2;ky<=K2;ky++){
@@ -311,10 +306,9 @@ int ns_init_u(
}
for(kx=-K1;kx<=K1;kx++){
for(ky=-K2;ky<=K2;ky++){
- u[klookup(kx,ky,2*K1+1,2*K2+1)]=u[klookup(kx,ky,2*K1+1,2*K2+1)]*sqrt(155.1/rescale);
+ u[klookup(kx,ky,2*K1+1,2*K2+1)]=u[klookup(kx,ky,2*K1+1,2*K2+1)]*sqrt(1.54511597324389e+02/rescale);
}
}
- */
/*
@@ -326,12 +320,14 @@ int ns_init_u(
}
*/
+ /*
// exponentially decaying init
for(kx=-K1;kx<=K1;kx++){
for(ky=-K2;ky<=K2;ky++){
u[klookup(kx,ky,2*K1+1,2*K2+1)]=exp(-sqrt(kx*kx+ky*ky));
}
}
+ */
return 0;
}