Ian Jauslin
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Jauslin <ian.jauslin@rutgers.edu>2023-04-26 11:27:03 -0400
committerIan Jauslin <ian.jauslin@rutgers.edu>2023-04-26 11:27:03 -0400
commitaa8825d9d8022412cd68e887e2e3cf7c10a61ed5 (patch)
tree731e562c59651dc5371ffb5aee88f5800ce6d943 /src/navier-stokes.c
parent527365d62e8c770142c3c1065b5f973433bd60b2 (diff)
parameters to choose rk2
Diffstat (limited to 'src/navier-stokes.c')
-rw-r--r--src/navier-stokes.c22
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