You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The 2d, and 3d implementations of GIMP elements/particles have two issues with their implementation.
When using pycbg/GMSH to output 2D meshes on the improve/mpmxdem branch gimp cells are generated with a different node order to those expected by the GIMP elements.
The 3D elements on the main branch of pycbg have similar issues.
The 2D elements have incorrect shearing behaviour due to this, and the 3D elements have incorrect shear in one dimension but not the other.
This can be easily seen with a 1D consolidation problem.
The second issue is that (at least for the pycbg generated meshes) the GIMP mp shape functions do not actually cross the cells, they are only valid inside of the cell.
If you were to generate a mesh that has 16 nodes per cell with the correct behaviour (i.e. some nodes from other cells), you end up with boundary cells not having enough nodes for the GIMP element.
To fix this the GIMP elements must be able to have less than 16 nodes in their "stencil" to account for the boundaries.
Reproduce
To reproduce:
Compile the latest MPM build on master, and add the build to your PATH
Afterwards you can run the evaluation.py with python3, pandas, matplotlib, and pytables.
The evaluation will draw final shear stress plots, along with vertical stresses.
For a 1d consolidation we expect no shear stresses.
This should be true for MPM/GIMP.
We should also expect better continuity over cell boundaries for the GIMP case.
What we find is spurious shear stress for GIMP in the order of 1000MPa RMS, and cell crossing issues due to the lack of cross cell-continuity.
Screenshots
MPM 1D consolidation:
GIMP 1D consolidation:
Vertical stress distributions for both:
Runtime environment (please complete the following information):
OS/Docker image: Ubuntu 20.04/WSL
Branch: develop
Fix?
One fix for this is to still output 16 nodes in the meshing program, but when reading them in discard out of bounds nodes (i.e. write them as -1 on the mesh file).
This allows the nodes local coordinates to still be indexable from their read-in position in node list for each element.
I implemented this quick fix locally, but it also requires an element allocated per cell, as the local mapping is generated at read time & unique.
The text was updated successfully, but these errors were encountered:
GIMP shear and cell crossing?
The 2d, and 3d implementations of GIMP elements/particles have two issues with their implementation.
When using pycbg/GMSH to output 2D meshes on the improve/mpmxdem branch gimp cells are generated with a different node order to those expected by the GIMP elements.
The 3D elements on the main branch of pycbg have similar issues.
The 2D elements have incorrect shearing behaviour due to this, and the 3D elements have incorrect shear in one dimension but not the other.
This can be easily seen with a 1D consolidation problem.
The second issue is that (at least for the pycbg generated meshes) the GIMP mp shape functions do not actually cross the cells, they are only valid inside of the cell.
If you were to generate a mesh that has 16 nodes per cell with the correct behaviour (i.e. some nodes from other cells), you end up with boundary cells not having enough nodes for the GIMP element.
To fix this the GIMP elements must be able to have less than 16 nodes in their "stencil" to account for the boundaries.
Reproduce
To reproduce:
Compile the latest MPM build on master, and add the build to your PATH
Grab the test 1D consolidation problems, available at:
https://github.com/samjvsutcliffe/gimp_test
You can run all of the tests with
Afterwards you can run the evaluation.py with python3, pandas, matplotlib, and pytables.
The evaluation will draw final shear stress plots, along with vertical stresses.
You can also look at the shear stresses in the VTKs generated, which will be large ~1000MPa RMS.
To generate these meshes you will need the latest branch of pycbg for 2d mesh generation and 2d GIMP.
This can be done by using a local install of the mirrored version.
You need to install this local version using pip install -e
Expected behaviour
For a 1d consolidation we expect no shear stresses.
This should be true for MPM/GIMP.
We should also expect better continuity over cell boundaries for the GIMP case.
What we find is spurious shear stress for GIMP in the order of 1000MPa RMS, and cell crossing issues due to the lack of cross cell-continuity.
Screenshots
MPM 1D consolidation:
GIMP 1D consolidation:
Vertical stress distributions for both:
Runtime environment (please complete the following information):
Fix?
One fix for this is to still output 16 nodes in the meshing program, but when reading them in discard out of bounds nodes (i.e. write them as -1 on the mesh file).
This allows the nodes local coordinates to still be indexable from their read-in position in node list for each element.
I implemented this quick fix locally, but it also requires an element allocated per cell, as the local mapping is generated at read time & unique.
The text was updated successfully, but these errors were encountered: