Ana Sayfa Örnekler Ekran görüntüleri Kullanım kılavuzu Bluesky logosu YouTube ☰
OghmaNano Optoelektronik cihazlar ve fotonik sistemler için çoklu fizik simülasyon platformu İNDİR Hızlı Başlangıç Kılavuzu

Yarı iletken cihaz simülasyonu için Lua betik dili kullanılarak malzeme tanımlamasıYarı iletken cihaz simülasyonu için Lua betik dili kullanılarak malzeme tanımlaması

OghmaNano, grafiksel elektrik parametre düzenleyicisi aracılığıyla sabit malzeme parametrelerini tek tek girmek yerine, Lua ile malzeme betiği oluşturma özelliğini destekler. Çoğu simülasyon için, grafik arayüzü üzerinden girilen sabit değerler yeterlidir; Lua betiği ise elektrik, optik veya termal malzeme özelliklerinin program aracılığıyla tanımlanması veya sıcaklık, konum (x, y, z), bileşim veya foton yoğunluğu ile değişmesi gereken durumlarda kullanılmak üzere tasarlanmıştır. Bu nedenle, bant aralığı, elektron ilgisi, taşıyıcı hareketliliği, rekombinasyon katsayıları ve termal iletkenlik gibi parametreler, tek bir sabit değer yerine fonksiyonlar olarak ifade edilebilir. Bu sayfada, Lua malzeme betiklerinin nasıl yapılandırıldığı, OghmaNano'nun bunları nasıl bulup seçtiği, malzemeler ve optik n/k veri kümeleriyle nasıl ilişkilendirildiği ve betiklerle tanımlanan parametrelerin bir simülasyon içinde nasıl kullanıldığı açıklanmaktadır.OghmaNano, grafiksel elektrik parametre düzenleyicisi aracılığıyla sabit malzeme parametrelerini tek tek girmek yerine, Lua ile malzeme betiği oluşturma özelliğini destekler. Çoğu simülasyon için, grafik arayüzü üzerinden girilen sabit değerler yeterlidir; Lua betiği ise elektrik, optik veya termal malzeme özelliklerinin program aracılığıyla tanımlanması veya sıcaklık, konum (x, y, z), bileşim veya foton yoğunluğu ile değişmesi gereken durumlarda kullanılmak üzere tasarlanmıştır. Bu nedenle, bant aralığı, elektron ilgisi, taşıyıcı hareketliliği, rekombinasyon katsayıları ve termal iletkenlik gibi parametreler, tek bir sabit değer yerine fonksiyonlar olarak ifade edilebilir. Bu sayfada, Lua malzeme betiklerinin nasıl yapılandırıldığı, OghmaNano'nun bunları nasıl bulup seçtiği, malzemeler ve optik n/k veri kümeleriyle nasıl ilişkilendirildiği ve betiklerle tanımlanan parametrelerin bir simülasyon içinde nasıl kullanıldığı açıklanmaktadır.

You do not need a script for most work. As explained in Part A, fixed material parameters can be typed straight into the standard editors. A Lua script is only needed when you want a property to vary with temperature, position, composition, or photon density, or when you want a single well-defined, self-documenting source for a material's electrical parameters.

1. Lua materyal betiği nedir?1. Lua materyal betiği nedir?

Bir Lua materyal betiği, materyal özelliklerinin sabit değerler yerine küçük fonksiyonlar kullanılarak tanımlandığı düz metin formatında bir .lua dosyasıdır. Her fonksiyon, bant aralığı, elektron ilgisi, taşıyıcı hareketliliği, rekombinasyon katsayısı veya termal iletkenlik gibi belirli bir materyal parametresinin değerini döndürür. Bu değerler sabit olabilir veya sıcaklık T ve konum (x, y, z) fonksiyonlarına göre değişebilir. Fonksiyonlar ayrı ayrı etkinleştirilebilir veya devre dışı bırakılabilir; bu sayede betik, yalnızca istediğiniz parametreleri değiştirirken, diğer değerlerin standart simülasyon ayarlarından gelmeye devam etmesi sağlanır. Tipik bir fonksiyon şu şekilde görünür:Bir Lua materyal betiği, materyal özelliklerinin sabit değerler yerine küçük fonksiyonlar kullanılarak tanımlandığı düz metin formatında bir .lua dosyasıdır. Her fonksiyon, bant aralığı, elektron ilgisi, taşıyıcı hareketliliği, rekombinasyon katsayısı veya termal iletkenlik gibi belirli bir materyal parametresinin değerini döndürür. Bu değerler sabit olabilir veya sıcaklık T ve konum (x, y, z) fonksiyonlarına göre değişebilir. Fonksiyonlar ayrı ayrı etkinleştirilebilir veya devre dışı bırakılabilir; bu sayede betik, yalnızca istediğiniz parametreleri değiştirirken, diğer değerlerin standart simülasyon ayarlarından gelmeye devam etmesi sağlanır. Tipik bir fonksiyon şu şekilde görünür:

function material.Eg(state)
	-- Band gap, units: eV
	local enabled = true
	local T = state.T
	local value = 1.42 - 4.5e-4*(T - 300.0)
	return value, enabled
end

OghmaNano Malzemeler veri tabanındaki herhangi bir .lua dosyası, dosyanın ilk 1000 baytı içinde tablo tanımı local material = {} göründüğünde bir malzeme betiği olarak kabul edilir. Bu, bir lisans başlığının veya açıklayıcı yorumlar bloğunun, işaret dosyanın üst kısmına yakın olacak şekilde tanımın öncesinde görünebileceği anlamına gelir. Bir malzemenin betiğini, Malzeme düzenleyicisindeki ?? Kod düzenleme sekmesinden doğrudan görüntüleyebilir ve düzenleyebilirsiniz.OghmaNano Malzemeler veri tabanındaki herhangi bir .lua dosyası, dosyanın ilk 1000 baytı içinde tablo tanımı local material = {} göründüğünde bir malzeme betiği olarak kabul edilir. Bu, bir lisans başlığının veya açıklayıcı yorumlar bloğunun, işaret dosyanın üst kısmına yakın olacak şekilde tanımın öncesinde görünebileceği anlamına gelir. Bir malzemenin betiğini, Malzeme düzenleyicisindeki ?? Kod düzenleme sekmesinden doğrudan görüntüleyebilir ve düzenleyebilirsiniz.

Bir malzeme betiği, istediğiniz kadar veya istediğiniz kadar az parametre tanımlayabilir. Yalnızca bant aralığını ve elektron ilgisini veya eksiksiz bir bant yapısı, iletim, rekombinasyon ve termal parametre kümesini tanımlayabilir. Kullanımına gerek duymadığınız fonksiyonlar basitçe atlanabilir veya enabled = false ile birlikte döndürülerek modelin, standart düzenleyicilerde saklanan değere dönmesi sağlanabilir.Bir malzeme betiği, istediğiniz kadar veya istediğiniz kadar az parametre tanımlayabilir. Yalnızca bant aralığını ve elektron ilgisini veya eksiksiz bir bant yapısı, iletim, rekombinasyon ve termal parametre kümesini tanımlayabilir. Kullanımına gerek duymadığınız fonksiyonlar basitçe atlanabilir veya enabled = false ile birlikte döndürülerek modelin, standart düzenleyicilerde saklanan değere dönmesi sağlanabilir.

