Driving force as vector instead of function

This commit is contained in:
2022-05-26 15:16:44 -04:00
parent d4254c6b8e
commit aa66aadb74
5 changed files with 76 additions and 53 deletions

View File

@@ -13,7 +13,7 @@ int uk(
double delta,
double L,
_Complex double* u0,
_Complex double (*g)(int,int),
_Complex double* g,
unsigned int print_freq,
unsigned int nthreads
){
@@ -80,7 +80,7 @@ int energy(
double delta,
double L,
_Complex double* u0,
_Complex double (*g)(int,int),
_Complex double* g,
unsigned int print_freq,
unsigned int nthreads
){
@@ -131,7 +131,7 @@ int enstrophy(
double delta,
double L,
_Complex double* u0,
_Complex double (*g)(int,int),
_Complex double* g,
unsigned int print_freq,
unsigned int nthreads
){
@@ -185,7 +185,7 @@ int quiet(
double delta,
double L,
_Complex double* u0,
_Complex double (*g)(int,int),
_Complex double* g,
unsigned int nthreads
){
_Complex double* u;
@@ -306,7 +306,7 @@ int ins_step(
double nu,
double delta,
double L,
_Complex double (*g)(int,int),
_Complex double* g,
fft_vect fft1,
fft_vect fft2,
fft_vect ifft,
@@ -383,7 +383,7 @@ int ins_rhs(
int N2,
double nu,
double L,
_Complex double (*g)(int,int),
_Complex double* g,
fft_vect fft1,
fft_vect fft2,
fft_vect ifft
@@ -413,7 +413,7 @@ int ins_rhs(
for(ky=-K2;ky<=K2;ky++){
if(kx!=0 || ky!=0){
// enforce the reality of u by adding ifft.fft(k) and the conjugate of ifft.fft(-k)
out[klookup(kx,ky,2*K1+1,2*K2+1)]=-4*M_PI*M_PI/L/L*nu*(kx*kx+ky*ky)*u[klookup(kx,ky,2*K1+1,2*K2+1)]+(*g)(kx,ky)+4*M_PI*M_PI/L/L/sqrt(kx*kx+ky*ky)*(ifft.fft[klookup(kx,ky,N1,N2)]+conj(ifft.fft[klookup(-kx,-ky,N1,N2)]))/2;
out[klookup(kx,ky,2*K1+1,2*K2+1)]=-4*M_PI*M_PI/L/L*nu*(kx*kx+ky*ky)*u[klookup(kx,ky,2*K1+1,2*K2+1)]+g[klookup(kx,ky,2*K1+1,2*K2+1)]+4*M_PI*M_PI/L/L/sqrt(kx*kx+ky*ky)*(ifft.fft[klookup(kx,ky,N1,N2)]+conj(ifft.fft[klookup(-kx,-ky,N1,N2)]))/2;
}
}
}
@@ -535,7 +535,7 @@ _Complex double compute_alpha(
_Complex double* u,
int K1,
int K2,
_Complex double (*g)(int,int)
_Complex double* g
){
_Complex double num=0;
_Complex double denom=0;
@@ -544,7 +544,7 @@ _Complex double compute_alpha(
for(kx=-K1;kx<=K1;kx++){
for(ky=-K2;ky<=K2;ky++){
denom+=(kx*kx+ky*ky)*(kx*kx+ky*ky)*u[klookup(kx,ky,2*K1+1,2*K2+1)]*conj(u[klookup(kx,ky,2*K1+1,2*K2+1)])*(1+(ky!=0?kx*kx/ky/ky:0));
num+=(kx*kx+ky*ky)*u[klookup(kx,ky,2*K1+1,2*K2+1)]*conj((*g)(kx,ky))*(1+(ky!=0?kx*kx/ky/ky:0));
num+=(kx*kx+ky*ky)*u[klookup(kx,ky,2*K1+1,2*K2+1)]*conj(g[klookup(kx,ky,2*K1+1,2*K2+1)])*(1+(ky!=0?kx*kx/ky/ky:0));
}
}