Doğrulama
Doğru görünen bir simülatör, doğru olan bir simülatörle aynı şey değildir. Rust çekirdeğinde, çözücüyü analitik sonuçlarla ya da bir referans çalışmayla karşılaştıran bir fizik testleri kümesi var. Her commit’te çalışırlar (rust-core/ içinde cargo test --release).
| Test | Beklenen | Ölçülen |
|---|---|---|
| Soğurucu sınır: 10 hücrelik CPML yanındaki bir darbe, duvarlarını göremeyecek kadar büyük bir alanla karşılaştırılır | olabildiğince küçük | tepenin 4,3 × 10−5’i (−87 dB), TM ve TE |
| Boş alanda TF/SF düzlem dalgası: saçılan taraftaki alan | 0 | dört yönde de gelen genliğin 1,8 × 10−4’ünün altında |
| Camdan dik gelişte yansıma, n = 1,5 | |r| = 0,200 | 0,203 (TM), 0,203 (TE) |
| Silisyumdan yansıma, n = 3,48 | |r| = 0,553 | 0,558 |
| Mükemmel iletkenden yansıma | 1,000 | 0,999 |
| 600 nm’de Drude gümüşünden yansıma | yaklaşık 0,98–1,0 | 0,999 (TM), 1,001 (TE) |
| Kaynak durduktan sonra kapalı ayna kutudaki enerji | sabit | 4000 adımda %1’den az kayma |
| Soğurucu duvarlarla 2000 adım sonra enerji | → 0 | başlangıç değerinin 10−13’ü |
| Sürekli kaynağın yanındaki probun spektrumu | kaynak frekansında tepe | bir FFT kutusu içinde |
Yansıma ölçümlerinde yarı sonsuz bir ortama sürekli bir düzlem dalga gönderilir, geçici rejimin bitmesi beklenir ve yansıyan dalganın genliği TF/SF çizgisinin, gelen dalganın bulunmadığı saçılan alan tarafında okunur.
Cam ve silisyum yansımalarındaki küçük fazlalık, dalga boyu başına 30–60 hücredeki sayısal dağılmadan ve basamaklı ara yüzeyden kaynaklanır; ızgara inceldikçe ikisi de küçülür.
Dayanıklılık testleri
Bölüm başlığı “Dayanıklılık testleri”Aynı test kümesi API’ye geçersiz girdiler de verir: negatif boyutlar, NaN ve sonsuz koordinatlar, tamamen ızgaranın dışında kalan şekiller, bilinmeyen malzeme ve kaynak kimlikleri. Çözücü çökmemeli ve ardından kararlı kalmalıdır. Bu testlerden biri, PhotonLab’ın eski sürümünün negatif koordinatlı bir dikdörtgen istendiğinde tüm ızgarayı boyaması yüzünden var.
Web tarafında sahne doğrulayıcının, paylaşım bağlantısı gidiş-dönüşlerinin, birim dönüşümlerinin ve çeviri dosyalarının kendi testleri vardır (npm test).