Skip to content

Conversation

@bodhinandach
Copy link
Member

Describe the PR
This PR is to implement the two-phase one-layer solvers for fully saturated soil simulation. One particle includes both solid phase and liquid phase, which are defined by the corresponding volume fractions (n_s and n_w). The theory of porous media is adopted to set up the governing equations (momentum balance and mass balance). All implementations work coherently with the current MPI and OpenMP parallelization features. Two solvers are presented in this PR: explicit and semi-implicit.

New implementation
TwoPhase Particle

  1. New class ParticleTwoPhase derived from Particle, which include all necessary functions for two-phase computation and new variables for two-phase (etc. pore pressure, porosity)
  2. New hdf5 structure for ParticleTwoPhase (also includes refactoring of base hdf5 class)

MPMExplicitTwoPhase

  1. New class MPMExplicitTwoPhase derived from MPMBase, which includes the main loop for two-phase computation.
  2. New input functions in MPMBase to read the new types of input files for two-phase.

MPMSemiImplicitTwoPhase

  1. New class MPMSemiImplicitTwoPhase derived from MPMBase, which includes the main loop for two-phase computation.

TwoPhase functions for nodes

  1. New functions for the two-phase are implemented in the current Node class directly (see node_multiphase.tcc)

Free surface detection functions in mesh

  1. New functions to detect the changing surface are implemented in the Mesh class (see mesh_multiphase.tcc)

Unit tests and benchmarks
All new implementations are validated by corresponding test functions, and the unit-test for two-phase computation is also included. Related 2D and 3D one-dimensional consolidation tests can be found here: cb-geo/mpm-benchmarks#19.

bodhinandach and others added 30 commits July 21, 2020 11:05
@bodhinandach bodhinandach requested a review from yliang-sn August 13, 2021 00:59
yliang-sn
yliang-sn previously approved these changes Aug 16, 2021
@bodhinandach bodhinandach self-assigned this Aug 17, 2021
@bodhinandach bodhinandach added the enhancement New feature or request label Aug 17, 2021
@codecov-commenter
Copy link

codecov-commenter commented Aug 17, 2021

Codecov Report

Attention: Patch coverage is 88.42237% with 648 lines in your changes missing coverage. Please review.

Project coverage is 95.68%. Comparing base (d6ecaab) to head (8a4995c).
Report is 1261 commits behind head on master.

Files with missing lines Patch % Lines
include/particles/particle_twophase.tcc 84.18% 112 Missing ⚠️
include/solvers/mpm_semi_implicit_twophase.tcc 68.34% 101 Missing ⚠️
tests/io/write_mesh_particles.cc 49.70% 85 Missing ⚠️
tests/io/write_mesh_particles_unitcell.cc 51.37% 71 Missing ⚠️
include/solvers/mpm_explicit_twophase.tcc 64.52% 55 Missing ⚠️
include/solvers/mpm_semi_implicit_navierstokes.tcc 75.36% 52 Missing ⚠️
include/solvers/mpm_base.tcc 71.90% 34 Missing ⚠️
include/mesh_multiphase.tcc 87.50% 32 Missing ⚠️
...solvers/assembler_eigen_semi_implicit_twophase.tcc 87.44% 27 Missing ⚠️
include/linear_solvers/assembler_base.h 29.41% 24 Missing ⚠️
... and 12 more
Additional details and impacted files
@@            Coverage Diff             @@
##           master       #5      +/-   ##
==========================================
- Coverage   96.77%   95.68%   -1.10%     
==========================================
  Files         130      168      +38     
  Lines       25920    34544    +8624     
==========================================
+ Hits        25083    33050    +7967     
- Misses        837     1494     +657     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@bodhinandach bodhinandach merged commit e374ec7 into master Sep 2, 2021
@bodhinandach bodhinandach deleted the solver/two-phase-semi-implicit branch September 2, 2021 17:28
@bodhinandach bodhinandach linked an issue Oct 11, 2021 that may be closed by this pull request
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Direct Eigen Solver

7 participants