diff --git a/examples/PACKAGES/pod/Ta/Ta_data.pod b/examples/PACKAGES/pod/Ta/Ta_data.pod index 6aa256a61d..b345496f71 100644 --- a/examples/PACKAGES/pod/Ta/Ta_data.pod +++ b/examples/PACKAGES/pod/Ta/Ta_data.pod @@ -6,6 +6,7 @@ path_to_test_data_set "XYZ" fitting_weight_energy 100.0 fitting_weight_force 1.0 +fitting_regularization_parameter 1e-10 error_analysis_for_training_data_set 1 error_analysis_for_test_data_set 0 diff --git a/examples/PACKAGES/pod/Ta_Quadratic/Ta_data.pod b/examples/PACKAGES/pod/Ta_Quadratic/Ta_data.pod index 5012baab22..c7436ea26e 100644 --- a/examples/PACKAGES/pod/Ta_Quadratic/Ta_data.pod +++ b/examples/PACKAGES/pod/Ta_Quadratic/Ta_data.pod @@ -6,6 +6,7 @@ path_to_test_data_set "../Ta/XYZ" fitting_weight_energy 100.0 fitting_weight_force 1.0 +fitting_regularization_parameter 1e-10 error_analysis_for_training_data_set 1 error_analysis_for_test_data_set 0 diff --git a/src/ML-POD/fitpod_command.cpp b/src/ML-POD/fitpod_command.cpp index 9b66339c48..7d11da503c 100644 --- a/src/ML-POD/fitpod_command.cpp +++ b/src/ML-POD/fitpod_command.cpp @@ -188,7 +188,7 @@ void FitPOD::read_data_file(double *fitting_weights, std::string &file_format, if (keywd == "fitting_weight_energy") fitting_weights[0] = utils::numeric(FLERR,words[1],false,lmp); if (keywd == "fitting_weight_force") fitting_weights[1] = utils::numeric(FLERR,words[1],false,lmp); - if (keywd == "fitting_weight_stress") fitting_weights[2] = utils::numeric(FLERR,words[1],false,lmp); + if (keywd == "fitting_weight_stress") fitting_weights[2] = utils::numeric(FLERR,words[1],false,lmp); if (keywd == "error_analysis_for_training_data_set") fitting_weights[3] = utils::numeric(FLERR,words[1],false,lmp); if (keywd == "error_analysis_for_test_data_set") fitting_weights[4] = utils::numeric(FLERR,words[1],false,lmp); if (keywd == "energy_force_calculation_for_training_data_set") fitting_weights[5] = utils::numeric(FLERR,words[1],false,lmp); @@ -197,7 +197,8 @@ void FitPOD::read_data_file(double *fitting_weights, std::string &file_format, if (keywd == "fraction_test_data_set") fitting_weights[8] = utils::numeric(FLERR,words[1],false,lmp); if (keywd == "randomize_training_data_set") fitting_weights[9] = utils::numeric(FLERR,words[1],false,lmp); if (keywd == "randomize_test_data_set") fitting_weights[10] = utils::numeric(FLERR,words[1],false,lmp); - + if (keywd == "fitting_regularization_parameter") fitting_weights[11] = utils::numeric(FLERR,words[1],false,lmp); + // other settings if (keywd == "file_format") file_format = words[1]; @@ -223,6 +224,7 @@ void FitPOD::read_data_file(double *fitting_weights, std::string &file_format, utils::logmesg(lmp, "fitting weight for energy: {}\n", fitting_weights[0]); utils::logmesg(lmp, "fitting weight for force: {}\n", fitting_weights[1]); utils::logmesg(lmp, "fitting weight for stress: {}\n", fitting_weights[2]); + utils::logmesg(lmp, "fitting regularization parameter: {}\n", fitting_weights[11]); utils::logmesg(lmp, "**************** End of Data File ****************\n"); } } @@ -1269,10 +1271,12 @@ void FitPOD::least_squares_fit(datastruct data) for (int i = 0; i