diff --git a/src/fluid_solver.cpp b/src/fluid_solver.cpp index 522a7a6968c226b9459f7df955b7529a5a222a94..bc1402c50920f8520760e5c8ce2b8fa85b76db9e 100644 --- a/src/fluid_solver.cpp +++ b/src/fluid_solver.cpp @@ -250,6 +250,24 @@ void fluid_solver<R>::ift_velocity() \ } \ \ template<> \ +void fluid_solver<R>::ift_vorticity() \ +{ \ + FFTW(execute)(*((FFTW(plan)*)this->c2r_vorticity )); \ +} \ + \ +template<> \ +void fluid_solver<R>::dft_velocity() \ +{ \ + FFTW(execute)(*((FFTW(plan)*)this->r2c_velocity )); \ +} \ + \ +template<> \ +void fluid_solver<R>::dft_vorticity() \ +{ \ + FFTW(execute)(*((FFTW(plan)*)this->r2c_vorticity )); \ +} \ + \ +template<> \ void fluid_solver<R>::add_forcing(\ C *field, R factor) \ { \ @@ -437,7 +455,7 @@ int fluid_solver<R>::write(char field, char representation) \ return this->write_base("cvelocity", this->cvelocity); \ if ((field == 'u') && (representation == 'r')) \ { \ - FFTW(execute)(*((FFTW(plan)*)this->c2r_velocity )); \ + this->ift_velocity(); \ clip_zero_padding<R>(this->rd, this->rvelocity, 3); \ return this->write_base("rvelocity", this->rvelocity); \ } \ diff --git a/src/fluid_solver.hpp b/src/fluid_solver.hpp index 0e0fdb14bcdf81b14211b3d718c8581caf4939fe..8d8a63ee4f4e0b6871c6bff42f9293e3041d2b22 100644 --- a/src/fluid_solver.hpp +++ b/src/fluid_solver.hpp @@ -79,6 +79,9 @@ class fluid_solver:public fluid_solver_base<rnumber> void compute_vorticity(void); void compute_velocity(rnumber (*vorticity)[2]); void ift_velocity(); + void dft_velocity(); + void ift_vorticity(); + void dft_vorticity(); void omega_nonlin(int src); void step(double dt); void impose_zero_modes(void);