@jjlmoya/utils-science 1.36.0 → 1.37.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. package/package.json +1 -1
  2. package/src/category/index.ts +2 -1
  3. package/src/entries.ts +3 -1
  4. package/src/index.ts +1 -0
  5. package/src/tests/locale_completeness.test.ts +2 -2
  6. package/src/tests/tool_validation.test.ts +2 -2
  7. package/src/tool/double-slit-decoherence/bibliography.astro +14 -0
  8. package/src/tool/double-slit-decoherence/bibliography.ts +12 -0
  9. package/src/tool/double-slit-decoherence/component.astro +235 -0
  10. package/src/tool/double-slit-decoherence/double-slit-decoherence-simulator.css +344 -0
  11. package/src/tool/double-slit-decoherence/entry.ts +26 -0
  12. package/src/tool/double-slit-decoherence/i18n/de.ts +181 -0
  13. package/src/tool/double-slit-decoherence/i18n/en.ts +181 -0
  14. package/src/tool/double-slit-decoherence/i18n/es.ts +181 -0
  15. package/src/tool/double-slit-decoherence/i18n/fr.ts +181 -0
  16. package/src/tool/double-slit-decoherence/i18n/id.ts +181 -0
  17. package/src/tool/double-slit-decoherence/i18n/it.ts +181 -0
  18. package/src/tool/double-slit-decoherence/i18n/ja.ts +181 -0
  19. package/src/tool/double-slit-decoherence/i18n/ko.ts +181 -0
  20. package/src/tool/double-slit-decoherence/i18n/nl.ts +181 -0
  21. package/src/tool/double-slit-decoherence/i18n/pl.ts +181 -0
  22. package/src/tool/double-slit-decoherence/i18n/pt.ts +181 -0
  23. package/src/tool/double-slit-decoherence/i18n/ru.ts +181 -0
  24. package/src/tool/double-slit-decoherence/i18n/sv.ts +181 -0
  25. package/src/tool/double-slit-decoherence/i18n/tr.ts +181 -0
  26. package/src/tool/double-slit-decoherence/i18n/zh.ts +181 -0
  27. package/src/tool/double-slit-decoherence/index.ts +11 -0
  28. package/src/tool/double-slit-decoherence/logic.ts +77 -0
  29. package/src/tool/double-slit-decoherence/seo.astro +15 -0
  30. package/src/tools.ts +2 -0
