Skip to content
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

RM; pass solid pressure to density #2999

Merged
merged 3 commits into from
Jun 15, 2020
Merged

RM; pass solid pressure to density #2999

merged 3 commits into from
Jun 15, 2020

Conversation

endJunction
Copy link
Member

@endJunction endJunction commented Jun 10, 2020

Followup of #2996

Required for solid pressure dependent density.

  1. Feature description was added to the changelog
  2. Tests covering your feature were added? ctest with swelling was updated to include the new dependency
  3. Any new feature or behavior change was documented?

@endJunction
Copy link
Member Author

exponential_solid_density

dashed lines - constant solid density
solid lines - exponential solid density.

All but the dry densities plots are identical.
See benchmark itself for details. Short: mechanical load phase in the beginning, desaturation at the end with swelling happening.

Copy link
Member

@TomFischer TomFischer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks reasonable. 👍

double const p_FR = -chi_S_L * p_cap_ip;
// p_SR
variables[static_cast<int>(MPL::Variable::solid_grain_pressure)] =
p_FR - (sigma_eff + sigma_sw).dot(identity2) / (3 * (1 - phi));
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
p_FR - (sigma_eff + sigma_sw).dot(identity2) / (3 * (1 - phi));
p_FR - std::max(0.0, (sigma_eff + sigma_sw).dot(identity2) / (3 * (1 - phi)));

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

or

std::max(0.0, p_FR - (sigma_eff + sigma_sw).dot(identity2) / (3 * (1 - phi)));

Copy link
Member Author

@endJunction endJunction Jun 12, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why? At least the transformation you suggest is not equivalent to the original code, so an explanation would be helpful.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I do know what it is exactly the density model. If the density model describes the density change only under pressure, or compression, and no change in extension, all three principle stresses must be negative. If it is not the case, your implementation is roughly good, which means we do not care compressed or extended in directions but with a dominated status.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The density model in the ctest is exponential one describing the change in both directions, compression and extension.

Comment on lines 74 to +84
<name>density</name>
<type>Constant</type>
<value>1</value>
<type>Exponential</type>
<reference_value>1</reference_value>
<exponent>
<variable_name>solid_grain_pressure</variable_name>
<reference_condition>0</reference_condition>
<!-- beta_SR = (1 - alpha)/K_S. K_S = E/(3(1-2 nu)) -->
<!-- K_S = 1/(3*(1-2*0.3)) = 5/6. -->
<!-- beta_SR = (1 - 11/12)/K_S = 0.1 -->
<factor>0.1</factor>
</exponent>
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@wenqing the used density model.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see.

Used by exponential solid density.
Observable through the dry density solid and dry density pellet.
Effect is visible for mechanical compression and desaturation.
@endJunction endJunction merged commit 3c4d56a into ufz:master Jun 15, 2020
@endJunction endJunction deleted the RMPassSolidPressureToDensity branch June 15, 2020 22:46
@ogsbot
Copy link
Member

ogsbot commented Jun 19, 2020

OpenGeoSys development has been moved to GitLab.

See this pull request on GitLab.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants