From 25da6ba1e5fa4952da95309469696b4c409fc47f Mon Sep 17 00:00:00 2001 From: Thomas Fischer <thomas.fischer@ufz.de> Date: Tue, 29 Jan 2019 14:23:49 +0100 Subject: [PATCH] [PL/HT] Forward the MPL::Media object to HTMaterialProperties. --- Applications/ApplicationsLib/ProjectData.cpp | 2 +- ProcessLib/HT/CreateHTProcess.cpp | 8 +++++++- ProcessLib/HT/CreateHTProcess.h | 9 ++++++++- ProcessLib/HT/HTMaterialProperties.h | 6 ++++++ 4 files changed, 22 insertions(+), 3 deletions(-) diff --git a/Applications/ApplicationsLib/ProjectData.cpp b/Applications/ApplicationsLib/ProjectData.cpp index 3b351488446..58be51290e9 100644 --- a/Applications/ApplicationsLib/ProjectData.cpp +++ b/Applications/ApplicationsLib/ProjectData.cpp @@ -609,7 +609,7 @@ void ProjectData::parseProcesses(BaseLib::ConfigTree const& processes_config, process = ProcessLib::HT::createHTProcess( *_mesh_vec[0], std::move(jacobian_assembler), _process_variables, _parameters, integration_order, - process_config, _mesh_vec, output_directory); + process_config, _mesh_vec, output_directory, _media); } else #endif diff --git a/ProcessLib/HT/CreateHTProcess.cpp b/ProcessLib/HT/CreateHTProcess.cpp index 24023603476..64b03599173 100644 --- a/ProcessLib/HT/CreateHTProcess.cpp +++ b/ProcessLib/HT/CreateHTProcess.cpp @@ -10,6 +10,7 @@ #include "CreateHTProcess.h" #include "MaterialLib/Fluid/FluidProperties/CreateFluidProperties.h" +#include "MaterialLib/MPL/CreateMaterialSpatialDistributionMap.h" #include "MaterialLib/PorousMedium/CreatePorousMediaProperties.h" #include "MeshLib/IO/readMeshFromFile.h" #include "ParameterLib/ConstantParameter.h" @@ -34,7 +35,8 @@ std::unique_ptr<Process> createHTProcess( unsigned const integration_order, BaseLib::ConfigTree const& config, std::vector<std::unique_ptr<MeshLib::Mesh>> const& meshes, - std::string const& output_directory) + std::string const& output_directory, + std::map<int, std::unique_ptr<MaterialPropertyLib::Medium>> const& media) { //! \ogs_file_param{prj__processes__process__type} config.checkConfigParameter("type", "HT"); @@ -216,11 +218,15 @@ std::unique_ptr<Process> createHTProcess( output_directory); } + auto media_map = + MaterialPropertyLib::createMaterialSpatialDistributionMap(media, mesh); + std::unique_ptr<HTMaterialProperties> material_properties = std::make_unique<HTMaterialProperties>( std::move(porous_media_properties), density_solid, std::move(fluid_properties), + std::move(media_map), has_fluid_thermal_dispersivity, *thermal_dispersivity_longitudinal, *thermal_dispersivity_transversal, diff --git a/ProcessLib/HT/CreateHTProcess.h b/ProcessLib/HT/CreateHTProcess.h index 2e3e78644e1..4ac2b63871c 100644 --- a/ProcessLib/HT/CreateHTProcess.h +++ b/ProcessLib/HT/CreateHTProcess.h @@ -10,8 +10,14 @@ #pragma once #include <memory> + #include "ProcessLib/Process.h" +namespace MaterialPropertyLib +{ +class Medium; +} + namespace ProcessLib { namespace HT @@ -24,7 +30,8 @@ std::unique_ptr<Process> createHTProcess( unsigned const integration_order, BaseLib::ConfigTree const& config, std::vector<std::unique_ptr<MeshLib::Mesh>> const& meshes, - std::string const& output_directory); + std::string const& output_directory, + std::map<int, std::unique_ptr<MaterialPropertyLib::Medium>> const& media); } // namespace HT } // namespace ProcessLib diff --git a/ProcessLib/HT/HTMaterialProperties.h b/ProcessLib/HT/HTMaterialProperties.h index 08d55043dd7..fd52906b1fa 100644 --- a/ProcessLib/HT/HTMaterialProperties.h +++ b/ProcessLib/HT/HTMaterialProperties.h @@ -13,6 +13,7 @@ #include <utility> #include "MaterialLib/Fluid/FluidProperties/FluidProperties.h" +#include "MaterialLib/MPL/MaterialSpatialDistributionMap.h" #include "MaterialLib/PorousMedium/PorousMediaProperties.h" namespace ProcessLib @@ -30,6 +31,8 @@ struct HTMaterialProperties final ParameterLib::Parameter<double> const& density_solid_, std::unique_ptr<MaterialLib::Fluid::FluidProperties>&& fluid_properties_, + std::unique_ptr<MaterialPropertyLib::MaterialSpatialDistributionMap>&& + media_map_, bool const has_fluid_thermal_dispersivity_, ParameterLib::Parameter<double> const& thermal_dispersivity_longitudinal_, @@ -46,6 +49,7 @@ struct HTMaterialProperties final : porous_media_properties(std::move(porous_media_properties_)), density_solid(density_solid_), fluid_properties(std::move(fluid_properties_)), + media_map(std::move(media_map_)), specific_heat_capacity_solid(specific_heat_capacity_solid_), has_fluid_thermal_dispersivity(has_fluid_thermal_dispersivity_), thermal_dispersivity_longitudinal(thermal_dispersivity_longitudinal_), @@ -68,6 +72,8 @@ struct HTMaterialProperties final MaterialLib::PorousMedium::PorousMediaProperties porous_media_properties; ParameterLib::Parameter<double> const& density_solid; std::unique_ptr<MaterialLib::Fluid::FluidProperties> fluid_properties; + std::unique_ptr<MaterialPropertyLib::MaterialSpatialDistributionMap> + media_map; ParameterLib::Parameter<double> const& specific_heat_capacity_solid; bool const has_fluid_thermal_dispersivity; ParameterLib::Parameter<double> const& thermal_dispersivity_longitudinal; -- GitLab