2.5.11. strain{ }

Calling sequence

strain{ }

Properties
  • using: \(\mathrm{\textcolor{ForestGreen}{optional}}\)

  • items: \(\mathrm{maximum\;1}\)

Functionality

Note

In order to calculate the strain, one has to provide a substrate with respect to which the layers are strained. This can be done with the keyword global{ } ==> substrate{…}.

Nested keywords


debuglevel

Calling sequence

strain{ debuglevel }

Properties
  • using: \(\mathrm{\textcolor{ForestGreen}{optional}}\)

  • type: \(\mathrm{integer}\)

  • values: \(\{-1,0,1,2,\ldots\}\)

  • unit: \(\mathrm{-}\)

  • default: \(2\)

Functionality

The higher this integer number, the more information on the numerical solver is printed to the screen output


no_strain{ }

Calling sequence

strain{ no_strain{ } }

Properties
  • using: \(\mathrm{\textcolor{ForestGreen}{optional}}\)

  • items: \(\mathrm{maximum\;1}\)

Functionality

Strain is not taken into account.


pseudomorphic_strain{ }

Calling sequence

strain{ pseudomorphic_strain{ } }

Properties
  • using: \(\mathrm{\textcolor{ForestGreen}{optional}}\)

  • items: \(\mathrm{maximum\;1}\)

Functionality

Homogeneous strain for 1D layer structures (analytical calculation). 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.


minimized_strain{ }

Calling sequence

strain{ minimized_strain{ } }

Properties
  • using: \(\mathrm{\textcolor{ForestGreen}{optional}}\)

  • items: \(\mathrm{maximum\;1}\)

Functionality

Minimization of the elastic energy for 2D and 3D geometries (numerical calculation). It can also be used for 1D simulations. In this case, the results will be equivalent to the analytical model pseudomorphic_strain{ }.


growth_direction

Calling sequence

strain{ growth_direction }

Properties
  • using: \(\mathrm{\textcolor{ForestGreen}{optional}}\)

  • type: \(\mathrm{vector\;of\;3\;integers}\)

  • values: \(\mathrm{no\;constraints}\)

  • default: \([1.0,\;0.0,\;0.0]\)

  • unit: \(\mathrm{-}\)

Functionality

(for pseudomorphic strain model)

  • Vector in crystal coordinate system

  • Can be specified in a 2D or 3D simulation but not in a 1D simulation (x axis is taken by default in 1D)

  • If not set, x axis of simulation coordinate system is taken by default.

example:

growth_direction = [1, 0, 0]


residual_strain

Calling sequence

strain{ residual_strain }

Properties
  • using: \(\mathrm{\textcolor{ForestGreen}{optional}}\)

  • type: \(\mathrm{real\;number}\)

  • values: \([-1.0, 1.0]\)

  • unit: \(\mathrm{-}\)

Functionality

Residuals strain in the substrate \(\eta\) scales lattice parameter of the substrate (only for the purpose of strain computation) according to the formula \(a_{\eta,s}=(1+\eta)\cdot a_{0,s}\), where \(a_{0,s}\) is the (unstrained) lattice parameter of the substrate and \(a_{\eta,s}\) the modified (strained) lattice parameter of the substrate. The latter one represents the substrate during evaluation of the strain tensor.


linear_solver{ }

Calling sequence

strain{ linear_solver{ } }

Properties
  • using: \(\mathrm{\textcolor{ForestGreen}{optional}}\)

  • items: \(\mathrm{maximum\;1}\)

Functionality


linear_solver{ iterations }

Calling sequence

strain{ linear_solver{ iterations } }

Properties
  • using: \(\mathrm{\textcolor{ForestGreen}{optional}}\)

  • type: \(\mathrm{integer}\)

  • values: \(\{1,2,3,4,\ldots\}\)

  • default: \(10000\)

  • unit: \(\mathrm{-}\)

Functionality

Number of iterations for linear equation solver in strain algorithm


linear_solver{ abs_accuracy }

Calling sequence

strain{ linear_solver{ abs_accuracy } }

