structures.layers#

Classes:

Layer()

Base class of real physical layers, such as amorphous layers and unit cells.

AmorphousLayer()

Representation of amorphous layers containing an Atom or AtomMixed.

UnitCell()

Representation of unit cells made of one or multiple Atom or AtomMixed instances at defined positions.

class udkm1Dsim.structures.layers.Layer(id, name, **kwargs)[source]#

Bases: object

Base class of real physical layers, such as amorphous layers and unit cells.

It holds different structural, thermal, and elastic properties that are relevant for simulations.

Parameters:
  • id (str) – id of the layer.

  • name (str) – name of the layer.

Keyword Arguments:
  • roughness (float) – gaussian width of the top roughness of a layer.

  • deb_wal_fac (float) – Debye Waller factor.

  • sound_vel (float) – sound velocity.

  • phonon_damping (float) – phonon damping.

  • opt_pen_depth (float) – optical penetration depth.

  • opt_ref_index (float) – refractive index.

  • opt_ref_index_per_strain (float) – change of refractive index per strain.

  • heat_capacity (float) – heat capacity.

  • therm_cond (float) – thermal conductivity.

  • lin_therm_exp (float) – linear thermal expansion.

  • sub_system_coupling (float) – sub-system coupling.

Attributes:
  • id (str) – id of the layer.

  • name (str) – name of the layer.

  • thickness (float) – thickness of the layer [m].

  • mass (float) – mass of the layer [kg].

  • mass_unit_area (float) – mass of layer normalized to unit area of 1 Ų [kg].

  • density (float) – density of the layer [kg/m³].

  • area (float) – area of layer [m²].

  • volume (float) – volume of layer [m³].

  • roughness (float) – gaussian width of the top roughness of a layer [m].

  • deb_wal_fac (list[@lambda]) – list of T-dependent Debye-Waller factors langle u^2rangle [m²].

  • sound_vel (float) – longitudinal sound velocity in the layer [m/s].

  • spring_const (ndarray[float]) – spring constant of the layer [kg/s²] and higher orders.

  • phonon_damping (float) – damping constant of phonon propagation [kg/s].

  • opt_pen_depth (float) – optical penetration depth of the layer [m].

  • opt_ref_index (ndarray[float]) – optical refractive index - real and imagenary part \(n + i\kappa\).

  • opt_ref_index_per_strain (ndarray[float]) – optical refractive index change per strain - real and imagenary part \(\frac{d n}{d \eta} + i\frac{d \kappa}{d \eta}\).

  • therm_cond (list[@lambda]) – list of T-dependent thermal conductivity [W/(m K)].

  • lin_therm_exp (list[@lambda]) – list of T-dependent linear thermal expansion coefficient (relative).

  • int_lin_therm_exp (list[@lambda]) – list of T-dependent integrated linear thermal expansion coefficient.

  • heat_capacity (list[@lambda]) – list of T-dependent heat capacity function [J/(kg K)].

  • int_heat_capacity (list[@lambda]) – list of T-dependent integrated heat capacity function.

  • sub_system_coupling (list[@lambda]) – list of coupling functions of different subsystems [W/m³].

  • num_sub_systems (int) – number of subsystems for heat and phonons (electrons, lattice, spins, …).

  • eff_spin (float) – effective spin.

  • curie_temp (float) – Curie temperature [K].

  • mf_exch_coupling (float) – mean field exchange coupling constant [m²kg/s²].

  • lamda (float) – intrinsic coupling to bath parameter.

  • mag_moment (float) – atomic magnetic moment [mu_Bohr].

  • aniso_exponent (ndarray[float]) – exponent of T-dependence uniaxial anisotropy.

  • anisotropy (ndarray[float]) – anisotropy at T=0 K [J/m³] as x,y,z component vector.

  • exch_stiffness (float) – exchange stiffness at T=0 K [J/m].

  • mag_saturation (float) – saturation magnetization at 0 K [J/T/m³].

Methods:

check_input()

Checks the input and create a list of function handle strings with T as argument.

get_property_dict()

Returns a dictionary with all parameters.

get_acoustic_impedance()

Calculates the acoustic impedance.

set_ho_spring_constants()

