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/Documentation/ProjectFile/prj/processes/process/HT/thermal_dispersivity/i_thermal_dispersivity.md b/Documentation/ProjectFile/prj/processes/process/HT/thermal_dispersivity/i_thermal_dispersivity.md deleted file mode 100644 index 570535f773e77fc750991eb140352285f56f3836..0000000000000000000000000000000000000000 --- a/Documentation/ProjectFile/prj/processes/process/HT/thermal_dispersivity/i_thermal_dispersivity.md +++ /dev/null @@ -1 +0,0 @@ -Optional input for thermal dispersion properties. diff --git a/Documentation/ProjectFile/prj/processes/process/HT/thermal_dispersivity/t_longitudinal.md b/Documentation/ProjectFile/prj/processes/process/HT/thermal_dispersivity/t_longitudinal.md deleted file mode 100644 index 29716b0781cedb503278e076b570e9208f86b10c..0000000000000000000000000000000000000000 --- a/Documentation/ProjectFile/prj/processes/process/HT/thermal_dispersivity/t_longitudinal.md +++ /dev/null @@ -1 +0,0 @@ -Longitudinal thermal dispersivity. diff --git a/Documentation/ProjectFile/prj/processes/process/HT/thermal_dispersivity/t_transversal.md b/Documentation/ProjectFile/prj/processes/process/HT/thermal_dispersivity/t_transversal.md deleted file mode 100644 index 51ec65cbe035ee878252bf15c9a62f74e2661772..0000000000000000000000000000000000000000 --- a/Documentation/ProjectFile/prj/processes/process/HT/thermal_dispersivity/t_transversal.md +++ /dev/null @@ -1 +0,0 @@ -Transversal thermal dispersivity. diff --git a/ProcessLib/HT/CreateHTProcess.cpp b/ProcessLib/HT/CreateHTProcess.cpp index 24023603476b7dca5bcccddd07ec9ebb42d159c4..20602e81b21ac99a91424eedbfbc0606d7d47667 100644 --- a/ProcessLib/HT/CreateHTProcess.cpp +++ b/ProcessLib/HT/CreateHTProcess.cpp @@ -9,8 +9,7 @@ #include "CreateHTProcess.h" -#include "MaterialLib/Fluid/FluidProperties/CreateFluidProperties.h" -#include "MaterialLib/PorousMedium/CreatePorousMediaProperties.h" +#include "MaterialLib/MPL/CreateMaterialSpatialDistributionMap.h" #include "MeshLib/IO/readMeshFromFile.h" #include "ParameterLib/ConstantParameter.h" #include "ParameterLib/Utils.h" @@ -34,7 +33,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"); @@ -79,15 +79,6 @@ std::unique_ptr<Process> createHTProcess( const int _heat_transport_process_id = 0; const int _hydraulic_process_id = 1; - MaterialLib::PorousMedium::PorousMediaProperties porous_media_properties{ - MaterialLib::PorousMedium::createPorousMediaProperties(mesh, config, - parameters)}; - - //! \ogs_file_param{prj__processes__process__HT__fluid} - auto const& fluid_config = config.getConfigSubtree("fluid"); - auto fluid_properties = - MaterialLib::Fluid::createFluidProperties(fluid_config); - // Parameter for the density of the solid. auto& density_solid = ParameterLib::findParameter<double>( config, @@ -103,46 +94,6 @@ std::unique_ptr<Process> createHTProcess( DBUG("Use '%s' as specific_heat_capacity_solid parameter.", specific_heat_capacity_solid.name.c_str()); - // Parameter for the thermal conductivity of the solid (only one scalar per - // element, i.e., the isotropic case is handled at the moment) - - ParameterLib::ConstantParameter<double> - default_thermal_dispersivity_longitudinal( - "default thermal dispersivity longitudinal", 0.); - ParameterLib::ConstantParameter<double> - default_thermal_dispersivity_transversal( - "default thermal dispersivity transversal", 0.); - - ParameterLib::Parameter<double>* thermal_dispersivity_longitudinal = - &default_thermal_dispersivity_longitudinal; - ParameterLib::Parameter<double>* thermal_dispersivity_transversal = - &default_thermal_dispersivity_transversal; - auto const dispersion_config = - //! \ogs_file_param{prj__processes__process__HT__thermal_dispersivity} - config.getConfigSubtreeOptional("thermal_dispersivity"); - bool const has_fluid_thermal_dispersivity = - static_cast<bool>(dispersion_config); - if (dispersion_config) - { - thermal_dispersivity_longitudinal = &ParameterLib::findParameter< - double>( - *dispersion_config, - //! \ogs_file_param_special{prj__processes__process__HT__thermal_dispersivity__longitudinal} - "longitudinal", parameters, 1); - DBUG("Use '%s' as thermal_dispersivity_longitudinal parameter.", - thermal_dispersivity_longitudinal->name.c_str()); - - // Parameter for the thermal conductivity of the solid (only one scalar - // per - // element, i.e., the isotropic case is handled at the moment) - thermal_dispersivity_transversal = &ParameterLib::findParameter<double>( - *dispersion_config, - //! \ogs_file_param_special{prj__processes__process__HT__thermal_dispersivity__transversal} - "transversal", parameters, 1); - DBUG("Use '%s' as thermal_dispersivity_transversal parameter.", - thermal_dispersivity_transversal->name.c_str()); - } - // Parameter for the thermal conductivity of the solid (only one scalar per // element, i.e., the isotropic case is handled at the moment) auto& thermal_conductivity_solid = ParameterLib::findParameter<double>( @@ -152,14 +103,6 @@ std::unique_ptr<Process> createHTProcess( DBUG("Use '%s' as thermal_conductivity_solid parameter.", thermal_conductivity_solid.name.c_str()); - // Parameter for the thermal conductivity of the fluid. - auto& thermal_conductivity_fluid = ParameterLib::findParameter<double>( - config, - //! \ogs_file_param_special{prj__processes__process__HT__thermal_conductivity_fluid} - "thermal_conductivity_fluid", parameters, 1); - DBUG("Use '%s' as thermal_conductivity_fluid parameter.", - thermal_conductivity_fluid.name.c_str()); - // Specific body force parameter. Eigen::VectorXd specific_body_force; std::vector<double> const b = @@ -216,17 +159,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), - has_fluid_thermal_dispersivity, - *thermal_dispersivity_longitudinal, - *thermal_dispersivity_transversal, + std::move(media_map), specific_heat_capacity_solid, thermal_conductivity_solid, - thermal_conductivity_fluid, has_fluid_thermal_expansion, *solid_thermal_expansion, *biot_constant, 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/HTFEM.h b/ProcessLib/HT/HTFEM.h index bf6372035e13d6e153d59a76095f3371412afa09..ac841d3c3029c2d13f085efd90fe04262be4cc43 100644 --- a/ProcessLib/HT/HTFEM.h +++ b/ProcessLib/HT/HTFEM.h @@ -14,6 +14,8 @@ #include "HTMaterialProperties.h" +#include "MaterialLib/MPL/Medium.h" +#include "MaterialLib/MPL/PropertyType.h" #include "NumLib/DOF/DOFTableUtil.h" #include "NumLib/Extrapolation/ExtrapolatableElement.h" #include "NumLib/Fem/FiniteElement/TemplateIsoparametric.h" @@ -27,6 +29,41 @@ namespace ProcessLib { namespace HT { + +template <int GlobalDim> +Eigen::Matrix<double, GlobalDim, GlobalDim> intrinsicPermeability( + MaterialPropertyLib::PropertyDataType const& values) +{ + if (boost::get<double>(&values)) + { + return Eigen::Matrix<double, GlobalDim, GlobalDim>::Identity() * + boost::get<double>(values); + } + if (boost::get<MaterialPropertyLib::Vector>(&values)) + { + return Eigen::Map<Eigen::Matrix<double, GlobalDim, 1> const>( + boost::get<MaterialPropertyLib::Vector>(values).data(), + GlobalDim, 1) + .asDiagonal(); + } + if (boost::get<MaterialPropertyLib::Tensor2d>(&values)) + { + return Eigen::Map<Eigen::Matrix<double, GlobalDim, GlobalDim> const>( + boost::get<MaterialPropertyLib::Tensor2d>(values).data(), GlobalDim, + GlobalDim); + } + if (boost::get<MaterialPropertyLib::Tensor>(&values)) + { + return Eigen::Map<Eigen::Matrix<double, GlobalDim, GlobalDim> const>( + boost::get<MaterialPropertyLib::Tensor>(values).data(), GlobalDim, + GlobalDim); + } + OGS_FATAL( + "Intrinsic permeability parameter values size is neither one nor %d " + "nor %d squared.", + GlobalDim, GlobalDim); +} + template <typename ShapeFunction, typename IntegrationMethod, unsigned GlobalDim> class HTFEM : public HTLocalAssemblerInterface @@ -90,10 +127,9 @@ public: /// Computes the flux in the point \c pnt_local_coords that is given in /// local coordinates using the values from \c local_x. - Eigen::Vector3d getFlux( - MathLib::Point3d const& pnt_local_coords, - double const t, - std::vector<double> const& local_x) const override + Eigen::Vector3d getFlux(MathLib::Point3d const& pnt_local_coords, + double const /*t*/, + std::vector<double> const& local_x) const override { // eval dNdx and invJ at given point using FemType = @@ -114,36 +150,45 @@ public: ParameterLib::SpatialPosition pos; pos.setElementID(this->_element.getID()); - MaterialLib::Fluid::FluidProperty::ArrayType vars; + MaterialPropertyLib::VariableArray vars; // local_x contains the local temperature and pressure values - NumLib::shapeFunctionInterpolate( - local_x, shape_matrices.N, - vars[static_cast<int>(MaterialLib::Fluid::PropertyVariableType::T)], - vars[static_cast<int>( - MaterialLib::Fluid::PropertyVariableType::p)]); - - auto const K = - this->_material_properties.porous_media_properties - .getIntrinsicPermeability(t, pos) - .getValue(t, pos, 0.0, - vars[static_cast<int>( - MaterialLib::Fluid::PropertyVariableType::T)]); - - auto const mu = this->_material_properties.fluid_properties->getValue( - MaterialLib::Fluid::FluidPropertyType::Viscosity, vars); + double T_int_pt = 0.0; + double p_int_pt = 0.0; + NumLib::shapeFunctionInterpolate(local_x, shape_matrices.N, T_int_pt, + p_int_pt); + + vars[static_cast<int>(MaterialPropertyLib::Variable::temperature)] = + T_int_pt; + vars[static_cast<int>(MaterialPropertyLib::Variable::phase_pressure)] = + p_int_pt; + + auto const& medium = + *_material_properties.media_map->getMedium(_element.getID()); + auto const& liquid_phase = medium.phase("AqueousLiquid"); + auto const& solid_phase = medium.phase("Solid"); + + auto const K = intrinsicPermeability<GlobalDim>( + solid_phase + .property(MaterialPropertyLib::PropertyType::permeability) + .value(vars)); + + auto const mu = + liquid_phase.property(MaterialPropertyLib::PropertyType::viscosity) + .template value<double>(vars); GlobalDimMatrixType const K_over_mu = K / mu; auto const p_nodal_values = Eigen::Map<const NodalVectorType>( - &local_x[local_x.size()/2], ShapeFunction::NPOINTS); + &local_x[local_x.size() / 2], ShapeFunction::NPOINTS); GlobalDimVectorType q = -K_over_mu * shape_matrices.dNdx * p_nodal_values; if (this->_material_properties.has_gravity) { auto const rho_w = - this->_material_properties.fluid_properties->getValue( - MaterialLib::Fluid::FluidPropertyType::Density, vars); + liquid_phase + .property(MaterialPropertyLib::PropertyType::density) + .template value<double>(vars); auto const b = this->_material_properties.specific_body_force; q += K_over_mu * rho_w * b; } @@ -173,7 +218,8 @@ protected: auto const specific_heat_capacity_solid = _material_properties.specific_heat_capacity_solid(t, pos)[0]; - auto const solid_density = _material_properties.density_solid(t, pos)[0]; + auto const solid_density = + _material_properties.density_solid(t, pos)[0]; return solid_density * specific_heat_capacity_solid * (1 - porosity) + fluid_density * specific_heat_capacity_fluid * porosity; @@ -187,21 +233,30 @@ protected: { auto const thermal_conductivity_solid = _material_properties.thermal_conductivity_solid(t, pos)[0]; + + auto const& medium = + *_material_properties.media_map->getMedium(_element.getID()); + auto const& liquid_phase = medium.phase("AqueousLiquid"); auto const thermal_conductivity_fluid = - _material_properties.thermal_conductivity_fluid(t, pos)[0]; + liquid_phase + .property( + MaterialPropertyLib::PropertyType::thermal_conductivity) + .template value<double>(); + double const thermal_conductivity = thermal_conductivity_solid * (1 - porosity) + thermal_conductivity_fluid * porosity; - if (!_material_properties.has_fluid_thermal_dispersivity) - { - return thermal_conductivity * I; - } - - double const thermal_dispersivity_longitudinal = - _material_properties.thermal_dispersivity_longitudinal(t, pos)[0]; + auto const thermal_dispersivity_longitudinal = + medium + .property(MaterialPropertyLib::PropertyType:: + thermal_longitudinal_dispersivity) + .template value<double>(); auto const thermal_dispersivity_transversal = - _material_properties.thermal_dispersivity_transversal(t, pos)[0]; + medium + .property(MaterialPropertyLib::PropertyType:: + thermal_transversal_dispersivity) + .template value<double>(); double const velocity_magnitude = velocity.norm(); @@ -210,17 +265,17 @@ protected: return thermal_conductivity * I; } - GlobalDimMatrixType const thermal_dispersivity = - fluid_density * specific_heat_capacity_fluid * - (thermal_dispersivity_transversal * velocity_magnitude * I + - (thermal_dispersivity_longitudinal - - thermal_dispersivity_transversal) / - velocity_magnitude * velocity * velocity.transpose()); - return thermal_conductivity * I + thermal_dispersivity; + GlobalDimMatrixType const thermal_dispersivity = + fluid_density * specific_heat_capacity_fluid * + (thermal_dispersivity_transversal * velocity_magnitude * I + + (thermal_dispersivity_longitudinal - + thermal_dispersivity_transversal) / + velocity_magnitude * velocity * velocity.transpose()); + return thermal_conductivity * I + thermal_dispersivity; } std::vector<double> const& getIntPtDarcyVelocityLocal( - const double t, std::vector<double> const& local_p, + const double /*t*/, std::vector<double> const& local_p, std::vector<double> const& local_T, std::vector<double>& cache) const { auto const n_integration_points = @@ -234,11 +289,16 @@ protected: ParameterLib::SpatialPosition pos; pos.setElementID(_element.getID()); - MaterialLib::Fluid::FluidProperty::ArrayType vars; + MaterialPropertyLib::VariableArray vars; auto const p_nodal_values = Eigen::Map<const NodalVectorType>( &local_p[0], ShapeFunction::NPOINTS); + auto const& medium = + *_material_properties.media_map->getMedium(_element.getID()); + auto const& liquid_phase = medium.phase("AqueousLiquid"); + auto const& solid_phase = medium.phase("Solid"); + for (unsigned ip = 0; ip < n_integration_points; ++ip) { auto const& ip_data = _ip_data[ip]; @@ -251,17 +311,21 @@ protected: double p_int_pt = 0.0; NumLib::shapeFunctionInterpolate(local_p, N, p_int_pt); NumLib::shapeFunctionInterpolate(local_T, N, T_int_pt); + + vars[static_cast<int>(MaterialPropertyLib::Variable::temperature)] = + T_int_pt; vars[static_cast<int>( - MaterialLib::Fluid::PropertyVariableType::T)] = T_int_pt; - vars[static_cast<int>( - MaterialLib::Fluid::PropertyVariableType::p)] = p_int_pt; + MaterialPropertyLib::Variable::phase_pressure)] = p_int_pt; - auto const K = _material_properties.porous_media_properties - .getIntrinsicPermeability(t, pos) - .getValue(t, pos, 0.0, T_int_pt); + auto const K = intrinsicPermeability<GlobalDim>( + solid_phase + .property(MaterialPropertyLib::PropertyType::permeability) + .value(vars)); - auto const mu = _material_properties.fluid_properties->getValue( - MaterialLib::Fluid::FluidPropertyType::Viscosity, vars); + auto const mu = + liquid_phase + .property(MaterialPropertyLib::PropertyType::viscosity) + .template value<double>(vars); GlobalDimMatrixType const K_over_mu = K / mu; cache_mat.col(ip).noalias() = -K_over_mu * dNdx * p_nodal_values; @@ -269,8 +333,9 @@ protected: if (_material_properties.has_gravity) { auto const rho_w = - _material_properties.fluid_properties->getValue( - MaterialLib::Fluid::FluidPropertyType::Density, vars); + liquid_phase + .property(MaterialPropertyLib::PropertyType::density) + .template value<double>(vars); auto const b = _material_properties.specific_body_force; // here it is assumed that the vector b is directed 'downwards' cache_mat.col(ip).noalias() += K_over_mu * rho_w * b; diff --git a/ProcessLib/HT/HTMaterialProperties.h b/ProcessLib/HT/HTMaterialProperties.h index a80663c2489c116651b95a8b4cfdcde50de0985b..bab6e5e08b740c60766d021b67d2134216b34068 100644 --- a/ProcessLib/HT/HTMaterialProperties.h +++ b/ProcessLib/HT/HTMaterialProperties.h @@ -12,8 +12,7 @@ #include <memory> #include <utility> -#include "MaterialLib/Fluid/FluidProperties/FluidProperties.h" -#include "MaterialLib/PorousMedium/PorousMediaProperties.h" +#include "MaterialLib/MPL/MaterialSpatialDistributionMap.h" namespace ProcessLib { @@ -22,36 +21,23 @@ struct Parameter; namespace HT { -struct HTMaterialProperties +struct HTMaterialProperties final { HTMaterialProperties( - MaterialLib::PorousMedium::PorousMediaProperties&& - porous_media_properties_, ParameterLib::Parameter<double> const& density_solid_, - std::unique_ptr<MaterialLib::Fluid::FluidProperties>&& - fluid_properties_, - bool const has_fluid_thermal_dispersivity_, - ParameterLib::Parameter<double> const& - thermal_dispersivity_longitudinal_, - ParameterLib::Parameter<double> const& - thermal_dispersivity_transversal_, + std::unique_ptr<MaterialPropertyLib::MaterialSpatialDistributionMap>&& + media_map_, ParameterLib::Parameter<double> const& specific_heat_capacity_solid_, ParameterLib::Parameter<double> const& thermal_conductivity_solid_, - ParameterLib::Parameter<double> const& thermal_conductivity_fluid_, bool const has_fluid_thermal_expansion_, ParameterLib::Parameter<double> const& solid_thermal_expansion_, ParameterLib::Parameter<double> const& biot_constant_, Eigen::VectorXd specific_body_force_, bool const has_gravity_) - : porous_media_properties(std::move(porous_media_properties_)), - density_solid(density_solid_), - fluid_properties(std::move(fluid_properties_)), + : density_solid(density_solid_), + 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_), - thermal_dispersivity_transversal(thermal_dispersivity_transversal_), thermal_conductivity_solid(thermal_conductivity_solid_), - thermal_conductivity_fluid(thermal_conductivity_fluid_), has_fluid_thermal_expansion(has_fluid_thermal_expansion_), solid_thermal_expansion(solid_thermal_expansion_), biot_constant(biot_constant_), @@ -60,15 +46,16 @@ struct HTMaterialProperties { } - MaterialLib::PorousMedium::PorousMediaProperties porous_media_properties; + HTMaterialProperties(HTMaterialProperties&&) = delete; + HTMaterialProperties(HTMaterialProperties const&) = delete; + void operator=(HTMaterialProperties&&) = delete; + void operator=(HTMaterialProperties const&) = delete; + 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; - ParameterLib::Parameter<double> const& thermal_dispersivity_transversal; ParameterLib::Parameter<double> const& thermal_conductivity_solid; - ParameterLib::Parameter<double> const& thermal_conductivity_fluid; bool const has_fluid_thermal_expansion; ParameterLib::Parameter<double> const& solid_thermal_expansion; diff --git a/ProcessLib/HT/MonolithicHTFEM.h b/ProcessLib/HT/MonolithicHTFEM.h index 31986d6cae17374974329e2699f5fa55c8c8960a..3b6c268c23d7fd63cefdaaf9a682af43e93b9b0e 100644 --- a/ProcessLib/HT/MonolithicHTFEM.h +++ b/ProcessLib/HT/MonolithicHTFEM.h @@ -15,6 +15,7 @@ #include <vector> #include "HTMaterialProperties.h" +#include "MaterialLib/MPL/Medium.h" #include "NumLib/DOF/DOFTableUtil.h" #include "NumLib/Extrapolation/ExtrapolatableElement.h" #include "NumLib/Fem/FiniteElement/TemplateIsoparametric.h" @@ -97,13 +98,17 @@ public: Eigen::Map<const NodalVectorType>(&local_x[num_nodes], num_nodes); auto const& process_data = this->_material_properties; + auto const& medium = + *process_data.media_map->getMedium(this->_element.getID()); + auto const& liquid_phase = medium.phase("AqueousLiquid"); + auto const& solid_phase = medium.phase("Solid"); auto const& b = process_data.specific_body_force; GlobalDimMatrixType const& I( GlobalDimMatrixType::Identity(GlobalDim, GlobalDim)); - MaterialLib::Fluid::FluidProperty::ArrayType vars; + MaterialPropertyLib::VariableArray vars; unsigned const n_integration_points = this->_integration_method.getNumberOfPoints(); @@ -115,8 +120,8 @@ public: // \todo the argument to getValue() has to be changed for non // constant storage model auto const specific_storage = - process_data.porous_media_properties.getSpecificStorage(t, pos) - .getValue(0.0); + solid_phase.property(MaterialPropertyLib::PropertyType::storage) + .template value<double>(vars); auto const& ip_data = this->_ip_data[ip]; auto const& N = ip_data.N; @@ -128,30 +133,38 @@ public: // Order matters: First T, then P! NumLib::shapeFunctionInterpolate(local_x, N, T_int_pt, p_int_pt); - // \todo the first argument has to be changed for non constant - // porosity model auto const porosity = - process_data.porous_media_properties.getPorosity(t, pos) - .getValue(t, pos, 0.0, T_int_pt); - auto const intrinsic_permeability = - process_data.porous_media_properties.getIntrinsicPermeability( - t, pos).getValue(t, pos, 0.0, T_int_pt); + solid_phase + .property(MaterialPropertyLib::PropertyType::porosity) + .template value<double>(vars); + auto const intrinsic_permeability = + intrinsicPermeability<GlobalDim>( + solid_phase + .property( + MaterialPropertyLib::PropertyType::permeability) + .value(vars)); + + vars[static_cast<int>(MaterialPropertyLib::Variable::temperature)] = + T_int_pt; vars[static_cast<int>( - MaterialLib::Fluid::PropertyVariableType::T)] = T_int_pt; - vars[static_cast<int>( - MaterialLib::Fluid::PropertyVariableType::p)] = p_int_pt; + MaterialPropertyLib::Variable::phase_pressure)] = p_int_pt; + auto const specific_heat_capacity_fluid = - process_data.fluid_properties->getValue( - MaterialLib::Fluid::FluidPropertyType::HeatCapacity, vars); + liquid_phase + .property(MaterialPropertyLib::specific_heat_capacity) + .template value<double>(vars); // Use the fluid density model to compute the density - auto const fluid_density = process_data.fluid_properties->getValue( - MaterialLib::Fluid::FluidPropertyType::Density, vars); + auto const fluid_density = + liquid_phase + .property(MaterialPropertyLib::PropertyType::density) + .template value<double>(vars); // Use the viscosity model to compute the viscosity - auto const viscosity = process_data.fluid_properties->getValue( - MaterialLib::Fluid::FluidPropertyType::Viscosity, vars); + auto const viscosity = liquid_phase + .property(MaterialPropertyLib::PropertyType::viscosity) + .template value<double>(vars); GlobalDimMatrixType K_over_mu = intrinsic_permeability / viscosity; GlobalDimVectorType const velocity = diff --git a/ProcessLib/HT/StaggeredHTFEM-impl.h b/ProcessLib/HT/StaggeredHTFEM-impl.h index 8f1b0b798a69385b431daeab3ce3a8fbebdcb1ed..63c3024ae54f6f3d300ebdd02ba674a451ce94ba 100644 --- a/ProcessLib/HT/StaggeredHTFEM-impl.h +++ b/ProcessLib/HT/StaggeredHTFEM-impl.h @@ -13,6 +13,8 @@ #include "StaggeredHTFEM.h" +#include "MaterialLib/MPL/Medium.h" +#include "MaterialLib/MPL/PropertyType.h" #include "ProcessLib/CoupledSolutionsForStaggeredScheme.h" namespace ProcessLib @@ -70,10 +72,14 @@ void StaggeredHTFEM<ShapeFunction, IntegrationMethod, GlobalDim>:: pos.setElementID(this->_element.getID()); auto const& material_properties = this->_material_properties; + auto const& medium = *this->_material_properties.media_map->getMedium( + this->_element.getID()); + auto const& liquid_phase = medium.phase("AqueousLiquid"); + auto const& solid_phase = medium.phase("Solid"); auto const& b = material_properties.specific_body_force; - MaterialLib::Fluid::FluidProperty::ArrayType vars; + MaterialPropertyLib::VariableArray vars; unsigned const n_integration_points = this->_integration_method.getNumberOfPoints(); @@ -87,45 +93,44 @@ void StaggeredHTFEM<ShapeFunction, IntegrationMethod, GlobalDim>:: auto const& dNdx = ip_data.dNdx; auto const& w = ip_data.integration_weight; - double p_at_xi = 0.; - NumLib::shapeFunctionInterpolate(local_p, N, p_at_xi); - double T1_at_xi = 0.; - NumLib::shapeFunctionInterpolate(local_T1, N, T1_at_xi); + double p_int_pt = 0.0; + double T1_int_pt = 0.0; + NumLib::shapeFunctionInterpolate(local_p, N, p_int_pt); + NumLib::shapeFunctionInterpolate(local_T1, N, T1_int_pt); - auto const porosity = - material_properties.porous_media_properties.getPorosity(t, pos) - .getValue(t, pos, 0.0, T1_at_xi); + vars[static_cast<int>(MaterialPropertyLib::Variable::temperature)] = + T1_int_pt; + vars[static_cast<int>(MaterialPropertyLib::Variable::phase_pressure)] = + p_int_pt; - vars[static_cast<int>(MaterialLib::Fluid::PropertyVariableType::T)] = - T1_at_xi; - vars[static_cast<int>(MaterialLib::Fluid::PropertyVariableType::p)] = - p_at_xi; - - // Use the fluid density model to compute the density + auto const porosity = + solid_phase.property(MaterialPropertyLib::PropertyType::porosity) + .template value<double>(vars); auto const fluid_density = - material_properties.fluid_properties->getValue( - MaterialLib::Fluid::FluidPropertyType::Density, vars); + liquid_phase.property(MaterialPropertyLib::PropertyType::density) + .template value<double>(vars); + const double dfluid_density_dp = - material_properties.fluid_properties->getdValue( - MaterialLib::Fluid::FluidPropertyType::Density, vars, - MaterialLib::Fluid::PropertyVariableType::p); + liquid_phase.property(MaterialPropertyLib::PropertyType::density) + .template dValue<double>( + vars, MaterialPropertyLib::Variable::phase_pressure); // Use the viscosity model to compute the viscosity - auto const viscosity = material_properties.fluid_properties->getValue( - MaterialLib::Fluid::FluidPropertyType::Viscosity, vars); + auto const viscosity = + liquid_phase.property(MaterialPropertyLib::PropertyType::viscosity) + .template value<double>(vars); // \todo the argument to getValue() has to be changed for non // constant storage model auto const specific_storage = - material_properties.porous_media_properties - .getSpecificStorage(t, pos) - .getValue(0.0); + solid_phase.property(MaterialPropertyLib::PropertyType::storage) + .template value<double>(vars); - auto const intrinsic_permeability = - material_properties.porous_media_properties - .getIntrinsicPermeability(t, pos) - .getValue(t, pos, 0.0, T1_at_xi); - GlobalDimMatrixType K_over_mu = intrinsic_permeability / viscosity; + auto const intrinsic_permeability = intrinsicPermeability<GlobalDim>( + solid_phase + .property(MaterialPropertyLib::PropertyType::permeability) + .value(vars)); + GlobalDimMatrixType const K_over_mu = intrinsic_permeability / viscosity; // matrix assembly local_M.noalias() += @@ -151,18 +156,19 @@ void StaggeredHTFEM<ShapeFunction, IntegrationMethod, GlobalDim>:: auto const solid_thermal_expansion = material_properties.solid_thermal_expansion(t, pos)[0]; const double dfluid_density_dT = - material_properties.fluid_properties->getdValue( - MaterialLib::Fluid::FluidPropertyType::Density, vars, - MaterialLib::Fluid::PropertyVariableType::T); - double T0_at_xi = 0.; - NumLib::shapeFunctionInterpolate(local_T0, N, T0_at_xi); + liquid_phase + .property(MaterialPropertyLib::PropertyType::density) + .template dValue<double>( + vars, MaterialPropertyLib::Variable::temperature); + double T0_int_pt = 0.; + NumLib::shapeFunctionInterpolate(local_T0, N, T0_int_pt); auto const biot_constant = material_properties.biot_constant(t, pos)[0]; const double eff_thermal_expansion = 3.0 * (biot_constant - porosity) * solid_thermal_expansion - porosity * dfluid_density_dT / fluid_density; local_b.noalias() += - eff_thermal_expansion * (T1_at_xi - T0_at_xi) * w * N / dt; + eff_thermal_expansion * (T1_int_pt - T0_int_pt) * w * N / dt; } } } @@ -197,13 +203,17 @@ void StaggeredHTFEM<ShapeFunction, IntegrationMethod, GlobalDim>:: pos.setElementID(this->_element.getID()); auto const& material_properties = this->_material_properties; + auto const& medium = + *material_properties.media_map->getMedium(this->_element.getID()); + auto const& liquid_phase = medium.phase("AqueousLiquid"); + auto const& solid_phase = medium.phase("Solid"); auto const& b = material_properties.specific_body_force; GlobalDimMatrixType const& I( GlobalDimMatrixType::Identity(GlobalDim, GlobalDim)); - MaterialLib::Fluid::FluidProperty::ArrayType vars; + MaterialPropertyLib::VariableArray vars; unsigned const n_integration_points = this->_integration_method.getNumberOfPoints(); @@ -222,20 +232,22 @@ void StaggeredHTFEM<ShapeFunction, IntegrationMethod, GlobalDim>:: double T1_at_xi = 0.; NumLib::shapeFunctionInterpolate(local_T1, N, T1_at_xi); - auto const porosity = - material_properties.porous_media_properties.getPorosity(t, pos) - .getValue(t, pos, 0.0, T1_at_xi); - - vars[static_cast<int>(MaterialLib::Fluid::PropertyVariableType::T)] = + vars[static_cast<int>(MaterialPropertyLib::Variable::temperature)] = T1_at_xi; - vars[static_cast<int>(MaterialLib::Fluid::PropertyVariableType::p)] = + vars[static_cast<int>(MaterialPropertyLib::Variable::phase_pressure)] = p_at_xi; + + auto const porosity = + solid_phase.property(MaterialPropertyLib::PropertyType::porosity) + .template value<double>(vars); + + // Use the fluid density model to compute the density auto const fluid_density = - material_properties.fluid_properties->getValue( - MaterialLib::Fluid::FluidPropertyType::Density, vars); + liquid_phase.property(MaterialPropertyLib::PropertyType::density) + .template value<double>(vars); auto const specific_heat_capacity_fluid = - material_properties.fluid_properties->getValue( - MaterialLib::Fluid::FluidPropertyType::HeatCapacity, vars); + liquid_phase.property(MaterialPropertyLib::specific_heat_capacity) + .template value<double>(vars); // Assemble mass matrix local_M.noalias() += @@ -245,15 +257,17 @@ void StaggeredHTFEM<ShapeFunction, IntegrationMethod, GlobalDim>:: N.transpose() * N; // Assemble Laplace matrix - auto const viscosity = material_properties.fluid_properties->getValue( - MaterialLib::Fluid::FluidPropertyType::Viscosity, vars); + auto const viscosity = + liquid_phase.property(MaterialPropertyLib::PropertyType::viscosity) + .template value<double>(vars); - auto const intrinsic_permeability = - material_properties.porous_media_properties - .getIntrinsicPermeability(t, pos) - .getValue(t, pos, 0.0, T1_at_xi); + auto const intrinsic_permeability = intrinsicPermeability<GlobalDim>( + solid_phase + .property(MaterialPropertyLib::PropertyType::permeability) + .value(vars)); - GlobalDimMatrixType K_over_mu = intrinsic_permeability / viscosity; + GlobalDimMatrixType const K_over_mu = + intrinsic_permeability / viscosity; GlobalDimVectorType const velocity = material_properties.has_gravity ? GlobalDimVectorType(-K_over_mu * (dNdx * local_p_Eigen_type - diff --git a/Tests/Data/Parabolic/HT/ConstViscosity/square_5500x5500.prj b/Tests/Data/Parabolic/HT/ConstViscosity/square_5500x5500.prj index e70bcd67f81aac2b63da21445751692c852efc8d..3dfdd634f769172c7405d06926f76b5f1e384ad2 100644 --- a/Tests/Data/Parabolic/HT/ConstViscosity/square_5500x5500.prj +++ b/Tests/Data/Parabolic/HT/ConstViscosity/square_5500x5500.prj @@ -11,52 +11,83 @@ <temperature>T</temperature> <pressure>p</pressure> </process_variables> - <fluid> - <density> - <type>TemperatureDependent</type> - <rho0>1000</rho0> - <temperature0>20</temperature0> - <beta>4.3e-4</beta> - </density> - <viscosity> - <type>Constant</type> - <value>1.0e-3</value> - </viscosity> - <specific_heat_capacity> - <type>Constant</type> - <value>4200</value> - </specific_heat_capacity> - </fluid> - <porous_medium> - <porous_medium id="0"> - <permeability> - <permeability_tensor_entries>kappa1</permeability_tensor_entries> - <type>Constant</type> - </permeability> - <porosity> - <type>Constant</type> - <porosity_parameter>constant_porosity_parameter</porosity_parameter> - </porosity> - <storage> - <type>Constant</type> - <value>0.0</value> - </storage> - </porous_medium> - </porous_medium> <density_solid>rho_solid</density_solid> <specific_heat_capacity_solid>c_solid</specific_heat_capacity_solid> <thermal_conductivity_solid>lambda_solid</thermal_conductivity_solid> - <thermal_conductivity_fluid>lambda_fluid</thermal_conductivity_fluid> - <thermal_dispersivity> - <longitudinal>alpha_l</longitudinal> - <transversal>alpha_t</transversal> - </thermal_dispersivity> <specific_body_force>0 -9.81</specific_body_force> <secondary_variables> <secondary_variable type="static" internal_name="darcy_velocity" output_name="darcy_velocity"/> </secondary_variables> </process> </processes> + <media> + <medium id="0"> + <phases> + <phase> + <type>AqueousLiquid</type> + <properties> + <property> + <name>specific_heat_capacity</name> + <type>Constant</type> + <value>4200</value> + </property> + <property> + <name>thermal_conductivity</name> + <type>Constant</type> + <value>0.65</value> + </property> + <property> + <name>density</name> + <type>Linear</type> + <reference_value>1000</reference_value> + <independent_variable> + <variable_name>temperature</variable_name> + <slope>-4.3e-4</slope> + <reference_condition>20</reference_condition> + </independent_variable> + </property> + <property> + <name>viscosity</name> + <type>Constant</type> + <value>1.0e-3</value> + </property> + </properties> + </phase> + <phase> + <type>Solid</type> + <properties> + <property> + <name>permeability</name> + <type>Constant</type> + <value>1.e-14 0 0 1.e-14</value> + </property> + <property> + <name>porosity</name> + <type>Constant</type> + <value>0.001</value> + </property> + <property> + <name>storage</name> + <type>Constant</type> + <value>0.0</value> + </property> + </properties> + </phase> + </phases> + <properties> + <property> + <name>thermal_longitudinal_dispersivity</name> + <type>Constant</type> + <value>0</value> + </property> + <property> + <name>thermal_transversal_dispersivity</name> + <type>Constant</type> + <value>0</value> + </property> + </properties> + </medium> + </media> <time_loop> <processes> <process ref="ConstViscosityThermalConvection"> @@ -210,11 +241,6 @@ <type>Constant</type> <value>3.0</value> </parameter> - <parameter> - <name>lambda_fluid</name> - <type>Constant</type> - <value>0.65</value> - </parameter> <parameter> <name>alpha_l</name> <type>Constant</type> diff --git a/Tests/Data/Parabolic/HT/SimpleSynthetics/CoupledPressureParabolicTemperatureParabolic.prj b/Tests/Data/Parabolic/HT/SimpleSynthetics/CoupledPressureParabolicTemperatureParabolic.prj index 3470201ebe3c87dc9d02b383cb8fe3fe7bc22628..2af8acc7a927f9f0385fef81766ca4770dc8b1df 100644 --- a/Tests/Data/Parabolic/HT/SimpleSynthetics/CoupledPressureParabolicTemperatureParabolic.prj +++ b/Tests/Data/Parabolic/HT/SimpleSynthetics/CoupledPressureParabolicTemperatureParabolic.prj @@ -11,50 +11,78 @@ <temperature>T</temperature> <pressure>p</pressure> </process_variables> - <fluid> - <density> - <type>Constant</type> - <value>1</value> - </density> - <viscosity> - <type>Constant</type> - <value>1.0e-3</value> - </viscosity> - <specific_heat_capacity> - <type>Constant</type> - <value>1e-5</value> - </specific_heat_capacity> - </fluid> - <porous_medium> - <porous_medium id="0"> - <permeability> - <permeability_tensor_entries>kappa1</permeability_tensor_entries> - <type>Constant</type> - </permeability> - <porosity> - <type>Constant</type> - <porosity_parameter>constant_porosity_parameter</porosity_parameter> - </porosity> - <storage> - <type>Constant</type> - <value>0</value> - </storage> - </porous_medium> - </porous_medium> <density_solid>rho_solid</density_solid> <specific_heat_capacity_solid>c_solid</specific_heat_capacity_solid> <thermal_conductivity_solid>lambda_solid</thermal_conductivity_solid> - <thermal_conductivity_fluid>lambda_fluid</thermal_conductivity_fluid> - <thermal_dispersivity> - <longitudinal>alpha_l</longitudinal> - <transversal>alpha_t</transversal> - </thermal_dispersivity> <specific_body_force>0 0</specific_body_force> <secondary_variables> <secondary_variable type="static" internal_name="darcy_velocity" output_name="darcy_velocity"/> </secondary_variables> </process> </processes> + <media> + <medium id="0"> + <phases> + <phase> + <type>AqueousLiquid</type> + <properties> + <property> + <name>density</name> + <type>Constant</type> + <value>1</value> + </property> + <property> + <name>viscosity</name> + <type>Constant</type> + <value>1e-3</value> + </property> + <property> + <name>specific_heat_capacity</name> + <type>Constant</type> + <value>1e-5</value> + </property> + <property> + <name>thermal_conductivity</name> + <type>Constant</type> + <value>0.65e-15</value> + </property> + </properties> + </phase> + <phase> + <type>Solid</type> + <properties> + <property> + <name>permeability</name> + <type>Constant</type> + <value>1.e-8 0 0 1.e-8</value> + </property> + <property> + <name>porosity</name> + <type>Constant</type> + <value>0.001</value> + </property> + <property> + <name>storage</name> + <type>Constant</type> + <value>0</value> + </property> + </properties> + </phase> + </phases> + <properties> + <property> + <name>thermal_longitudinal_dispersivity</name> + <type>Constant</type> + <value>0</value> + </property> + <property> + <name>thermal_transversal_dispersivity</name> + <type>Constant</type> + <value>0</value> + </property> + </properties> + </medium> + </media> <time_loop> <processes> <process ref="CoupledPressureParabolicTemperatureParabolic"> diff --git a/Tests/Data/Parabolic/HT/SimpleSynthetics/CoupledPressureParabolicTemperatureParabolicStaggered.prj b/Tests/Data/Parabolic/HT/SimpleSynthetics/CoupledPressureParabolicTemperatureParabolicStaggered.prj index 3f621b8c6f72e52be91e4a1aa27a3f998c642d84..afe28e114b0bbb22422cf27f2f12761f8ccb07ad 100644 --- a/Tests/Data/Parabolic/HT/SimpleSynthetics/CoupledPressureParabolicTemperatureParabolicStaggered.prj +++ b/Tests/Data/Parabolic/HT/SimpleSynthetics/CoupledPressureParabolicTemperatureParabolicStaggered.prj @@ -12,50 +12,78 @@ <temperature>T</temperature> <pressure>p</pressure> </process_variables> - <fluid> - <density> - <type>Constant</type> - <value>1</value> - </density> - <viscosity> - <type>Constant</type> - <value>1.0e-3</value> - </viscosity> - <specific_heat_capacity> - <type>Constant</type> - <value>1e-5</value> - </specific_heat_capacity> - </fluid> - <porous_medium> - <porous_medium id="0"> - <permeability> - <permeability_tensor_entries>kappa1</permeability_tensor_entries> - <type>Constant</type> - </permeability> - <porosity> - <type>Constant</type> - <porosity_parameter>constant_porosity_parameter</porosity_parameter> - </porosity> - <storage> - <type>Constant</type> - <value>0</value> - </storage> - </porous_medium> - </porous_medium> <density_solid>rho_solid</density_solid> <specific_heat_capacity_solid>c_solid</specific_heat_capacity_solid> <thermal_conductivity_solid>lambda_solid</thermal_conductivity_solid> - <thermal_conductivity_fluid>lambda_fluid</thermal_conductivity_fluid> - <thermal_dispersivity> - <longitudinal>alpha_l</longitudinal> - <transversal>alpha_t</transversal> - </thermal_dispersivity> <specific_body_force>0 0</specific_body_force> <secondary_variables> <secondary_variable type="static" internal_name="darcy_velocity" output_name="darcy_velocity"/> </secondary_variables> </process> </processes> + <media> + <medium id="0"> + <phases> + <phase> + <type>AqueousLiquid</type> + <properties> + <property> + <name>density</name> + <type>Constant</type> + <value>1</value> + </property> + <property> + <name>viscosity</name> + <type>Constant</type> + <value>1.0e-3</value> + </property> + <property> + <name>specific_heat_capacity</name> + <type>Constant</type> + <value>1e-5</value> + </property> + <property> + <name>thermal_conductivity</name> + <type>Constant</type> + <value>0.65e-15</value> + </property> + </properties> + </phase> + <phase> + <type>Solid</type> + <properties> + <property> + <name>permeability</name> + <type>Constant</type> + <value>1.e-8 0 0 1.e-8</value> + </property> + <property> + <name>porosity</name> + <type>Constant</type> + <value>0.001</value> + </property> + <property> + <name>storage</name> + <type>Constant</type> + <value>0</value> + </property> + </properties> + </phase> + </phases> + <properties> + <property> + <name>thermal_longitudinal_dispersivity</name> + <type>Constant</type> + <value>0.0</value> + </property> + <property> + <name>thermal_transversal_dispersivity</name> + <type>Constant</type> + <value>0.0</value> + </property> + </properties> + </medium> + </media> <time_loop> <global_process_coupling> <max_iter> 6 </max_iter> diff --git a/Tests/Data/Parabolic/HT/SimpleSynthetics/IsothermalFluidFlow.prj b/Tests/Data/Parabolic/HT/SimpleSynthetics/IsothermalFluidFlow.prj index 2d35c2615d2746dabff0147d6d32054f28ab0df2..69448810b5f5388ed1bd7532a483e44d5a5b340d 100644 --- a/Tests/Data/Parabolic/HT/SimpleSynthetics/IsothermalFluidFlow.prj +++ b/Tests/Data/Parabolic/HT/SimpleSynthetics/IsothermalFluidFlow.prj @@ -11,50 +11,78 @@ <temperature>T</temperature> <pressure>p</pressure> </process_variables> - <fluid> - <density> - <type>Constant</type> - <value>1.0e-3</value> - </density> - <viscosity> - <type>Constant</type> - <value>1.0e-3</value> - </viscosity> - <specific_heat_capacity> - <type>Constant</type> - <value>0</value> - </specific_heat_capacity> - </fluid> - <porous_medium> - <porous_medium id="0"> - <permeability> - <permeability_tensor_entries>kappa1</permeability_tensor_entries> - <type>Constant</type> - </permeability> - <porosity> - <type>Constant</type> - <porosity_parameter>constant_porosity_parameter</porosity_parameter> - </porosity> - <storage> - <type>Constant</type> - <value>0.0</value> - </storage> - </porous_medium> - </porous_medium> <density_solid>rho_solid</density_solid> <specific_heat_capacity_solid>c_solid</specific_heat_capacity_solid> <thermal_conductivity_solid>lambda_solid</thermal_conductivity_solid> - <thermal_conductivity_fluid>lambda_fluid</thermal_conductivity_fluid> - <thermal_dispersivity> - <longitudinal>alpha_l</longitudinal> - <transversal>alpha_t</transversal> - </thermal_dispersivity> <specific_body_force>0 0</specific_body_force> <secondary_variables> <secondary_variable type="static" internal_name="darcy_velocity" output_name="darcy_velocity"/> </secondary_variables> </process> </processes> + <media> + <medium id="0"> + <phases> + <phase> + <type>AqueousLiquid</type> + <properties> + <property> + <name>specific_heat_capacity</name> + <type>Constant</type> + <value>0</value> + </property> + <property> + <name>thermal_conductivity</name> + <type>Constant</type> + <value>0.65</value> + </property> + <property> + <name>density</name> + <type>Constant</type> + <value>1.0e-3</value> + </property> + <property> + <name>viscosity</name> + <type>Constant</type> + <value>1.0e-3</value> + </property> + </properties> + </phase> + <phase> + <type>Solid</type> + <properties> + <property> + <name>permeability</name> + <type>Constant</type> + <value>1.e-14 0 0 1.e-14</value> + </property> + <property> + <name>porosity</name> + <type>Constant</type> + <value>0.001</value> + </property> + <property> + <name>storage</name> + <type>Constant</type> + <value>0.0</value> + </property> + </properties> + </phase> + </phases> + <properties> + <property> + <name>thermal_longitudinal_dispersivity</name> + <type>Constant</type> + <value>0</value> + </property> + <property> + <name>thermal_transversal_dispersivity</name> + <type>Constant</type> + <value>0</value> + </property> + </properties> + </medium> + </media> <time_loop> <processes> <process ref="IsothermalFluidFlow"> @@ -112,21 +140,6 @@ <type>Constant</type> <value>3.0</value> </parameter> - <parameter> - <name>lambda_fluid</name> - <type>Constant</type> - <value>0.65</value> - </parameter> - <parameter> - <name>alpha_l</name> - <type>Constant</type> - <value>0.0</value> - </parameter> - <parameter> - <name>alpha_t</name> - <type>Constant</type> - <value>0.0</value> - </parameter> <parameter> <name>c_solid</name> <type>Constant</type> diff --git a/Tests/Data/Parabolic/HT/SimpleSynthetics/IsothermalFluidFlowStaggered.prj b/Tests/Data/Parabolic/HT/SimpleSynthetics/IsothermalFluidFlowStaggered.prj index c804baef3179029925168831964b9a7e0e62dee0..371343b3bb0a66c4fdf99247574616798b85a5de 100644 --- a/Tests/Data/Parabolic/HT/SimpleSynthetics/IsothermalFluidFlowStaggered.prj +++ b/Tests/Data/Parabolic/HT/SimpleSynthetics/IsothermalFluidFlowStaggered.prj @@ -12,50 +12,78 @@ <temperature>T</temperature> <pressure>p</pressure> </process_variables> - <fluid> - <density> - <type>Constant</type> - <value>1.0e-3</value> - </density> - <viscosity> - <type>Constant</type> - <value>1.0e-3</value> - </viscosity> - <specific_heat_capacity> - <type>Constant</type> - <value>0</value> - </specific_heat_capacity> - </fluid> - <porous_medium> - <porous_medium id="0"> - <permeability> - <permeability_tensor_entries>kappa1</permeability_tensor_entries> - <type>Constant</type> - </permeability> - <porosity> - <type>Constant</type> - <porosity_parameter>constant_porosity_parameter</porosity_parameter> - </porosity> - <storage> - <type>Constant</type> - <value>0.0</value> - </storage> - </porous_medium> - </porous_medium> <density_solid>rho_solid</density_solid> <specific_heat_capacity_solid>c_solid</specific_heat_capacity_solid> <thermal_conductivity_solid>lambda_solid</thermal_conductivity_solid> - <thermal_conductivity_fluid>lambda_fluid</thermal_conductivity_fluid> - <thermal_dispersivity> - <longitudinal>alpha_l</longitudinal> - <transversal>alpha_t</transversal> - </thermal_dispersivity> <specific_body_force>0 0</specific_body_force> <secondary_variables> <secondary_variable type="static" internal_name="darcy_velocity" output_name="darcy_velocity"/> </secondary_variables> </process> </processes> + <media> + <medium id="0"> + <phases> + <phase> + <type>AqueousLiquid</type> + <properties> + <property> + <name>density</name> + <type>Constant</type> + <value>1.0e-3</value> + </property> + <property> + <name>viscosity</name> + <type>Constant</type> + <value>1.0e-3</value> + </property> + <property> + <name>specific_heat_capacity</name> + <type>Constant</type> + <value>0</value> + </property> + <property> + <name>thermal_conductivity</name> + <type>Constant</type> + <value>0.65</value> + </property> + </properties> + </phase> + <phase> + <type>Solid</type> + <properties> + <property> + <name>permeability</name> + <type>Constant</type> + <value>1.e-14 0 0 1.e-14</value> + </property> + <property> + <name>porosity</name> + <type>Constant</type> + <value>0.001</value> + </property> + <property> + <name>storage</name> + <type>Constant</type> + <value>0.0</value> + </property> + </properties> + </phase> + </phases> + <properties> + <property> + <name>thermal_longitudinal_dispersivity</name> + <type>Constant</type> + <value>0.0</value> + </property> + <property> + <name>thermal_transversal_dispersivity</name> + <type>Constant</type> + <value>0.0</value> + </property> + </properties> + </medium> + </media> <time_loop> <global_process_coupling> <max_iter> 6 </max_iter> diff --git a/Tests/Data/Parabolic/HT/SimpleSynthetics/IsothermalFluidFlowWithGravity.prj b/Tests/Data/Parabolic/HT/SimpleSynthetics/IsothermalFluidFlowWithGravity.prj index c18fe5e998fed29a58be0d5452ad8d78b0de9bf3..b96c6593dad025718dc4f071c8a88381123fa209 100644 --- a/Tests/Data/Parabolic/HT/SimpleSynthetics/IsothermalFluidFlowWithGravity.prj +++ b/Tests/Data/Parabolic/HT/SimpleSynthetics/IsothermalFluidFlowWithGravity.prj @@ -11,50 +11,78 @@ <temperature>T</temperature> <pressure>p</pressure> </process_variables> - <fluid> - <density> - <type>Constant</type> - <value>1.0e-3</value> - </density> - <viscosity> - <type>Constant</type> - <value>1.0e-3</value> - </viscosity> - <specific_heat_capacity> - <type>Constant</type> - <value>4200</value> - </specific_heat_capacity> - </fluid> - <porous_medium> - <porous_medium id="0"> - <permeability> - <permeability_tensor_entries>kappa1</permeability_tensor_entries> - <type>Constant</type> - </permeability> - <porosity> - <type>Constant</type> - <porosity_parameter>constant_porosity_parameter</porosity_parameter> - </porosity> - <storage> - <type>Constant</type> - <value>0.0</value> - </storage> - </porous_medium> - </porous_medium> <density_solid>rho_solid</density_solid> <specific_heat_capacity_solid>c_solid</specific_heat_capacity_solid> <thermal_conductivity_solid>lambda_solid</thermal_conductivity_solid> - <thermal_conductivity_fluid>lambda_fluid</thermal_conductivity_fluid> - <thermal_dispersivity> - <longitudinal>alpha_l</longitudinal> - <transversal>alpha_t</transversal> - </thermal_dispersivity> <specific_body_force>0 -9.81</specific_body_force> <secondary_variables> <secondary_variable type="static" internal_name="darcy_velocity" output_name="darcy_velocity"/> </secondary_variables> </process> </processes> + <media> + <medium id="0"> + <phases> + <phase> + <type>AqueousLiquid</type> + <properties> + <property> + <name>density</name> + <type>Constant</type> + <value>1e-3</value> + </property> + <property> + <name>viscosity</name> + <type>Constant</type> + <value>1e-3</value> + </property> + <property> + <name>specific_heat_capacity</name> + <type>Constant</type> + <value>4200</value> + </property> + <property> + <name>thermal_conductivity</name> + <type>Constant</type> + <value>0.65</value> + </property> + </properties> + </phase> + <phase> + <type>Solid</type> + <properties> + <property> + <name>permeability</name> + <type>Constant</type> + <value>1.e-14 0 0 1.e-14</value> + </property> + <property> + <name>porosity</name> + <type>Constant</type> + <value>0.001</value> + </property> + <property> + <name>storage</name> + <type>Constant</type> + <value>0.0</value> + </property> + </properties> + </phase> + </phases> + <properties> + <property> + <name>thermal_longitudinal_dispersivity</name> + <type>Constant</type> + <value>0</value> + </property> + <property> + <name>thermal_transversal_dispersivity</name> + <type>Constant</type> + <value>0</value> + </property> + </properties> + </medium> + </media> <time_loop> <processes> <process ref="IsothermalFluidFlowWithGravity"> diff --git a/Tests/Data/Parabolic/HT/SimpleSynthetics/IsothermalFluidFlowWithGravityStaggered.prj b/Tests/Data/Parabolic/HT/SimpleSynthetics/IsothermalFluidFlowWithGravityStaggered.prj index 939cc03b0e24dfe2afbc5d95cd7f2fabf57ca8f7..2ef872e46b2daa56f3b65acfe6047ecd0667617d 100644 --- a/Tests/Data/Parabolic/HT/SimpleSynthetics/IsothermalFluidFlowWithGravityStaggered.prj +++ b/Tests/Data/Parabolic/HT/SimpleSynthetics/IsothermalFluidFlowWithGravityStaggered.prj @@ -12,50 +12,78 @@ <temperature>T</temperature> <pressure>p</pressure> </process_variables> - <fluid> - <density> - <type>Constant</type> - <value>1.0e-3</value> - </density> - <viscosity> - <type>Constant</type> - <value>1.0e-3</value> - </viscosity> - <specific_heat_capacity> - <type>Constant</type> - <value>4200</value> - </specific_heat_capacity> - </fluid> - <porous_medium> - <porous_medium id="0"> - <permeability> - <permeability_tensor_entries>kappa1</permeability_tensor_entries> - <type>Constant</type> - </permeability> - <porosity> - <type>Constant</type> - <porosity_parameter>constant_porosity_parameter</porosity_parameter> - </porosity> - <storage> - <type>Constant</type> - <value>0.0</value> - </storage> - </porous_medium> - </porous_medium> <density_solid>rho_solid</density_solid> <specific_heat_capacity_solid>c_solid</specific_heat_capacity_solid> <thermal_conductivity_solid>lambda_solid</thermal_conductivity_solid> - <thermal_conductivity_fluid>lambda_fluid</thermal_conductivity_fluid> - <thermal_dispersivity> - <longitudinal>alpha_l</longitudinal> - <transversal>alpha_t</transversal> - </thermal_dispersivity> <specific_body_force>0 -9.81</specific_body_force> <secondary_variables> <secondary_variable type="static" internal_name="darcy_velocity" output_name="darcy_velocity"/> </secondary_variables> </process> </processes> + <media> + <medium id="0"> + <phases> + <phase> + <type>AqueousLiquid</type> + <properties> + <property> + <name>density</name> + <type>Constant</type> + <value>1.0e-3</value> + </property> + <property> + <name>viscosity</name> + <type>Constant</type> + <value>1.0e-3</value> + </property> + <property> + <name>specific_heat_capacity</name> + <type>Constant</type> + <value>4200</value> + </property> + <property> + <name>thermal_conductivity</name> + <type>Constant</type> + <value>0.65</value> + </property> + </properties> + </phase> + <phase> + <type>Solid</type> + <properties> + <property> + <name>permeability</name> + <type>Constant</type> + <value>1.e-14 0 0 1.e-14</value> + </property> + <property> + <name>porosity</name> + <type>Constant</type> + <value>0.001</value> + </property> + <property> + <name>storage</name> + <type>Constant</type> + <value>0.0</value> + </property> + </properties> + </phase> + </phases> + <properties> + <property> + <name>thermal_longitudinal_dispersivity</name> + <type>Constant</type> + <value>0.0</value> + </property> + <property> + <name>thermal_transversal_dispersivity</name> + <type>Constant</type> + <value>0.0</value> + </property> + </properties> + </medium> + </media> <time_loop> <global_process_coupling> <max_iter> 8 </max_iter> diff --git a/Tests/Data/Parabolic/HT/SimpleSynthetics/PressureDiffusionTemperatureDiffusion.prj b/Tests/Data/Parabolic/HT/SimpleSynthetics/PressureDiffusionTemperatureDiffusion.prj index fe0bca4ce75019da2445af93f2e11fd642a8b05c..afed1f5d85e22ab2196bde1f5734a6d7035ad712 100644 --- a/Tests/Data/Parabolic/HT/SimpleSynthetics/PressureDiffusionTemperatureDiffusion.prj +++ b/Tests/Data/Parabolic/HT/SimpleSynthetics/PressureDiffusionTemperatureDiffusion.prj @@ -11,50 +11,78 @@ <temperature>T</temperature> <pressure>p</pressure> </process_variables> - <fluid> - <density> - <type>Constant</type> - <value>1.0e-3</value> - </density> - <viscosity> - <type>Constant</type> - <value>1.0e-3</value> - </viscosity> - <specific_heat_capacity> - <type>Constant</type> - <value>0</value> - </specific_heat_capacity> - </fluid> - <porous_medium> - <porous_medium id="0"> - <permeability> - <permeability_tensor_entries>kappa1</permeability_tensor_entries> - <type>Constant</type> - </permeability> - <porosity> - <type>Constant</type> - <porosity_parameter>constant_porosity_parameter</porosity_parameter> - </porosity> - <storage> - <type>Constant</type> - <value>0.0</value> - </storage> - </porous_medium> - </porous_medium> <density_solid>rho_solid</density_solid> <specific_heat_capacity_solid>c_solid</specific_heat_capacity_solid> <thermal_conductivity_solid>lambda_solid</thermal_conductivity_solid> - <thermal_conductivity_fluid>lambda_fluid</thermal_conductivity_fluid> - <thermal_dispersivity> - <longitudinal>alpha_l</longitudinal> - <transversal>alpha_t</transversal> - </thermal_dispersivity> <specific_body_force>0 0</specific_body_force> <secondary_variables> <secondary_variable type="static" internal_name="darcy_velocity" output_name="darcy_velocity"/> </secondary_variables> </process> </processes> + <media> + <medium id="0"> + <phases> + <phase> + <type>AqueousLiquid</type> + <properties> + <property> + <name>specific_heat_capacity</name> + <type>Constant</type> + <value>0</value> + </property> + <property> + <name>thermal_conductivity</name> + <type>Constant</type> + <value>0.65</value> + </property> + <property> + <name>density</name> + <type>Constant</type> + <value>1.0e-3</value> + </property> + <property> + <name>viscosity</name> + <type>Constant</type> + <value>1.0e-3</value> + </property> + </properties> + </phase> + <phase> + <type>Solid</type> + <properties> + <property> + <name>permeability</name> + <type>Constant</type> + <value>1.e-14 0 0 1.e-14</value> + </property> + <property> + <name>porosity</name> + <type>Constant</type> + <value>0.001</value> + </property> + <property> + <name>storage</name> + <type>Constant</type> + <value>0.0</value> + </property> + </properties> + </phase> + </phases> + <properties> + <property> + <name>thermal_longitudinal_dispersivity</name> + <type>Constant</type> + <value>0</value> + </property> + <property> + <name>thermal_transversal_dispersivity</name> + <type>Constant</type> + <value>0</value> + </property> + </properties> + </medium> + </media> <time_loop> <processes> <process ref="PressureDiffusionTemperatureDiffusion"> @@ -117,16 +145,6 @@ <type>Constant</type> <value>0.65</value> </parameter> - <parameter> - <name>alpha_l</name> - <type>Constant</type> - <value>0.0</value> - </parameter> - <parameter> - <name>alpha_t</name> - <type>Constant</type> - <value>0.0</value> - </parameter> <parameter> <name>c_solid</name> <type>Constant</type> diff --git a/Tests/Data/Parabolic/HT/SimpleSynthetics/PressureDiffusionTemperatureDiffusionStaggered.prj b/Tests/Data/Parabolic/HT/SimpleSynthetics/PressureDiffusionTemperatureDiffusionStaggered.prj index 30543ef33cb634c7071961c0e53cefa9a70a5363..f14257888f37b6dd74ef2da31c8df604babfe18b 100644 --- a/Tests/Data/Parabolic/HT/SimpleSynthetics/PressureDiffusionTemperatureDiffusionStaggered.prj +++ b/Tests/Data/Parabolic/HT/SimpleSynthetics/PressureDiffusionTemperatureDiffusionStaggered.prj @@ -12,50 +12,78 @@ <temperature>T</temperature> <pressure>p</pressure> </process_variables> - <fluid> - <density> - <type>Constant</type> - <value>1.0e-3</value> - </density> - <viscosity> - <type>Constant</type> - <value>1.0e-3</value> - </viscosity> - <specific_heat_capacity> - <type>Constant</type> - <value>0</value> - </specific_heat_capacity> - </fluid> - <porous_medium> - <porous_medium id="0"> - <permeability> - <permeability_tensor_entries>kappa1</permeability_tensor_entries> - <type>Constant</type> - </permeability> - <porosity> - <type>Constant</type> - <porosity_parameter>constant_porosity_parameter</porosity_parameter> - </porosity> - <storage> - <type>Constant</type> - <value>0.0</value> - </storage> - </porous_medium> - </porous_medium> <density_solid>rho_solid</density_solid> <specific_heat_capacity_solid>c_solid</specific_heat_capacity_solid> <thermal_conductivity_solid>lambda_solid</thermal_conductivity_solid> - <thermal_conductivity_fluid>lambda_fluid</thermal_conductivity_fluid> - <thermal_dispersivity> - <longitudinal>alpha_l</longitudinal> - <transversal>alpha_t</transversal> - </thermal_dispersivity> <specific_body_force>0 0</specific_body_force> <secondary_variables> <secondary_variable type="static" internal_name="darcy_velocity" output_name="darcy_velocity"/> </secondary_variables> </process> </processes> + <media> + <medium id="0"> + <phases> + <phase> + <type>AqueousLiquid</type> + <properties> + <property> + <name>density</name> + <type>Constant</type> + <value>1.0e-3</value> + </property> + <property> + <name>viscosity</name> + <type>Constant</type> + <value>1.0e-3</value> + </property> + <property> + <name>specific_heat_capacity</name> + <type>Constant</type> + <value>0</value> + </property> + <property> + <name>thermal_conductivity</name> + <type>Constant</type> + <value>0.65</value> + </property> + </properties> + </phase> + <phase> + <type>Solid</type> + <properties> + <property> + <name>permeability</name> + <type>Constant</type> + <value>1.e-14 0 0 1.e-14</value> + </property> + <property> + <name>porosity</name> + <type>Constant</type> + <value>0.001</value> + </property> + <property> + <name>storage</name> + <type>Constant</type> + <value>0.0</value> + </property> + </properties> + </phase> + </phases> + <properties> + <property> + <name>thermal_longitudinal_dispersivity</name> + <type>Constant</type> + <value>0.0</value> + </property> + <property> + <name>thermal_transversal_dispersivity</name> + <type>Constant</type> + <value>0.0</value> + </property> + </properties> + </medium> + </media> <time_loop> <global_process_coupling> <max_iter> 6 </max_iter> diff --git a/Tests/Data/Parabolic/HT/SimpleSynthetics/PressureParabolicTemperatureParabolic.prj b/Tests/Data/Parabolic/HT/SimpleSynthetics/PressureParabolicTemperatureParabolic.prj index 1bc55b5567b1aa7ea7ad821063de175eca79d8e4..48f91d282534691272ba1d33b6fe9d866d65c6c4 100644 --- a/Tests/Data/Parabolic/HT/SimpleSynthetics/PressureParabolicTemperatureParabolic.prj +++ b/Tests/Data/Parabolic/HT/SimpleSynthetics/PressureParabolicTemperatureParabolic.prj @@ -11,50 +11,78 @@ <temperature>T</temperature> <pressure>p</pressure> </process_variables> - <fluid> - <density> - <type>Constant</type> - <value>1.0e-3</value> - </density> - <viscosity> - <type>Constant</type> - <value>1.0e-3</value> - </viscosity> - <specific_heat_capacity> - <type>Constant</type> - <value>0</value> - </specific_heat_capacity> - </fluid> - <porous_medium> - <porous_medium id="0"> - <permeability> - <permeability_tensor_entries>kappa1</permeability_tensor_entries> - <type>Constant</type> - </permeability> - <porosity> - <type>Constant</type> - <porosity_parameter>constant_porosity_parameter</porosity_parameter> - </porosity> - <storage> - <type>Constant</type> - <value>1e-5</value> - </storage> - </porous_medium> - </porous_medium> <density_solid>rho_solid</density_solid> <specific_heat_capacity_solid>c_solid</specific_heat_capacity_solid> <thermal_conductivity_solid>lambda_solid</thermal_conductivity_solid> - <thermal_conductivity_fluid>lambda_fluid</thermal_conductivity_fluid> - <thermal_dispersivity> - <longitudinal>alpha_l</longitudinal> - <transversal>alpha_t</transversal> - </thermal_dispersivity> <specific_body_force>0 0</specific_body_force> <secondary_variables> <secondary_variable type="static" internal_name="darcy_velocity" output_name="darcy_velocity"/> </secondary_variables> </process> </processes> + <media> + <medium id="0"> + <phases> + <phase> + <type>AqueousLiquid</type> + <properties> + <property> + <name>density</name> + <type>Constant</type> + <value>1e-3</value> + </property> + <property> + <name>viscosity</name> + <type>Constant</type> + <value>1e-3</value> + </property> + <property> + <name>specific_heat_capacity</name> + <type>Constant</type> + <value>0</value> + </property> + <property> + <name>thermal_conductivity</name> + <type>Constant</type> + <value>0.65</value> + </property> + </properties> + </phase> + <phase> + <type>Solid</type> + <properties> + <property> + <name>permeability</name> + <type>Constant</type> + <value>1.e-8 0 0 1.e-8</value> + </property> + <property> + <name>porosity</name> + <type>Constant</type> + <value>0.001</value> + </property> + <property> + <name>storage</name> + <type>Constant</type> + <value>1e-5</value> + </property> + </properties> + </phase> + </phases> + <properties> + <property> + <name>thermal_longitudinal_dispersivity</name> + <type>Constant</type> + <value>0</value> + </property> + <property> + <name>thermal_transversal_dispersivity</name> + <type>Constant</type> + <value>0</value> + </property> + </properties> + </medium> + </media> <time_loop> <processes> <process ref="PressureParabolicTemperatureParabolic"> diff --git a/Tests/Data/Parabolic/HT/SimpleSynthetics/PressureParabolicTemperatureParabolicStaggered.prj b/Tests/Data/Parabolic/HT/SimpleSynthetics/PressureParabolicTemperatureParabolicStaggered.prj index a81c3467fa1310c4b0cc71eb7cbd63645c1e59e3..2c0e4c44abe313ea7bc5798b289d9de1d4640a07 100644 --- a/Tests/Data/Parabolic/HT/SimpleSynthetics/PressureParabolicTemperatureParabolicStaggered.prj +++ b/Tests/Data/Parabolic/HT/SimpleSynthetics/PressureParabolicTemperatureParabolicStaggered.prj @@ -12,50 +12,78 @@ <temperature>T</temperature> <pressure>p</pressure> </process_variables> - <fluid> - <density> - <type>Constant</type> - <value>1.0e-3</value> - </density> - <viscosity> - <type>Constant</type> - <value>1.0e-3</value> - </viscosity> - <specific_heat_capacity> - <type>Constant</type> - <value>0</value> - </specific_heat_capacity> - </fluid> - <porous_medium> - <porous_medium id="0"> - <permeability> - <permeability_tensor_entries>kappa1</permeability_tensor_entries> - <type>Constant</type> - </permeability> - <porosity> - <type>Constant</type> - <porosity_parameter>constant_porosity_parameter</porosity_parameter> - </porosity> - <storage> - <type>Constant</type> - <value>1e-5</value> - </storage> - </porous_medium> - </porous_medium> <density_solid>rho_solid</density_solid> <specific_heat_capacity_solid>c_solid</specific_heat_capacity_solid> <thermal_conductivity_solid>lambda_solid</thermal_conductivity_solid> - <thermal_conductivity_fluid>lambda_fluid</thermal_conductivity_fluid> - <thermal_dispersivity> - <longitudinal>alpha_l</longitudinal> - <transversal>alpha_t</transversal> - </thermal_dispersivity> <specific_body_force>0 0</specific_body_force> <secondary_variables> <secondary_variable type="static" internal_name="darcy_velocity" output_name="darcy_velocity"/> </secondary_variables> </process> </processes> + <media> + <medium id="0"> + <phases> + <phase> + <type>AqueousLiquid</type> + <properties> + <property> + <name>density</name> + <type>Constant</type> + <value>1.0e-3</value> + </property> + <property> + <name>viscosity</name> + <type>Constant</type> + <value>1.0e-3</value> + </property> + <property> + <name>specific_heat_capacity</name> + <type>Constant</type> + <value>0</value> + </property> + <property> + <name>thermal_conductivity</name> + <type>Constant</type> + <value>0.65</value> + </property> + </properties> + </phase> + <phase> + <type>Solid</type> + <properties> + <property> + <name>permeability</name> + <type>Constant</type> + <value>1.e-8 0 0 1.e-8</value> + </property> + <property> + <name>porosity</name> + <type>Constant</type> + <value>0.001</value> + </property> + <property> + <name>storage</name> + <type>Constant</type> + <value>1e-5</value> + </property> + </properties> + </phase> + </phases> + <properties> + <property> + <name>thermal_longitudinal_dispersivity</name> + <type>Constant</type> + <value>0.0</value> + </property> + <property> + <name>thermal_transversal_dispersivity</name> + <type>Constant</type> + <value>0.0</value> + </property> + </properties> + </medium> + </media> <time_loop> <global_process_coupling> <max_iter> 6 </max_iter> diff --git a/Tests/Data/Parabolic/HT/SimpleSynthetics/calculatesurfaceflux_ht_cube_1e3.prj b/Tests/Data/Parabolic/HT/SimpleSynthetics/calculatesurfaceflux_ht_cube_1e3.prj index 92db74ba433cbfb8a37c0f96aff08187644772c3..a6ad7c67563fa50dc2d79e94ad19f6c6389cfb82 100644 --- a/Tests/Data/Parabolic/HT/SimpleSynthetics/calculatesurfaceflux_ht_cube_1e3.prj +++ b/Tests/Data/Parabolic/HT/SimpleSynthetics/calculatesurfaceflux_ht_cube_1e3.prj @@ -15,46 +15,9 @@ <temperature>T</temperature> <pressure>p</pressure> </process_variables> - <fluid> - <density> - <type>TemperatureDependent</type> - <rho0>1000</rho0> - <temperature0>20</temperature0> - <beta>4.3e-4</beta> - </density> - <viscosity> - <type>Constant</type> - <value>1.0e-3</value> - </viscosity> - <specific_heat_capacity> - <type>Constant</type> - <value>4200</value> - </specific_heat_capacity> - </fluid> - <porous_medium> - <porous_medium id="0"> - <permeability> - <permeability_tensor_entries>kappa1</permeability_tensor_entries> - <type>Constant</type> - </permeability> - <porosity> - <type>Constant</type> - <porosity_parameter>constant_porosity_parameter</porosity_parameter> - </porosity> - <storage> - <type>Constant</type> - <value>0.0</value> - </storage> - </porous_medium> - </porous_medium> <density_solid>rho_solid</density_solid> <specific_heat_capacity_solid>c_solid</specific_heat_capacity_solid> <thermal_conductivity_solid>lambda_solid</thermal_conductivity_solid> - <thermal_conductivity_fluid>lambda_fluid</thermal_conductivity_fluid> - <thermal_dispersivity> - <longitudinal>alpha_l</longitudinal> - <transversal>alpha_t</transversal> - </thermal_dispersivity> <specific_body_force>0 0 0</specific_body_force> <secondary_variables> <secondary_variable type="static" internal_name="darcy_velocity" output_name="darcy_velocity"/> @@ -66,6 +29,69 @@ </calculatesurfaceflux> </process> </processes> + <media> + <medium id="0"> + <phases> + <phase> + <type>AqueousLiquid</type> + <properties> + <property> + <name>specific_heat_capacity</name> + <type>Constant</type> + <value>0</value> + </property> + <property> + <name>thermal_conductivity</name> + <type>Constant</type> + <value>0.65</value> + </property> + <property> + <name>density</name> + <type>Constant</type> + <value>1.0e-3</value> + </property> + <property> + <name>viscosity</name> + <type>Constant</type> + <value>1.0e-3</value> + </property> + </properties> + </phase> + <phase> + <type>Solid</type> + <properties> + <property> + <name>permeability</name> + <type>Constant</type> + <value>1.e-14 0 0 0 1.e-14 0 0 0 1.e-14</value> + </property> + <property> + <name>porosity</name> + <type>Constant</type> + <value>0.001</value> + </property> + <property> + <name>storage</name> + <type>Constant</type> + <value>0.0</value> + </property> + </properties> + </phase> + </phases> + <properties> + <property> + <name>thermal_longitudinal_dispersivity</name> + <type>Constant</type> + <value>0</value> + </property> + <property> + <name>thermal_transversal_dispersivity</name> + <type>Constant</type> + <value>0</value> + </property> + </properties> + </medium> + </media> <time_loop> <processes> <process ref="SimpleThermalConvection"> @@ -143,21 +169,6 @@ <type>Constant</type> <value>3.0</value> </parameter> - <parameter> - <name>lambda_fluid</name> - <type>Constant</type> - <value>0.65</value> - </parameter> - <parameter> - <name>alpha_l</name> - <type>Constant</type> - <value>0.0</value> - </parameter> - <parameter> - <name>alpha_t</name> - <type>Constant</type> - <value>0.0</value> - </parameter> <parameter> <name>c_solid</name> <type>Constant</type> diff --git a/Tests/Data/Parabolic/HT/SimpleSynthetics/calculatesurfaceflux_ht_cube_1e4.prj b/Tests/Data/Parabolic/HT/SimpleSynthetics/calculatesurfaceflux_ht_cube_1e4.prj index 6b7ed2d017508e729911cc9e04212d751e3b5b35..6bdbe6815e6f82c6b00df446999ae082b0820084 100644 --- a/Tests/Data/Parabolic/HT/SimpleSynthetics/calculatesurfaceflux_ht_cube_1e4.prj +++ b/Tests/Data/Parabolic/HT/SimpleSynthetics/calculatesurfaceflux_ht_cube_1e4.prj @@ -15,46 +15,9 @@ <temperature>T</temperature> <pressure>p</pressure> </process_variables> - <fluid> - <density> - <type>TemperatureDependent</type> - <rho0>1000</rho0> - <temperature0>20</temperature0> - <beta>4.3e-4</beta> - </density> - <viscosity> - <type>Constant</type> - <value>1.0e-3</value> - </viscosity> - <specific_heat_capacity> - <type>Constant</type> - <value>4200</value> - </specific_heat_capacity> - </fluid> - <porous_medium> - <porous_medium id="0"> - <permeability> - <permeability_tensor_entries>kappa1</permeability_tensor_entries> - <type>Constant</type> - </permeability> - <porosity> - <type>Constant</type> - <porosity_parameter>constant_porosity_parameter</porosity_parameter> - </porosity> - <storage> - <type>Constant</type> - <value>0.0</value> - </storage> - </porous_medium> - </porous_medium> <density_solid>rho_solid</density_solid> <specific_heat_capacity_solid>c_solid</specific_heat_capacity_solid> <thermal_conductivity_solid>lambda_solid</thermal_conductivity_solid> - <thermal_conductivity_fluid>lambda_fluid</thermal_conductivity_fluid> - <thermal_dispersivity> - <longitudinal>alpha_l</longitudinal> - <transversal>alpha_t</transversal> - </thermal_dispersivity> <specific_body_force>0 0 0</specific_body_force> <secondary_variables> <secondary_variable type="static" internal_name="darcy_velocity" output_name="darcy_velocity"/> @@ -66,6 +29,74 @@ </calculatesurfaceflux> </process> </processes> + <media> + <medium id="0"> + <phases> + <phase> + <type>AqueousLiquid</type> + <properties> + <property> + <name>specific_heat_capacity</name> + <type>Constant</type> + <value>4200</value> + </property> + <property> + <name>thermal_conductivity</name> + <type>Constant</type> + <value>0.65</value> + </property> + <property> + <name>density</name> + <type>Linear</type> + <reference_value>1000</reference_value> + <independent_variable> + <variable_name>temperature</variable_name> + <reference_condition>20</reference_condition> + <slope>-4.3e-4</slope> + </independent_variable> + </property> + <property> + <name>viscosity</name> + <type>Constant</type> + <value>1.0e-3</value> + </property> + </properties> + </phase> + <phase> + <type>Solid</type> + <properties> + <property> + <name>permeability</name> + <type>Constant</type> + <value>1.e-14 0 0 0 1.e-14 0 0 0 1.e-14</value> + </property> + <property> + <name>porosity</name> + <type>Constant</type> + <value>0.001</value> + </property> + <property> + <name>storage</name> + <type>Constant</type> + <value>0.0</value> + </property> + </properties> + </phase> + </phases> + <properties> + <property> + <name>thermal_longitudinal_dispersivity</name> + <type>Constant</type> + <value>0</value> + </property> + <property> + <name>thermal_transversal_dispersivity</name> + <type>Constant</type> + <value>0</value> + </property> + </properties> + </medium> + </media> <time_loop> <processes> <process ref="SimpleThermalConvection"> @@ -143,21 +174,6 @@ <type>Constant</type> <value>3.0</value> </parameter> - <parameter> - <name>lambda_fluid</name> - <type>Constant</type> - <value>0.65</value> - </parameter> - <parameter> - <name>alpha_l</name> - <type>Constant</type> - <value>0.0</value> - </parameter> - <parameter> - <name>alpha_t</name> - <type>Constant</type> - <value>0.0</value> - </parameter> <parameter> <name>c_solid</name> <type>Constant</type> diff --git a/Tests/Data/Parabolic/HT/SimpleSynthetics/constraint_bc_1e3.prj b/Tests/Data/Parabolic/HT/SimpleSynthetics/constraint_bc_1e3.prj index 581fd7a36f32dbdef9f5bbcbde002c8027f71bab..355f04a1b2b8784e4d376d6600505a262a7e6598 100644 --- a/Tests/Data/Parabolic/HT/SimpleSynthetics/constraint_bc_1e3.prj +++ b/Tests/Data/Parabolic/HT/SimpleSynthetics/constraint_bc_1e3.prj @@ -11,52 +11,83 @@ <temperature>T</temperature> <pressure>p</pressure> </process_variables> - <fluid> - <density> - <type>TemperatureDependent</type> - <rho0>1000</rho0> - <temperature0>20</temperature0> - <beta>4.3e-4</beta> - </density> - <viscosity> - <type>Constant</type> - <value>1.0e-3</value> - </viscosity> - <specific_heat_capacity> - <type>Constant</type> - <value>4200</value> - </specific_heat_capacity> - </fluid> - <porous_medium> - <porous_medium id="0"> - <permeability> - <permeability_tensor_entries>kappa1</permeability_tensor_entries> - <type>Constant</type> - </permeability> - <porosity> - <type>Constant</type> - <porosity_parameter>constant_porosity_parameter</porosity_parameter> - </porosity> - <storage> - <type>Constant</type> - <value>0.0</value> - </storage> - </porous_medium> - </porous_medium> <density_solid>rho_solid</density_solid> <specific_heat_capacity_solid>c_solid</specific_heat_capacity_solid> <thermal_conductivity_solid>lambda_solid</thermal_conductivity_solid> - <thermal_conductivity_fluid>lambda_fluid</thermal_conductivity_fluid> - <thermal_dispersivity> - <longitudinal>alpha_l</longitudinal> - <transversal>alpha_t</transversal> - </thermal_dispersivity> <specific_body_force>0 0 0</specific_body_force> <secondary_variables> <secondary_variable type="static" internal_name="darcy_velocity" output_name="darcy_velocity"/> </secondary_variables> </process> </processes> + <media> + <medium id="0"> + <phases> + <phase> + <type>AqueousLiquid</type> + <properties> + <property> + <name>density</name> + <type>Linear</type> + <reference_value>1000</reference_value> + <independent_variable> + <variable_name>temperature</variable_name> + <reference_condition>20</reference_condition> + <slope>-4.3e-4</slope> + </independent_variable> + </property> + <property> + <name>viscosity</name> + <type>Constant</type> + <value>1.0e-3</value> + </property> + <property> + <name>specific_heat_capacity</name> + <type>Constant</type> + <value>4200</value> + </property> + <property> + <name>thermal_conductivity</name> + <type>Constant</type> + <value>0.65</value> + </property> + </properties> + </phase> + <phase> + <type>Solid</type> + <properties> + <property> + <name>permeability</name> + <type>Constant</type> + <value>1.e-14 0 0 0 1.e-14 0 0 0 1.e-14</value> + </property> + <property> + <name>porosity</name> + <type>Constant</type> + <value>0.001</value> + </property> + <property> + <name>storage</name> + <type>Constant</type> + <value>0.0</value> + </property> + </properties> + </phase> + </phases> + <properties> + <property> + <name>thermal_longitudinal_dispersivity</name> + <type>Constant</type> + <value>0.0</value> + </property> + <property> + <name>thermal_transversal_dispersivity</name> + <type>Constant</type> + <value>0.0</value> + </property> + </properties> + </medium> + </media> <time_loop> <processes> <process ref="SimpleThermalConvection"> diff --git a/Tests/Data/Parabolic/HT/StaggeredCoupling/ADecovalexTHMCBasedHTExample/th_decovalex.prj b/Tests/Data/Parabolic/HT/StaggeredCoupling/ADecovalexTHMCBasedHTExample/th_decovalex.prj index 5f2e1c92b389f503d861bfaaadebf9c04ba2e755..459bd6661fc5db0df74908fffcd06bbe7e8892f3 100644 --- a/Tests/Data/Parabolic/HT/StaggeredCoupling/ADecovalexTHMCBasedHTExample/th_decovalex.prj +++ b/Tests/Data/Parabolic/HT/StaggeredCoupling/ADecovalexTHMCBasedHTExample/th_decovalex.prj @@ -12,62 +12,156 @@ <temperature>T</temperature> <pressure>p</pressure> </process_variables> - <fluid> - <density> - <type>TemperatureDependent</type> - <temperature0> 293.0 </temperature0> - <beta> 4.3e-4 </beta> - <rho0>1000.</rho0> - </density> - <viscosity> - <type>Constant</type> - <value> 1.e-3 </value> - </viscosity> - <specific_heat_capacity> - <type>Constant</type> - <value> 4000. </value> - </specific_heat_capacity> - </fluid> - <porous_medium> - <porous_medium id="0"> - <permeability> - <permeability_tensor_entries>mu0</permeability_tensor_entries> - <type>Constant</type> - </permeability> - <porosity> - <type>Constant</type> - <porosity_parameter>n0</porosity_parameter> - </porosity> - <storage> - <type>Constant</type> - <value>0.0</value> - </storage> - </porous_medium> - <porous_medium id="1"> - <permeability> - <permeability_tensor_entries>mu1</permeability_tensor_entries> - <type>Constant</type> - </permeability> - <porosity> - <type>Constant</type> - <porosity_parameter>n1</porosity_parameter> - </porosity> - <storage> - <type>Constant</type> - <value>0.0</value> - </storage> - </porous_medium> - </porous_medium> <density_solid>rho_solid</density_solid> <specific_heat_capacity_solid>c_p</specific_heat_capacity_solid> <thermal_conductivity_solid>lambda</thermal_conductivity_solid> - <thermal_conductivity_fluid>lambda_fluid</thermal_conductivity_fluid> <specific_body_force>0 -9.81</specific_body_force> <secondary_variables> <secondary_variable type="static" internal_name="darcy_velocity" output_name="darcy_velocity"/> </secondary_variables> </process> </processes> + <media> + <medium id="0"> + <phases> + <phase> + <type>AqueousLiquid</type> + <properties> + <property> + <name>density</name> + <type>Linear</type> + <reference_value>1000.0</reference_value> + <independent_variable> + <variable_name>temperature</variable_name> + <reference_condition>293.0</reference_condition> + <slope>-4.3e-4</slope> + </independent_variable> + </property> + <property> + <name>viscosity</name> + <type>Constant</type> + <value>1.0e-3</value> + </property> + <property> + <name>specific_heat_capacity</name> + <type>Constant</type> + <value>4000</value> + </property> + <property> + <name>thermal_conductivity</name> + <type>Constant</type> + <!--0.6 * 86400 * 365 with the time unit of year--> + <value>18921600.0</value> + </property> + </properties> + </phase> + <phase> + <type>Solid</type> + <properties> + <property> + <name>permeability</name> + <type>Constant</type> + <value>6.3072e-14 0. 0. 6.3072e-14</value> + </property> + <property> + <name>porosity</name> + <type>Constant</type> + <value>0.01</value> + </property> + <property> + <name>storage</name> + <type>Constant</type> + <value>0.0</value> + </property> + </properties> + </phase> + </phases> + <properties> + <property> + <name>thermal_longitudinal_dispersivity</name> + <type>Constant</type> + <value>0.0</value> + </property> + <property> + <name>thermal_transversal_dispersivity</name> + <type>Constant</type> + <value>0.0</value> + </property> + </properties> + </medium> + <medium id="1"> + <phases> + <phase> + <type>AqueousLiquid</type> + <properties> + <property> + <name>density</name> + <type>Linear</type> + <reference_value>1000.0</reference_value> + <independent_variable> + <variable_name>temperature</variable_name> + <reference_condition>293.0</reference_condition> + <slope>-4.3e-4</slope> + </independent_variable> + </property> + <property> + <name>viscosity</name> + <type>Constant</type> + <value>1.0e-3</value> + </property> + <property> + <name>specific_heat_capacity</name> + <type>Constant</type> + <value>4000</value> + </property> + <property> + <name>thermal_conductivity</name> + <type>Constant</type> + <!--0.6 * 86400 * 365 with the time unit of year--> + <value>18921600.0</value> + </property> + </properties> + </phase> + <phase> + <type>Solid</type> + <properties> + <property> + <name>permeability</name> + <type>Constant</type> + <value>3.1536e-10 0. 0. 3.1536e-10</value> + </property> + <property> + <name>porosity</name> + <type>Constant</type> + <value>0.41</value> + </property> + <property> + <name>storage</name> + <type>Constant</type> + <value>0.0</value> + </property> + </properties> + </phase> + </phases> + <properties> + <property> + <name>thermal_longitudinal_dispersivity</name> + <type>Constant</type> + <value>0.0</value> + </property> + <property> + <name>thermal_transversal_dispersivity</name> + <type>Constant</type> + <value>0.0</value> + </property> + <property> + <name>specific_heat_capacity</name> + <type>Constant</type> + <value>4000</value> + </property> + </properties> + </medium> + </media> <time_loop> <global_process_coupling> <max_iter> 6 </max_iter> diff --git a/Tests/Data/Parabolic/HT/StaggeredCoupling/ConstViscosity/square_5500x5500_staggered_scheme.prj b/Tests/Data/Parabolic/HT/StaggeredCoupling/ConstViscosity/square_5500x5500_staggered_scheme.prj index b805cedcc3da7d3128d03955ef91f0269b5d778d..19689dde4438b663ce0c0b32f2b628c25829f4e5 100644 --- a/Tests/Data/Parabolic/HT/StaggeredCoupling/ConstViscosity/square_5500x5500_staggered_scheme.prj +++ b/Tests/Data/Parabolic/HT/StaggeredCoupling/ConstViscosity/square_5500x5500_staggered_scheme.prj @@ -12,48 +12,83 @@ <temperature>T</temperature> <pressure>p</pressure> </process_variables> - <fluid> - <density> - <type>TemperatureDependent</type> - <rho0>1000</rho0> - <temperature0>20</temperature0> - <beta>4.3e-4</beta> - </density> - <viscosity> - <type>Constant</type> - <value>1.0e-3</value> - </viscosity> - <specific_heat_capacity> - <type>Constant</type> - <value>4200</value> - </specific_heat_capacity> - </fluid> - <porous_medium> - <porous_medium id="0"> - <permeability> - <permeability_tensor_entries>kappa1</permeability_tensor_entries> - <type>Constant</type> - </permeability> - <porosity> - <type>Constant</type> - <porosity_parameter>constant_porosity_parameter</porosity_parameter> - </porosity> - <storage> - <type>Constant</type> - <value>0.0</value> - </storage> - </porous_medium> - </porous_medium> <density_solid>rho_solid</density_solid> <specific_heat_capacity_solid>c_solid</specific_heat_capacity_solid> <thermal_conductivity_solid>lambda_solid</thermal_conductivity_solid> - <thermal_conductivity_fluid>lambda_fluid</thermal_conductivity_fluid> <specific_body_force>0 -9.81</specific_body_force> <secondary_variables> <secondary_variable type="static" internal_name="darcy_velocity" output_name="darcy_velocity"/> </secondary_variables> </process> </processes> + <media> + <medium id="0"> + <phases> + <phase> + <type>AqueousLiquid</type> + <properties> + <property> + <name>specific_heat_capacity</name> + <type>Constant</type> + <value>4200</value> + </property> + <property> + <name>thermal_conductivity</name> + <type>Constant</type> + <value>0.65</value> + </property> + <property> + <name>density</name> + <type>Linear</type> + <reference_value>1000</reference_value> + <independent_variable> + <variable_name>temperature</variable_name> + <slope>-4.3e-4</slope> + <reference_condition>20</reference_condition> + </independent_variable> + </property> + <property> + <name>viscosity</name> + <type>Constant</type> + <value>1.0e-3</value> + </property> + </properties> + </phase> + <phase> + <type>Solid</type> + <properties> + <property> + <name>permeability</name> + <type>Constant</type> + <value>1.e-14 0 0 1.e-14</value> + </property> + <property> + <name>porosity</name> + <type>Constant</type> + <value>0.001</value> + </property> + <property> + <name>storage</name> + <type>Constant</type> + <value>0.0</value> + </property> + </properties> + </phase> + </phases> + <properties> + <property> + <name>thermal_longitudinal_dispersivity</name> + <type>Constant</type> + <value>0</value> + </property> + <property> + <name>thermal_transversal_dispersivity</name> + <type>Constant</type> + <value>0</value> + </property> + </properties> + </medium> + </media> <time_loop> <global_process_coupling> <max_iter> 6 </max_iter> @@ -342,11 +377,6 @@ <type>Constant</type> <value>3.0</value> </parameter> - <parameter> - <name>lambda_fluid</name> - <type>Constant</type> - <value>0.65</value> - </parameter> <parameter> <name>alpha_l</name> <type>Constant</type> diff --git a/Tests/Data/Parabolic/HT/StaggeredCoupling/ConstViscosity/square_5500x5500_staggered_scheme_adaptive_dt.prj b/Tests/Data/Parabolic/HT/StaggeredCoupling/ConstViscosity/square_5500x5500_staggered_scheme_adaptive_dt.prj index 47ef8aa570bcf6e8cc20a95ef6bd5d972f6073a1..7ed01e67488b18258d26496be6391ea3cfa41ecf 100644 --- a/Tests/Data/Parabolic/HT/StaggeredCoupling/ConstViscosity/square_5500x5500_staggered_scheme_adaptive_dt.prj +++ b/Tests/Data/Parabolic/HT/StaggeredCoupling/ConstViscosity/square_5500x5500_staggered_scheme_adaptive_dt.prj @@ -12,48 +12,83 @@ <temperature>T</temperature> <pressure>p</pressure> </process_variables> - <fluid> - <density> - <type>TemperatureDependent</type> - <rho0>1000</rho0> - <temperature0>20</temperature0> - <beta>4.3e-4</beta> - </density> - <viscosity> - <type>Constant</type> - <value>1.0e-3</value> - </viscosity> - <specific_heat_capacity> - <type>Constant</type> - <value>4200</value> - </specific_heat_capacity> - </fluid> - <porous_medium> - <porous_medium id="0"> - <permeability> - <permeability_tensor_entries>kappa1</permeability_tensor_entries> - <type>Constant</type> - </permeability> - <porosity> - <type>Constant</type> - <porosity_parameter>constant_porosity_parameter</porosity_parameter> - </porosity> - <storage> - <type>Constant</type> - <value>0.0</value> - </storage> - </porous_medium> - </porous_medium> <density_solid>rho_solid</density_solid> <specific_heat_capacity_solid>c_solid</specific_heat_capacity_solid> <thermal_conductivity_solid>lambda_solid</thermal_conductivity_solid> - <thermal_conductivity_fluid>lambda_fluid</thermal_conductivity_fluid> <specific_body_force>0 -9.81</specific_body_force> <secondary_variables> <secondary_variable type="static" internal_name="darcy_velocity" output_name="darcy_velocity"/> </secondary_variables> </process> </processes> + <media> + <medium id="0"> + <phases> + <phase> + <type>AqueousLiquid</type> + <properties> + <property> + <name>specific_heat_capacity</name> + <type>Constant</type> + <value>4200</value> + </property> + <property> + <name>thermal_conductivity</name> + <type>Constant</type> + <value>0.65</value> + </property> + <property> + <name>density</name> + <type>Linear</type> + <reference_value>1000</reference_value> + <independent_variable> + <variable_name>temperature</variable_name> + <slope>-4.3e-4</slope> + <reference_condition>20</reference_condition> + </independent_variable> + </property> + <property> + <name>viscosity</name> + <type>Constant</type> + <value>1.0e-3</value> + </property> + </properties> + </phase> + <phase> + <type>Solid</type> + <properties> + <property> + <name>permeability</name> + <type>Constant</type> + <value>1.e-14 0 0 1.e-14</value> + </property> + <property> + <name>porosity</name> + <type>Constant</type> + <value>0.001</value> + </property> + <property> + <name>storage</name> + <type>Constant</type> + <value>0.0</value> + </property> + </properties> + </phase> + </phases> + <properties> + <property> + <name>thermal_longitudinal_dispersivity</name> + <type>Constant</type> + <value>0</value> + </property> + <property> + <name>thermal_transversal_dispersivity</name> + <type>Constant</type> + <value>0</value> + </property> + </properties> + </medium> + </media> <time_loop> <global_process_coupling> <max_iter> 6 </max_iter>