|
LMMC
Lamina Mathematic core
|
ODE 求解器共享的内部辅助函数。 更多...
#include <math.h>#include <string.h>#include "internal.h"#include "lmmc/ode.h"#include "lmmc/diagnostic.h"结构体 | |
| struct | lmmc_ode_jacobian_request_t |
| struct lmmc_ode_jacobian_request_t |
在文件 ode_internal.h 第 18 行定义.
| 成员变量 | ||
|---|---|---|
| lmmc_ode_rhs_t | rhs | |
| lmmc_ode_jac_t | jacobian | |
| void * | user_data | |
| lmmc_real_t | t | |
| const lmmc_real_t * | y | |
| const lmmc_real_t * | base_rhs | |
| size_t | dim | |
| lmmc_real_t * | jacobian_data | |
| lmmc_real_t * | base_rhs_work | |
| lmmc_real_t * | y_perturbed | |
| lmmc_real_t * | rhs_perturbed | |
| size_t * | io_rhs_evals | |
| int * | out_callback_failed | |
| void lmmc_ode_do_log | ( | const lmmc_ode_config_t * | cfg, |
| size_t | step, | ||
| lmmc_real_t | t, | ||
| const lmmc_real_t * | y, | ||
| size_t | dim ) |
在文件 ode_support.c 第 3 行定义.
引用了 lmmc_ode_config_t::diagnostics, lmmc_diagnostic_emit(), LMMC_DIAGNOSTIC_TRACE , 以及 lmmc_ode_do_log().
被这些函数引用 lmmc_ode_do_log(), lmmc_ode_euler_solve(), lmmc_ode_implicit_euler_solve(), lmmc_ode_rk45_solve(), lmmc_ode_rk4_solve(), lmmc_ode_rosenbrock_grk4t_solve(), lmmc_ode_sdirk4_solve() , 以及 lmmc_ode_trapezoidal_solve().
| void lmmc_ode_reset_result | ( | lmmc_ode_result_t * | out_result, |
| lmmc_real_t | t_start ) |
在文件 ode_support.c 第 11 行定义.
引用了 lmmc_ode_result_t::converged, lmmc_ode_result_t::failure_reason, lmmc_ode_result_t::final_t, LMMC_ODE_FAILURE_NONE, lmmc_ode_reset_result(), lmmc_ode_result_t::num_rhs_evals , 以及 lmmc_ode_result_t::num_steps.
被这些函数引用 lmmc_ode_reset_result() , 以及 validate_and_init_ode_config().
| lmmc_status_t lmmc_ode_load_and_validate_config | ( | size_t | dim, |
| lmmc_real_t | t_start, | ||
| lmmc_real_t | t_end, | ||
| const lmmc_ode_config_t * | cfg, | ||
| lmmc_ode_config_t * | out_cfg, | ||
| lmmc_ode_result_t * | out_result ) |
在文件 ode_support.c 第 53 行定义.
引用了 lmmc_ode_default_config(), LMMC_ODE_FAILURE_INVALID_DIMENSION, LMMC_ODE_FAILURE_INVALID_STEP, LMMC_ODE_FAILURE_TOLERANCE_INCONSISTENT, lmmc_ode_load_and_validate_config() , 以及 LMMC_STATUS_OK.
被这些函数引用 lmmc_ode_load_and_validate_config() , 以及 validate_and_init_ode_config().
| lmmc_status_t lmmc_ode_rhs_eval | ( | lmmc_ode_rhs_t | rhs, |
| lmmc_real_t | t, | ||
| const lmmc_real_t * | y, | ||
| lmmc_real_t * | y_prime, | ||
| size_t | dim, | ||
| void * | user_data, | ||
| size_t * | io_eval_count, | ||
| int * | out_callback_failed ) |
在文件 ode_support.c 第 78 行定义.
引用了 lmmc_ode_rhs_eval(), lmmc_ode_values_are_finite(), LMMC_STATUS_INVALID_ARGUMENT , 以及 LMMC_STATUS_OK.
被这些函数引用 lmmc_ode_jacobian_eval() , 以及 lmmc_ode_rhs_eval().
| int lmmc_ode_state_is_finite | ( | const lmmc_real_t * | y, |
| size_t | dim ) |
在文件 ode_support.c 第 104 行定义.
引用了 lmmc_ode_state_is_finite(), lmmc_ode_values_are_finite() , 以及 LMMC_STATUS_OK.
被这些函数引用 lmmc_ode_state_is_finite() , 以及 validate_and_init_ode_config().
| lmmc_status_t validate_and_init_ode_config | ( | lmmc_ode_rhs_t | rhs, |
| size_t | dim, | ||
| lmmc_real_t | t_start, | ||
| lmmc_real_t | t_end, | ||
| const lmmc_real_t * | y, | ||
| const lmmc_ode_config_t * | cfg, | ||
| lmmc_ode_config_t * | out_cfg, | ||
| lmmc_ode_result_t * | out_result, | ||
| size_t * | out_work_bytes ) |
在文件 ode_support.c 第 112 行定义.
引用了 lmmc_ode_result_t::failure_reason, LMMC_ODE_FAILURE_INVALID_DIMENSION, LMMC_ODE_FAILURE_NUMERICAL_ISSUE, lmmc_ode_load_and_validate_config(), lmmc_ode_reset_result(), lmmc_ode_state_is_finite(), LMMC_STATUS_INVALID_ARGUMENT, LMMC_STATUS_NUMERICAL_FAILURE, LMMC_STATUS_OK , 以及 validate_and_init_ode_config().
被这些函数引用 lmmc_ode_euler_solve(), lmmc_ode_implicit_euler_solve(), lmmc_ode_rk45_solve(), lmmc_ode_rk4_solve(), lmmc_ode_rosenbrock_grk4t_solve(), lmmc_ode_sdirk4_solve(), lmmc_ode_trapezoidal_solve() , 以及 validate_and_init_ode_config().
| lmmc_status_t lmmc_ode_weighted_rms | ( | const lmmc_real_t * | error, |
| const lmmc_real_t * | y_old, | ||
| const lmmc_real_t * | y_new, | ||
| size_t | dim, | ||
| lmmc_real_t | abs_tol, | ||
| lmmc_real_t | rel_tol, | ||
| lmmc_real_t * | out_norm ) |
在文件 ode_support.c 第 145 行定义.
引用了 lmmc_ode_weighted_rms(), LMMC_STATUS_INVALID_ARGUMENT, LMMC_STATUS_NUMERICAL_FAILURE , 以及 LMMC_STATUS_OK.
被这些函数引用 lmmc_ode_weighted_rms().
| lmmc_real_t lmmc_ode_next_step | ( | lmmc_real_t | h, |
| lmmc_real_t | error_norm, | ||
| const lmmc_ode_config_t * | cfg ) |
在文件 ode_support.c 第 175 行定义.
引用了 lmmc_ode_config_t::adaptive_step_beta, lmmc_ode_next_step(), lmmc_ode_config_t::max_step , 以及 lmmc_ode_config_t::min_step.
被这些函数引用 lmmc_ode_next_step().
| lmmc_status_t lmmc_ode_values_are_finite | ( | const lmmc_real_t * | values, |
| size_t | count ) |
在文件 ode_support.c 第 188 行定义.
引用了 lmmc_ode_values_are_finite(), LMMC_STATUS_INVALID_ARGUMENT, LMMC_STATUS_NUMERICAL_FAILURE , 以及 LMMC_STATUS_OK.
被这些函数引用 lmmc_ode_jacobian_eval(), lmmc_ode_rhs_eval(), lmmc_ode_state_is_finite() , 以及 lmmc_ode_values_are_finite().
| lmmc_status_t lmmc_ode_jacobian_eval | ( | const lmmc_ode_jacobian_request_t * | request | ) |
在文件 ode_jacobian.c 第 16 行定义.
引用了 lmmc_ode_jacobian_request_t::base_rhs, lmmc_ode_jacobian_request_t::base_rhs_work, lmmc_ode_jacobian_request_t::dim, lmmc_ode_jacobian_request_t::io_rhs_evals, lmmc_ode_jacobian_request_t::jacobian, lmmc_ode_jacobian_request_t::jacobian_data, lmmc_ode_jacobian_eval(), lmmc_ode_rhs_eval(), lmmc_ode_values_are_finite(), LMMC_REAL_EPSILON, LMMC_STATUS_INVALID_ARGUMENT, LMMC_STATUS_OK, lmmc_ode_jacobian_request_t::out_callback_failed, lmmc_ode_jacobian_request_t::rhs, lmmc_ode_jacobian_request_t::rhs_perturbed, lmmc_ode_jacobian_request_t::t, lmmc_ode_jacobian_request_t::user_data, lmmc_ode_jacobian_request_t::y , 以及 lmmc_ode_jacobian_request_t::y_perturbed.
被这些函数引用 lmmc_ode_jacobian_eval().