Elastic: Difference between revisions
No edit summary |
No edit summary |
||
(8 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
FLOOXS can solve for stress | FLOOXS can solve for nodal displacements due to stress caused by internal lattice mismatch, coefficient of thermal expansion mismatch, and the inverse piezoelectric effect. An example of the alagator/tcl commands that designate solving for elastic displacement are given below. | ||
pdbSetString metal displacement Equation "elastic(displacement)" | pdbSetString metal displacement Equation "elastic(displacement)" | ||
Line 12: | Line 12: | ||
The code for these terms are in the file elastic.cc. | The code for these terms are in the file elastic.cc. | ||
:<math> \nabla\sigma +F = 0 </math>, is the equilibrium equation for elastic displacement | :<math> \nabla\sigma +F = 0 </math> , is the equilibrium equation for elastic displacement | ||
where <math>\sigma</math> is the strain and is related to the stress by the constitutive relation | where <math>\sigma</math> is the strain and is related to the stress by the constitutive relation | ||
Line 19: | Line 19: | ||
The <math>\epsilon_0</math> term is the stress caused by the inverse piezoelectric effect, lattice mismatch, or thermal expansion mismatch. | The <math>\epsilon_0</math> term is the stress caused by the inverse piezoelectric effect, lattice mismatch, or thermal expansion mismatch. | ||
The D matrix... | |||
The form of the equilibrium equation shown above is the differential form. Conversely, the weak or integral form of the equation is needed for the finite element method. It is given as | The form of the equilibrium equation shown above is the differential form. Conversely, the weak or integral form of the equation is needed for the finite element method. It is given as | ||
:<math> \int_{\Omega} \delta \epsilon^T \sigma d \Omega = \int_{\Omega} \delta \epsilon^T D (\epsilon - \epsilon_0) d \Omega </math> | :<math> \int_{\Omega} \delta \epsilon^T \sigma d \Omega = \int_{\Omega} \delta \epsilon^T D (\epsilon - \epsilon_0) d \Omega =0 </math> | ||
Where <math>\Omega</math> is the domain. In this equation, the external force (body force) and traction forces at the boundary are neglected. | Where <math>\Omega</math> is the domain. In this equation, the external force (body force) and traction forces at the boundary are neglected. | ||
:<math> | :<math> \epsilon = \sum_a \left [ \begin{array}{ccc} \frac{\delta N_a}{\delta x} & 0 & 0 \\ | ||
0 & \frac{\delta N_a}{\delta y} & 0 \\ | 0 & \frac{\delta N_a}{\delta y} & 0 \\ | ||
0 & 0 & \frac{\delta N_a}{\delta z} \\ | 0 & 0 & \frac{\delta N_a}{\delta z} \\ | ||
Line 32: | Line 34: | ||
0 & \frac{\delta N_a}{\delta z} & \frac{\delta N_a}{\delta y} \\ | 0 & \frac{\delta N_a}{\delta z} & \frac{\delta N_a}{\delta y} \\ | ||
\frac{\delta N_a}{\delta z} & 0 & \frac{\delta N_a}{\delta x} \\\end{array} \right ] | \frac{\delta N_a}{\delta z} & 0 & \frac{\delta N_a}{\delta x} \\\end{array} \right ] | ||
\left [\begin{array}{c} | \left [\begin{array}{c} u_a \\ v_a \\ w_a \\\end{array} \right] | ||
= \sum \mathbf{B} \mathbf{ | = \sum \mathbf{B_a} \mathbf{u_a} </math> | ||
<math>\mathbf{B_a}</math> is the B matrix which is the differential of the shape functions Na. <math>\mathbf{u_a}</math> is the displacement vector. The subscripts a denotes nodal values. | |||
Approximation of the weak form by | |||
<math>\sum_{e} \int_{\Omega_e} \delta \epsilon^T D (\epsilon-\epsilon_0) d\Omega =0 </math> | |||
<math>\sum_e \delta \mathbf{u_a^T} \int_{\Omega^e} \mathbf{B^T_a} D(\mathbf{B^T_b} \mathbf{u_b} - \epsilon_0) d\Omega =0 </math> | |||
<math>\mathbf{K_{ab}} \mathbf{u_b} + \mathbf{f_a} =0 </math> | |||
<math>\mathbf{K_{ab}} = \sum_e \int_{\Omega^e}\mathbf{B^T}D \mathbf{B} d\Omega </math> | |||
<math>\mathbf{f_a}= \sum_e \int_{\Omega^e} \mathbf{B_a^T} D \epsilon_0 d\Omega</math> | |||
Using quadrature the integral can be estimated by | |||
<math>\mathbf{K_{ab}} \approx \sum_e \mathbf{B^T}D \mathbf{B} J W </math> | |||
<math>\mathbf{ | <math>\mathbf{f_a} \approx \sum_e \mathbf{B_a^T} D \epsilon_0 J W</math> |
Latest revision as of 18:25, 12 August 2011
FLOOXS can solve for nodal displacements due to stress caused by internal lattice mismatch, coefficient of thermal expansion mismatch, and the inverse piezoelectric effect. An example of the alagator/tcl commands that designate solving for elastic displacement are given below.
pdbSetString metal displacement Equation "elastic(displacement)" pdbSetString AlGaN displacement Equation "elastic(displacement)+IPZ(DevPsi)" pdbSetString AlGaN displacement Equation "elastic(displacement)+BodyStrain(0.002)" pdbSetString GaN displacement Equation "elastic(displacement)+BodyStrain(0.02e-6*(Temp-300.0))+IPZ(DevPsi)"
The command "elastic()" takes the solution variable displacement, only, as its argument and must be present in all equation commands. The additional commands "IPZ()" and "BodyStrain()" add initial stress values to the equilibrium equation and consequently, the displacement due to inverse piezoelectric-induced stress or lattice or thermal expansion mismatch-induced stress is solved for. A detailed description of employing stress/strain physics into your model is described elsewhere. Here, we focus on how the equilibrium equation is implemented using the finite element method in FLOOXS.
As designated in the class diagram on the previous page. BodyStrain and IPZTerm are new classes derived from the ElasticTerm class. The code for these terms are in the file elastic.cc.
- <math> \nabla\sigma +F = 0 </math> , is the equilibrium equation for elastic displacement
where <math>\sigma</math> is the strain and is related to the stress by the constitutive relation
- <math> \sigma = D (\epsilon-\epsilon_0) </math> and F is the external force or body force.
The <math>\epsilon_0</math> term is the stress caused by the inverse piezoelectric effect, lattice mismatch, or thermal expansion mismatch.
The D matrix...
The form of the equilibrium equation shown above is the differential form. Conversely, the weak or integral form of the equation is needed for the finite element method. It is given as
- <math> \int_{\Omega} \delta \epsilon^T \sigma d \Omega = \int_{\Omega} \delta \epsilon^T D (\epsilon - \epsilon_0) d \Omega =0 </math>
Where <math>\Omega</math> is the domain. In this equation, the external force (body force) and traction forces at the boundary are neglected.
- <math> \epsilon = \sum_a \left [ \begin{array}{ccc} \frac{\delta N_a}{\delta x} & 0 & 0 \\
0 & \frac{\delta N_a}{\delta y} & 0 \\ 0 & 0 & \frac{\delta N_a}{\delta z} \\ \frac{\delta N_a}{\delta y} & \frac{\delta N_a}{\delta x} & 0 \\ 0 & \frac{\delta N_a}{\delta z} & \frac{\delta N_a}{\delta y} \\ \frac{\delta N_a}{\delta z} & 0 & \frac{\delta N_a}{\delta x} \\\end{array} \right ]
\left [\begin{array}{c} u_a \\ v_a \\ w_a \\\end{array} \right]
= \sum \mathbf{B_a} \mathbf{u_a} </math>
<math>\mathbf{B_a}</math> is the B matrix which is the differential of the shape functions Na. <math>\mathbf{u_a}</math> is the displacement vector. The subscripts a denotes nodal values.
Approximation of the weak form by <math>\sum_{e} \int_{\Omega_e} \delta \epsilon^T D (\epsilon-\epsilon_0) d\Omega =0 </math>
<math>\sum_e \delta \mathbf{u_a^T} \int_{\Omega^e} \mathbf{B^T_a} D(\mathbf{B^T_b} \mathbf{u_b} - \epsilon_0) d\Omega =0 </math>
<math>\mathbf{K_{ab}} \mathbf{u_b} + \mathbf{f_a} =0 </math>
<math>\mathbf{K_{ab}} = \sum_e \int_{\Omega^e}\mathbf{B^T}D \mathbf{B} d\Omega </math>
<math>\mathbf{f_a}= \sum_e \int_{\Omega^e} \mathbf{B_a^T} D \epsilon_0 d\Omega</math>
Using quadrature the integral can be estimated by
<math>\mathbf{K_{ab}} \approx \sum_e \mathbf{B^T}D \mathbf{B} J W </math>
<math>\mathbf{f_a} \approx \sum_e \mathbf{B_a^T} D \epsilon_0 J W</math>