-
Notifications
You must be signed in to change notification settings - Fork 239
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
HydroMechanics non-equilibrium initial states. #2561
Conversation
@@ -0,0 +1,3 @@ | |||
Non-equilibrium initial state variables which are not explicitly in equilibrium |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
not explicitly --> implicitly.
Will the changes in the local assembler be in another PR? |
Yes, the F^{oob} (out of balance forces) formulation will follow in other PR. |
The processes might change the solution, which is now passed as a non-const reference.
@@ -188,13 +188,45 @@ std::unique_ptr<Process> createHydroMechanicsProcess( | |||
config.getConfigParameter<double>( | |||
"reference_temperature", std::numeric_limits<double>::quiet_NaN()); | |||
|
|||
// Non-equilibrium variables | |||
ParameterLib::Parameter<double> const* nonequilibrium_stress = nullptr; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just out of curiosity: Why not ´unique_ptr`?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's a non-owning optional parameter.
@@ -97,6 +101,12 @@ struct HydroMechanicsProcessData | |||
ParameterLib::Parameter<double> const& porosity; | |||
/// Solid's density. A scalar quantity, ParameterLib::Parameter<double>. | |||
ParameterLib::Parameter<double> const& solid_density; | |||
|
|||
/// Optional, non-equilibrium stress parameter. | |||
ParameterLib::Parameter<double> const* const nonequilibrium_stress; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why not ´unique_ptr´?
<Collection> | ||
<DataSet timestep="0" group="" part="0" file="into_initial_state_pcs_0_ts_0_t_0.000000.vtu"/> | ||
</Collection> | ||
</VTKFile> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is the pvd file needed?
Are the gml files needed? I didn´t see references in the prooject files. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The PR looks in general good. Some small things to discuss. After resolving the conflicts and when tests are green: ⏩
I guess that Tests/Data/HydroMechanics/InitialStates/pressure/Docu_HM_Non_Equilibrium_Initial_States.pdf is for the documentation of one benchmark. However the web content file, which should refer to that PDF is missing. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good except a documentation of one benchmark is missing.
@@ -269,11 +302,11 @@ void HydroMechanicsLocalAssembler<ShapeFunctionDisplacement, | |||
|
|||
// pressure equation | |||
local_rhs.template segment<pressure_size>(pressure_index).noalias() -= | |||
laplace_p * p + storage_p * p_dot + Kpu * u_dot; | |||
laplace_p * (p - p_neq) + storage_p * p_dot + Kpu * u_dot; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think that every simulation starts from the previous status, whether which is equilibrium (may from the previous simulation) or non-equilibrium (specfied). Therefore p_neq should be p0, and local_rhs should not be changed. This is a suggestion for future change. The PR itself is OK with the current consideration.
This should be no longer needed with the CompensateInitial.... |
That's true, but I still didn't redo the test cases... |
OpenGeoSys development has been moved to GitLab. See this pull request on GitLab. This issue / pull request was open before the GitLab migration. |
Adding same non-equilibrium initial states as for the SmallDeformation process ##2501.
Meanwhile the theoretical ideas were developed further and this is only for the comparison with the next new implementation and also provides the project files/tests. The new idea is to include the non-equilibrium in the residuum.