Strain
In MODULE
strain_info information is provided how strain is treated in the calculations.
strain_calcL=.TRUE. --> Strain is calculated within the
framework of elasticity (strain-minimization).
strain_calcL=.FALSE. --> Homogeneous, pseudomorphic strain is assumed. (In
1D this is the only option, in 2D and 3D this is only appropriate for layer
structures.)
For strain_calcL=.TRUE. additional information is necessary:
( i_strain,j_strain,k_strain) specify the reference point on the
physical grid, boxnum_strain the octant (1..8 in 3D, 1..4 in 2D).
The lattice constants of this point define the reference grid for the strain
calculation (see calculation of strain for more
details).
Furthermore, boundary conditions have to be specified:
bnd_strain_cond_x/y/zC = 'per' (periodic) or
= 'neu' (Neumann)
The buffer must be defined as a separate material with number
buffer_mat_number.
In this region strain=0 is set (Dirichlet).
Note: The reference point defined above must lie within this region.
The strain calculation is done by calling subroutine
calculate_strain.
Here define_strain_problem (MODULE
strain_matrix)
is called. The solution is written to uM in MODULE
strain_data.
The displacements uM are stored in the
calculation system.
The details of the calculation of the strain are described in
calculation of strain.
In MODULE strain_matrix there are several
routines to get the calculated strain on material grid points and on physical
grid points in the crystal system as well as in the
calculation system. These
functions can only be used for strain_calcL=.TRUE.
The strain tensor on material grid for piezoelectricity and van de Walle
model as well as for k.p,... is obtained via the function
get_strain_tensor_cxyz.
This subroutine provides the strain tensor for a point on the material grid as
specified in the input file.
There is also the subroutine
get_strain_voigt_notation_cxyz
that provides the strain tensor in Voigt notation (needed for k.p /
electronic structure) in the crystal system.
|