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

[Solver] extended MPM #34

Draft
wants to merge 174 commits into
base: master
Choose a base branch
from
Draft

[Solver] extended MPM #34

wants to merge 174 commits into from

Conversation

yliang-sn
Copy link
Collaborator

@yliang-sn yliang-sn commented Feb 13, 2022

Describe the PR

This PR adds the XMPM solver for simulating single or multiple discontinuities.

The main features are given as follows.

  1. The XMPM solver can simulate the initiation and propagation of single discontinuity and multiple discontinuities. However, the interaction between multiple discontinuities during the propagation will be the next. Some parameters should be defined in the input file as:
"discontinuity": {
       "initiation":true,
   	"maximum_num":2,
   	"shield_width":0.1,
        "maximum_pdstrain":0.01
},
  1. The XMPM solver can also handle predefined discontinuities with nodal or particle level set values, which correspond to the "description_type": "node_levelset" and"particle_levelset"respectively.
"discontinuity": {
        "generator":[
	    {
	      "id": 0,
	      "type":"3d",
	      "description_type":"node_levelset",
	      "file":"phi1.txt",
	      "io_type": "Ascii3D",
	      "friction_coefficient":0.0,
	      "cohesion":0,
	      "contact_distance":0.5,
	      "propagation":false
	    },
	    {
	      "id": 1,
	      "type":"3d",
	      "description_type":"particle_levelset",
	      "file":"phi1.txt",
	      "io_type": "Ascii3D",
	      "friction_coefficient":0.0,
	      "cohesion":0,
	      "contact_distance":0.5,
	      "propagation":false
	    }
	]
},
  1. A discontinuity class is created to describe and track the discontinuity information mentioned in 1 and 2.
  2. The corresponding particle class ParticleXMPM, node class NodeXMPM and solver class XMPMExplicit are implemented. The change in the input file is given as
"mesh": {
      "node_type": "N3DXMPM",
},
"particles": [
  {
      "generator": {
              "particle_type": "P3DXMPM",
    }
  },
"analysis": {
      "type": "XMPMExplicit3D",
},
  1. The class DiscontinuityElement is created, which is stored in each cell as a point.
  2. The formulations to compute internal force, nodal external force, particle incremental stain, velocity and position at the enriched region are different from the conventional MPM.
  3. Frictional contact is applied on the discontinuity surface and the cohesion can also be applied.

Finished and following:

  • XMPM framework for multiple discontinuities
  • Contact at the single enriched node and double enriched node
  • The propagation of multiple discontinuities
  • Output particle level set values with undetermined number of discontinuities
  • Resume and output with undetermined number of discontinuities
  • Parallel implementation - OpenMP (correctness)
  • Parallel implementation - OpenMP (performance)
  • Parallel implementation - MPI (correctness)
  • Parallel implementation - MPI (performance)
  • Tests to confirm the capability

Additional context.

Reference:

Liang, Yong, Bodhinanda Chandra, and Kenichi Soga. "Shear band evolution and post-failure simulation by the extended material point method (XMPM) with localization detection and frictional self-contact." Computer Methods in Applied Mechanics and Engineering 390 (2022): 114530.

yliang-sn and others added 30 commits August 1, 2020 13:08
Co-authored-by: Krishna Kumar <[email protected]>
@codecov
Copy link

codecov bot commented Sep 25, 2022

Codecov Report

Base: 95.77% // Head: 91.49% // Decreases project coverage by -4.28% ⚠️

Coverage data is based on head (3d2c044) compared to base (3660519).
Patch coverage: 1.80% of modified lines in pull request are covered.

❗ Current head 3d2c044 differs from pull request most recent head f78245a. Consider uploading reports for the commit f78245a to get more accurate results

Additional details and impacted files
@@            Coverage Diff             @@
##           master      #34      +/-   ##
==========================================
- Coverage   95.77%   91.49%   -4.28%     
==========================================
  Files         241      258      +17     
  Lines       50150    52528    +2378     
==========================================
+ Hits        48029    48060      +31     
- Misses       2121     4468    +2347     
Impacted Files Coverage Δ
include/cells/cell_xmpm.tcc 0.00% <0.00%> (ø)
include/io/io_mesh.h 100.00% <ø> (ø)
include/io/io_mesh_ascii.h 100.00% <ø> (ø)
include/io/io_mesh_ascii.tcc 95.01% <0.00%> (-4.99%) ⬇️
...de/materials/infinitesimal_strain/linear_elastic.h 100.00% <ø> (ø)
...materials/infinitesimal_strain/modified_cam_clay.h 100.00% <ø> (ø)
...lude/materials/infinitesimal_strain/mohr_coulomb.h 100.00% <ø> (ø)
include/materials/infinitesimal_strain/norsand.h 100.00% <ø> (ø)
include/materials/material.h 75.00% <0.00%> (-25.00%) ⬇️
include/mesh/mesh.h 72.00% <0.00%> (-28.00%) ⬇️
... and 37 more

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

☔ View full report at Codecov.
📢 Do you have feedback about the report comment? Let us know in this issue.

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.

XMPM
3 participants