Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
MoReFEM
CoreLibrary
MoReFEM
Commits
518301ad
Commit
518301ad
authored
Oct 27, 2016
by
GILLES Sebastien
Browse files
#1022
HybridVector: use new fluid pressure rather than old one.
parent
6aee6fdf
Changes
3
Hide whitespace changes
Inline
Side-by-side
Sources/ModelInstances/UnderDevelopment/Poromechanics/ImplicitStep/ImplicitStepFluid/NewtonFixedPoint/GlobalVariationalOperatorInstances/HybridVector.hxx
View file @
518301ad
...
...
@@ -51,7 +51,7 @@ namespace HappyHeart
DoComputeProcessorWiseLocal2Global
::
no
,
density
,
porosity
,
update_current_pressure_operator
,
update_current_pressure_operator
.
GetPressureAtQuadPt
()
,
current_fluid_pressure
,
fluid_source_term
),
update_current_pressure_operator_
(
update_current_pressure_operator
)
...
...
@@ -91,7 +91,7 @@ namespace HappyHeart
const
GlobalVector
&
current_velocity
,
const
Domain
&
domain
)
const
{
//
update_current_pressure_operator_.Update
update_current_pressure_operator_
.
Update
();
return
parent
::
AssembleImpl
(
std
::
move
(
global_vector_with_coeff_tuple
),
domain
,
...
...
Sources/ModelInstances/UnderDevelopment/Poromechanics/ImplicitStep/ImplicitStepFluid/NewtonFixedPoint/LocalVariationalOperatorInstances/HybridVector.hpp
View file @
518301ad
...
...
@@ -95,7 +95,7 @@ namespace HappyHeart
typename
parent
::
elementary_data_type
&&
elementary_data
,
const
ScalarParameter
<>&
density
,
const
ParameterAtDof
<
ParameterNS
::
Type
::
scalar
,
ParameterNS
::
TimeDependencyNS
::
None
,
2u
>&
porosity
,
Global
Parameter
OperatorNS
::
UpdatePressureAtQuadPt
<
HyperelasticLawT
,
DataNS
::
TimeLabel2
::
current
>&
update_current_pressure_operator
,
const
Parameter
AtQuadraturePoint
<::
HappyHeart
::
ParameterNS
::
Type
::
scalar
>&
pressure_at_quad_pt
,
const
ParameterAtDof
<
ParameterNS
::
Type
::
scalar
>&
current_fluid_pressure
,
double
fluid_source_term
);
...
...
@@ -140,6 +140,8 @@ namespace HappyHeart
//! Current fluid pressure.
const
ParameterAtDof
<
ParameterNS
::
Type
::
scalar
>&
GetCurrentFluidPressure
()
const
noexcept
;
//! Pressure at quadrature point.
const
ParameterAtQuadraturePoint
<::
HappyHeart
::
ParameterNS
::
Type
::
scalar
>&
GetPressureAtQuadPt
()
const
noexcept
;
public:
...
...
@@ -163,8 +165,8 @@ namespace HappyHeart
//! Fluid source term ('beta' in Freefem).
const
double
fluid_source_term_
;
//!
Operator which updates the pressure at quadrature points (computed from fluidmass)
.
Global
Parameter
OperatorNS
::
UpdatePressureAtQuadPt
<
HyperelasticLawT
,
DataNS
::
TimeLabel2
::
current
>&
update_current_pressure_operator
_
;
//!
Pressure at quadrature point
.
const
Parameter
AtQuadraturePoint
<::
HappyHeart
::
ParameterNS
::
Type
::
scalar
>&
pressure_at_quad_pt
_
;
};
...
...
Sources/ModelInstances/UnderDevelopment/Poromechanics/ImplicitStep/ImplicitStepFluid/NewtonFixedPoint/LocalVariationalOperatorInstances/HybridVector.hxx
View file @
518301ad
...
...
@@ -37,7 +37,7 @@ namespace HappyHeart
typename
parent
::
elementary_data_type
&&
a_elementary_data
,
const
ScalarParameter
<>&
density
,
const
ParameterAtDof
<
ParameterNS
::
Type
::
scalar
,
ParameterNS
::
TimeDependencyNS
::
None
,
2u
>&
porosity
,
Global
Parameter
OperatorNS
::
UpdatePressureAtQuadPt
<
HyperelasticLawT
,
DataNS
::
TimeLabel2
::
current
>&
update_current_pressure_operator
,
const
Parameter
AtQuadraturePoint
<::
HappyHeart
::
ParameterNS
::
Type
::
scalar
>&
pressure_at_quad_pt
,
const
ParameterAtDof
<
ParameterNS
::
Type
::
scalar
>&
current_fluid_pressure
,
double
fluid_source_term
)
:
parent
(
unknown_list
,
std
::
move
(
a_elementary_data
)),
...
...
@@ -45,7 +45,7 @@ namespace HappyHeart
density_
(
density
),
current_fluid_pressure_
(
current_fluid_pressure
),
fluid_source_term_
(
fluid_source_term
),
update_current_pressure_operator_
(
update_curren
t_pressure_
operator
)
pressure_at_quad_p
t_
(
pressure_
at_quad_pt
)
{
decltype
(
auto
)
elementary_data
=
GetElementaryData
();
decltype
(
auto
)
vel_ref_felt
=
elementary_data
.
GetRefFElt
(
GetNthUnknown
(
1
));
...
...
@@ -87,6 +87,8 @@ namespace HappyHeart
const
auto
fluid_source_term
=
GetFluidSourceTerm
();
decltype
(
auto
)
current_fluid_pressure
=
GetCurrentFluidPressure
();
decltype
(
auto
)
pressure_at_quad_pt
=
GetPressureAtQuadPt
();
for
(
const
auto
&
infos_at_quad_pt
:
infos_at_quad_pt_list
)
{
const
auto
&
phi
=
infos_at_quad_pt
.
GetRefFEltPhi
();
...
...
@@ -101,8 +103,7 @@ namespace HappyHeart
const
auto
density_value
=
density
.
GetValue
(
quad_pt
,
geom_elt
);
const
auto
current_fluid_pressure_value
=
current_fluid_pressure
.
GetValue
(
quad_pt
,
geom_elt
);
const
auto
current_fluid_pressure_value
=
pressure_at_quad_pt
.
GetValue
(
quad_pt
,
geom_elt
);
for
(
int
mass_node_index
=
0
;
mass_node_index
<
Nmass_node
;
++
mass_node_index
)
{
...
...
@@ -182,6 +183,15 @@ namespace HappyHeart
{
return
current_fluid_pressure_
;
}
template
<
class
HyperelasticLawT
>
inline
const
ParameterAtQuadraturePoint
<::
HappyHeart
::
ParameterNS
::
Type
::
scalar
>&
HybridVector
<
HyperelasticLawT
>::
GetPressureAtQuadPt
()
const
noexcept
{
return
pressure_at_quad_pt_
;
}
}
// namespace LocalVariationalOperatorNS
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment