33#include " calibrate.h"
44
55#include " LevenbergMarquardtOptimizer.h"
6- #include " SimulationParameters .h"
6+ #include " Parameters .h"
77
88nlohmann::json calibrate (const nlohmann::json& config) {
99 auto output_config = nlohmann::json (config);
1010
1111 // Read calibration parameters
12- DEBUG_MSG (" Parse calibration parameters" );
13- auto const & calibration_parameters = config[" calibration_parameters" ];
14- double gradient_tol =
15- calibration_parameters.value (" tolerance_gradient" , 1e-5 );
16- double increment_tol =
17- calibration_parameters.value (" tolerance_increment" , 1e-10 );
18- int max_iter = calibration_parameters.value (" maximum_iterations" , 100 );
19- bool zero_capacitance =
20- calibration_parameters.value (" set_capacitance_to_zero" , false );
21- double lambda0 = calibration_parameters.value (" initial_damping_factor" , 1.0 );
12+ CalibrationParameters cali_params = load_calibration_params (config);
2213
2314 // Setup model
2415 auto model = Model ();
@@ -138,8 +129,7 @@ nlohmann::json calibrate(const nlohmann::json& config) {
138129 // Run optimization
139130 DEBUG_MSG (" Start optimization" );
140131 auto lm_alg =
141- LevenbergMarquardtOptimizer (&model, num_obs, param_counter, lambda0,
142- gradient_tol, increment_tol, max_iter);
132+ LevenbergMarquardtOptimizer (&model, num_obs, param_counter, cali_params);
143133
144134 alpha = lm_alg.run (alpha, y_all, dy_all);
145135
@@ -153,12 +143,9 @@ nlohmann::json calibrate(const nlohmann::json& config) {
153143 for (auto & vessel_config : output_config[" vessels" ]) {
154144 std::string vessel_name = vessel_config[" vessel_name" ];
155145 auto block = model.get_block (vessel_name);
156- double stenosis_coeff = 0.0 ;
157- stenosis_coeff = alpha[block->global_param_ids [3 ]];
158- double c_value = 0.0 ;
159- if (!zero_capacitance) {
160- c_value = alpha[block->global_param_ids [1 ]];
161- }
146+ double stenosis_coeff = alpha[block->global_param_ids [3 ]];
147+ double c_value = alpha[block->global_param_ids [1 ]];
148+
162149 vessel_config[" zero_d_element_values" ] = {
163150 {" R_poiseuille" , alpha[block->global_param_ids [0 ]]},
164151 {" C" , std::max (c_value, 0.0 )},
0 commit comments