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
@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 :)
@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!
Axel,
Thanks for asking. Sorry I鈥檓 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
Hi Axel,
I鈥檓 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
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.
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.
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
Hi Lixin,
The other file for building/installing is openPMDConfig.cmake.in
Axel
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.
If you have a very quick question, we also have a gitter channel right here.
Fabian,
Yes, I鈥檒l do a pull request for NetCDF backends development.
Thanks for your suggestions!
Lixin
Hi Axel,
Thanks!
Lixin
@lge0303 Hi Lixin, how are you doing?
Do you need feedback, review or anything from our side?
Hi Axel,
Thanks for asking.
I forked a netcdf backends branch, did some development, will pull request soon.
Bests!
Lixin
@lge0303 Hi and a happy new year!
Are you still working on this?
Axel, Happy New year!
I鈥檓 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鈥檓 not working on NetCDF backend of OpenPMD-api. I鈥檓 not sure when I could pick it up, sorry about it.
Lixin
Most helpful comment
Fabian,
Yes, I鈥檒l do a pull request for NetCDF backends development.
Thanks for your suggestions!
Lixin