Julia's Physics Ecosystem
Dealing with physical quantities
JuliaPhysics
:Measurements.jl
: Error propagation libraryPhysicalConstants.jl
: Collection of fundamental physical constants, with physical units and uncertaintiesPeriodicTable.jl
: Periodic Table for Julians
Unitful.jl
: Physical quantities with arbitrary unitsNaturallyUnitful.jl
: Facilities for using natural units withUnitful.jl
UnitfulAstro.jl
: An extension of Unitful.jl for astronomers.BinningAnalysis.jl
: Standard error estimation tools for correlated data
Differential equations
DifferentialEquations.jl
: Julia suite for high-performance solvers of differential equationsDiffEqPhysics.jl
: A library for building differential equations arising from physical problemsDiffEqOperators.jl
: Linear operators for discretizations of differential equationsModelingToolkit.jl
: A toolkit for modeling and creating DSLs for Scientific Computing in Julia
TODOS here
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
Dynamical systems
DynamicalSystems.jl
: A Julia software library for nonlinear dynamics: Delay embeddings, recurrence analysis, chaos (e.g. Lyapunov exponents) and interactive applications.DynamicalBilliards.jl
: Feature-full library for billiards in two dimensions, with support for plotting/animating
PyDSTool.jl
: A wrapper for the PyDSTool libraryCausalityTools.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.
Astronomy
Quantum Physics
Yao.jl
: Extensible, Efficient Quantum Algorithm Design for Humans.QuantumInformation.jl
A Julia package for numerical computation in quantum information theoryQuantumInfo.jl
QuantumLab.jl
A workbench for Quantum Chemistry and Quantum Physics in JuliaQuantumOptics.jl
: Library for the numerical simulation of closed as well as open quantum systems.QuantumBayesian.jl
Julia package for simulating quantum evolution efficiently, including the quantum Bayesian approach to stochastic measurement update and continuous readout.MonteCarlo.jl
Classical and quantum Monte Carlo simulations in JuliaRandomQuantum.jl
sample 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 JuliaJuliaFEM.jl
: Framework for the distributed processing of large Finite Element Models across clusters of computers using simple programming modelsFENiCS.jl
: A wrapper for the FEniCS Finite Element library
Solid state
JuliaAtoms
: Atomic physicsAtomicLevels.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 theContinuumArrays.jl
interface.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.jl
Provides structures for modelling the atomic nucleus as a potential.
libAtoms
: Materials-modelling + FEM orientated librariesJuLIPMaterials
: collection of Julia tools for materials scienceCarrierCapture.jl
: Semi-classical recombination in semiconductors.PolaronMobility.jl
: Feynman variational path-integral model for the Fröhlich polaronCoulombIntegrals.jl
: A library that implements the calculation of the Coulombic repulsion between pairs of electrons.MatrixFactorizations.jl
Wrappers around the solvers fromIterativeSolvers.jl
that 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 JuliaWignerSymbols.jl
: Compute Wigner's 3j and 6j symbols, and related quantities such as Clebsch-Gordan coefficients and Racah's symbols.
Tensors
ITensors.jl
: A Julia library for efficient tensor and tensor network calculationsTensorOperations.jl
: Julia package for tensor contractions and related operationsEinsum.jl
: Einstein summation notation in Julia- That new Einsum library for more automatic differentiation?
Radiation detectors
RadiationSpectra.jl
: Toolkit for analysis of radiation spectra in JuliaRadiationDetectorSignals.jl
: Data types for signals of radiation detectorsRadiationDetectorDSP.jl
: Digital signal processing for radiation detectors
Plotting
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.jl
is 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 librarymatplotlib
.