Set the higher orders of the spring constant for anharmonic phonon simulations.

set_opt_pen_depth_from_ref_index()

Set the optical penetration depth from the optical referactive index for a given wavelength.

calc_spring_const()

Calculates the spring constant of the layer from the mass per unit area, sound velocity and thickness

calc_mf_exchange_coupling()

Calculate the mean-field exchange coupling constant

check_input(inputs, change_num_sub_systems=True)[source]#

Checks the input and create a list of function handle strings with T as argument. Inputs can be strings, floats, ints, or pint quantities.

Parameters:
  • inputs (list[str, int, float, Quantity]) – list of strings, int, floats, or Pint quantities.

  • change_num_sub_systems (boolean, optional) – wheather the number of sub-systems should be changed. Defaults to True.

Returns:

(tuple)

  • output (list[@lambda]) - list of lambda functions.

  • output_strs (list[str]) - list of string-representations.

get_property_dict(**kwargs)[source]#

Returns a dictionary with all parameters. objects or dicts and objects are converted to strings. if a type is given, only these properties are returned.

Parameters:

**kwargs (list[str]) – types of requested properties.

Returns:

R (dict) – dictionary with requested properties.

get_acoustic_impedance()[source]#

Calculates the acoustic impedance.

Returns:

Z (float) – acoustic impedance.

set_ho_spring_constants(HO)[source]#

Set the higher orders of the spring constant for anharmonic phonon simulations.

Parameters:

HO (ndarray[float]) – higher order spring constants.

set_opt_pen_depth_from_ref_index(wavelength)[source]#

Set the optical penetration depth from the optical referactive index for a given wavelength.

Parameters:

wavelength (Quantity) – wavelength as Pint Quantitiy.

calc_spring_const()[source]#

Calculates the spring constant of the layer from the mass per unit area, sound velocity and thickness

\[k = m \, \left(\frac{v}{c}\right)^2\]
calc_mf_exchange_coupling()[source]#

Calculate the mean-field exchange coupling constant

\[J = \frac{3}{S_{eff}+1} k_B T_C\]
class udkm1Dsim.structures.layers.AmorphousLayer(id, name, thickness, density, **kwargs)[source]#

Bases: Layer

Representation of amorphous layers containing an Atom or AtomMixed.

Parameters:
  • id (str) – id of the layer.

  • name (str) – name of layer.

  • thickness (float) – thickness of the layer.

  • density (float) – density of the layer.

Keyword Arguments:
  • atom (object) – Atom or AtomMixed in the layer.

  • roughness (float) – gaussian width of the top roughness of a layer.

  • deb_wal_fac (float) – Debye Waller factor.

  • sound_vel (float) – sound velocity.

  • phonon_damping (float) – phonon damping.

  • roughness – gaussian width of the top roughness of a layer.

  • opt_pen_depth (float) – optical penetration depth.

  • opt_ref_index (float) – refractive index.

  • opt_ref_index_per_strain (float) – change of refractive index per strain.

  • heat_capacity (float) – heat capacity.

  • therm_cond (float) – thermal conductivity.

  • lin_therm_exp (float) – linear thermal expansion.

  • sub_system_coupling (float) – sub-system coupling.

