DDD-XRD Matlab implementation and validation: Difference between revisions

From Micro and Nano Mechanics Group
Jump to navigation Jump to search
No edit summary
No edit summary
Line 27: Line 27:
|}
|}


where <math>R = \sqrt{\vec{x'}-\vec{x}}</math> is the norm of the distance vector linking the field point <math>\vec{x}</math> and the coordinate <math>\vec{x'}</math> spanning the dislocation line, <math>\epsilon_{ijk}</math> is the permutation tensor, and <math>\nu</math> is Poisson's ratio of the medium. <math>R_{,ijk} = \partial^3 R / \partial x_i\partial x_j\partial x_k</math> denotes the third derivative of the radius vector wrt. the field coordinate.
where <math>R = \|\vec{x'}-\vec{x}\|</math> is the norm of the distance vector linking the field point <math>\vec{x}</math> and the coordinate <math>\vec{x'}</math> spanning the dislocation line, <math>\epsilon_{ijk}</math> is the permutation tensor, and <math>\nu</math> is Poisson's ratio of the medium. <math>R_{,ijk} = \partial^3 R / \partial x_i\partial x_j\partial x_k</math> denotes the third derivative of the radius vector wrt. the field coordinate.

Following the isotropic Burgers distribution proposed in Cai et al., JMPS, 2006, the singularity in the above expression can be eliminated by employing the modified radius vector <math>R_a</math> defined as:

{|border="0" align="center"
|<math>
R_a = \sqrt{R^2 + a^2} = \sqrt{R_i R_i + a^2} = \sqrt{(x'_i - x_i)(x'_i - x_i) + a^2}
</math>
|}

where <math>a</math> denotes the dislocation core radius. With this, the displacement gradient produced by a straight dislocation segment with end points <math>\vec{x}_a</math> and <math>\vec{x}_b</math> can be analytically expressed as:

{|border="0" align="center"
|<math>
\begin{align}
u_{m,l}(\vec{x}) = &-\frac{1}{8\pi} b_m \epsilon_{jlk} A_{jk}(\vec{x}) -\frac{1}{8\pi} b_i \epsilon_{mik} A_{lk}(\vec{x}) \\
&-\frac{1}{8\pi(1-\nu)} b_i \epsilon_{ijk} B_{jklm}(\vec{x})
\end{align}
</math>
|}

where line integrals <math>A_{jk}(\vec{x})</math> and <math>B_{jklm}(\vec{x})</math> are given by:

{|border="0" align="center"
|<math>
A_{jk}(\vec{x}) = t_k \left[ 3a^2 d_j J_{05} + 2d_j J_{03} + 3a^2 t_j J_{15} + 2t_j J_{13} \right]
</math>
|}
{|border="0" align="center"
|<math>
\begin{align}
B_{jklm}(\vec{x}) = &t_k \left[ (\delta_{mj}d_l + \delta_{jl}d_m + \delta_{lm}d_j)J_{03} + (\delta_{mj}t_l + \delta_{jl}t_m + \delta_{lm}t_j)J_{13} - 3(d_m d_j d_l)J_{05} \right. \\
&\left. -3(d_m d_j t_l + d_m t_j d_l + t_m d_j d_l)J_{15} - 3(d_m t_j t_l + t_m d_j t_l + t_m t_j d_l)J_{25} -3(t_m t_j t_l)J_{35} \right]
\end{align}
</math>
|}

where <math>\vec{t}</math> denotes the unit dislocation line tangent, and <math>\vec{d} = \vec{x}_0-\vec{x}</math> is the vector linking field point <math>\vec{x}</math> to its orthogonal projection <math>\vec{x}_0</math> on the dislocation line.

When adopting the following segment parametric representation

{|border="0" align="center"
|<math>
\vec{x'} = \vec{x}_0 + s\vec{t}, \; s \in (s_1,s_2)
</math>
|}

an analytical expression for the line integrals <math>J_{ij}</math> is obtained as follows:

{|border="0" align="center"
|<math>
\begin{align}
&J_{03} = \int_{s_1}^{s_2} \frac{1}{R_a^3} ds = \left. \frac{s}{( \vec{d} \cdot \vec{d} + a^2 ) R_a } \right|_{s_1}^{s_2} \\
&J_{13} = \int_{s_1}^{s_2} \frac{s}{R_a^3} ds = \left. -\frac{1}{R_a} \right|_{s_1}^{s_2} \\
&J_{05} = \int_{s_1}^{s_2} \frac{1}{R_a^5} ds = \left. \frac{2s^3}{3( \vec{d} \cdot \vec{d} + a^2 )^2 R_a^3 } \right|_{s_1}^{s_2} + \left. \frac{s}{( \vec{d} \cdot \vec{d} + a^2 ) R_a^3 } \right|_{s_1}^{s_2} \\
&J_{15} = \int_{s_1}^{s_2} \frac{s}{R_a^5} ds = \left. -\frac{1}{3 R_a^3} \right|_{s_1}^{s_2} \\
&J_{25} = \int_{s_1}^{s_2} \frac{s^2}{R_a^5} ds = \left. \frac{s^3}{3( \vec{d} \cdot \vec{d} + a^2 ) R_a^3 } \right|_{s_1}^{s_2} \\
&J_{35} = \int_{s_1}^{s_2} \frac{s^3}{R_a^5} ds = \left. -\frac{2(\vec{d} \cdot \vec{d} + a^2)}{3 R_a^3} \right|_{s_1}^{s_2} -\left. \frac{s^2}{R_a^3 } \right|_{s_1}^{s_2}
\end{align}
</math>
|}





Revision as of 01:29, 20 January 2018

DDD-XRD approach

DDD-XRD: Matlab implementation and validation

Nicolas Bertin and Wei Cai

January 2018


This page provides Matlab functions to compute the displacement gradient associated with discrete dislocation segments based on the non-singular formulation presented in Bertin and Cai, CMS, 2018.


Analytical non-singular displacement gradient formulation

It can be shown that the deformation gradient produced by a dislocation loop with Burgers vector Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle \vec{b}} can be written as (see Bertin and Cai, CMS, 2018):

Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle \begin{align} u_{m,l}(\vec{x}) = &-\frac{1}{8\pi} \oint_C b_m \epsilon_{jlk} R_{,ppj} dx'_k -\frac{1}{8\pi} \oint_C b_i \epsilon_{mik} R_{,ppl} \, dx'_k \\ &-\frac{1}{8\pi(1-\nu)} \oint_C b_i \epsilon_{ijk} R_{,mjl} \, dx'_k \end{align} }

where Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle R = \|\vec{x'}-\vec{x}\|} is the norm of the distance vector linking the field point Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle \vec{x}} and the coordinate Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle \vec{x'}} spanning the dislocation line, Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle \epsilon_{ijk}} is the permutation tensor, and Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle \nu} is Poisson's ratio of the medium. Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle R_{,ijk} = \partial^3 R / \partial x_i\partial x_j\partial x_k} denotes the third derivative of the radius vector wrt. the field coordinate.