OghmaNano Material editor showing the Code editor tab with a Lua material script defining mue_x, mue_y, mue_z and mu_h functions for the material m-MTDATA:TPBi
Materyal düzenleyicisindeki Kod düzenleme sekmesi, bir materyal için kullanılan Lua betiğini gösterir. Her özellik, bir değer ve bir enabled bayrağı döndüren küçük bir fonksiyondur.Materyal düzenleyicisindeki Kod düzenleme sekmesi, bir materyal için kullanılan Lua betiğini gösterir. Her özellik, bir değer ve bir enabled bayrağı döndüren küçük bir fonksiyondur.
OghmaNano Open file dialog inside the material folder MAPI-CH3NH3PbI3, showing four optical n/k datasets (Ball, Leguy, Leguy-hydrated, Phillips) shown as atom icons alongside a single electrical Lua script CH3NH3PbI3.lua shown as a code-file icon
İçinde dört optik (n/k) veri kümesi ve bir elektrik komut dosyası (CH3NH3PbI3.lua) bulunan tek bir malzeme klasörü. OghmaNano, simülasyon için en uygun dosyayı seçer.İçinde dört optik (n/k) veri kümesi ve bir elektrik komut dosyası (CH3NH3PbI3.lua) bulunan tek bir malzeme klasörü. OghmaNano, simülasyon için en uygun dosyayı seçer.

2. Betiklerin diske kaydedildiği yer2. Betiklerin diske kaydedildiği yer

Bir materyal betiği, iki farklı konumdan birinde bulunabilir ve bu, OghmaNano'da nasıl görüntüleneceğini belirler:Bir materyal betiği, iki farklı konumdan birinde bulunabilir ve bu, OghmaNano'da nasıl görüntüleneceğini belirler:

?? şekli, bir materyal klasörü içinde bulunan bir betiği göstermektedir. MAPI-CH3NH3PbI3 perovskit klasörü, atom simgeleriyle temsil edilen çeşitli optik (n/k) veri kümelerini (Ball, Leguy, Leguy-hidrate ve Phillips) ve ayrıca bir kod dosyası simgesiyle temsil edilen tek bir elektrik betiği olan CH3NH3PbI3.lua'i içermektedir.?? şekli, bir materyal klasörü içinde bulunan bir betiği göstermektedir. MAPI-CH3NH3PbI3 perovskit klasörü, atom simgeleriyle temsil edilen çeşitli optik (n/k) veri kümelerini (Ball, Leguy, Leguy-hidrate ve Phillips) ve ayrıca bir kod dosyası simgesiyle temsil edilen tek bir elektrik betiği olan CH3NH3PbI3.lua'i içermektedir.

3. Tek bir elektrik sinyali, çeşitli optik veri kümeleri3. Tek bir elektrik sinyali, çeşitli optik veri kümeleri

Bir malzeme için genellikle birden fazla optik sabit kümesi bulunurken, yalnızca bir adet anlamlı elektrik parametresi kümesi vardır. Farklı araştırma grupları, farklı örnekler ve farklı yöntemler kullanarak, farklı dalga boyu aralıklarında n ve k değerlerini ölçerler. Bu nedenle, her bir optik veri kümesini ayrı ayrı saklamak ve simülasyon sırasında bunlar arasında seçim yapmak faydalıdır. Buna karşılık, elektrik parametreleri (bant aralığı, afinite, hareketlilik vb.), genellikle malzeme için tek ve tutarlı bir tanım olarak saklanması en uygun olan değerlerdir. ??'de gösterilen düzenleme tam olarak budur: dört adet n/k veri kümesi ve bir adet elektrik parametresi kümesi.Bir malzeme için genellikle birden fazla optik sabit kümesi bulunurken, yalnızca bir adet anlamlı elektrik parametresi kümesi vardır. Farklı araştırma grupları, farklı örnekler ve farklı yöntemler kullanarak, farklı dalga boyu aralıklarında n ve k değerlerini ölçerler. Bu nedenle, her bir optik veri kümesini ayrı ayrı saklamak ve simülasyon sırasında bunlar arasında seçim yapmak faydalıdır. Buna karşılık, elektrik parametreleri (bant aralığı, afinite, hareketlilik vb.), genellikle malzeme için tek ve tutarlı bir tanım olarak saklanması en uygun olan değerlerdir. ??'de gösterilen düzenleme tam olarak budur: dört adet n/k veri kümesi ve bir adet elektrik parametresi kümesi.

Malzeme kullanıldığında, OghmaNano en uygun dosyayı otomatik olarak seçmeye çalışır. Simülasyonu yapılan belirli malzeme düzeyinde bir komut dosyası bulunmuyorsa, model malzeme klasör yapısında geriye doğru arama yaparak kullanılabilecek uygun bir komut dosyası bulur. Bu, mantıklı bir düzeyde tek bir elektrik komut dosyası ekleyebileceğiniz ve bunun, aynı elektrik parametrelerini her bir optik varyanta tekrar tekrar girmek zorunda kalmadan, altında gruplandırılmış veri kümelerine uygulanmasını sağlayabileceğiniz anlamına gelir.Malzeme kullanıldığında, OghmaNano en uygun dosyayı otomatik olarak seçmeye çalışır. Simülasyonu yapılan belirli malzeme düzeyinde bir komut dosyası bulunmuyorsa, model malzeme klasör yapısında geriye doğru arama yaparak kullanılabilecek uygun bir komut dosyası bulur. Bu, mantıklı bir düzeyde tek bir elektrik komut dosyası ekleyebileceğiniz ve bunun, aynı elektrik parametrelerini her bir optik varyanta tekrar tekrar girmek zorunda kalmadan, altında gruplandırılmış veri kümelerine uygulanmasını sağlayabileceğiniz anlamına gelir.

Neden bunları ayırmak gerekiyor? Optik veriler genellikle ölçümler arasında değişen şeydir; örneğin, bir grup tarafından 800 nm'ye, başka bir grup tarafından ise 1100 nm'ye kadar ölçülen bir film, gerçekten farklı iki n/k veri kümesi verir. Malzemenin elektriksel davranışı, bir optik ölçümün dalga boyu aralığıyla doğrudan ilişkili değildir, bu nedenle tek bir elektriksel model, hangi optik veri kümesiyle eşleştirilirse eşleştirilsin, fiziksel tutarlılığı sağlar.Neden bunları ayırmak gerekiyor? Optik veriler genellikle ölçümler arasında değişen şeydir; örneğin, bir grup tarafından 800 nm'ye, başka bir grup tarafından ise 1100 nm'ye kadar ölçülen bir film, gerçekten farklı iki n/k veri kümesi verir. Malzemenin elektriksel davranışı, bir optik ölçümün dalga boyu aralığıyla doğrudan ilişkili değildir, bu nedenle tek bir elektriksel model, hangi optik veri kümesiyle eşleştirilirse eşleştirilsin, fiziksel tutarlılığı sağlar.

4. Bir materyal betiğinin anatomisi4. Bir materyal betiğinin anatomisi

Aşağıdaki örnek, AlGaInAs için eksiksiz bir elektrik malzemesi komut dosyasıdır; bu, telekomünikasyon lazerleri ve dedektörleri için kullanılan, kafes uyumlu InP tabanlı dörtlü bir bileşendir. Komut dosyasının tamamı gösterilmiştir, böylece gerçek ve kapsamlı bir şekilde belgelenmiş bir komut dosyasının nasıl oluşturulduğunu görebilirsiniz; her bir fonksiyon daha sonra ayrı ayrı açıklanır ve Bölüm 5'te aşağıda belirtilir. Genişletmek için tıklayın.Aşağıdaki örnek, AlGaInAs için eksiksiz bir elektrik malzemesi komut dosyasıdır; bu, telekomünikasyon lazerleri ve dedektörleri için kullanılan, kafes uyumlu InP tabanlı dörtlü bir bileşendir. Komut dosyasının tamamı gösterilmiştir, böylece gerçek ve kapsamlı bir şekilde belgelenmiş bir komut dosyasının nasıl oluşturulduğunu görebilirsiniz; her bir fonksiyon daha sonra ayrı ayrı açıklanır ve Bölüm 5'te aşağıda belirtilir. Genişletmek için tıklayın.

Tam örnek materyal metni — AlGaInAs.luaTam örnek materyal metni — AlGaInAs.lua

-- See end of file for copyright, licensing and documentation links.

local material = {}

-- ---------------------------------------------------------------------------
-- NOTES ON AlGaInAs (read before using):
--
-- (Al_x Ga_{1-x})_{0.47} In_{0.53} As, LATTICE-MATCHED to InP (a = 5.869 A). The
-- workhorse quaternary for 1.3-1.55 um telecom lasers, modulators and
-- photodetectors. In is fixed at 0.53 for the InP match, so the single design
-- knob is the Al fraction x on the group-III sublattice.
--
-- DIRECT gap for all x (no crossover in the useful range): ~0.75 eV at x=0
-- (Ga0.47In0.53As, "InGaAs", ~1.65 um) rising to ~1.46 eV at x=1
-- (Al0.48In0.52As, ~0.85 um).
Daha fazlasını gösterDaha fazlasını göster
 -- Compared with the older InGaAsP telecom
-- quaternary, AlGaInAs offers a larger conduction-band offset (better electron
-- confinement), which is why it is favoured for high-temperature laser
-- operation - a device advantage, captured here only via Xi/Eg.
--
-- The lattice constant is FIXED by the InP match (independent of x). Eg is
-- computed from x; the remaining parameters are given at a representative
-- x = 0.30 (Eg ~ 0.92 eV, ~1.34 um) with InGaAs/AlInAs end points noted.
--
-- REFERENCES
--
-- [1]  I. Vurgaftman, J. R. Meyer, L. R. Ram-Mohan, J. Appl. Phys. 89, 5815
--      (2001). [constituent band parameters, bowing]
-- [2]  S. Adachi, "Properties of Semiconductor Alloys", Wiley (2009); and
--      S. Adachi, "Physical Properties of III-V Semiconductor Compounds"
--      (1992). [Eg(x), transport, dielectric, thermal]
-- [3]  O. Madelung, "Semiconductors: Data Handbook", Springer (2004).
-- ---------------------------------------------------------------------------

function material.name()
	local enabled = true

	return "AlGaInAs", enabled
end


function material.description()
	local enabled = true

	return "(AlxGa1-x)0.47In0.53As on InP, x = Al ~ 0.30 (direct gap)", enabled
end


function material.formula()
	local enabled = true

	return "AlGaInAs", enabled
end


function material.Eg(state)
	-- Units: eV
	-- Refs: [1],[2]
	--
	-- Direct gap, lattice-matched to InP, in Al fraction x. 300 K relation
	-- [2]:  Eg(x) = 0.76 + 0.49*x + 0.20*x^2
	-- (0.76 eV at x=0 -> 1.45 eV at x=1). Temperature handled by a
	-- Varshni-type shift about 300 K (alpha = 4.0e-4 eV/K, beta = 200 K).
	-- x = 0.30 -> ~0.925 eV (~1.34 um) at 300 K. Change al_fraction here
	-- and in the functions noted in the header.

	local enabled = true
	local al_fraction = 0.30
	local x = al_fraction
	local T = state.T
	local eg_300 = 0.76 + 0.49*x + 0.20*x*x
	local tshift = 4.0e-4*(90000.0/500.0 - T*T/(T + 200.0))
	local value = eg_300 + tshift

	return value, enabled
end


function material.Xi(state)
	-- Electron affinity
	-- Units: eV
	-- Refs: [2],[3]
	--
	-- ~4.45 eV at x = 0.30. Falls with Al (InGaAs ~4.6 -> AlInAs ~4.1 eV);
	-- the resulting large conduction-band offset to InP / across the alloy
	-- is the key confinement advantage over InGaAsP.

	local enabled = true
	local value = 4.45

	return value, enabled
end


function material.Nc(state)
	-- Effective conduction-band density of states
	-- Units: m^-3
	-- Refs: [2],[3]
	--
	-- ~4e23 m^-3 at 300 K for x = 0.30 (small direct-valley mass, m_e* ~
	-- 0.05-0.07 m0). Endpoints: InGaAs ~2.1e23, AlInAs ~5.4e23 m^-3.

	local enabled = true
	local T = state.T
	local value = 4.0e23*(T/300.0)^1.5

	return value, enabled
end


function material.Nv(state)
	-- Effective valence-band density of states
	-- Units: m^-3
	-- Refs: [2],[3]
	--
	-- ~8e24 m^-3 at 300 K for x = 0.30 (InGaAs ~7.7e24, AlInAs ~9e24 m^-3).

	local enabled = true
	local T = state.T
	local value = 8.0e24*(T/300.0)^1.5

	return value, enabled
end


function material.mu_e(state)
	-- Low-field electron mobility
	-- Units: m^2 V^-1 s^-1
	-- Refs: [2]
	--
	-- ~0.3 m^2/V/s (3000 cm^2/V/s) at x = 0.30 - high (small mass) but
	-- alloy-scattering-reduced from InGaAs (~10000-13000 cm^2/V/s) toward
	-- AlInAs (~1000-4000 cm^2/V/s). (300/T)^1.5 approximate.

	local enabled = true
	local T = state.T
	local value = 0.30*(300.0/T)^1.5

	return value, enabled
end

function material.mue_x(state)
	return material.mu_e(state)
end

function material.mue_y(state)
	return material.mu_e(state)
end

function material.mue_z(state)
	return material.mu_e(state)
end


function material.mu_h(state)
	-- Low-field hole mobility
	-- Units: m^2 V^-1 s^-1
	-- Refs: [2]
	--
	-- ~0.02 m^2/V/s (200 cm^2/V/s) at x = 0.30 (InGaAs ~300, AlInAs ~100
	-- cm^2/V/s). (300/T)^1.5 approximate.

	local enabled = true
	local T = state.T
	local value = 0.02*(300.0/T)^1.5

	return value, enabled
end

function material.muh_x(state)
	return material.mu_h(state)
end

function material.muh_y(state)
	return material.mu_h(state)
end

function material.muh_z(state)
	return material.mu_h(state)
end


function material.epsilonr(state)
	-- Relative static permittivity
	-- Dimensionless
	-- Refs: [2],[3]
	--
	-- ~13.4 at x = 0.30 (InGaAs ~13.9 -> AlInAs ~12.5).

	local enabled = true
	local value = 13.4

	return value, enabled
end


function material.free_to_free_recombination(state)
	-- Radiative recombination coefficient
	-- Units: m^3 s^-1
	-- Refs: representative (see note)
	--
	-- Direct-gap value ~1e-10 cm^3/s = 1e-16 m^3/s. Representative; refine
	-- against measured lifetimes.

	local enabled = true
	local value = 1.0e-16

	return value, enabled
end


function material.auger_Cn(state)
	-- Electron Auger recombination coefficient
	-- Units: m^6 s^-1
	-- Refs: representative (see note)
	--
	-- ~2e-28 cm^6/s = 2e-40 m^6/s at the InGaAs-rich (narrow-gap) end.
	-- Auger is a major loss mechanism in 1.55 um AlGaInAs/InGaAsP lasers
	-- and grows sharply as x decreases (gap narrows) - scale accordingly.

	local enabled = true
	local value = 2.0e-40

	return value, enabled
end


function material.auger_Cp(state)
	-- Hole Auger recombination coefficient
	-- Units: m^6 s^-1
	-- Refs: representative (see note)
	--
	-- As auger_Cn: representative 2e-28 cm^6/s = 2e-40 m^6/s.

	local enabled = true
	local value = 2.0e-40

	return value, enabled
end


function material.ss_srh_trap_energy(state)
	-- SRH trap energy relative to the middle of the band gap.
	-- Units: eV
	--
	-- Positive values are above mid-gap (towards the conduction band).
	-- Negative values are below mid-gap (towards the valence band).
	--
	-- Defect-dependent. Lattice-matched InP-based material can be very high
	-- quality; set level and density from your own data. Mid-gap default.

	local enabled = true
	local value = 0.0

	return value, enabled
end


function material.ss_srh_Nt(state)
	-- SRH trap density
	-- Units: m^-3
	--
	-- Defect-dependent placeholder; set from the intended material
	-- quality.

	local enabled = true
	local value = 1.0e21

	return value, enabled
end


function material.ss_srh_sigma_n(state)
	-- Electron capture cross section
	-- Units: m^2
	--
	-- Defect-dependent placeholder; set from measurement.

	local enabled = true
	local value = 1.0e-19

	return value, enabled
end


function material.ss_srh_sigma_p(state)
	-- Hole capture cross section
	-- Units: m^2
	--
	-- Defect-dependent placeholder; set from measurement.

	local enabled = true
	local value = 1.0e-19

	return value, enabled
end


function material.thermal_kl(state)
	-- Thermal conductivity
	-- Units: W m^-1 K^-1
	-- Refs: [2]
	--
	-- ~4.5 W/m/K at x = 0.30 - LOW, from strong mass-disorder phonon
	-- scattering in this quaternary (well below InP's ~68 or InAs's ~27
	-- W/m/K). Weakly dependent in the alloy regime; (300/T)^0.4 approximate.
	-- This low kappa contributes to self-heating in InP-based lasers.

	local enabled = true
	local T = state.T
	local value = 4.5*(300.0/T)^0.4

	return value, enabled
end


function material.heat_capacity(state)
	-- Specific heat capacity
	-- Units: J kg^-1 K^-1
	-- Refs: [3]
	--
	-- ~320 J/kg/K near 300 K (interpolated across the constituents).

	local enabled = true
	local value = 320.0

	return value, enabled
end


function material.density(state)
	-- Mass density
	-- Units: kg m^-3
	-- Refs: [3]
	--
	-- ~5300 kg/m^3 at x = 0.30 (InGaAs ~5500 -> AlInAs ~4650 kg/m^3).

	local enabled = true
	local value = 5300.0

	return value, enabled
end


function material.lattice_constant(state)
	-- Cubic lattice constant
	-- Units: m
	-- Refs: [1],[3]
	--
	-- FIXED at the InP match, a = 5.8697 A, INDEPENDENT of x (Al substitutes
	-- for Ga at constant lattice constant along the InP-matched line).
	-- Linear thermal expansion ~4.6e-6 /K (InP-like).

	local enabled = true
	local T = state.T
	local a300 = 5.8697e-10
	local expansion = 4.6e-6
	local value = a300*(1.0 + expansion*(T - 300.0))

	return value, enabled
end


function material.thermal_tau_e(state)
	-- Electron energy relaxation time towards the lattice temperature
	-- Units: s
	--
	-- Value basis: III-V family estimate
	-- Confidence: Medium
	--
	-- Reference:
	-- https://www.mdpi.com/2673-3978/3/2/16
	--
	-- Comments:
	-- Representative III-V carrier-to-lattice relaxation time. GaAs-like values
	-- are typically sub-ps to ps and field dependent.

	local enabled = true
	local value = 5.000000e-13

	return value, enabled
end


function material.thermal_tau_h(state)
	-- Hole energy relaxation time towards the lattice temperature
	-- Units: s
	--
	-- Value basis: III-V family estimate
	-- Confidence: Medium
	--
	-- Reference:
	-- https://www.mdpi.com/2673-3978/3/2/16
	--
	-- Comments:
	-- Representative III-V carrier-to-lattice relaxation time. GaAs-like values
	-- are typically sub-ps to ps and field dependent.

	local enabled = true
	local value = 5.000000e-13

	return value, enabled
end


function material.print()
	local state = {
		T = 300.0,
		x = 0.0,
		y = 0.0,
		z = 0.0,
		photon_density = 0.0,
	}

	print(string.format("Material:               %s", material.name()))
	print(string.format("Description:            %s", material.description()))
	print(string.format("Formula:                %s", material.formula()))
	print(string.format("Temperature:            %.2f K", state.T))
	print(string.format("Position:               %.6e, %.6e, %.6e m", state.x, state.y, state.z))
	print(string.format("Photon density:         %.6e m^-3", state.photon_density))

	print(string.format("Band gap:               %.6f eV", material.Eg(state)))
	print(string.format("Electron affinity:      %.6f eV", material.Xi(state)))
	print(string.format("Electron mobility:      %.6e m^2/V/s", material.mu_e(state)))
	print(string.format("Hole mobility:          %.6e m^2/V/s", material.mu_h(state)))
	print(string.format("Nc:                     %.6e m^-3", material.Nc(state)))
	print(string.format("Nv:                     %.6e m^-3", material.Nv(state)))
	print(string.format("Relative permittivity:  %.6f", material.epsilonr(state)))

	print(string.format("Radiative coeff.:       %.6e m^3/s", material.free_to_free_recombination(state)))
	print(string.format("Electron Auger coeff.:  %.6e m^6/s", material.auger_Cn(state)))
	print(string.format("Hole Auger coeff.:      %.6e m^6/s", material.auger_Cp(state)))

	print(string.format("SRH trap energy:        %.6f eV", material.ss_srh_trap_energy(state)))
	print(string.format("SRH trap density:       %.6e m^-3", material.ss_srh_Nt(state)))
	print(string.format("SRH sigma n:            %.6e m^2", material.ss_srh_sigma_n(state)))
	print(string.format("SRH sigma p:            %.6e m^2", material.ss_srh_sigma_p(state)))

	print(string.format("Electron energy relax.:  %.6e s", material.thermal_tau_e(state)))
	print(string.format("Hole energy relax.:      %.6e s", material.thermal_tau_h(state)))

	print(string.format("Thermal conductivity:   %.6e W/m/K", material.thermal_kl(state)))
	print(string.format("Heat capacity:          %.6e J/kg/K", material.heat_capacity(state)))
	print(string.format("Mass density:           %.6e kg/m^3", material.density(state)))
end

return material

5. İşlevlerin ayrıntılı açıklaması5. İşlevlerin ayrıntılı açıklaması

Bir materyal betiğindeki her fonksiyon aynı kalıbı izler: state tablosunu alır ve enabled işaretini içeren bir value değeri döndürür. Aşağıdaki alt bölümler, AlGaInAs örneğinden alınan her fonksiyon grubunu ayrıntılı olarak açıklar.Bir materyal betiğindeki her fonksiyon aynı kalıbı izler: state tablosunu alır ve enabled işaretini içeren bir value değeri döndürür. Aşağıdaki alt bölümler, AlGaInAs örneğinden alınan her fonksiyon grubunu ayrıntılı olarak açıklar.

5.1 state yapısı ve enabled bayrağı5.1 state yapısı ve enabled bayrağı

Her bir fonksiyona, değerin istendiği cihazdaki noktadaki yerel simülasyon koşullarını içeren bir state nesnesi iletilir. Lua'da bu, bir tablo olarak uygulanır; C diline aşina iseniz, bunun bir struct veya C++'ta mevcut yerel durumu içeren küçük bir sınıf/nesne olarak düşünülmesi en iyisidir. Kullanılabilir alanlar şunlardır:Her bir fonksiyona, değerin istendiği cihazdaki noktadaki yerel simülasyon koşullarını içeren bir state nesnesi iletilir. Lua'da bu, bir tablo olarak uygulanır; C diline aşina iseniz, bunun bir struct veya C++'ta mevcut yerel durumu içeren küçük bir sınıf/nesne olarak düşünülmesi en iyisidir. Kullanılabilir alanlar şunlardır:

OghmaNano, bu yerel state değerini fonksiyona sağladığı için, bir malzeme parametresi, tek bir sabit değerle sınırlı olmak yerine sıcaklık, konum veya foton yoğunluğundan hesaplanabilir. İkinci dönüş değeri olan enabled, modelin betik tarafından döndürülen değeri kullanıp kullanmayacağını kontrol eder. enabled, true ise betik değeri kullanılır; false ise bunun yerine standart düzenleyicilerde saklanan değer kullanılır. Bu, bir betiğin yalnızca değişmesi gereken parametreleri tanımlamasını ve diğer tüm parametrelerin normal sabit değerler olarak kalmasını sağlar.OghmaNano, bu yerel state değerini fonksiyona sağladığı için, bir malzeme parametresi, tek bir sabit değerle sınırlı olmak yerine sıcaklık, konum veya foton yoğunluğundan hesaplanabilir. İkinci dönüş değeri olan enabled, modelin betik tarafından döndürülen değeri kullanıp kullanmayacağını kontrol eder. enabled, true ise betik değeri kullanılır; false ise bunun yerine standart düzenleyicilerde saklanan değer kullanılır. Bu, bir betiğin yalnızca değişmesi gereken parametreleri tanımlamasını ve diğer tüm parametrelerin normal sabit değerler olarak kalmasını sağlar.

5.2 Kimlik: name, description, formula5.2 Kimlik: name, description, formula

Bu üç fonksiyon, gerçek değerler yerine açıklayıcı metinler döndürür. Bu fonksiyonlar, maddenin ne olduğunu belirtir, kısa ve anlaşılır bir açıklama sunar ve kimyasal formülünü verir.Bu üç fonksiyon, gerçek değerler yerine açıklayıcı metinler döndürür. Bu fonksiyonlar, maddenin ne olduğunu belirtir, kısa ve anlaşılır bir açıklama sunar ve kimyasal formülünü verir.

function material.name()
	local enabled = true
	return "AlGaInAs", enabled
end

function material.description()
	local enabled = true
	return "(AlxGa1-x)0.47In0.53As on InP, x = Al ~ 0.30 (direct gap)", enabled
end

function material.formula()
	local enabled = true
	return "AlGaInAs", enabled
end

5.3 Bant yapısı: Eg ve Xi5.3 Bant yapısı: Eg ve Xi

Eg, bant aralığını (eV) verirken, Xi elektron ilgisini (eV) verir. Bu iki değer birlikte iletkenlik ve değerlik bantlarının konumlarını belirler ve modelin tamamında kullanılır (bkz. Bölüm 7). AlGaInAs bant aralığı, dosyada yer alan en önemli fonksiyondur: Al oranı x'ten 300 K'deki bant aralığını hesaplar ve ardından Varshni tipi bir sıcaklık kaydırması uygular, böylece elde edilen değer state.T'e bağlı olur.Eg, bant aralığını (eV) verirken, Xi elektron ilgisini (eV) verir. Bu iki değer birlikte iletkenlik ve değerlik bantlarının konumlarını belirler ve modelin tamamında kullanılır (bkz. Bölüm 7). AlGaInAs bant aralığı, dosyada yer alan en önemli fonksiyondur: Al oranı x'ten 300 K'deki bant aralığını hesaplar ve ardından Varshni tipi bir sıcaklık kaydırması uygular, böylece elde edilen değer state.T'e bağlı olur.

function material.Eg(state)
	-- Units: eV.  Direct gap, lattice-matched to InP, in Al fraction x.
	local enabled = true
	local al_fraction = 0.30
	local x = al_fraction
	local T = state.T
	local eg_300 = 0.76 + 0.49*x + 0.20*x*x      -- 300 K value from composition
	local tshift = 4.0e-4*(90000.0/500.0 - T*T/(T + 200.0))  -- Varshni-type shift
	local value = eg_300 + tshift
	return value, enabled
end

function material.Xi(state)
	-- Electron affinity, units: eV
	local enabled = true
	local value = 4.45
	return value, enabled
end

Örnek uygulama: x = 0,30 olduğunda, 300 K sıcaklıktaki bileşim terimi Eg(300 K) ≈ 0,76 + 0,49(0,30) + 0,20(0,30)2 ≈ 0,925 eV (yaklaşık 1,34 μm) değerini verir. Çünkü Eg ifadesi state.T ifadesini gösterir; dolayısıyla cihazın sıcaklığını artırmak, Varshni terimi aracılığıyla bant aralığını otomatik olarak daraltır; bu, sabit bir değerin asla yakalayamayacağı bir durumdur.Örnek uygulama: x = 0,30 olduğunda, 300 K sıcaklıktaki bileşim terimi Eg(300 K) ≈ 0,76 + 0,49(0,30) + 0,20(0,30)2 ≈ 0,925 eV (yaklaşık 1,34 μm) değerini verir. Çünkü Eg ifadesi state.T ifadesini gösterir; dolayısıyla cihazın sıcaklığını artırmak, Varshni terimi aracılığıyla bant aralığını otomatik olarak daraltır; bu, sabit bir değerin asla yakalayamayacağı bir durumdur.

5.4 Durum yoğunluğu: Nc ve Nv5.4 Durum yoğunluğu: Nc ve Nv

Nc ve Nv, iletkenlik ve valans bantlarının etkin durum yoğunluklarını (m-3) verir. Bu örnekte, her ikisi de 300 K'de belirtilmiş ve (T/300)1.5 ile sıcaklığa göre ölçeklendirilmiştir; bu, standart parabolik bant sonucuyla uyumludur. Bu sıcaklık bağımlılığı, burada kullanılan malzeme modeline özgüdür; diğer malzemeler, uygun olduğunda farklı sıcaklık bağımlılıkları kullanabilir.Nc ve Nv, iletkenlik ve valans bantlarının etkin durum yoğunluklarını (m-3) verir. Bu örnekte, her ikisi de 300 K'de belirtilmiş ve (T/300)1.5 ile sıcaklığa göre ölçeklendirilmiştir; bu, standart parabolik bant sonucuyla uyumludur. Bu sıcaklık bağımlılığı, burada kullanılan malzeme modeline özgüdür; diğer malzemeler, uygun olduğunda farklı sıcaklık bağımlılıkları kullanabilir.

function material.Nc(state)
	local enabled = true
	local T = state.T
	local value = 4.0e23*(T/300.0)^1.5
	return value, enabled
end

function material.Nv(state)
	local enabled = true
	local T = state.T
	local value = 8.0e24*(T/300.0)^1.5
	return value, enabled
end

5.5 Hareketlilikler: mu_e, mu_h ve yönlü kısayollar5.5 Hareketlilikler: mu_e, mu_h ve yönlü kısayollar

