epfl-ecps / channelflow

Channelflow is a software system for numerical analysis of the incompressible fluid flow in channel geometries, written in C++ and MPI-parallelized.
GNU General Public License v2.0
65 stars 29 forks source link

HDF5 grid for padded fields #17

Open reetzelhaft opened 5 years ago

reetzelhaft commented 5 years ago

The number of actual grid points of saved FlowFields (in physical space) can differ between HDF5 and NetCDF formats. This only happens if dealiasing using the 2/3-rule was active while computing the FlowField. Using NetCDF the x-grid without the padded modes is of size 2(Nx/3). Using HDF5 the x-grid without the padded modes was of size (2Nx)/3. That was too conservative.

Thanks Pavan Kashyap for the bug report.

I adjusted the size for HDF5 files to be consistent with NetCDF. The 2/3-rule says that all modes k should be set to zero if abs(k)>=N/3 (see Canuto et al. 2006, p.139). This way it is and was always implemented in Channelflow. Such a condition allows for the NetCDF style of saving using less points.

This fix does not impair backward compatibility of HDF5 since it affects the writing only.

codecov-io commented 5 years ago

Codecov Report

Merging #17 into master will not change coverage. The diff coverage is 0%.

Impacted file tree graph

@@           Coverage Diff           @@
##           master      #17   +/-   ##
=======================================
  Coverage   26.95%   26.95%           
=======================================
  Files          63       63           
  Lines       15328    15328           
  Branches     7254     7254           
=======================================
  Hits         4132     4132           
  Misses      11159    11159           
  Partials       37       37
Impacted Files Coverage Δ
channelflow/flowfield.cpp 40.58% <0%> (ø) :arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more Δ = absolute <relative> (impact), ø = not affected, ? = missing data Powered by Codecov. Last update d334948...4b664ce. Read the comment docs.