diff options
author | Ian Jauslin <ian.jauslin@rutgers.edu> | 2023-04-26 11:27:03 -0400 |
---|---|---|
committer | Ian Jauslin <ian.jauslin@rutgers.edu> | 2023-04-26 11:27:03 -0400 |
commit | aa8825d9d8022412cd68e887e2e3cf7c10a61ed5 (patch) | |
tree | 731e562c59651dc5371ffb5aee88f5800ce6d943 /src/navier-stokes.c | |
parent | 527365d62e8c770142c3c1065b5f973433bd60b2 (diff) |
parameters to choose rk2
Diffstat (limited to 'src/navier-stokes.c')
-rw-r--r-- | src/navier-stokes.c | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/src/navier-stokes.c b/src/navier-stokes.c index 755e829..6387fcf 100644 --- a/src/navier-stokes.c +++ b/src/navier-stokes.c @@ -1,3 +1,4 @@ +#include "constants.cpp" #include "io.h" #include "navier-stokes.h" #include "statistics.h" @@ -18,6 +19,7 @@ int uk( _Complex double* u0, _Complex double* g, bool irreversible, + unsigned int algorithm, uint64_t print_freq, uint64_t starting_time, unsigned int nthreads, @@ -51,7 +53,11 @@ int uk( // iterate for(t=starting_time;nsteps==0 || t<starting_time+nsteps;t++){ - ns_step_rk4(u, K1, K2, N1, N2, nu, delta, L, g, fft1, fft2, ifft, tmp1, tmp2, tmp3, irreversible); + if(algorithm==ALGORITHM_RK2){ + ns_step_rk2(u, K1, K2, N1, N2, nu, delta, L, g, fft1, fft2, ifft, tmp1, tmp2, irreversible); + } else { + ns_step_rk4(u, K1, K2, N1, N2, nu, delta, L, g, fft1, fft2, ifft, tmp1, tmp2, tmp3, irreversible); + } if(t%print_freq==0){ fprintf(stderr,"%lu % .8e ",t,t*delta); @@ -91,6 +97,7 @@ int eea( _Complex double* u0, _Complex double* g, bool irreversible, + unsigned int algorithm, uint64_t print_freq, uint64_t starting_time, unsigned int nthreads, @@ -127,7 +134,11 @@ int eea( // iterate for(t=starting_time;nsteps==0 || t<starting_time+nsteps;t++){ - ns_step_rk4(u, K1, K2, N1, N2, nu, delta, L, g, fft1, fft2, ifft, tmp1, tmp2, tmp3, irreversible); + if(algorithm==ALGORITHM_RK2){ + ns_step_rk2(u, K1, K2, N1, N2, nu, delta, L, g, fft1, fft2, ifft, tmp1, tmp2, irreversible); + } else { + ns_step_rk4(u, K1, K2, N1, N2, nu, delta, L, g, fft1, fft2, ifft, tmp1, tmp2, tmp3, irreversible); + } energy=compute_energy(u, K1, K2); alpha=compute_alpha(u, K1, K2, g, L); @@ -196,6 +207,7 @@ int quiet( _Complex double* u0, _Complex double* g, bool irreversible, + unsigned int algorithm, unsigned int nthreads, FILE* savefile ){ @@ -214,7 +226,11 @@ int quiet( // iterate for(t=starting_time;nsteps==0 || t<starting_time+nsteps;t++){ - ns_step_rk4(u, K1, K2, N1, N2, nu, delta, L, g, fft1, fft2, ifft, tmp1, tmp2, tmp3, irreversible); + if(algorithm==ALGORITHM_RK2){ + ns_step_rk2(u, K1, K2, N1, N2, nu, delta, L, g, fft1, fft2, ifft, tmp1, tmp2, irreversible); + } else { + ns_step_rk4(u, K1, K2, N1, N2, nu, delta, L, g, fft1, fft2, ifft, tmp1, tmp2, tmp3, irreversible); + } } // save final entry to savefile |