Properties
  • using: \(\mathrm{\textcolor{ForestGreen}{optional}}\)

  • type: \(\mathrm{real\;number}\)

  • values: \([0.0, \ldots)\)

  • default: \(10^{-8}\)

  • unit: \(\mathrm{GP\,}\) (1D) / \(\mathrm{GP\,nm\,}\) (2D) / \(\mathrm{GP\,nm^{2}\,}\) (3D)

Functionality


linear_solver{ rel_accuracy }

Calling sequence

strain{ linear_solver{ rel_accuracy } }

Properties
  • using: \(\mathrm{\textcolor{ForestGreen}{optional}}\)

  • type: \(\mathrm{real\;number}\)

  • values: \([0.0, 10^{-2}]\)

  • default: \(10^{-12}\)

  • unit: \(\mathrm{-}\)

Functionality


linear_solver{ use_cscg }

Calling sequence

strain{ linear_solver{ use_cscg } }

Properties
  • using: \(\mathrm{\textcolor{ForestGreen}{optional}}\)

  • type: \(\mathrm{choice}\)

  • choices: \(\mathrm{yes\;/\;no}\)

  • default: \(\mathrm{no}\)

Functionality

Composite step conjugate gradient solver (try this one if standard solver fails to converge)


linear_solver{ force_diagonal_preconditioner }

Calling sequence

strain{ linear_solver{ force_diagonal_preconditioner } }

Properties
  • using: \(\mathrm{\textcolor{ForestGreen}{optional}}\)

  • type: \(\mathrm{choice}\)

  • choices: \(\mathrm{yes\;/\;no}\)

  • default: \(\mathrm{no}\)

Functionality


import_strain{ }

Calling sequence

strain{ import_strain{ } }

Properties
  • using: \(\mathrm{\textcolor{ForestGreen}{optional}}\)

  • items: \(\mathrm{maximum\;1}\)

Functionality


import_strain{ import_from }

Calling sequence

strain{ import_strain{ import_from } }

Properties
  • using: \(\mathrm{\textcolor{WildStrawberry}{required}}\)

  • type: \(\mathrm{character\;string}\)

Functionality

Reference to imported data in import{ }.

The data being imported must have exactly 6 components. The expected order of strain tensor components is: \(\varepsilon_{xx}\ \varepsilon_{yy}\ \varepsilon_{zz}\ \varepsilon_{xy}\ \varepsilon_{xz}\ \varepsilon_{yz}\)


import_strain{ coordinate_system }

Calling sequence

strain{ import_strain{ coordinate_system } }

Properties
  • using: \(\mathrm{\textcolor{ForestGreen}{optional}}\)

  • type: \(\mathrm{choice}\)

  • choices: \(\mathrm{crystal\;/\;simulation}\)

  • default: \(\mathrm{simulation}\)

Functionality

The imported strain tensor is with respect to the simulation or crystal coordinate system (optional parameter).


piezo_density

Calling sequence

strain{ piezo_density }

Properties
  • using: \(\mathrm{\textcolor{ForestGreen}{optional}}\)

  • type: \(\mathrm{choice}\)

  • choices: \(\mathrm{yes\;/\;no}\)

  • default: \(\mathrm{yes}\)

Functionality

Calculate piezoelectric charge density and take it into account while solving the Poisson equation.

If no strain is solved, this flag is ignored.


second_order_piezo

Calling sequence

strain{ second_order_piezo }

Properties
  • using: \(\mathrm{\textcolor{ForestGreen}{optional}}\)

  • type: \(\mathrm{choice}\)

  • choices: \(\mathrm{yes\;/\;no}\)

  • default: \(\mathrm{no}\)

Functionality

Include 2nd order piezoelectric coefficients in the calculation

Note

Not fully implemented for wurtzite, only “standard growth directions” supported for wurtzite as the most general formula was not known to us at the time of implementation.


pyro_density

Calling sequence

strain{ pyro_density }

Properties
  • using: \(\mathrm{\textcolor{ForestGreen}{optional}}\)

  • type: \(\mathrm{choice}\)

  • choices: \(\mathrm{yes\;/\;no}\)

  • default: \(\mathrm{yes}\)

Functionality

Calculate pyroelectric charge density and take it into account while solving the Poisson equation.