mu_e ve mu_h, düşük alanlı elektron ve boşluk hareketliliğini (m2 V-1 s-1) verir. Bu örnekte, hareketlilikler sıcaklıkla şu şekilde ölçeklenir: (300/T)1.5. Ancak bu sıcaklık bağımlılığı, kullanılan belirli malzeme modelinin bir parçasıdır ve gerektiğinde farklı bir ilişkiyle değiştirilebilir. Örneğin, organik bir yarı iletkende hareketlilik, etkinleştirilmiş veya atlama tipi bir sıcaklık bağımlılığı kullanılarak tanımlanabilir. OghmaNano ayrıca yön bağımlı hareketlilikleri de kullanabilir, bu nedenle dosya mue_x, mue_y, mue_z ve muh_x, muh_y, muh_z değerlerini sağlar. Bu izotropik örnekte her biri basitçe aynı skaler değeri verir, ancak her yöne anizotropik bir malzeme için kendi ifadesi atanabilir.mu_e ve mu_h, düşük alanlı elektron ve boşluk hareketliliğini (m2 V-1 s-1) verir. Bu örnekte, hareketlilikler sıcaklıkla şu şekilde ölçeklenir: (300/T)1.5. Ancak bu sıcaklık bağımlılığı, kullanılan belirli malzeme modelinin bir parçasıdır ve gerektiğinde farklı bir ilişkiyle değiştirilebilir. Örneğin, organik bir yarı iletkende hareketlilik, etkinleştirilmiş veya atlama tipi bir sıcaklık bağımlılığı kullanılarak tanımlanabilir. OghmaNano ayrıca yön bağımlı hareketlilikleri de kullanabilir, bu nedenle dosya mue_x, mue_y, mue_z ve muh_x, muh_y, muh_z değerlerini sağlar. Bu izotropik örnekte her biri basitçe aynı skaler değeri verir, ancak her yöne anizotropik bir malzeme için kendi ifadesi atanabilir.

function material.mu_e(state)
	-- Low-field electron mobility, units: m^2 V^-1 s^-1
	local enabled = true
	local T = state.T
	local value = 0.30*(300.0/T)^1.5
	return value, enabled
end

function material.mue_x(state) return material.mu_e(state) end
function material.mue_y(state) return material.mu_e(state) end
function material.mue_z(state) return material.mu_e(state) end

function material.mu_h(state)
	-- Low-field hole mobility, units: m^2 V^-1 s^-1
	local enabled = true
	local T = state.T
	local value = 0.02*(300.0/T)^1.5
	return value, enabled
end

function material.muh_x(state) return material.mu_h(state) end
function material.muh_y(state) return material.mu_h(state) end
function material.muh_z(state) return material.mu_h(state) end

5.6 Dielektrik sabiti: epsilonr5.6 Dielektrik sabiti: epsilonr

epsilonr, sürüklenme-difüzyon çözümleyicisinde elektrostatik davranışını belirleyen göreli statik geçirgenliği (boyutsuz değer) döndürür.epsilonr, sürüklenme-difüzyon çözümleyicisinde elektrostatik davranışını belirleyen göreli statik geçirgenliği (boyutsuz değer) döndürür.

function material.epsilonr(state)
	-- Relative static permittivity, dimensionless
	local enabled = true
	local value = 13.4
	return value, enabled
end

5.7 Rekombinasyon: ışınımsal ve Auger süreçleri5.7 Rekombinasyon: ışınımsal ve Auger süreçleri

free_to_free_recombination, bantlar arası (radyatif) rekombinasyon katsayısını (m³ s⁻¹) verirken, auger_Cn ve auger_Cp elektron ve boşluk Auger katsayılarını (m⁶ s⁻¹) verir. Auger rekombinasyonu, dar bant aralıklı III-V cihazlarda önemli bir kayıp mekanizmasıdır ve bant aralığı daraldıkça etkisi önemli ölçüde artar; bu nedenle, daha gelişmiş bir formülde bileşim veya sıcaklığa bağlı bir ifade için doğal adaylardır.free_to_free_recombination, bantlar arası (radyatif) rekombinasyon katsayısını (m³ s⁻¹) verirken, auger_Cn ve auger_Cp elektron ve boşluk Auger katsayılarını (m⁶ s⁻¹) verir. Auger rekombinasyonu, dar bant aralıklı III-V cihazlarda önemli bir kayıp mekanizmasıdır ve bant aralığı daraldıkça etkisi önemli ölçüde artar; bu nedenle, daha gelişmiş bir formülde bileşim veya sıcaklığa bağlı bir ifade için doğal adaylardır.

function material.free_to_free_recombination(state)
	-- Radiative recombination coefficient, units: m^3 s^-1
	local enabled = true
	local value = 1.0e-16
	return value, enabled
end

function material.auger_Cn(state)
	-- Electron Auger coefficient, units: m^6 s^-1
	local enabled = true
	local value = 2.0e-40
	return value, enabled
end

function material.auger_Cp(state)
	-- Hole Auger coefficient, units: m^6 s^-1
	local enabled = true
	local value = 2.0e-40
	return value, enabled
end

5.8 SRH tuzakları5.8 SRH tuzakları

Dört adet Shockley–Read–Hall fonksiyonu, tek bir denge durumundaki tuzak seviyesini tanımlar: ss_srh_trap_energy (tuzak enerjisi, orta bant boşluğuna göre, eV; pozitif değerler iletkenlik bandına doğru), ss_srh_Nt (tuzak yoğunluğu, m-3) ve ss_srh_sigma_n / ss_srh_sigma_p (elektron ve boşluk yakalama kesit alanı, m2). Bu değerler, kusurlara ve örneğe büyük ölçüde bağlıdır; bu nedenle, örnekte verilen değerler, kendi ölçtüğünüz verilerle değiştirilmesi gereken geçici değerlerdir.Dört adet Shockley–Read–Hall fonksiyonu, tek bir denge durumundaki tuzak seviyesini tanımlar: ss_srh_trap_energy (tuzak enerjisi, orta bant boşluğuna göre, eV; pozitif değerler iletkenlik bandına doğru), ss_srh_Nt (tuzak yoğunluğu, m-3) ve ss_srh_sigma_n / ss_srh_sigma_p (elektron ve boşluk yakalama kesit alanı, m2). Bu değerler, kusurlara ve örneğe büyük ölçüde bağlıdır; bu nedenle, örnekte verilen değerler, kendi ölçtüğünüz verilerle değiştirilmesi gereken geçici değerlerdir.

function material.ss_srh_trap_energy(state)
	-- Trap energy relative to mid-gap, units: eV
	local enabled = true
	local value = 0.0
	return value, enabled
end

function material.ss_srh_Nt(state)
	-- SRH trap density, units: m^-3
	local enabled = true
	local value = 1.0e21
	return value, enabled
end

function material.ss_srh_sigma_n(state)
	-- Electron capture cross section, units: m^2
	local enabled = true
	local value = 1.0e-19
	return value, enabled
end

function material.ss_srh_sigma_p(state)
	-- Hole capture cross section, units: m^2
	local enabled = true
	local value = 1.0e-19
	return value, enabled
end

5.9 Termal ve yapısal parametreler5.9 Termal ve yapısal parametreler

