3D Cracks
3D cracks are currently in development and available only in OSParticulas. This page explains how to add them to 3D MPM simulations.
Introduction
3D cracks are defined by a collection of triangular facets. The corners and located using crack key points. Each facet can option input a traction law.
Planar Crack Definition
If the crack has a parallelogram shape, you can define with a few commands. In scripted files, the commands are:
NewCrack (x0),(y0),(z0),(k0) CrackKeypoint (x1),(y1),(z1),(k1) CrackKeypoint (x2),(y2),(z2),(k2) CrackPlane (k0),(k1),(k2),(length),(czm)
- (xn),(yn),(zn) - defines three points and (kn) are key point labels (which have to be unique). The defined crack will be parallelogram with edges along point 0 to 1 and along point 0 to 2.
- (length) - is preferred maximum length for facet edges
- (czm) - is optional Traction Lawstraction law material ID]] to add a traction law to the entire crack plane. In XML files, a parallogram crack is defined with a single command In scripting software, 3D cracks created with ``` NewCrack x,y,z,id CrackKeypoint x,y,z,id ... CrackFacet id1,id2,id3,length,czm ``` Whene `NewCrack` starts to crack (or starts another crack is one already active. The argments are coordinate of one point and a label (or id) for that point. A series of `CrackPoint` commands (with same arguments) creates all the crack mesh keypoints (id's must be unique). A series of `CrackFacet` commands links keypoints (by their ids) into a triangle. Length gets preferred maximum length for facet edge and czm is options traction law ID. Notes:
- Meshing may deviate from preferred length to get better proportioned elements.
- Works best if facets are similar sized or to control resolution best, start with the largest ones.
- Works best if each new facet has two new edges. If needed, only one new edge is OK, but all edges preexisting is bad option (and never needed).
- The crack mesh must use all defined keypoints.
- No pair of keypoints can be connected more than twice (``i.e.``, two edges of two connected facets.
- Searching for existing edges, use if found, but edge used a third time is an error
- Decide on number of intervals for new edges
- Preferred number is int(length/segLength)+1. Perhaps add a preference to keep them all the same.
- If all new- find the pair (0-1) or (1-2) that are close and match other to 0 or 1. My downgrade resolution of 0 is 1-2 pair is used.
- If one was existing - match other two to it
- If two existing - match new one to an existing edge. This case may not get all edges with the same number of inrtervalis
- If three present look for two matching and use. If all differ an error. Note that can be fixed by defining triangles in order that does not surround any area.
- Create segments along any new edges
- Set segments of each edge as no in the crack and if czmID>0 set its traction law
- Start with edge having unique number of internal segments (or same if all the same), call it n. Let s be number of internal segments with equal intervals, then loop for i from 1 to s
- Create n-i segments along line connect segment i of each edge
- Create triangle strip of facets under that line, but if n-1<=0, just divide into two facets
- When done, if n-s>0, connect each one to tip of the triangle