From 0f34873b73e6fb3ba31bcc66e7ba8fcc1f36037c Mon Sep 17 00:00:00 2001 From: Dmitri Naumov <dmitri.naumov@ufz.de> Date: Wed, 24 Jan 2024 18:19:28 +0100 Subject: [PATCH] [PL] findProcessVariables finds optional variable Needed for ComponentTransport extension for non-isothermal conditions. --- ProcessLib/Utils/ProcessUtils.cpp | 11 +++++++---- ProcessLib/Utils/ProcessUtils.h | 4 ++-- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/ProcessLib/Utils/ProcessUtils.cpp b/ProcessLib/Utils/ProcessUtils.cpp index 1c3a726a805..ff4f3fc6810 100644 --- a/ProcessLib/Utils/ProcessUtils.cpp +++ b/ProcessLib/Utils/ProcessUtils.cpp @@ -77,19 +77,22 @@ std::vector<std::reference_wrapper<ProcessVariable>> findProcessVariables( std::vector<std::reference_wrapper<ProcessVariable>> findProcessVariables( std::vector<ProcessVariable> const& variables, - BaseLib::ConfigTree const& pv_config, - std::string const& tag) + BaseLib::ConfigTree const& pv_config, std::string const& tag, + bool const optional) { - std::vector<std::reference_wrapper<ProcessVariable>> vars; - //! \ogs_file_special auto var_names = pv_config.getConfigParameterList<std::string>(tag); if (var_names.empty()) { + if (optional) + { + return {}; + } OGS_FATAL("No entity is found with config tag <{:s}>.", tag); } + std::vector<std::reference_wrapper<ProcessVariable>> vars; std::vector<std::string> cached_var_names; for (std::string const& var_name : var_names) diff --git a/ProcessLib/Utils/ProcessUtils.h b/ProcessLib/Utils/ProcessUtils.h index c44900ac57b..e78c084f02d 100644 --- a/ProcessLib/Utils/ProcessUtils.h +++ b/ProcessLib/Utils/ProcessUtils.h @@ -50,7 +50,7 @@ std::vector<std::reference_wrapper<ProcessVariable>> findProcessVariables( std::vector<std::reference_wrapper<ProcessVariable>> findProcessVariables( std::vector<ProcessVariable> const& variables, - BaseLib::ConfigTree const& pv_config, - std::string const& tag); + BaseLib::ConfigTree const& pv_config, std::string const& tag, + bool const optional = false); } // namespace ProcessLib -- GitLab