From 6ca6b8d92e1e76e6f1883b1c8e42e11e069c70c4 Mon Sep 17 00:00:00 2001 From: "Martin D. Weinberg" Date: Wed, 21 Jan 2026 16:35:37 -0500 Subject: [PATCH 01/31] Add unit conversion explanation and script --- EXP-units/README_expunits.md | 38 +++++ EXP-units/earth_sun_cgs.txt | 3 + EXP-units/earth_sun_scaled.txt | 3 + EXP-units/expunits.pdf | Bin 0 -> 165970 bytes EXP-units/expunits.py | 286 +++++++++++++++++++++++++++++++++ EXP-units/expunits.tex | 128 +++++++++++++++ 6 files changed, 458 insertions(+) create mode 100644 EXP-units/README_expunits.md create mode 100644 EXP-units/earth_sun_cgs.txt create mode 100644 EXP-units/earth_sun_scaled.txt create mode 100644 EXP-units/expunits.pdf create mode 100644 EXP-units/expunits.py create mode 100644 EXP-units/expunits.tex diff --git a/EXP-units/README_expunits.md b/EXP-units/README_expunits.md new file mode 100644 index 0000000..65a59e7 --- /dev/null +++ b/EXP-units/README_expunits.md @@ -0,0 +1,38 @@ +# Example unit conversion files (Earth–Sun) + +## This directory contains: + +| File | Contents | +| --- | --- | +|earth_sun_cgs.txt | two-particle file (Sun + Earth) in CGS units | +|earth_sun_scaled.txt | expected converted file in scaled units (AU, M_sun, v'=1) | +| expunits.py | conversion script (compute scales + optional conversion) | +|README_expunits.md | this file | + +## Quick reproduction + +- The Python3 script requires numpy (e.g. pip install numpy). + +- From this directory, run: + +- python3 expunits.py --old-length 1 --new-length 1.495978707e13 --old-mass 1 --new-mass 1.98847e33 --G_old 6.67430e-8 --G_new 1 --infile earth_sun_cgs.txt --outfile earth_sun_scaled_by_script.txt --print-scales --sci + +### Explanation of flags + +- --old-length 1 and --new-length 1.495978707e13: Interpret old-length unit = 1 cm, new-length unit = 1 AU = 1.495978707e13 cm, so s_L = new_length / old_length = 1.495978707e13. +- --old-mass 1 and --new-mass 1.98847e33: Interpret old-mass unit = 1 g, new-mass unit = 1 M_sun = 1.98847e33 g, so s_M = 1.98847e33. +- --G_old 6.67430e-8 is the cgs gravitational constant (cm^3 g^-1 s^-2). +- --G_new 1 requests that numeric G in the new numeric units equals 1. +- The script computes s_V from the relation s_M = s_L * s_V^2 * (G_new/G_old). Thus V_new (the new velocity unit) is chosen so that v_earth_old / s_V = 1.0. + +## Expected checks + +The script prints s_L, s_V, s_M. + + Expected approximate values: s_L ≈ 1.4959787e13 s_M ≈ 1.98847e33 s_V ≈ 2.978e6 (cm/s per one new velocity unit) + +After conversion, earth_sun_scaled_by_script.txt should match +earth_sun_scaled.txt to within rounding: + + Sun: m' ≈ 1.0, r' ≈ 0.0, v' ≈ -3.00349e-6 + Earth: m' ≈ 3.00349e-6, r' ≈ 1.0, v' ≈ 1.0 diff --git a/EXP-units/earth_sun_cgs.txt b/EXP-units/earth_sun_cgs.txt new file mode 100644 index 0000000..6ca98d2 --- /dev/null +++ b/EXP-units/earth_sun_cgs.txt @@ -0,0 +1,3 @@ +# m[g] x[cm] y[cm] z[cm] u[cm/s] v[cm/s] w[cm/s] +1.98847e33 0.0 0.0 0.0 0.0 -8.944963 0.0 +5.97219e27 1.495978707e13 0.0 0.0 0.0 2.978000e6 0.0 diff --git a/EXP-units/earth_sun_scaled.txt b/EXP-units/earth_sun_scaled.txt new file mode 100644 index 0000000..0e8f256 --- /dev/null +++ b/EXP-units/earth_sun_scaled.txt @@ -0,0 +1,3 @@ +m'[M_sun] x'[AU] y'[AU] z'[AU] u' v' w' +1.000000000000000 0.0 0.0 0.0 0.0 -3.0034896e-06 0.0 +3.0034896e-06 1.0 0.0 0.0 0.0 1.0000000e+00 0.0 diff --git a/EXP-units/expunits.pdf b/EXP-units/expunits.pdf new file mode 100644 index 0000000000000000000000000000000000000000..f5e1c4c7b5bc9f7c0259e26aff9214dad9c142f8 GIT binary patch literal 165970 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
mqPF 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 z%0D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 H2>-tTy*25t literal 0 HcmV?d00001 diff --git a/EXP-units/expunits.py b/EXP-units/expunits.py new file mode 100644 index 0000000..06b80ff --- /dev/null +++ b/EXP-units/expunits.py @@ -0,0 +1,286 @@ +#!/usr/bin/env python3 +""" +expunits.py + +General unit-scale calculator & optional particle-file converter. + +Core relation (general): + G_new = G_old * (s_L * s_V^2) / s_M +so + s_M = s_L * s_V^2 * G_new / G_old + s_V = sqrt( s_M * G_old / (s_L * G_new) ) + s_L = s_M * G_old / (s_V^2 * G_new) + +Command-line usage notes: +- Provide old/new unit definitions in *the same physical units* (e.g. both + lengths in kpc, both masses in Msun). + + For example: --old-length 1 --new-length 300 (means old length unit = 1 kpc, + new length unit = 300 kpc) + +- You must supply enough information to determine the three scale factors: + Provide any two of (s_L, s_V, s_M) by giving the corresponding + old/new pairs. + + Example ways to provide two: + * old-length & new-length AND old-velocity & new-velocity + * old-length & new-length AND old-mass & new-mass + * old-velocity & new-velocity AND old-mass & new-mass + + Optionally, instead of giving two pairs, use the circular-velocity preset + mode (see README below). + +- G_old and G_new are numeric gravitational constants in the old/new numeric unit systems respectively. + For typical conversions to G_new = 1 set --G_new 1.0 (default). + +- Optional: --infile/--outfile to convert a 7-column particle file with columns: m x y z u v w + +- Optional: --precision N prints s_* with N decimal digits; --sci prints scientific notation. + +Presets: + --preset gadget : old_length=1 (kpc), old_mass=1e10 (Msun), G_old=43007.1 + --preset bonsai : old_length=1 (kpc), old_mass=1.0 (Msun), G_old=4.5e-06 + +Examples: + + # Using gadget preset and target new units (L_new = 300 kpc, M_new = 1e12 Msun, want G_new=1) + python convert_units_general.py --preset gadget --new-length 300 --new-mass 1e12 --G_new 1 --print-scales + + # Provide explicit old/new units (length in kpc, mass in Msun, velocity in km/s): + python convert_units_general.py --old-length 1 --new-length 300 --old-mass 1 --new-mass 1e12 --G_old 4.5e-06 --G_new 1 --print-scales + + # Convert a particle file (7 cols) using the scales computed above: + python convert_units_general.py --preset bonsai --new-length 300 --new-mass 1e12 --G_new 1 --infile particles.txt --outfile particles_g1.txt + + +Notes and guidance: + +- Units must be given in the same physical system for old/new comparisons. + + Example: + * If you treat lengths in kpc, give both --old-length and --new-length in kpc. + + * If you use Msun for mass give both --old-mass and --new-mass in Msun. + +- If you use a preset (--preset gadget or --preset bonsai) the preset sets + old-length, old-mass, and G_old unless you override them on the command line. + +- The script is defensive: + + * You must supply at least two old/new pairs (so the third scale can be + calculated from the G relation) + + * Or supply all three and they must be consistent with the requested G_new. + +- For conversions to the usual G_new = 1 choose --G_new 1.0 (default). + +- The printed s_L, s_V, s_M are "old-unit-per-1-new-unit". To convert + numeric particle values: r' = r_old / s_L, v' = v_old / s_V, m' = m_old / s_M + +- The particle-file conversion expects 7 whitespace-separated columns per row: + mass x y z u v w. + +""" + +import argparse +import sys +import numpy as np +import math + +PRESETS = { + 'gadget': { + 'old_length': 1.0, # kpc + 'old_mass': 1.0e10, # Msun + 'G_old': 43007.1 + }, + 'bonsai': { + 'old_length': 1.0, # kpc + 'old_mass': 1.0, # Msun + 'G_old': 4.5e-06 + } +} + +def compute_scales(G_old, G_new, s_L, s_V, s_M): + """ + Given G_old, G_new and any two of (s_L, s_V, s_M) compute the third. + s_L, s_V, s_M are either floats or None. + Returns (s_L, s_V, s_M). Raises ValueError if insufficient or inconsistent. + """ + known = [(s_L is not None), (s_V is not None), (s_M is not None)] + n_known = sum(known) + + # If all three provided, check consistency with G_old/G_new + if n_known == 3: + G_check = (s_L * s_V**2) / (G_old * s_M) + if not math.isfinite(G_check): + raise ValueError("Computed G_check is not finite.") + if abs((G_check - G_new) / (abs(G_new) if G_new != 0 else 1.0)) > 1e-9: + raise ValueError(f"Inconsistent scales: G_new requested {G_new} but scales give {G_check}.") + return s_L, s_V, s_M + + if n_known < 2: + raise ValueError("Insufficient inputs: need at least two of s_L, s_V, s_M (i.e., two old/new pairs).") + + # If s_L and s_V known -> s_M + if s_L is not None and s_V is not None: + s_M_calc = s_L * s_V**2 * G_new / G_old + return s_L, s_V, s_M_calc + + # If s_L and s_M known -> s_V + if s_L is not None and s_M is not None: + denom = s_L * G_new / G_old + if denom <= 0: + raise ValueError("Non-positive denominator in s_V calculation.") + s_V_calc = math.sqrt(s_M * G_old / (s_L * G_new)) + return s_L, s_V_calc, s_M + + # If s_V and s_M known -> s_L + if s_V is not None and s_M is not None: + denom = s_V**2 * G_new / G_old + if denom <= 0: + raise ValueError("Non-positive denominator in s_L calculation.") + s_L_calc = s_M * G_old / (s_V**2 * G_new) + return s_L_calc, s_V, s_M + + raise ValueError("Unhandled case in compute_scales.") + +def parse_args(): + p = argparse.ArgumentParser(description="Compute unit-scale factors and optionally convert a 7-column particle file.") + # presets + p.add_argument("--preset", choices=PRESETS.keys(), help="Optional preset for old units (gadget, bonsai).") + + # old units (user-specified) + p.add_argument("--old-length", type=float, default=None, help="Old length unit expressed in some physical length units (e.g. kpc).") + p.add_argument("--old-mass", type=float, default=None, help="Old mass unit expressed in some physical mass units (e.g. Msun).") + p.add_argument("--old-velocity", type=float, default=None, help="Old velocity unit expressed in some physical velocity units (e.g. km/s).") + + # new units (target) + p.add_argument("--new-length", type=float, default=None, help="New length unit in same physical units as --old-length (e.g. 300 for 300 kpc).") + p.add_argument("--new-mass", type=float, default=None, help="New mass unit in same physical units as --old-mass (e.g. 1e12 for 1e12 Msun).") + p.add_argument("--new-velocity", type=float, default=None, help="New velocity unit in same physical units as --old-velocity (e.g. 1 for 1 km/s).") + + # numeric G values + p.add_argument("--G_old", type=float, default=None, help="Numeric gravitational constant in OLD numeric units.") + p.add_argument("--G_new", type=float, default=1.0, help="Numeric gravitational constant in NEW numeric units (default 1.0).") + + # files for conversion + p.add_argument("--infile", type=str, default=None, help="Optional input particle file (7 columns: m x y z u v w).") + p.add_argument("--outfile", type=str, default=None, help="If --infile given, write converted particles to this file.") + + # print options + p.add_argument("--print-scales", action="store_true", help="Print computed scale factors.") + p.add_argument("--precision", type=int, default=None, help="Number of decimal digits when printing scales (overrides --sci).") + p.add_argument("--sci", action="store_true", help="Print scales in scientific notation (default formatting if --precision is not set).") + p.add_argument("--fmt", type=str, default="%.6e %.6e %.6e %.6e %.6e %.6e %.6e", help="Output format string for converted particle file.") + p.add_argument("--skiprows", type=int, default=0, help="Rows to skip when reading input particle file (e.g. header lines).") + return p.parse_args() + +def resolve_old_new_from_preset(args): + # Fill args.old-length and args.old-mass and G_old from preset if present + if args.preset: + preset = PRESETS[args.preset] + if args.old_length is None: + args.old_length = preset['old_length'] + if args.old_mass is None: + args.old_mass = preset['old_mass'] + if args.G_old is None: + args.G_old = preset['G_old'] + +def compute_and_maybe_convert(args): + # Resolve preset values + resolve_old_new_from_preset(args) + + # Validate G_old provided + if args.G_old is None: + raise SystemExit("G_old must be specified either explicitly (--G_old) or via a preset (--preset).") + + # Compute simple scale candidates from provided old/new unit values + s_L = None + s_V = None + s_M = None + + if args.old_length is not None and args.new_length is not None: + if args.old_length == 0: + raise SystemExit("old-length cannot be zero.") + s_L = args.new_length / args.old_length + + if args.old_mass is not None and args.new_mass is not None: + if args.old_mass == 0: + raise SystemExit("old-mass cannot be zero.") + s_M = args.new_mass / args.old_mass + + if args.old_velocity is not None and args.new_velocity is not None: + if args.old_velocity == 0: + raise SystemExit("old-velocity cannot be zero.") + s_V = args.new_velocity / args.old_velocity + + # Compute missing scale(s) + try: + s_L, s_V, s_M = compute_scales(args.G_old, args.G_new, s_L, s_V, s_M) + except ValueError as e: + raise SystemExit("Error computing scales: " + str(e)) + + # Optionally print scales + if args.print_scales: + if args.precision is not None: + fmt = "{:." + str(args.precision) + "f}" + print("s_L =", fmt.format(s_L)) + print("s_V =", fmt.format(s_V)) + print("s_M =", fmt.format(s_M)) + elif args.sci: + print("s_L = {:.6e}".format(s_L)) + print("s_V = {:.6e}".format(s_V)) + print("s_M = {:.6e}".format(s_M)) + else: + print("s_L =", s_L) + print("s_V =", s_V) + print("s_M =", s_M) + + # Print check of G_new + G_new_check = (s_L * s_V**2) / (s_M * args.G_old) + print("Check: G_new = (s_L s_V^2) / (G_old * s_M) = {:.12g} (requested G_new = {})".format(G_new_check, args.G_new)) + + # If infile specified, convert and write + if args.infile: + if not args.outfile: + raise SystemExit("When --infile is provided you must supply --outfile.") + try: + data = np.loadtxt(args.infile, comments="#", skiprows=args.skiprows) + except Exception as e: + raise SystemExit("Failed reading infile: " + str(e)) + + if data.ndim == 1: + if data.size == 7: + data = data.reshape((1,7)) + else: + raise SystemExit("Input file doesn't have 7 columns per row.") + + if data.shape[1] != 7: + raise SystemExit("Input file must have 7 columns (m x y z u v w). Found {}".format(data.shape[1])) + + out = np.empty_like(data, dtype=float) + out[:,0] = data[:,0] / s_M # mass + out[:,1:4] = data[:,1:4] / s_L # positions + out[:,4:7] = data[:,4:7] / s_V # velocities + + try: + np.savetxt(args.outfile, out, fmt=args.fmt) + except Exception as e: + raise SystemExit("Failed writing outfile: " + str(e)) + + print("Converted {} -> {} using s_L={:.6g}, s_V={:.6g}, s_M={:.6g}".format(args.infile, args.outfile, s_L, s_V, s_M)) + + return s_L, s_V, s_M + +def main(): + args = parse_args() + try: + s_L, s_V, s_M = compute_and_maybe_convert(args) + except SystemExit as e: + # argparse or compute_and_maybe_convert can call SystemExit for user errors + print(e, file=sys.stderr) + sys.exit(1) + +if __name__ == "__main__": + main() + diff --git a/EXP-units/expunits.tex b/EXP-units/expunits.tex new file mode 100644 index 0000000..0d9366e --- /dev/null +++ b/EXP-units/expunits.tex @@ -0,0 +1,128 @@ +\documentclass[11pt]{article} +\usepackage{amsmath} +\usepackage{amssymb} +\usepackage{array} +\usepackage{geometry} +\geometry{margin=1in} +\begin{document} +\title{Unit conversion to a system with \(G=1\) for \sc{exp}} +\author{Martin D. Weinberg/draft} +\date{\today} +\maketitle +\section{Definitions} + +Let the original (denoted as \emph{old}) numerical gravitational +constant be \(G_{\rm old}\). A particle in the old units has numeric +mass \(m\), position vector \(\mathbf{r}=(x,y,z)\) and velocity vector +\(\mathbf{v}=(u,v,w)\). Define unit-scale factors as the number of +old units contained in one new unit (denoted as \emph{new}): +\begin{equation} + s_L \equiv \frac{L_{\rm new}}{L_{\rm old}},\qquad + s_V \equiv \frac{V_{\rm new}}{V_{\rm old}},\qquad + s_M \equiv \frac{M_{\rm new}}{M_{\rm old}}. + \label{eq:scalefactors} +\end{equation} +A numeric quantity in the new units (denoted with a prime) is obtained +by dividing the old numeric value by the corresponding scale factor: +\begin{equation} + \mathbf{r}'=\frac{\mathbf{r}}{s_L},\qquad + \mathbf{v}'=\frac{\mathbf{v}}{s_V},\qquad + m'=\frac{m}{s_M}. + \label{eq:scaledunits} +\end{equation} +Time-scale factor: +\[ + s_T \equiv \frac{T_{\rm new}}{T_{\rm old}}=\frac{s_L}{s_V}. +\] + +\section{Dimensional constraint for \(G\) and the core relation} + +Dimensional analysis gives \([G]=L\,V^2/M\). Thus numeric values +transform as +\[ + G_{\rm new} = G_{\rm old}\,\frac{s_M}{s_L\,s_V^2}. +\] +Requiring \(G_{\rm new}=1\) gives the central constraint +\[\boxed{ \; s_M = s_L\,s_V^{2}/G_{\rm old}\; }.\] + +These formula give my usual recommendation to Gadget users: keep +length, velocity, and time units the same and scale your mass by +\(G_{old}\) (see eq. \ref{eq:scaledunits}). + +\section{Conversion formulas (apply to each particle)} + +Given \((m,\mathbf{r},\mathbf{v})\) in old units: +\[\boxed{ \; m'=\frac{m}{s_M},\quad \mathbf{r}'=\frac{\mathbf{r}}{s_L},\quad \mathbf{v}'=\frac{\mathbf{v}}{s_V},\quad t'=\frac{t}{s_T}=\frac{t\,s_V}{s_L}\; }.\] + +\section{Solve-for formulas (pick any two scales, compute the third)} + +From \(s_M = s_L s_V^2 / G_{\rm old}\): +\begin{itemize} +\item Given \(s_L\) and \(s_V\): + \[s_M = \frac{s_L\,s_V^2}{G_{\rm old}}.\] +\item Given \(s_L\) and \(s_M\): + \[s_V = \sqrt{\frac{s_M G_{\rm old}}{s_L}}.\] +\item Given \(s_V\) and \(s_M\): +\[s_L = \frac{s_M G_{\rm old}}{s_V^2}.\] +\end{itemize} +\section{Monopole (circular velocity) condition} + +Suppose an enclosed mass (in old units) is \(M_{\rm enc}\) inside +radius \(r_0\) (old units). The old circular speed satisfies +\[ + v_{c,{\rm old}}^2=\frac{G_{\rm old}\,M_{\rm enc}}{r_0}. +\] +In the new units (where \(G_{\rm new}=1\)), at the same physical +radius (numerically \(r_0' = r_0/s_L\)) the circular speed squared +becomes +\[ + v_c'^2 = \frac{(M_{\rm enc}/s_M)}{(r_0/s_L)} = \frac{M_{\rm + enc}\,s_L}{s_M\,r_0}. +\] +Using \(s_M=s_L s_V^2/G_{\rm old}\) this simplifies to +\[ + \boxed{ \; v_c'^2 = \frac{G_{\rm old}\,M_{\rm enc}}{s_V^2\,r_0} \; } +\] +or equivalently +\[ + \boxed{ \; s_V = \sqrt{\frac{G_{\rm old}\,M_{\rm enc}}{v_c'^2\,r_0}}\;. } +\] +Hence: if you demand a specific numeric circular speed value \(v_c'\) +at physical radius \(r_0\), this uniquely determines \(s_V\) +(independent of \(s_L\)). Once \(s_V\) is set, \(s_M\) follows from +\(s_M=s_L s_V^2/G_{\rm old}\); if you additionally set a target +numeric radius \(r_0'\) for \(r_0\), choose \(s_L = r_0/r_0'\). + +\section{Summary table} + +\begin{center} +\renewcommand{\arraystretch}{2} +\begin{tabular}{p{0.3\textwidth} p{0.65\textwidth}} +\hline +Task & Formula\\ +\hline + Core constraint & $s_M = \dfrac{s_L\,s_V^2}{G_{\rm old}}$ \\ + Convert variables & $r' = r/s_L,\quad v'=v/s_V,\quad m'=m/s_M,\quad t' = t\,s_V/s_L$ \\ + Solve for $s_M$ & $s_M = \dfrac{s_L\,s_V^2}{G_{\rm old}}$ \\ + Solve for $s_V$ & $s_V = \sqrt{\dfrac{G_{\rm old}\,s_M}{s_L}}$ \\ + Solve for $s_L$ & $s_L = \dfrac{G_{\rm old}\,s_M}{s_V^2}$ \\ + Circular-velocity condition & $s_V = \sqrt{\dfrac{G_{\rm old}\,M_{\rm enc}}{v_c'^2\,r_0}}$ \\ + Resulting $s_M$ & $s_M = \dfrac{s_L\,s_V^2}{G_{\rm old}} = s_L\,\dfrac{M_{\rm enc}}{v_c'^2\,r_0}$ \\ +\hline +\end{tabular} +\end{center} + +\section{Usage recipes} +\begin{itemize} +\item Pick new length and velocity units directly: specify \(s_L\) and + \(s_V\), compute \(s_M = s_L s_V^2/G_{\rm old}\), then rescale + particle numbers with the conversion formulas. +\item If you want \(v_c'=v_*\) at radius \(r_0\) for enclosed old mass + \(M_{\rm enc}\): compute \(s_V\) from the circular-velocity formula, + pick \(s_L\) (e.g. \(s_L=r_0\) if you want \(r_0'=1\)), then \(s_M\) + follows. +\item If you require a particular old mass \(M_*\) to become \(m'=1\): + set \(s_M=M_*\), then choose \(s_L\) (or \(s_V\)) and compute the + remaining scale factor. +\end{itemize} +\end{document} \ No newline at end of file From f71b9013d8092dde78092586f52077f863c7450e Mon Sep 17 00:00:00 2001 From: "Martin D. Weinberg" Date: Wed, 21 Jan 2026 16:44:01 -0500 Subject: [PATCH 02/31] Rename the README.md so that it's picked up automatically by github --- EXP-units/{README_expunits.md => README.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename EXP-units/{README_expunits.md => README.md} (100%) diff --git a/EXP-units/README_expunits.md b/EXP-units/README.md similarity index 100% rename from EXP-units/README_expunits.md rename to EXP-units/README.md From af401836ef80c8492e4e9d8fcb88f732f884c308 Mon Sep 17 00:00:00 2001 From: Martin Weinberg Date: Wed, 21 Jan 2026 16:46:39 -0500 Subject: [PATCH 03/31] Update EXP-units/expunits.py Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- EXP-units/expunits.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/EXP-units/expunits.py b/EXP-units/expunits.py index 06b80ff..196a0d9 100644 --- a/EXP-units/expunits.py +++ b/EXP-units/expunits.py @@ -44,13 +44,13 @@ Examples: # Using gadget preset and target new units (L_new = 300 kpc, M_new = 1e12 Msun, want G_new=1) - python convert_units_general.py --preset gadget --new-length 300 --new-mass 1e12 --G_new 1 --print-scales + python expunits.py --preset gadget --new-length 300 --new-mass 1e12 --G_new 1 --print-scales # Provide explicit old/new units (length in kpc, mass in Msun, velocity in km/s): - python convert_units_general.py --old-length 1 --new-length 300 --old-mass 1 --new-mass 1e12 --G_old 4.5e-06 --G_new 1 --print-scales + python expunits.py --old-length 1 --new-length 300 --old-mass 1 --new-mass 1e12 --G_old 4.5e-06 --G_new 1 --print-scales # Convert a particle file (7 cols) using the scales computed above: - python convert_units_general.py --preset bonsai --new-length 300 --new-mass 1e12 --G_new 1 --infile particles.txt --outfile particles_g1.txt + python expunits.py --preset bonsai --new-length 300 --new-mass 1e12 --G_new 1 --infile particles.txt --outfile particles_g1.txt Notes and guidance: From d53f9d03587acd3fde7fea6f92c7a9c233625fa8 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 21 Jan 2026 21:47:35 +0000 Subject: [PATCH 04/31] Initial plan From bca5c80ecddb077147c18a65e2dd330c69f11efe Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 21 Jan 2026 21:50:38 +0000 Subject: [PATCH 05/31] Add validation for G_new to check for non-positive values Co-authored-by: The9Cat <25960766+The9Cat@users.noreply.github.com> --- EXP-units/__pycache__/expunits.cpython-312.pyc | Bin 0 -> 13864 bytes EXP-units/expunits.py | 6 +++++- 2 files changed, 5 insertions(+), 1 deletion(-) create mode 100644 EXP-units/__pycache__/expunits.cpython-312.pyc diff --git a/EXP-units/__pycache__/expunits.cpython-312.pyc b/EXP-units/__pycache__/expunits.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..da7178dfb15bcfdef766c67057c0586c48e42122 GIT binary patch literal 13864 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 B4QK!W literal 0 HcmV?d00001 diff --git a/EXP-units/expunits.py b/EXP-units/expunits.py index 196a0d9..65d9395 100644 --- a/EXP-units/expunits.py +++ b/EXP-units/expunits.py @@ -106,6 +106,10 @@ def compute_scales(G_old, G_new, s_L, s_V, s_M): s_L, s_V, s_M are either floats or None. Returns (s_L, s_V, s_M). Raises ValueError if insufficient or inconsistent. """ + # Validate G_new is physically meaningful + if G_new <= 0: + raise ValueError(f"G_new must be positive (got {G_new}). Zero or negative gravitational constants are not physically meaningful.") + known = [(s_L is not None), (s_V is not None), (s_M is not None)] n_known = sum(known) @@ -114,7 +118,7 @@ def compute_scales(G_old, G_new, s_L, s_V, s_M): G_check = (s_L * s_V**2) / (G_old * s_M) if not math.isfinite(G_check): raise ValueError("Computed G_check is not finite.") - if abs((G_check - G_new) / (abs(G_new) if G_new != 0 else 1.0)) > 1e-9: + if abs((G_check - G_new) / abs(G_new)) > 1e-9: raise ValueError(f"Inconsistent scales: G_new requested {G_new} but scales give {G_check}.") return s_L, s_V, s_M From 744705a524148716b592e77ca7bfd6f82ac859c7 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 21 Jan 2026 21:50:50 +0000 Subject: [PATCH 06/31] Add __pycache__ to .gitignore and remove cached files Co-authored-by: The9Cat <25960766+The9Cat@users.noreply.github.com> --- .gitignore | 1 + EXP-units/__pycache__/expunits.cpython-312.pyc | Bin 13864 -> 0 bytes 2 files changed, 1 insertion(+) delete mode 100644 EXP-units/__pycache__/expunits.cpython-312.pyc diff --git a/.gitignore b/.gitignore index 314ca4c..4fcac03 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,4 @@ Binary/*run1* DiskHaloA/*run0* DiskHaloA/processor.rates +__pycache__/ diff --git a/EXP-units/__pycache__/expunits.cpython-312.pyc b/EXP-units/__pycache__/expunits.cpython-312.pyc deleted file mode 100644 index da7178dfb15bcfdef766c67057c0586c48e42122..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13864 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 B4QK!W From 613cea2f2be807ef2a614299ac56687dac883c5d Mon Sep 17 00:00:00 2001 From: "Martin D. Weinberg" Date: Wed, 21 Jan 2026 16:51:07 -0500 Subject: [PATCH 07/31] Corrected documentation at top of script --- EXP-units/expunits.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/EXP-units/expunits.py b/EXP-units/expunits.py index 06b80ff..1ab04d5 100644 --- a/EXP-units/expunits.py +++ b/EXP-units/expunits.py @@ -5,7 +5,7 @@ General unit-scale calculator & optional particle-file converter. Core relation (general): - G_new = G_old * (s_L * s_V^2) / s_M + G_new = G_old * s_M / (s_L * s_V^2) so s_M = s_L * s_V^2 * G_new / G_old s_V = sqrt( s_M * G_old / (s_L * G_new) ) From 83cde979d9aa254e6cbf6e3daf7c4c3bf1b2923f Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 21 Jan 2026 21:51:37 +0000 Subject: [PATCH 08/31] Add validation for G_old to prevent division errors Co-authored-by: The9Cat <25960766+The9Cat@users.noreply.github.com> --- EXP-units/expunits.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/EXP-units/expunits.py b/EXP-units/expunits.py index 65d9395..513ef23 100644 --- a/EXP-units/expunits.py +++ b/EXP-units/expunits.py @@ -109,6 +109,8 @@ def compute_scales(G_old, G_new, s_L, s_V, s_M): # Validate G_new is physically meaningful if G_new <= 0: raise ValueError(f"G_new must be positive (got {G_new}). Zero or negative gravitational constants are not physically meaningful.") + if G_old <= 0: + raise ValueError(f"G_old must be positive (got {G_old}). Zero or negative gravitational constants are not physically meaningful.") known = [(s_L is not None), (s_V is not None), (s_M is not None)] n_known = sum(known) From c28a276bacadabb5eb184eae0eaf37c513fe07ac Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 21 Jan 2026 21:52:26 +0000 Subject: [PATCH 09/31] Simplify division by G_new since it's guaranteed positive Co-authored-by: The9Cat <25960766+The9Cat@users.noreply.github.com> --- EXP-units/expunits.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/EXP-units/expunits.py b/EXP-units/expunits.py index 513ef23..1536a63 100644 --- a/EXP-units/expunits.py +++ b/EXP-units/expunits.py @@ -120,7 +120,7 @@ def compute_scales(G_old, G_new, s_L, s_V, s_M): G_check = (s_L * s_V**2) / (G_old * s_M) if not math.isfinite(G_check): raise ValueError("Computed G_check is not finite.") - if abs((G_check - G_new) / abs(G_new)) > 1e-9: + if abs((G_check - G_new) / G_new) > 1e-9: raise ValueError(f"Inconsistent scales: G_new requested {G_new} but scales give {G_check}.") return s_L, s_V, s_M From b8e50d66812e569285f22b647f6bc84eeeba3940 Mon Sep 17 00:00:00 2001 From: Martin Weinberg Date: Wed, 21 Jan 2026 18:43:20 -0500 Subject: [PATCH 10/31] Update EXP-units/expunits.py Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- EXP-units/expunits.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/EXP-units/expunits.py b/EXP-units/expunits.py index 58c7cf1..2c5eb3c 100644 --- a/EXP-units/expunits.py +++ b/EXP-units/expunits.py @@ -243,8 +243,8 @@ def compute_and_maybe_convert(args): print("s_M =", s_M) # Print check of G_new - G_new_check = (s_L * s_V**2) / (s_M * args.G_old) - print("Check: G_new = (s_L s_V^2) / (G_old * s_M) = {:.12g} (requested G_new = {})".format(G_new_check, args.G_new)) + G_new_check = args.G_old * s_M / (s_L * s_V**2) + print("Check: G_new = G_old * s_M / (s_L s_V^2) = {:.12g} (requested G_new = {})".format(G_new_check, args.G_new)) # If infile specified, convert and write if args.infile: From 8522c4f827050beab36eae4292ebaff0c26ba1f4 Mon Sep 17 00:00:00 2001 From: Martin Weinberg Date: Wed, 21 Jan 2026 18:43:32 -0500 Subject: [PATCH 11/31] Update EXP-units/README.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- EXP-units/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/EXP-units/README.md b/EXP-units/README.md index 65a59e7..e2ed5cb 100644 --- a/EXP-units/README.md +++ b/EXP-units/README.md @@ -7,7 +7,7 @@ |earth_sun_cgs.txt | two-particle file (Sun + Earth) in CGS units | |earth_sun_scaled.txt | expected converted file in scaled units (AU, M_sun, v'=1) | | expunits.py | conversion script (compute scales + optional conversion) | -|README_expunits.md | this file | +|README.md | this file | ## Quick reproduction From 43d57e6bd9c526249ffc20cba9e4ad7c7ad9b1a9 Mon Sep 17 00:00:00 2001 From: Martin Weinberg Date: Wed, 21 Jan 2026 18:43:49 -0500 Subject: [PATCH 12/31] Update EXP-units/expunits.tex Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- EXP-units/expunits.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/EXP-units/expunits.tex b/EXP-units/expunits.tex index 0d9366e..711f9c3 100644 --- a/EXP-units/expunits.tex +++ b/EXP-units/expunits.tex @@ -45,7 +45,7 @@ \section{Dimensional constraint for \(G\) and the core relation} Requiring \(G_{\rm new}=1\) gives the central constraint \[\boxed{ \; s_M = s_L\,s_V^{2}/G_{\rm old}\; }.\] -These formula give my usual recommendation to Gadget users: keep +These formulas give my usual recommendation to Gadget users: keep length, velocity, and time units the same and scale your mass by \(G_{old}\) (see eq. \ref{eq:scaledunits}). From dc75160b6852b5bb868e42cb309f920979e1c522 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 21 Jan 2026 23:44:11 +0000 Subject: [PATCH 13/31] Initial plan From 362f1df1a804e43441ebf4b4b0c5d49d5e4f18bf Mon Sep 17 00:00:00 2001 From: Martin Weinberg Date: Wed, 21 Jan 2026 18:44:22 -0500 Subject: [PATCH 14/31] Update EXP-units/expunits.py Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- EXP-units/expunits.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/EXP-units/expunits.py b/EXP-units/expunits.py index 2c5eb3c..49a95eb 100644 --- a/EXP-units/expunits.py +++ b/EXP-units/expunits.py @@ -208,16 +208,22 @@ def compute_and_maybe_convert(args): if args.old_length is not None and args.new_length is not None: if args.old_length == 0: raise SystemExit("old-length cannot be zero.") + if args.new_length == 0: + raise SystemExit("new-length cannot be zero.") s_L = args.new_length / args.old_length if args.old_mass is not None and args.new_mass is not None: if args.old_mass == 0: raise SystemExit("old-mass cannot be zero.") + if args.new_mass == 0: + raise SystemExit("new-mass cannot be zero.") s_M = args.new_mass / args.old_mass if args.old_velocity is not None and args.new_velocity is not None: if args.old_velocity == 0: raise SystemExit("old-velocity cannot be zero.") + if args.new_velocity == 0: + raise SystemExit("new-velocity cannot be zero.") s_V = args.new_velocity / args.old_velocity # Compute missing scale(s) From f8b82c406e87008cd5b2e3682b968bb897d56b07 Mon Sep 17 00:00:00 2001 From: Martin Weinberg Date: Wed, 21 Jan 2026 18:44:39 -0500 Subject: [PATCH 15/31] Update EXP-units/expunits.tex Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- EXP-units/expunits.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/EXP-units/expunits.tex b/EXP-units/expunits.tex index 711f9c3..1a18ea6 100644 --- a/EXP-units/expunits.tex +++ b/EXP-units/expunits.tex @@ -5,7 +5,7 @@ \usepackage{geometry} \geometry{margin=1in} \begin{document} -\title{Unit conversion to a system with \(G=1\) for \sc{exp}} +\title{Unit conversion to a system with \(G=1\) for \textsc{exp}} \author{Martin D. Weinberg/draft} \date{\today} \maketitle From 14bba61700f734a87a8deb05f2d0034f5362e2e5 Mon Sep 17 00:00:00 2001 From: Martin Weinberg Date: Wed, 21 Jan 2026 18:44:47 -0500 Subject: [PATCH 16/31] Update EXP-units/expunits.py Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- EXP-units/expunits.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/EXP-units/expunits.py b/EXP-units/expunits.py index 49a95eb..2a799f2 100644 --- a/EXP-units/expunits.py +++ b/EXP-units/expunits.py @@ -117,7 +117,7 @@ def compute_scales(G_old, G_new, s_L, s_V, s_M): # If all three provided, check consistency with G_old/G_new if n_known == 3: - G_check = (s_L * s_V**2) / (G_old * s_M) + G_check = G_old * s_M / (s_L * s_V**2) if not math.isfinite(G_check): raise ValueError("Computed G_check is not finite.") if abs((G_check - G_new) / G_new) > 1e-9: From 7533344dfaa6e57df4deff715314020e42a7b984 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 21 Jan 2026 23:47:31 +0000 Subject: [PATCH 17/31] Add Motivation section to EXP-units README Co-authored-by: The9Cat <25960766+The9Cat@users.noreply.github.com> --- EXP-units/README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/EXP-units/README.md b/EXP-units/README.md index e2ed5cb..658e264 100644 --- a/EXP-units/README.md +++ b/EXP-units/README.md @@ -1,5 +1,9 @@ # Example unit conversion files (Earth–Sun) +## Motivation + +Many N-body simulation codes, including EXP, work most efficiently when the gravitational constant G is set to 1 in the simulation units. This directory provides tools and examples for converting physical data (e.g., in CGS or astronomical units) to a scaled unit system where G=1, which simplifies equations of motion and improves numerical stability. + ## This directory contains: | File | Contents | From 9ebe729dc396a83818c9ae519989e3aca5039319 Mon Sep 17 00:00:00 2001 From: "Martin D. Weinberg" Date: Wed, 21 Jan 2026 18:48:20 -0500 Subject: [PATCH 18/31] Comment the header on the refereence example --- EXP-units/earth_sun_scaled.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/EXP-units/earth_sun_scaled.txt b/EXP-units/earth_sun_scaled.txt index 0e8f256..a927791 100644 --- a/EXP-units/earth_sun_scaled.txt +++ b/EXP-units/earth_sun_scaled.txt @@ -1,3 +1,3 @@ -m'[M_sun] x'[AU] y'[AU] z'[AU] u' v' w' +# m'[M_sun] x'[AU] y'[AU] z'[AU] u' v' w' 1.000000000000000 0.0 0.0 0.0 0.0 -3.0034896e-06 0.0 3.0034896e-06 1.0 0.0 0.0 0.0 1.0000000e+00 0.0 From e451d306dea057503b4d0c68f1d7d3106821b91c Mon Sep 17 00:00:00 2001 From: "Martin D. Weinberg" Date: Wed, 21 Jan 2026 19:03:22 -0500 Subject: [PATCH 19/31] Updated some wording --- EXP-units/expunits.pdf | Bin 165970 -> 165802 bytes EXP-units/expunits.tex | 9 +++++---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/EXP-units/expunits.pdf b/EXP-units/expunits.pdf index f5e1c4c7b5bc9f7c0259e26aff9214dad9c142f8..633377092f19785ea4ff83f143627c496d80cbdd 100644 GIT binary patch delta 33036 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≈NE)R)48#G@5HHDJ4$nL9v%-Q3u9pD=#^CntT25>KyY8~l%xXiBr2!byR22Deu3`Z zhd`oR6M(_O63-Y+%4ubPlnn2+jqMioo3##{5_;iJoxLI+iw?@YW3IM)i|VI;0Q{+6vHG#m=^)-QszQ$q*MiG3*aUA~ z2|kiAqrDoR-yxAT7^UYSyK3eo(0~&snfm1ldPZ^iKdbs_pqG(c0TY*I6af|yH#G_` zOl59obZ9alF*h_ZHj_ac6a_IjH!(MpfsrSFjJE?+=KJ0^94Fhp(q!AVZFi-qD;txo znKao=ZnB%K$+l~<&8L0#xzFr#zwcVlvs$bEpRfH}QIaaFF^HJkn*t^6K`sm|jLf_M zF$Gl?W&krY8zVC_D?BBoy0wcf@ZV&3N==}Xv$Z{l_a6dcPCyfvcbd3~%e$O{JqRFw z>uL*NVFR#m^0IL8GBX2MnVEV1N6_Ah7a(rpW^E2oUcK90kAN#{KwqC zwf{0?4f>a|iJ6(bor4L;(;8$6u&}lT0+b}>8C^VF=m91m^S=a5Y@O}j^-bJ=Oss89 zOy33m6}bsOQbYw{@}A(o({na+vUYHBW^}f;{VPSLzs$T>SpsA(W^ZQ)1i3iF{}rFO zwG+_nz3iS$e|Pp1$le{~{cm7l4Kla*D+zN~2PO@WwWBLgM*QC*?YtH7n9{L@_Pop-VXK-0E_n|fWFoi!1q7!-p(d&K!A&r zE6~^bpN#)T@GL9M%l#r z-(mbiR|aHZ58(Mb+V?X3PsDEj9sufpF9!|azilbnzfUa?K>cUP^_e-C&E9{p{6CNS zzf}JJCj2ie|Fk$P5m$a|A%d2XKm~GZ-Murb#-}P00sN^H30o@Q7z!# zORE4hw|2Gr-&`3NllMh`5CK`*{-=!A&XU$1Kyzhl7c;BBr{!%E1XRadI;8gnw`HJK_L% zv%K%3Ind)@LkwVI1lha1s{r29^95MgJHh|eQBDp3lgMABzY!OIfJy8R;s!8@{|9j~ z1DGWLAQk|V)E~qOV3PiW*Z@p2e-I~tN&XMw0Wc~32XVjKRQ`kBt*HJ%?^e|QAa($g z`XBTjwZ?xC&wJD+f6#l>rhm|ToTg4DW}krX*WJS951s8l^uH(cKaBSP&HjTp-i?{r z+rD?_e<H9rByFc*#P%!<&)ca*(vj5}kUH1Lq z`Um?xREIz8cU_0~#{=|Vg=J^?H}${E%KknD4)5!3|Bpg{y+55yj{kt~nL7OgzNh8< zrxEY5I0Nmh|GOD1EbnIjIC(!WOfFVVz&|0suMLxnyZt{D-mByK5BOdkw|~HQFYf>7 z%)7S7Kj6E0&ws)HT0t{cr}uPS{&ghZ_w#@7zn(lG&;w`&zc^=a#usc;6Wn(HLxjMc zVRuYmnsQfv>l+P&_o7p~>mxEu5=~V`;JVYTNYYR@>dLkR^^Ncn$&2?Tgq7e^n>fKQOk;6G(4a~xf{k(Ki>?%jK( zJZk$&mq$Y9c2)MOIOPzYOQ#rOG@|tbzRytRnr6;_;*x!EVIYE~ML+jInYp>0M$aC9 zBa!_=2k(0v!&d06yTKa!FzdBiuFmS*iARB_i%SG~gFZ6((OYysSr%vBySQ+rf5D@f zzmOywi9Th80hMu|HNDDOH44<&Q|&gg*uk=slLQE+BIw81NvJMq#58guQ^KlhHHyM; zsb>3s1SHz;un=8syVdNnut_0Y;+d*_1I!@lSRMH{b$LJ4Ij#;3_cPpurnKA-H4blg z`D%R^>JuWgbZ4QJu+ocMS>{bAN`WqQ8HMQ70?J^b(l5CsaX&+wgz$R@UWh*8vuqVG zGwX6g_kfQOo^s^)T*UfT)SoMMY|Nm|+q$EF8w9-taVox<{!BSPFTk^6lQ7N*rOr*4 z=!(c)i=$HEs{z)}1eG$KZ&YA2ikEnj$ba49ShyIVC}fwB>e-#I9E#Kr^t5^4$!9#( ztk7tU=g3zf-8qh87~QWA7!(Z(>E*dK-`~0|D-$)uIFYLkl;V+CGantC}TGOs{PYs5cfw~$?nX$JFNp93W)Tnv!iZ4o_rhcDC?zI8d zGe0%DP5Ntco5I_+LjOB^ZxeuzBRUm-()PgdQy0^KC96%Vx_fQ}~f2u1TQMS-)lt^M*g9 zOhCU=2b^METqs=Q5N=}cnKLPS%0ntw1vF4bkQRxzV_ii#mzYI5KM60-3WigEt(TRC zcD-HrnT9mlB1Ah7)@&aw3Kndef0hb!uqH0~LKQ=qO(K^xn1Qz%jS6k!bwUJL7Nv?2 zda<`gOm+-R)}<8eV~;o2hj`9vc=7S%QSCD5jEOWXX9;cQQ$i#5ng0 zwQvfbslFw7 zu=VvnexwTx;Ta2EaU~yNBN&b3K558awZjt=c`j2UN6Jx!_OL23Piv-Ba>^)EP}n{l zJeD^xB;ai5b>be)07r*^qV5OqVe#Zf=0CDhS|*xSd4=7{j^L%zyW0CHl(Y8Ydab#B zP0b0L;iOG#r7c40>qaV@eB=2!R=h6Mn=hA$ZAOFpYy56g|J*X$rQ)Md$#(2`@AVVt zgZhzsd%|8DMUJ_mzF1Rw!Pt`0?cBIr>wrq57asgRt7n03kO9nkT?*coQ)&NA3NX5ap@*obiOZSf@3`f&HsSLyw$6M>q%WkDMnB>CYh8Eh2TH?UxCZ`B3+uV`I=z3MpBJ4RaP5T+uppXGe) z6%dRt=B87$(AHlGzqBKH?kMcPar&3#R2#P6nYd(;zzQp|9OW`)f=OPGBsQ>l5|gKH zo1rKu%uh)5>AtM$LE4qSwRnw3OMdv|Txqalc(2YSQ219;yh}NN-GAGaL zrwU13`R&FnDCYqlI86W5;dKc=$mz3H!edi{EA~ZvaI`UVyzkm{%I)rYPPKr69${Lm?w?{rWLM zWWkbP6J*Qj2_7a37bmGyf5|Tgw|k^KTA&mwB7!^Y7Mk#RZOS(9Lxd zt)+?GppTt-%mH$MS3ImVCTlqB#VJ=f(=7adZZUZ7fnF~W>B8A;HgI@P#!I~%kLIma z7ZwrMiqcF(2a$0`J@$OH1y)n{L^?BoOG&}0A`lNlpj>|#6 zz}*86U1v)Q-f)#eqH=U)KLHD!FxzOQIa#XyZu9)WpPE<%(Y6s|@|4ARh1-?!%9ZYa zbbFEP@k)^Ioc^=dP~9XYynSocdX5L=AoDlpK(x6*JajD4sMrSNSQ>TUs7)u`idEyM0p}8us}^ZVijU6kG(FX=ECH6 z#oS;MpA^GpqU3&n=S=hEcOK3p*ak>{K2m=`Scq1+t@5Le=YBRIsyM$f%?2o z+ZM^+UzD4)-G>p3Q3~nYS;WI%FBOL*CSe?+d5~wd(LU5miKUV-CRu2&+}^u2i5B#k zqBOppY?6(w?M|6zp66IM#+fG!oXU8+f*9%8X-VsWS23~hc+h$JW+1VVMEHY$MG#_! zA(7T<$VXOock~ilFN8gc8CI<`j2idVkp5#O9@Dq{T{5MjY>eSitsYuQbc0oTW?NO!@H|eoPWvLn80^>NWa&S}v$_7DYOms-|8L zTvtVS3`J&f!-X<`=Pfy-Q?HnYtM_BabB@&*C=;<7??8uYX4#~>LA~dKO55r4%z7#l z$Ox1KDJ!3gjQ~rXEDT@sJLlI#8hk~)B9XV8Wc~W`x#6dD)3t8Up&#~tiLrcDz5(pA zNr6T#cypikb2z%&)|veJO3Pjzd%`u#H;T^~PIe-1r_M>3-ThaWAl-FH+SFEolDlE& zn{)egOjBX+FP?Jz>; z(m%@cJN$$~Z$h!fK=f&U_Diqh-hX5q>P>E-vltuj@+@`>BH1*m5%sDZ4$BU`W)*Uq zX@mU$ad_2sGauHY4Q`T8%8fT$UQ{ZlV_+XmPLX!R{}A9g>6Pa|omLT*tR8 zMLdUzs)IqsCVI`Wc=fz@zbUOxHeIIo;hrUVEcL{UL-C%c)IpGyOSVuCsc1J-e2`xM{u^b)MW&#l4es;cEaRdM;f3%52&>E~8P(|e z7_<`54U5#F^t|mNq6p0(j|57NN)duKTEjLp3R$+q{95mSmxbLQ#}{Kv{A1#zSWYx- z?VJy-dK@!x=Qp0>>Em+Gcju5dW1Bsv1shZETQ2Da>;~fb=3p=g>F1GSwED74Z z0FF`o6nMvfFY~>QQ-uLSJ5du}EMjVOorL+yEIoe2z##}V)=>nuGTCH>rQzTtTk4DH zdJ0(L7T}P|E|Z;uB8MCoxYi3W(ubyJd11{YQaZU}L$`UlirqCv!}n)j@9&=L;t!Y_ zfJxF{$vR2LhhPt+GvG3?GdjD))7f}(l>26d5>-uq$HY(R0-}o}G6n?xY9Cnc0OVKG zEofHABYG;K@>Zof47-7TYEG}7CL90-WgV%K*$F;k9;g^X1E`Wo933$1s1RWe|F5g- zlhpX|_ZeRV5i)y%8i&NCZNlnRk_4FtxG5s)bvNT|Q9 zSzXH3cV$u`Lh9++w#|DnO^2CfMw;(&4xJomIxP3vQ2Ke$Ta~5E9CGLi!h}q%T!`kLIE79{K0CtFGQ^;zkYOG2q#qFX2PYJ zl-Kz)V5W+EHj4~Bu(j6$uT!ADjQijO*7%)#*?4{eq~mR~Y|Q3k3*kmoY1~33W1I7T z@_D10bhqv~_hwqTd-&KpG4F#!)weT&F$a@`@D{#ijy-f7U7miVFRKQ#nU4hboyW);^cCP8E;%%N*1Xb}IUPzNz01^< zMnI*210qSyj#tNt57>g`uKOFk3{t#*;hPt|UO`zQ>C(FTlyMp-ZVR1Y#7Glf+lIIs zzeHm^Dg71Ix0)K*1aK?0k2Zwb>@a1&-eWUNvjyJ~S#Qrv3$MfnSd0g~d}>lnG>t6=(9VhH*Bbqa^*0RN{6|BuU}*- zdO~qwik?Au-G~|4I)~q2kEmv;0EHVpi3|EVe4yL2D7ECVq9A%K?gKXvK2vxwUND?$ zmXf>W<0$)3;68BF3biBSP(p)Jklq%AM-+kMKv2FXlniz9Tbm6khy3?anNG8MUmq*tPKqyH;#(LR zQ#+Jq8d+ij7VhVce~?vK_8oh-9wZvJh&y`vTfV8 zZTpmMoU-|qZQHhOp0aJ*cK@q;^_|{X2AO1-WWUcwLM1x!y4Et7$O1de|J;E4ed8zl zN+#^M++_m#Y8*7`;5UBi@J)@HKQ%oIdDZ!VT&dpUwg{>3?2>;_Io%q z{6Rg+$ZjA4^tachH*Ruq-?}`X#yeLiMQzrt_=$d>LT%J(Iy2G?WsO9ZVi3Db{x_yK zp!H(vz#O&9zPHg$QAdYJFDdV4e5iLx=1igb?#t9)Q>=zXI6GV_{MSoIqPMR9HhZG3`9$s#kYzfur3a(X zhQsayaK&$idNA9Pc~9niX}B%x3t1Q#t+0!`^&$|EJxI5a8K0eB{2p~1rAhOmUt==0 zrg5yk48Z9GZ;QMUr3QG+ku$u)U@$r&OPF?n7M7J*+|trP!EVgm*=S+kQZ4yJXIkABH?aGHTQajd?tT0%daLO@ufMoDcpJG z1zyDY%aFAmZj^sHe}MO|THQ4H+smb5Lxkx)*z_}lRz1`$pZZh%>}&NOxb zF5tgxSqX`_uXvT7{Z1969tsv{{pd;u>lq@J>eSWF6FZV~v3qif&e2p(`H}VG`G($W z-a>(jO1E1kbf*mz7Oh(f*k6hBbG8e$RJ!MB>@pk+)bRsHmEgS+1GvDBZazigkZP;e z$O71jA^h}Q!}5cWieTWYUoUby_$_PzSqowInhxBazRT-JOtC`=PpmSpXOYl>OaC4s z3KxE~1(7i5$fFCH!zQSM@)Z+tzPyjs?=sw_7SEuKr5swr!_-69F}*wW^QOFkVPB%< zO~$K!jsLkyvJ8PZnKlp|NqF{nq)U(pWaEd^6mZVzW(Om zNSG4W^@*QX>utW;A-6WQcQ~_yt>^=HGdg>I@!C^9*Vho)5423**8R1gkFNmvYiW-^VXSJ0yQ_ z9h7iLnD+?zFAbu5Itp(KKp7O#UrktpD1Bw*nT;aB-Yu-(=fk}WR|}RL)2dhxN^-Fb zY)f;2Kob&K>9tFGn|uYU-<-@Pi#`3xNqZL}4VW#vio!b3IQU8xE!Rc1IVy6|!p?xT zG7H>MEwWj-5LvJp{0B~iPwa=2gh9@kV;)L*pX4PJzZXSMP9PToP?5_>{5y2fy~Etr z2dKY5HMj%Av`IEs1-88&jC;GCizCuGH;VEV3$!_#glL+1@$~HhAz0#ub&%SRdQRni zWM9k}LT(6#-#I%HzRZ7QMwb_sMa7v(XGhr3B8LzH%f7b~>Lh+ey^#6yxApXkfL7yz z&m)}4d!>0jtOg7YpwW3o1SLmoqeB1M7>#6r%M&rhr%$dxBh8C`Cm=)NFGz(-N5NTB zD2QU46$}A~X_48Z1b+6M=9GLQEtLoU7{O8elHk43^}Sc?B;U^7SzW+iv05nL(5x2l z3;|hnqVR#i&FxbBa_87E* zd9>>pdHSIU8ynM4+e{7DJr<^|KTFFP&?`&OG;*bJY>%8*>zMh=t02z4l{HDpJC!a{(>98AZXx{HW~&SB-XIw7}2*K zLd&)_Q4G}$C?J{RXt%-~>6+Of45zaC{9780b^g~OL=WxXq)2lVV|5PClP@OBPsNtu zV>Kz1yz*A)O~KW)7}VruZ5%!2CD-=V)Gg`MeB47B9G-%Q1d}aty#wM={pW4TZ0!bT z!r&YWeaPu6RkwiVv1{OSpOuT*AO0%~03+RXDGN+SQpUu3&KYY>E{8aRWMvhENS_@+!YrC+%~D zkHz0~KotnF;>RR;q&ws-lTX&Kmg{VsGI_VjZFwx_;r2EF7(aA#I9%>n$bI&OxU7te z)wUAJA_%n$tdF_wNc0|4x2-Py0qGNlgWWUJZrX{P^bxy0~Z%mza3FYU!3W6yQ z(uBlLwx2pihg`z%84{Z|YlYW1k7t03HQH}1)P}D z;xrDl9yDm_#$-4$b%xvMNckI@ApQIIzGQ{V$l#zh8SDnr1@f9L>^kqe4smYeLDV&t z=G03cnebVpq}9_ZF0G!W_hKt|6)718#IjG%@wQ}CUJM4bBKPljU*R zujqlVTSD*xoE==-7pgoZpB6`b2Y7A~>tft)Br0E8cU9uvt%OgCHxWB>uw!)8QzNr9 zAZReb1+}?K6y&8GCRr2TQR+ysced#q$Ff!j6?aKjsrF5f65SAPIU&zrQsc@)#8|iF zW5PhD&ghWe1Qrc1ygx(btBO$W9uOEzA;Q8XxytFns;GPfE$Gk3J=8j$2i$}#c#3&O zniwa?*a}!n#+gj;ku(Vv(o^7Im6a`f;0}54u@4b!l|Se%%A!7VvQE-#VYjCwM~d>W z^avkDns0lQT#pQUmpdBeoSBfrD~Zqz=J4{$u$K@MrdpX{>pF3Oa>4URqr{pG9&zR> z7bq;s#yhc7XU?9BZMKM0046ROtA^>p{XNy@m?DAqjAV_0@dn0Eq(`p=0o-Sw;6}3cKfan93`mm& zY**I4EC&aCVfZWAcZcNLuDC^nu#_ms^WdCl&FQa6F1c`nyDrtk9*GpxR38-@@~kz5 z#U1(P4ezJr*R6TQedV=#mGgs&xx56v9oDN+E8@s{)y5;9fLRX@Qb8Hw5dlvjZaMHJks+Ctk8Zl$M)jSXYo%nhm=|c$PWk1Y3!>(E5SC ziZM}XQmQQ501~*EFz5`SQi(S<$S8VjR`$dfEdta_EQ5=O=f_*Vtls94KUi?Eizp8C zfihA1%y4X7dW)gE(Zhm1IaRzr3&Z4HNg$!X$K_Kn$Kh0*2_|ozJALji)8M=}pLnFW zoT+N|8>Uc;x2cMTDt#*)ZfL6w@yzy1_(rw6;x$U z;DE?@y@49DFEb-INAc-0^2Orf3L=V~Rp5}9(L<7W$GK;(v(zx$5`94JI&7WDr{Q?@ zD%|iABIt_ljqEm({vf=bp=v+&=nM8rSW^g6!hp@{eV10Ekl=s% z+w%q;(a9jmj=KBeVxXC1(r=MW^n;tLnL?-ypdai@Sn8vsizTOyBf+_$i*J!Y3-U(4k1q z3R%1=T1;W+q2ycqfF1YPZk8aTlx{dLquMxRnx1Cm=e5Pc&X&h%3VK&^n+B>a`#PBy z5Vr+yet1fNFp>&uDWGx;s7T>yKGqt(qTp9Zl_tMNmWuHrHzpi4ZCwj?pNrkSd3*Y~ zjfif`d(OVdc2mA1j!7G=PyxvuWptL43TOd6uaYzgR5GY?z$&*di+?6L{Im3p871a5 zj~JvSaKPxRgj;BL5fNjO8eVr)CI0UOkT#Ncm{HE%pxsUfPC&>}8k?2BUCv&S*+^?S z;B?dVoW?h2qKdF70nBhi2FBy?$z=Q{)5V&&jM`UgBXZZPb>`!E84=pfO5*9Z?;4|r z0_7aZ@mx5Zo9;`G#$(mExQPI)M9bCs>UlYn|4`Pme$p9aG?+PUH*qOhAb#cs_?ZzR zB2VTXzpijCvHy28SUOww__Gq1{jY$2vlX}c9eu0K7(lc(c1N?cc_O!-Y^S+ckPCoRM_pOdj*C9%{~<-%~1fFB|f_XlAjcj|)k zS7Bja>#Hi6dlIk;Ag#W-VZsURVNNU-o7(_ly(SaUAT>-$*MeP7JeZn`d%GXZ3@zk2m8 z`j|5Y?SW(oaED1)V$Xq&;G^3Wjde99prpSId%VA6a7H?SkrHcjkh zEuVJien)JufJ_tR?Y9dMz>AjcMvU}Z*!NRg3fz~<#&CY2Q0#&Ob{p>X;GX}B7|X*G zZ757t_aV~a-I7{Wln#uUC#&}f%%G!`{8OC@JCIH<36G4i(I->PYskc@#T4%Tlyd6m6RMMXH=V4T{!K@n6-wd!1xYGg-gVtSNQlZ%B zj2)6Xii1Il=7Ae15UTZ!`H<%}@Kp~dot}BY(P+M-tv;aahdh+zFPy^KUL|+^ip5UZ zOTvfB9;yN#sP;J1%4jxL)03&+JSk$GfCz{>EXT1sIF~c*LU_B#;;U9W5d!$PsN8aU zYZY^+v`7js-MgCuSmP-G%)8u^CBBpH$w-j~XSP>GSK;8@m1D&@mD)Aos~q4VwBJ*! z`AGsYRh{VC#hHdaNvQPnhl~Lh5utN?iw9)R5l&KT^X$D*`m~2Y?iymLyhaInjSnTW z8X*b0bjQy&vjWN}gB%SK#|Gkvyj>k+g|b;4xd1 zSCUn!8H96s%BMD6uaI8wV9ev}`FACK1h#wmduwf%4w)V{jRH3}?FZY^I1)b*uY_Ys zS^xdSkOk!q7S$C{57$e5`E{C$0JblUU=-S!>kM{?iU}h(iV3SW;~W%Wmbk_n0?6t^_3P?6|KIy7Zs+sSXBGboAQ85ygtdg!NzXmB0C|ho0;a8QyD@uOWYu^(ZGMl zJT14&VYY_^;}NlWU1{FFmPvs3y(3{9FN{u*JDu43vh$S{tU6}gI4gxb^JF`q9!n5_ zx5c*Yv9Ou)#>_R#Hb`@y=3+owsXPL(Cg+RGcG!Q(P|97f`3=sJ@Onl7*zTb-L@AWz#tP*m$!I(h$d140Y&5s1#a+H`&` zyPh2$r-Kj`IxGdlpwNL2al7(PYtxFjM>4lzy{a|0 zN~(9;;PfkLmNJ4_;J2p3G~43frvd((sac>kQcf%aG0C@jIQ=i^vngE@W^sN4RZp~1 zfP<+S5^+Cm3r?Vz5e!TKg+dr6Tz zS5DG@t0ok-(1wof=!6RY=m=Y)JGG>PhKAm1YI$>w^UsFL|Btg5)by<51 z4inWj@39Pxr90Fr3bqDB+S<$DGfIfnoGB-HZL8BX=9UQ>=a6SJsv($;rmSpi@$#1y z6K!~S^@GvT7*X@+EkxQvV(%`oS7Z1?BTK0G;>@^TTPG;1KiW4rIr0X7`1{SlJ>52f zP?F@5pu{Ni<@bL3(G%}Sl!ut-TXZGbpH*iZn8eW}5|d)>QWF6Zr=$sqnH(@56Y!!% zu1pyy%gR%s-?~uw4zg%|)xZ3=O$#3Do#wdE`Vuv!-dY$PKt+r0}l_W>70UgZ%K0ye6J}dXP-=UP!|l1vTOz zyz1kq+hBRu6pjI}Q2IGSelbElwWb^^_Thr@y?t-7`Bc`dlbL{Iwm@sR4-Ae44H{#q zFrq+*C>j$MSp@;sdhc!BU~kcjy~LGKpCWgGfdVzP51@8ANi9j&Ei^{4&hR^tAiOyV zZQDpi+WIOr5ONrH+=2(eq%g)vDKq8w9DS9)XH~W6N-TiBeAgfxGEQmACXzx(DWnZ_ z{x|AA*#H^Z1Z7Yh?HqamKK53sIYYG>#_SSaB)IFOMa1CXeWC){EPvgi#VSSzoMtS0 z+eyU7Blk_EyZ)HPFhWum8gl}(ULVw;_H;z39LNs@m8dY2iA^UtuolEQU3Q)DL7slL z2^*)n`4j+ds{K1dy98ZpWouz}e2u+=VdWj%Ss_T4*bYj6sKiPMT;F!lY*QkF{Afcas`eG`^n0SN`5b&9GZ(B8nY(t(`U5j@uA!&snkm4Go;FFuSd45 zjz|B3*{P%njFR%zLM34<#Wn+k0)ib;JWF;B(wH9x?0lq|mEP4C0SOg)=Bu0SuOmOb zmNZ~f_2e^Ay3WryG3Vlh_Xb9Ji@Kt=m@rmT2Hs$aa>}N4`zR zw?eI~2b6E7_A5&jyXr?TnybJLK8DoDWCk!>k!F180~BiDO5lCWuRy2c*|-~P+RY9$ z9aC*`up-|xJ21-(VW}HS$Ww;gDd-xjo|f|mj4VXA*{OhEJDedvfq&P$9jglc!Tn!K zZ3%YUy8NC|&2~Xi-lml9$ovzzS;?@boy8)&2sPZo-#2D^f#eaUXPG5PAvuw})mp$H zM@(e++$Sr@ykqg&)*mNpSQxH+IRVEEgEUXp@{!`AE)1() ze(raTiE?u*(!m$oZ?+nVBbl2=jw1cNth6$ zkt#1Y-fA8}@uS)(H$o|GI~d~z$4k^N26VfKR3==nBL(j*YA~@!F#8;DZsqhMmt5UZ8D3;<@>IY>l z_SV7!jALKt2tu&Ti3980N?~Ml$E)W3Pv6LOm!digx zM?o-AD+;cUqY%((UE5Lgmua_^hx1Ey>GT9amUJ6VSnQykkeLo$o{5&H%tcS>1FZl6`ahT(8DCiVbi1x{L*K*5z6TU2>Y1yeHcFOX!DU zsKBFX6 zgch%5%POX&GpSeVDl7Pz8L6Pgu(~&o-K)I4E{>-(K_Dm1aR7|p2KKy8Kr>Pt(}Gnp zJ*~!KYAr<5v2770jld|FzWa}O<~}j}c?i?qHa1fIr|D$ZnO!9JWwd@Uzwzzml zvEamlYRQ8Yd8^m$f(SXsHsRq)3bMgNO5lqx&WjcSfoL-~RC)dFDe21*ot%k%X|W~x zgz;5`71dWCY&dh{Dz-OUZ$x4WpL?O%N)m@U;z5Ug%>hWs4|W-;lsBOw2hsi*Iqs(H zbo&%MWeM|>TF;w3WUdm)_gp`a_z$aFEugJz52F_JzVys#_J>yU^vjpZ5r-+01$p** z^4=O2a;&mV0*d*jVo=KY2RmG=B3^%rZ(9QW&zDg!WomCfwM%&+^|gDlEm3QNDocOiZKDV^BP2td+RP(sDd}itp~)~_Qx!g#5EAt z>yqdVF#}QK4jAnS(^3rRWjv^E`wA833`N`&`5%B0^&qS)%3P5;1FZXh66B@)wZ-a(u9=X8-jB0KSh@;N3v-)ewlK%Q^B{AwT>f3?QQ?U z7aT&-qj4z^&H5g!WP>{=F;&M8v2Q3)B702^g678w)@+U5zj81U{P;3Lxcf#p$ip!{ z8@m8XB^j~Ae{;o;Bu1i&TW->s+xib z^TiGWF6&A*&ZqmF z7Mt2aE0Yf`yh0;rVLRaBd4D}7N4=d8Sb4!7PMKqZN7Dv{JBe~`N}sg`Oaw%5uut)-Lp-)k^DvSk$$ODrWmGmc|uQC(WcQ9PY90 zd`MLkg;cN9rrM?_QwCVv^+*$eiEtZ_TnpxhN-Htk2eHc%cNiy8x7qgpWr@qUl z%QW&t`j&A;aSEm`9t=2nJn`Y9bZVXpCx^*C9du0YMz%YhLJOeTgGvrQ2kDgeYi6Sc z(q&%y#r7+z5)N&5s*3py7U2|+FUdZ`_;lr{c-}Crm$dNr@&wU83PJ&J-Yg^dF-1to zwnCsJz+{6#+bKH|Nl-Ook;`dPv@@JyI`eZE^>xFL8*w|yKG-_bJl`6agINC^ad*Po z=^{>S4BKLE8`EkOzRWM&mayXgJYRPYU%&_Dn{Eo@%$#=T@`)A?u<=AlA({^?G-(!y zQ+xD0FX(^Kz>ALUO5y{6BV*a*V^oTt;$M`Gm9FW_K=xcu)-Th^SKU3V&JAQM5TMk^ ze_aoV{OUU}KK~#+w@o=WII#VlA?FCsCXaw(hh`)Xr+S@6gatVVHRJ@OY0RY>`zAYZ zSzaXK!5l?qiYlh~S-|%_@9CaAmT3K>&c<@d>PEX)jfEoZ#7PAlltJr`PLZlpbvv?* z#c|h8kHKQ#TPxWz*3Wk@lh3IrFepWFT0H08R+Fqsk(V}@F$@fsLq1UWZBd~xi%RI0 z3i>*)3V%o$cjnp{PlZX8de;84Uo)AkogmaBa5PMqstKov#~Bs?@~5?a2N{{}Nt;od zqDoKk*VOGH+(ZV*-(^~3+6Zh@)@8l2K8#q9a3!1sL!k<6h}hcKR&D{}6{75Ro~8rk zAoX{ftkk`KQN7JCTUlwxkP0T$Tg(Q| zx?I}z*U-W!CRLpG$Y>JYZq|;x=wCuN#1Cy&8)QY5IPC#v5e?EhD(Dk!%lK0GLlSov z+O(@V{d#{xfrqs|&}E1_Xh{B^B781o?=_`N!4vO90!%>_iGrB~^V`88UCq_2| z*C+uPr@k$-Hk=UeRQXC0cN*gNWCKR`Iu8Vf;$tBjwT{klxsZzwbt*?6Eykri4^ZLC zz$zR6RDS4dv?DG|5dW2WCyLsrvNB@)_p+w2`V1(aTtkvX>iIp6pnG+-BN6_B+zV4W zNiKO6ol?ADYg)}io^Ejlz9<~PIx!gW?kEJ*pFs(i4hLxTD(2C&EI&jSar3o9MWyx{{}x@s-qv$^E8|9%82BU=J+q9xUc?5KEs}#4H+4{5-c0JMZXH%z9A*WA`t;X z-IZ2d-{t8{C?~iz_m*dkm6e!PcW�{Ak4OPb+*ok0)Qvbi_3shSXykd&3lQt&IkU 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 delta 33213 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

