Ian Jauslin
summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorIan Jauslin <ian@jauslin.org>2022-05-27 17:06:38 -0400
committerIan Jauslin <ian@jauslin.org>2022-05-27 17:06:38 -0400
commit6113c85189a9b00c7705f322935da74b8a50b063 (patch)
treeb73665d60c586c6e951000965d3a2a26845bcd45 /src
parent0cdb914b5764f692189ed2bc395e3b09ead758e4 (diff)
New parameter: starting_time
Diffstat (limited to 'src')
-rw-r--r--src/main.c13
-rw-r--r--src/navier-stokes.c6
-rw-r--r--src/navier-stokes.h4
3 files changed, 17 insertions, 6 deletions
diff --git a/src/main.c b/src/main.c
index 92c53b9..8a63117 100644
--- a/src/main.c
+++ b/src/main.c
@@ -24,6 +24,7 @@ typedef struct nstrophy_parameters {
double L;
unsigned int print_freq;
int seed;
+ unsigned int starting_time;
} nstrophy_parameters;
// usage message
@@ -119,10 +120,10 @@ int main (
// run command
if (command==COMMAND_UK){
- uk(parameters.K1, parameters.K2, parameters.N1, parameters.N2, parameters.nsteps, parameters.nu, parameters.delta, parameters.L, u0, g, parameters.print_freq, nthreads, savefile);
+ uk(parameters.K1, parameters.K2, parameters.N1, parameters.N2, parameters.nsteps, parameters.nu, parameters.delta, parameters.L, u0, g, parameters.print_freq, parameters.starting_time, nthreads, savefile);
}
else if(command==COMMAND_EEA){
- eea(parameters.K1, parameters.K2, parameters.N1, parameters.N2, parameters.nsteps, parameters.nu, parameters.delta, parameters.L, u0, g, parameters.print_freq, nthreads, savefile);
+ eea(parameters.K1, parameters.K2, parameters.N1, parameters.N2, parameters.nsteps, parameters.nu, parameters.delta, parameters.L, u0, g, parameters.print_freq, parameters.starting_time, nthreads, savefile);
}
else if(command==COMMAND_QUIET){
quiet(parameters.K1, parameters.K2, parameters.N1, parameters.N2, parameters.nsteps, parameters.nu, parameters.delta, parameters.L, u0, g, nthreads, savefile);
@@ -345,6 +346,7 @@ int read_params(
parameters->L=2*M_PI;
parameters->nsteps=10000000;
parameters->print_freq=1000;
+ parameters->starting_time=0;
parameters->seed=17;
if (param_str!=NULL){
@@ -516,6 +518,13 @@ int set_parameter(
return(-1);
}
}
+ else if (strcmp(lhs,"starting_time")==0){
+ ret=sscanf(rhs,"%u",&(parameters->starting_time));
+ if(ret!=1){
+ fprintf(stderr, "error: parameter 'starting_time' should be an unsigned integer\n got '%s'\n",rhs);
+ return(-1);
+ }
+ }
else{
fprintf(stderr, "error: unrecognized parameter '%s'\n",lhs);
return(-1);
diff --git a/src/navier-stokes.c b/src/navier-stokes.c
index 12cba85..1ab4a44 100644
--- a/src/navier-stokes.c
+++ b/src/navier-stokes.c
@@ -16,6 +16,7 @@ int uk(
_Complex double* u0,
_Complex double* g,
unsigned int print_freq,
+ unsigned int starting_time,
unsigned int nthreads,
FILE* savefile
){
@@ -46,7 +47,7 @@ int uk(
}
// iterate
- for(t=0;t<nsteps;t++){
+ for(t=starting_time;t<starting_time+nsteps;t++){
ins_step(u, K1, K2, N1, N2, nu, delta, L, g, fft1, fft2, ifft, tmp1, tmp2, tmp3);
if(t%print_freq==0){
@@ -87,6 +88,7 @@ int eea(
_Complex double* u0,
_Complex double* g,
unsigned int print_freq,
+ unsigned int starting_time,
unsigned int nthreads,
FILE* savefile
){
@@ -112,7 +114,7 @@ int eea(
avg_en=0;
// iterate
- for(t=0;t<nsteps;t++){
+ for(t=starting_time;t<starting_time+nsteps;t++){
ins_step(u, K1, K2, N1, N2, nu, delta, L, g, fft1, fft2, ifft, tmp1, tmp2, tmp3);
energy=compute_energy(u, K1, K2);
diff --git a/src/navier-stokes.h b/src/navier-stokes.h
index 92ff754..57399a4 100644
--- a/src/navier-stokes.h
+++ b/src/navier-stokes.h
@@ -13,10 +13,10 @@ typedef struct fft_vects {
} fft_vect;
// compute u_k
-int uk( int K1, int K2, int N1, int N2, unsigned int nsteps, double nu, double delta, double L, _Complex double* u0, _Complex double* g, unsigned int print_freq, unsigned int nthreadsl, FILE* savefile);
+int uk( int K1, int K2, int N1, int N2, unsigned int nsteps, double nu, double delta, double L, _Complex double* u0, _Complex double* g, unsigned int print_freq, unsigned int starting_time, unsigned int nthreadsl, FILE* savefile);
// compute energy, enstrophy and alpha
-int eea( int K1, int K2, int N1, int N2, unsigned int nsteps, double nu, double delta, double L, _Complex double* u0, _Complex double* g, unsigned int print_freq, unsigned int nthreads, FILE* savefile);
+int eea( int K1, int K2, int N1, int N2, unsigned int nsteps, double nu, double delta, double L, _Complex double* u0, _Complex double* g, unsigned int print_freq, unsigned int starting_time, unsigned int nthreads, FILE* savefile);
// compute solution as a function of time, but do not print anything (useful for debugging)
int quiet( int K1, int K2, int N1, int N2, unsigned int nsteps, double nu, double delta, double L, _Complex double* u0, _Complex double* g, unsigned int nthreads, FILE* savefile);