Introduction

Finite element method has become a useful method to characterize crack tip fields in fracture mechanics problems [1, 2]. Analyses in finite elements are based on solving problems of discretized models represented by nodes and elements. In this respect, meshing of the problem is fundamental to achieving a sufficiently accurate solution. The accuracy of finite element analysis due to finite element mesh has been discussed in [3], while efforts to automate the process of finite element mesh creation were demonstrated in [4,5,6,7]. Despite this, the validation of finite element results was often tedious as highlighted in [8]. In fracture mechanics, algorithms to build finite element meshes with cracks have been developed as discussed in [9], however, issues such as automatic modification of a generalized finite element crack tip mesh for arbitrary crack length and shapes are still open.

The dependency of fracture mechanics solutions on finite element analysis can be seen in the characterization of constraint-based two-dimensional crack tip stress and strain fields notably in the \(T\)-stress [10], the \(Q\)-stress [11] and the \({A}_{2}\) [12] approaches, while the approaches of \({T}_{z}\) [13] and the \(\Delta \sigma\) [14] are sought in the three-dimensional characterization of crack tip stress and strain fields.

In all of the finite element approaches to characterize the crack tip stress and strain fields under moderate to large crack tip plasticity such as the \(J-Q\)/\({A}_{2}\) [11], \(J-{T}_{z}\) [13] and J\(\Delta \sigma\) [14], the bulk of the model development time will usually be spent in the pre-processing stage of mesh development and including the post-processing stage to develop codes for extraction of critical fracture mechanics parameters. Unlike the \(K\)-field dominated crack tip fields in which the stress intensity factor and stresses are well tabulated and determined with close-form equations [15, 16], however, the characterization of crack tip fields dominated by plasticity depends largely on finite element analysis and this can make characterization of unusual crack tip geometries laborious and time consuming. In subsequent papers discussing the \(J-Q\) and the \(J-{T}_{z}\) methods [17, 18], both indicated the application of these approaches could be a challenge as the need to develop unique crack tip finite element mesh for different crack tip geometry configurations.

The main challenge in constraint-based fracture mechanics finite element model development is the need to elucidate nodal crack tip stresses around and ahead of the crack tip at a defined angular interval and this will involve massive number of nodal assessments. In a typical finite element program such as [19, 20], the nodes’ numbers are automatically generated and arbitrarily sequenced. To facilitate the extraction of nodal data around the crack tip, usually, programming codes are developed to manipulate the stress data, however, for different models with different crack configuration, the nodal numbering sequence around the crack tip can be unique and, therefore, the post-processing code has to be unique and this can be a laborious time-consuming model analysis because it is necessary to develop unique post-processing codes which are dependent on the crack configurations developed.

Another issue that analyst faced was the need to ensure the crack tip singularity field is well modeled. It is well accepted that the accuracy of the crack tip finite element formulation depended largely on the exact characterization of the singularity through a fan-shaped nodal and elemental crack tip configuration as indicated by [1, 2]. In two-dimensional and three-dimensional crack tip formulations, a group of quadrilateral elements are arranged in a fan-shape around the crack tip, whereby the collapsed nodes all lie on the crack tip \((x=0, y=0, z=0)\) and the nodal displacements are bounded for elastic problem but are independent in elastic-plastic problem. Although many commercial finite element codes [19, 20] have automatic finite element mesh generation capabilities, a typical fan-shape crack tip mesh generation still requires manual intervention to apply the collapsed quadrilateral elements and this severely increases the difficulty of preparing finite element mesh in cases of varying crack locations and sizes. The crack tip mesh associated with crack length, geometry and shape for different thickness specimens becomes even more complicated for the generation of well-shaped elements and the difficulty to avoid elements with poor aspect ratio.

Based on the two issues presented above, this paper presents an approach which can alleviate the problems through an algorithm for automatic finite element mesh creation of arbitrary shape, length and thickness of cracks of standardized fracture mechanics models as called in ASTM E1820 [21] as well as nonstandardized crack models. The crack tip finite element mesh is based on a fan-shaped geometry with collapsed quadrilateral elements at the crack tip, in which users can define explicitly the geometric configuration of the crack and the size of the elements in the finite element mesh with the ability to control the nodal and the elemental numbering sequence. Overall, the finite element mesh can be suited to most commercial finite element codes due to the fundamental similarity of the nodal and elemental configuration format. Finally, to show the applicability of the proposed meshing method, crack tip models generated through the algorithm were validated using two-dimensional and three-dimensional fracture mechanics crack tip results.

