double lmmc_real_t
Public and internal LMMC real type.
Unified diagnostic events for LMMC operations.
lmmc_status_t lmmc_ode_default_config(lmmc_real_t t_start, lmmc_real_t t_end, size_t problem_dim, lmmc_ode_config_t *out_cfg)
根据积分区间与维度生成合理的默认求解配置。
lmmc_status_t(*) lmmc_ode_rhs_t(lmmc_real_t t, const lmmc_real_t *y, lmmc_real_t *y_prime, size_t dim, void *user_data)
ODE 右端函数签名 。
lmmc_diagnostic_sink_t diagnostics
const char * lmmc_ode_failure_string(lmmc_ode_failure_t reason)
获取失败原因对应的可读字符串。
lmmc_status_t lmmc_ode_implicit_euler_solve(lmmc_ode_rhs_t rhs, void *user_data, size_t dim, lmmc_real_t t_start, lmmc_real_t t_end, lmmc_real_t *y, const lmmc_ode_config_t *cfg, lmmc_ode_result_t *out_result)
隐式 Euler 法求解器(A-稳定,适用于刚性问题)。
lmmc_ode_failure_t
ODE 求解失败原因。
@ LMMC_ODE_FAILURE_NUMERICAL_ISSUE
@ LMMC_ODE_FAILURE_INVALID_STEP
@ LMMC_ODE_FAILURE_TOLERANCE_INCONSISTENT
@ LMMC_ODE_FAILURE_RHS_EVAL_FAILED
@ LMMC_ODE_FAILURE_INVALID_DIMENSION
@ LMMC_ODE_FAILURE_MAX_STEPS
lmmc_ode_dfdt_t time_derivative
lmmc_status_t lmmc_ode_rk4_solve(lmmc_ode_rhs_t rhs, void *user_data, size_t dim, lmmc_real_t t_start, lmmc_real_t t_end, lmmc_real_t *y, const lmmc_ode_config_t *cfg, lmmc_ode_result_t *out_result)
经典四阶 Runge-Kutta 法求解 (固定步长)。
lmmc_status_t(*) lmmc_ode_jac_t(lmmc_real_t t, const lmmc_real_t *y, lmmc_real_t *J, size_t dim, void *user_data)
ODE Jacobian 回调签名 。
lmmc_status_t lmmc_ode_trapezoidal_solve(lmmc_ode_rhs_t rhs, void *user_data, size_t dim, lmmc_real_t t_start, lmmc_real_t t_end, lmmc_real_t *y, const lmmc_ode_config_t *cfg, lmmc_ode_result_t *out_result)
梯形法求解器(A-稳定,二阶精度)。
lmmc_status_t lmmc_ode_rosenbrock_grk4t_solve(lmmc_ode_rhs_t rhs, void *user_data, size_t dim, lmmc_real_t t_start, lmmc_real_t t_end, lmmc_real_t *y, const lmmc_ode_config_t *cfg, lmmc_ode_result_t *out_result)
Rosenbrock-Wanner GRK4T 求解器(线性隐式,四阶,每步一次 LU)。
lmmc_ode_failure_t failure_reason
lmmc_status_t lmmc_ode_rk45_solve(lmmc_ode_rhs_t rhs, void *user_data, size_t dim, lmmc_real_t t_start, lmmc_real_t t_end, lmmc_real_t *y, const lmmc_ode_config_t *cfg, lmmc_ode_result_t *out_result)
自适应 Runge-Kutta-Fehlberg (RK45) 求解器。
lmmc_status_t lmmc_ode_euler_solve(lmmc_ode_rhs_t rhs, void *user_data, size_t dim, lmmc_real_t t_start, lmmc_real_t t_end, lmmc_real_t *y, const lmmc_ode_config_t *cfg, lmmc_ode_result_t *out_result)
显式 Euler 法求解常微分方程初值问题 。
lmmc_real_t adaptive_step_beta
lmmc_status_t(*) lmmc_ode_dfdt_t(lmmc_real_t t, const lmmc_real_t *y, lmmc_real_t *dfdt, size_t dim, void *user_data)
ODE 对时间偏导回调签名 .
lmmc_status_t lmmc_ode_sdirk4_solve(lmmc_ode_rhs_t rhs, void *user_data, size_t dim, lmmc_real_t t_start, lmmc_real_t t_end, lmmc_real_t *y, const lmmc_ode_config_t *cfg, lmmc_ode_result_t *out_result)
4 阶 SDIRK 求解器,采用嵌入误差估计和自适应步长。 非线性阶段按 abs_tol/rel_tol、当前及阶段状态计算 h*残差与 h*修正的加权 RMS。 迭代耗尽时保留最后接受的 y、fina...
lmmc_status_t
LMMC 库统一返回的状态码.