Elastic: Difference between revisions

From Flooxs
Jump to navigation Jump to search
No edit summary
No edit summary
 
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
Line 40: Line 42:
<math>\sum_{e} \int_{\Omega_e} \delta \epsilon^T D (\epsilon-\epsilon_0) d\Omega =0 </math>
<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>\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}} \mathbf{u_b} + \mathbf{f_a} =0 </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>