Methodology

Standard fracture mechanics specimens with an edge crack and an elliptical surface crack were chosen to represent the development of the method to finite element mesh creation as shown in Fig. 1. An edge crack specimen and a semi-elliptical specimen were used as examples in the development of a set of equations to create finite element meshes as shown in Fig. 2. Both fractured specimens can be divided as shown in Fig. 2 and form the approach to generate the nodes and formation of the elemental configuration. A two-dimensional and a three-dimensional nodal configuration can be formed by generating the nodes in a geometric progression approach at defined distances along the crack front for each region as shown in Fig. 2.

Fig. 1
figure 1

(a) A finite plate with an edge crack and (b) a semi-elliptical crack

Fig. 2
figure 2

Division of regions for (a) a quarter model of an edge cracked and (b) a semi-elliptical crack front model

A flowchart describing the creation of a finite element meshing approach through a typical programming code is illustrated in Appendix A. In this paper, a programming code Matlab [22] was used to create the nodes and elemental information which are then imported into ABAQUS [19] to generate a stress–strain solution for a typical fracture mechanics problem. It is assumed that second-order elements are used in all mesh development hence the occurrence of mid-side nodes in nodal definition. The exclusion of mid-side nodes is possible if only linear element is considered for the mesh. A detail discussion on the geometric progression technique developed in the algorithm is given in the subsequent sections of this paper.

Node Development

A flowchart for mesh creation for an edge cracked specimen is shown in Appendix A. The algorithm starts with an option to select the type of cracked specimen to mesh and is followed by a basic geometry description for the intended form-factor of the cracked specimen. This is continued with the overall description of the geometry which controls the requirement of the aspect ratio of the elements for the \({\varvec{x}}\), \({\varvec{y}}\) and \({\varvec{z}}\) planes. The important feature of the algorithm was that cracked models were divided into regions for node creation as indicated in Fig. 2.

Crack Tip Region

The fan-shaped configuration as shown in Fig. 2 is denoted as the crack tip region 1 which is a semicircle encompassing the tip of a sharp crack. The first node is created at the tip of the crack, which is located at the origin of the crack (0, 0). Initially, a user is required to input:

  1. 1.

    the radius of crack tip region

  2. 2.

    the number of elements radially

  3. 3.

    the angular directions in addition to the associated bias ratio.

The angular interval of the mesh was determined by the number of elements defined in the angular direction. These inputs were used to create a line with alternate mid-side nodes and corner nodes, denoted as the first line at the crack tip region ahead of crack tip (\(\theta =0^\circ\)). The coordinates of the nodes on the first line were calculated through a geometric progression bias seeding using the length ratio formula between the elements:

$$E_{l} = b_{r}^{{\left( {\frac{1}{N - 1}} \right)}}$$
(1)

where \({E}_{l}\) is the element length ratio, \({b}_{r}\) is the bias ratio and \(N\) is the number of elements across the line radially. For the nodes to represent the crack tip element, the mid-side nodes are placed at the middle point between the corner nodes. The subsequent nodes after the crack tip node (0, 0), the initial distance between corner nodes, \(k\) will increase by a factor of \({E}_{l}\), as shown in Fig. 3. The total length of the first line was equal to the radius of the crack tip region 1.

Fig. 3
figure 3

Nodes generated on the first line with bias seeding

Using the constructed nodes on the first line at \(\theta =0^\circ\), subsequent nodes at other angles were created for a determined angle, \(\theta\). The lines for the mid-side and the corner nodes and the lines for the mid-side nodes only are shown in Fig. 4. The \(x-y\) coordinates of the mid-side and corner nodes are calculated using:

$$\begin{gathered} x = r \cos \theta \hfill \\ y = r \sin \theta \hfill \\ \end{gathered}$$
(2)
Fig. 4
figure 4

Node generation process for crack tip domain

