# Ram pressure: five fixed slices and a static restoring-force reference

This standalone scientific package contains our own synthetic gas slices,
small global band integrals and independent Python diagnostics. It does not
include a browser Engine, original SSP spectrum/FITS, paper or author code.

## Run offline

Use Python 3.12 with NumPy and SciPy. If needed, install the versions in
`requirements.txt` in your own virtual environment. The calculation itself
makes no HTTP requests and does not install packages.

```
python recompute.py --out recomputed.json
```

The program reads `inputs/fixed-slices.json`, independently evaluates binding,
disk-volume mass/SFR, maximum vertical restoring acceleration and g-r from
own band luminosities, compares with `expected.json`, and writes results.
It does not integrate new gas trajectories or perform a new SSP convolution.

## Exact inputs and meanings

Five slices: q0 at frames49,64,128 (model times-2.34375,150,800Myr), and q2.72
and q4 at frame79 (302.34375Myr). Every slice retains all64x13 Float64 values
as decimal JSON with exact roundtrip precision and the original full-record
and source-archive SHA-256. These are our synthetic records, not observations.
Fields are x,y,z in kpc; vx,vy,vz in kpc/Myr; windWork,dissipated,windInput and
birthEnergy in solar-mass*kpc^2/Myr^2; gasMass,birthMass in solar masses;
birthAngularMomentum in solar-mass*kpc^2/Myr. Common arrays contain initial
radius, mass and fixed area in kpc, solar masses and kpc^2.

The disk volume is R<=16kpc and |z|<=1kpc. Positive specific kinetic plus fixed
external potential energy means currently unbound. Outside disk and unbound
are different tests. The potential zero is at infinity. Birth energies and
angular momenta are inventories; newborn-star positions are not computed.

The wind incident density is sampled once at the galaxy COM and applied
uniformly to every sheet, including the far tail. q4 has zero COM input but
does not imply the whole atmosphere is vacuum. Gas consumes exponentially
with a2000Myr timescale and zero returned mass. Global SFR is q-independent;
only disk-volume SFR responds to the location of gas.

`criterion.py` searches fixed-R positive-height acceleration maxima on
256/512 log grids and refines each local bracket. The height search extends
to10000kpc with an analytic tail bound. A512/1024 comparison was separately
checked during preparation. Pressure references use initial columns and
initial columns multiplied by exp(-500/2000) for the nominal pressure-peak
time. These are local quasi-static force references; they are not a finite-
pulse mass-loss prediction, a unique stripping radius or an escape boundary.
The actual trajectories move radially and consume gas while wind acts.
An independent acceleration-work integral and isolated Plummer maximum test
check the potential/force convention.

The population subset contains two input histories, three Calzetti foreground
screens and four exact native ages0,325,650,1300Myr, with five own u/g/r/i/z
band luminosities. Values are global, q-null and per the fixed BC03/EzGal
input convention. The650Myr shutdown is separately specified. The package
recomputes band colour ratios, not the native spectrum convolution. No band
value is assigned to a disk or tail position.

Scientific background: Koppen et al., arXiv:1806.05887v1. Read the accompanying
bilingual course for the impulse/static distinction and the fixed input
population assumptions. Original source distribution/dependency notices
remain with the Lab; these files are original scientific code and results.

## 中文说明

在独立文件夹内运行 `python recompute.py --out recomputed.json`。程序离线读取五份
自有合成切片，重算盘域、束缚、恒星形成率、静态最大恢复力和给定波段的全局颜色。
它没有积分新轨迹，也没有重新卷积原恒星谱。JSON保留每片层全部十三字段和来源身份。
静态压力曲线只是固定半径处的准静态参照；有限风压脉冲中的离盘、回落与逃逸仍要
跟随整段运动判断。全局颜色使用另设的形成历史和尘幕，不给尾部上色。