If material system is not wurtzite, this flag is ignored. The pyroelectric charge density due to spontaneous polarization applies to wurtzite only. In order to obtain pyroelectric charges, it is not necessary to calculate strain. Pyroelectric charges are only present in wurtzite materials but not in zincblende .


output_hydrostatic_strain{ }

Calling sequence

strain{ output_hydrostatic_strain{ } }

Properties
  • using: \(\mathrm{\textcolor{ForestGreen}{optional}}\)

  • items: \(\mathrm{maximum\;1}\)

Functionality

prints out the hydrostatic strain, i.e. the trace of the strain tensor \(\mathrm{Tr}[\varepsilon_{ij}] = \varepsilon_{xx} + \varepsilon_{yy} + \varepsilon_{zz}\) [dimensionless]


output_hydrostatic_strain{ boxes }

Calling sequence

strain{ output_hydrostatic_strain{ boxes } }

Properties
  • using: \(\mathrm{\textcolor{ForestGreen}{optional}}\)

  • type: \(\mathrm{choice}\)

  • choices: \(\mathrm{yes\;/\;no}\)

  • default: \(\mathrm{no}\)

Functionality

Note

The hydrostatic strain output is in percent (This is different compared to nextnano³.)


output_strain_tensor{ }

Calling sequence

strain{ output_strain_tensor{ } }

Properties
  • using: \(\mathrm{\textcolor{ForestGreen}{optional}}\)

  • items: \(\mathrm{maximum\;1}\)

Functionality

output (symmetric) strain tensor : \(\varepsilon_{ij} = (u_{ij} + u_{ji})/2\) [dimensionless]


output_strain_tensor{ crystal_system }

Calling sequence

strain{ output_strain_tensor{ crystal_system } }

Properties
  • using: \(\mathrm{\textcolor{ForestGreen}{optional}}\)

  • type: \(\mathrm{choice}\)

  • choices: \(\mathrm{yes\;/\;no}\)

  • default: \(\mathrm{no}\)

Functionality

output strain tensor in crystal coordinate system


output_strain_tensor{ simulation_system }

Calling sequence

strain{ output_strain_tensor{ simulation_system } }

Properties
  • using: \(\mathrm{\textcolor{ForestGreen}{optional}}\)

  • type: \(\mathrm{choice}\)

  • choices: \(\mathrm{yes\;/\;no}\)

  • default: \(\mathrm{yes}\)

Functionality

output strain tensor in simulation coordinate system (useful if simulation coordinate system differs from crystal coordinate system)

Note

The ordering of the strain tensor components is: \(\varepsilon_{xx},\ \varepsilon_{yy},\ \varepsilon_{zz},\ \varepsilon_{xy},\ \varepsilon_{xz},\ \varepsilon_{yz}\)


output_strain_tensor{ boxes }

Calling sequence

strain{ output_strain_tensor{ boxes } }

Properties
  • using: \(\mathrm{\textcolor{ForestGreen}{optional}}\)

  • type: \(\mathrm{choice}\)

  • choices: \(\mathrm{yes\;/\;no}\)

  • default: \(\mathrm{no}\)

Functionality

For each grid point, in 1D two points are printed out to mimic abrupt discontinuities at interfaces (in 2D four points, in 3D eight points)


output_distortion_tensor{ }

Calling sequence

strain{ output_distortion_tensor{ } }

Properties
  • using: \(\mathrm{\textcolor{ForestGreen}{optional}}\)

  • items: \(\mathrm{maximum\;1}\)

Functionality

output distortion tensor \(u_{ij}\) (which can be nonsymmetric for certain growth directions) \(u_{xx}\ u_{yy}\ u_{zz}\ u_{xy}\ u_{yx}\ u_{xz}\ u_{zx}\ u_{yz}\ u_{zy}\) [dimensionless]


output_distortion_tensor{ crystal_system }

Calling sequence

strain{ output_distortion_tensor{ crystal_system } }

Properties
  • using: \(\mathrm{\textcolor{ForestGreen}{optional}}\)

  • type: \(\mathrm{choice}\)

  • choices: \(\mathrm{yes\;/\;no}\)

  • default: \(\mathrm{no}\)