where r represents the radial distance between the node and the crack tip. The lines are generated in a counterclockwise manner, starting from \(\theta =0^\circ\) to \(\theta =180^\circ\) which is the crack flank as depicted in Fig. 4. To capture the change of stresses in boundary value problems in plasticity as discussed by [23], the degree of increments of lines is decided by the number of elements needed within the angle from 0 to \(180^\circ\) is usually set at \(\theta =7.5^\circ\) angular interval.

Box Region

The Box region 2, as shown in Fig. 2, is a region which interfaces with the crack tip region 1 and the other regions which make up the geometry of the crack specimen. The inputs required to create the box region are:

  1. 1.

    the number of elements across the first line

  2. 2.

    the associated bias ratio

  3. 3.

    the geometric dimensions of the box region.

The width and height of Box region 2 are denoted as \({x}_{1}\) and \({y}_{1}\), respectively. The generation of nodes in this region was performed in a similar approach as the crack tip region 1, beginning with the nodes on the first line as shown in Fig. 5. The coordinates of the nodes on the outermost edges of the box region were determined via extrapolation of outermost nodes previously created in the crack tip region 1. Using a first-degree polynomial relationship to extrapolate the nodes, the resulted coefficients which are \(m\), \(y\)-intercept and \(q\) can be expressed as:

$$y = mx + q$$
(3)
Fig. 5
figure 5

Nodes generated in the outermost boundaries of the box region

where \(x\) and \(y\) refer to the \(x-y\) coordinates of corner and mid-side nodes.

The length between the pairs of outermost nodes on both crack tip and box regions was then calculated as shown in Fig. 5. Assuming the \(x\) and \(y\)-coordinates for the nodes on the outermost box region as (\({x}_{b}\), \({y}_{b}\)), and the outermost crack tip region as (\({x}_{c}\), \({y}_{c}\)), the distance between the two outermost nodes \({D}_{\theta }\) can be determined as:

$$D_{\theta } = \sqrt {\left( {x_{b} - x_{c} } \right)^{2} + \left( {y_{b} - y_{c} } \right)^{2} } { }\left( {0^{ \circ } \le \theta \le 180^{ \circ } } \right)$$
(4)

where the value of \({D}_{\theta }\) will vary according to the angle, \(\theta\) measured from the first line. The distance, \({D}_{\theta }\), is then divided into segments, as dictated by the user input for the number of elements to be generated across the first line. The coordinates of the nodes on the first line in the box region are then calculated using Eq 1. The nodes on the first line in the box region are duplicated in a similar approach described for the crack tip region 1, sweeping from \(\theta =0^\circ\) to \(180^\circ\) at the same angle with the crack tip region.

Block Region

The Block region 3 is the left and right extension of the box region that traverses away from the boundaries of the cracked specimen ligament as shown in Fig. 6. The height of the right and left block regions is maintained at the same size as the box region, while the width is dependent on the ligament size. From Fig. 6, the algorithm calculates the width of right block region, \({x}_{2}\) based on the uncracked ligament length, \((W-a)\). The crack depth, \(a\), and the width of the specimen, \(W\), are pre-defined in the initial input to the algorithm. The width of the left block region, \({x}_{3}\), is dependent on the crack depth, \(a\). The user needs to define:

  1. 1.

    the number of elements for the first line

  2. 2.

    its associated bias ratio in both right and left block region.

Fig. 6
figure 6

Nodes generated in the outermost boundaries of the right and the left block

The nodes in the block region were created following the same approach as the crack tip and box regions node creation approach. Nodes were initially extrapolated from the box region onto the outermost boundaries of the block region in order to determine the distance between the two outermost nodes. The calculated distance is divided into segments according to the number of elements defined for the first line. Subsequently, the coordinates of nodes on the first line are calculated using Eq 1. For the block region, the nodes on first line were created in vertical direction, from the \((-{x}_{3},0)\) and \(({x}_{2}, 0)\) to \((-{x}_{3}, {y}_{1})\) and \(({x}_{2}, {y}_{1})\), respectively, as depicted in Fig. 6.

Remote Region

