|
ORB5X 1.0.0
Performance-portable global electromagnetic gyrokinetic PIC code
|
For a parity change, read the complete Fortran routine and all callees that establish units, indexing, ownership, or collective behavior. Map each saved module variable to its C++ owner, preserve operation ordering where rounding or random streams matter, and add a focused test before optimizing.
Do not translate array syntax mechanically. Record each lower bound, halo, periodicity rule, and flattened-index formula. C++ public indices are zero-based unless the header explicitly documents a retained Fortran convention.
Use @param[in], @param[out], and @param[in,out] where direction is not obvious. State whether species/mode/grid indices are zero-based, whether a method is collective, and whether a view is host-accessible. Use Doxygen math for the scientific definition rather than an informal variable-name expansion.
Run the documentation target after changing a public header:
Warnings are written to build/doxygen-warnings.log; malformed commands and broken references fail the target.
The canonical API site is published from the generated build/docs/html directory to orb5x-docs.pages.dev. The main branch CI deploys it after a successful build when the repository contains the CLOUDFLARE_API_TOKEN and CLOUDFLARE_ACCOUNT_ID Actions secrets. The token needs Cloudflare Pages edit permission for the orb5x-docs project. The PAIDynamics website links to this deployment instead of carrying a copied Doxygen tree.