Functionality

output distortion tensor in crystal coordinate system


output_distortion_tensor{ simulation_system }

Calling sequence

strain{ output_distortion_tensor{ simulation_system } }

Properties
  • using: \(\mathrm{\textcolor{ForestGreen}{optional}}\)

  • type: \(\mathrm{choice}\)

  • choices: \(\mathrm{yes\;/\;no}\)

  • default: \(\mathrm{yes}\)

Functionality

output distortion tensor in crystal coordinate system


output_distortion_tensor{ boxes }

Calling sequence

strain{ output_distortion_tensor{ boxes } }

Properties
  • using: \(\mathrm{\textcolor{ForestGreen}{optional}}\)

  • type: \(\mathrm{choice}\)

  • choices: \(\mathrm{yes\;/\;no}\)

  • default: \(\mathrm{no}\)

Functionality


output_stress_tensor{ }

Calling sequence

strain{ output_stress_tensor{ } }

Properties
  • using: \(\mathrm{\textcolor{ForestGreen}{optional}}\)

  • items: \(\mathrm{maximum\;1}\)

Functionality

output (symmetric) stress tensor : \(\ \sigma_{ij} = C_{ijkl}\ \varepsilon_{kl}\) [GPa]


output_stress_tensor{ crystal_system }

Calling sequence

strain{ output_stress_tensor{ crystal_system } }

Properties
  • using: \(\mathrm{\textcolor{ForestGreen}{optional}}\)

  • type: \(\mathrm{choice}\)

  • choices: \(\mathrm{yes\;/\;no}\)

  • default: \(\mathrm{no}\)

Functionality

output stress tensor in crystal coordinate system


output_stress_tensor{ simulation_system }

Calling sequence

strain{ output_stress_tensor{ simulation_system } }

Properties
  • using: \(\mathrm{\textcolor{ForestGreen}{optional}}\)

  • type: \(\mathrm{choice}\)

  • choices: \(\mathrm{yes\;/\;no}\)

  • default: \(\mathrm{yes}\)

Functionality

output stress tensor in simulation coordinate system (useful if simulation coordinate system differs from crystal coordinate system)

Note

The ordering of the stress tensor components is: \(\sigma_{xx},\ \sigma_{yy},\ \sigma_{zz},\ \sigma_{xy},\ \sigma_{xz},\ \sigma_{yz}\)


output_stress_tensor{ boxes }

Calling sequence

strain{ output_stress_tensor{ boxes } }

Properties
  • using: \(\mathrm{\textcolor{ForestGreen}{optional}}\)

  • type: \(\mathrm{choice}\)

  • choices: \(\mathrm{yes\;/\;no}\)

  • default: \(\mathrm{no}\)

Functionality


output_displacement{ }

Calling sequence

strain{ output_displacement{ } }

Properties
  • using: \(\mathrm{\textcolor{ForestGreen}{optional}}\)

  • items: \(\mathrm{maximum\;1}\)

Functionality

output displacement vector [nm]


output_displacement{ crystal_system }

Calling sequence

strain{ output_displacement{ crystal_system } }

Properties
  • using: \(\mathrm{\textcolor{ForestGreen}{optional}}\)

  • type: \(\mathrm{choice}\)

  • choices: \(\mathrm{yes\;/\;no}\)

  • default: \(\mathrm{no}\)

Functionality

output displacement vector in crystal coordinate system


output_displacement{ simulation_system }

Calling sequence

strain{ output_displacement{ simulation_system } }

Properties
  • using: \(\mathrm{\textcolor{ForestGreen}{optional}}\)

  • type: \(\mathrm{choice}\)

  • choices: \(\mathrm{yes\;/\;no}\)

  • default: \(\mathrm{yes}\)

Functionality

output displacement vector in simulation coordinate system


output_force_density{ }

Calling sequence

strain{ output_force_density{ } }

Properties
  • using: \(\mathrm{\textcolor{ForestGreen}{optional}}\)

  • items: \(\mathrm{maximum\;1}\)

Functionality

output force density vector field \(f_i\) [nN/nm3] (at moment output may be not fully correct; not tested sufficiently)