Attributes:
  • id (str) – id of the layer.

  • name (str) – name of the layer.

  • thickness (float) – thickness of the layer [m].

  • mass (float) – mass of the layer [kg].

  • mass_unit_area (float) – mass of layer normalized to unit area of 1 Ų [kg].

  • density (float) – density of the layer [kg/m³].

  • area (float) – area of layer [m²].

  • volume (float) – volume of layer [m³].

  • roughness (float) – gaussian width of the top roughness of a layer [m].

  • deb_wal_fac (list[@lambda]) – list of T-dependent Debye-Waller factors langle u^2rangle [m²].

  • sound_vel (float) – longitudinal sound velocity in the layer [m/s].

  • spring_const (ndarray[float]) – spring constant of the layer [kg/s²] and higher orders.

  • phonon_damping (float) – damping constant of phonon propagation [kg/s].

  • opt_pen_depth (float) – optical penetration depth of the layer [m].

  • opt_ref_index (ndarray[float]) – optical refractive index - real and imagenary part \(n + i\kappa\).

  • opt_ref_index_per_strain (ndarray[float]) – optical refractive index change per strain - real and imagenary part \(\frac{d n}{d \eta} + i\frac{d \kappa}{d \eta}\).

  • therm_cond (list[@lambda]) – list of HANDLES T-dependent thermal conductivity [W/(m K)].

  • lin_therm_exp (list[@lambda]) – list of T-dependent linear thermal expansion coefficient (relative).

  • int_lin_therm_exp (list[@lambda]) – list of T-dependent integrated linear thermal expansion coefficient.

  • heat_capacity (list[@lambda]) – list of T-dependent heat capacity function [J/(kg K)].

  • int_heat_capacity (list[@lambda]) – list of T-dependent integrated heat capacity function.

  • sub_system_coupling (list[@lambda]) – list of of coupling functions of different subsystems [W/m³].

  • num_sub_systems (int) – number of subsystems for heat and phonons (electrons, lattice, spins, …).

  • eff_spin (float) – effective spin.

  • curie_temp (float) – Curie temperature [K].

  • mf_exch_coupling (float) – mean field exchange coupling constant [m²kg/s²].

  • lamda (float) – intrinsic coupling to bath parameter.

  • mag_moment (float) – atomic magnetic moment [mu_Bohr].

  • aniso_exponent (ndarray[float]) – exponent of T-dependence uniaxial anisotropy.

  • anisotropy (float) – anisotropy at T=0 K [J/m³] as x,y,z component vector.

  • exch_stiffness (float) – exchange stiffness at T=0 K [J/m].

  • mag_saturation (float) – saturation magnetization at 0 K [J/T/m³].

  • magnetization (dict[float]) – magnetization amplitude, phi and gamma angle inherited from the atom.

  • atom (object) – Atom or AtomMixed in the layer.

Methods:

calc_mf_exchange_coupling()

Calculate the mean-field exchange coupling constant

calc_spring_const()

Calculates the spring constant of the layer from the mass per unit area, sound velocity and thickness

check_input()

Checks the input and create a list of function handle strings with T as argument.

get_acoustic_impedance()

Calculates the acoustic impedance.

get_property_dict()

Returns a dictionary with all parameters.

set_ho_spring_constants()

Set the higher orders of the spring constant for anharmonic phonon simulations.

set_opt_pen_depth_from_ref_index()

Set the optical penetration depth from the optical referactive index for a given wavelength.

calc_mf_exchange_coupling()#

Calculate the mean-field exchange coupling constant

\[J = \frac{3}{S_{eff}+1} k_B T_C\]
calc_spring_const()#

Calculates the spring constant of the layer from the mass per unit area, sound velocity and thickness

\[k = m \, \left(\frac{v}{c}\right)^2\]
check_input(inputs, change_num_sub_systems=True)#

Checks the input and create a list of function handle strings with T as argument. Inputs can be strings, floats, ints, or pint quantities.

Parameters:
  • inputs (list[str, int, float, Quantity]) – list of strings, int, floats, or Pint quantities.

  • change_num_sub_systems (boolean, optional) – wheather the number of sub-systems should be changed. Defaults to True.

Returns:

(tuple)

  • output (list[@lambda]) - list of lambda functions.

  • output_strs (list[str]) - list of string-representations.

get_acoustic_impedance()#

Calculates the acoustic impedance.

Returns:

Z (float) – acoustic impedance.

get_property_dict(**kwargs)#

Returns a dictionary with all parameters. objects or dicts and objects are converted to strings. if a type is given, only these properties are returned.

Parameters:

**kwargs (list[str]) – types of requested properties.

Returns:

R (dict) – dictionary with requested properties.

set_ho_spring_constants(HO)#

Set the higher orders of the spring constant for anharmonic phonon simulations.

Parameters:

HO (ndarray[float]) – higher order spring constants.

set_opt_pen_depth_from_ref_index(wavelength)#

Set the optical penetration depth from the optical referactive index for a given wavelength.

Parameters:

wavelength (Quantity) – wavelength as Pint Quantitiy.

class udkm1Dsim.structures.layers.UnitCell(id, name, c_axis, **kwargs)[source]#