@@ -0,0 +1,181 @@
1
+ import { bibliography } from '../bibliography';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+
4
+ const slug = 'dubbelspalt-dekoherens-simulator';
5
+ const title = 'Dubbelspaltexperiment och Dekohaerens Simulator';
6
+ const description = 'Slag pa och av vilken-vag-detektorer for att se kvantinterferens blekna till tva partikelband i en visuell dubbelspaltsimulator.';
7
+
8
+ const howTo = [
9
+ {
10
+ name: 'Borja med detektorn avstangd',
11
+ text: 'Lamna vilken-vag-detektorn inaktiverad och se hur skarmen bildar ljusa och morka interferensfransar fran koherenta sannolikhetsamplituder.',
12
+ },
13
+ {
14
+ name: 'Oka detektorstyrkan',
15
+ text: 'Hoja detektorkontrollen for att introducera vilken-vag-information. Nar detektorn blir starkare minskar koherensen och fransarna forsvinner.',
16
+ },
17
+ {
18
+ name: 'Andra spaltgeometrin',
19
+ text: 'Justera spaltavstand och spaltbredd for att se hur geometrin forandrar fransavstandet, enveloppbredden och den slutliga distributionen pa skarmen.',
20
+ },
21
+ {
22
+ name: 'Las de levande matvarden',
23
+ text: 'Anvand fransynlighet, vilken-vag-information och koherens for att koppla det visuella monstret till kvantmatningshistorien.',
24
+ },
25
+ ];
26
+
27
+ const faq = [
28
+ {
29
+ question: 'Varfor andras monstret nar detektorer slas pa?',
30
+ answer: 'En detektor som kan avsloja vilken spalt partikeln anvande forstor fasrelationen mellan de tva alternativen. Utan den koherensen interfererar de tva sannolikhetsvagarna inte langre och skarmen narmar sig tva breda partikelband.',
31
+ },
32
+ {
33
+ question: 'Betyder denna simulator att medvetandet kollapsar vagfunktionen?',
34
+ answer: 'Nej. Simulatorn fokuserar pa fysisk vilken-vag-information och dekoherens. En detektor, miljon eller varje interaktion som gorskillnaden pa vagen kan undertrycka interferens utan att krava en medveten observator.',
35
+ },
36
+ {
37
+ question: 'Vad ar fransynlighet?',
38
+ answer: 'Fransynlighet jamfor ljusa och morka omraden pa skarmen. Hog synlighet innebar starkt interferenskontrast. Lag synlighet innebar att de morka luckorna har fyllts i och monstret beter sig mer som tva oberoende partikelstrommar.',
39
+ },
40
+ {
41
+ question: 'Ar detta en fullstandig kvantmekaniklosare?',
42
+ answer: 'Nej. Det ar en pedagogisk modell som blandar ett dubbelspalts interferensenvelopp med en dekoherens-kontroll. Den ar byggd for att forklara mateffekten visuellt, inte for att ersatta en Schrodingerekvationssimulering for en verklig apparat.',
43
+ },
44
+ {
45
+ question: 'Varfor paverkar spaltavstandet fransavstandet?',
46
+ answer: 'Storre avstand skapar en snabbare fasskillnad over skarmen, sa ljusa och morka band kommer narmare varandra. Mindre avstand sp rider ut fransarna langre ifran varandra.',
47
+ },
48
+ ];
49
+
50
+ export const content: ToolLocaleContent = {
51
+ slug,
52
+ title,
53
+ description,
54
+ ui: {
55
+ stage: 'Dubbelspaltapparat',
56
+ controls: 'Dubbelspaltkontroller',
57
+ results: 'Dubbelspaltresultat',
58
+ kicker: 'Matningskontroll',
59
+ detectorToggle: 'Aktivera vilken-vag-detektor',
60
+ detectorStrength: 'Detektorstyrka',
61
+ slitSeparation: 'Spaltavstand',
62
+ slitWidth: 'Spaltbredd',
63
+ unobserved: 'Oobserverad',
64
+ observed: 'Observerad',
65
+ waveMode: 'Interferens',
66
+ particleMode: 'Partikelband',
67
+ fringeVisibility: 'Fransynlighet',
68
+ whichPath: 'Vilken-vag-info',
69
+ coherence: 'Koherens',
70
+ readoutNote: 'Interferens overlever nar bada vagarna forblir osarskiljbara. Matning gor vaginformation tillganglig och skarmen forlorar sina morka fransar.',
71
+ },
72
+ seo: [
73
+ {
74
+ type: 'title',
75
+ text: 'Dubbelspaltexperiment simulator med dekoherens och vilken-vag-detektion',
76
+ level: 2,
77
+ },
78
+ {
79
+ type: 'paragraph',
80
+ html: 'Denna dubbelspaltsimulator forvandlar det klassiska kvantexperimentet till en interaktiv visuell modell. Med detektorn avstangd visar skarmen ett interferensmonster: ljusa och morka band uppstar eftersom de tva mojliga vagarna forblir koherenta. Nar en vilken-vag-detektor lags till, forvandlas monstret gradvis till tva breda partikelband eftersom vagalternativen blir sarskiljbara.',
81
+ },
82
+ {
83
+ type: 'paragraph',
84
+ html: 'Verkyget ar utformat for larande som soker en tydlig forklaring till varfor observation forandrar dubbelspaltresultatet. Det undviker den vaga frasen "observatoren forandrar verkligheten" och fokuserar istallet pa den fysiskt anvandbara iden: interferens kraver osarskiljbara alternativ, medan matning och miljoomfltning tar bort fasrelationen som behovs for fransar.',
85
+ },
86
+ {
87
+ type: 'title',
88
+ text: 'Vad dubbelspaltexperimentet demonstrerar',
89
+ level: 3,
90
+ },
91
+ {
92
+ type: 'paragraph',
93
+ html: 'I den oobserverade uppstallningen beskrivs ett enda kvantobjekt av sannolikhetsamplituder kopplade till bada spalterna. Dessa amplituder adderas med fas. Pa vissa positioner pa skarmen forstarker de varandra och skapar ljusa band; pa andra positioner tar de ut varandra och skapar morka band. Den vaxlande strukturen ar kannedomen for interferens.',
94
+ },
95
+ {
96
+ type: 'paragraph',
97
+ html: 'Om en detektor registrerar vilken spalt som anvandes upphor alternativen att vara osarskiljbara. Skarmen tar inte langre emot en koherent summa av amplituder. Den tar emot en blandning av tva vagbetingade utfall, sa de morka interferensluckorna fylls i och resultatet ser ut som partiklar som gar genom den ena eller den andra spalten.',
98
+ },
99
+ {
100
+ type: 'title',
101
+ text: 'Hur man laser simulatorn',
102
+ level: 3,
103
+ },
104
+ {
105
+ type: 'table',
106
+ headers: ['Kontroll eller matvarde', 'Vad den andra', 'Vad du ska titta efter'],
107
+ rows: [
108
+ ['Detektorstyrka', 'Hur mycket vilken-vag-information som ar tillganglig', 'Hogre varden minskar fransynligheten och forstarker tvabands-partikelmonstret.'],
109
+ ['Spaltavstand', 'Avstandet mellan de tva oppningarna', 'Storre avstand gor interferensbanden tatre pa skarmen.'],
110
+ ['Spaltbredd', 'Storleken pa varje oppning', 'Bredare spalter smalnar av diffraktionsenveloppen och omformar den overgripande ljusstyrkan.'],
111
+ ['Fransynlighet', 'Kontrast mellan ljusa och morka skarmomraden', 'Ett hogt tal betyder att koherent interferens fortfarande ar synlig.'],
112
+ ['Koherens', 'Hur mycket fasrelation som aterstar mellan vagarna', 'Koherensen sjunker nar detektorn gor vagarna sarskiljbara.'],
113
+ ],
114
+ },
115
+ {
116
+ type: 'title',
117
+ text: 'Dekoherens utan mystik',
118
+ level: 3,
119
+ },
120
+ {
121
+ type: 'paragraph',
122
+ html: 'Dekoherens ar forlusten av anvandbar fas-koherens nar ett kvantsystem blir korrelerat med en detektor eller miljo. I ett dubbelspaltexperiment kan den korrelationen bara vilken-vag-information. Nar vagen val ar registrerad i princip, aven om ingen laser registreringen, undertrycks interferensmonstret.',
123
+ },
124
+ {
125
+ type: 'paragraph',
126
+ html: 'Denna skillnad ar viktig eftersom manga forklaringar overdriver rollen av mannsklig observation. Den viktiga fysiken ar inte syn eller medvetande; det ar om experimentuppstallningen bevarar eller forstor osarskiljbarheten av de alternativ som annars skulle interferera.',
127
+ },
128
+ {
129
+ type: 'title',
130
+ text: 'Begransningar av denna pedagogiska modell',
131
+ level: 3,
132
+ },
133
+ {
134
+ type: 'paragraph',
135
+ html: 'Simulatorn anvander ett kompakt optiskt dubbelspaltsmonster och kombinerar det med en detektorstyrkemodell for dekoherens. Den ar utmarkt for intuition, klassrumsdemonstrationer och konceptuell repetition, men den ar inte en numerisk losning av en fullstandig kvantapparat med detektor Hilbert-rum, bruskallor eller laboratoriekalibrering.',
136
+ },
137
+ {
138
+ type: 'list',
139
+ items: [
140
+ '<strong>Anvand den for att forsta koncept:</strong> interferens, vilken-vag-information, koherens och matning.',
141
+ '<strong>Anvand den inte for experimentell design:</strong> verkliga dubbelspaltexperiment kraver precisa berakningar av vaglangd, oppning, detektor och propagation.',
142
+ '<strong>Fokusera pa trenden:</strong> nar sarskiljbarheten okar, minskar interferenskontrasten.',
143
+ ],
144
+ },
145
+ ],
146
+ faq,
147
+ bibliography,
148
+ howTo,
149
+ schemas: [
150
+ {
151
+ '@context': 'https://schema.org',
152
+ '@type': 'SoftwareApplication',
153
+ name: title,
154
+ description,
155
+ applicationCategory: 'ScientificApplication',
156
+ operatingSystem: 'Any',
157
+ },
158
+ {
159
+ '@context': 'https://schema.org',
160
+ '@type': 'FAQPage',
161
+ mainEntity: faq.map((item) => ({
162
+ '@type': 'Question',
163
+ name: item.question,
164
+ acceptedAnswer: {
165
+ '@type': 'Answer',
166
+ text: item.answer,
167
+ },
168
+ })),
169
+ },
170
+ {
171
+ '@context': 'https://schema.org',
172
+ '@type': 'HowTo',
173
+ name: title,
174
+ step: howTo.map((step) => ({
175
+ '@type': 'HowToStep',
176
+ name: step.name,
177
+ text: step.text,
178
+ })),
179
+ },
180
+ ],
181
+ };
@@ -0,0 +1,181 @@
1
+ import { bibliography } from '../bibliography';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+
4
+ const slug = 'cift-yarik-dekoherans-simulatoru';
5
+ const title = 'Cift Yarik Deneyi ve Dekoherans Simulatoru';
6
+ const description = 'Hangi-yol dedektorlerini acip kapatarak kuantum girisiminin iki parcacik bandina nasil donustugunu gorsel bir cift yarik simulatorunde izleyin.';
7
+
8
+ const howTo = [
9
+ {
10
+ name: 'Dedektoru kapali halde baslayin',
11
+ text: 'Hangi-yol dedektorunu devre disi birakin ve ekranin, koherent olasilik genliklerinden aydinlik ve karanlik girisim sacaklari olusturmasini izleyin.',
12
+ },
13
+ {
14
+ name: 'Dedektor guclendirmesini artirin',
15
+ text: 'Hangi-yol bilgisi eklemek icin dedektor kontrolunu yukseltin. Dedektor guclendikce koherens duser ve sacaklar kaybolur.',
16
+ },
17
+ {
18
+ name: 'Yarik geometrisini degistirin',
19
+ text: 'Yarik araligini ve yarik genisligini ayarlayarak geometrinin sacak araligini, zarf genisligini ve ekrandaki son dagilimi nasil degistirdigini gorun.',
20
+ },
21
+ {
22
+ name: 'Canli metrikleri okuyun',
23
+ text: 'Sacak gorunurlugu, hangi-yol bilgisi ve koherens kullanarak gorsel deseni kuantum olcum hikayesine baglayin.',
24
+ },
25
+ ];
26
+
27
+ const faq = [
28
+ {
29
+ question: 'Dedektorler acildiginda desen neden degisiyor?',
30
+ answer: 'Parcacigin hangi yarigi kullandigini ortaya cikarabilen bir dedektor, iki alternatif arasindaki faz iliskisini yok eder. Bu koherens olmadan, iki olasi yol cubugu daha fazla girisim yapmaz ve ekran iki genis parcacik bandina yaklasir.',
31
+ },
32
+ {
33
+ question: 'Bu simulator bilincin dalga fonksiyonunu cokerttigi anlamina mi geliyor?',
34
+ answer: 'Hayir. Simulator fiziksel hangi-yol bilgisi ve dekoheransa odaklanir. Bir dedektor, cevre veya yolu ayirt edilebilir kilan herhangi bir etkilesim, bilincli bir gozlemci gerektirmeden girisimi bastirabilir.',
35
+ },
36
+ {
37
+ question: 'Sacak gorunurlugu nedir?',
38
+ answer: 'Sacak gorunurlugu, ekrandaki aydinlik ve karanlik bolgeleri karsilastirir. Yuksek gorunurluk guclu girisim kontrasti anlamina gelir. Dusuk gorunurluk, karanlik bosluklarin doldugu ve desenin daha cok iki bagimsiz parcacik akisi gibi davrandigi anlamina gelir.',
39
+ },
40
+ {
41
+ question: 'Bu tam bir kuantum mekanigi cozucu mu?',
42
+ answer: 'Hayir. Bir cift yarik girisim zarfi ile dekoherans kontrolunu birlestiren egitimsel bir modeldir. Olcum etkisini gorsel olarak aciklamak icin yapilmistir, gercek bir duzenek icin Schrodinger denklemi simulatorsinin yerini almak icin degil.',
43
+ },
44
+ {
45
+ question: 'Yarik araligi neden sacak araligini etkiliyor?',
46
+ answer: 'Daha genis aralik, ekran boyunca daha hizli bir faz farki olusturur, bu nedenle aydinlik ve karanlik bantlar birbirine yaklasir. Daha kucuk aralik, sacaklari daha genis yayar.',
47
+ },
48
+ ];
49
+
50
+ export const content: ToolLocaleContent = {
51
+ slug,
52
+ title,
53
+ description,
54
+ ui: {
55
+ stage: 'Cift yarik duzenegi',
56
+ controls: 'Cift yarik kontrolleri',
57
+ results: 'Cift yarik sonuclari',
58
+ kicker: 'Olcum kontrolu',
59
+ detectorToggle: 'Hangi-yol dedektorunu etkinlestir',
60
+ detectorStrength: 'Dedektor guclendirmesi',
61
+ slitSeparation: 'Yarik araligi',
62
+ slitWidth: 'Yarik genisligi',
63
+ unobserved: 'Gozlemlenmemis',
64
+ observed: 'Gozlemlenmis',
65
+ waveMode: 'Girisim',
66
+ particleMode: 'Parcacik bantlari',
67
+ fringeVisibility: 'Sacak gorunurlugu',
68
+ whichPath: 'Hangi-yol bilgisi',
69
+ coherence: 'Koherens',
70
+ readoutNote: 'Her iki yol da ayirt edilemez kaldiginda girisim hayatta kalir. Olcum, yol bilgisini kullanilabilir hale getirir ve ekran karanlik sacaklarini kaybeder.',
71
+ },
72
+ seo: [
73
+ {
74
+ type: 'title',
75
+ text: 'Dekoherans ve hangi-yol detektoru ile cift yarik deneyi simulatoru',
76
+ level: 2,
77
+ },
78
+ {
79
+ type: 'paragraph',
80
+ html: 'Bu cift yarik simulatoru, klasik kuantum deneyini interaktif bir gorsel modele donusturur. Dedektor kapaliyken ekran bir girisim deseni gosterir: iki olasi yol koherent kaldigi icin aydinlik ve karanlik bantlar olusur. Hangi-yol dedektoru eklendiginde, yol alternatifleri ayirt edilebilir hale geldigi icin desen yavas yavas iki genis parcacik bandina donusur.',
81
+ },
82
+ {
83
+ type: 'paragraph',
84
+ html: 'Arac, gozlemin cift yarik sonucunu neden degistirdigine dair net bir aciklama arayan ogrenciler icin tasarlanmistir. "Gozlemci gerceklgi degistirir" gibi belirsiz ifadelerden kacinir ve bunun yerine fiziksel olarak yararli olan fikre odaklanir: girisim, ayirt edilemez alternatifler gerektirirken, olcum ve cevre dolanikligi sacaklar icin gerekli faz iliskisini ortadan kaldirir.',
85
+ },
86
+ {
87
+ type: 'title',
88
+ text: 'Cift yarik deneyinin gosterdigi',
89
+ level: 3,
90
+ },
91
+ {
92
+ type: 'paragraph',
93
+ html: 'Gozlemlenmemis duzeneksel kurulumda, tek bir kuantum nesnesi her iki yarikla iliskili olasilik genlikleriyle tanimlanir. Bu genlikler faz ile toplanir. Ekranin bazi konumlarinda birbirlerini guclendirerek aydinlik bantlar olustururlar; diger konumlarda birbirlerini iptal ederek karanlik bantlar olustururlar. Bu degisimli yapi, girisimin imzasidir.',
94
+ },
95
+ {
96
+ type: 'paragraph',
97
+ html: 'Bir dedektor hangi yarigin kullanildigini kaydederse, alternatifler ayirt edilemez olmaktan cikar. Ekran artik koherent bir genlik toplami almaz. Yol kosullu iki sonucun bir karisimini alir, bu nedenle karanlik girisim bosluklari dolar ve sonuc parcanin bir veya diger yariktan geciyormus gibi gorunur.',
98
+ },
99
+ {
100
+ type: 'title',
101
+ text: 'Simulator nasil okunur',
102
+ level: 3,
103
+ },
104
+ {
105
+ type: 'table',
106
+ headers: ['Kontrol veya metrik', 'Neyi degistirir', 'Nelere dikkat edilmeli'],
107
+ rows: [
108
+ ['Dedektor guclendirmesi', 'Ne kadar hangi-yol bilgisi mevcut', 'Daha yuksek degerler sacak gorunurlugunu azaltir ve iki bantli parcacik desenini artirir.'],
109
+ ['Yarik araligi', 'Iki aciklik arasindaki mesafe', 'Genis aralik, girisim bantlarini ekranda daha sik hale getirir.'],
110
+ ['Yarik genisligi', 'Her acikligin boyutu', 'Daha genis yariklar kirinim zarfini daraltir ve genel parlakligi yeniden sekillendirir.'],
111
+ ['Sacak gorunurlugu', 'Ekranin aydinlik ve karanlik bolgeleri arasindaki kontrast', 'Yuksek bir sayi, koherent girisimin hala gorunur oldugu anlamina gelir.'],
112
+ ['Koherens', 'Yollar arasinda ne kadar faz iliskisi kalir', 'Dedektor yollari ayirt edilebilir kildikca koherens duser.'],
113
+ ],
114
+ },
115
+ {
116
+ type: 'title',
117
+ text: 'Gizemcilik olmadan dekoherans',
118
+ level: 3,
119
+ },
120
+ {
121
+ type: 'paragraph',
122
+ html: 'Dekoherans, bir kuantum sisteminin bir dedektor veya cevre ile iliskilendirildiginde kullanilabilir faz koherensinin kaybidir. Bir cift yarik deneyinde bu iliski, hangi-yol bilgisi tasiyabilir. Yol prensipte kaydedildiginde, kimse kaydi okumasa bile, girisim deseni bastirilir.',
123
+ },
124
+ {
125
+ type: 'paragraph',
126
+ html: 'Bu ayrim onemlidir cunku bircok aciklama insan gozleminin rolunu abartir. Onemli fizik, gorme veya bilinc degildir; onemli olan, deney duzeneginin aksi takdirde girisim yapacak alternatiflerin ayirt edilemezligini koruyup korumadigidir.',
127
+ },
128
+ {
129
+ type: 'title',
130
+ text: 'Bu egitim modelinin sinirlari',
131
+ level: 3,
132
+ },
133
+ {
134
+ type: 'paragraph',
135
+ html: 'Simulator, kompakt bir optik tarzi cift yarik deseni kullanir ve bunu dekoherans icin bir dedektor guclendirmesi modeliyle birlestirir. Sezgi, sinif gosterimleri ve kavramsal tekrar icin mukemmeldir, ancak dedektor Hilbert uzaylari, gurultu kaynaklari veya laboratuvar kalibrasyonuna sahip tam bir kuantum duzeneginin sayisal cozumu degildir.',
136
+ },
137
+ {
138
+ type: 'list',
139
+ items: [
140
+ '<strong>Kavramlari anlamak icin kullanin:</strong> girisim, hangi-yol bilgisi, koherens ve olcum.',
141
+ '<strong>Deney tasarimi icin kullanmayin:</strong> gercek cift yarik deneyleri hassas dalga boyu, aciklik, dedektor ve yayilim hesaplamalari gerektirir.',
142
+ '<strong>Egilime odaklanin:</strong> ayirt edilebilirlik arttikca, girisim kontrasti azalir.',
143
+ ],
144
+ },
145
+ ],
146
+ faq,
147
+ bibliography,
148
+ howTo,
149
+ schemas: [
150
+ {
151
+ '@context': 'https://schema.org',
152
+ '@type': 'SoftwareApplication',
153
+ name: title,
154
+ description,
155
+ applicationCategory: 'ScientificApplication',
156
+ operatingSystem: 'Any',
157
+ },
158
+ {
159
+ '@context': 'https://schema.org',
160
+ '@type': 'FAQPage',
161
+ mainEntity: faq.map((item) => ({
162
+ '@type': 'Question',
163
+ name: item.question,
164
+ acceptedAnswer: {
165
+ '@type': 'Answer',
166
+ text: item.answer,
167
+ },
168
+ })),
169
+ },
170
+ {
171
+ '@context': 'https://schema.org',
172
+ '@type': 'HowTo',
173
+ name: title,
174
+ step: howTo.map((step) => ({
175
+ '@type': 'HowToStep',
176
+ name: step.name,
177
+ text: step.text,
178
+ })),
179
+ },
180
+ ],
181
+ };
@@ -0,0 +1,181 @@
1
+ import { bibliography } from '../bibliography';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+
4
+ const slug = 'double-slit-decoherence-simulator';
5
+ const title = '双缝实验与退相干模拟器';
6
+ const description = '打开或关闭路径探测器,在可视化双缝模拟器中观察量子干涉如何消褪为两条粒子带。';
7
+
8
+ const howTo = [
9
+ {
10
+ name: '从关闭探测器开始',
11
+ text: '保持路径探测器禁用,观察屏幕如何从相干的概率振幅形成明暗相间的干涉条纹。',
12
+ },
13
+ {
14
+ name: '增加探测器强度',
15
+ text: '提高探测器控制以引入路径信息。随着探测器变强,相干性下降,条纹逐渐消失。',
16
+ },
17
+ {
18
+ name: '改变狭缝几何形状',
19
+ text: '调整狭缝间距和狭缝宽度,观察几何形状如何改变条纹间距、包络宽度以及屏幕上的最终分布。',
20
+ },
21
+ {
22
+ name: '读取实时指标',
23
+ text: '利用条纹可见度、路径信息和相干性,将视觉模式与量子测量故事联系起来。',
24
+ },
25
+ ];
26
+
27
+ const faq = [
28
+ {
29
+ question: '为什么打开探测器时图案会发生变化?',
30
+ answer: '能够揭示粒子使用了哪个狭缝的探测器会破坏两个备选路径之间的相位关系。没有这种相干性,两个概率路径不再干涉,屏幕趋近于两条宽粒子带。',
31
+ },
32
+ {
33
+ question: '这个模拟器意味着意识会坍缩波函数吗?',
34
+ answer: '不。模拟器关注的是物理上的路径信息和退相干。探测器、环境或任何使路径可区分的相互作用都可以抑制干涉,无需有意识的观察者。',
35
+ },
36
+ {
37
+ question: '什么是条纹可见度?',
38
+ answer: '条纹可见度比较屏幕上的明亮区域和黑暗区域。高可见度意味着强干涉对比度。低可见度意味着暗隙已被填满,图案更像两股独立的粒子流。',
39
+ },
40
+ {
41
+ question: '这是一个完整的量子力学求解器吗?',
42
+ answer: '不。它是一个教育模型,将双缝干涉包络与退相干控制相结合。它旨在直观地解释测量效应,而不是替代真实装置的薛定谔方程模拟。',
43
+ },
44
+ {
45
+ question: '为什么狭缝间距会影响条纹间距?',
46
+ answer: '较大的间距在屏幕上产生更快的相位差,因此明暗条纹靠得更近。较小的间距使条纹分布得更开。',
47
+ },
48
+ ];
49
+
50
+ export const content: ToolLocaleContent = {
51
+ slug,
52
+ title,
53
+ description,
54
+ ui: {
55
+ stage: '双缝装置',
56
+ controls: '双缝控制',
57
+ results: '双缝结果',
58
+ kicker: '测量控制',
59
+ detectorToggle: '启用路径探测器',
60
+ detectorStrength: '探测器强度',
61
+ slitSeparation: '狭缝间距',
62
+ slitWidth: '狭缝宽度',
63
+ unobserved: '未观测',
64
+ observed: '已观测',
65
+ waveMode: '干涉',
66
+ particleMode: '粒子带',
67
+ fringeVisibility: '条纹可见度',
68
+ whichPath: '路径信息',
69
+ coherence: '相干性',
70
+ readoutNote: '当两条路径保持不可区分时,干涉得以幸存。测量使路径信息可用,屏幕失去了暗条纹。',
71
+ },
72
+ seo: [
73
+ {
74
+ type: 'title',
75
+ text: '带退相干和路径探测的双缝实验模拟器',
76
+ level: 2,
77
+ },
78
+ {
79
+ type: 'paragraph',
80
+ html: '这个双缝模拟器将经典的量子实验转变为交互式视觉模型。探测器关闭时,屏幕显示出干涉图案:由于两个可能的路径保持相干,产生了明暗相间的条纹。当添加路径探测器时,图案逐渐变为两条宽粒子带,因为路径备选方案变得可区分。',
81
+ },
82
+ {
83
+ type: 'paragraph',
84
+ html: '该工具专为寻求清晰解释为何观测会改变双缝结果的学习者而设计。它避免了模糊的表述"观察者改变了现实",而是聚焦于物理学上有用的观点:干涉需要不可区分的备选方案,而测量和环境纠缠消除了条纹所需的相位关系。',
85
+ },
86
+ {
87
+ type: 'title',
88
+ text: '双缝实验演示了什么',
89
+ level: 3,
90
+ },
91
+ {
92
+ type: 'paragraph',
93
+ html: '在未观测的设置中,单个量子对象由与两个狭缝相关的概率振幅描述。这些振幅带有相位地相加。在屏幕上的某些位置,它们相互加强产生亮带;在其他位置,它们相互抵消产生暗带。这种交替结构就是干涉的特征。',
94
+ },
95
+ {
96
+ type: 'paragraph',
97
+ html: '如果探测器记录了使用了哪个狭缝,备选路径就不再不可区分。屏幕不再接收一个相干的振幅总和。它接收的是两个路径条件化结果的混合,因此暗干涉间隙被填满,结果看起来像是粒子穿过一个或另一个狭缝。',
98
+ },
99
+ {
100
+ type: 'title',
101
+ text: '如何阅读模拟器',
102
+ level: 3,
103
+ },
104
+ {
105
+ type: 'table',
106
+ headers: ['控制或指标', '它改变什么', '需要注意什么'],
107
+ rows: [
108
+ ['探测器强度', '多少路径信息可用', '更高的值降低条纹可见度并增强双带粒子图案。'],
109
+ ['狭缝间距', '两个开口之间的距离', '间距越大,干涉带在屏幕上的排列越紧密。'],
110
+ ['狭缝宽度', '每个开口的大小', '更宽的狭缝会压缩衍射包络线并重塑整体亮度。'],
111
+ ['条纹可见度', '屏幕明暗区域之间的对比度', '高数值意味着相干干涉仍然可见。'],
112
+ ['相干性', '路径之间保留了多少相位关系', '随着探测器使路径变得可区分,相干性下降。'],
113
+ ],
114
+ },
115
+ {
116
+ type: 'title',
117
+ text: '没有神秘主义的退相干',
118
+ level: 3,
119
+ },
120
+ {
121
+ type: 'paragraph',
122
+ html: '退相干是当量子系统与探测器或环境相关联时,可用相位相干性的丧失。在双缝实验中,这种关联可以携带路径信息。一旦路径在原则上被记录,即使没有人读取记录,干涉图案也会被抑制。',
123
+ },
124
+ {
125
+ type: 'paragraph',
126
+ html: '这个区别很重要,因为许多解释夸大了人类观察的作用。重要的物理学不是视觉或意识,而是实验装置是否保持或破坏了本来会干涉的备选方案的不可区分性。',
127
+ },
128
+ {
129
+ type: 'title',
130
+ text: '此教育模型的局限性',
131
+ level: 3,
132
+ },
133
+ {
134
+ type: 'paragraph',
135
+ html: '模拟器使用紧凑的光学风格双缝图案,并结合了用于退相干的探测器强度模型。它非常适合直觉理解、课堂演示和概念复习,但不是带有探测器希尔伯特空间、噪声源或实验室校准的完整量子装置的数值解。',
136
+ },
137
+ {
138
+ type: 'list',
139
+ items: [
140
+ '<strong>用于理解概念:</strong>干涉、路径信息、相干性和测量。',
141
+ '<strong>不要用于实验设计:</strong>真正的双缝实验需要精确的波长、孔径、探测器和传播计算。',
142
+ '<strong>关注趋势:</strong>随着可区分性的增加,干涉对比度下降。',
143
+ ],
144
+ },
145
+ ],
146
+ faq,
147
+ bibliography,
148
+ howTo,
149
+ schemas: [
150
+ {
151
+ '@context': 'https://schema.org',
152
+ '@type': 'SoftwareApplication',
153
+ name: title,
154
+ description,
155
+ applicationCategory: 'ScientificApplication',
156
+ operatingSystem: 'Any',
157
+ },
158
+ {
159
+ '@context': 'https://schema.org',
160
+ '@type': 'FAQPage',
161
+ mainEntity: faq.map((item) => ({
162
+ '@type': 'Question',
163
+ name: item.question,
164
+ acceptedAnswer: {
165
+ '@type': 'Answer',
166
+ text: item.answer,
167
+ },
168
+ })),
169
+ },
170
+ {
171
+ '@context': 'https://schema.org',
172
+ '@type': 'HowTo',
173
+ name: title,
174
+ step: howTo.map((step) => ({
175
+ '@type': 'HowToStep',
176
+ name: step.name,
177
+ text: step.text,
178
+ })),
179
+ },
180
+ ],
181
+ };
@@ -0,0 +1,11 @@
1
+ import { doubleSlitDecoherence } from './entry';
2
+ import type { ToolDefinition } from '../../types';
3
+
4
+ export * from './entry';
5
+
6
+ export const DOUBLE_SLIT_DECOHERENCE_TOOL: ToolDefinition = {
7
+ entry: doubleSlitDecoherence,
8
+ Component: () => import('./component.astro'),
9
+ SEOComponent: () => import('./seo.astro'),
10
+ BibliographyComponent: () => import('./bibliography.astro'),
11
+ };
@@ -0,0 +1,77 @@
1
+ export interface DoubleSlitConfig {
2
+ detectorStrength: number;
3
+ slitSeparation: number;
4
+ slitWidth: number;
5
+ wavelength: number;
6
+ screenDistance: number;
7
+ }
8
+
9
+ export interface ScreenSample {
10
+ y: number;
11
+ waveIntensity: number;
12
+ particleIntensity: number;
13
+ observedIntensity: number;
14
+ }
15
+
16
+ export interface PatternMetrics {
17
+ fringeVisibility: number;
18
+ centralPeak: number;
19
+ whichPath: number;
20
+ coherence: number;
21
+ }
22
+
23
+ function clamp(value: number, min = 0, max = 1): number {
24
+ return Math.min(max, Math.max(min, value));
25
+ }
26
+
27
+ function sinc(value: number): number {
28
+ if (Math.abs(value) < 1e-6) return 1;
29
+ return Math.sin(value) / value;
30
+ }
31
+
32
+ export function calculateDoubleSlitPattern(config: DoubleSlitConfig, sampleCount = 181): ScreenSample[] {
33
+ const detector = clamp(config.detectorStrength);
34
+ const coherence = 1 - detector;
35
+ const separation = Math.max(0.2, config.slitSeparation);
36
+ const slitWidth = Math.max(0.05, config.slitWidth);
37
+ const wavelength = Math.max(0.05, config.wavelength);
38
+ const distance = Math.max(0.5, config.screenDistance);
39
+ const range = 3.2;
40
+
41
+ return Array.from({ length: sampleCount }, (_, index) => {
42
+ const normalized = index / Math.max(1, sampleCount - 1);
43
+ const y = -range + normalized * range * 2;
44
+ const angle = Math.atan(y / distance);
45
+ const beta = Math.PI * slitWidth * Math.sin(angle) / wavelength;
46
+ const phase = Math.PI * separation * Math.sin(angle) / wavelength;
47
+ const envelope = sinc(beta) ** 2;
48
+ const interference = 0.5 + 0.5 * Math.cos(2 * phase);
49
+ const waveIntensity = envelope * interference;
50
+ const particleLeft = Math.exp(-((y - separation * 0.42) ** 2) / (0.72 + slitWidth * 0.3));
51
+ const particleRight = Math.exp(-((y + separation * 0.42) ** 2) / (0.72 + slitWidth * 0.3));
52
+ const particleIntensity = envelope * 0.34 + (particleLeft + particleRight) * 0.36;
53
+ const observedIntensity = waveIntensity * coherence + particleIntensity * detector;
54
+
55
+ return {
56
+ y,
57
+ waveIntensity,
58
+ particleIntensity,
59
+ observedIntensity,
60
+ };
61
+ });
62
+ }
63
+
64
+ export function measurePattern(samples: ScreenSample[], detectorStrength: number): PatternMetrics {
65
+ const values = samples.map((sample) => sample.observedIntensity);
66
+ const max = Math.max(...values, 0);
67
+ const min = Math.min(...values, 0);
68
+ const central = samples[Math.floor(samples.length / 2)]?.observedIntensity ?? 0;
69
+ const fringeVisibility = max + min === 0 ? 0 : clamp((max - min) / (max + min));
70
+
71
+ return {
72
+ fringeVisibility,
73
+ centralPeak: max === 0 ? 0 : clamp(central / max),
74
+ whichPath: clamp(detectorStrength),
75
+ coherence: clamp(1 - detectorStrength),
76
+ };
77
+ }
@@ -0,0 +1,15 @@
1
+ ---
2
+ import { SEORenderer } from '@jjlmoya/utils-shared';
3
+ import { doubleSlitDecoherence } from './index';
4
+ import type { KnownLocale } from '../../types';
5
+
6
+ interface Props {
7
+ locale?: KnownLocale;
8
+ }
9
+
10
+ const { locale = 'en' } = Astro.props;
11
+ const content = await doubleSlitDecoherence.i18n[locale]?.();
12
+ if (!content) return null;
13
+ ---
14
+
15
+ {content.seo?.length > 0 && <SEORenderer content={{ locale, sections: content.seo }} />}
package/src/tools.ts CHANGED
@@ -12,6 +12,7 @@ import { STELLAR_HABITABILITY_ZONE_TOOL } from './tool/stellar-habitability-zone
12
12
  import { RADIOACTIVE_DECAY_TOOL } from './tool/radioactive-decay/index';
