diff options
author | Ian Jauslin <ian.jauslin@rutgers.edu> | 2023-03-31 15:56:50 -0400 |
---|---|---|
committer | Ian Jauslin <ian.jauslin@rutgers.edu> | 2023-03-31 15:56:50 -0400 |
commit | 2958cc0313ff03af9908b5b55bd0ea94ae26fb78 (patch) | |
tree | beb55ac905196eaf9bcd9410199464c37e8a3513 | |
parent | d69f386547d6f1170a9d6f49a14e3e914cf6f8e3 (diff) |
Enforce T(u,-k)=T(u,k)^* in ns_T
-rw-r--r-- | src/navier-stokes.c | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/src/navier-stokes.c b/src/navier-stokes.c index 1ab4a44..1980207 100644 --- a/src/navier-stokes.c +++ b/src/navier-stokes.c @@ -383,8 +383,7 @@ int ins_rhs( for(kx=-K1;kx<=K1;kx++){ 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[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; + 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)]; } } } @@ -458,6 +457,13 @@ int ns_T( // inverse fft fftw_execute(ifft.fft_plan); + // enforce T(u,-k)=T(u,k)^* + for(kx=-K1;kx<=K1;kx++){ + for(ky=-K2;ky<=K2;ky++){ + ifft.fft[klookup(kx,ky,N1,N2)]=(ifft.fft[klookup(kx,ky,N1,N2)]+conj(ifft.fft[klookup(-kx,-ky,N1,N2)]))/2; + } + } + return(0); } @@ -498,6 +504,13 @@ int ns_T_nofft( } } + // enforce T(u,-k)=T(u,k)^* + for(kx=-K1;kx<=K1;kx++){ + for(ky=-K2;ky<=K2;ky++){ + out[klookup(kx,ky,N1,N2)]=(out[klookup(kx,ky,N1,N2)]+conj(out[klookup(-kx,-ky,N1,N2)]))/2; + } + } + return 0; } |