Julia's Physics Ecosystem
Dealing with physical quantities
Unitful.jl: Physical quantities with arbitrary units
NaturallyUnitful.jl: Facilities for using natural units with
UnitfulAstro.jl: An extension of Unitful.jl for astronomers.
BinningAnalysis.jl: Standard error estimation tools for correlated data
DifferentialEquations.jl: Julia suite for high-performance solvers of differential equations
DiffEqPhysics.jl: A library for building differential equations arising from physical problems
DiffEqOperators.jl: Linear operators for discretizations of differential equations
ModelingToolkit.jl: A toolkit for modeling and creating DSLs for Scientific Computing in Julia
Short tutorial with common physics problems
Overview of DiffEqPhysics and FDM with DiffEq
how to use ModellingToolkit by @ChrisRackauckas and @HarrisonGrodin if possible...with special reference to constructing systems of diffeq programatically
PyDSTool.jl: A wrapper for the PyDSTool library
CausalityTools.jl: a framework for detecting causal relations between timeseries.
Reachability.jl: approximating the reachable states and checking safety properties of affine systems.
Agents.jl: Agent-based modelling, cellular automata.
Yao.jl: Extensible, Efficient Quantum Algorithm Design for Humans.
QuantumInformation.jlA Julia package for numerical computation in quantum information theory
QuantumLab.jlA workbench for Quantum Chemistry and Quantum Physics in Julia
QuantumOptics.jl: Library for the numerical simulation of closed as well as open quantum systems.
QuantumBayesian.jlJulia package for simulating quantum evolution efficiently, including the quantum Bayesian approach to stochastic measurement update and continuous readout.
MonteCarlo.jlClassical and quantum Monte Carlo simulations in Julia
RandomQuantum.jlsample from various random matrix ensebles associated with quantum information applications.
- QuantumWalk.jl QuantumWalk.jl is a package for Julia programming language implementing models of quantum continuous and discrete walks used for performing quantum spatial search.
Finite element analysis
JuAFEM.jl: Finite element toolbox for Julia
JuliaFEM.jl: Framework for the distributed processing of large Finite Element Models across clusters of computers using simple programming models
FENiCS.jl: A wrapper for the FEniCS Finite Element library
JuliaAtoms: Atomic physics
AtomicLevels.jl: A library used to define electronic configurations constructed from electronic orbitals in spherical symmetry.
Atoms.jl: Data structures for representing atoms in a product space of orbitals and a radial grid. The radial grid can be any implementation of the
EnergyExpressions.jl: A library for setting up the energy expression of a system built up from a set of configurations. At the moment, the implementation is geared towards atomic systems (in that it uses data structures from AtomicLevels.jl), but it is applicable to other systems as well, such as molecules.
SCF.jl: A library for the solution of integro-differential eigenproblems, in a self-consistent manner.
AngularMomentumAlgebra.jl: A library for the special case of energy expressions in spherical symmetry.
AtomicPotentials.jlProvides structures for modelling the atomic nucleus as a potential.
libAtoms: Materials-modelling + FEM orientated libraries
JuLIPMaterials: collection of Julia tools for materials science
CarrierCapture.jl: Semi-classical recombination in semiconductors.
PolaronMobility.jl: Feynman variational path-integral model for the Fröhlich polaron
CoulombIntegrals.jl: A library that implements the calculation of the Coulombic repulsion between pairs of electrons.
MatrixFactorizations.jlWrappers around the solvers from
IterativeSolvers.jlthat can be used as lazy factorizations.
PseudoPotentials.jl: Model potentials used to reduces calculation complexity by representing a core of electrons in a mean-field sense. This can turn a multi-electron problem into an approximate few- or single-electron problem.
MonteCarlo.jl: Classical and quantum Monte Carlo simulations in Julia
WignerSymbols.jl: Compute Wigner's 3j and 6j symbols, and related quantities such as Clebsch-Gordan coefficients and Racah's symbols.
ITensors.jl: A Julia library for efficient tensor and tensor network calculations
TensorOperations.jl: Julia package for tensor contractions and related operations
Einsum.jl: Einstein summation notation in Julia
- That new Einsum library for more automatic differentiation?
RadiationSpectra.jl: Toolkit for analysis of radiation spectra in Julia
RadiationDetectorSignals.jl: Data types for signals of radiation detectors
RadiationDetectorDSP.jl: Digital signal processing for radiation detectors
Visualization is one of the most important tools in our toolkit. There are three main plotting packages in Julia:
Plots.jl: Very intuitive and convenient, Plots.jl is a wrapper around several plotting backends. Plots tries to figure out what you want it to do, not just what you tell it.
Makie.jl: Built around the idea of fast, interactive plotting utilizing the speed of OpenGL and the GPU (and WebGL now),
Makie.jlis a next-generation plotting package which offers superior interactivity and speed. It's great for building interactive or animated visualzations with minimal overhead, but the time to first plot is a little slow compared to Plots, and it isn't quite as feature-complete. Written in pure Julia.
PyPlot.jl: A wrapper around the PyPlot interface to the popular Python plotting library