diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 18b221cb..1a71f65e 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -6,6 +6,7 @@ CHANGELOG =================== * Added support to read historic data curves directly from the results of History Matching analyses. +* Added support for warning and information logging. 2024.1 (2024-05-27) diff --git a/docs/source/plugins/99_1_solver_api_reference.rst b/docs/source/plugins/99_1_solver_api_reference.rst index c007dd0d..14e05677 100644 --- a/docs/source/plugins/99_1_solver_api_reference.rst +++ b/docs/source/plugins/99_1_solver_api_reference.rst @@ -187,6 +187,13 @@ Liquid-Liquid Mechanistic Model helpers .. _var_name_parsing: +Solver Logging +~~~~~~~~~~~~~~ + +.. doxygenfunction:: log_warning_message + +.. doxygenfunction:: log_information_message + Variable Name Parsing ~~~~~~~~~~~~~~~~~~~~~ diff --git a/src/alfasim_sdk/alfasim_sdk_api/api.h b/src/alfasim_sdk/alfasim_sdk_api/api.h index af807a6f..da72544d 100644 --- a/src/alfasim_sdk/alfasim_sdk_api/api.h +++ b/src/alfasim_sdk/alfasim_sdk_api/api.h @@ -620,6 +620,27 @@ DLL_EXPORT int get_deposition_thickness( void* ctx, double** out, int phase_id, enum TimestepScope ts_scope, int* size ); +/*! + Logs a warning message at the solver logger. + Information will be logged as follow: "Warning: {warning_message}" + + @param[in] ctx ALFAsim's plugins context. + @param[in] plugin_id ALFAsim's plugins id + @param[in] warning_message Warning Message. + @return An #error_code value. +*/ +DLL_EXPORT int log_warning_message(void* ctx, const char* plugin_id, const char* warning_message); + +/*! + Logs an information message at the solver logger. + + @param[in] ctx ALFAsim's plugins context. + @param[in] plugin_id ALFAsim's plugins id + @param[in] info_message Information Message. + @return An #error_code value. +*/ +DLL_EXPORT int log_information_message(void* ctx, const char* plugin_id, const char* info_message); + /*! Retrieves the tracer ID given a tracer reference. A tracer reference may be obtained from the user input data (See #get_plugin_input_data_reference API function for an example). diff --git a/src/alfasim_sdk/alfasim_sdk_api/detail/api_pointers.h b/src/alfasim_sdk/alfasim_sdk_api/detail/api_pointers.h index e0b39789..c69f189e 100644 --- a/src/alfasim_sdk/alfasim_sdk_api/detail/api_pointers.h +++ b/src/alfasim_sdk/alfasim_sdk_api/detail/api_pointers.h @@ -82,6 +82,8 @@ using get_flow_pattern_func = int (*)( int* size ); using get_deposition_thickness_func = int (*)(void* ctx, double** out, int phase_id, enum TimestepScope ts_scope, int* size); +using log_warning_message_func = int (*)(void* ctx, const char* plugin_id,const char* warning_message); +using log_information_message_func = int (*)(void* ctx, const char* plugin_id, const char* information_message); using get_tracer_id_func = int (*)(void* ctx, int* tracer_id, void* reference); using get_tracer_name_size_func = int (*)(void* ctx, int* tracer_name_size, void* reference); using get_tracer_name_func = int (*)(void* ctx, char* tracer_name, void* reference, int size); @@ -146,6 +148,9 @@ struct ALFAsimSDK_API { get_deposition_thickness_func get_deposition_thickness; + log_warning_message_func log_warning_message; + log_information_message_func log_information_message; + get_tracer_id_func get_tracer_id; get_tracer_name_size_func get_tracer_name_size; get_tracer_name_func get_tracer_name; diff --git a/src/alfasim_sdk/alfasim_sdk_api/detail/bootstrap_linux.h b/src/alfasim_sdk/alfasim_sdk_api/detail/bootstrap_linux.h index 44285089..3fee788e 100644 --- a/src/alfasim_sdk/alfasim_sdk_api/detail/bootstrap_linux.h +++ b/src/alfasim_sdk/alfasim_sdk_api/detail/bootstrap_linux.h @@ -80,6 +80,8 @@ inline int alfasim_sdk_open(ALFAsimSDK_API* api) api->get_flow_pattern = (get_flow_pattern_func)dlsym(api->handle, "get_flow_pattern"); api->get_liqliq_flow_pattern = (get_flow_pattern_func)dlsym(api->handle, "get_liqliq_flow_pattern"); api->get_deposition_thickness = (get_deposition_thickness_func)dlsym(api->handle, "get_deposition_thickness"); + api->log_warning_message = (log_warning_message_func)dlsym(api->handle, "log_warning_message"); + api->log_information_message = (log_information_message_func)dlsym(api->handle, "log_information_message"); api->get_plugin_input_data_table_quantity = (get_plugin_input_data_table_quantity_func)dlsym(api->handle, "get_plugin_input_data_table_quantity"); api->get_tracer_id = (get_tracer_id_func)dlsym(api->handle, "get_tracer_id"); api->get_tracer_name_size = (get_tracer_name_size_func)dlsym(api->handle, "get_tracer_name_size"); diff --git a/src/alfasim_sdk/alfasim_sdk_api/detail/bootstrap_win.h b/src/alfasim_sdk/alfasim_sdk_api/detail/bootstrap_win.h index 797eb24b..021dc592 100644 --- a/src/alfasim_sdk/alfasim_sdk_api/detail/bootstrap_win.h +++ b/src/alfasim_sdk/alfasim_sdk_api/detail/bootstrap_win.h @@ -104,6 +104,8 @@ inline int alfasim_sdk_open(ALFAsimSDK_API* api) api->get_flow_pattern = (get_flow_pattern_func)GetProcAddress(api->handle, "get_flow_pattern"); api->get_liqliq_flow_pattern = (get_flow_pattern_func)GetProcAddress(api->handle, "get_liqliq_flow_pattern"); api->get_deposition_thickness = (get_deposition_thickness_func)GetProcAddress(api->handle, "get_deposition_thickness"); + api->log_warning_message = (log_warning_message_func)GetProcAddress(api->handle, "log_warning_message"); + api->log_information_message = (log_information_message_func)GetProcAddress(api->handle, "log_information_message"); api->get_plugin_input_data_table_quantity = (get_plugin_input_data_table_quantity_func)GetProcAddress(api->handle, "get_plugin_input_data_table_quantity"); api->get_tracer_id = (get_tracer_id_func)GetProcAddress(api->handle, "get_tracer_id"); api->get_tracer_name_size = (get_tracer_name_size_func)GetProcAddress(api->handle, "get_tracer_name_size");