From 16c492025c17262f60a69bd7b81438ffe114763b Mon Sep 17 00:00:00 2001 From: Thomas Fischer <thomas.fischer@ufz.de> Date: Tue, 11 Sep 2018 09:50:12 +0200 Subject: [PATCH] [PL] Check 'do flux-calc.' outside of create flux. --- ProcessLib/CalculateSurfaceFlux/Balance.h | 17 +++++------------ .../CreateGroundwaterFlowProcess.cpp | 11 +++++++++-- ProcessLib/HT/CreateHTProcess.cpp | 11 +++++++++-- 3 files changed, 23 insertions(+), 16 deletions(-) diff --git a/ProcessLib/CalculateSurfaceFlux/Balance.h b/ProcessLib/CalculateSurfaceFlux/Balance.h index 9b0fae43d08..ed97d64bfab 100644 --- a/ProcessLib/CalculateSurfaceFlux/Balance.h +++ b/ProcessLib/CalculateSurfaceFlux/Balance.h @@ -46,28 +46,21 @@ struct Balance output_mesh_file_name.c_str()); } - static std::unique_ptr<Balance> createBalance( - BaseLib::ConfigTree const& config, + static std::unique_ptr<ProcessLib::Balance> createBalance( + BaseLib::ConfigTree const& calculatesurfaceflux_config, std::vector<std::unique_ptr<MeshLib::Mesh>> const& meshes, std::string const& output_directory) { - auto calculatesurfaceflux_config = - //! \ogs_file_param{prj__processes__process__calculatesurfaceflux} - config.getConfigSubtreeOptional("calculatesurfaceflux"); - if (!calculatesurfaceflux_config) - return std::unique_ptr<Balance>(nullptr); - std::string mesh_name = //! \ogs_file_param{prj__processes__process__calculatesurfaceflux__mesh} - calculatesurfaceflux_config->getConfigParameter<std::string>( - "mesh"); + calculatesurfaceflux_config.getConfigParameter<std::string>("mesh"); std::string balance_pv_name = //! \ogs_file_param{prj__processes__process__calculatesurfaceflux__property_name} - calculatesurfaceflux_config->getConfigParameter<std::string>( + calculatesurfaceflux_config.getConfigParameter<std::string>( "property_name"); std::string balance_out_fname = //! \ogs_file_param{prj__processes__process__calculatesurfaceflux__output_mesh} - calculatesurfaceflux_config->getConfigParameter<std::string>( + calculatesurfaceflux_config.getConfigParameter<std::string>( "output_mesh"); if (mesh_name.empty()) diff --git a/ProcessLib/GroundwaterFlow/CreateGroundwaterFlowProcess.cpp b/ProcessLib/GroundwaterFlow/CreateGroundwaterFlowProcess.cpp index ec1f28a881b..2a60f2c0153 100644 --- a/ProcessLib/GroundwaterFlow/CreateGroundwaterFlowProcess.cpp +++ b/ProcessLib/GroundwaterFlow/CreateGroundwaterFlowProcess.cpp @@ -69,8 +69,15 @@ std::unique_ptr<Process> createGroundwaterFlowProcess( ProcessLib::createSecondaryVariables(config, secondary_variables, named_function_caller); - std::unique_ptr<ProcessLib::Balance> balance = - ProcessLib::Balance::createBalance(config, meshes, output_directory); + std::unique_ptr<ProcessLib::Balance> balance; + auto calculatesurfaceflux_config = + //! \ogs_file_param{prj__processes__process__calculatesurfaceflux} + config.getConfigSubtreeOptional("calculatesurfaceflux"); + if (calculatesurfaceflux_config) + { + balance = ProcessLib::Balance::createBalance( + *calculatesurfaceflux_config, meshes, output_directory); + } return std::make_unique<GroundwaterFlowProcess>( mesh, std::move(jacobian_assembler), parameters, integration_order, diff --git a/ProcessLib/HT/CreateHTProcess.cpp b/ProcessLib/HT/CreateHTProcess.cpp index 67c50b104f9..66a7c9a80ed 100644 --- a/ProcessLib/HT/CreateHTProcess.cpp +++ b/ProcessLib/HT/CreateHTProcess.cpp @@ -199,8 +199,15 @@ std::unique_ptr<Process> createHTProcess( DBUG("Use \'%s\' as Biot's constant.", biot_constant->name.c_str()); } - std::unique_ptr<ProcessLib::Balance> balance = - ProcessLib::Balance::createBalance(config, meshes, output_directory); + std::unique_ptr<ProcessLib::Balance> balance; + auto calculatesurfaceflux_config = + //! \ogs_file_param{prj__processes__process__calculatesurfaceflux} + config.getConfigSubtreeOptional("calculatesurfaceflux"); + if (calculatesurfaceflux_config) + { + balance = ProcessLib::Balance::createBalance( + *calculatesurfaceflux_config, meshes, output_directory); + } std::unique_ptr<HTMaterialProperties> material_properties = std::make_unique<HTMaterialProperties>( -- GitLab