The Remote region 4 completes the length of the cracked specimen span away from the crack flank. The first line is created at the edge of the model, as shown in Fig. 7. The inputs defining the number of elements across first line and its bias ratio were used to calculate the coordinates of the nodes along first line. Eq 1 is adopted to compute the \(y\)-coordinates of the nodes on the first line. The length of the first line is determined from the height of the cracked model, \(H\) defined in the beginning of the algorithm. The nodes on the first line were duplicated to fill the Remote region 4 using a similar approach discussed for the right or the left block regions, but the direction of the nodes generation starts from the right to the left.

Fig. 7
figure 7

First line created on the edge of the remote region

Construction of a Semi-elliptical Crack Front Curve

A semi-elliptical crack front must firstly be discretized to define the points where the layers of the nodes are to be created. Appendix A is referred in which the inputs required are:

  1. 1.

    dimensions of the semi-elliptical crack front

  2. 2.

    the number of element layers.

From the initial inputs, the algorithm determines the total number of nodal layers needed to be connected to achieve the defined number of element layer and the associated thickness values. The gap between each nodes’ layer is defined by the thickness of each element layer where the mid-side node layer lies halfway between the other two nodes’ layers.

Figure 8a shows the region of the semi-elliptical crack front that is modeled. The finite element mesh of the crack front, in the format of an input file, is then imported into the finite element program environment as an orphan mesh. Further mesh building operations are performed on the orphan mesh in order to complete the model of a semi-elliptical crack. The semi-elliptical crack front is discretized by user inputs controlling the number of divisions along the crack front, as shown in Fig. 8b.

Fig. 8
figure 8

(a) Region of the crack front to be modeled and (b) Discretization of the crack front

It is important to note that the semi-elliptical crack front is a curve. Thus, the normal to the crack front changes in the direction along the crack front. The angular difference between the normal and the \(y\)-axis can be represented as an angular rotation, \(\Theta\) about the \(z\)-axis, shown in Fig. 9. Duplication of the first layer of nodes is a combination of rotation and translation.

Fig. 9
figure 9

Variation in the normal direction along the crack front

The rotation \(\Theta\) can be determined from the gradient of the semi-elliptical curve, \({m}_{e}\) in:

$$m_{e} = - \frac{x}{{c^{2} }} \cdot \frac{{a^{2} }}{y}$$
(5)

where \(x\) and \(y\) are the coordinates of the point on the crack front, and \(a\) and \(c\) are the crack depth and crack mouth length, respectively. The angle of rotation can be found from:

$${\Theta } = \sin^{ - 1} m_{e}$$
(6)

using \({\Theta }\), a simple rotation matrix is employed:

$$R\left( {\Theta } \right) = \left[ {\begin{array}{*{20}c} {\cos {\Theta }} & { - \sin {\Theta }} & 0 \\ {\sin {\Theta }} & {\cos {\Theta }} & 0 \\ 0 & 0 & 1 \\ \end{array} } \right]$$
(7)

The translation that is required is easily obtained via a simple subtraction between the target position and the initial position as indicated in Fig. 9 where the first layer of nodes normal to the crack front at coordinates (\({x}_{i},{y}_{i},{z}_{i}\)) at the first layer is to be duplicated to the second layer, at point (\({x}_{j},{y}_{j},{z}_{j})\)) on the crack front, also shown in Fig. 9. The translation can be expressed as:

$$\left[ {\begin{array}{*{20}c} {\hat{i}} \\ {\hat{j}} \\ {\hat{k}} \\ \end{array} } \right] = \left[ {\begin{array}{*{20}c} {x_{j} } \\ {y_{j} } \\ {z_{j} } \\ \end{array} } \right] - \left[ {\begin{array}{*{20}c} {x_{i} } \\ {y_{i} } \\ {z_{i} } \\ \end{array} } \right]$$
(8)

The coordinates of the new node, at \(\left( {x,y,z} \right)\), are expressed as follows:

$$\left[ {\begin{array}{*{20}c} x \\ y \\ z \\ \end{array} } \right] = \left[ {\begin{array}{*{20}c} {x_{i} } \\ {y_{i} } \\ {z_{i} } \\ \end{array} } \right]R\left( {\Theta } \right) + \left[ {\begin{array}{*{20}c} {\hat{i}} \\ {\hat{j}} \\ {\hat{k}} \\ \end{array} } \right]$$
(9)