Bases: Layer

Representation of unit cells made of one or multiple Atom or AtomMixed instances at defined positions.

Parameters:
  • id (str) – id of the UnitCell.

  • name (str) – name of the UnitCell.

  • c_axis (float) – c-axis of the UnitCell.

Keyword Arguments:
  • a_axis (float) – a-axis of the UnitCell.

  • b_axis (float) – b-axis of the UnitCell.

  • deb_wal_fac (float) – Debye Waller factor.

  • sound_vel (float) – sound velocity.

  • phonon_damping (float) – phonon damping.

  • roughness (float) – gaussian width of the top roughness of a layer.

  • opt_pen_depth (float) – optical penetration depth.

  • opt_ref_index (float) – refractive index.

  • opt_ref_index_per_strain (float) – change of refractive index per strain.

  • heat_capacity (float) – heat capacity.

  • therm_cond (float) – thermal conductivity.

  • lin_therm_exp (float) – linear thermal expansion.

  • sub_system_coupling (float) – sub-system coupling.

Attributes:
  • id (str) – id of the layer.

  • name (str) – name of the layer.

  • c_axis (float) – out-of-plane c-axis [m].

  • a_axis (float) – in-plane a-axis [m].

  • b_axis (float) – in-plane b-axis [m].

  • thickness (float) – thickness of the layer [m].

  • mass (float) – mass of the layer [kg].

  • mass_unit_area (float) – mass of layer normalized to unit area of 1 Ų [kg].

  • density (float) – density of the layer [kg/m³].

  • area (float) – area of layer [m²].

  • volume (float) – volume of layer [m³].

  • roughness (float) – gaussian width of the top roughness of a layer [m].

  • deb_wal_fac (list[@lambda]) – list of T-dependent Debye-Waller factors langle u^2rangle [m²].

  • sound_vel (float) – longitudinal sound velocity in the layer [m/s].

  • spring_const (ndarray[float]) – spring constant of the layer [kg/s²] and higher orders.

  • phonon_damping (float) – damping constant of phonon propagation [kg/s].

  • opt_pen_depth (float) – optical penetration depth of the layer [m].

  • opt_ref_index (ndarray[float]) – optical refractive index - real and imagenary part \(n + i\kappa\).

  • opt_ref_index_per_strain (ndarray[float]) – optical refractive index change per strain - real and imagenary part \(\frac{d n}{d \eta} + i\frac{d \kappa}{d \eta}\).

  • therm_cond (list[@lambda]) – list of HANDLES T-dependent thermal conductivity [W/(m K)].

  • lin_therm_exp (list[@lambda]) – list of T-dependent linear thermal expansion coefficient (relative).

  • int_lin_therm_exp (list[@lambda]) – list of T-dependent integrated linear thermal expansion coefficient.

  • heat_capacity (list[@lambda]) – list of T-dependent heat capacity function [J/(kg K)].

  • int_heat_capacity (list[@lambda]) – list of T-dependent integrated heat capacity function.

  • sub_system_coupling (list[@lambda]) – list of of coupling functions of different subsystems [W/m³].

  • num_sub_systems (int) – number of subsystems for heat and phonons (electrons, lattice, spins, …).

  • atoms (list[atom, @lambda]) – list of atoms and function handle for strain dependent displacement.

  • num_atoms (int) – number of atoms in unit cell.

  • eff_spin (float) – effective spin.

  • curie_temp (float) – Curie temperature [K].

  • mf_exch_coupling (float) – mean field exchange coupling constant [m²kg/s²].

  • lamda (float) – intrinsic coupling to bath parameter.

  • mag_moment (float) – atomic magnetic moment [mu_Bohr].

  • aniso_exponent (ndarray[float]) – exponent of T-dependence uniaxial anisotropy.

  • anisotropy (float) – anisotropy at T=0 K [J/m³] as x,y,z component vector.

  • exch_stiffness (float) – exchange stiffness at T=0 K [J/m].

  • mag_saturation (float) – saturation magnetization at 0 K [J/T/m³].

  • magnetization (list[float]) – magnetization amplitudes, phi, and gamma angle of each atom in the unit cell.

