Commit f700b505 authored by GILLES Sebastien's avatar GILLES Sebastien
Browse files

#1022 Use new fluid pressure data as well in explicit formulation.

parent e4f12a02
......@@ -21,7 +21,7 @@ transient = {
-- Maximum time, if set to zero run a static case.
-- Expected format: VALUE
-- Constraint: v >= 0.
timeMax = 3.e-3
timeMax = 8.e-3
} -- transient
......
......@@ -98,7 +98,7 @@ namespace HappyHeart
BogusAccessT == Utilities::Access::read_and_write,
data&
>
GetNonCstNewFluidPressureData() noexcept;
GetNonCstNewFluidPressureData() const noexcept;
private:
......
......@@ -60,7 +60,7 @@ namespace HappyHeart
BogusAccessT == Utilities::Access::read_and_write,
typename NewFluidPressureData<DerivedT, HyperelasticLawT, AccessT>::data&
>
NewFluidPressureData<DerivedT, HyperelasticLawT, AccessT>::GetNonCstNewFluidPressureData() noexcept
NewFluidPressureData<DerivedT, HyperelasticLawT, AccessT>::GetNonCstNewFluidPressureData() const noexcept
{
return const_cast<data&>(GetNewFluidPressureData());
}
......
......@@ -149,7 +149,7 @@ namespace HappyHeart
using mass_with_pressure_operator_type =
::HappyHeart::GlobalVariationalOperatorNS::VariableMass
<
ParameterAtDof<ParameterNS::Type::scalar, ParameterNS::TimeDependencyNS::None, 1u>
ParameterAtQuadraturePoint<ParameterNS::Type::scalar, ParameterNS::TimeDependencyNS::None>
>;
......
......@@ -339,6 +339,7 @@ namespace HappyHeart
decltype(auto) variable_holder = this->GetVariableHolder();
decltype(auto) fluid_density = variable_holder.GetFluidDensity();
decltype(auto) fluid_pressure_data = this->GetFluidPressureData();
decltype(auto) new_fluid_pressure_data = this->GetNonCstNewFluidPressureData();
mass_operator_with_porosity_ =
std::make_unique<mass_with_porosity_operator_type>(felt_space,
......@@ -348,7 +349,8 @@ namespace HappyHeart
mass_operator_with_pressure_ =
std::make_unique<mass_with_pressure_operator_type>(felt_space,
fluid_velocity,
fluid_pressure_data.GetCurrentAsParam());
new_fluid_pressure_data.GetNonCstUpdatePressureParamOnFluidCurrent().GetPressureAtQuadPt());
//fluid_pressure_data.GetCurrentAsParam());
using op_type = GlobalVariationalOperatorNS::GradOnGradientBasedElasticityTensor;
......@@ -440,6 +442,13 @@ namespace HappyHeart
ExplicitStepVariationalFormulation<HyperelasticLawT>
::GetMassOperatorWithPressure() const noexcept
{
decltype(auto) new_fluid_pressure_data = this->GetNonCstNewFluidPressureData();
decltype(auto) update_operator =
new_fluid_pressure_data.GetNonCstUpdatePressureParamOnFluidCurrent();
update_operator.Update();
assert(!(!mass_operator_with_pressure_));
return *mass_operator_with_pressure_;
}
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment