Driving force as vector instead of function
This commit is contained in:
@@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user