31  API Reference

Detailed API reference documentation.

The manual should not duplicate every class signature. API details should be generated from Doxygen comments in the IPPL source tree.

31.1 Planned integration

  1. Build Doxygen from Doxyfile.api.
  2. Publish the generated API pages alongside the Quarto manual or link to the existing hosted Doxygen site.
  3. Add stable links from each manual chapter to the relevant class pages.

Local API build:

IPPL_SOURCE_DIR=/Users/adelmann/git/ippl doxygen Doxyfile.api

For 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.

31.3 Key entry points

Header Manual chapter API page
Ippl.h Chapter 4 source
Utility/Inform.h Chapter 4, Chapter 9 Inform
Utility/IpplInfo.h Chapter 4 source
Utility/IpplException.h Chapter 27 IpplException
Utility/IpplTimings.h Chapter 1, Chapter 30 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 10 source
FFT/FFT.h Chapter 13 FFT
PoissonSolvers/Poisson.h Chapter 16 Poisson
PoissonSolvers/PoissonCG.h Chapter 16 PoissonCG
PoissonSolvers/FFTPeriodicPoissonSolver.h Chapter 16 FFTPeriodicPoissonSolver
PoissonSolvers/FFTOpenPoissonSolver.h Chapter 16 FFTOpenPoissonSolver
PoissonSolvers/FFTTruncatedGreenPeriodicPoissonSolver.h Chapter 16 FFTTruncatedGreenPeriodicPoissonSolver
PoissonSolvers/FEMPoissonSolver.h, PoissonSolvers/PreconditionedFEMPoissonSolver.h Chapter 16, Chapter 15 FEMPoissonSolver, PreconditionedFEMPoissonSolver
MaxwellSolvers/Maxwell.h Chapter 17 Maxwell
MaxwellSolvers/FDTDSolverBase.h, MaxwellSolvers/StandardFDTDSolver.h, MaxwellSolvers/NonStandardFDTDSolver.h Chapter 17 FDTDSolverBase, StandardFDTDSolver, NonStandardFDTDSolver
MaxwellSolvers/FEMMaxwellDiffusionSolver.h Chapter 17, Chapter 15 FEMMaxwellDiffusionSolver
FEM/FiniteElementSpace.h Chapter 15 FiniteElementSpace
FEM/LagrangeSpace.h, FEM/NedelecSpace.h Chapter 15 LagrangeSpace, NedelecSpace
Communicate/Communicator.h Chapter 9 Communicator
Utility/ParameterList.h Chapter 6, Chapter 16 ParameterList