18 API Reference
The manual should not duplicate every class signature. API details should be generated from Doxygen comments in the IPPL source tree.
18.1 Planned integration
- Build Doxygen from
Doxyfile.api. - Publish the generated API pages alongside the Quarto manual or link to the existing hosted Doxygen site.
- Add stable links from each manual chapter to the relevant class pages.
Local API build:
IPPL_SOURCE_DIR=/Users/adelmann/git/ippl doxygen Doxyfile.apiFor GitHub Pages, the recommended structure is to render the Quarto manual to docs/ and place generated Doxygen HTML under docs/api/. Manual pages can then link to API pages with stable relative paths such as api/classippl_1_1Field.html once the Doxygen output naming is confirmed.
Rendered local entry point: Doxygen API index.
The generated class index is the canonical inventory: Doxygen class list. A local comparison against the IPPL src/ tree showed that Inform and several other public-facing runtime, boundary-condition, solver, and region classes were generated by Doxygen but not yet linked from this chapter. The table below is therefore a curated entry-point map, not the full class inventory.
18.2 Link policy
The manual should link to API pages for signatures and overloads, while keeping conceptual explanations in Quarto. This avoids stale duplicated declarations.
| Manual content | API reference content |
|---|---|
| Workflow, assumptions, invariants, examples. | Constructors, method signatures, template parameters. |
| Backend selection and parameter meaning. | Exact overloads and default values. |
| Numerical problem statement and expected diagnostics. | Member variables only when public or intentionally exposed. |
| Developer extension rules. | Public and protected interfaces. |
18.3 Key entry points
| Header | Manual chapter | API page |
|---|---|---|
Ippl.h |
Chapter 4 | source |
Utility/Inform.h |
Chapter 4, Chapter 14 | Inform |
Utility/IpplInfo.h |
Chapter 4 | source |
Utility/IpplException.h |
Chapter 17 | IpplException |
Utility/IpplTimings.h |
Chapter 16, Chapter 15 | IpplTimings |
Index/Index.h, Index/NDIndex.h |
Chapter 6 | Index, NDIndex |
Region/NDRegion.h, Region/PRegion.h |
Chapter 6, Chapter 8 | NDRegion, PRegion |
Meshes/UniformCartesian.h |
Chapter 6, Chapter 7 | UniformCartesian |
Field/Field.h, Field/BareField.h |
Chapter 7 | Field, BareField |
Field/BConds.h, Field/BcTypes.h |
Chapter 7 | BConds, PeriodicFace, ConstantFace, ZeroFace, ExtrapolateFace, NoBcFace |
FieldLayout/FieldLayout.h |
Chapter 7 | FieldLayout |
Particle/ParticleBase.h |
Chapter 8 | ParticleBase |
Particle/ParticleAttrib.h |
Chapter 8 | ParticleAttrib |
Particle/ParticleSpatialLayout.h, Particle/ParticleSpatialOverlapLayout.h |
Chapter 8 | ParticleSpatialLayout, ParticleSpatialOverlapLayout |
Interpolation/CIC.h |
Chapter 9 | source |
FFT/FFT.h |
Chapter 10 | FFT |
PoissonSolvers/Poisson.h |
Chapter 11 | Poisson |
PoissonSolvers/PoissonCG.h |
Chapter 11 | PoissonCG |
PoissonSolvers/FFTPeriodicPoissonSolver.h |
Chapter 11 | FFTPeriodicPoissonSolver |
PoissonSolvers/FFTOpenPoissonSolver.h |
Chapter 11 | FFTOpenPoissonSolver |
PoissonSolvers/FFTTruncatedGreenPeriodicPoissonSolver.h |
Chapter 11 | FFTTruncatedGreenPeriodicPoissonSolver |
PoissonSolvers/FEMPoissonSolver.h, PoissonSolvers/PreconditionedFEMPoissonSolver.h |
Chapter 11, Chapter 13 | FEMPoissonSolver, PreconditionedFEMPoissonSolver |
MaxwellSolvers/Maxwell.h |
Chapter 12 | Maxwell |
MaxwellSolvers/FDTDSolverBase.h, MaxwellSolvers/StandardFDTDSolver.h, MaxwellSolvers/NonStandardFDTDSolver.h |
Chapter 12 | FDTDSolverBase, StandardFDTDSolver, NonStandardFDTDSolver |
MaxwellSolvers/FEMMaxwellDiffusionSolver.h |
Chapter 12, Chapter 13 | FEMMaxwellDiffusionSolver |
FEM/FiniteElementSpace.h |
Chapter 13 | FiniteElementSpace |
FEM/LagrangeSpace.h, FEM/NedelecSpace.h |
Chapter 13 | LagrangeSpace, NedelecSpace |
Communicate/Communicator.h |
Chapter 14 | Communicator |
Utility/ParameterList.h |
Chapter 6, Chapter 11 | ParameterList |