Skip to content
Snippets Groups Projects
Commit 213332e4 authored by Dmitri Naumov's avatar Dmitri Naumov
Browse files

[PL/RM] Add micro pressure and saturation sec. out

parent 26050545
No related branches found
No related tags found
No related merge requests found
...@@ -64,6 +64,22 @@ struct LocalAssemblerInterface : public ProcessLib::LocalAssemblerInterface, ...@@ -64,6 +64,22 @@ struct LocalAssemblerInterface : public ProcessLib::LocalAssemblerInterface,
std::vector<NumLib::LocalToGlobalIndexMap const*> const& dof_table, std::vector<NumLib::LocalToGlobalIndexMap const*> const& dof_table,
std::vector<double>& cache) const = 0; std::vector<double>& cache) const = 0;
virtual std::vector<double> getMicroSaturation() const = 0;
virtual std::vector<double> const& getIntPtMicroSaturation(
const double t,
std::vector<GlobalVector*> const& x,
std::vector<NumLib::LocalToGlobalIndexMap const*> const& dof_table,
std::vector<double>& cache) const = 0;
virtual std::vector<double> getMicroPressure() const = 0;
virtual std::vector<double> const& getIntPtMicroPressure(
const double t,
std::vector<GlobalVector*> const& x,
std::vector<NumLib::LocalToGlobalIndexMap const*> const& dof_table,
std::vector<double>& cache) const = 0;
virtual std::vector<double> getPorosity() const = 0; virtual std::vector<double> getPorosity() const = 0;
virtual std::vector<double> const& getIntPtPorosity( virtual std::vector<double> const& getIntPtPorosity(
......
...@@ -1250,6 +1250,58 @@ std::vector<double> const& RichardsMechanicsLocalAssembler< ...@@ -1250,6 +1250,58 @@ std::vector<double> const& RichardsMechanicsLocalAssembler<
_ip_data, &IpData::saturation, cache); _ip_data, &IpData::saturation, cache);
} }
template <typename ShapeFunctionDisplacement, typename ShapeFunctionPressure,
typename IntegrationMethod, int DisplacementDim>
std::vector<double> RichardsMechanicsLocalAssembler<
ShapeFunctionDisplacement, ShapeFunctionPressure, IntegrationMethod,
DisplacementDim>::getMicroSaturation() const
{
std::vector<double> result;
getIntPtMicroSaturation(0, {}, {}, result);
return result;
}
template <typename ShapeFunctionDisplacement, typename ShapeFunctionPressure,
typename IntegrationMethod, int DisplacementDim>
std::vector<double> const& RichardsMechanicsLocalAssembler<
ShapeFunctionDisplacement, ShapeFunctionPressure, IntegrationMethod,
DisplacementDim>::
getIntPtMicroSaturation(
const double /*t*/,
std::vector<GlobalVector*> const& /*x*/,
std::vector<NumLib::LocalToGlobalIndexMap const*> const& /*dof_table*/,
std::vector<double>& cache) const
{
return ProcessLib::getIntegrationPointScalarData(
_ip_data, &IpData::saturation_m, cache);
}
template <typename ShapeFunctionDisplacement, typename ShapeFunctionPressure,
typename IntegrationMethod, int DisplacementDim>
std::vector<double> RichardsMechanicsLocalAssembler<
ShapeFunctionDisplacement, ShapeFunctionPressure, IntegrationMethod,
DisplacementDim>::getMicroPressure() const
{
std::vector<double> result;
getIntPtMicroPressure(0, {}, {}, result);
return result;
}
template <typename ShapeFunctionDisplacement, typename ShapeFunctionPressure,
typename IntegrationMethod, int DisplacementDim>
std::vector<double> const& RichardsMechanicsLocalAssembler<
ShapeFunctionDisplacement, ShapeFunctionPressure, IntegrationMethod,
DisplacementDim>::
getIntPtMicroPressure(
const double /*t*/,
std::vector<GlobalVector*> const& /*x*/,
std::vector<NumLib::LocalToGlobalIndexMap const*> const& /*dof_table*/,
std::vector<double>& cache) const
{
return ProcessLib::getIntegrationPointScalarData(
_ip_data, &IpData::liquid_pressure_m, cache);
}
template <typename ShapeFunctionDisplacement, typename ShapeFunctionPressure, template <typename ShapeFunctionDisplacement, typename ShapeFunctionPressure,
typename IntegrationMethod, int DisplacementDim> typename IntegrationMethod, int DisplacementDim>
std::vector<double> RichardsMechanicsLocalAssembler< std::vector<double> RichardsMechanicsLocalAssembler<
......
...@@ -189,6 +189,20 @@ public: ...@@ -189,6 +189,20 @@ public:
std::vector<NumLib::LocalToGlobalIndexMap const*> const& dof_table, std::vector<NumLib::LocalToGlobalIndexMap const*> const& dof_table,
std::vector<double>& cache) const override; std::vector<double>& cache) const override;
std::vector<double> getMicroSaturation() const override;
std::vector<double> const& getIntPtMicroSaturation(
const double t,
std::vector<GlobalVector*> const& x,
std::vector<NumLib::LocalToGlobalIndexMap const*> const& dof_table,
std::vector<double>& cache) const override;
std::vector<double> getMicroPressure() const override;
std::vector<double> const& getIntPtMicroPressure(
const double t,
std::vector<GlobalVector*> const& x,
std::vector<NumLib::LocalToGlobalIndexMap const*> const& dof_table,
std::vector<double>& cache) const override;
std::vector<double> getPorosity() const override; std::vector<double> getPorosity() const override;
std::vector<double> const& getIntPtPorosity( std::vector<double> const& getIntPtPorosity(
const double t, const double t,
......
...@@ -314,6 +314,12 @@ void RichardsMechanicsProcess<DisplacementDim>::initializeConcreteProcess( ...@@ -314,6 +314,12 @@ void RichardsMechanicsProcess<DisplacementDim>::initializeConcreteProcess(
add_secondary_variable("saturation", 1, add_secondary_variable("saturation", 1,
&LocalAssemblerIF::getIntPtSaturation); &LocalAssemblerIF::getIntPtSaturation);
add_secondary_variable("micro_saturation", 1,
&LocalAssemblerIF::getIntPtMicroSaturation);
add_secondary_variable("micro_pressure", 1,
&LocalAssemblerIF::getIntPtMicroPressure);
add_secondary_variable("porosity", 1, add_secondary_variable("porosity", 1,
&LocalAssemblerIF::getIntPtPorosity); &LocalAssemblerIF::getIntPtPorosity);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment