diff --git a/Applications/ApplicationsLib/ProjectData.cpp b/Applications/ApplicationsLib/ProjectData.cpp index 3b3514884469b88d8f6565b77f217f580fa9d0d3..58be51290e959030b4a0c6177ceee7f8a90d01f9 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 24023603476b7dca5bcccddd07ec9ebb42d159c4..64b035991732e7ff91d1a87109932536b0974453 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 2e3e78644e1bef2bbba9e36273f1341e178c95a5..4ac2b63871cef949ab5eb99f7421e13081b8e275 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 08d55043dd79a7c8c7ca247d0583deff46aab987..fd52906b1fa484f313a2470b7574cd75e6af64fe 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;