[ Home ] [ News ] [ Contact ] [ Search ] elasticity-strain-model

 ==> Download Software
 nextnano³ documentation

 Copyright notice
 About us
 Useful Links
 Publications
 * password protected

 

 
Up
 

strain-minimization-model

Under the keyword $simulation-flow-control there is the specifier strain-calculation. If for this strain-minimization is chosen, this keyword has to be present in the input file.

 

!-----------------------------------------------------!
$strain-minimization-model                 optional   !
 substrate-cluster-number      integer     required   !
reference cluster for strain
 boundary-condition-x          character   optional   ! Neumann
or periodic
 boundary-condition-y          character   optional   ! Neumann
or periodic
 boundary-condition-z          character   optional   ! Neumann
or periodic
$end_strain-minimization-model             optional   !
!-----------------------------------------------------!
 

Syntax

substrate-cluster-number = 1
                         = 2
                         =
...

This refers to the reference cluster for strain. It is very important that this substrate cluster is somewhere at the boundary of the simulation area and that it has nothing to do with the specific device area one is interested in. The strain in the substrate is set to zero. Especially, it is very important, that the substrate-cluster has its own cluster-number and only its own region-number associated with it.
   cluster-number = 1    region-numbers = 1       ! CORRECT
The substrate must also have its own material.
   material-number =
1
   material-name   =
GaAs
   cluster-numbers =
1

This would be wrong:
   cluster-number = 1    region-numbers = 1 3     ! WRONG

This would be wrong:
   material-number =
1
   cluster-numbers =
1  2  5                      ! WRONG
   material-name   =
GaAs


Then Dirichlet values (strain=0; no displacement) for this cluster are set. (If the substrate-cluster would be identical to the other clusters containing the same material (i.e.
region-numbers = 1 AND 3), for both of these Dirichlet values would be set leading to a wrong strain calculation.)

 

boundary-condition-x     = periodic
                         = Neumann

 

boundary-condition-y     = periodic
                         = Neumann

 

boundary-condition-z     = periodic
                         = Neumann

Neumann boundary conditions correspond to the case of 'no external forces acting on the sample', i.e. Neumann sets the derivative of sigma (stress tensor) to zero at boundaries. Note that the stress tensor is a different quantity than the strain tensor epsilon. They are related by:

sigmaij = Cijkl epsilonij

where Cijkl is the elastic stiffness tensor.

For calculation of a quantum well in three dimensions, I got much better results (meaning more symmetric ones) when I used periodic boundary conditions.

 

Note: In 2D there exist some problems with periodic boundary conditions sometimes (strain solver BICGSTAB does not converge).
=> simple_strain_example_yx.in
The version from 2003-04-01 converges, the version from 2003-05-12 does not converge.
If I change the grid from
  x-nodes = 2 10 5 5
  y-nodes = 2 10 5 5
to
  x-nodes = 4 20 10 10
  y-nodes = 4 20 10 10
the strain solver converges.
Major changes between these two versions:
- change in grid (Matthias)
- merging of 2D/3D strain routines to common routines (Stefan).
However, the strange thing is, that the dense grid converges with the version from 2003-05-12 but not with the one from 2003-04-01. (So it is exactly vice versa as before).

   
Last modified: 09-Jun-2011