diff --git a/ProcessLib/RichardsFlow/CreateRichardsFlowMaterialProperties.cpp b/ProcessLib/RichardsFlow/CreateRichardsFlowMaterialProperties.cpp index d3539222ac48f967f6d0676067353a6036f646d0..3252bf4a003b043834d53a38735bf847903f8e7e 100644 --- a/ProcessLib/RichardsFlow/CreateRichardsFlowMaterialProperties.cpp +++ b/ProcessLib/RichardsFlow/CreateRichardsFlowMaterialProperties.cpp @@ -51,7 +51,6 @@ createRichardsFlowMaterialProperties( auto const& mu_conf = fluid_config.getConfigSubtree("fluid_viscosity"); auto fluid_viscosity = MaterialLib::Fluid::createViscosityModel(mu_conf); - // Get porous properties std::vector<int> mat_ids; std::vector<int> mat_krel_ids; @@ -102,9 +101,8 @@ createRichardsFlowMaterialProperties( auto const& krel_config = //! \ogs_file_param{prj__processes__process__RICHARDS_FLOW__material_property__porous_medium__porous_medium__relative_permeability} conf.getConfigSubtree("relative_permeability"); - auto krel = - MaterialLib::PorousMedium::createRelativePermeabilityModel( - krel_config); + auto krel = MaterialLib::PorousMedium::createRelativePermeabilityModel( + krel_config); relative_permeability_models.emplace_back(std::move(krel)); } @@ -114,8 +112,8 @@ createRichardsFlowMaterialProperties( return std::unique_ptr<RichardsFlowMaterialProperties>{ new RichardsFlowMaterialProperties{ - material_ids, std::move(fluid_density), - std::move(fluid_viscosity), std::move(intrinsic_permeability_models), + material_ids, std::move(fluid_density), std::move(fluid_viscosity), + std::move(intrinsic_permeability_models), std::move(porosity_models), std::move(storage_models), std::move(capillary_pressure_models), std::move(relative_permeability_models)}}; diff --git a/ProcessLib/RichardsFlow/CreateRichardsFlowMaterialProperties.h b/ProcessLib/RichardsFlow/CreateRichardsFlowMaterialProperties.h index c9c226e29c23d65dcbc603413b69a570779bb9e7..f069f286f291ef3991ff6ce24f78bffffdcfec16 100644 --- a/ProcessLib/RichardsFlow/CreateRichardsFlowMaterialProperties.h +++ b/ProcessLib/RichardsFlow/CreateRichardsFlowMaterialProperties.h @@ -9,7 +9,6 @@ #pragma once - #include "RichardsFlowMaterialProperties.h" namespace BaseLib { diff --git a/ProcessLib/RichardsFlow/CreateRichardsFlowProcess.cpp b/ProcessLib/RichardsFlow/CreateRichardsFlowProcess.cpp index 4ad9c44e3996714b8a512debd891743b06bacfb4..0b99d9c7a0e51eda4f31d950479e996e616599b8 100644 --- a/ProcessLib/RichardsFlow/CreateRichardsFlowProcess.cpp +++ b/ProcessLib/RichardsFlow/CreateRichardsFlowProcess.cpp @@ -9,15 +9,14 @@ #include "CreateRichardsFlowProcess.h" +#include "ProcessLib/Parameter/ConstantParameter.h" #include "ProcessLib/Utils/ParseSecondaryVariables.h" #include "ProcessLib/Utils/ProcessUtils.h" -#include "ProcessLib/Parameter/ConstantParameter.h" #include "RichardsFlowProcess.h" #include "RichardsFlowProcessData.h" #include "CreateRichardsFlowMaterialProperties.h" - namespace ProcessLib { namespace RichardsFlow @@ -51,14 +50,14 @@ std::unique_ptr<Process> createRichardsFlowProcess( SecondaryVariableCollection secondary_variables; NumLib::NamedFunctionCaller named_function_caller( - { "RichardsFlow_pressure" }); + {"RichardsFlow_pressure"}); ProcessLib::parseSecondaryVariables(config, secondary_variables, - named_function_caller); + named_function_caller); // Specific body force std::vector<double> const b = - //! \ogs_file_param{prj__processes__process__TWOPHASE_FLOW_PP__specific_body_force} + //! \ogs_file_param{prj__processes__process__RICHARDS_FLOW__specific_body_force} config.getConfigParameter<std::vector<double>>("specific_body_force"); assert(b.size() > 0 && b.size() < 4); Eigen::VectorXd specific_body_force(b.size()); @@ -89,18 +88,16 @@ std::unique_ptr<Process> createRichardsFlowProcess( { INFO("The Richards flow is in homogeneous porous media."); } - std::unique_ptr<RichardsFlowMaterialProperties> - material = createRichardsFlowMaterialProperties(mat_config, material_ids); + std::unique_ptr<RichardsFlowMaterialProperties> material = + createRichardsFlowMaterialProperties(mat_config, material_ids); RichardsFlowProcessData process_data{std::move(material), - specific_body_force, - has_gravity, - mass_lumping,temperature}; + specific_body_force, has_gravity, + mass_lumping, temperature}; return std::make_unique<RichardsFlowProcess>( mesh, std::move(jacobian_assembler), parameters, integration_order, std::move(process_variables), std::move(process_data), - std::move(secondary_variables), std::move(named_function_caller),mat_config,curves }; -} + std::move(secondary_variables), std::move(named_function_caller),mat_config,curves };} } // namespace RichardsFlow } // namespace ProcessLib diff --git a/ProcessLib/RichardsFlow/RichardsFlowFEM.h b/ProcessLib/RichardsFlow/RichardsFlowFEM.h index 8b3d13dfa806b9a8752ad6ec0e213296a583c964..4627989d1a1b333c47df27ee4b1d027e3368e146 100644 --- a/ProcessLib/RichardsFlow/RichardsFlowFEM.h +++ b/ProcessLib/RichardsFlow/RichardsFlowFEM.h @@ -178,8 +178,9 @@ public: material_id, t, pos, p_int_pt, temperature, pc_int_pt); _saturation[ip] = Sw; - double const dSw_dpc = _process_data.material->getSaturationDerivative( - material_id, t, pos, p_int_pt, temperature, Sw); + double const dSw_dpc = + _process_data.material->getSaturationDerivative( + material_id, t, pos, p_int_pt, temperature, Sw); // \TODO Extend to pressure dependent density. double const drhow_dp(0.0); diff --git a/ProcessLib/RichardsFlow/RichardsFlowMaterialProperties.cpp b/ProcessLib/RichardsFlow/RichardsFlowMaterialProperties.cpp index f266aade3cabf06d8977102b03bb937f836e06ea..dfbc3e396331199ab9b7174c4cf101108554bb73 100644 --- a/ProcessLib/RichardsFlow/RichardsFlowMaterialProperties.cpp +++ b/ProcessLib/RichardsFlow/RichardsFlowMaterialProperties.cpp @@ -29,14 +29,11 @@ namespace ProcessLib { namespace RichardsFlow { - RichardsFlowMaterialProperties::RichardsFlowMaterialProperties( +RichardsFlowMaterialProperties::RichardsFlowMaterialProperties( boost::optional<MeshLib::PropertyVector<int> const&> const material_ids, - std::unique_ptr<MaterialLib::Fluid::FluidProperty>&& - fluid_density, - std::unique_ptr<MaterialLib::Fluid::FluidProperty>&& - fluid_viscosity, - std::vector<Eigen::MatrixXd>&& - intrinsic_permeability_models, + std::unique_ptr<MaterialLib::Fluid::FluidProperty>&& fluid_density, + std::unique_ptr<MaterialLib::Fluid::FluidProperty>&& fluid_viscosity, + std::vector<Eigen::MatrixXd>&& intrinsic_permeability_models, std::vector<std::unique_ptr<MaterialLib::PorousMedium::Porosity>>&& porosity_models, std::vector<std::unique_ptr<MaterialLib::PorousMedium::Storage>>&& @@ -59,8 +56,7 @@ namespace RichardsFlow DBUG("Create material properties for Richards flow."); } -int RichardsFlowMaterialProperties::getMaterialID( - const std::size_t element_id) +int RichardsFlowMaterialProperties::getMaterialID(const std::size_t element_id) { if (!_material_ids) { @@ -71,8 +67,8 @@ int RichardsFlowMaterialProperties::getMaterialID( return (*_material_ids)[element_id]; } -double RichardsFlowMaterialProperties::getFluidDensity( - const double p, const double T) const +double RichardsFlowMaterialProperties::getFluidDensity(const double p, + const double T) const { ArrayType vars; vars[static_cast<int>(MaterialLib::Fluid::PropertyVariableType::T)] = T; @@ -80,8 +76,8 @@ double RichardsFlowMaterialProperties::getFluidDensity( return _fluid_density->getValue(vars); } -double RichardsFlowMaterialProperties::getFluidViscosity( - const double p, const double T) const +double RichardsFlowMaterialProperties::getFluidViscosity(const double p, + const double T) const { ArrayType vars; vars[static_cast<int>(MaterialLib::Fluid::PropertyVariableType::T)] = T; diff --git a/ProcessLib/RichardsFlow/RichardsFlowMaterialProperties.h b/ProcessLib/RichardsFlow/RichardsFlowMaterialProperties.h index 7d16fcca364b04fe92539936e58fb9a11016cfdd..19bdecc51ca7f2e059c3a4048d6847c6d450a9af 100644 --- a/ProcessLib/RichardsFlow/RichardsFlowMaterialProperties.h +++ b/ProcessLib/RichardsFlow/RichardsFlowMaterialProperties.h @@ -33,13 +33,14 @@ namespace ProcessLib class SpatialPosition; namespace RichardsFlow { - /** This class has a collection of material properties for Richards flow model - * and it makes description of the properties of unsaturated porous media - * i.e. the fluid density and viscosity models - * the relative permeability models, - * the capillary pressure-saturation relationships. - * It generally provides the computation of the PDE coefficients for Richards flow. - */ +/** This class has a collection of material properties for Richards flow model +* and it makes description of the properties of unsaturated porous media +* i.e. the fluid density and viscosity models +* the relative permeability models, +* the capillary pressure-saturation relationships. +* It generally provides the computation of the PDE coefficients for Richards +* flow. +*/ class RichardsFlowMaterialProperties { @@ -48,12 +49,9 @@ public: RichardsFlowMaterialProperties( boost::optional<MeshLib::PropertyVector<int> const&> const material_ids, - std::unique_ptr<MaterialLib::Fluid::FluidProperty>&& - fluid_density, - std::unique_ptr<MaterialLib::Fluid::FluidProperty>&& - fluid_viscosity, - std::vector<Eigen::MatrixXd>&& - intrinsic_permeability_models, + std::unique_ptr<MaterialLib::Fluid::FluidProperty>&& fluid_density, + std::unique_ptr<MaterialLib::Fluid::FluidProperty>&& fluid_viscosity, + std::vector<Eigen::MatrixXd>&& intrinsic_permeability_models, std::vector<std::unique_ptr<MaterialLib::PorousMedium::Porosity>>&& porosity_models, std::vector<std::unique_ptr<MaterialLib::PorousMedium::Storage>>&& @@ -78,9 +76,9 @@ public: const double T, const double porosity_variable) const; double getRelativePermeability(const double t, - const ProcessLib::SpatialPosition& pos, - const double p, const double T, - const double saturation) const; + const ProcessLib::SpatialPosition& pos, + const double p, const double T, + const double saturation) const; double getSaturation(const int material_id, const double t, const ProcessLib::SpatialPosition& pos, const double p, @@ -106,8 +104,8 @@ private: _porosity_models; std::vector<std::unique_ptr<MaterialLib::PorousMedium::Storage>> const _storage_models; - std::vector< - std::unique_ptr<MaterialLib::PorousMedium::CapillaryPressureSaturation>> const + std::vector<std::unique_ptr< + MaterialLib::PorousMedium::CapillaryPressureSaturation>> const _capillary_pressure_models; std::vector< std::unique_ptr<MaterialLib::PorousMedium::RelativePermeability>> const diff --git a/ProcessLib/RichardsFlow/RichardsFlowProcess.cpp b/ProcessLib/RichardsFlow/RichardsFlowProcess.cpp index 3a59df57144dfb2aa188949ebafc1ff8e1b15af0..c87d3dd6cdf843931c0a104d42f4ce22b5e3b5e8 100644 --- a/ProcessLib/RichardsFlow/RichardsFlowProcess.cpp +++ b/ProcessLib/RichardsFlow/RichardsFlowProcess.cpp @@ -28,7 +28,7 @@ RichardsFlowProcess::RichardsFlowProcess( NumLib::NamedFunctionCaller&& named_function_caller, BaseLib::ConfigTree const& /*config*/, std::map<std::string, - std::unique_ptr<MathLib::PiecewiseLinearInterpolation>> const& + std::unique_ptr<MathLib::PiecewiseLinearInterpolation>> const& /*curves*/) : Process(mesh, std::move(jacobian_assembler), parameters, integration_order, std::move(process_variables), @@ -78,13 +78,13 @@ void RichardsFlowProcess::initializeConcreteProcess( } } -void RichardsFlowProcess::assembleConcreteProcess(const double t, - GlobalVector const& x, - GlobalMatrix& M, - GlobalMatrix& K, - GlobalVector& b, - StaggeredCouplingTerm const& - coupling_term) +void RichardsFlowProcess::assembleConcreteProcess( + const double t, + GlobalVector const& x, + GlobalMatrix& M, + GlobalMatrix& K, + GlobalVector& b, + StaggeredCouplingTerm const& coupling_term) { DBUG("Assemble RichardsFlowProcess."); diff --git a/ProcessLib/RichardsFlow/RichardsFlowProcess.h b/ProcessLib/RichardsFlow/RichardsFlowProcess.h index 786b571ab183f152dc5d61ca33a8ffdc534f8cdc..f1b44fa2272d61ddcdb5e666c538dc29e4349cba 100644 --- a/ProcessLib/RichardsFlow/RichardsFlowProcess.h +++ b/ProcessLib/RichardsFlow/RichardsFlowProcess.h @@ -37,8 +37,8 @@ public: NumLib::NamedFunctionCaller&& named_function_caller, BaseLib::ConfigTree const& config, std::map<std::string, - std::unique_ptr<MathLib::PiecewiseLinearInterpolation>> const& - curves); + std::unique_ptr<MathLib::PiecewiseLinearInterpolation>> const& + curves); //! \name ODESystem interface //! @{ @@ -56,11 +56,9 @@ private: MeshLib::Mesh const& mesh, unsigned const integration_order) override; - void assembleConcreteProcess(const double t, GlobalVector const& x, - GlobalMatrix& M, GlobalMatrix& K, - GlobalVector& b, - StaggeredCouplingTerm const& coupling_term - ) override; + void assembleConcreteProcess( + const double t, GlobalVector const& x, GlobalMatrix& M, GlobalMatrix& K, + GlobalVector& b, StaggeredCouplingTerm const& coupling_term) override; void assembleWithJacobianConcreteProcess( const double t, GlobalVector const& x, GlobalVector const& xdot, diff --git a/ProcessLib/RichardsFlow/RichardsFlowProcessData.h b/ProcessLib/RichardsFlow/RichardsFlowProcessData.h index ecb72268b6a3b7e9ba7ce06f41a468602183ac13..205ff8cfee2e73d3c8cab36d9727511b6dd0e7ec 100644 --- a/ProcessLib/RichardsFlow/RichardsFlowProcessData.h +++ b/ProcessLib/RichardsFlow/RichardsFlowProcessData.h @@ -25,7 +25,7 @@ struct RichardsFlowProcessData { RichardsFlowProcessData( std::unique_ptr<RichardsFlowMaterialProperties>&& material_, - Eigen::VectorXd const specific_body_force_, + Eigen::VectorXd const specific_body_force_, bool const has_gravity_, bool const has_mass_lumping_, Parameter<double> const& temperature_)