Methods:

calc_mf_exchange_coupling()

Calculate the mean-field exchange coupling constant

calc_spring_const()

Calculates the spring constant of the layer from the mass per unit area, sound velocity and thickness

check_input()

Checks the input and create a list of function handle strings with T as argument.

get_acoustic_impedance()

Calculates the acoustic impedance.

get_property_dict()

Returns a dictionary with all parameters.

set_ho_spring_constants()

Set the higher orders of the spring constant for anharmonic phonon simulations.

set_opt_pen_depth_from_ref_index()

Set the optical penetration depth from the optical referactive index for a given wavelength.

visualize()

Allows for 3D presentation of unit cell by allow for a & b coordinate of atoms.

add_atom()

Adds an AtomBase/AtomMixed at a relative position of the unit cell.

add_multiple_atoms()

Adds multiple AtomBase/AtomMixed at a relative position of the unit cell.

get_atom_ids()

Provides a list of atom ids within the unit cell.

get_atom_positions()

Calculates the relative positions of the atoms in the unit cell

calc_mf_exchange_coupling()#

Calculate the mean-field exchange coupling constant

\[J = \frac{3}{S_{eff}+1} k_B T_C\]
calc_spring_const()#

Calculates the spring constant of the layer from the mass per unit area, sound velocity and thickness

\[k = m \, \left(\frac{v}{c}\right)^2\]
check_input(inputs, change_num_sub_systems=True)#

Checks the input and create a list of function handle strings with T as argument. Inputs can be strings, floats, ints, or pint quantities.

Parameters:
  • inputs (list[str, int, float, Quantity]) – list of strings, int, floats, or Pint quantities.

  • change_num_sub_systems (boolean, optional) – wheather the number of sub-systems should be changed. Defaults to True.

Returns:

(tuple)

  • output (list[@lambda]) - list of lambda functions.

  • output_strs (list[str]) - list of string-representations.

get_acoustic_impedance()#

Calculates the acoustic impedance.

Returns:

Z (float) – acoustic impedance.

get_property_dict(**kwargs)#

Returns a dictionary with all parameters. objects or dicts and objects are converted to strings. if a type is given, only these properties are returned.

Parameters:

**kwargs (list[str]) – types of requested properties.

Returns:

R (dict) – dictionary with requested properties.

set_ho_spring_constants(HO)#

Set the higher orders of the spring constant for anharmonic phonon simulations.

Parameters:

HO (ndarray[float]) – higher order spring constants.

set_opt_pen_depth_from_ref_index(wavelength)#

Set the optical penetration depth from the optical referactive index for a given wavelength.

Parameters:

wavelength (Quantity) – wavelength as Pint Quantitiy.

visualize(block=True, **kwargs)[source]#

Allows for 3D presentation of unit cell by allow for a & b coordinate of atoms.

Todo

use the avogadro project as plugin

Todo

create unit cell from CIF file e.g. by xrayutilities plugin.

Todo

visualize magnetization per atom

Parameters:

**kwargs (str) – strain for manipulating unit cell visualization.

add_atom(atom, position)[source]#

Adds an AtomBase/AtomMixed at a relative position of the unit cell.

Sort the list of atoms by the position at zero strain.

Update the mass, density and spring constant of the unit cell automatically:

\[\kappa = m \cdot (v_s / c)^2\]
Parameters:
  • atom (Atom, AtomMixed) – Atom or AtomMixed added to unit cell.

  • position (float) – relative position within unit cel [0 .. 1].

add_multiple_atoms(atom, position, Nb)[source]#

Adds multiple AtomBase/AtomMixed at a relative position of the unit cell.

Parameters:
  • atom (Atom, AtomMixed) – Atom or AtomMixed added to unit cell.

  • position (float) – relative position within unit cel [0 .. 1].

  • Nb (int) – repetition of atoms.

get_atom_ids()[source]#

Provides a list of atom ids within the unit cell.

Returns:

ids (list[str]) – list of atom ids within unit cell

get_atom_positions(*args)[source]#

Calculates the relative positions of the atoms in the unit cell

Returns:

res (ndarray[float]) – relative postion of the atoms within the unit cell.