From f003c3c03b0c32bdc15d7480a29c6df9da2b4b54 Mon Sep 17 00:00:00 2001 From: Dmitri Naumov <dmitri.naumov@ufz.de> Date: Wed, 31 Jul 2019 18:35:43 +0200 Subject: [PATCH] Permeability; Return matrix by value. This avoids the mutable member. The data is computed on every call anyway. --- MaterialLib/PorousMedium/Permeability/Permeability.h | 8 ++++---- .../TwoPhaseFlowWithPPMaterialProperties.cpp | 2 +- .../TwoPhaseFlowWithPPMaterialProperties.h | 9 ++++----- ProcessLib/LiquidFlow/LiquidFlowMaterialProperties.cpp | 2 +- ProcessLib/LiquidFlow/LiquidFlowMaterialProperties.h | 9 ++++----- .../RichardsFlow/RichardsFlowMaterialProperties.cpp | 2 +- ProcessLib/RichardsFlow/RichardsFlowMaterialProperties.h | 9 ++++----- .../TwoPhaseFlowWithPPMaterialProperties.cpp | 2 +- .../TwoPhaseFlowWithPPMaterialProperties.h | 9 ++++----- .../TwoPhaseFlowWithPrhoMaterialProperties.cpp | 2 +- .../TwoPhaseFlowWithPrhoMaterialProperties.h | 9 ++++----- 11 files changed, 29 insertions(+), 34 deletions(-) diff --git a/MaterialLib/PorousMedium/Permeability/Permeability.h b/MaterialLib/PorousMedium/Permeability/Permeability.h index 21883a95cfd..c34a1780aa9 100644 --- a/MaterialLib/PorousMedium/Permeability/Permeability.h +++ b/MaterialLib/PorousMedium/Permeability/Permeability.h @@ -50,10 +50,10 @@ public: * @param variable A variable with any double type value. * @param temperature Temperature with any double type value. */ - Eigen::MatrixXd const& getValue(const double t, - ParameterLib::SpatialPosition const& pos, - const double variable, - const double temperature) const + Eigen::MatrixXd getValue(const double t, + ParameterLib::SpatialPosition const& pos, + const double variable, + const double temperature) const { (void)variable; (void)temperature; diff --git a/MaterialLib/TwoPhaseModels/TwoPhaseFlowWithPPMaterialProperties.cpp b/MaterialLib/TwoPhaseModels/TwoPhaseFlowWithPPMaterialProperties.cpp index 5a50c0fd37d..070e6218e21 100644 --- a/MaterialLib/TwoPhaseModels/TwoPhaseFlowWithPPMaterialProperties.cpp +++ b/MaterialLib/TwoPhaseModels/TwoPhaseFlowWithPPMaterialProperties.cpp @@ -118,7 +118,7 @@ double TwoPhaseFlowWithPPMaterialProperties::getGasViscosity( return _gas_viscosity->getValue(vars); } -Eigen::MatrixXd const& TwoPhaseFlowWithPPMaterialProperties::getPermeability( +Eigen::MatrixXd TwoPhaseFlowWithPPMaterialProperties::getPermeability( const int material_id, const double t, const ParameterLib::SpatialPosition& pos, const int /*dim*/) const { diff --git a/MaterialLib/TwoPhaseModels/TwoPhaseFlowWithPPMaterialProperties.h b/MaterialLib/TwoPhaseModels/TwoPhaseFlowWithPPMaterialProperties.h index b6f2811a399..7df516049da 100644 --- a/MaterialLib/TwoPhaseModels/TwoPhaseFlowWithPPMaterialProperties.h +++ b/MaterialLib/TwoPhaseModels/TwoPhaseFlowWithPPMaterialProperties.h @@ -79,11 +79,10 @@ public: int getMaterialID(const std::size_t element_id) const; - Eigen::MatrixXd const& getPermeability( - const int material_id, - const double t, - const ParameterLib::SpatialPosition& pos, - const int dim) const; + Eigen::MatrixXd getPermeability(const int material_id, + const double t, + const ParameterLib::SpatialPosition& pos, + const int dim) const; double getPorosity(const int material_id, const double t, const ParameterLib::SpatialPosition& pos, const double p, diff --git a/ProcessLib/LiquidFlow/LiquidFlowMaterialProperties.cpp b/ProcessLib/LiquidFlow/LiquidFlowMaterialProperties.cpp index 908b2dd0f2b..bc5680c8e61 100644 --- a/ProcessLib/LiquidFlow/LiquidFlowMaterialProperties.cpp +++ b/ProcessLib/LiquidFlow/LiquidFlowMaterialProperties.cpp @@ -95,7 +95,7 @@ double LiquidFlowMaterialProperties::getMassCoefficient( return porosity * drho_dp / rho + storage; } -Eigen::MatrixXd const& LiquidFlowMaterialProperties::getPermeability( +Eigen::MatrixXd LiquidFlowMaterialProperties::getPermeability( const int material_id, const double t, const ParameterLib::SpatialPosition& pos, const int /*dim*/) const { diff --git a/ProcessLib/LiquidFlow/LiquidFlowMaterialProperties.h b/ProcessLib/LiquidFlow/LiquidFlowMaterialProperties.h index 09eb9d85e24..6e909a15ccf 100644 --- a/ProcessLib/LiquidFlow/LiquidFlowMaterialProperties.h +++ b/ProcessLib/LiquidFlow/LiquidFlowMaterialProperties.h @@ -91,11 +91,10 @@ public: const double porosity_variable, const double storage_variable) const; - Eigen::MatrixXd const& getPermeability( - const int material_id, - const double t, - const ParameterLib::SpatialPosition& pos, - const int dim) const; + Eigen::MatrixXd getPermeability(const int material_id, + const double t, + const ParameterLib::SpatialPosition& pos, + const int dim) const; double getLiquidDensity(const double p, const double T) const; diff --git a/ProcessLib/RichardsFlow/RichardsFlowMaterialProperties.cpp b/ProcessLib/RichardsFlow/RichardsFlowMaterialProperties.cpp index 62200a5ebac..a4917f16e85 100644 --- a/ProcessLib/RichardsFlow/RichardsFlowMaterialProperties.cpp +++ b/ProcessLib/RichardsFlow/RichardsFlowMaterialProperties.cpp @@ -85,7 +85,7 @@ double RichardsFlowMaterialProperties::getFluidViscosity(const double p, MaterialLib::Fluid::FluidPropertyType::Viscosity, vars); } -Eigen::MatrixXd const& RichardsFlowMaterialProperties::getPermeability( +Eigen::MatrixXd RichardsFlowMaterialProperties::getPermeability( const int material_id, const double t, const ParameterLib::SpatialPosition& pos, const int /*dim*/) const { diff --git a/ProcessLib/RichardsFlow/RichardsFlowMaterialProperties.h b/ProcessLib/RichardsFlow/RichardsFlowMaterialProperties.h index 7b7f8683921..085423fda36 100644 --- a/ProcessLib/RichardsFlow/RichardsFlowMaterialProperties.h +++ b/ProcessLib/RichardsFlow/RichardsFlowMaterialProperties.h @@ -66,11 +66,10 @@ public: int getMaterialID(const std::size_t element_id); - Eigen::MatrixXd const& getPermeability( - const int material_id, - const double t, - const ParameterLib::SpatialPosition& pos, - const int dim) const; + Eigen::MatrixXd getPermeability(const int material_id, + const double t, + const ParameterLib::SpatialPosition& pos, + const int dim) const; double getPorosity(const int material_id, const double t, const ParameterLib::SpatialPosition& pos, const double p, diff --git a/ProcessLib/TwoPhaseFlowWithPP/TwoPhaseFlowWithPPMaterialProperties.cpp b/ProcessLib/TwoPhaseFlowWithPP/TwoPhaseFlowWithPPMaterialProperties.cpp index eb5047f9c34..2d3ec26b666 100644 --- a/ProcessLib/TwoPhaseFlowWithPP/TwoPhaseFlowWithPPMaterialProperties.cpp +++ b/ProcessLib/TwoPhaseFlowWithPP/TwoPhaseFlowWithPPMaterialProperties.cpp @@ -120,7 +120,7 @@ double TwoPhaseFlowWithPPMaterialProperties::getGasViscosity( return _gas_viscosity->getValue(vars); } -Eigen::MatrixXd const& TwoPhaseFlowWithPPMaterialProperties::getPermeability( +Eigen::MatrixXd TwoPhaseFlowWithPPMaterialProperties::getPermeability( const int material_id, const double t, const ParameterLib::SpatialPosition& pos, const int /*dim*/) const { diff --git a/ProcessLib/TwoPhaseFlowWithPP/TwoPhaseFlowWithPPMaterialProperties.h b/ProcessLib/TwoPhaseFlowWithPP/TwoPhaseFlowWithPPMaterialProperties.h index 21611b96e87..1531e1f6cb1 100644 --- a/ProcessLib/TwoPhaseFlowWithPP/TwoPhaseFlowWithPPMaterialProperties.h +++ b/ProcessLib/TwoPhaseFlowWithPP/TwoPhaseFlowWithPPMaterialProperties.h @@ -70,11 +70,10 @@ public: int getMaterialID(const std::size_t element_id); - Eigen::MatrixXd const& getPermeability( - const int material_id, - const double t, - const ParameterLib::SpatialPosition& pos, - const int dim) const; + Eigen::MatrixXd getPermeability(const int material_id, + const double t, + const ParameterLib::SpatialPosition& pos, + const int dim) const; double getPorosity(const int material_id, const double t, const ParameterLib::SpatialPosition& pos, const double p, diff --git a/ProcessLib/TwoPhaseFlowWithPrho/TwoPhaseFlowWithPrhoMaterialProperties.cpp b/ProcessLib/TwoPhaseFlowWithPrho/TwoPhaseFlowWithPrhoMaterialProperties.cpp index c361307d640..290619c15f6 100644 --- a/ProcessLib/TwoPhaseFlowWithPrho/TwoPhaseFlowWithPrhoMaterialProperties.cpp +++ b/ProcessLib/TwoPhaseFlowWithPrho/TwoPhaseFlowWithPrhoMaterialProperties.cpp @@ -125,7 +125,7 @@ double TwoPhaseFlowWithPrhoMaterialProperties::getGasViscosity( return _gas_viscosity->getValue(vars); } -Eigen::MatrixXd const& TwoPhaseFlowWithPrhoMaterialProperties::getPermeability( +Eigen::MatrixXd TwoPhaseFlowWithPrhoMaterialProperties::getPermeability( const int material_id, const double t, const ParameterLib::SpatialPosition& pos, const int /*dim*/) const { diff --git a/ProcessLib/TwoPhaseFlowWithPrho/TwoPhaseFlowWithPrhoMaterialProperties.h b/ProcessLib/TwoPhaseFlowWithPrho/TwoPhaseFlowWithPrhoMaterialProperties.h index 49fca9ce8f0..cc66d0c26d5 100644 --- a/ProcessLib/TwoPhaseFlowWithPrho/TwoPhaseFlowWithPrhoMaterialProperties.h +++ b/ProcessLib/TwoPhaseFlowWithPrho/TwoPhaseFlowWithPrhoMaterialProperties.h @@ -63,11 +63,10 @@ public: int getMaterialID(const std::size_t element_id); - Eigen::MatrixXd const& getPermeability( - const int material_id, - const double t, - const ParameterLib::SpatialPosition& pos, - const int dim) const; + Eigen::MatrixXd getPermeability(const int material_id, + const double t, + const ParameterLib::SpatialPosition& pos, + const int dim) const; double getPorosity(const int material_id, const double t, const ParameterLib::SpatialPosition& pos, const double p, -- GitLab