Following the isotropic Burgers distribution proposed in Cai et al., JMPS, 2006, the singularity in the above expression can be eliminated by employing the modified radius vector Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle R_a} defined as:

Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle R_a = \sqrt{R^2 + a^2} = \sqrt{R_i R_i + a^2} = \sqrt{(x'_i - x_i)(x'_i - x_i) + a^2} }

where Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle a} denotes the dislocation core radius. With this, the displacement gradient produced by a straight dislocation segment with end points Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle \vec{x}_a} and Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle \vec{x}_b} can be analytically expressed as:

Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle \begin{align} u_{m,l}(\vec{x}) = &-\frac{1}{8\pi} b_m \epsilon_{jlk} A_{jk}(\vec{x}) -\frac{1}{8\pi} b_i \epsilon_{mik} A_{lk}(\vec{x}) \\ &-\frac{1}{8\pi(1-\nu)} b_i \epsilon_{ijk} B_{jklm}(\vec{x}) \end{align} }

where line integrals Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle A_{jk}(\vec{x})} and Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle B_{jklm}(\vec{x})} are given by:

Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle A_{jk}(\vec{x}) = t_k \left[ 3a^2 d_j J_{05} + 2d_j J_{03} + 3a^2 t_j J_{15} + 2t_j J_{13} \right] }
Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle \begin{align} B_{jklm}(\vec{x}) = &t_k \left[ (\delta_{mj}d_l + \delta_{jl}d_m + \delta_{lm}d_j)J_{03} + (\delta_{mj}t_l + \delta_{jl}t_m + \delta_{lm}t_j)J_{13} - 3(d_m d_j d_l)J_{05} \right. \\ &\left. -3(d_m d_j t_l + d_m t_j d_l + t_m d_j d_l)J_{15} - 3(d_m t_j t_l + t_m d_j t_l + t_m t_j d_l)J_{25} -3(t_m t_j t_l)J_{35} \right] \end{align} }

where Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle \vec{t}} denotes the unit dislocation line tangent, and Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle \vec{d} = \vec{x}_0-\vec{x}} is the vector linking field point Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle \vec{x}} to its orthogonal projection Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle \vec{x}_0} on the dislocation line.

When adopting the following segment parametric representation

Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle \vec{x'} = \vec{x}_0 + s\vec{t}, \; s \in (s_1,s_2) }

an analytical expression for the line integrals Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle J_{ij}} is obtained as follows:

Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle \begin{align} &J_{03} = \int_{s_1}^{s_2} \frac{1}{R_a^3} ds = \left. \frac{s}{( \vec{d} \cdot \vec{d} + a^2 ) R_a } \right|_{s_1}^{s_2} \\ &J_{13} = \int_{s_1}^{s_2} \frac{s}{R_a^3} ds = \left. -\frac{1}{R_a} \right|_{s_1}^{s_2} \\ &J_{05} = \int_{s_1}^{s_2} \frac{1}{R_a^5} ds = \left. \frac{2s^3}{3( \vec{d} \cdot \vec{d} + a^2 )^2 R_a^3 } \right|_{s_1}^{s_2} + \left. \frac{s}{( \vec{d} \cdot \vec{d} + a^2 ) R_a^3 } \right|_{s_1}^{s_2} \\ &J_{15} = \int_{s_1}^{s_2} \frac{s}{R_a^5} ds = \left. -\frac{1}{3 R_a^3} \right|_{s_1}^{s_2} \\ &J_{25} = \int_{s_1}^{s_2} \frac{s^2}{R_a^5} ds = \left. \frac{s^3}{3( \vec{d} \cdot \vec{d} + a^2 ) R_a^3 } \right|_{s_1}^{s_2} \\ &J_{35} = \int_{s_1}^{s_2} \frac{s^3}{R_a^5} ds = \left. -\frac{2(\vec{d} \cdot \vec{d} + a^2)}{3 R_a^3} \right|_{s_1}^{s_2} -\left. \frac{s^2}{R_a^3 } \right|_{s_1}^{s_2} \end{align} }


Matlab implementation

Code

- based on DDLab format - functions descreption

Validation: tringular loop test case

- what the test case does