The processes of rotation and translation, as depicted in Fig. 10a and b, are repeated on each node in the original layer of the nodes, thus creating another layer of nodes, shown in Fig. 10c. The entire process is repeated for each point on the discretized semi-elliptical crack front.

Fig. 10
figure 10

Visualization of (a) rotation, (b) translation and (c) resulting layer of nodes

Element Development

Element connectivity requires the correct node configuration to connect the selected nodes to form an element. The algorithm generates the nodes in an organized manner, in which the nodes are labeled according to the order of generation. A structured node labeling is useful when it is adopted in the algorithm for defining element connectivity. A structured node numbering helps to create a rigorously mapped finite element mesh. Data extraction is easily achieved from extremely large models by supplying the relevant node labels. Due to the structured nature of the algorithm, a simple system to determine the node label of nodes within the crack tip region 1 is possible. This is achievable by determining the relative position of the node based on the element it is attached to, akin to a coordinate system.

This can be visualized as in Fig. 11, where the semicircular mesh in the crack tip region is graphically expanded, and the collapsed elements about the crack tip are represented as quadrilateral elements. Based on Fig. 11, \(r\) refers to the radial direction moving away from the crack tip and \(\theta\) refers to the clockwise direction about the crack tip. Referring to Fig. 4, the node label for a particular corner node on a line with both corner and mid-side nodes is given as:

$$Node Label = L\left( {n_{layer} } \right) + \left( {3e_{r} + 2} \right)\left( {n_{\theta } } \right) + 2\left( {n_{r} } \right) + 1$$
(10)
Fig. 11
figure 11

Node labeling technique

where \(L\) is the total number of nodes in a single layer and \({e}_{r}\) is the number of elements extending in the radial direction away from the crack tip. \({n}_{layer}\), \({n}_{\theta }\) and \({n}_{r}\) are the chosen values used to determine the node label, specifying the layer and element in the \(\theta\) and \(r\) directions, respectively. Under this approach, \({n}_{layer}=0\) refers to the first layer of nodes generated, \({n}_{r}=0\) refers to the crack tip and \({n}_{\theta }\) corresponds to \(\theta =0.\) Determining the labels of mid-side nodes is a simple matter of subtraction or addition by 1, depending on the mid-side node in question. It must be noted that the possible values for \({n}_{r}\) and \({n}_{\theta }\) must not be greater than the number of elements in the \(r\) and \(\theta\) directions, respectively. In addition, the node label for the nodes on the adjacent line, with only mid-side nodes, is given as:

$$Node Label = L\left( {n_{layer} } \right) + \left( {3e_{r} + 2} \right)\left( {n_{\theta } } \right) + \left( {2e_{r} + 1} \right) + \left( {n_{r} } \right)$$
(11)

For example in Fig. 11, the node number for the node label marked with a circle is 29 using: four elements in the \(\theta\) direction and three elements in the \(r\) direction (\({e}_{r}=3\)), \({n}_{r}=3\), \({n}_{\theta }=2\).

The following sections will discuss the element connectivity approach implemented in the algorithm. The algorithm can be used to create a two-dimensional finite element mesh as well as a three-dimensional finite element mesh. The generation of a two-dimensional and a three-dimensional finite element meshes using the algorithm can be applied to typical standard fracture mechanics specimens, however, the semi-elliptical crack can only be generated using three-dimensional elements.

Two-Dimensional Elements

The nodes created must be connected in the right order to form a suitable elemental configuration. Each second-order quadrilateral element consists of eight nodes, with four mid-side nodes and four corner nodes. For the development of meshes for use in finite element code ABAQUS, the nodes must be connected in a particular order: selection of four nodes as corner nodes, followed by four mid-side nodes.

As shown in Fig. 12, taking element 1 as an example, the algorithm defines the element connectivity in a counterclockwise manner using node label 18, 20, 34, 32, 19, 26, 33, 25 to form element 1. The algorithm determined the element connectivity through a nodal label pattern. For example, the first two corner nodes are related to each other by a difference of 2. The same relationship is shared in the next two corner nodes. By implementing such relationships in the algorithm, the element connectivity definitions can be defined for all the elements via calculation of the node label through a loop function.