output_force_density{ crystal_system }

Calling sequence

strain{ output_force_density{ crystal_system } }

Properties
  • using: \(\mathrm{\textcolor{ForestGreen}{optional}}\)

  • type: \(\mathrm{choice}\)

  • choices: \(\mathrm{yes\;/\;no}\)

  • default: \(\mathrm{no}\)

Functionality

output force density vector field in crystal coordinate system


output_force_density{ simulation_system }

Calling sequence

strain{ output_force_density{ simulation_system } }

Properties
  • using: \(\mathrm{\textcolor{ForestGreen}{optional}}\)

  • type: \(\mathrm{choice}\)

  • choices: \(\mathrm{yes\;/\;no}\)

  • default: \(\mathrm{yes}\)

Functionality

output force density vector field in simulation coordinate system


output_elastic_energy_density{ }

Calling sequence

strain{ output_elastic_energy_density{ } }

Properties
  • using: \(\mathrm{\textcolor{ForestGreen}{optional}}\)

  • items: \(\mathrm{maximum\;1}\)

Functionality

output elastic energy density (\(\frac{1}{2}\ C_{ijkl}\ \varepsilon_{ij}\ \varepsilon_{kl}\)) [eV/nm3] The integrated elastic energy is printed out in log file.


output_elastic_energy_density{ boxes }

Calling sequence

strain{ output_elastic_energy_density{ boxes } }

Properties
  • using: \(\mathrm{\textcolor{ForestGreen}{optional}}\)

  • type: \(\mathrm{choice}\)

  • choices: \(\mathrm{yes\;/\;no}\)

  • default: \(\mathrm{no}\)

Functionality


output_polarization_charges{ }

Calling sequence

strain{ output_polarization_charges{ } }

Properties
  • using: \(\mathrm{\textcolor{ForestGreen}{optional}}\)

  • items: \(\mathrm{maximum\;1}\)

Functionality

prints out piezo and pyroelectric charge densities [1018/cm3] in case they were calculated. Pyroelectric charges due to spontaneous polarization apply to wurtzite only. Piezoelectric charges can be calculated for both zinc blende and wurtzite in case the strain was calculated. The piezo charge density is written to: density_piezoelectric_charge.dat (\(\rho_\mathrm{pz}\)) For diamond like crystal structures that have an inversion center such a Si or Ge, piezoelectric charges do not exist.

The pyro charge density is written to: density_pyroelectric_charge.dat (\(\rho_\mathrm{py}\)) It applies to wurtzite only and is independent of strain and is due to spontaneous polarization. If both, piezo and pyroelectric charge densities were calculated, the sum of both charge densities (total polarization charge density) is written to: density_polarization_charge.dat (\(\rho_\mathrm{pol}=\rho_\mathrm{pz}+\rho_\mathrm{py}\))

To summarize:

  • zincblende: density_piezoelectric_charge.dat (\(\rho_\mathrm{pz}\))

  • wurtzite: density_piezoelectric_charge.dat (\(\rho_\mathrm{pz}\)), density_pyroelectric_charge.dat (\(\rho_\mathrm{py}\)), density_polarization_charge.dat (\(\rho_\mathrm{pol}=\rho_\mathrm{pz}+\rho_\mathrm{py}\))


output_polarization_vector{ }

Calling sequence

strain{ output_polarization_vector{ } }

Properties
  • using: \(\mathrm{\textcolor{ForestGreen}{optional}}\)

  • items: \(\mathrm{maximum\;1}\)

Functionality

prints out piezo and pyroelectric polarization vector [C/cm2]. Pyroelectric polarization due to spontaneous polarization apply to wurtzite only. The piezoelectric polarization vector depends on strain and it is zero if no strain is present.


output_polarization_vector{ crystal_system }

Calling sequence

strain{ output_polarization_vector{ crystal_system } }

Properties
  • using: \(\mathrm{\textcolor{ForestGreen}{optional}}\)

  • type: \(\mathrm{choice}\)

  • choices: \(\mathrm{yes\;/\;no}\)

  • default: \(\mathrm{no}\)

Functionality

output polarization vector in crystal coordinate system


