|
LMMC
Lamina Mathematic core
|
Hairer ROS4 中 Kaps-Rentrop GRK4T 四阶 Rosenbrock-Wanner 求解器. 更多...
#include <math.h>#include <string.h>#include "memory_bridge.h"#include "internal.h"#include "ode_internal.h"#include "lmmc/ode.h"#include "lmmc/dense.h"#include "lmmc/linear_algebra.h"结构体 | |
| struct | ode_rosenbrock_state_t |
宏定义 | |
| #define | ROS_STAGES 4 |
| #define | ROS_VECTORS 13 |
函数 | |
| 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)。 | |
Hairer ROS4 中 Kaps-Rentrop GRK4T 四阶 Rosenbrock-Wanner 求解器.
系数和阶段归一化对应 https://www.unige.ch/~hairer/prog/stiff/Oldies/ros4.f 的 GRK4T 路径. 每次尝试只分解一次 W=I/(h*gamma)-J.
在文件 ode_rosenbrock.c 中定义.
| struct ode_rosenbrock_state_t |
在文件 ode_rosenbrock.c 第 101 行定义.
| 成员变量 | ||
|---|---|---|
| lmmc_ode_rhs_t | rhs | |
| void * | user_data | |
| size_t | dim | |
| size_t | work_bytes | |
| lmmc_real_t * | y | |
| lmmc_ode_config_t | local_cfg | |
| lmmc_ode_result_t * | out_result | |
| lmmc_real_t | t | |
| lmmc_real_t | h | |
| lmmc_real_t * | work | |
| lmmc_real_t * | matrix_data | |
| size_t * | pivots | |
| lmmc_real_t * | k[ROS_STAGES] | |
| lmmc_real_t * | f0 | |
| lmmc_real_t * | f_stage | |
| lmmc_real_t * | y_stage | |
| lmmc_real_t * | y_pert | |
| lmmc_real_t * | f_pert | |
| lmmc_real_t * | rhs_vec | |
| lmmc_real_t * | dfdt | |
| lmmc_real_t * | y_new | |
| lmmc_real_t * | error | |
| lmmc_mat_t | W | |
| #define ROS_STAGES 4 |
在文件 ode_rosenbrock.c 第 18 行定义.
被这些函数引用 lmmc_ode_rosenbrock_grk4t_solve().
| #define ROS_VECTORS 13 |
在文件 ode_rosenbrock.c 第 19 行定义.
被这些函数引用 lmmc_ode_rosenbrock_grk4t_solve().
| 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)。
在文件 ode_rosenbrock.c 第 280 行定义.
引用了 ode_rosenbrock_state_t::dfdt, ode_rosenbrock_state_t::dim, ode_rosenbrock_state_t::error, ode_rosenbrock_state_t::f0, ode_rosenbrock_state_t::f_pert, ode_rosenbrock_state_t::f_stage, lmmc_ode_result_t::failure_reason, ode_rosenbrock_state_t::h, lmmc_ode_config_t::initial_step, ode_rosenbrock_state_t::k, lmmc_memory_alloc(), lmmc_ode_do_log(), LMMC_ODE_FAILURE_INVALID_DIMENSION, lmmc_ode_rosenbrock_grk4t_solve(), LMMC_STATUS_ALLOCATION_FAILED, LMMC_STATUS_INVALID_ARGUMENT, LMMC_STATUS_OK, ode_rosenbrock_state_t::local_cfg, ode_rosenbrock_state_t::matrix_data, lmmc_ode_config_t::max_step, lmmc_ode_config_t::min_step, ode_rosenbrock_state_t::out_result, ode_rosenbrock_state_t::pivots, ode_rosenbrock_state_t::rhs, ode_rosenbrock_state_t::rhs_vec, ROS_STAGES, ROS_VECTORS, ode_rosenbrock_state_t::t, ode_rosenbrock_state_t::user_data, validate_and_init_ode_config(), ode_rosenbrock_state_t::W, ode_rosenbrock_state_t::work, ode_rosenbrock_state_t::work_bytes, ode_rosenbrock_state_t::y, ode_rosenbrock_state_t::y_new, ode_rosenbrock_state_t::y_pert , 以及 ode_rosenbrock_state_t::y_stage.
被这些函数引用 lmmc_ode_rosenbrock_grk4t_solve().