openPMD / openPMD-api

:floppy_disk: C++ & Python API for Scientific I/O
https://openpmd-api.readthedocs.io
GNU Lesser General Public License v3.0
138 stars 51 forks source link

NetCDF backend #33

Open ax3l opened 6 years ago

ax3l commented 6 years ago

A NetCDF backend would be useful for FermiLab & SLAC codes.

Note: NetCDF4 can use HDF5 underneath.

Note: NetCDF also supports serial & parallel I/O.

Resources: how to write a backend

ax3l commented 6 years ago

@lge0303 is interested in providing an implementation. Thank you! :sparkles:

I did sent you a GitHub invite to the openPMD organization so I can assign you in issues :)

ax3l commented 6 years ago

@lge0303 how are you doing? do you need anything from us for the implementation?

Please feel free to open issues if you experience any installation issues or something is not well documented or similar. We are happy to help!

lge0303 commented 6 years ago

Axel,

Thanks for asking. Sorry I’m busy doing other projects in the past weeks, will pick up the NetCDF backends implementation later this week. Will let you know if I have problems.

Bests!

Lixin

lge0303 commented 6 years ago

Hi Axel,

I’m implementing the I/O operations in the IOHandlerImpl following the Style Guide. What editor tool you use to easily follow the code Style Guide? Any suggestions?

Thanks!

Lixin

ax3l commented 6 years ago

I usually just use netbeans. @C0nsultant what did you use again, CLion? Atom?

We have no automated enforcement/formatting of C++ code with e.g. clang-format yet, but have a CLion template in this repo as well as the style guide itself.

Best to try to write in the same style as the other parts are already written, ideal patches (pull requests) should look as if they were all from one (virtual) author which simplifies reading for all.

C0nsultant commented 6 years ago

Hi @lge0303. Great to hear you're progressing on this. If you run into any implementation issues, don't hesitate to contact me.

My daily driver for this project from the start has been CLion. If you're in academia or developing an open source project, you can even get their products for free. If you don't want ot bother with licenses, I can highly recommend KDevelop. It's pretty much on-par with CLion in terms of features. Cross-platform alternatives include Atom and SublimeText, but you'll have to install plugins for both to really make them useful. ~For Windows~ Also cross-platform, there is Visual Studio Code, which I've heard a lot of good things about, but have absolutely no experience with.

lge0303 commented 6 years ago

Axel,

Which make file should I modify to add netcdf backends to openPMD-api? I modified CMakeLists.txt under openPMD-api directory, the operations are the same as for ADIOS. What else should I do?

Thanks!

Lixin

ax3l commented 6 years ago

Hi Lixin,

The other file for building/installing is openPMDConfig.cmake.in

Axel

C0nsultant commented 6 years ago

Hi @lge0303. Thanks for taking your time to contribute to this project!

To better understand what your current status is and to make it easier for us to assist you, I want to ask you to open a pull request. That way, we can see what changes you made. You can then also point us to concrete problems you're experiencing in the source files.

You can create the PR here. Please point the topic/netcdf branch of your fork lge0303/openPMD-api to our dev branch in the openPMD/openPMD-api base repository. Note that you might not have created a branch for your work. In that case, you will have to point your dev branch to our repository.

For reference, this is what the recent ADIOS backend pull request looked like.

C0nsultant commented 6 years ago

If you have a very quick question, we also have a gitter channel right here.

lge0303 commented 6 years ago

Fabian,

Yes, I’ll do a pull request for NetCDF backends development.

Thanks for your suggestions!

Lixin

lge0303 commented 6 years ago

Hi Axel,

Thanks!

Lixin

ax3l commented 6 years ago

@lge0303 Hi Lixin, how are you doing? Do you need feedback, review or anything from our side?

lge0303 commented 6 years ago

Hi Axel,

Thanks for asking.

I forked a netcdf backends branch, did some development, will pull request soon.

Bests!

Lixin

ax3l commented 5 years ago

@lge0303 Hi and a happy new year!

Are you still working on this?

lge0303 commented 5 years ago

Axel, Happy New year!

I’m working on the write Electromagnetic Field based on Finite Element to E/M field on finite difference grids in openPMD format, which will be read in by IMPACT - a beam dynamic software. So currently I’m not working on NetCDF backend of OpenPMD-api. I’m not sure when I could pick it up, sorry about it.

Lixin