Fig. 12
figure 12

Elements connectivity diagram for quadrilateral element

Three-Dimensional Element

The algorithm for the generation of a three-dimensional cracked finite element mesh is based on a single layer of a two-dimensional nodal configuration. From a single layer of nodes, a three-dimensional nodal configuration can be developed through creation of nodal layers along the crack front. These nodes in the layers can be connected into second-order brick element or 20 noded hexahedral element (C3D20) in ABAQUS. Each layer of the connected second-order elements requires three layers of nodes.

Three-Dimensional Element Connectivity

To generate a second-order brick (hexahedral) element, 20 nodes must be connected as shown in Fig. 13. The element connectivity definition for a 20-noded hexahedral element is as follows: four corner nodes on the first layer and four corner nodes on the third layer, continued with four mid-side nodes on the first layer and four mid-side nodes on the third layer and finally four corner nodes on the second layer. The nodes from all three layers must be connected in a consistent clockwise or counterclockwise manner, as previously discussed for the two-dimensional elements. An example of element connectivity definition for the hexahedral element is shown in Fig. 13. The correct order of nodes for such brick element according to the node labels is 18, 20, 34, 32, 118, 120, 134, 132, 19, 26, 33, 25, 119, 126, 133, 125, 68, 70, 84 and 82. This is applicable to both the through crack and the semi-elliptical crack front models.

Fig. 13
figure 13

Elements connectivity diagram for a brick element following ABAQUS, [19]

It is obvious that the nodes labeled in subsequent layer are differed by the total number of nodes in one layer. In the algorithm, this feature is used to generate the node labels for subsequent layers before connecting them into brick elements. In short, to generate a fully three-dimensional finite element mesh, the first layer of nodes produced for the two-dimensional model is duplicated with different \(z\)-coordinates and followed by connecting them into the brick elements.

Results and Discussion

Finite Element Mesh Generation

Crack tip mesh models created from the proposed relationships deduced from Eqs 1 to 11 through a Matlab program represented as a graphical user interface in Appendix B can be imported to a finite element code ABAQUS are shown in Fig. 14a. The Matlab files created based on the approach proposed in this paper are appended in the supplementary files of this paper with the main program Matlab file designated as “generate.m” and a Matlab GUI file as “gui_automate.m” and a linked file as “gui_automate.fig”.

Fig. 14
figure 14

Through edge crack model with varying (a) crack depths and (b) thicknesses and (c) semi-elliptical crack front with varying aspect ratios

The fully three-dimensional edge cracked models with varying crack depths of \(a/W=0.3\) and \(0.5\) and thicknesses of \(B/(W-a)=1\) and \(0.1\) are shown in Fig. 14a and b. Figure 14c shows the quarter model of the semi-elliptical crack front with varying aspect ratios of \(a/c=0.3\) and \(1\). From the full three-dimensional semi-elliptical crack front shown in Fig. 14c, a solid geometry was built around the orphan mesh as in Fig. 15a. This is a point of flexibility in generation of a semi-elliptical crack model as a wide range of structures or specimens can be used for the solid geometry in Fig. 15a. These will be explored in the following sections. The combined solid geometry and the semi-elliptical crack front will result in the fully meshed model as shown in Fig. 15b. The cracked models generated possess identical node numbering sequence around the crack tip and this allowed a unique post-processing code to be developed for the post-processing stress–strain data manipulation stage.

Fig. 15
figure 15

Solid geometry built around the semi-elliptical crack front (a) before mesh and (b) after meshing

Assessments of Cracked Models

A set of analyses was performed to demonstrate the performance of the finite element meshes generated by the algorithm. Firstly, two-parameter fracture mechanics parameter \(K-T\) analysis for the edge cracked model, four tensile loaded center cracked panel (CCP) were created with various crack depths (\(a/w\) = 0.1, 0.2, 0.3, 0.5) with a thickness of (\(B/(W-a)=1\)), as shown in Fig. 16. Highly focused finite element meshes were applied at crack tip region for all crack geometries. There were 24 concentric rings of elements in the crack tip region, with each one consisting of 24 elements spaced equally at an angle interval of 7.5 \(^\circ\). The size of the elements increased gradually as extending from crack tip to the outermost boundary of box region 1. The ratio of the smallest element to radius of semi-annular region was given as 0.02.