13
13
  import { NATURAL_SELECTION_DRIFT_TOOL } from './tool/natural-selection-drift/index';
14
14
  import { ENTROPY_SECOND_LAW_TOOL } from './tool/entropy-second-law/index';
15
+ import { DOUBLE_SLIT_DECOHERENCE_TOOL } from './tool/double-slit-decoherence/index';
15
16
  import { PHASE_DIAGRAM_CRITICAL_POINTS_TOOL } from './tool/phase-diagram-critical-points/index';
16
17
  import { TWIN_PARADOX_VISUALIZER_TOOL } from './tool/twin-paradox-visualizer/index';
17
18
  import { MANDELBROT_FRACTAL_TOOL } from './tool/mandelbrot-fractal/index';
@@ -32,6 +33,7 @@ export const ALL_TOOLS: ToolDefinition[] = [
32
33
  RADIOACTIVE_DECAY_TOOL,
33
34
  NATURAL_SELECTION_DRIFT_TOOL,
34
35
  ENTROPY_SECOND_LAW_TOOL,
36
+ DOUBLE_SLIT_DECOHERENCE_TOOL,
35
37
  PHASE_DIAGRAM_CRITICAL_POINTS_TOOL,
36
38
  TWIN_PARADOX_VISUALIZER_TOOL,
37
39
  MANDELBROT_FRACTAL_TOOL,