Changelog
Best viewed here.
All notable changes to PhiJAX are documented in this file.
The format follows Keep a Changelog, and PhiJAX follows Semantic Versioning.
Unreleased
0.2.0b5 - 2026-09-11
Added
- Added
no_slip_boundarywith configurable velocity components and residual/output streams for stationary and moving walls. (#39) - Added configurable weight, projection, and period batch keys to fidelity equations, and a configurable normals key to
free_slip_boundary. (#38)
Breaking changes
phase_wrapped_fidelitynow usesbatch["projection"]when present. Setprojection_key=Noneto preserve direct supervision when that field contains unrelated data. (#38)
Changed
- Updated the optional W&B dependency to
>=0.30,<0.31. (#37) - Added an optimizer guide covering Optax, the optional SOAP_JAX compatibility fork, and checkpoint restoration. (#40)
- Clarified installation workflows with uv and pip. (#36)
Fixed
- Log all term losses before loss-balancer weights for consistent metric ordering. (#35)
0.2.0b4 - 2026-09-03
Added
- Added public type aliases for supported accelerator, device, precision, monitoring, activation, and initialization options. (#25)
Breaking changes
- Removed the inert
Trainer.deterministicoption. Deterministic GPU experiments must configure XLA before JAX initializes. (#30)
Changed
- Reorganized the documentation into task-oriented guides and focused API reference pages. (#26, #27, #28)
0.2.0b3 - 2026-09-01
Added
- Added a
target.nameOmegaConf resolver for deriving display labels from Hydra_target_paths. (#22)
Breaking changes
- Made
LearningRateMonitorrequire an explicit optimizer name and changed its default metric group fromtrain/tooptimizer/, using Lightning-style keys such asoptimizer/lr-Adam. (#22)
Changed
- Made the Trainer report its precision and accelerator environment automatically when constructed on global rank zero. (#21)
- Expanded the balancer documentation with the exact metrics, meanings, update behavior, and default destinations for static, gradient-norm, and exact-NTK balancing. (#23)
0.2.0b2 - 2026-09-01
Added
- Added
to_hyperparameters()for converting composed Hydra configs before passing them toTrainer.fit(). (#19)
Breaking changes
- Removed callback and logger
enabledconfiguration options. Omit a service entry to disable it. (#16) - Removed
Trainer.set_logger(). Construct loggers first and pass them throughTrainer(logger=...)orinstantiate_trainer(..., logger=...);instantiate_loggers()no longer accepts a Trainer. (#19) - Renamed the experiment logger method
log_hyperparameters()to the Lightning-stylelog_hyperparams(). (#19)
Changed
- Made CSV, TensorBoard, and W&B logger resource setup lazy, idempotent, and restricted to global rank zero during Trainer tasks. Direct built-in logger use still starts resources automatically on first use. (#19)
0.2.0b1 - 2026-08-31
Added
- Concise
Trainer.fit()andTrainer.predict()APIs that initialize models, state, balancing, batch routing, and compiled plans from a module blueprint, DataModule, optimizer, and seed. (#15) ModelFactory, balancer-owned adaptive update plans, objective equation composition, finite-pool batch-source construction, and safeHostPooldefaults. (#15)- Independent persistent PRNG streams for model execution, sampling, and adaptive-balancer diagnostics. (#15)
- Structured training diagnostics with host-side
PhiModule.log()control for loggers and progress displays. (#15) - Automatic TQDM progress, plain model summaries, default TensorBoard or CSV logging, and versioned run directories. (#15)
- Monitored top-k checkpoints with persistent callback state and experimental TPU installation support. (#15)
Breaking changes
- Renamed the explicit execution APIs to
Trainer.fit_state()andTrainer.predict_state(). (#15) - Changed
PhiModuleinto an immutable model-factory blueprint; the bound module is returned asFitResult.module. (#15) - Changed
ResidualTermto accept its residual function first and infer its default NTK stream from equation metadata. (#15) - Raised the checkpoint schema to version 2 for the expanded
TrainStatelayout. (#15) - Moved adaptive cadence and diagnostic sampling settings into adaptive-balancer constructors. (#15)
- Replaced the adaptive
skip_first_stepflag with cadence-anchoredupdate_start_stepscheduling. (#15) - Removed separate sampling and balancer key arguments from Trainer methods; both now live in
TrainState. (#15) - Removed
resume_latest()in favor offit(..., ckpt_path="last"). (#15) - Removed the low-level
with_balancer_updates()helper; advanced schedules now belong toTrainingPlan. (#15) - Removed
BalancerUpdateConfigandBalancerUpdateSchedule;TrainingPlannow accepts oneBalancerUpdatePlan. (#15) - Removed the Hydra
balancer.factoryandbalancer.updatelayers; balancer groups are directly instantiable. (#15) - Removed
MetricRoute; modules now customize metric destinations withself.log()fromon_train_batch_end(). (#15) - Removed the
phijax.moduledeep import path; use top-level imports orphijax.corefor custom module contracts. (#15)
Changed
- Made DataModule input normalization opt-in through
input_statistics(). (#15) - Made
LearningRateMonitorrequire a configured experiment logger before fitting begins. (#15) - Moved adaptive-balancer scheduling into the Trainer host loop and removed unconditional per-step transfers of
TrainState.step. (#15) - Split module contracts into
phijax.coreand moved fit, prediction, logging, and signal orchestration into private loops and connectors while keeping the top-level API unchanged. (#15)
0.1.0b1 - 2026-08-28
Added
- Initial beta API for building, fitting, and evaluating physics-informed neural networks with JAX. (#1)
- Lightning-inspired
Trainer,PhiModule,DataModule, callback, logger, and checkpoint lifecycles. (#1) - Explicit model, optimizer, loss-balancer, PRNG, and training state for compiled updates. (#1)
- Selective coordinate derivatives and reusable PDE, boundary, data-fidelity, and objective components. (#1)
- Static, normalized-static, gradient-norm, and exact-NTK loss balancing. (#1)
- MLP, Modified MLP, and PirateNet architectures with a common model initialization contract. (#1)
- CPU, CUDA 12, and CUDA 13 installation options, configurable precision, and centralized device placement. (#1)
- Versioned checkpoints and portable prediction artifacts for downstream evaluation. (#1)
- Optional Hydra integration and Weights & Biases and TensorBoard logging. (#1)