Geriye kalan fiziksel özellikler, malzemenin termal ve yapısal davranışını açıklar: thermal_kl (kafes termal iletkenliği, W m-1 K-1), heat_capacity (J kg-1 K-1), density (kg m-3), lattice_constant (m, yaklaşık 300 K'de uygulanan doğrusal termal genleşme) ve taşıyıcı enerji-gevşeme süreleri thermal_tau_e / thermal_tau_h (s). thermal_kl ve lattice_constant'in state.T'u nasıl okuyarak sıcaklığa bağlı değerleri döndürdüğüne dikkat edin.Geriye kalan fiziksel özellikler, malzemenin termal ve yapısal davranışını açıklar: thermal_kl (kafes termal iletkenliği, W m-1 K-1), heat_capacity (J kg-1 K-1), density (kg m-3), lattice_constant (m, yaklaşık 300 K'de uygulanan doğrusal termal genleşme) ve taşıyıcı enerji-gevşeme süreleri thermal_tau_e / thermal_tau_h (s). thermal_kl ve lattice_constant'in state.T'u nasıl okuyarak sıcaklığa bağlı değerleri döndürdüğüne dikkat edin.

function material.thermal_kl(state)
	-- Thermal conductivity, units: W m^-1 K^-1
	local enabled = true
	local T = state.T
	local value = 4.5*(300.0/T)^0.4
	return value, enabled
end

function material.heat_capacity(state)
	-- Specific heat capacity, units: J kg^-1 K^-1
	local enabled = true
	local value = 320.0
	return value, enabled
end

function material.density(state)
	-- Mass density, units: kg m^-3
	local enabled = true
	local value = 5300.0
	return value, enabled
end

function material.lattice_constant(state)
	-- Cubic lattice constant, units: m (with thermal expansion)
	local enabled = true
	local T = state.T
	local a300 = 5.8697e-10
	local expansion = 4.6e-6
	local value = a300*(1.0 + expansion*(T - 300.0))
	return value, enabled
end

function material.thermal_tau_e(state)
	-- Electron energy relaxation time, units: s
	local enabled = true
	local value = 5.000000e-13
	return value, enabled
end

function material.thermal_tau_h(state)
	-- Hole energy relaxation time, units: s
	local enabled = true
	local value = 5.000000e-13
	return value, enabled
end

5.10 print() — kendi kendine yapabileceğiniz bir test için yardım aracı5.10 print() — kendi kendine yapabileceğiniz bir test için yardım aracı

Son olarak, print() bir temel özellikten ziyade, kullanım kolaylığı sağlayan bir fonksiyondur. Temsili bir state tablosu (300 K, başlangıç noktası, sıfır foton yoğunluğu) oluşturur ve betiğin hesapladığı her değeri yazdırır. Bu, bir betiği komut satırından veya bağımsız bir Lua yorumlayıcısında, bir simülasyonda kullanmadan önce kontrol etmek için kullanışlıdır; bu, sonuçların beklenen büyüklüklerde olup olmadığını hızlı bir şekilde doğrulamak için bir yöntemdir.Son olarak, print() bir temel özellikten ziyade, kullanım kolaylığı sağlayan bir fonksiyondur. Temsili bir state tablosu (300 K, başlangıç noktası, sıfır foton yoğunluğu) oluşturur ve betiğin hesapladığı her değeri yazdırır. Bu, bir betiği komut satırından veya bağımsız bir Lua yorumlayıcısında, bir simülasyonda kullanmadan önce kontrol etmek için kullanışlıdır; bu, sonuçların beklenen büyüklüklerde olup olmadığını hızlı bir şekilde doğrulamak için bir yöntemdir.

6. Bir simülasyonda betik kullanmak6. Bir simülasyonda betik kullanmak

Şu ana kadar yapılan tartışmalar, Materyaller veri tabanında saklanan Lua betiklerine odaklandı. Bu betiklerden birini gerçek bir cihaz simülasyonunda kullanmak için, gerekli katman için Elektriksel parametre düzenleyicisini açın. Düzenleyici iki farklı şekilde çalışabilir: ya sim.json'de saklanan normal, sabit parametre değerlerini kullanır ya da seçilen parametre değerlerini doğrudan bir Lua materyal betiğinden alır.Şu ana kadar yapılan tartışmalar, Materyaller veri tabanında saklanan Lua betiklerine odaklandı. Bu betiklerden birini gerçek bir cihaz simülasyonunda kullanmak için, gerekli katman için Elektriksel parametre düzenleyicisini açın. Düzenleyici iki farklı şekilde çalışabilir: ya sim.json'de saklanan normal, sabit parametre değerlerini kullanır ya da seçilen parametre değerlerini doğrudan bir Lua materyal betiğinden alır.

Varsayılan olarak, betik özelliği devre dışıdır ve düzenleyici normal şekilde çalışır ??. Her parametre, sim.json içinde saklanan düzenlenebilir sayısal bir değerle temsil edilir. Bu modda Lua materyal betiği kullanılmaz.Varsayılan olarak, betik özelliği devre dışıdır ve düzenleyici normal şekilde çalışır ??. Her parametre, sim.json içinde saklanan düzenlenebilir sayısal bir değerle temsil edilir. Bu modda Lua materyal betiği kullanılmaz.

"Script" düğmesine tıklamak, materyal betiği oluşturmayı etkinleştirir ??. Betik tarafından sağlanan parametreler daha sonra düzenleyicide "Değer için betiğe bakın" ifadesiyle değiştirilir. İlgili Lua fonksiyonları devre dışı bırakılmış olan parametreler, sim.json'de saklanan sabit değerleri kullanmaya devam eder. Bu, bir betiğin yalnızca betik oluşturulması gereken özellikleri kontrol etmesini ve diğer tüm parametrelerin değişmeden kalmasını sağlar."Script" düğmesine tıklamak, materyal betiği oluşturmayı etkinleştirir ??. Betik tarafından sağlanan parametreler daha sonra düzenleyicide "Değer için betiğe bakın" ifadesiyle değiştirilir. İlgili Lua fonksiyonları devre dışı bırakılmış olan parametreler, sim.json'de saklanan sabit değerleri kullanmaya devam eder. Bu, bir betiğin yalnızca betik oluşturulması gereken özellikleri kontrol etmesini ve diğer tüm parametrelerin değişmeden kalmasını sağlar.

OghmaNano Electrical parameter editor with the Script button off, showing ordinary fixed numeric values typed into each box (electron mobility 0.85, hole mobility 0.04, Xi 4.05, Eg 1.42, and so on) stored in sim.json
Betik devre dışı: sabit değerler doğrudan sim.json içinde saklanır ve betik kullanılmaz.Betik devre dışı: sabit değerler doğrudan sim.json içinde saklanır ve betik kullanılmaz.
OghmaNano Electrical parameter editor with the Script button depressed, showing Parameters and Code editor tabs and every parameter box greyed out reading See script for value
Betikteki ayarlar etkinleştirildi; artık bu ayarların değerleri "Değer için betiğe bakın" şeklinde gösteriliyor ve Lua betiği tarafından hesaplanıyor.Betikteki ayarlar etkinleştirildi; artık bu ayarların değerleri "Değer için betiğe bakın" şeklinde gösteriliyor ve Lua betiği tarafından hesaplanıyor.
OghmaNano Electrical parameter editor Code editor tab showing the GaAs.lua material script source, with material.name, material.description and material.formula functions visible
Elektriksel parametre düzenleyicisindeki Kod düzenleme sekmesi, etkin malzeme komut dosyasını (GaAs.lua) gösterir.Elektriksel parametre düzenleyicisindeki Kod düzenleme sekmesi, etkin malzeme komut dosyasını (GaAs.lua) gösterir.
OghmaNano Electrical parameter editor showing the Script dropdown menu with two options: Import material script and Populate json from script
Komut Dosyası menüsü: Materyal komut dosyasını içe aktar, bir Lua dosyası seçer; Komut dosyasından JSON oluştur, değerlerini sim.json'e yazar.Komut Dosyası menüsü: Materyal komut dosyasını içe aktar, bir Lua dosyası seçer; Komut dosyasından JSON oluştur, değerlerini sim.json'e yazar.
OghmaNano confirmation dialog listing the values that would be updated when populating the JSON from GaAs.lua, showing each parameter changing from its old to its new value
sim.json alanına değerler girilmeden önce görüntülenen onay iletişim kutusu, değişecek her bir değeri listeler.sim.json alanına değerler girilmeden önce görüntülenen onay iletişim kutusu, değişecek her bir değeri listeler.