output_polarization_vector{ simulation_system }

Calling sequence

strain{ output_polarization_vector{ simulation_system } }

Properties
  • using: \(\mathrm{\textcolor{ForestGreen}{optional}}\)

  • type: \(\mathrm{choice}\)

  • choices: \(\mathrm{yes\;/\;no}\)

  • default: \(\mathrm{yes}\)

Functionality

output polarization vector in simulation coordinate system


output_polarization_vector{ boxes }

Calling sequence

strain{ output_polarization_vector{ boxes } }

Properties
  • using: \(\mathrm{\textcolor{ForestGreen}{optional}}\)

  • type: \(\mathrm{choice}\)

  • choices: \(\mathrm{yes\;/\;no}\)

  • default: \(\mathrm{no}\)

Functionality


output_lattice_constants{ }

Calling sequence

strain{ output_lattice_constants{ } }

Properties
  • using: \(\mathrm{\textcolor{ForestGreen}{optional}}\)

  • items: \(\mathrm{maximum\;1}\)

Functionality

Output lattice constants to a file …\Structure\lattice_constants.dat


output_lattice_constants{ boxes }

Calling sequence

strain{ output_lattice_constants{ boxes } }

Properties
  • using: \(\mathrm{\textcolor{ForestGreen}{optional}}\)

  • type: \(\mathrm{choice}\)

  • choices: \(\mathrm{yes\;/\;no}\)

  • default: \(\mathrm{no}\)

Functionality


output_elastic_constants{ }

Calling sequence

strain{ output_elastic_constants{ } }

Properties
  • using: \(\mathrm{\textcolor{ForestGreen}{optional}}\)

  • items: \(\mathrm{maximum\;1}\)

Functionality

Output elastic constants.


output_elastic_constants{ boxes }

Calling sequence

strain{ output_elastic_constants{ boxes } }

Properties
  • using: \(\mathrm{\textcolor{ForestGreen}{optional}}\)

  • type: \(\mathrm{choice}\)

  • choices: \(\mathrm{yes\;/\;no}\)

  • default: \(\mathrm{no}\)

Functionality


output_piezo_constants{ }

Calling sequence

strain{ output_piezo_constants{ } }

Properties
  • using: \(\mathrm{\textcolor{ForestGreen}{optional}}\)

  • items: \(\mathrm{maximum\;1}\)

Functionality

Output piezoelectric constants.


output_piezo_constants{ boxes }

Calling sequence

strain{ output_piezo_constants{ boxes } }

Properties
  • using: \(\mathrm{\textcolor{ForestGreen}{optional}}\)

  • type: \(\mathrm{choice}\)

  • choices: \(\mathrm{yes\;/\;no}\)

  • default: \(\mathrm{no}\)

Functionality


output_second_order_piezo_constants{ }

Calling sequence

strain{ output_second_order_piezo_constants{ } }

Properties
  • using: \(\mathrm{\textcolor{ForestGreen}{optional}}\)

  • items: \(\mathrm{maximum\;1}\)

Functionality

Output 2nd order piezoelectric constants.


output_second_order_piezo_constants{ boxes }

Calling sequence

strain{ output_second_order_piezo_constants{ boxes } }

Properties
  • using: \(\mathrm{\textcolor{ForestGreen}{optional}}\)

  • type: \(\mathrm{choice}\)

  • choices: \(\mathrm{yes\;/\;no}\)

  • default: \(\mathrm{no}\)

Functionality


output_pyro_constants{ }

Calling sequence

strain{ output_pyro_constants{ } }

Properties
  • using: \(\mathrm{\textcolor{ForestGreen}{optional}}\)

  • items: \(\mathrm{maximum\;1}\)

Functionality

Output pyroelectric constants, i.e. spontaneous polarization constants.


output_pyro_constants{ boxes }

Calling sequence

strain{ output_pyro_constants{ boxes } }

Properties
  • using: \(\mathrm{\textcolor{ForestGreen}{optional}}\)

  • type: \(\mathrm{choice}\)

  • choices: \(\mathrm{yes\;/\;no}\)

  • default: \(\mathrm{no}\)

Functionality