Project Layout

Top-Level Structure

src/          TARSA package entrypoint and implementation folders
validation/   Reproducible validation and benchmark studies
examples/     Application case studies and end-to-end demos
test/         Unit/integration tests
docs/         Documenter.jl website

Source Folders

src/TARSA.jl is the package facade. Implementation files are grouped by ownership:

  • src/api/: public workflow builders and user-facing API glue
  • src/config/: configuration parsing and constants
  • src/data/: input/output data containers and provider adapters
  • src/engines/: solver orchestration and engine-level interfaces
  • src/grid/: grid geometry, spacing, and regridding support used by numerics
  • src/io/: downloads, preprocessing, regridding wrappers, and NetCDF output helpers
  • src/inversion/: inversion and linear-map utilities
  • src/model/: core model structs and provider-neutral input containers
  • src/numerics/: finite-volume kernels, AD/tangent kernels, and numerical stubs
  • src/physics/: aerosol, chemistry, deposition, sedimentation, and turbulence parameterizations
  • src/postprocessing/: diagnostics, optical/AOD calculations, and postprocessing helpers
  • src/compat/: legacy compatibility bindings
  • src/experimental/: old scratch or full-chain scripts that are not part of the package load path

Validation Folders

  • validation/MASS_CONSERVATION
  • validation/VMR
  • validation/GAUSSIAN
  • validation/TVD_limiter
  • validation/ETEX1
  • validation/CAPTEX
  • validation/CAMS
  • validation/GRADIENTS

Each folder usually contains:

  • Julia driver script(s)
  • Python plotting/post-processing script(s)
  • Output CSV/PDF/PNG artifacts (sometimes under out/)

Documented Example

  • examples/tutorial: real-ERA5 point-source aerosol plume — the only example that runs with no external credentials (see Examples / Tutorial).

See examples/README.md for the full list of applied workflows and the data/credential each one needs.