Using Higher Order Basis Functions - geomechanics/mpm GitHub Wiki

GIMP

TBA

Quadratic BSpline

To run with quadratic BSpline elements, use: the cell type ED2Q4P2B (2D) or ED3H8P2B (3D), the mesh entity sets file, and additional settings in the "nonlocal_mesh_properties" section of the main .json file.

"mesh": {
          "entity_sets": "entity_sets.json",          
          "cell_type": "ED3H8P2B",
          "nonlocal_mesh_properties": {
			"type": "BSPLINE",
			"kernel_correction": true,                (optional, default true)
			"kernel_correction_iteration": 2,         (optional, default 1)
			"kernel_correction_tolerance": 1.e-10,    (optional, default 1.e-8 for 2D, and 0.0 for 3D)
			"node_types": [                           (optional, only if kernel_correction is true (default))
				{
					"nset_id": 0,
					"dir": 0,
					"type": 1
				},
                               {...}
                        ]
		}
}

In the "nonlocal_mesh_properties" section the following settings are required:

  • "type" should be "BSPLINE".
  • "kernel_correction" is default true. Using the weighted-least-square kernel correction method as highlighted by Nakamura et al. (2023).
  • "kernel_correction_iteration" can be specified to avoid negative basis functions after kernel correction.
  • "kernel_correction_tolerance" to specify when to apply kernel correction.
  • "node_types" should be defined for each direction if "kernel_correction" is not used.
    • "dir" {0, 1, 2} for {x, y, z}.
    • "nset_id" specified in the mesh entity sets file.
    • "type" according to the following convention:
  //! Regular = 0 //Default
  //! LowerBoundary = 1
  //! LowerIntermediate = 2
  //! UpperIntermediate = 3
  //! UpperBoundary = 4

As an example, for the x-direction:

  • LowerBoundary corresponds to the xmin set of nodes
  • LowerIntermediate corresponds to the xmin+1 set of nodes
  • UpperBoundary corresponds to the xmax set of nodes
  • UpperIntermediate corresponds to the xmax-1 set of nodes

Reference:

  • Steffen, M., Kirby, R. M., & Berzins, M. (2008). Analysis and reduction of quadrature errors in the material point method (MPM). International journal for numerical methods in engineering, 76(6), 922-948.
  • Nakamura, K., Matsumura, S., & Mizutani, T. (2023). Taylor particle-in-cell transfer and kernel correction for material point method. Computer Methods in Applied Mechanics and Engineering, 403, 115720.
  • Chandra, B., Hashimoto, R., Kamrin, K., & Soga, K. (2024). Mixed material point method formulation, stabilization, and validation for a unified analysis of free-surface and seepage flow. Journal of Computational Physics, 519, 113457.

Local Maximum Entropy (LME)

To run the Local Maximum Entropy (LME) elements: ED2T3L, ED2Q4L (2D), and ED3H8L (3D), additional settings should be added to the main .json file.

"mesh": {
          "cell_type": "ED2Q4L",
          "nonlocal_mesh_properties": {
			"type": "LME",
			"gamma": XX,
			"anisotropy": true, //optional default is false
                        "mesh_size": YY, //optional (if it is not given, an automatic computation will be done)
                        "support_tolerance": ZZ //optional default is 1e-6
          }
}

In the "nonlocal_mesh_properties" section the following settings are required:

  • "type" should be "LME".
  • "gamma" is a non-dimensional thermalization parameter.
  • "anisotropy" boolean to shift the metric tensor within the LME computation.
  • "mesh_size" is the average mesh size, which is assumed to be constant in the current case.
  • "support_tolerance" is the threshold magnitude of the shape function value.

Reference:

  • Arroyo, M., & Ortiz, M. (2006). Local maximum‐entropy approximation schemes: a seamless bridge between finite elements and meshfree methods. International journal for numerical methods in engineering, 65(13), 2167-2202.
⚠️ **GitHub.com Fallback** ⚠️