Introduction to strain calculation¶
Here we introduce the theoretical background of the strain and stress calculation in nextnano++.
At first we will describe the definition of a strain tensor
The detailed explanation for the syntax in strain{ }
is here: strain{ }.
Table of contents
Strain tensor ¶
The calculation of strain effects in nextnano++ is based on linear continuum elasticity theory, in which a crystal can be described by a field of material points with coordinates
A strain tensor
Strain is dimensionless.
The diagonal elements of this strain tensor
The off-diagonal elements
By definition strain tensor
and
Stress tensor ¶
A stress tensor component
In linear approximation, this stress tensor is related to the strain tensor
where
For many crystal structures with high symmetry, many of these coefficients are 0 and some are related to others. The elasticity tensor of zincblende and wurtzite crystals are given by
with
These constants are defined in database_nnp.in. You can also overwrite these values in your input file.
For zinc-blend materials, for example:
database{ binary_zb{ name = GaAs valence = III_V elastic_consts{ c11 = 122.1 # [GPa] elastic constants c12 = 56.6 # 1 * 1011 dyn/cm2 = 10 GPa -> 12.21 * 1011 dyn/cm2 = 122.1 GPa c44 = 60.0 # The elastic constants are needed for the calculation of the strain in heterostructures. } } }
For wurtzite materials, for example:
database{ binary_zb{ name = GaN valence = III_V elastic_consts{ c11 = 390 # [GPa] elastic constants c12 = 145 # 1 * 1011 dyn/cm2 = 10 GPa -> 39.0 * 1011 dyn/cm2 = 390 GPa c13 = 106 # c33 = 398 # c44 = 105 # The elastic constants are needed for the calculation of the strain in heterostructures. } } }
Strain and stress calculation¶
Next we will describe how the strain tensor
In general¶
The principle of conservation of linear momentum results in the following equations of stress tensor components
for
where
Note
The principle of conservation of angular momentum, on the other hand, results in the symmetricity of stress tensor:
The field of displacement vector which satisfies the above balance equations and boundary conditions
also minimizes the total potential energy
In the linear approximation regime, the elastic energy stored in the whole body is:
When the body force
In nextnano++¶
There are two kinds of calculation of strain, pseudomorphic_strain{ }
and minimized_strain{ }
, in nextnano++.
In both of implementations pseudomorphic layer is assumed as the boundary condition between the substrate
and the layer grown on this substrate.
The substrate is assumed to be so thick that the in-plane lattice constants of the layer is matched to that of substrate.
Also, the body force
In this assumption, the analytic expressions for strain tensor that satisfies the aforementioned stress balance equations
(i.e. that minimizes the elastic energy) can be found for 1D structures.
This analytic solution is implemented on pseudomorphic_strain{ }
.
This feature also works in 2D or 3D but the user must be sure that the model makes sense from a physical point of view
(i.e. the 2D/3D structure should consist of different layers along the growth direction whereas the layers
must be homogenous along the two perpendicular directions).
On the other hand, minimized_strain{ }
calculates the strain tensor by minimizing the elastic energy mentioned before.
This can also be used for 1D simulations.
In this case, the results will be equivalent to the analytical model pseudomorphic_strain{ }
.
The detailed explanation for the syntax in strain{ }
is here: strain{ }.
Please refer to [AndlauerPhD2009] for more details about these topics.
Last update: nn/nn/nnnn