From 1616b6bbae0b30f8c2e94283f613df1adf3cbf95 Mon Sep 17 00:00:00 2001 From: Ian Jauslin Date: Wed, 5 Apr 2023 22:41:19 -0400 Subject: Fix initial enstrophy --- src/main.c | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) (limited to 'src/main.c') diff --git a/src/main.c b/src/main.c index f60a38e..9962c77 100644 --- a/src/main.c +++ b/src/main.c @@ -14,6 +14,7 @@ // structure to store parameters, to make it easier to pass parameters to CLI functions typedef struct nstrophy_parameters { + double init_en; // initial value for the energy for ins and enstrophy for rns bool irreversible; int K1; int K2; @@ -159,7 +160,15 @@ int print_params( char* initfile_str, FILE* file ){ - fprintf(file,"# K1=%d, K2=%d, N1=%d, N2=%d, nu=%.15e, delta=%.15e, L=%.15e", parameters.K1, parameters.K2, parameters.N1, parameters.N2, parameters.nu, parameters.delta, parameters.L); + fprintf(file,"# "); + + if (parameters.irreversible){ + fprintf(file,"equation=irreversible"); + } else { + fprintf(file,"equation=reversible"); + } + + fprintf(file,", K1=%d, K2=%d, N1=%d, N2=%d, nu=%.15e, delta=%.15e, L=%.15e, init_en=%.15e", parameters.K1, parameters.K2, parameters.N1, parameters.N2, parameters.nu, parameters.delta, parameters.L, parameters.init_en); switch(driving){ case DRIVING_TEST: @@ -338,6 +347,7 @@ int read_params( bool lhs=true; // defaults + parameters->init_en=1.54511597324389e+02; parameters->irreversible=true; parameters->K1=16; parameters->K2=parameters->K1; @@ -442,6 +452,13 @@ int set_parameter( return(-1); } } + else if (strcmp(lhs,"init_en")==0){ + ret=sscanf(rhs,"%lf",&(parameters->init_en)); + if(ret!=1){ + fprintf(stderr, "error: parameter 'init_en' should be a double\n got '%s'\n",rhs); + return(-1); + } + } else if (strcmp(lhs,"K1")==0){ ret=sscanf(rhs,"%d",&(parameters->K1)); if(ret!=1){ @@ -579,11 +596,11 @@ _Complex double* set_init( switch(init){ case INIT_RANDOM: - init_random(u0, parameters.K1, parameters.K2, parameters.seed); + init_random(u0, parameters.init_en, parameters.K1, parameters.K2, parameters.L, parameters.seed, parameters.irreversible); break; case INIT_GAUSSIAN: - init_gaussian(u0, parameters.K1, parameters.K2); + init_gaussian(u0, parameters.init_en, parameters.K1, parameters.K2, parameters.L, parameters.irreversible); break; case INIT_FILE: @@ -591,7 +608,7 @@ _Complex double* set_init( break; default: - init_gaussian(u0, parameters.K1, parameters.K2); + init_gaussian(u0, parameters.init_en, parameters.K1, parameters.K2, parameters.L, parameters.irreversible); break; } -- cgit v1.2.3-54-g00ecf