Dark Mode

Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

JuliaPhysics/PhysicalConstants.jl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

86 Commits

Repository files navigation

PhysicalConstants.jl

Documentation Build Status Code Coverage

Introduction

PhysicalConstants.jl provides common physical constants. They are defined as instances of the new Constant type, which is subtype of AbstractQuantity (from Unitful.jl package) and can also be turned into Measurement objects (from Measurements.jl package) at request.

Constants are grouped into different submodules, so that the user can choose different datasets as needed. Currently, 2014, 2018, and 2022 editions of CODATA recommended values of the fundamental physical constants are provided.

Installation

The latest version of PhysicalConstants.jl is available for Julia 1.0 and later versions, and can be installed with Julia built-in package manager. After entering the package manager mode by pressing ], run the command

pkg> add PhysicalConstants

Usage

You can load the package as usual with using PhysicalConstants but this module does not provide anything useful for the end-users. You most probably want to directly load the submodule with the dataset you are interested in. For example, for CODATA 2022 load PhysicalConstants.CODATA2022:

julia> using PhysicalConstants.CODATA2022

julia> SpeedOfLightInVacuum
Speed of light in vacuum (c_0)
Value = 2.99792458e8 m s^-1
Standard uncertainty = (exact)
Relative standard uncertainty = (exact)
Reference = CODATA 2022

julia> NewtonianConstantOfGravitation
Newtonian constant of gravitation (G)
Value = 6.6743e-11 m^3 kg^-1 s^-2
Standard uncertainty = 1.5e-15 m^3 kg^-1 s^-2
Relative standard uncertainty = 2.2e-5
Reference = CODATA 2022

SpeedOfLightInVacuum and NewtonianConstantOfGravitation are two of the PhysicalConstants defined in the PhysicalConstants.CODATA2022 module, the full list of available constants is given below.

PhysicalConstants can be readily used in mathematical operations, using by default their Float64 value:

julia> import PhysicalConstants.CODATA2022: c_0, e_0, m_0

julia> 2 * e_0
1.77083756376e-11 F m^-1

julia> e_0 - 1 / (m_0 * c_0 ^ 2)
1.0567555442791707e-23 A^2 s^4 kg^-1 m^-3

If you want to use a different precision for the value of the constant, use the function float(float_type, constant), for example:

julia> float(Float32, e_0)
8.854188f-12 F m^-1

julia> float(BigFloat, e_0)
8.854187818800000000000000000000000000000000000000000000000000000000000000000059e-12 F m^-1

julia> big(e_0)
8.854187818800000000000000000000000000000000000000000000000000000000000000000059e-12 F m^-1

julia> big(e_0) - inv(big(m_0) * big(c_0)^2)
1.056704162590924117341831987227432956066714823419574007586677144869010778731235e-23 A^2 s^4 kg^-1 m^-3

Note that big(constant) is an alias for float(BigFloat, constant).

If in addition to units you also want the standard uncertainty associated with the constant, use measurement(x):

julia> using Measurements

julia> import PhysicalConstants.CODATA2022: h, h

julia> measurement(h)
1.0545718176461565e-34 +- 0.0 J s

julia> measurement(Float32, h)
1.0545718e-34 +- 0.0 J s

julia> measurement(BigFloat, h)
1.054571817646156391262428003302280744722826330020413122421923470598435912734741e-34 +- 0.0 J s

julia> measurement(BigFloat, h) / (measurement(BigFloat, h) / (2 * big(pi)))
1.0 +- 0.0

For more information read the documentation, which includes the full list of constants defined by the package.

License

The PhysicalConstants.jl package is licensed under the MIT "Expat" License. The original author is Mose Giordano.

About

Collection of fundamental physical constants with uncertainties. It supports arbitrary-precision constants

Topics

Resources

Readme

License

View license

Stars

Watchers

Forks

Packages

Contributors

Languages