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). |