parameters to choose rk2

This commit is contained in:
2023-04-26 11:27:03 -04:00
parent 527365d62e
commit aa8825d9d8
4 changed files with 73 additions and 26 deletions

View File

@@ -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