Fig. 16
figure 16

CCP specimens generated

The \(K\) and \(T\)-stresses for the edge cracked models were extracted from the mid-plane and compared with suitable plane strain results from [15] and [24], respectively. The material was taken to be an isotropic elastic with a Young’s modulus of 200 GPa and a Poisson’s ratio of 0.3.

From [15], the non-dimensionalized \(K\) for CCP under plane strain conditions is given as:

$$\frac{K}{{\sigma \sqrt {\pi a} }} = \frac{{1 - 0.5\left( \frac{a}{W} \right) + 0.370\left( \frac{a}{W} \right)^{2} - 0.044\left( \frac{a}{W} \right)^{3} }}{{\sqrt {1 - \frac{a}{W}} }}$$
(12)

Meanwhile, the \(T\)-stress normalized with respect to applied stress \(\sigma\) can be determined by the equation in [24] presented in the form as:

$$\frac{T}{\sigma } = - 1.004 + 0.248\left( \frac{a}{W} \right) - 2.39\left( \frac{a}{W} \right)^{2} + 5.532\left( \frac{a}{W} \right)^{3} - 4.069\left( \frac{a}{W} \right)^{4} { }$$
(13)

Four semi-elliptical crack models were created using a combination of two aspect ratios (\(a/c\) = 0.5, 0.24) and two relative crack depths (\(a/W\) = 0.5, 0.24 for \(a/c\) = 0.5, \(a/W\) = 0.4, 0.2 for \(a/c\) = 0.24). The ratio of crack length to plate width was constant between all the semi-elliptical models, \(c/b\) = 0.2. There were 20 concentric rings of elements in the crack tip region, with each one consisted of 12 elements spaced equally at an angle interval of 15\(^\circ\). The models are as indicated in Fig. 17.

Fig. 17
figure 17

Semi-elliptical crack models generated

In contrast to the edge cracked models, the stress intensity factors, \(K\) and \(T\)-stresses were extracted along the crack fronts, where \(\phi\) is the parametric angle representing the position along the crack front, with \(\phi =0\) is the free surface and \(\phi =90\) is the deepest point. These values are also compared with the values provided in [15] and [24]. For the semi-elliptical cracks, the non-dimensionalized \(K\) is given in [15] as:

$$\frac{K}{{\sigma \sqrt {\pi a} }} = \left[ {1 + 0.12\left( {1 - \frac{a}{c}} \right)} \right]\sqrt {\frac{2W}{{\pi a}}\tan \frac{\pi a}{{2W}}}$$
(14)

The \(T\)-stress values normalized with the applied stress \(\sigma\) for semi-elliptical surface cracks are given in [24] as:

$$\frac{T}{\sigma } = X_{0} + X_{1} \left( \frac{a}{c} \right) + X_{2} \left( \frac{a}{c} \right)^{2} + X_{3} \left( \frac{a}{c} \right)^{3} + X_{4} \left( \frac{a}{c} \right)^{4}$$
(15)

where the values for \({X}_{0}\), \({X}_{1}\), \({X}_{2}\), \({X}_{3}\) and \({X}_{4}\) are given in Table 1.

Table 1 Tabulated values of coefficients as given in [24].

Similarly, an isotropic elastic material is defined with a Young’s modulus of 200 GPa and a Poisson’s ratio \(\nu\) = 0.3. The non-dimensionalized \(K\) is presented in Fig. 18, while the \(T\)-stresses, normalized to the applied stresses, \(\sigma\), are presented in Fig. 19.

Fig. 18
figure 18

Normalized \(\mathrm{K}\) for (a) edge crack and (b) semi-elliptical crack models

Fig. 19
figure 19

Normalized \(\mathrm{T}\)-stress for (a) edge crack and (b) semi-elliptical crack models

For the cases considered as shown in Figs. 18 and 19, the finite element results were in good agreement with [15] and [24], respectively, achieving results within a 5% tolerance agreement.

