medypt.imt
Class for simulating mesoscopic dynamics of insulator-metal transitions in materials.
Classes
Class for simulating mesoscopic dynamics of insulator-metal transitions in materials. |
Module Contents
- class medypt.imt.IMTModel
Bases:
medypt.model.ModelBaseClass for simulating mesoscopic dynamics of insulator-metal transitions in materials.
The names of the fields are:
'op': Order parameter (vector field)'u': Displacement (vector field)'ge': Reduced chemical potential for electrons (scalar field). Equivalent to specifying electron density. For definition, see note.'gh': Reduced chemical potential for holes (scalar field). Equivalent to specifying hole density. For definition, see note.'phi': Electrical potential (scalar field)'T': Temperature (scalar field)'gd': Reduced chemical potential for neutral defects (scalar field).'gdi': Reduced chemical potential for ionized defects (scalar field). Combined with'gd'to determine both neutral and ionized defect density.'j0': Helper real-element field representing the average outward current density on the boundary tagged by 0. Boundary current isj0multiplied by the area of the boundary. If you need to use boundary current in defining your problem, make sure to tag the corresponding boundary with 0 in the mesh.
Units used in this class are:
Length: nm
Time: ns
Energy: eV (temperature absorbs the Boltzmann constant and is also in this unit)
Charge: e (positive elementary charge)
Note
ge= (mu_e -charge_gap(op)/ 2 -gap_center(op)+ ephi) /T,gh= (mu_h -charge_gap(op)/ 2 +gap_center(op)- ephi) /T, where mu_e and mu_h are the electron and hole quasi-chemical potentials, respectively. The chemical potential and the electronic energy (including the electrostatic energy) share the same reference level E_ref which will cancel out. The expressions ofgeandghimply thatphi= 0 corresponds to the intrinsic situation free of electrostatic influence, i.e., the system is moved infinitely far away from any charges. This means that the reference point ofphiitself can be considered to be the infinitly far point away from the system (the most common choice in electrodynamics), regardless of the choice of E_ref. Hence the grounded boundary condition corresponds tophi= 0 as usual.- params
A dictonary defining physical parameters. Contents include:
'stiffness'(array-like, eV / nm^3): Stiffness tensor. 1D array-like (containing Young’s modulus and Poisson’s ratio: isotropic) or 2D array-like (full tensor in Voigt notation)'e_eff_mass'(float, dimensionless): Electron effective mass devided by free electron mass'h_eff_mass'(float, dimensionless): Hole effective mass devided by free electron mass'therm_expan_coeff'(float | array-like, eV^-1): Thermal expansion coefficient. Scalar (isotropic) or 1D array-like (full vector in Voigt notation)'therm_expan_Tref'(float, eV): Reference temperature for thermal expansion'op_relax_rate_const'(float | array-like, nm^3 / (eV ns)): Order-parameter relaxation rate constant. Scalar (isotropic) or 2D array-like (full tensor)'e_mobility'(float | array-like, nm^2 / (V ns)): Electron mobility. Scalar (isotropic) or 2D array-like (full tensor)'h_mobility'(float | array-like, nm^2 / (V ns)): Hole mobility. Scalar (isotropic) or 2D array-like (full tensor)'eh_recomb_rate_const'(float, nm^3 / ns): Electron-hole recombination rate constant'back_diel_const'(float | array-like, dimensionless): Background dielectric constant. Scalar (isotropic) or 2D array-like (full tensor)'vol_heat_cap'(float, nm^-3): Volumetric heat capacity'therm_conduct'(float | array-like, nm^-1 ns^-1): Thermal conductivity. Scalar (isotropic) or 2D array-like (full tensor)'d_max_density'(float, nm^-3): Maximum defect density'd_neutral_max_diffus'(float | array-like, nm^2 / ns): Maximum diffusivity for neutral defects. Scalar (isotropic) or 2D array-like (full tensor)'d_neutral_act_energy'(float, eV): Activation energy for neutral defect diffusion'd_ionized_max_diffus'(float | array-like, nm^2 / ns): Maximum diffusivity for ionized defects. Scalar (isotropic) or 2D array-like (full tensor)'d_ionized_act_energy'(float, eV): Activation energy for ionized defect diffusion'd_valence'(int, dimensionless): Valence of the defect'd_elec_level'(float, eV): Electronic level of the defect'd_neutral_volume'(float, nm^3): Volume change induced by one neutral defect'd_ionized_volume'(float, nm^3): Volume change induced by one ionized defect'd_ionize_rate_const'(float, nm^(3 * d_valence) / ns): Ionization rate constant of the defect
- load_physics(phys: collections.abc.Sequence[str], **kwargs: Any)
Load physics components of the insulator-metal transition model.
- Parameters:
phys (Sequence[str]) –
Sequence of strings specifying which physics components to load. Order does not matter. Possible values are:
'op': Order parameter relaxation. Createsopfield. Needstemperature: load
'T'or pass a float toTinkwargs.
'T': Heat conduction and generation. CreatesTfield.'phi': Electrostatics. Createsphifield.'u': Mechanical equilibrium. Createsufield. Needstemperature: load
'T'or pass a float toTinkwargs.
'eh': Electron-hole transport and recombination. Createsgeandghfields. NeedsTemperature: load
'T'or pass a float toTinkwargs.Charge gap: load
'op'and pass a callable tocharge_gapinkwargs; or pass a float tocharge_gapinkwargs.Gap center: load
'op'and pass a callable togap_centerinkwargs; or pass a float togap_centerinkwargs.
'd': Defect diffusion and ionization. Createsgdandgdifields. Needstemperature: load
'T'or pass a float toTinkwargs.
'j0': Average outward current density on boundary tagged by 0. Createsj0field. Requires'eh'to be loaded.'lambda': Lagrange multiplier for fixing average electrical potential to zero. Createslambdafield. Requires'phi'to be loaded.
Coupling between different physics components will be automatically added when multiple components are loaded.
kwargs (dict[str, Any]) –
Additional keyword arguments required for loading certain physics components:
op_dim(int): Dimension of the order parameter field. Required when loading'op'.intrinsic_f(Callable[[Any, Any, Any], Any]): Callable returning the intrinsic free energy density, with a calling signatureintrinsic_f(T, op, dop), whereopis treated as a 1D array anddopis the gradient ofoptreated as a 2D array with a shape(op_dim, mesh_dim). Required when loading'op'.trans_strn(Callable[[Any], Any]): Callable returning the eigenstrain in Voigt notation, with a calling signaturetrans_strn(op). Required when loading'u'along with'op'.charge_gap(Callable[[Any], Any] | float): Callable returning the energy gap with a calling signaturecharge_gap(op), required when loading'eh'along with'op'; or a float, required when loading'eh'without loading'op'.gap_center(Callable[[Any], Any] | float): Callable returning the center of the gap measured from a fixed energy level (reference level) with a calling signaturegap_center(op), required when loading'eh'along with'op'; or a float, required when loading'eh'without loading'op'.light_intens(dolfinx.fem.Function|dolfinx.fem.Constant| float): Light intensity field in unit of eV / (nm^2 ns). Optional when loading'eh'.light_freq(float): Light frequency (multiplied by h) in unit of eV. Optional when loading'eh'. Must be provided together withlight_intensto enable photoexcitation.
- Returns:
None