14 个版本
0.2.0 | 2022 年 6 月 1 日 |
---|---|
0.1.7 | 2021 年 11 月 25 日 |
0.1.6 | 2021 年 10 月 26 日 |
0.1.4 | 2020 年 10 月 6 日 |
0.0.2 |
|
在 科学 类别中排名 161
430KB
2.5K SLoC
Accrete.rs
Rust 版的 Accrete,行星系统生成算法。基于 Stephen H. Dole 的《通过聚集形成行星系统:计算机模拟》。在过去 50 年中,许多有才华的人对其进行了改进和扩展(这里有一个很好的概述,下面还有简短的历史介绍)。这个版本的 Accrete 可以用于生成可能的行星系统。
特性
- 从原始 Accrete 生成行星系统。
- 从 Starform / Stargen 生成星球环境。
- 生成卫星和环。
- 扩展的恒星和行星数据。
- 独立生成星球。
- Rust crate
- NPM 包
生成行星系统
Rust
use accrete;
fn main() {
let u64_seed = 123;
let mut accrete = Accrete::new(u64_seed);
// To modify accrete configuration just change public field:
// accrete.stellar_mass = 1.5;
accrete.planetary_system();
}
JavaScript
import init, { planetary_system } from 'accrete-wasm';
async function run() {
await init();
const seed = 1;
const stellar_mass = 1;
const output = planetary_system(BigInt(seed), stellar_mass);
}
run();
简单的输出变化方法是改变恒星质量。这个 Accrete 实现能够生成任何恒星质量的行星系统,但对于主要序列恒星类(主星质量为 0.6 - 1.3 个太阳质量)的更好(最真实)结果。近似恒星质量
光谱类型 | W | O | B | A | F | G | K | M |
---|---|---|---|---|---|---|---|---|
恒星质量 | 40 | 30 | 10 | 3 | 1.5 | 1 | 0.7 | 0.4 |
配置
stellar_mass - 主星质量,以太阳质量为单位。 默认:0.6-1.3 之间的随机 f64(对应 F-G-K 主序列光谱类型)
dust_density_coeff - Dole 论文中的 "A",根据 Dole 论文的推荐范围是 0.00125-0.0015,还指出通过增加云中尘埃密度的系数可以产生双星(Stephen H. Dole 的《通过聚集形成行星系统:计算机模拟》)。 默认:0.0015
k - 尘埃与气体的比率 50-100(尘埃/气体 = K),气体 = 氢和氦,尘埃 = 其他。推荐范围:50.0-100.0 默认:50.0
cloud_eccentricity - 初始尘埃云的云_eccentricity。推荐范围:0.15-0.25。 默认:0.20
b - 使用 crit_mass_coeff 作为行星成为气态巨行星的阈值。推荐范围:1.0e-5 - 1.2e-5 默认:1.2e-5
post_accretion_intensity - 在聚集后向创建的星系行星投放的随机行星体的数量。 默认:1000
生成行星
Rust
use accrete;
fn main() {
let u64_seed = 123;
let mut accrete = Accrete::new(u64_seed);
// To modify accrete configuration just change public field:
// accrete.planet_mass = 2.5;
accrete.planet();
}
JavaScript
import init, { planet } from 'accrete-wasm';
async function run() {
await init();
const seed = 1;
const stellar_mass = 1;
const output = planet(BigInt(seed), stellar_mass);
}
run();
配置
stellar_luminosity - 主星的光度。 默认:1.0
stellar_mass - 主星质量,以太阳质量为单位。 默认:1.0
a - 行星轨道半径(天文单位)。默认值:0.3-50.0范围内的随机f64
e - 行星偏心率。默认值:来自random_eccentricity函数的f64
mass - 行星质量(地球质量)。默认值:3.3467202125167E-10 - 500.0范围内的随机f64
post_accretion_intensity - 吸积后撞击行星的随机行星体数量。默认值:100
查看完整示例
简史
Accrete的起源可以追溯到20世纪60年代末,当时Stephen H. Dole发表了《通过聚集形成行星系统:计算机模拟》。大约十年后,Carl Sagan和Richard Isaacson改进了Dole的模型——不久之后,该模型也被实现了FORTRAN,并在Martin Fogg的论文《系外行星系统》中详细和学术性地发表。到了80年代末期,Matt Burdick将这个无价的程序带给大众(通过Turbo Pascal和C)。从那时起,Accrete的许多版本在互联网上出现,增加了不同程度的行星细节——最著名(最巧妙)的是Jim Burrow的StarGen实现。(c)
论文
- Dole, Stephen H.,《通过聚集形成行星系统:计算机模拟》.. 加州圣莫尼卡,CA:RAND公司,1969。
- Dole, Stephen H.,《人类可居住的行星》。
- Isaacman, R.,Sagan, C. 康奈尔大学,纽约伊萨卡,N.Y.,《行星吸积动力学计算机模拟对初始条件的敏感性》。
- Martyn J. Fogg,《系外行星系统:微型计算机模拟》。
致谢
- Stephen H. Dole
- Carl Sagan
- Richard Isaacson
- Martin Fogg
- Matt Burdick
- Ian Burrell
- Jim Burrows
- Zakski
- Tmanderson
- Kbingman
- Calebrob6
- 许多其他好人!
依赖关系
~2–3.5MB
~58K SLoC