Betik oluşturma özelliği etkinleştirildiğinde, Parametreler sekmesinin yanında bir Kod Düzenleyici sekmesi görünür ??. Bu sayede Lua materyal betiğini doğrudan simülasyon içinde inceleyebilir ve düzenleyebilirsiniz; bunun için Materyaller veri tabanına geri dönmenize gerek kalmaz.Betik oluşturma özelliği etkinleştirildiğinde, Parametreler sekmesinin yanında bir Kod Düzenleyici sekmesi görünür ??. Bu sayede Lua materyal betiğini doğrudan simülasyon içinde inceleyebilir ve düzenleyebilirsiniz; bunun için Materyaller veri tabanına geri dönmenize gerek kalmaz.

6.1 Bir senaryo seçme veya senaryonun değerlerini simülasyona kopyalama6.1 Bir senaryo seçme veya senaryonun değerlerini simülasyona kopyalama

"Script" düğmesinin yanındaki küçük menü, bir materyal betiğini kullanmanın iki farklı yolunu sunar ??:"Script" düğmesinin yanındaki küçük menü, bir materyal betiğini kullanmanın iki farklı yolunu sunar ??:

Bu iki yaklaşım farklı amaçlara hizmet eder. Senaryo doğrudan kullanıldığında, işlevleri simülasyon sırasında aktif kalır. Bu, bir parametrenin sıcaklık, konum, bileşim veya foton yoğunluğu gibi niceliklere göre değişmesi gerektiğinde kullanılması gereken uygun yöntemdir.Bu iki yaklaşım farklı amaçlara hizmet eder. Senaryo doğrudan kullanıldığında, işlevleri simülasyon sırasında aktif kalır. Bu, bir parametrenin sıcaklık, konum, bileşim veya foton yoğunluğu gibi niceliklere göre değişmesi gerektiğinde kullanılması gereken uygun yöntemdir.

OghmaNano Optical simulation editor showing the generation rate profile overlaid on a band-energy diagram for an ITO / PEDOT:PSS / P3HT:PCBM / Al device, with the labelled energy levels (-4.7, -5.1, -3.8, -4.9, -3.5, -8.3 eV) taken from the material scripts
Bant diyagramı/üretim hızı görüntüleyici. Etiketlenmiş enerji seviyeleri, malzeme betiklerinden alınır; bu nedenle Eg ve Xi'deki değişiklikler burada otomatik olarak yansıtılır.Bant diyagramı/üretim hızı görüntüleyici. Etiketlenmiş enerji seviyeleri, malzeme betiklerinden alınır; bu nedenle Eg ve Xi'deki değişiklikler burada otomatik olarak yansıtılır.

Alternatif olarak, bir betiğin iyi tanımlanmış bir başlangıç değerleri kümesi sağlamasını, ancak betiğin aktif kalmasına gerek olmaması durumunda, "Betiği kullanarak JSON'u doldur" özelliği kullanılabilir. OghmaNano, betiği çalıştırır, elde edilen sayıları standart parametre alanlarına yazar ve bu değerler daha sonra normal şekilde manuel olarak düzenlenebilir.Alternatif olarak, bir betiğin iyi tanımlanmış bir başlangıç değerleri kümesi sağlamasını, ancak betiğin aktif kalmasına gerek olmaması durumunda, "Betiği kullanarak JSON'u doldur" özelliği kullanılabilir. OghmaNano, betiği çalıştırır, elde edilen sayıları standart parametre alanlarına yazar ve bu değerler daha sonra normal şekilde manuel olarak düzenlenebilir.

sim.json alanına veri girişi yapılması, simülasyonda halihazırda bulunan değerlerin üzerine yazılmasına neden olabileceğinden, OghmaNano öncelikle bir onay iletişim kutusu ?? görüntüler. Bu iletişim kutusunda kullanılan komut dosyası listelenir ve değişecek her bir parametre, mevcut ve önerilen değeriyle birlikte gösterilir. İşlem onaylanana kadar hiçbir değer değiştirilmez.sim.json alanına veri girişi yapılması, simülasyonda halihazırda bulunan değerlerin üzerine yazılmasına neden olabileceğinden, OghmaNano öncelikle bir onay iletişim kutusu ?? görüntüler. Bu iletişim kutusunda kullanılan komut dosyası listelenir ve değişecek her bir parametre, mevcut ve önerilen değeriyle birlikte gösterilir. İşlem onaylanana kadar hiçbir değer değiştirilmez.

Aynı materyal betiğini kullanmanın iki yolu vardır: Simülasyon sırasında parametrelerin değişmesi gerektiğinde betiği aktif tutun veya, daha sonra normal grafik arayüzü aracılığıyla düzenlenebilen sabit bir başlangıç değerleri kümesi elde etmek için betikten JSON verisi oluşturma yöntemini kullanın.Aynı materyal betiğini kullanmanın iki yolu vardır: Simülasyon sırasında parametrelerin değişmesi gerektiğinde betiği aktif tutun veya, daha sonra normal grafik arayüzü aracılığıyla düzenlenebilen sabit bir başlangıç değerleri kümesi elde etmek için betikten JSON verisi oluşturma yöntemini kullanın.

7. Senaryodaki değerlerin nerede kullanıldığı7. Senaryodaki değerlerin nerede kullanıldığı

Bir materyal betiği tarafından üretilen değerler, yalnızca elektrik çözümlemesinde değil, modelin tamamında kullanılır. Eg ve Xi gibi nicelikler, ihtiyaç duyulan her yerde bant kenarı konumlarını belirler. Örneğin, bant diyagramı/üretim oranı görüntüleyicisinde çizilen enerji seviyeleri, bu değerlerden ?? alınır. Bu nedenle, bir betikte bant aralığının veya afinitenin düzenlenmesi, otomatik olarak bant diyagramına, optik modele ve elektrik çözümlemesine yansır.Bir materyal betiği tarafından üretilen değerler, yalnızca elektrik çözümlemesinde değil, modelin tamamında kullanılır. Eg ve Xi gibi nicelikler, ihtiyaç duyulan her yerde bant kenarı konumlarını belirler. Örneğin, bant diyagramı/üretim oranı görüntüleyicisinde çizilen enerji seviyeleri, bu değerlerden ?? alınır. Bu nedenle, bir betikte bant aralığının veya afinitenin düzenlenmesi, otomatik olarak bant diyagramına, optik modele ve elektrik çözümlemesine yansır.

Sıkça karşılaşılan hatalarSıkça karşılaşılan hatalar

Özet ve sonraki adımlarÖzet ve sonraki adımlar

Sonraki adım: Veritabanının nasıl saklandığına dair Bölüm C'ye geri dönün veya Optik veritabanı ve Daha fazla materyal indirme bölümlerine bakın.Sonraki adım: Veritabanının nasıl saklandığına dair Bölüm C'ye geri dönün veya Optik veritabanı ve Daha fazla materyal indirme bölümlerine bakın.