From c32c52c94ab393f970e2e0a1289ae22e7ca08c9c Mon Sep 17 00:00:00 2001 From: Ian Jauslin Date: Tue, 17 May 2022 14:31:22 +0200 Subject: Fixes in cli argument parsing --- src/main.c | 30 ++++++++++++++++++------------ src/navier-stokes.c | 3 ++- 2 files changed, 20 insertions(+), 13 deletions(-) (limited to 'src') diff --git a/src/main.c b/src/main.c index 10b1e70..bbdf143 100644 --- a/src/main.c +++ b/src/main.c @@ -52,8 +52,8 @@ int print_usage(){ // read command line arguments #define CP_FLAG_TIMESTEP 1 #define CP_FLAG_NSTEPS 2 -#define CP_FLAG_MODES 2 -#define CP_FLAG_NU 3 +#define CP_FLAG_MODES 3 +#define CP_FLAG_NU 4 int read_args(int argc, const char* argv[], ns_params* params, unsigned int* nsteps, unsigned int* computation_nr){ int i; int ret; @@ -78,11 +78,11 @@ int read_args(int argc, const char* argv[], ns_params* params, unsigned int* nst params->nu=1./1024/(2*params->K+1); */ params->K=16; + //h=2^-13 params->h=0.0001220703125; - params->h=0.001953125; + //nu=2^-11 *nsteps=10000000; - //params->nu=0.00048828125; - params->nu=0.0078125; + params->nu=0.00048828125; // loop over arguments for(i=1;iK=tmp_uint; + params->K=tmp_int; flag=0; } // friction @@ -206,6 +206,7 @@ int enstrophy(ns_params params, unsigned int Nsteps){ tmp2=calloc(sizeof(_Complex double),params.S*params.S); tmp3=calloc(sizeof(_Complex double),params.S*params.S); + /* srand(17); // initial value @@ -236,14 +237,19 @@ int enstrophy(ns_params params, unsigned int Nsteps){ u[KLOOKUP(kx,ky,params.S)]=u[KLOOKUP(kx,ky,params.S)]*sqrt(155.1/rescale); } } - + */ /* for(kx=-params.K;kx<=params.K;kx++){ for(ky=-params.K;ky<=params.K;ky++){ - printf("%d %d % .8e % .8e\n",kx,ky, __real__ u[KLOOKUP(kx,ky,params.S)], __imag__ u[KLOOKUP(kx,ky,params.S)]); + u[KLOOKUP(kx,ky,params.S)]=1.; } } */ + for(kx=-params.K;kx<=params.K;kx++){ + for(ky=-params.K;ky<=params.K;ky++){ + u[KLOOKUP(kx,ky,params.S)]=exp(-sqrt(kx*kx+ky*ky)); + } + } // driving force @@ -278,7 +284,7 @@ int enstrophy(ns_params params, unsigned int Nsteps){ for(t=0;t0 && t%1000==0){ - fprintf(stderr,"%8d % .8e % .8e % .8e % .8e\n",t, __real__ avg, __imag__ avg, __real__ alpha, __imag__ alpha); - printf("%8d % .8e % .8e % .8e % .8e\n",t, __real__ avg, __imag__ avg, __real__ alpha, __imag__ alpha); + fprintf(stderr,"% .15e % .15e % .15e % .15e % .15e\n",t*params.h, __real__ avg, __imag__ avg, __real__ alpha, __imag__ alpha); + printf("% .15e % .15e % .15e % .15e % .15e\n",t*params.h, __real__ avg, __imag__ avg, __real__ alpha, __imag__ alpha); } } diff --git a/src/navier-stokes.c b/src/navier-stokes.c index 86a8497..303392d 100644 --- a/src/navier-stokes.c +++ b/src/navier-stokes.c @@ -87,6 +87,7 @@ int ins_rhs(_Complex double* out, _Complex double* u, ns_params params, fft_vect // fft fftw_execute(vects.fft1_plan); + fftw_execute(vects.fft2_plan); // write to invfft for(kx=-2*params.K;kx<=2*params.K;kx++){ @@ -123,7 +124,7 @@ int ins_rhs(_Complex double* out, _Complex double* u, ns_params params, fft_vect // inverse fft fftw_execute(vects.invfft_plan); - + // write out for(kx=0; kx