Fix initial enstrophy
This commit is contained in:
25
src/main.c
25
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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user