Difference between revisions of "3D Cracks"

From OSUPDOCS
Jump to navigation Jump to search
Line 24: Line 24:


<ul>
<ul>
<li><tt>(xn),(yn),(zn)</tt> - for n = 0, 1, and 2 defines three points and <tt>(kn)</tt> in scripted files are key point labels (which have to be unique). The defined crack will be planar parallelogram with edges along point 0 to 1 and along point 0 to 2.
<li><tt>(xn),(yn),(zn)</tt> - for n = 0, 1, and 2 defines three points and <tt>(kn)</tt> in scripted files are key point labels (which have to be unique). The defined crack will be planar parallelogram with edges along point 0 to 1 and along point 0 to 2. The fourth point is at the sum of these two vectors.
</li>
</li>



Revision as of 10:12, 30 January 2022

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. The final crack surface can be an arbitrary 2D surface within an object and need not be a planar surface. Note that cracks are defined using large triangles (as large as possible depending on the crack surface). The NairnMPM code will subdivide each specified triangle into smaller triangular facets. Accurate modeling of 3D cracks typically needs the final facet size to be similar to the grid cell size (or smaller). The entire crack can use a custom contact law. Each definition facet can optionally add a traction law.

Planar Crack Definition

If the crack has a planar, parallelogram shape, you can define it with a few commands. In scripted files, the commands are:

NewCrack (x0),(y0),(z0),(k0),<(lawID)>
CrackKeypoint (x1),(y1),(z1),(k1)
CrackKeypoint (x2),(y2),(z2),(k2)
CrackPlane (k0),(k1),(k2),(length),(czmID)

In XML files, a parallelogram crack is defined with one command in a <CrackList> element:

<CrackList law='(lawnum)' lawname='(lawname)'>
  <Plane V0x='(x0)' V0y='(y0)' V0z='(z0)' V1x='(x1)' V1y='(y1)' V1z='(z1)'
         V2x='(x2)' V2y='(y2)' V2z='(z2)' length='(length)' mat='(czmnum)' matname='(czmname)'></Plane>
</CrackList>

where

  • (xn),(yn),(zn) - for n = 0, 1, and 2 defines three points and (kn) in scripted files are key point labels (which have to be unique). The defined crack will be planar parallelogram with edges along point 0 to 1 and along point 0 to 2. The fourth point is at the sum of these two vectors.
  • (length) - is preferred maximum length for facet edges. The parallelogram is divided into triangular facets with the maximum facet edge length given by this parameter. Typically this value should be smaller than a grid cell, such as half of a grid cell.
  • (czmID) (and (czmnum)) - is optional traction law material ID to add a traction law to the entire crack plane. Scripted files can use the material ID. XML file specify an optional traction law by number or name using (czmname). If both are used, the name takes precedence.
  • (lawID) (and (lawnum)) - this parameter customizes this crack to use a different contact law for modeling crack contact (i.e., a different contact law or imperfect interface for this crack than the one selected by the global ContactCracks command). In XML files, the custom contact law can be specified by number or name (in (lawnum) or (lawname)). If both are used, the name takes precedence.

General 3D Crack Definition

In scripted files, each arbitrary crack surface is constructed from a series of connected triangular facets. The defining commands are:

NewCrack (x),(y),(z),(id),<(lawID)>
CrackKeypoint (x),(y),(z),(id)
   ...
CrackFacet (id1),(id2),(id3),(length),(czm)
   ...

In XML files, each arbitrary cracks is defined with a <Mesh> block:

<CrackList law='(lawnum)' lawname='(lawname)'>
  <Mesh>
    <NodeList>
      <pt x='(x)' y='(y)' z='(z)'/>
      <pt x='(x)' y='(y)' z='(z)'/>
        ...
    </NodeList>
    <ElementList>
      <elem type='1' length='(length)' czm='(czm)' czmname='(czmname)'>(nd1),(nd2),(nd3)</elem>
        ...
    </ElementList>
  </Mesh>
</CrackList>

where main crack setting is

The subsequent command for both scripted files and XML files define a collection of crack points or nodes on the crack surface with coordinates ((x),(y),(z)). In scripted files, each key point is assigned an (id) when can be any string. In XML files, key points implicitly numbered by order in the <NodeList> block starting at 1.

Once the key points are defined, they are connected by triangular facets. Scripted files use CrackFacet commands where (id1),(id2),(id3) specify three key points using their IDs. XML files use <elem> commands where (nd1),(nd2),(nd3) specify three key points by number in the <NodeList> block. The two remaining parameters are:

  • (length) - the triangular facets defined above are subdivided into smaller triangular facets with maximum edge length given by this parameter. This length should be smaller than a grid cell, such as half a grid cell.
  • (czm) (or (czmname)) - all facets created can optionally be assigned a traction law. Scripted files choose the law by material ID. In XML files, you specify an optional traction law by number in (czm) or by name in (czmname). If both are used, the name takes precedence.

Some notes on defining 3D cracks as as follows:

  1. Crack meshes may deviate from the entered (length) to get better proportioned elements.
  2. Crack meshes work best if defined facets are similarly sized. If different sizes facets are used, it is best to start with the largest ones.
  3. The code to optimize cracks works best if each new facet has two new edges. If needed, a facet with only one new edge is allowed. Except for the first facet, added facets should have three new edges
  4. The crack mesh must use all defined key points. An error occurs if any are left unused.
  5. No edge connecting two key points can be used in more than two facets (i.e., an edge can only be shared by two facets).
  6. In XML files, each <CrackList> block can have only one <Mesh> block.