cb-geo / mpm

CB-Geo High-Performance Material Point Method
https://www.cb-geo.com/research/mpm
Other
235 stars 82 forks source link

[Solver] XMPM solver to handle predefined discontinuity #691

Closed yliang-sn closed 3 years ago

yliang-sn commented 3 years ago

Describe the PR A draft PR to ease to check the solver structure.

codecov[bot] commented 3 years ago

Codecov Report

Merging #691 into develop will decrease coverage by 2.47%. The diff coverage is 0.15%.

Impacted file tree graph

@@             Coverage Diff             @@
##           develop     #691      +/-   ##
===========================================
- Coverage    96.66%   94.19%   -2.47%     
===========================================
  Files          123      132       +9     
  Lines        25375    26041     +666     
===========================================
+ Hits         24527    24528       +1     
- Misses         848     1513     +665     
Impacted Files Coverage Δ
include/mesh.h 88.89% <0.00%> (-11.11%) :arrow_down:
include/mesh.tcc 79.93% <0.00%> (-3.97%) :arrow_down:
include/node.h 82.86% <0.00%> (-17.14%) :arrow_down:
include/node_base.h 100.00% <ø> (ø)
include/node_xmpm.tcc 0.00% <0.00%> (ø)
include/particles/particle.h 100.00% <ø> (ø)
include/particles/particle_base.h 90.91% <0.00%> (-9.09%) :arrow_down:
include/particles/particle_xmpm.h 0.00% <0.00%> (ø)
include/particles/particle_xmpm.tcc 0.00% <0.00%> (ø)
include/solvers/xmpm_explicit.h 0.00% <0.00%> (ø)
... and 16 more

Continue to review full report at Codecov.

Legend - Click here to learn more Δ = absolute <relative> (impact), ø = not affected, ? = missing data Powered by Codecov. Last update 3b20da5...f8cb643. Read the comment docs.

yliang-sn commented 3 years ago

@kks32 @thiagordonho @bodhinandach Thank you all. I fixed the code according to your suggestion. It is much better.

yliang-sn commented 3 years ago

[Partial review] This is great Yong.

  1. Could you please explain how you plan to handle surface/lines distributed across several MPI ranks?
  2. Is the 3D surface always defined by triangular elements?
  1. In 3D, the discontinuity will be a spatial surface and in 2D it's just a line. I prefer to copy it for each MPI ranks.
  2. Yes.
yliang-sn commented 3 years ago

Well done with this portion of the code so far. That is a lot of work done! Here are a few overall comments:

  1. I also agree with Krishna's suggestions
  2. Why is the XMPM explicit solver in a separate file?
  3. Perhaps it would be good to standardize the nomenclature of the discontinuity functions (e.g., all with discontinuity in the end, such as compute_momentum_discontinuity). This is something I also want to do for the Contact algorithm but I haven't done it yet. We can use the same structure to keep the code as similar as possible.

I will do the initialization and propagation of the discontinuity then. It will be clear in a separate file.

stale[bot] commented 3 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.