In pull request #859 I’ve been working on a class to represent normalizations that we can use to get the dimensionless forms of equations. At the community meeting we talked a bit about potential uses for an object that contains normalizations. My main motivation is to have something that we can use to keep track of normalizations for when we do dimensionless plasma simulations.
If we have a class called
UniformPlasma, then we could potentially do operations like
import astropy.units as u uniform_plasma = UniformPlasma(B=0.319*u.T, n=9.3e18*u.m**-3, ...) normalizations = MHDNormalizations(B=0.5*u.T, n=5e19*u.m**-3, L=0.2*u.m) dimensionless_plasma = uniform_plasma / normalizations dimensional_plasma = normalizations * dimensionless_plasma
Along those lines, we could also do things like
custom_particle = CustomParticle(mass=5e-25*u.kg, charge=1.6e-19*u.C) dimensionless_particle = custom_particle / normalizations dimensional_particle = normalizations * dimensionless_particle
Does anything else have thoughts or ideas on how a normalizations object could be used? Is using the multiplication and division operations like this the most reasonable interface for this?