The two-parameter fracture mechanics \(J-{T}_{z}\) is compared with an edge cracked model subjected to bending load (SENB) with similar meshing configurations described above and characterized with an elastic-plastic material response. Figure 20 shows the radial distribution of \({T}_{z}\) at mid-plane of SENB (\(a\)/\(W\) = 0.5) with three thicknesses, \(B\)/(\(W-a\)) = 1, 0.1 and 0.05, respectively. The strain hardening rate, \(n\) = 6, and Poisson’s ratio, \(v\), of 0.3 were defined as material properties of SENB. The radial distribution of \({T}_{z}\) presented here was benchmarked against the fitting equation provided in [25] as:

$$T_{z} = \frac{1}{2}\left[ {1 - \left( {1 - 2v} \right)\left( {\frac{r}{{\overline{r}_{p} }}} \right)^{{\frac{n - 1}{{2.3n + 1}}}} } \right]\left[ {1 - 1.218\left( \frac{r}{B} \right)^{\frac{1}{2}} - 0.395\left( \frac{r}{B} \right) + 0.361\left( \frac{r}{B} \right)^{\frac{3}{2}} } \right]$$
(16)
Fig. 20
figure 20

Radial distribution of \({\mathrm{T}}_{\mathrm{z}}\) extracted from mid-plane of SENB (\(a/W\) = 0.5) with thicknesses, \(B/(W-a)\) = (a) 1, (b) 0.1 and (c) 0.05

where \({\stackrel{-}{r}}_{p}\) refers to average plastic zone size, \(r\) is radial distance from crack tip and \(B\) is the thickness.

According to [25], Eq 16 can provide a good estimation on the radial distribution of \({T}_{z}\) ahead of crack tip at angle, \(\theta =0\) specifically at the mid-plane of elastic-plastic cracks subjected to small-scale yielding condition. Therefore, three SENBs were prepared using the algorithm were loaded until they reached a plastic deformation level of \(a{\sigma }_{0}/J\)=1000 at the mid-plane, corresponding to a small-scale yielding condition. The resulted \({\stackrel{-}{r}}_{p}/B\) for SENB with \(B/(W-a )\) = 1, 0.1 and 0.05 are 0.25, 1.2 and 2.4, respectively. Comparing the predicted \({T}_{z}\) radial distribution to the finite element results, both results coincide very well as shown in Fig. 20. The agreement between the finite element and approximated results is maintained within 5% difference.

Figure 21 shows the \({T}_{z}\) distribution along the radial distance from the crack tip at multiple points along the crack front in both elastic and elastic-plastic responses. The benchmark equations for the elastic case in Fig. 21 were provided by [26]:

$$T_{z} = v\exp ( - B_{1} \left( \frac{r}{a} \right)^{{B_{2} }} )$$
(17)
Fig. 21
figure 21

\({T}_{z}\) distribution for semi-elliptical surface crack models with an elastic response

where \({B}_{1}\) and \({B}_{2}\) are functions of \(\phi\) and \(a/c\) provided in [26].

A comparison between the predicted \({T}_{z}\) values from Eq 16 and the values obtained from the finite element results are shown in Fig. 21. The values presented demonstrated good correlation, where the finite element values are within the \(\pm 0.03\) limits as stipulated by [26]. Both the two-parameter fracture mechanics \(K/J-T\) and \(J-{T}_{z}\) have been validated through finite element mesh generated by the algorithm. The results for different configurations have been shown to be acceptable to the limit reported in the related publications.

Conclusions

Constraint-based fracture mechanics is an approach used to characterize the crack tip stress and strain fields of materials and hence the toughness and defect tolerance of materials influenced by cracks. The important outcome of this paper is that the mesh of crack tip for analysis of stress and strain fields can be automatically created based on the set of equations provided and post-processing of the solutions can be implemented with generalized programming code because the nodal and elemental configuration are easily identified through the equations proposed. Moreover, the equations provided are capable of varying the relevant geometric factors, such as crack shape, depth and length enabling finite element mesh to be created for various crack configurations. From a fracture mechanics standpoint, the algorithm will be able to extend the application of the current constraint-based approaches to more complex problems and opens up possibility of implementation of the algorithm in applications in which assessment of cracks can be automated by artificial intelligence systems.