HQgdrN`j;?_@?9n>%8X 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 diff --git a/EXP-units/expunits.tex b/EXP-units/expunits.tex index 1a18ea6..d2a3d82 100644 --- a/EXP-units/expunits.tex +++ b/EXP-units/expunits.tex @@ -44,10 +44,11 @@ \section{Dimensional constraint for \(G\) and the core relation} \] Requiring \(G_{\rm new}=1\) gives the central constraint \[\boxed{ \; s_M = s_L\,s_V^{2}/G_{\rm old}\; }.\] - -These formulas give my usual recommendation to Gadget users: keep -length, velocity, and time units the same and scale your mass by -\(G_{old}\) (see eq. \ref{eq:scaledunits}). +As a simple example, my usual recommendation to Gadget users is to +keep their familiar length scale, velocity scale and time scale, and +multiple the particle masses by \(G_{\rm old}\). Using these +relations, we have \(s_L=s_V=s_T=1\) and \(s_M = 1/G_{\rm old}\) (see +eq. \ref{eq:scaledunits}). \section{Conversion formulas (apply to each particle)} From ca21fb27f764daf5300719c792fd08d352383926 Mon Sep 17 00:00:00 2001 From: Martin Weinberg Date: Wed, 21 Jan 2026 19:04:18 -0500 Subject: [PATCH 20/31] Update EXP-units/expunits.py Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- EXP-units/expunits.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/EXP-units/expunits.py b/EXP-units/expunits.py index 2a799f2..d5bdcb5 100644 --- a/EXP-units/expunits.py +++ b/EXP-units/expunits.py @@ -217,6 +217,8 @@ def compute_and_maybe_convert(args): raise SystemExit("old-mass cannot be zero.") if args.new_mass == 0: raise SystemExit("new-mass cannot be zero.") + if args.new_mass == 0: + raise SystemExit("new-mass cannot be zero.") s_M = args.new_mass / args.old_mass if args.old_velocity is not None and args.new_velocity is not None: From c82ec51ab8f80a0448f14536426b7d87592690b2 Mon Sep 17 00:00:00 2001 From: Martin Weinberg Date: Wed, 21 Jan 2026 19:09:24 -0500 Subject: [PATCH 21/31] Update EXP-units/expunits.py Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- EXP-units/expunits.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/EXP-units/expunits.py b/EXP-units/expunits.py index d5bdcb5..9d1303f 100644 --- a/EXP-units/expunits.py +++ b/EXP-units/expunits.py @@ -226,6 +226,8 @@ def compute_and_maybe_convert(args): raise SystemExit("old-velocity cannot be zero.") if args.new_velocity == 0: raise SystemExit("new-velocity cannot be zero.") + if args.new_velocity == 0: + raise SystemExit("new-velocity cannot be zero.") s_V = args.new_velocity / args.old_velocity # Compute missing scale(s) From e9044767b8ed269cb89541978710aa3bb1fcf585 Mon Sep 17 00:00:00 2001 From: "Martin D. Weinberg" Date: Wed, 21 Jan 2026 19:10:09 -0500 Subject: [PATCH 22/31] Rename directory --- {EXP-units => Units}/README.md | 0 {EXP-units => Units}/earth_sun_cgs.txt | 0 {EXP-units => Units}/earth_sun_scaled.txt | 0 {EXP-units => Units}/expunits.pdf | Bin {EXP-units => Units}/expunits.py | 0 {EXP-units => Units}/expunits.tex | 0 6 files changed, 0 insertions(+), 0 deletions(-) rename {EXP-units => Units}/README.md (100%) rename {EXP-units => Units}/earth_sun_cgs.txt (100%) rename {EXP-units => Units}/earth_sun_scaled.txt (100%) rename {EXP-units => Units}/expunits.pdf (100%) rename {EXP-units => Units}/expunits.py (100%) rename {EXP-units => Units}/expunits.tex (100%) diff --git a/EXP-units/README.md b/Units/README.md similarity index 100% rename from EXP-units/README.md rename to Units/README.md diff --git a/EXP-units/earth_sun_cgs.txt b/Units/earth_sun_cgs.txt similarity index 100% rename from EXP-units/earth_sun_cgs.txt rename to Units/earth_sun_cgs.txt diff --git a/EXP-units/earth_sun_scaled.txt b/Units/earth_sun_scaled.txt similarity index 100% rename from EXP-units/earth_sun_scaled.txt rename to Units/earth_sun_scaled.txt diff --git a/EXP-units/expunits.pdf b/Units/expunits.pdf similarity index 100% rename from EXP-units/expunits.pdf rename to Units/expunits.pdf diff --git a/EXP-units/expunits.py b/Units/expunits.py similarity index 100% rename from EXP-units/expunits.py rename to Units/expunits.py diff --git a/EXP-units/expunits.tex b/Units/expunits.tex similarity index 100% rename from EXP-units/expunits.tex rename to Units/expunits.tex From af311efec0d1ae76df990b2ce6aca029cdc0c800 Mon Sep 17 00:00:00 2001 From: Martin Weinberg Date: Wed, 21 Jan 2026 19:13:17 -0500 Subject: [PATCH 23/31] Update README with additional files and examples --- Units/README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Units/README.md b/Units/README.md index 658e264..8d1824a 100644 --- a/Units/README.md +++ b/Units/README.md @@ -11,9 +11,11 @@ Many N-body simulation codes, including EXP, work most efficiently when the grav |earth_sun_cgs.txt | two-particle file (Sun + Earth) in CGS units | |earth_sun_scaled.txt | expected converted file in scaled units (AU, M_sun, v'=1) | | expunits.py | conversion script (compute scales + optional conversion) | +| expunits.tex | description of unit scaling formulae used in the script | +| expunits.pdf | PDF document produced by: 'pdflatex expunits.tex' | |README.md | this file | -## Quick reproduction +## Quick example - The Python3 script requires numpy (e.g. pip install numpy). From 2cc793a786df6645c2295e788a9f3dc61ef3a738 Mon Sep 17 00:00:00 2001 From: Martin Weinberg Date: Wed, 21 Jan 2026 19:39:02 -0500 Subject: [PATCH 24/31] Update README with phase-space conversion details Added details about phase-space conversion and provided a Python script for unit conversion. --- Units/README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Units/README.md b/Units/README.md index 8d1824a..59e7b78 100644 --- a/Units/README.md +++ b/Units/README.md @@ -4,6 +4,8 @@ Many N-body simulation codes, including EXP, work most efficiently when the gravitational constant G is set to 1 in the simulation units. This directory provides tools and examples for converting physical data (e.g., in CGS or astronomical units) to a scaled unit system where G=1, which simplifies equations of motion and improves numerical stability. +We provide a brief derivation of phase-space conversion formulae to convert from an arbitrary set of custom units with a particular value of gravitational constant G to a new set of optionally scaled units with G=1. We provide a Python script to compute unit-scale factors and optionally convert a 7-column (m, x, y, z, u, v, w) phase-space particle file. We provide a simple example described below. + ## This directory contains: | File | Contents | From ed125fb2222b21a3d9e5d2a0499246f86374c1c1 Mon Sep 17 00:00:00 2001 From: Martin Weinberg Date: Wed, 21 Jan 2026 19:40:01 -0500 Subject: [PATCH 25/31] Revise README for EXP unit conversion details Updated README to reflect focus on EXP unit conversion for G=1 and clarified example context. --- Units/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Units/README.md b/Units/README.md index 59e7b78..47abecb 100644 --- a/Units/README.md +++ b/Units/README.md @@ -1,10 +1,10 @@ -# Example unit conversion files (Earth–Sun) +# EXP unit conversion for G=1 ## Motivation Many N-body simulation codes, including EXP, work most efficiently when the gravitational constant G is set to 1 in the simulation units. This directory provides tools and examples for converting physical data (e.g., in CGS or astronomical units) to a scaled unit system where G=1, which simplifies equations of motion and improves numerical stability. -We provide a brief derivation of phase-space conversion formulae to convert from an arbitrary set of custom units with a particular value of gravitational constant G to a new set of optionally scaled units with G=1. We provide a Python script to compute unit-scale factors and optionally convert a 7-column (m, x, y, z, u, v, w) phase-space particle file. We provide a simple example described below. +We provide a brief derivation of phase-space conversion formulae to convert from an arbitrary set of custom units with a particular value of gravitational constant G to a new set of optionally scaled units with G=1. We provide a Python script to compute unit-scale factors and optionally convert a 7-column (m, x, y, z, u, v, w) phase-space particle file. We provide a simple example described below based on the Earth-Sun two-body system. ## This directory contains: From 6aaf3269f64497cb937413ef82c2c9847ebfbed6 Mon Sep 17 00:00:00 2001 From: Martin Weinberg Date: Wed, 21 Jan 2026 19:54:22 -0500 Subject: [PATCH 26/31] Revise example commands and explanations in README Updated example commands and explanations in README.md for clarity. --- Units/README.md | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/Units/README.md b/Units/README.md index 47abecb..2e04ca3 100644 --- a/Units/README.md +++ b/Units/README.md @@ -19,23 +19,21 @@ We provide a brief derivation of phase-space conversion formulae to convert from ## Quick example -- The Python3 script requires numpy (e.g. pip install numpy). - -- From this directory, run: - -- python3 expunits.py --old-length 1 --new-length 1.495978707e13 --old-mass 1 --new-mass 1.98847e33 --G_old 6.67430e-8 --G_new 1 --infile earth_sun_cgs.txt --outfile earth_sun_scaled_by_script.txt --print-scales --sci +- The Python3 script requires numpy (e.g. pip install numpy) +- A Gadget example. From this directory run: ```python3 expunits.py --preset gadget --new-length 300 --new-mass 1e12 --G_new 1 --print-scales``` The result will be the set of scaling factors: ```s_L = 300.0 s_V = 119.73178358314053 s_M = 100.0``` that you would use to divide your Gadget input to get EXP input. Note that time scale scaling is ```s_T = s_L/s_V = 2.51```, or one new system time unit is 1/2.51 Gyr +- To run the Earth-Sun example run: ```python3 expunits.py --old-length 1 --new-length 1.495978707e13 --old-mass 1 --new-mass 1.98847e33 --G_old 6.67430e-8 --G_new 1 --infile earth_sun_cgs.txt --outfile earth_sun_scaled_by_script.txt --print-scales --sci```. See the details below for more explanation. ### Explanation of flags -- --old-length 1 and --new-length 1.495978707e13: Interpret old-length unit = 1 cm, new-length unit = 1 AU = 1.495978707e13 cm, so s_L = new_length / old_length = 1.495978707e13. -- --old-mass 1 and --new-mass 1.98847e33: Interpret old-mass unit = 1 g, new-mass unit = 1 M_sun = 1.98847e33 g, so s_M = 1.98847e33. -- --G_old 6.67430e-8 is the cgs gravitational constant (cm^3 g^-1 s^-2). -- --G_new 1 requests that numeric G in the new numeric units equals 1. -- The script computes s_V from the relation s_M = s_L * s_V^2 * (G_new/G_old). Thus V_new (the new velocity unit) is chosen so that v_earth_old / s_V = 1.0. +- ```--old-length 1``` and ```--new-length 1.495978707e13```: Interpret old-length unit = 1 cm, new-length unit = 1 AU = 1.495978707e13 cm, so s_L = new_length / old_length = 1.495978707e13. +- ```--old-mass 1``` and ```--new-mass 1.98847e33```: Interpret old-mass unit = 1 g, new-mass unit = 1 M_sun = 1.98847e33 g, so s_M = 1.98847e33. +- ```--G_old 6.67430e-8``` is the cgs gravitational constant (cm^3 g^-1 s^-2). +- ```--G_new 1``` requests that numeric G in the new numeric units equals 1. +- The script computes ```s_V``` from the relation ```s_M = s_L * s_V^2 * (G_new/G_old)```. Thus ```V_new``` (the new velocity unit) is chosen so that ```v_earth_old / s_V = 1.0```. ## Expected checks -The script prints s_L, s_V, s_M. +The script prints ```s_L, s_V, s_M```. Expected approximate values: s_L ≈ 1.4959787e13 s_M ≈ 1.98847e33 s_V ≈ 2.978e6 (cm/s per one new velocity unit) From 844c36ec553d27a9f6bfe7209a4088055e38b9d5 Mon Sep 17 00:00:00 2001 From: Martin Weinberg Date: Wed, 21 Jan 2026 20:41:47 -0500 Subject: [PATCH 27/31] Update README for example usage section --- Units/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Units/README.md b/Units/README.md index 2e04ca3..f9a66de 100644 --- a/Units/README.md +++ b/Units/README.md @@ -17,7 +17,7 @@ We provide a brief derivation of phase-space conversion formulae to convert from | expunits.pdf | PDF document produced by: 'pdflatex expunits.tex' | |README.md | this file | -## Quick example +## Example usage - The Python3 script requires numpy (e.g. pip install numpy) - A Gadget example. From this directory run: ```python3 expunits.py --preset gadget --new-length 300 --new-mass 1e12 --G_new 1 --print-scales``` The result will be the set of scaling factors: ```s_L = 300.0 s_V = 119.73178358314053 s_M = 100.0``` that you would use to divide your Gadget input to get EXP input. Note that time scale scaling is ```s_T = s_L/s_V = 2.51```, or one new system time unit is 1/2.51 Gyr From b484a7ce98ec2bfa00c8b1d3417ad2c3106a8d3e Mon Sep 17 00:00:00 2001 From: Martin Weinberg Date: Wed, 21 Jan 2026 20:44:47 -0500 Subject: [PATCH 28/31] Revise README for clarity on checks and outputs Updated section headers and clarified output descriptions. --- Units/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Units/README.md b/Units/README.md index f9a66de..7709887 100644 --- a/Units/README.md +++ b/Units/README.md @@ -31,9 +31,9 @@ We provide a brief derivation of phase-space conversion formulae to convert from - ```--G_new 1``` requests that numeric G in the new numeric units equals 1. - The script computes ```s_V``` from the relation ```s_M = s_L * s_V^2 * (G_new/G_old)```. Thus ```V_new``` (the new velocity unit) is chosen so that ```v_earth_old / s_V = 1.0```. -## Expected checks +## Checks -The script prints ```s_L, s_V, s_M```. +The script prints the scaling factors ```s_L, s_V, s_M```. Expected approximate values: s_L ≈ 1.4959787e13 s_M ≈ 1.98847e33 s_V ≈ 2.978e6 (cm/s per one new velocity unit) From 18d31b1deb40342ff2aabea7dd1822d9115a7b92 Mon Sep 17 00:00:00 2001 From: "Martin D. Weinberg" Date: Wed, 21 Jan 2026 22:48:26 -0500 Subject: [PATCH 29/31] A few minor changes to comments after a read through --- Units/expunits.py | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/Units/expunits.py b/Units/expunits.py index 9d1303f..e7ae0e8 100644 --- a/Units/expunits.py +++ b/Units/expunits.py @@ -1,17 +1,22 @@ #!/usr/bin/env python3 -""" -expunits.py +"""expunits.py -General unit-scale calculator & optional particle-file converter. +EXP unit-scale calculator & optional particle-file converter. -Core relation (general): +The core relation: G_new = G_old * s_M / (s_L * s_V^2) -so + +leads to three formulae for missing scale factor: s_M = s_L * s_V^2 * G_new / G_old s_V = sqrt( s_M * G_old / (s_L * G_new) ) s_L = s_M * G_old / (s_V^2 * G_new) +This script computes the scale factors s_L, s_V, s_M consistent with +the core relation, given G_old, G_new and any two of the scale +factors. That's it. + Command-line usage notes: + - Provide old/new unit definitions in *the same physical units* (e.g. both lengths in kpc, both masses in Msun). @@ -57,7 +62,8 @@ - Units must be given in the same physical system for old/new comparisons. - Example: + Examples: + * If you treat lengths in kpc, give both --old-length and --new-length in kpc. * If you use Msun for mass give both --old-mass and --new-mass in Msun. @@ -65,7 +71,8 @@ - If you use a preset (--preset gadget or --preset bonsai) the preset sets old-length, old-mass, and G_old unless you override them on the command line. -- The script is defensive: +- The script needs enough information to compute all three scale factors + (s_L, s_V, s_M): * You must supply at least two old/new pairs (so the third scale can be calculated from the G relation) From 442eff24c8e3bdbfe4cf29a73a484e8a10cde8d5 Mon Sep 17 00:00:00 2001 From: Martin Weinberg Date: Thu, 22 Jan 2026 09:03:47 -0500 Subject: [PATCH 30/31] Enhance README with detailed examples and flags Updated example usage and detailed explanation of flags in README. --- Units/README.md | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/Units/README.md b/Units/README.md index 7709887..5e632fd 100644 --- a/Units/README.md +++ b/Units/README.md @@ -20,10 +20,23 @@ We provide a brief derivation of phase-space conversion formulae to convert from ## Example usage - The Python3 script requires numpy (e.g. pip install numpy) -- A Gadget example. From this directory run: ```python3 expunits.py --preset gadget --new-length 300 --new-mass 1e12 --G_new 1 --print-scales``` The result will be the set of scaling factors: ```s_L = 300.0 s_V = 119.73178358314053 s_M = 100.0``` that you would use to divide your Gadget input to get EXP input. Note that time scale scaling is ```s_T = s_L/s_V = 2.51```, or one new system time unit is 1/2.51 Gyr -- To run the Earth-Sun example run: ```python3 expunits.py --old-length 1 --new-length 1.495978707e13 --old-mass 1 --new-mass 1.98847e33 --G_old 6.67430e-8 --G_new 1 --infile earth_sun_cgs.txt --outfile earth_sun_scaled_by_script.txt --print-scales --sci```. See the details below for more explanation. +- A Gadget example. To get a conversion from traditional Gadget units to Milky-Way-like virial units, run: -### Explanation of flags + python3 expunits.py --preset gadget --new-length 300 --new-mass 1e12 --G_new 1 --print-scales + + The output will be the set of scaling factors: + + s_L = 300.0 s_V = 119.73178358314053 s_M = 100.0 + + that you would use to divide your Gadget input to get EXP input. The unit values use the same physical units as the old values. Since Gadget length units are kpc and mass units are 1e10 Msun, we specify the new unit values in those physical units. Note that time scale scaling is ```s_T = s_L/s_V = 2.51```, or one new system time unit is 1/2.51 Gyr. Note that the ```---preset gadget``` flag is a mnenonic for ```--old-length 1 --old-mass 1e10 --G_old 43007.1```. + +## A complete example using the Earth-Sun system + +The following command line converts from cgs to a set of natural units where length is AU and mass is in solar masses: + + python3 expunits.py --old-length 1 --new-length 1.495978707e13 --old-mass 1 --new-mass 1.98847e33 --G_old 6.67430e-8 --G_new 1 --infile earth_sun_cgs.txt --outfile earth_sun_scaled_by_script.txt --print-scales --sci + +### Detailed explanation of flags - ```--old-length 1``` and ```--new-length 1.495978707e13```: Interpret old-length unit = 1 cm, new-length unit = 1 AU = 1.495978707e13 cm, so s_L = new_length / old_length = 1.495978707e13. - ```--old-mass 1``` and ```--new-mass 1.98847e33```: Interpret old-mass unit = 1 g, new-mass unit = 1 M_sun = 1.98847e33 g, so s_M = 1.98847e33. @@ -31,7 +44,7 @@ We provide a brief derivation of phase-space conversion formulae to convert from - ```--G_new 1``` requests that numeric G in the new numeric units equals 1. - The script computes ```s_V``` from the relation ```s_M = s_L * s_V^2 * (G_new/G_old)```. Thus ```V_new``` (the new velocity unit) is chosen so that ```v_earth_old / s_V = 1.0```. -## Checks +### Checks The script prints the scaling factors ```s_L, s_V, s_M```. From 0a6d78de484c11c38a7950ada2ebab72f2ccdeba Mon Sep 17 00:00:00 2001 From: Martin Weinberg Date: Thu, 22 Jan 2026 09:06:33 -0500 Subject: [PATCH 31/31] Add Units utility description to README --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b966dd8..0ff9979 100644 --- a/README.md +++ b/README.md @@ -12,6 +12,7 @@ These four directories provide some N-body initial conditions, configuration and | Nbody/data | Example output files for sanity checking and for some of the pyEXP tutorials | | Halo | A modest spherical NFW halo model with no disk, designed to provide a reference simulation for benchmarking the performance of EXP | | Cube | An example of the pedagogical periodic cube model | +| Units | A utility for converting N-body phase space for use with EXP with G=1 | ## References