diff --git a/.gitignore b/.gitignore index fb232640762e66b71deba71cefaf764e1a41d44b..eb0a0acbf1c813b9301e8470090ae970e5ece707 100644 --- a/.gitignore +++ b/.gitignore @@ -22,3 +22,4 @@ bin/summa_be bin/data_kinsol_state_vec.csv bin/plot_resuduial.py bin/state.png +bin/submission_script_array.sh diff --git a/build/cmake/CMakeLists.txt b/build/cmake/CMakeLists.txt index 93f92e8cd3bbb6c43ed91507316f360d2bec75c9..ce751334d577e4d996f4bc167f3c1511354d63de 100644 --- a/build/cmake/CMakeLists.txt +++ b/build/cmake/CMakeLists.txt @@ -35,10 +35,11 @@ if(NOT CMAKE_BUILD_TYPE) endif() # Add options for build type -set(CMAKE_CONFIGURATION_TYPES Debug Release Cluster Cluster_Debug Kinsol Kinsol_Debug Kinsol_Cluster IDA IDA_DEBUG) +set(CMAKE_CONFIGURATION_TYPES Debug Release Cluster Cluster_Debug Kinsol Kinsol_Debug Kinsol_Cluster Kinsol_Cluster_Debug IDA IDA_DEBUG) message("Build type: ${CMAKE_BUILD_TYPE}") # Set compiler flags -if(CMAKE_BUILD_TYPE STREQUAL Debug OR CMAKE_BUILD_TYPE STREQUAL Cluster_Debug OR CMAKE_BUILD_TYPE STREQUAL Kinsol_Debug) +if(CMAKE_BUILD_TYPE STREQUAL Debug OR CMAKE_BUILD_TYPE STREQUAL Cluster_Debug OR CMAKE_BUILD_TYPE STREQUAL Kinsol_Debug OR + CMAKE_BUILD_TYPE STREQUAL Kinsol_Cluster_Debug) message("Debug build.") add_definitions(-DDEBUG) set(SUMMA_NOAHMP_OPTIONS -g -O0 -ffree-form -ffree-line-length-none -fmax-errors=0 -fPIC -Wfatal-errors) @@ -74,7 +75,8 @@ elseif(CMAKE_BUILD_TYPE STREQUAL IDA OR CMAKE_BUILD_TYPE STREQUAL IDA_DEBUG) compile_with_ida(PARENT_DIR, ${DIR_SUNDIALS}) -elseif(CMAKE_BUILD_TYPE STREQUAL Kinsol OR CMAKE_BUILD_TYPE STREQUAL Kinsol_Debug OR CMAKE_BUILD_TYPE STREQUAL Kinsol_Cluster) +elseif(CMAKE_BUILD_TYPE STREQUAL Kinsol OR CMAKE_BUILD_TYPE STREQUAL Kinsol_Debug OR + CMAKE_BUILD_TYPE STREQUAL Kinsol_Cluster OR CMAKE_BUILD_TYPE STREQUAL Kinsol_Cluster_Debug) message("\nBuilding Kinsol\n") compile_with_kinsol(PARENT_DIR, ${DIR_SUNDIALS}) diff --git a/build/cmake/kinsol.cmake b/build/cmake/kinsol.cmake index 647c7f79a96e837b8040c850fa5d30fba458f5d1..f85d5a23851c8734b2fbea7afc444a59259fedf9 100644 --- a/build/cmake/kinsol.cmake +++ b/build/cmake/kinsol.cmake @@ -8,7 +8,7 @@ function(compile_with_kinsol PARENT_DIR, DIR_SUNDIALS) message("DIR_SUNDIALS: ${DIR_SUNDIALS}") # Building Summa with sundials on local machine - if (CMAKE_BUILD_TYPE STREQUAL Kinsol_Cluster) + if (CMAKE_BUILD_TYPE STREQUAL Kinsol_Cluster OR CMAKE_BUILD_TYPE STREQUAL Kinsol_Cluster_Debug) link_directories(${DIR_SUNDIALS}/lib64) set(CMAKE_BUILD_RPATH "${DIR_SUNDIALS}/lib64") set(SUMMA_INCLUDES diff --git a/build/includes/global/settings_functions.hpp b/build/includes/global/settings_functions.hpp index 255bf73bbcfbcd0816c37bba38d4505b8f6ee214..2c3720861806168319373a032d5447b62e6d98aa 100644 --- a/build/includes/global/settings_functions.hpp +++ b/build/includes/global/settings_functions.hpp @@ -83,17 +83,12 @@ File_Access_Actor_Settings readFileAccessActorSettings(std::string json_settings struct Job_Actor_Settings { std::string file_manager_path; - int output_structure_size; - bool output_csv; - std::string csv_path; }; template<class Inspector> bool inspect(Inspector& inspector, Job_Actor_Settings& job_actor_settings) { return inspector.object(job_actor_settings).fields( - inspector.field("file_manager_path", job_actor_settings.file_manager_path), - inspector.field("output_csv", job_actor_settings.output_csv), - inspector.field("csv_path", job_actor_settings.csv_path)); + inspector.field("file_manager_path", job_actor_settings.file_manager_path)); } Job_Actor_Settings readJobActorSettings(std::string json_settings_file); diff --git a/build/source/actors/global/settings_functions.cpp b/build/source/actors/global/settings_functions.cpp index d456b93f4903850d397a2470dbdd7e7018881770..aae1a97682b0cc4fafd94d6073f24d40a5c76bee 100644 --- a/build/source/actors/global/settings_functions.cpp +++ b/build/source/actors/global/settings_functions.cpp @@ -96,13 +96,6 @@ Job_Actor_Settings readJobActorSettings(std::string json_settings_file) { job_actor_settings.file_manager_path = getSettings(json_settings_file, parent_key, "file_manager_path", job_actor_settings.file_manager_path).value_or(""); - job_actor_settings.output_csv = getSettings(json_settings_file, parent_key, - "output_csv", job_actor_settings.output_csv).value_or(false); - - job_actor_settings.csv_path = getSettings(json_settings_file, parent_key, - "csv_path", job_actor_settings.csv_path).value_or(""); - - return job_actor_settings; } @@ -144,8 +137,6 @@ void check_settings_from_json(Distributed_Settings &distributed_settings, std::cout << "************ JOB_ACTOR_SETTINGS ************\n"; std::cout << job_actor_settings.file_manager_path << "\n"; - std::cout << job_actor_settings.output_csv << "\n"; - std::cout << job_actor_settings.csv_path << "\n\n\n"; std::cout << "************ HRU_ACTOR_SETTINGS ************\n"; std::cout << hru_actor_settings.print_output << "\n"; diff --git a/build/source/actors/hru_actor/cpp_code/hru_actor.cpp b/build/source/actors/hru_actor/cpp_code/hru_actor.cpp index 07b6b0bb53af34d0482b4f56e22be14a5235f3d3..b65673e0f3a1a549b1a957dd76f71cceae165fba 100644 --- a/build/source/actors/hru_actor/cpp_code/hru_actor.cpp +++ b/build/source/actors/hru_actor/cpp_code/hru_actor.cpp @@ -142,15 +142,6 @@ behavior hru_actor(stateful_actor<hru_state>* self, int refGRU, int indxGRU, " - indxGRU = " << self->state.indxGRU << " - refGRU = "<< self->state.refGRU << std::endl; aout(self) << "Error = " << err << "\n"; - self->send(self->state.parent, run_failure_v, self, self->state.indxGRU, err); - // self->quit(hru_error::run_hru_unhandleable); - // caf::exit_reason - // self->down_msg(); - self->quit(); - } - - - if (self->state.timestep == 543 && self->state.indxGRU == 2) { self->send(self->state.parent, hru_error::run_physics_unhandleable, self); self->quit(); return; @@ -184,7 +175,9 @@ behavior hru_actor(stateful_actor<hru_state>* self, int refGRU, int indxGRU, aout(self) << "Error: HRU_Actor - writeHRUToOutputStructure - HRU = " << self->state.indxHRU << " - indxGRU = " << self->state.indxGRU << " - refGRU = "<< self->state.refGRU << std::endl; aout(self) << "Error = " << err << "\n"; + self->send(self->state.parent, hru_error::run_physics_unhandleable, self); self->quit(); + return; } self->state.timestep++; diff --git a/build/source/actors/job_actor/job_actor.cpp b/build/source/actors/job_actor/job_actor.cpp index 1e991f1906d3a3eb1ed6595cfb1c56bedcdb91c2..c3999cf8796f02ce47f5b1448d921db08f2ee6ce 100644 --- a/build/source/actors/job_actor/job_actor.cpp +++ b/build/source/actors/job_actor/job_actor.cpp @@ -80,8 +80,6 @@ behavior job_actor(stateful_actor<job_state>* self, int start_gru, int num_gru, return {}; // Failure } - // initCsvOutputFile(self); - // Spawn the file_access_actor. This will return the number of forcing files we are working with self->state.file_access_actor = self->spawn(file_access_actor, self->state.start_gru, self->state.num_gru, self->state.file_access_actor_settings, self); diff --git a/build/source/actors/summa_actor/summa_backup_server.cpp b/build/source/actors/summa_actor/summa_backup_server.cpp index fcf95c0812bb64642d2ca2c25397161a12dd6936..ac5df402748494a957657ecc0e4716811bf34b54 100644 --- a/build/source/actors/summa_actor/summa_backup_server.cpp +++ b/build/source/actors/summa_actor/summa_backup_server.cpp @@ -21,10 +21,6 @@ behavior summa_backup_server_init(stateful_actor<summa_server_state>* self, Dist self->state.job_actor_settings = job_actor_settings; self->state.hru_actor_settings = hru_actor_settings; - self->state.csv_file_path = self->state.job_actor_settings.csv_path; - self->state.csv_file_path += self->state.csv_output_name; - - self->set_down_handler([=](const down_msg& dm){ if (self->state.current_server_actor == self) { aout(self) << "\n ******DOWN HANDLER CALLED******\n"; diff --git a/build/source/actors/summa_actor/summa_server.cpp b/build/source/actors/summa_actor/summa_server.cpp index 3b0ff5794ba327cdff40704ec179e20ba4d1e743..37adb0d482e363353e3a1f7cf0098835959623f4 100644 --- a/build/source/actors/summa_actor/summa_server.cpp +++ b/build/source/actors/summa_actor/summa_server.cpp @@ -30,10 +30,6 @@ behavior summa_server_init(stateful_actor<summa_server_state>* self, Distributed self->state.distributed_settings.num_hru_per_batch); // self->state.batch_container.printBatches(); - self->state.csv_file_path = self->state.job_actor_settings.csv_path; - self->state.csv_file_path += self->state.csv_output_name; - initializeCSVOutput(self->state.csv_file_path); - return summa_server(self); }