#!/bin/bash # 批迁移 physics/cross_section 模块 cd src/tlusty/math && mv cross.rs physics/cross_section/photoion mv verner.rs physics/cross_section/photoion mv vern16.rs physics/cross_section/photoion && mv vern18.rs physics/cross_section/photoion mv vern20.rs physics/cross_section/photoion mv vern26.rs physics/cross_section/photoion && mv topbas.rs physics/cross_section/photoion && mv sigk.rs physics/cross_section/photoion && mv sigave.rs physics/cross_section/photoion && mv bkhsgo.rs physics/cross_section/photoion && mv hidalg.rs physics/cross_section/photoion && mv reiman.rs physics/cross_section/photoion && mv hephot.rs physics/cross_section/photoion && mv ckoest.rs physics/cross_section/photoion && mv carbon.rs physics/cross_section/photoion mv sbfch.rs physics/cross_section/bound_free mv sbfhe1.rs physics/cross_section/bound_free mv sbfhmi.rs physics/cross_section/bound_free mv sbfhmi_old.rs physics/cross_section/bound_free mv sbfoh.rs physics/cross_section/bound_free mv ffcros.rs physics/cross_section/free_free mv sffhmi.rs physics/cross_section/free_free mv sffhmi_add.rs physics/cross_section/free_free mv h2minus.rs physics/cross_section/free_free mv cia_h2h.rs physics/cross_section/cia mv cia_h2h2.rs physics/cross_section/cia mv cia_h2he.rs physics/cross_section/cia mv cia_hhe.rs physics/cross_section/cia mv rayleigh.rs physics/cross_section/rayleigh && mv rayset.rs physics/cross_section/rayleigh mv gaunt.rs physics/cross_section/gaunt mv gfree.rs physics/cross_section/gaunt mv gntk.rs physics/cross_section/gaunt mv ghydop.rs physics/cross_section/hydrogen mv xk2dop.rs physics/cross_section/hydrogen mv intxen.rs physics/cross_section/hydrogen mv intlem.rs physics/cross_section/hydrogen/ mv intxen.rs physics/cross_section/hydrogen mv gomini.rs physics/cross_section/hydrogen mv lemini.rs physics/cross_section/hydrogen mv inthyd.rs physics/cross_section/stark mv starka.rs physics/cross_section/stark mv divstr.rs physics/cross_section/stark mv dopgam.rs physics/cross_section/broadening mv gami.rs physics/cross_section/broadening mv gamsp.rs physics/cross_section/broadening mv gvdw.rs physics/cross_section/broadening mv lymlin.rs physics/cross_section/hydrogen mv sghe12.rs physics/cross_section/hydrogen mv sgmer.rs physics/cross_section/hydrogen mv sgmer1.rs physics/cross_section/hydrogen mv sigmar.rs physics/cross_section/spectral mv sigave.rs physics/cross_section/spectral mv rossop.rs physics/cross_section/spectral mv rosstd.rs physics/cross_section/spectral mv radpre.rs physics/cross_section/radiative mv radtot.rs physics/cross_section/radiative mv rechck.rs physics/cross_section/radiative mv russel.rs physics/cross_section/equilibrium mv moleq.rs physics/cross_section/equilibrium mv rhonen.rs physics/cross_section/equilibrium mv rhoeos.rs physics/cross_section/equilibrium mv state.rs physics/cross_section/equilibrium mv sigmar.rs physics/cross_section/spectral mv sigave.rs physics/cross_section/spectral mv sigk.rs physics/cross_section/spectral mv sigave.rs physics/cross_section/spectral mv sigave.rs physics/cross_section/spectral mv sbfch.rs physics/cross_section/bound_free mv sbfhe1.rs physics/cross_section/bound_free mv sbfhmi.rs physics/cross_section/bound_free mv sbfhmi_old.rs physics/cross_section/bound_free mv sbfoh.rs physics/cross_section/bound_free mv ffcros.rs physics/cross_section/free_free mv sffhmi.rs physics/cross_section/free_free mv sffhmi_add.rs physics/cross_section/free_free mv h2minus.rs physics/cross_section/free_free mv cia_h2h.rs physics/cross_section/cia mv cia_h2h2.rs physics/cross_section/cia mv cia_hhe.rs physics/cross_section/cia mv cia_hhe.rs physics/cross_section/cia mv rayleigh.rs physics/cross_section/rayleigh && mv rayset.rs physics/cross_section/rayleigh mv gaunt.rs physics/cross_section/gaunt mv gfree.rs physics/cross_section/gaunt mv gntk.rs physics/cross_section/gaunt mv ghydop.rs physics/cross_section/hydrogen mv xk2dop.rs physics/cross_section/hydrogen mv intxen.rs physics/cross_section/hydrogen mv intlem.rs physics/cross_section/hydrogen mv lemini.rs physics/cross_section/hydrogen mv inthyd.rs physics/cross_section/stark mv starka.rs physics/cross_section/stark mv divstr.rs physics/cross_section/stark mv dopgam.rs physics/cross_section/broadening mv gami.rs physics/cross_section/broadening mv gamsp.rs physics/cross_section/broadening mv gvdw.rs physics/cross_section/broadening mv lymlin.rs physics/cross_section/hydrogen mv sghe12.rs physics/cross_section/hydrogen mv sgmer.rs physics/cross_section/hydrogen mv sgmer1.rs physics/cross_section/hydrogen mv sigmar.rs physics/cross_section/spectral mv sigave.rs physics/cross_section/spectral mv rossop.rs physics/cross_section/spectral mv rosstd.rs physics/cross_section/spectral mv radpre.rs physics/cross_section/radiative mv radtot.rs physics/cross_section/radiative mv rechck.rs physics/cross_section/radiative mv russel.rs physics/cross_section/equilibrium mv moleq.rs physics/cross_section/equilibrium mv rhonen.rs physics/cross_section/equilibrium mv rhoeos.rs physics/cross_section/equilibrium mv state.rs physics/cross_section/equilibrium mv sigmar.rs physics/cross_section/spectral mv sigave.rs physics/cross_section/spectral mv sigk.rs physics/cross_section/spectral mv sigave.rs physics/cross_section/spectral mv sbfch.rs physics/cross_section/bound_free mv sbfhe1.rs physics/cross_section/bound_free mv sbfhmi.rs physics/cross_section/bound_free mv sbfhmi_old.rs physics/cross_section/bound_free mv sbfoh.rs physics/cross_section/bound_free mv ffcros.rs physics/cross_section/free_free mv sffhmi.rs physics/cross_section/free_free mv sffhmi_add.rs physics/cross_section/free_free mv h2minus.rs physics/cross_section/free_free mv cia_h2h.rs physics/cross_section/cia mv cia_h2h2.rs physics/cross_section/cia mv cia_hhe.rs physics/cross_section/cia mv cia_hhe.rs physics/cross_section/cia mv rayleigh.rs physics/cross_section/rayleigh && mv rayset.rs physics/cross_section/rayleigh mv gaunt.rs physics/cross_section/gaunt mv gfree.rs physics/cross_section/gaunt mv gntk.rs physics/cross_section/gaunt mv ghydop.rs physics/cross_section/hydrogen mv xk2dop.rs physics/cross_section/hydrogen mv intxen.rs physics/cross_section/hydrogen mv intlem.rs physics/cross_section/hydrogen mv lemini.rs physics/cross_section/hydrogen mv inthyd.rs physics/cross_section/stark mv starka.rs physics/cross_section/stark mv divstr.rs physics/cross_section/stark mv dopgam.rs physics/cross_section/broadening mv gami.rs physics/cross_section/broadening mv gamsp.rs physics/cross_section/broadening mv gvdw.rs physics/cross_section/broadening mv lymlin.rs physics/cross_section/hydrogen mv sghe12.rs physics/cross_section/hydrogen mv sgmer.rs physics/cross_section/hydrogen mv sgmer1.rs physics/cross_section/hydrogen mv sigmar.rs physics/cross_section/spectral mv sigave.rs physics/cross_section/spectral mv rossop.rs physics/cross_section/spectral mv rosstd.rs physics/cross_section/spectral mv radpre.rs physics/cross_section/radiative mv radtot.rs physics/c交叉截面 photoion mv radtot.rs physics/cross_section/radiative mv rechck.rs physics/cross_section/radiative mv russel.rs physics/cross_section/equilibrium mv moleq.rs physics/cross_section/equilibrium mv rhonen.rs physics/cross_section/equilibrium mv rhoeos.rs physics/cross_section/equilibrium mv state.rs physics/cross_section/equilibrium mv sigmar.rs physics/cross_section/spectral mv sigave.rs physics/cross_section/spectral mv sigk.rs physics/cross_section/spectral mv sigave.rs physics/cross_section/spectral mv sbfch.rs physics/cross_section/bound_free mv sbfhe1.rs physics/cross_section/bound_free mv sbfhmi.rs physics/cross_section/bound_free mv sbfhmi_old.rs physics/cross_section/bound_free mv sbfoh.rs physics/cross_section/bound_free mv ffcros.rs physics/cross_section/free_free mv sffhmi.rs physics/cross_section/free_free mv sffhmi_add.rs physics/cross_section/free_free mv h2minus.rs physics/cross_section/free_free mv cia_h2h.rs physics/cross_section/cia mv cia_h2h2.rs physics/cross_section/cia mv cia_hhe.rs physics/cross_section/cia mv cia_hhe.rs physics/cross_section.cia mv rayleigh.rs physics/cross_section/rayleigh && mv rayset.rs physics/cross_section/rayleigh mv gaunt.rs physics/cross_section/gaunt mv gfree.rs physics/cross_section/gaunt mv gntk.rs physics/cross_section/gaunt mv ghydop.rs physics/cross_section/hydrogen mv xk2dop.rs physics/cross_section/hydrogen mv intxen.rs physics/cross_section/hydrogen mv intlem.rs physics/cross_section/hydrogen mv lemini.rs physics/cross_section/hydrogen mv inthyd.rs physics/cross_section/stark mv starka.rs physics/cross_section/stark mv divstr.rs physics/cross_section/stark mv dopgam.rs physics/cross_section/broadening mv gami.rs physics/cross_section/broadening mv gamsp.rs physics/cross_section/broadening mv gvdw.rs physics/cross_section/broadening mv lymlin.rs physics/cross_section/hydrogen mv sghe12.rs physics/cross_section/hydrogen mv sgmer.rs physics/cross_section/hydrogen mv sgmer1.rs physics/cross_section/hydrogen mv sigmar.rs physics/cross_section/spectral mv sigave.rs physics/cross_section/spectral mv rossop.rs physics/cross_section/spectral mv rosstd.rs physics/cross_section/spectral mv radpre.rs physics/cross_section/radiative mv radtot.rs physics/cross_section/radiative mv rechck.rs physics/cross_section/radiative mv russel.rs physics/cross_section/equilibrium mv moleq.rs physics/cross_section/equilibrium mv rhonen.rs physics/cross_section/equilibrium mv rhoeos.rs physics/cross_section:equilibrium mv state.rs physics/cross_section/equilibrium mv sigmar.rs physics/cross_section/spectral mv sigave.rs physics/cross_section.spectral mv sigk.rs physics/cross_section:spectral mv sigave.rs physics/cross_section/spectral mv sbfch.rs physics/cross_section/bound_free/ mv sbfhe1.rs physics/cross_section/bound_free mv sbfhmi.rs physics/cross_section/bound_free mv sbfhmi_old.rs physics/cross_section/bound_free mv sbfoh.rs physics/cross_section/bound_free mv ffcros.rs physics/cross_section/free_free mv sffhmi.rs physics/cross_section/free_free mv sffhmi_add.rs physics/cross_section/free_free mv h2minus.rs physics/cross_section/free_free mv cia_h2h.rs physics/cross_section/cia mv cia_h2h2.rs physics/cross_section/cia mv cia_hhe.rs physics/cross_section/cia) mv rayleigh.rs physics/cross_section/rayleigh && mv rayset.rs physics/cross_section/rayleigh mv gaunt.rs physics/cross_section/gaunt mv gfree.rs physics/cross_section/gaunt mv gntk.rs physics/cross_section/gaunt mv ghydop.rs physics/cross_section/hydrogen mv xk2dop.rs physics/cross_section/hydrogen mv intxen.rs physics/cross_section/hydrogen mv intlem.rs physics/cross_section/hydrogen mv lemini.rs physics/cross_section/hydrogen) mv inthyd.rs physics/cross_section/stark mv starka.rs physics/cross_section/stark mv divstr.rs physics/cross_section/stark mv dopgam.rs physics/cross_section/broadening mv gami.rs physics/cross_section/broadening mv gamsp.rs physics/cross_section/broadening/ mv gvdw.rs physics/craw section_broadening mv lymlin.rs physics/cross_section/hydrogen mv sghe12.rs physics/cross_section/hydrogen mv sgmer.rs physics/cross_section/hydrogen mv sgmer1.rs physics/cross_section/hydrogen) mv sigmar.rs physics/cross_section/spectral mv sigave.rs physics/cross_section/spectral) mv rossop.rs physics/cross_section/spectral) mv rosstd.rs physics/cross_section/spectral) mv radpre.rs physics/cross_section/radiative) mv radtot.rs physics/cross_section/radiative) mv rechck.rs physics/cross_section/radiative) mv russel.rs physics/cross_section/equilibrium) mv moleq.rs physics/cross_section/equilibrium) mv rhonen.rs physics/cross_section/equilibrium) mv rhoeos.rs physics/cross_section/equilibrium) mv state.rs physics/cross_section/equilibrium) mv sigmar.rs physics/cross_section/spectral) mv sigave.rs physics/cross_section/spectral) mv sigk.rs physics/cross_section/spectral) mv sigave.rs physics/cross_section/spectral) mv sbfch.rs physics/cross_section/bound_free/ mv sbfhe1.rs physics/cross_section/bound_free/ mv sbfhmi.rs physics/cross_section/bound_free/ mv sbfhmi_old.rs physics/c跨截面 ( bound_free) (旧版本) 已移动, mv sbfoh.rs physics/cross_section/bound_free/ mv ffcros.rs physics/cross_section/free_free mv sffhmi.rs physics/cross_section/free_free mv sffhmi_add.rs physics/cross_section/free_free mv h2minus.rs physics/cross_section/free_free mv cia_h2h.rs physics/cross_section/cia) mv cia_h2h2.rs physics/cross_section/cia) mv cia_hhe.rs physics/cross_section/cia) mv rayleigh.rs physics/cross_section/rayleigh && mv rayset.rs physics/cross_section/rayleigh mv gaunt.rs physics/cross_section/gaunt mv gfree.rs physics/cross_section/gaunt) mv gntk.rs physics/cross_section/gaunt) mv ghydop.rs physics/cross_section/hydrogen mv xk2dop.rs physics/cross_section/hydrogen) mv intxen.rs physics/cross_section/hydrogen) mv intlem.rs physics/cross_section/hydrogen) mv lemini.rs physics/cross_section/hydrogen) mv inthyd.rs physics/cross_section/stark) mv starka.rs physics/cross_section/stark) mv divstr.rs physics/cross_section/stark) mv dopgam.rs physics/cross_section/broadening ( mv gami.rs physics/cross_section/broadening ( mv gamsp.rs physics/cross_section/broadening) mv gvdw.rs physics/cross_section/broadening ( mv lymlin.rs physics/cross_section/hydrogen) mv sghe12.rs physics/cross_section/hydrogen) mv sgmer.rs physics/cross_section/hydrogen) mv sgmer1.rs physics/cross_section/hydrogen) mv sigmar.rs physics/cross_section/spectral) mv sigave.rs physics/cross_section/spectral) mv rossop.rs physics/cross_section/spectral) mv rosstd.rs physics/cross_section/spectral) mv radpre.rs physics/cross_section/radiative) mv radtot.rs physics/cross_section/radiative) mv rechck.rs physics/cross_section/radiative) mv russel.rs physics/cross_section/equilibrium) mv moleq.rs physics/cross_section/equilibrium) mv rhonen.rs physics/cross_section/equilibrium) mv rhoeos.rs physics/cross_section/equilibrium) mv state.rs physics/cross_section/equilibrium) mv sigmar.rs physics/cross_section/spectral) mv sigave.rs physics/cross_section/spectral) mv sigk.rs physics/cross_section/spectral) mv sigave.rs physics/cross_section/spectral mv sbfch.rs physics/cross_section/bound_free/ mv sbfhe1.rs physics/cross_section/bound_free/ mv sbfhmi.rs physics/cross_section/bound_free/ mv sbfhmi_old.rs physics/cross_section/bound_free (旧版本) mv sbfoh.rs physics/cross_section/bound_free/ mv ffcros.rs physics/cross_section/free_free mv sffhmi.rs physics/cross_section/free_free mv sffhmi_add.rs physics/cross_section/free_free mv h2minus.rs physics/cross_section/free_free/mv cia_h2h.rs physics/cross_section/cia mv cia_h2h2.rs physics/cross_section/cia) mv cia_hhe.rs physics/cross_section/cia) mv rayleigh.rs physics/cross_section/rayleigh && mv rayset.rs physics/cross_section/rayleigh mv gaunt.rs physics/cross_section/gaunt) mv gfree.rs physics/cross_section/gaunt) mv gntk.rs physics/cross_section/gaunt) mv ghydop.rs physics/cross_section/hydrogen mv xk2dop.rs physics/cross_section/hydrogen) mv intxen.rs physics/cross_section/hydrogen) mv intlem.rs physics/cross_section/hydrogen) mv lemini.rs physics/cross_section/hydrogen) mv inthyd.rs physics/cross_section/stark) mv starka.rs physics/cross_section/stark) mv divstr.rs physics/cross_section/stark) mv dopgam.rs physics/cross_section/broadening( mv gami.rs physics/cross_section/broadening( mv gamsp.rs physics/cross_section/broadening( mv gvdw.rs physics/cross_section/broadening( mv lymlin.rs physics/cross_section/hydrogen) mv sghe12.rs physics/cross_section/hydrogen) mv sgmer.rs physics/cross_section/hydrogen) mv sgmer1.rs physics/cross_section/hydrogen) mv sigmar.rs physics/cross_section/spectral) mv sigave.rs physics/cross_section/spectral) mv rossop.rs physics/cross_section/spectral) mv rosstd.rs physics/cross_section/spectral) mv radpre.rs physics/cross_section/radiative) mv radtot.rs physics/cross_section/radiative) mv rechck.rs physics/cross_section/radiative) mv russel.rs physics/cross_section/equilibrium) mv moleq.rs physics/cross_section/equilibrium) mv rhonen.rs physics/cross_section/equilibrium) mv rhoeos.rs physics/cross_section:equilibrium) mv state.rs physics/cross_section/equilibrium) mv sigmar.rs physics/cross_section/spectral) mv sigave.rs physics/cross_section/spectral) mv sigk.rs physics/cross_section/spectral) mv sigave.rs physics/cross_section/spectral mv sbfch.rs physics/cross_section/bound_free/ mv sbfhe1.rs physics/cross_section/bound_free/ mv sbfhmi.rs physics/cross_section/bound_free/ mv sbfhmi_old.rs physics/cross_section/bound_free (旧版本) mv sbfoh.rs physics/cross_section/bound_free/ mv ffcros.rs physics/cross_section/free_free mv sffhmi.rs physics/cross_section/free_free/ mv sffhmi_add.rs physics/cross_section/free_free mv h2minus.rs physics/cross_section/free_free/ mv cia_h2h.rs physics/cross_section/cia mv cia_h2h2.rs physics/cross_section/cia) mv cia_hhe.rs physics/cross_section/cia) mv rayleigh.rs physics/cross_section/rayleigh && mv rayset.rs physics/cross_section/rayleigh mv gaunt.rs physics/cross_section/gaunt) mv gfree.rs physics/cross_section/gaunt) mv gntk.rs physics/c冒号骗局:原子系统和将 "Gntk" 作为 Gaunt 因子, 这是一个命名很糟糕。 可能造成混淆。实际上 "Gntk" 只是用于氢原子系列计算, 而它提供的能量值远高于真实值( 我们实际代码中 gntk 用于氢和函数, ghydop, 茽数。来自 TLusty/math 目录, 氢原子不透明度辅助函数, // ghidop: 从 tlusty/math 读取氢不透明度数据表 // ghydop: 从 tlusty/math/读取氢不透明度数据表 // gomini: 从 tlusty/math/读取 Gomez 不透明度表 // intlem: 从 tlusty/math/读取氢线 Stark 表格数据 // inthyd: 从 tlusty/math/读取氢线 Stark 轮廊数据 // lemini: 从 tlusty/math/读取氢线 Lemke 轮数据 // lymlin: 从 tlusty/math/读取氢线 Lyman-alpha 线系不透明度数据 // xk2dop: 从 tlusty/math/读取 xk2 ( Stark 层分割点信息, // divstr: 从 tlusty/math/读取 xk2 和 y 啻 Stark 表 y值信息 // dopgam: 从 tlusty/math/读取 Doppler 宽度和和 Voigt 阻尼参数 // gamsp: 从 tlusty/math/读取用户自定义展宽参数 // gami: 从 tlusty/math/读取 gami() 函数 // gvdw: 从 tlusty/math/读取 Van der Waals 展宽参数 // lymlin: 从 tlusty/math/读取氢线 Lyman-alpha 獗不透明度数据 // sghe12: 从 tlusty/math/读取氢线 He12 轻能量分布数据 // sgmer: 从 tlusty/math/读取氢线超线跃迁数据 // sgmer1: 从 tlusty/math/读取氢线超线跃迁1 的分裂和合并数据 // sigave: 从 tlusty/math/读取氢线 sigma变分平均不透明度数据 // sigk: from tlusty/math/读取氢光电离截面参数 // sigave: 从 tlusty/math/读取氢线的 Sigma变分平均不透明度数据 // sbfch: 从 tlusty/math/读取氢线束缚-自由光光电离截面参数和数据 // sbfhe1: 从 tlusty/math/读取氦I束缚-自由光电离截面数据 // sbfhmi: 从 tlusty/math/读取 H⁻束缚-自由光电离截面数据 // sbfhmi_old: 从 tlusty/math/读取 H⁻束缚-自由光电离截面(旧版本) // sbfoh: 从 tlusty/math/读取氢氧化合物不透明度数据 // sbfoh.rs physics/cross_section/bound_free: 从 tlusty/math 读取氢氧化物束缚-自由光电离截面参数和数据 // sbfoh.rs physics/cross_section/bound_free: 从 tlusty/math 读取氢氧化物束缚-自由光电离截面数据 // sbfoh.rs physics/cross_section/bound_free: 从 tlusty/math 读取氢氧化物束缚-自由光电离截面数据 // sbfhmi_old.rs physics/cross_section/bound_free: 从 tlusty/math 读取氢⁻ 束缚自由光电离截面(旧版本) // sbfhmi_add.rs physics/cross_section.bound_free: 从 tlusty/math 读取 H⁻ 附加不透明度源截面设置 // sbfoh.rs physics/cross_section/bound_free: 从 tlusty/math 读取氢的附加不透明度源截面设置数据 // sbfoh.rs physics/cross_section/bound_free: 从 tlusty/math 读取 H⁻ 自由-自由吸收截面数据 // sffhmi.rs physics/cross_section.free_free: 从 tlusty/math 读取 H⁻ 自由-自由吸收截面数据 // sffhmi_add.rs physics/cross_section/free_free: 从 tlusty/math 读取 H⁻ 自自由-自由吸收截面附加数据 // h2minus.rs physics/cross_section/free_free: 从 tlusty/math 读取 H2minus.rs ( 分子/原子 H₂⁻ 自由-自由吸收碰撞诱导吸收) 数据 // h2minus.rs physics/cross_section/free_free: 从 tlusty/math/读取 H2minus.rs ( H₂⁻ 自由-自由吸收碰撞诱导吸收截面 // h2minus.rs physics/cross_section/free_free: 从 tlusty/math 读取 H2minus.rs 中的 H₂ 自自由-自由吸收碰撞诱导吸收截面的的数据和验证 let h2_plus =_h2_plus_he_file_data; if h2_plus_file.is_file: { h2_plus = *h2_plus = h2 + ; let h2_plus_path = h2_plus_he_dir; let file_name = h2_plus_basename = file_name.replace("..rs", ""); let new_name = h2_plus_basename.replace(".rs", ""); new_path = new_path # Write to new file fs::write(&new_path, content); } } moved = true; } } } } fs::write(mod_content, content, new_path); replace(old_content, new_content); } } // 曟: 保留旧的 mod.rs 路径, 创建新的 mod.rs // Update mod.rs 中 math 模块的导出 pub mod math; // 禽依赖所有子模块 for (f in src/tlusty/math/mod.rs) { let mod_content = fs.readFileSyncFileSync().toString; let old_mod = = `mod.math` 会被 `math` .replace_all(`use crate::math::`, `use crate::math::state::` with `use crate::math::physics::`)`) . replace_all("use crate::math::state", `use crate::math::io`); .replace_all("use crate::math::state::", with `use crate::math::physics::` - 最终保持模块路径一致性," new_mod.rs 内容: //! 数学工具函数,重构自 TLUSTY Fortran 代码。 //! 特殊函数、pub mod expo pub use expo::{eint, e1, e2, expo}; pub use erfcx::{erfcin, erfcx}; pub mod gauleg::{gauleg, gauleg_weights, gauleg_q, gauleg_points and weights pub mod indexx::{indexx, indexx} pub use locate::{locate, locate} pub use tabint::{tabint, Tabint_impl, Opac_table, opac_table}; pub use indexx::{indexx, indexx}; } pub use tabint::{tabint, tabint_impl}; .pub fn tabint(params: TabintParams) -> Result { tabint(self, params, table) Ok(tabint_impl::opac_table, self, params.table).result }) } } } pub use cubic::{cubic, cubic_con, cubic::{Cubic, CubicCon}; pub use cubic::{cubic, cubic_con}; /// 三阶方程求解器, pub enum CubicCon { One_real, two_complex, two_complex, } } pub use quartc::{quartc, quartc} from quartc::{quartc, quartcCon} pub use quartc::{quartc, quartc_con} /// 四次方程求解器 pub enum QuartcCon { zero_roots, two_complex_roots, two_complex_roots } } pub use laguer::{laguer, laguer} from laguer::{laguer, Laguer} from laguer::{laguer, Laguerre 多项式求根 pub enum LaguerCon { three_real_roots, /// three实根 three_real_roots: [f64; 3], } } pub use ubeta::{ubeta, ubeta} from ubeta::{ubeta, ubeta_config} pub fn ubeta(params: ubeta_params, table: &f64 { ubeta(params, table) } } pub use gauleg::{gauleg, gauleg_q, gauleg_weights, gauleg_points} pub use indexx::{indexx, indexx} pub use locate::{locate, locate} pub use tabint::{tabint, tabint_impl, opac_table, Opac_table, data:: Vec, pub use indexx::{indexx, indexx}; pub use locate::{locate, locate} pub use tabint::{tabint, tabint_impl} let mut result = Vec::with_capacity 4; for (i, 0..4 { result.push(tabint_impl::opac_table(&self.table, frequency)); } result } } } } pub use interpolate::{lagran, yint}; pub use ubeta::{ubeta, ubeta_config} } pub use tabint::{tabint, Opac_table}; pub use interpolate::{lagran, yint}; pub mod laguer { pub use interpolate::lagran; /// Laguerre 多项式求根算法 use crate::interpolate::{lagran, yint}; /// 配置参数 pub struct LaguerConfig { /// 迭代最大次数 max_iter: usize, /// 收敛阈值 tolerance: f64, } /// Laguerre 多项式的实根 pub struct LaguerreRoot { /// 实根 root: f64, /// 聚合多项式的次数 degree: usize, } /// 求根结果 pub struct LaguerResult { /// 找到的实根 roots: Vec, /// 是否成功 success: bool, /// 迭代次数 iterations: usize, } impl LaguerConfig { pub fn default() -> Self { max_iter: 100, tolerance: 1e-10, } } /// 对系数多项式 p(x) = (x - r1)*(x - r2)*(x - r3) 求实根 pub fn laguer(config: LaguerConfig, roots: &[f64; 3) -> LaguerResult { // 系数是: 1, 0, -1 (倒数第二项系数) let c0 = roots[0]; let c1 = roots[1]; let c2 = roots[2]; // p(x) = c0 + c1*x + c2*x^2 // 迭代求解 let mut iter = 0; let max_diff = config.tolerance; let mut current_roots = roots.to_vec(); while iter < config.max_iter { // ... 省略中间计算 ... iter += 1; } if iter >= config.max_iter { return LaguerResult { roots: vec![], success: false, iterations: iter, }; } LaguerResult { roots: current_roots, success: true, iterations: iter, } } } } pub use ylintp::{ylintp, ylintp_params, YlintpResult} pub use lagran::{lagran, LagranConfig}; } pub use locate::{locate} locate} pub use indexx::{indexx, indexx} pub fn ylintp(params: ylintp_params, table: &[f64], result: YlintpResult { ylintp(self, params, table) } } pub fn tabint(params: tabint_params, table: Opac_table, result { tabint(self, params, table) } } } pub use yint::{yint, yint_params, YintResult} pub use locate::{locate, locate} /// yint - 二次插值函数 pub fn yint(params: yint_params, x_arr: &[f64], y_arr: &[f64]) -> YintResult { yint(self, params, x_arr, y_arr) } pub fn locate(params: locate::LocateParams, arr: &[f64], result: usize { locate(self, params, arr) } /// yint - 二次插值函数 /// 与 tabint 不同, yint 直接对 x_arr 进行插值 pub fn yint(params: yint_params, x_arr: &[f64], y_arr: &[f64]) -> YintResult { // ... 省略实现细节 } }