@jjlmoya/utils-science 1.41.0 → 1.43.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 (164) hide show
  1. package/package.json +1 -1
  2. package/scripts/crystal-lattice-catalog-translations.mjs +459 -0
  3. package/scripts/sync-crystal-lattice-i18n.mjs +50 -0
  4. package/src/category/index.ts +3 -1
  5. package/src/entries.ts +5 -1
  6. package/src/index.ts +2 -0
  7. package/src/tests/diacritics_density.test.ts +140 -0
  8. package/src/tests/inverted_punctuation.test.ts +84 -0
  9. package/src/tests/locale_completeness.test.ts +2 -2
  10. package/src/tests/script_density.test.ts +94 -0
  11. package/src/tests/tool_validation.test.ts +2 -3
  12. package/src/tool/conway-life-rule-lab/i18n/de.ts +62 -5
  13. package/src/tool/conway-life-rule-lab/i18n/es.ts +62 -5
  14. package/src/tool/conway-life-rule-lab/i18n/fr.ts +62 -5
  15. package/src/tool/conway-life-rule-lab/i18n/id.ts +102 -45
  16. package/src/tool/conway-life-rule-lab/i18n/it.ts +62 -5
  17. package/src/tool/conway-life-rule-lab/i18n/ja.ts +62 -5
  18. package/src/tool/conway-life-rule-lab/i18n/ko.ts +62 -5
  19. package/src/tool/conway-life-rule-lab/i18n/nl.ts +102 -45
  20. package/src/tool/conway-life-rule-lab/i18n/pl.ts +62 -5
  21. package/src/tool/conway-life-rule-lab/i18n/pt.ts +62 -5
  22. package/src/tool/conway-life-rule-lab/i18n/ru.ts +62 -5
  23. package/src/tool/conway-life-rule-lab/i18n/sv.ts +62 -5
  24. package/src/tool/conway-life-rule-lab/i18n/tr.ts +62 -5
  25. package/src/tool/conway-life-rule-lab/i18n/zh.ts +62 -5
  26. package/src/tool/cosmic-inflation/i18n/es.ts +5 -5
  27. package/src/tool/cosmic-inflation/i18n/it.ts +51 -51
  28. package/src/tool/cosmic-inflation/i18n/ru.ts +42 -150
  29. package/src/tool/crystal-lattice-structure-finder/component.astro +120 -39
  30. package/src/tool/crystal-lattice-structure-finder/crystal-lattice-structure-finder.css +204 -56
  31. package/src/tool/crystal-lattice-structure-finder/data.ts +107 -133
  32. package/src/tool/crystal-lattice-structure-finder/i18n/de.ts +39 -0
  33. package/src/tool/crystal-lattice-structure-finder/i18n/en.ts +45 -6
  34. package/src/tool/crystal-lattice-structure-finder/i18n/es.ts +39 -0
  35. package/src/tool/crystal-lattice-structure-finder/i18n/fr.ts +39 -0
  36. package/src/tool/crystal-lattice-structure-finder/i18n/id.ts +39 -0
  37. package/src/tool/crystal-lattice-structure-finder/i18n/it.ts +39 -0
  38. package/src/tool/crystal-lattice-structure-finder/i18n/ja.ts +39 -0
  39. package/src/tool/crystal-lattice-structure-finder/i18n/ko.ts +39 -0
  40. package/src/tool/crystal-lattice-structure-finder/i18n/nl.ts +39 -0
  41. package/src/tool/crystal-lattice-structure-finder/i18n/pl.ts +39 -0
  42. package/src/tool/crystal-lattice-structure-finder/i18n/pt.ts +39 -0
  43. package/src/tool/crystal-lattice-structure-finder/i18n/ru.ts +39 -0
  44. package/src/tool/crystal-lattice-structure-finder/i18n/sv.ts +39 -0
  45. package/src/tool/crystal-lattice-structure-finder/i18n/tr.ts +39 -0
  46. package/src/tool/crystal-lattice-structure-finder/i18n/zh.ts +39 -0
  47. package/src/tool/crystal-lattice-structure-finder/logic.ts +7 -3
  48. package/src/tool/crystal-lattice-structure-finder/structures/README.md +26 -0
  49. package/src/tool/crystal-lattice-structure-finder/structures/body-centered-cubic.ts +19 -0
  50. package/src/tool/crystal-lattice-structure-finder/structures/cesium-chloride.ts +19 -0
  51. package/src/tool/crystal-lattice-structure-finder/structures/diamond-cubic.ts +23 -0
  52. package/src/tool/crystal-lattice-structure-finder/structures/face-centered-cubic.ts +16 -0
  53. package/src/tool/crystal-lattice-structure-finder/structures/hexagonal-close-packed.ts +30 -0
  54. package/src/tool/crystal-lattice-structure-finder/structures/index.ts +25 -0
  55. package/src/tool/crystal-lattice-structure-finder/structures/perovskite.ts +20 -0
  56. package/src/tool/crystal-lattice-structure-finder/structures/rock-salt.ts +23 -0
  57. package/src/tool/crystal-lattice-structure-finder/structures/rutile.ts +25 -0
  58. package/src/tool/crystal-lattice-structure-finder/structures/shared.ts +86 -0
  59. package/src/tool/crystal-lattice-structure-finder/structures/simple-cubic.ts +16 -0
  60. package/src/tool/crystal-lattice-structure-finder/structures/wurtzite.ts +22 -0
  61. package/src/tool/crystal-lattice-structure-finder/structures/zinc-blende.ts +23 -0
  62. package/src/tool/double-slit-decoherence/i18n/fr.ts +42 -86
  63. package/src/tool/double-slit-decoherence/i18n/it.ts +28 -72
  64. package/src/tool/double-slit-decoherence/i18n/pt.ts +35 -79
  65. package/src/tool/double-slit-decoherence/i18n/ru.ts +59 -59
  66. package/src/tool/double-slit-decoherence/i18n/sv.ts +33 -81
  67. package/src/tool/double-slit-decoherence/i18n/tr.ts +55 -55
  68. package/src/tool/dyson-sphere-energy-capture/i18n/de.ts +42 -123
  69. package/src/tool/dyson-sphere-energy-capture/i18n/es.ts +6 -6
  70. package/src/tool/dyson-sphere-energy-capture/i18n/fr.ts +63 -131
  71. package/src/tool/dyson-sphere-energy-capture/i18n/it.ts +36 -113
  72. package/src/tool/dyson-sphere-energy-capture/i18n/ja.ts +66 -42
  73. package/src/tool/dyson-sphere-energy-capture/i18n/ko.ts +66 -42
  74. package/src/tool/dyson-sphere-energy-capture/i18n/pl.ts +50 -133
  75. package/src/tool/dyson-sphere-energy-capture/i18n/pt.ts +51 -132
  76. package/src/tool/dyson-sphere-energy-capture/i18n/ru.ts +61 -98
  77. package/src/tool/dyson-sphere-energy-capture/i18n/sv.ts +56 -137
  78. package/src/tool/dyson-sphere-energy-capture/i18n/tr.ts +61 -142
  79. package/src/tool/dyson-sphere-energy-capture/i18n/zh.ts +67 -43
  80. package/src/tool/epidemic-sir-simulator/bibliography.astro +15 -0
  81. package/src/tool/epidemic-sir-simulator/bibliography.ts +37 -0
  82. package/src/tool/epidemic-sir-simulator/component.astro +384 -0
  83. package/src/tool/epidemic-sir-simulator/entry.ts +30 -0
  84. package/src/tool/epidemic-sir-simulator/epidemic-sir-simulator.css +624 -0
  85. package/src/tool/epidemic-sir-simulator/i18n/de.ts +347 -0
  86. package/src/tool/epidemic-sir-simulator/i18n/en.ts +347 -0
  87. package/src/tool/epidemic-sir-simulator/i18n/es.ts +347 -0
  88. package/src/tool/epidemic-sir-simulator/i18n/fr.ts +347 -0
  89. package/src/tool/epidemic-sir-simulator/i18n/id.ts +347 -0
  90. package/src/tool/epidemic-sir-simulator/i18n/it.ts +347 -0
  91. package/src/tool/epidemic-sir-simulator/i18n/ja.ts +347 -0
  92. package/src/tool/epidemic-sir-simulator/i18n/ko.ts +347 -0
  93. package/src/tool/epidemic-sir-simulator/i18n/nl.ts +347 -0
  94. package/src/tool/epidemic-sir-simulator/i18n/pl.ts +347 -0
  95. package/src/tool/epidemic-sir-simulator/i18n/pt.ts +347 -0
  96. package/src/tool/epidemic-sir-simulator/i18n/ru.ts +347 -0
  97. package/src/tool/epidemic-sir-simulator/i18n/sv.ts +347 -0
  98. package/src/tool/epidemic-sir-simulator/i18n/tr.ts +347 -0
  99. package/src/tool/epidemic-sir-simulator/i18n/zh.ts +347 -0
  100. package/src/tool/epidemic-sir-simulator/index.ts +12 -0
  101. package/src/tool/epidemic-sir-simulator/logic.ts +163 -0
  102. package/src/tool/epidemic-sir-simulator/seo.astro +16 -0
  103. package/src/tool/fermi-paradox-filter-lab/bibliography.astro +14 -0
  104. package/src/tool/fermi-paradox-filter-lab/bibliography.ts +24 -0
  105. package/src/tool/fermi-paradox-filter-lab/component.astro +257 -0
  106. package/src/tool/fermi-paradox-filter-lab/entry.ts +26 -0
  107. package/src/tool/fermi-paradox-filter-lab/fermi-paradox-filter-lab.css +228 -0
  108. package/src/tool/fermi-paradox-filter-lab/i18n/de.ts +192 -0
  109. package/src/tool/fermi-paradox-filter-lab/i18n/en.ts +192 -0
  110. package/src/tool/fermi-paradox-filter-lab/i18n/es.ts +193 -0
  111. package/src/tool/fermi-paradox-filter-lab/i18n/fr.ts +192 -0
  112. package/src/tool/fermi-paradox-filter-lab/i18n/id.ts +192 -0
  113. package/src/tool/fermi-paradox-filter-lab/i18n/it.ts +192 -0
  114. package/src/tool/fermi-paradox-filter-lab/i18n/ja.ts +192 -0
  115. package/src/tool/fermi-paradox-filter-lab/i18n/ko.ts +192 -0
  116. package/src/tool/fermi-paradox-filter-lab/i18n/nl.ts +192 -0
  117. package/src/tool/fermi-paradox-filter-lab/i18n/pl.ts +193 -0
  118. package/src/tool/fermi-paradox-filter-lab/i18n/pt.ts +192 -0
  119. package/src/tool/fermi-paradox-filter-lab/i18n/ru.ts +192 -0
  120. package/src/tool/fermi-paradox-filter-lab/i18n/sv.ts +192 -0
  121. package/src/tool/fermi-paradox-filter-lab/i18n/tr.ts +192 -0
  122. package/src/tool/fermi-paradox-filter-lab/i18n/zh.ts +192 -0
  123. package/src/tool/fermi-paradox-filter-lab/index.ts +11 -0
  124. package/src/tool/fermi-paradox-filter-lab/logic.ts +125 -0
  125. package/src/tool/fermi-paradox-filter-lab/seo.astro +15 -0
  126. package/src/tool/global-albedo-snowball-simulator/i18n/ru.ts +50 -63
  127. package/src/tool/lorenz-attractor/i18n/de.ts +52 -78
  128. package/src/tool/lorenz-attractor/i18n/es.ts +5 -5
  129. package/src/tool/lorenz-attractor/i18n/fr.ts +51 -77
  130. package/src/tool/lorenz-attractor/i18n/it.ts +36 -36
  131. package/src/tool/lorenz-attractor/i18n/pt.ts +51 -75
  132. package/src/tool/mandelbrot-fractal/i18n/de.ts +31 -58
  133. package/src/tool/mandelbrot-fractal/i18n/es.ts +5 -5
  134. package/src/tool/mandelbrot-fractal/i18n/fr.ts +39 -57
  135. package/src/tool/mandelbrot-fractal/i18n/it.ts +30 -48
  136. package/src/tool/mandelbrot-fractal/i18n/pl.ts +34 -52
  137. package/src/tool/mandelbrot-fractal/i18n/pt.ts +30 -30
  138. package/src/tool/mandelbrot-fractal/i18n/ru.ts +42 -60
  139. package/src/tool/mandelbrot-fractal/i18n/sv.ts +38 -65
  140. package/src/tool/natural-selection-drift/i18n/it.ts +18 -95
  141. package/src/tool/natural-selection-drift/i18n/pt.ts +76 -19
  142. package/src/tool/natural-selection-drift/i18n/ru.ts +27 -24
  143. package/src/tool/natural-selection-drift/i18n/sv.ts +9 -6
  144. package/src/tool/phase-diagram-critical-points/i18n/de.ts +30 -68
  145. package/src/tool/phase-diagram-critical-points/i18n/es.ts +4 -4
  146. package/src/tool/phase-diagram-critical-points/i18n/fr.ts +37 -75
  147. package/src/tool/phase-diagram-critical-points/i18n/it.ts +8 -8
  148. package/src/tool/planet-atmosphere-survival/i18n/ru.ts +49 -192
  149. package/src/tool/radioactive-decay/i18n/de.ts +16 -32
  150. package/src/tool/radioactive-decay/i18n/es.ts +5 -5
  151. package/src/tool/radioactive-decay/i18n/fr.ts +24 -40
  152. package/src/tool/radioactive-decay/i18n/it.ts +18 -35
  153. package/src/tool/radioactive-decay/i18n/pt.ts +34 -34
  154. package/src/tool/roche-limit-satellite-disruption/i18n/pl.ts +52 -128
  155. package/src/tool/temperature-timeline/i18n/de.ts +46 -174
  156. package/src/tool/temperature-timeline/i18n/es.ts +5 -5
  157. package/src/tool/temperature-timeline/i18n/fr.ts +69 -144
  158. package/src/tool/temperature-timeline/i18n/it.ts +34 -133
  159. package/src/tool/temperature-timeline/i18n/pt.ts +35 -174
  160. package/src/tool/temperature-timeline/i18n/ru.ts +48 -174
  161. package/src/tool/twin-paradox-visualizer/i18n/es.ts +5 -5
  162. package/src/tool/twin-paradox-visualizer/i18n/fr.ts +34 -34
  163. package/src/tool/twin-paradox-visualizer/i18n/pt.ts +31 -71
  164. package/src/tools.ts +4 -0
@@ -93,6 +93,45 @@ export const content: ToolLocaleContent = {
93
93
  materialTitaniumNote: '항공우주 분야에서 널리 사용되는 고강도 HCP 금속.',
94
94
  materialHalite: 'Halite',
95
95
  materialHaliteNote: '4개의 NaCl 단위를 가진 FCC 파생 전통적 세포의 이온성 암염.',
96
+ shortSimpleCubic: 'SC',
97
+ shortFaceCenteredCubic: 'FCC',
98
+ shortHexagonalClosePacked: 'HCP',
99
+ shortBodyCenteredCubic: 'BCC',
100
+ shortDiamondCubic: 'DC',
101
+ shortRockSalt: 'NaCl',
102
+ shortCesiumChloride: 'CsCl',
103
+ shortZincBlende: 'ZnS',
104
+ shortWurtzite: 'WZ',
105
+ shortPerovskite: 'ABO3',
106
+ shortRutile: 'TiO2',
107
+ latticeBodyCenteredCubic: '체심 입방',
108
+ latticeCesiumChloride: '염화 세슘',
109
+ latticeDiamondCubic: '다이아몬드 입방',
110
+ latticeFaceCenteredCubic: '면심 입방',
111
+ latticeHexagonalClosePacked: '육방 조밀 충전',
112
+ latticePerovskite: '입방 페로브스카이트',
113
+ latticeRockSalt: '암염',
114
+ latticeRutile: '루타일',
115
+ latticeWurtzite: '우르츠광',
116
+ latticeZincBlende: '섬아연석',
117
+ materialAlphaIron: '알파 철',
118
+ materialAlphaIronNote: '상온의 체심 입방 철 상입니다.',
119
+ materialTungsten: '텅스텐',
120
+ materialTungstenNote: '매우 높은 녹는점을 가진 조밀한 BCC 내화 금속입니다.',
121
+ materialSilicon: '실리콘',
122
+ materialSiliconNote: '집적 회로에 쓰이는 다이아몬드 입방 반도체입니다.',
123
+ materialDiamond: '다이아몬드',
124
+ materialDiamondNote: '다이아몬드 입방 구조의 공유 결합 탄소 네트워크입니다.',
125
+ materialCesiumChloride: '염화 세슘',
126
+ materialCesiumChlorideNote: '팔배위의 상호 침투 단순 입방 이온 구조입니다.',
127
+ materialZincSulfide: '황화 아연',
128
+ materialZincSulfideNote: '섬아연석이라고도 하며 사면체 배위를 가집니다.',
129
+ materialGalliumNitride: '질화 갈륨',
130
+ materialGalliumNitrideNote: 'LED와 전력 전자에 쓰이는 우르츠광 반도체입니다.',
131
+ materialStrontiumTitanate: '티탄산 스트론튬',
132
+ materialStrontiumTitanateNote: '기판과 유전체 모델로 자주 쓰이는 입방 페로브스카이트 산화물입니다.',
133
+ materialRutileTitania: '루타일 티타니아',
134
+ materialRutileTitaniaNote: '티타늄의 팔면체 배위를 가진 루타일 TiO2 구조입니다.',
96
135
  },
97
136
  seo: [
98
137
  {
@@ -93,6 +93,45 @@ export const content: ToolLocaleContent = {
93
93
  materialTitaniumNote: 'HDP-fase van titanium bij kamertemperatuur.',
94
94
  materialHalite: 'Haliet (benadering)',
95
95
  materialHaliteNote: 'Steenzout wordt gemodelleerd via zijn conventionele FCC-cel met vier NaCl-formule-eenheden.',
96
+ shortSimpleCubic: 'SC',
97
+ shortFaceCenteredCubic: 'FCC',
98
+ shortHexagonalClosePacked: 'HCP',
99
+ shortBodyCenteredCubic: 'BCC',
100
+ shortDiamondCubic: 'DC',
101
+ shortRockSalt: 'NaCl',
102
+ shortCesiumChloride: 'CsCl',
103
+ shortZincBlende: 'ZnS',
104
+ shortWurtzite: 'WZ',
105
+ shortPerovskite: 'ABO3',
106
+ shortRutile: 'TiO2',
107
+ latticeBodyCenteredCubic: 'Ruimtegecentreerd kubisch',
108
+ latticeCesiumChloride: 'Cesiumchloride',
109
+ latticeDiamondCubic: 'Diamantkubisch',
110
+ latticeFaceCenteredCubic: 'Vlakgecentreerd kubisch',
111
+ latticeHexagonalClosePacked: 'Hexagonaal dichtst gepakt',
112
+ latticePerovskite: 'Kubische perovskiet',
113
+ latticeRockSalt: 'Steenzout',
114
+ latticeRutile: 'Rutiel',
115
+ latticeWurtzite: 'Wurtziet',
116
+ latticeZincBlende: 'Zinkblende',
117
+ materialAlphaIron: 'Alfa-ijzer',
118
+ materialAlphaIronNote: 'Ruimtegecentreerd kubische ijzerfase bij kamertemperatuur.',
119
+ materialTungsten: 'Wolfraam',
120
+ materialTungstenNote: 'Dicht BCC-refractair metaal met een zeer hoog smeltpunt.',
121
+ materialSilicon: 'Silicium',
122
+ materialSiliconNote: 'Diamantkubische halfgeleider gebruikt in geïntegreerde schakelingen.',
123
+ materialDiamond: 'Diamant',
124
+ materialDiamondNote: 'Covalent koolstofnetwerk in diamantkubische structuur.',
125
+ materialCesiumChloride: 'Cesiumchloride',
126
+ materialCesiumChlorideNote: 'Interpenetrerende eenvoudige kubische ionstructuur met achtvoudige coördinatie.',
127
+ materialZincSulfide: 'Zinksulfide',
128
+ materialZincSulfideNote: 'Sfaleriet, ook zinkblende genoemd, met tetraëdrische coördinatie.',
129
+ materialGalliumNitride: 'Galliumnitride',
130
+ materialGalliumNitrideNote: 'Wurtziet-halfgeleider gebruikt in leds en vermogenselektronica.',
131
+ materialStrontiumTitanate: 'Strontiumtitanaat',
132
+ materialStrontiumTitanateNote: 'Kubisch perovskietoxide gebruikt als substraat en diëlektrisch model.',
133
+ materialRutileTitania: 'Rutiel-titania',
134
+ materialRutileTitaniaNote: 'Rutiel-TiO2-structuur met octaëdrische titaniumcoördinatie.',
96
135
  },
97
136
  seo: [
98
137
  {
@@ -93,6 +93,45 @@ export const content: ToolLocaleContent = {
93
93
  materialTitaniumNote: 'Faza HCP tytanu w temperaturze pokojowej.',
94
94
  materialHalite: 'Aproksymacja halitu',
95
95
  materialHaliteNote: 'Sól kamienna modelowana przez konwencjonalną komórkę FCC z czterema jednostkami wzoru NaCl.',
96
+ shortSimpleCubic: 'SC',
97
+ shortFaceCenteredCubic: 'FCC',
98
+ shortHexagonalClosePacked: 'HCP',
99
+ shortBodyCenteredCubic: 'BCC',
100
+ shortDiamondCubic: 'DC',
101
+ shortRockSalt: 'NaCl',
102
+ shortCesiumChloride: 'CsCl',
103
+ shortZincBlende: 'ZnS',
104
+ shortWurtzite: 'WZ',
105
+ shortPerovskite: 'ABO3',
106
+ shortRutile: 'TiO2',
107
+ latticeBodyCenteredCubic: 'Regularna przestrzennie centrowana',
108
+ latticeCesiumChloride: 'Chlorek cezu',
109
+ latticeDiamondCubic: 'Regularna diamentowa',
110
+ latticeFaceCenteredCubic: 'Regularna ściennie centrowana',
111
+ latticeHexagonalClosePacked: 'Heksagonalna zwarta',
112
+ latticePerovskite: 'Perowskit regularny',
113
+ latticeRockSalt: 'Sól kamienna',
114
+ latticeRutile: 'Rutyl',
115
+ latticeWurtzite: 'Wurcyt',
116
+ latticeZincBlende: 'Blenda cynkowa',
117
+ materialAlphaIron: 'Żelazo alfa',
118
+ materialAlphaIronNote: 'Faza żelaza BCC w temperaturze pokojowej.',
119
+ materialTungsten: 'Wolfram',
120
+ materialTungstenNote: 'Gęsty metal ogniotrwały BCC o bardzo wysokiej temperaturze topnienia.',
121
+ materialSilicon: 'Krzem',
122
+ materialSiliconNote: 'Półprzewodnik o strukturze diamentowej używany w układach scalonych.',
123
+ materialDiamond: 'Diament',
124
+ materialDiamondNote: 'Kowalencyjna sieć węglowa w strukturze regularnej diamentowej.',
125
+ materialCesiumChloride: 'Chlorek cezu',
126
+ materialCesiumChlorideNote: 'Przenikająca się prosta struktura jonowa o koordynacji ośmiokrotnej.',
127
+ materialZincSulfide: 'Siarczek cynku',
128
+ materialZincSulfideNote: 'Sfalerit, zwany też blendą cynkową, o koordynacji tetraedrycznej.',
129
+ materialGalliumNitride: 'Azotek galu',
130
+ materialGalliumNitrideNote: 'Półprzewodnik wurcytowy używany w LED i elektronice mocy.',
131
+ materialStrontiumTitanate: 'Tytanian strontu',
132
+ materialStrontiumTitanateNote: 'Regularny tlenek perowskitowy używany jako podłoże i model dielektryczny.',
133
+ materialRutileTitania: 'Tytania rutylowa',
134
+ materialRutileTitaniaNote: 'Struktura rutylowa TiO2 z oktaedryczną koordynacją tytanu.',
96
135
  },
97
136
  seo: [
98
137
  {
@@ -93,6 +93,45 @@ export const content: ToolLocaleContent = {
93
93
  materialTitaniumNote: 'Fase HC do titânio à temperatura ambiente.',
94
94
  materialHalite: 'Aproximação da halita',
95
95
  materialHaliteNote: 'O sal-gema é modelado através de sua célula CFC convencional com quatro unidades de fórmula NaCl.',
96
+ shortSimpleCubic: 'SC',
97
+ shortFaceCenteredCubic: 'FCC',
98
+ shortHexagonalClosePacked: 'HCP',
99
+ shortBodyCenteredCubic: 'BCC',
100
+ shortDiamondCubic: 'DC',
101
+ shortRockSalt: 'NaCl',
102
+ shortCesiumChloride: 'CsCl',
103
+ shortZincBlende: 'ZnS',
104
+ shortWurtzite: 'WZ',
105
+ shortPerovskite: 'ABO3',
106
+ shortRutile: 'TiO2',
107
+ latticeBodyCenteredCubic: 'Cúbica de corpo centrado',
108
+ latticeCesiumChloride: 'Cloreto de césio',
109
+ latticeDiamondCubic: 'Cúbica do diamante',
110
+ latticeFaceCenteredCubic: 'Cúbica de face centrada',
111
+ latticeHexagonalClosePacked: 'Hexagonal compacta',
112
+ latticePerovskite: 'Perovskita cúbica',
113
+ latticeRockSalt: 'Sal-gema',
114
+ latticeRutile: 'Rutilo',
115
+ latticeWurtzite: 'Wurtzita',
116
+ latticeZincBlende: 'Blenda de zinco',
117
+ materialAlphaIron: 'Ferro alfa',
118
+ materialAlphaIronNote: 'Fase do ferro cúbica de corpo centrado em temperatura ambiente.',
119
+ materialTungsten: 'Tungstênio',
120
+ materialTungstenNote: 'Metal refratário BCC denso com ponto de fusão muito alto.',
121
+ materialSilicon: 'Silício',
122
+ materialSiliconNote: 'Semicondutor cúbico do diamante usado em circuitos integrados.',
123
+ materialDiamond: 'Diamante',
124
+ materialDiamondNote: 'Rede covalente de carbono na estrutura cúbica do diamante.',
125
+ materialCesiumChloride: 'Cloreto de césio',
126
+ materialCesiumChlorideNote: 'Estrutura iônica cúbica simples interpenetrada com coordenação oito.',
127
+ materialZincSulfide: 'Sulfeto de zinco',
128
+ materialZincSulfideNote: 'Esfalerita, também chamada blenda de zinco, com coordenação tetraédrica.',
129
+ materialGalliumNitride: 'Nitreto de gálio',
130
+ materialGalliumNitrideNote: 'Semicondutor wurtzita usado em LEDs e eletrônica de potência.',
131
+ materialStrontiumTitanate: 'Titanato de estrôncio',
132
+ materialStrontiumTitanateNote: 'Óxido perovskita cúbico usado como substrato e modelo dielétrico.',
133
+ materialRutileTitania: 'Titânia rutilo',
134
+ materialRutileTitaniaNote: 'Estrutura TiO2 rutilo com coordenação octaédrica do titânio.',
96
135
  },
97
136
  seo: [
98
137
  {
@@ -93,6 +93,45 @@ export const content: ToolLocaleContent = {
93
93
  materialTitaniumNote: 'ГПУ-фаза титана при комнатной температуре.',
94
94
  materialHalite: 'Приближение галита',
95
95
  materialHaliteNote: 'Каменная соль моделируется через её conventional ГЦК-ячейку с четырьмя формульными единицами NaCl.',
96
+ shortSimpleCubic: 'SC',
97
+ shortFaceCenteredCubic: 'FCC',
98
+ shortHexagonalClosePacked: 'HCP',
99
+ shortBodyCenteredCubic: 'BCC',
100
+ shortDiamondCubic: 'DC',
101
+ shortRockSalt: 'NaCl',
102
+ shortCesiumChloride: 'CsCl',
103
+ shortZincBlende: 'ZnS',
104
+ shortWurtzite: 'WZ',
105
+ shortPerovskite: 'ABO3',
106
+ shortRutile: 'TiO2',
107
+ latticeBodyCenteredCubic: 'Объёмно-центрированная кубическая',
108
+ latticeCesiumChloride: 'Хлорид цезия',
109
+ latticeDiamondCubic: 'Кубическая алмазная',
110
+ latticeFaceCenteredCubic: 'Гранецентрированная кубическая',
111
+ latticeHexagonalClosePacked: 'Гексагональная плотноупакованная',
112
+ latticePerovskite: 'Кубический перовскит',
113
+ latticeRockSalt: 'Каменная соль',
114
+ latticeRutile: 'Рутил',
115
+ latticeWurtzite: 'Вюрцит',
116
+ latticeZincBlende: 'Цинковая обманка',
117
+ materialAlphaIron: 'Альфа-железо',
118
+ materialAlphaIronNote: 'ОЦК-фаза железа при комнатной температуре.',
119
+ materialTungsten: 'Вольфрам',
120
+ materialTungstenNote: 'Плотный ОЦК тугоплавкий металл с очень высокой температурой плавления.',
121
+ materialSilicon: 'Кремний',
122
+ materialSiliconNote: 'Полупроводник с алмазной кубической структурой для интегральных схем.',
123
+ materialDiamond: 'Алмаз',
124
+ materialDiamondNote: 'Ковалентная углеродная сеть с алмазной кубической структурой.',
125
+ materialCesiumChloride: 'Хлорид цезия',
126
+ materialCesiumChlorideNote: 'Взаимопроникающая простая кубическая ионная структура с восьмикратной координацией.',
127
+ materialZincSulfide: 'Сульфид цинка',
128
+ materialZincSulfideNote: 'Сфалерит, также называемый цинковой обманкой, с тетраэдрической координацией.',
129
+ materialGalliumNitride: 'Нитрид галлия',
130
+ materialGalliumNitrideNote: 'Полупроводник вюрцитной структуры для светодиодов и силовой электроники.',
131
+ materialStrontiumTitanate: 'Титанат стронция',
132
+ materialStrontiumTitanateNote: 'Кубический перовскитный оксид, используемый как подложка и диэлектрическая модель.',
133
+ materialRutileTitania: 'Рутильный диоксид титана',
134
+ materialRutileTitaniaNote: 'Структура рутила TiO2 с октаэдрической координацией титана.',
96
135
  },
97
136
  seo: [
98
137
  {
@@ -93,6 +93,45 @@ export const content: ToolLocaleContent = {
93
93
  materialTitaniumNote: 'HCP-fas av titan vid rumstemperatur.',
94
94
  materialHalite: 'Halitapproximation',
95
95
  materialHaliteNote: 'Bergssalt modelleras via dess konventionella FCC-cell med fyra NaCl-formelenheter.',
96
+ shortSimpleCubic: 'SC',
97
+ shortFaceCenteredCubic: 'FCC',
98
+ shortHexagonalClosePacked: 'HCP',
99
+ shortBodyCenteredCubic: 'BCC',
100
+ shortDiamondCubic: 'DC',
101
+ shortRockSalt: 'NaCl',
102
+ shortCesiumChloride: 'CsCl',
103
+ shortZincBlende: 'ZnS',
104
+ shortWurtzite: 'WZ',
105
+ shortPerovskite: 'ABO3',
106
+ shortRutile: 'TiO2',
107
+ latticeBodyCenteredCubic: 'Kubisk rymdcentrerad',
108
+ latticeCesiumChloride: 'Cesiumklorid',
109
+ latticeDiamondCubic: 'Diamantkubisk',
110
+ latticeFaceCenteredCubic: 'Kubisk ytcentrerad',
111
+ latticeHexagonalClosePacked: 'Hexagonal tätpackad',
112
+ latticePerovskite: 'Kubisk perovskit',
113
+ latticeRockSalt: 'Bergsalt',
114
+ latticeRutile: 'Rutil',
115
+ latticeWurtzite: 'Wurtzit',
116
+ latticeZincBlende: 'Zinkblände',
117
+ materialAlphaIron: 'Alfa-järn',
118
+ materialAlphaIronNote: 'Kubisk rymdcentrerad järnfas vid rumstemperatur.',
119
+ materialTungsten: 'Volfram',
120
+ materialTungstenNote: 'Tät BCC-refraktärmetall med mycket hög smältpunkt.',
121
+ materialSilicon: 'Kisel',
122
+ materialSiliconNote: 'Diamantkubisk halvledare som används i integrerade kretsar.',
123
+ materialDiamond: 'Diamant',
124
+ materialDiamondNote: 'Kovalent kolnätverk i diamantkubisk struktur.',
125
+ materialCesiumChloride: 'Cesiumklorid',
126
+ materialCesiumChlorideNote: 'Interpenetrerande enkel kubisk jonstruktur med åttafaldig koordination.',
127
+ materialZincSulfide: 'Zinksulfid',
128
+ materialZincSulfideNote: 'Sfalerit, även kallad zinkblände, med tetraedrisk koordination.',
129
+ materialGalliumNitride: 'Galliumnitrid',
130
+ materialGalliumNitrideNote: 'Wurtzit-halvledare som används i LED och kraftelektronik.',
131
+ materialStrontiumTitanate: 'Strontiumtitanat',
132
+ materialStrontiumTitanateNote: 'Kubisk perovskitoxid som används som substrat och dielektrisk modell.',
133
+ materialRutileTitania: 'Rutil-titania',
134
+ materialRutileTitaniaNote: 'Rutil-TiO2-struktur med oktaedrisk titankoordinering.',
96
135
  },
97
136
  seo: [
98
137
  {
@@ -93,6 +93,45 @@ export const content: ToolLocaleContent = {
93
93
  materialTitaniumNote: 'Havacılık uygulamalarında yaygın olarak kullanılan güçlü bir HSP metali.',
94
94
  materialHalite: 'Halit',
95
95
  materialHaliteNote: 'Dört NaCl birimi için YMK türevli geleneksel hücreye sahip iyonik kaya tuzu.',
96
+ shortSimpleCubic: 'SC',
97
+ shortFaceCenteredCubic: 'FCC',
98
+ shortHexagonalClosePacked: 'HCP',
99
+ shortBodyCenteredCubic: 'BCC',
100
+ shortDiamondCubic: 'DC',
101
+ shortRockSalt: 'NaCl',
102
+ shortCesiumChloride: 'CsCl',
103
+ shortZincBlende: 'ZnS',
104
+ shortWurtzite: 'WZ',
105
+ shortPerovskite: 'ABO3',
106
+ shortRutile: 'TiO2',
107
+ latticeBodyCenteredCubic: 'Hacim merkezli kübik',
108
+ latticeCesiumChloride: 'Sezyum klorür',
109
+ latticeDiamondCubic: 'Elmas kübik',
110
+ latticeFaceCenteredCubic: 'Yüzey merkezli kübik',
111
+ latticeHexagonalClosePacked: 'Hegzagonal sıkı paket',
112
+ latticePerovskite: 'Kübik perovskit',
113
+ latticeRockSalt: 'Kaya tuzu',
114
+ latticeRutile: 'Rutil',
115
+ latticeWurtzite: 'Wurtzit',
116
+ latticeZincBlende: 'Çinko blendi',
117
+ materialAlphaIron: 'Alfa demir',
118
+ materialAlphaIronNote: 'Oda sıcaklığındaki hacim merkezli kübik demir fazı.',
119
+ materialTungsten: 'Tungsten',
120
+ materialTungstenNote: 'Çok yüksek erime noktasına sahip yoğun BCC refrakter metal.',
121
+ materialSilicon: 'Silisyum',
122
+ materialSiliconNote: 'Entegre devrelerde kullanılan elmas kübik yarı iletken.',
123
+ materialDiamond: 'Elmas',
124
+ materialDiamondNote: 'Elmas kübik yapıda kovalent karbon ağı.',
125
+ materialCesiumChloride: 'Sezyum klorür',
126
+ materialCesiumChlorideNote: 'Sekizli koordinasyona sahip iç içe geçmiş basit kübik iyonik yapı.',
127
+ materialZincSulfide: 'Çinko sülfür',
128
+ materialZincSulfideNote: 'Sfalerit, çinko blendi olarak da bilinir, tetrahedral koordinasyona sahiptir.',
129
+ materialGalliumNitride: 'Galyum nitrür',
130
+ materialGalliumNitrideNote: 'LED ve güç elektroniğinde kullanılan wurtzit yarı iletken.',
131
+ materialStrontiumTitanate: 'Stronsiyum titanat',
132
+ materialStrontiumTitanateNote: 'Altlık ve dielektrik model olarak kullanılan kübik perovskit oksit.',
133
+ materialRutileTitania: 'Rutil titanya',
134
+ materialRutileTitaniaNote: 'Titanyumun oktahedral koordinasyonuna sahip rutil TiO2 yapısı.',
96
135
  },
97
136
  seo: [
98
137
  {
@@ -93,6 +93,45 @@ export const content: ToolLocaleContent = {
93
93
  materialTitaniumNote: '航空航天应用中广泛使用的高强度HCP金属。',
94
94
  materialHalite: '岩盐',
95
95
  materialHaliteNote: '具有四个NaCl单元的FCC衍生传统晶胞的离子型石盐。',
96
+ shortSimpleCubic: 'SC',
97
+ shortFaceCenteredCubic: 'FCC',
98
+ shortHexagonalClosePacked: 'HCP',
99
+ shortBodyCenteredCubic: 'BCC',
100
+ shortDiamondCubic: 'DC',
101
+ shortRockSalt: 'NaCl',
102
+ shortCesiumChloride: 'CsCl',
103
+ shortZincBlende: 'ZnS',
104
+ shortWurtzite: 'WZ',
105
+ shortPerovskite: 'ABO3',
106
+ shortRutile: 'TiO2',
107
+ latticeBodyCenteredCubic: '体心立方',
108
+ latticeCesiumChloride: '氯化铯',
109
+ latticeDiamondCubic: '金刚石立方',
110
+ latticeFaceCenteredCubic: '面心立方',
111
+ latticeHexagonalClosePacked: '六方密堆积',
112
+ latticePerovskite: '立方钙钛矿',
113
+ latticeRockSalt: '岩盐',
114
+ latticeRutile: '金红石',
115
+ latticeWurtzite: '纤锌矿',
116
+ latticeZincBlende: '闪锌矿',
117
+ materialAlphaIron: 'α铁',
118
+ materialAlphaIronNote: '室温下的体心立方铁相。',
119
+ materialTungsten: '钨',
120
+ materialTungstenNote: '致密的BCC难熔金属,熔点很高。',
121
+ materialSilicon: '硅',
122
+ materialSiliconNote: '用于集成电路的金刚石立方半导体。',
123
+ materialDiamond: '金刚石',
124
+ materialDiamondNote: '金刚石立方结构中的共价碳网络。',
125
+ materialCesiumChloride: '氯化铯',
126
+ materialCesiumChlorideNote: '相互穿插的简单立方离子结构,配位数为八。',
127
+ materialZincSulfide: '硫化锌',
128
+ materialZincSulfideNote: '闪锌矿结构,具有四面体配位。',
129
+ materialGalliumNitride: '氮化镓',
130
+ materialGalliumNitrideNote: '用于LED和功率电子的纤锌矿半导体。',
131
+ materialStrontiumTitanate: '钛酸锶',
132
+ materialStrontiumTitanateNote: '常用作衬底和介电模型的立方钙钛矿氧化物。',
133
+ materialRutileTitania: '金红石二氧化钛',
134
+ materialRutileTitaniaNote: '具有钛八面体配位的金红石TiO2结构。',
96
135
  },
97
136
  seo: [
98
137
  {
@@ -19,9 +19,13 @@ export function calculateTheoreticalDensity(material: MaterialPreset): DensityRe
19
19
  const lattice = getLattice(material.latticeId);
20
20
  const cToA = material.cToA ?? lattice.cToA ?? 1;
21
21
  const atomsPerCell = material.atomsPerFormulaUnit ?? lattice.atomsPerCell;
22
- const volumeA3 = material.latticeId === 'hexagonal-close-packed'
23
- ? (3 * Math.sqrt(3) / 2) * material.latticeA ** 2 * material.latticeA * cToA
24
- : material.latticeA ** 3;
22
+ let volumeA3 = material.latticeA ** 3;
23
+ if (lattice.cellGeometry === 'hexagonal') {
24
+ volumeA3 = (3 * Math.sqrt(3) / 2) * material.latticeA ** 2 * material.latticeA * cToA;
25
+ }
26
+ if (lattice.cellGeometry === 'tetragonal') {
27
+ volumeA3 = material.latticeA ** 2 * material.latticeA * cToA;
28
+ }
25
29
  const cellVolumeCm3 = volumeA3 * ANGSTROM_TO_CM ** 3;
26
30
  const cellMassG = (atomsPerCell * material.atomicMass) / AVOGADRO;
27
31
 
@@ -0,0 +1,26 @@
1
+ # Adding a crystal structure
2
+
3
+ Each structure lives in its own file so the catalog can grow without editing the viewer.
4
+
5
+ 1. Copy one existing file, for example `body-centered-cubic.ts`.
6
+ 2. Change these fields:
7
+ - `id`: unique lowercase slug.
8
+ - `name`: label shown in the selector.
9
+ - `shortName`: compact label shown near the density.
10
+ - `cellGeometry`: `cubic`, `hexagonal`, or `tetragonal`.
11
+ - `coordinationNumber`: nearest-neighbor count.
12
+ - `atomsPerCell`: net atoms or formula units per conventional cell.
13
+ - `packingFactor`: decimal packing fraction. Use an estimate if the structure is not a hard-sphere metal.
14
+ - `radiusToA`: atomic radius divided by lattice parameter `a`.
15
+ - `cToA`: optional, only for non-cubic cells.
16
+ - `sites`: atom positions normalized from 0 to 1 inside the cell.
17
+ 3. Export the structure from the file.
18
+ 4. Add it to `structures/index.ts`.
19
+
20
+ Site roles control color only:
21
+
22
+ - `corner`: orange boundary atoms.
23
+ - `face`: turquoise face or edge atoms.
24
+ - `interior`: violet atoms inside the cell.
25
+
26
+ If you also want a real material preset for the structure, add it to `MATERIAL_PRESETS` in `../data.ts` and point `latticeId` to the structure `id`.
@@ -0,0 +1,19 @@
1
+ import type { LatticeStructure } from '../data';
2
+ import { cubeCorners, cubeEdges, cubeVertices } from './shared';
3
+
4
+ export const bodyCenteredCubic: LatticeStructure = {
5
+ id: 'body-centered-cubic',
6
+ name: 'Body-centered cubic',
7
+ shortName: 'BCC',
8
+ cellGeometry: 'cubic',
9
+ coordinationNumber: 8,
10
+ atomsPerCell: 2,
11
+ packingFactor: (Math.PI * Math.sqrt(3)) / 8,
12
+ radiusToA: Math.sqrt(3) / 4,
13
+ vertices: cubeVertices,
14
+ edges: cubeEdges,
15
+ sites: [
16
+ ...cubeCorners('bcc'),
17
+ { id: 'bcc-body-center', x: 0.5, y: 0.5, z: 0.5, role: 'interior' },
18
+ ],
19
+ };
@@ -0,0 +1,19 @@
1
+ import type { LatticeStructure } from '../data';
2
+ import { cubeCorners, cubeEdges, cubeVertices } from './shared';
3
+
4
+ export const cesiumChloride: LatticeStructure = {
5
+ id: 'cesium-chloride',
6
+ name: 'Cesium chloride',
7
+ shortName: 'CsCl',
8
+ cellGeometry: 'cubic',
9
+ coordinationNumber: 8,
10
+ atomsPerCell: 1,
11
+ packingFactor: 0.732,
12
+ radiusToA: Math.sqrt(3) / 2,
13
+ vertices: cubeVertices,
14
+ edges: cubeEdges,
15
+ sites: [
16
+ ...cubeCorners('cscl'),
17
+ { id: 'cscl-body-center', x: 0.5, y: 0.5, z: 0.5, role: 'interior' },
18
+ ],
19
+ };
@@ -0,0 +1,23 @@
1
+ import type { LatticeStructure } from '../data';
2
+ import { cubeCorners, cubeEdges, cubeFaceCenters, cubeVertices, renamedSites } from './shared';
3
+
4
+ export const diamondCubic: LatticeStructure = {
5
+ id: 'diamond-cubic',
6
+ name: 'Diamond cubic',
7
+ shortName: 'DC',
8
+ cellGeometry: 'cubic',
9
+ coordinationNumber: 4,
10
+ atomsPerCell: 8,
11
+ packingFactor: Math.PI * Math.sqrt(3) / 16,
12
+ radiusToA: Math.sqrt(3) / 8,
13
+ vertices: cubeVertices,
14
+ edges: cubeEdges,
15
+ sites: [
16
+ ...cubeCorners('diamond'),
17
+ ...renamedSites('diamond', cubeFaceCenters),
18
+ { id: 'diamond-tetra-a', x: 0.25, y: 0.25, z: 0.25, role: 'interior' },
19
+ { id: 'diamond-tetra-b', x: 0.75, y: 0.75, z: 0.25, role: 'interior' },
20
+ { id: 'diamond-tetra-c', x: 0.75, y: 0.25, z: 0.75, role: 'interior' },
21
+ { id: 'diamond-tetra-d', x: 0.25, y: 0.75, z: 0.75, role: 'interior' },
22
+ ],
23
+ };
@@ -0,0 +1,16 @@
1
+ import type { LatticeStructure } from '../data';
2
+ import { cubeCorners, cubeEdges, cubeFaceCenters, cubeVertices, renamedSites } from './shared';
3
+
4
+ export const faceCenteredCubic: LatticeStructure = {
5
+ id: 'face-centered-cubic',
6
+ name: 'Face-centered cubic',
7
+ shortName: 'FCC',
8
+ cellGeometry: 'cubic',
9
+ coordinationNumber: 12,
10
+ atomsPerCell: 4,
11
+ packingFactor: Math.PI / (3 * Math.sqrt(2)),
12
+ radiusToA: Math.sqrt(2) / 4,
13
+ vertices: cubeVertices,
14
+ edges: cubeEdges,
15
+ sites: [...cubeCorners('fcc'), ...renamedSites('fcc', cubeFaceCenters)],
16
+ };
@@ -0,0 +1,30 @@
1
+ import type { LatticeStructure } from '../data';
2
+ import { hexEdges, hexVertices } from './shared';
3
+
4
+ export const hexagonalClosePacked: LatticeStructure = {
5
+ id: 'hexagonal-close-packed',
6
+ name: 'Hexagonal close-packed',
7
+ shortName: 'HCP',
8
+ cellGeometry: 'hexagonal',
9
+ coordinationNumber: 12,
10
+ atomsPerCell: 6,
11
+ packingFactor: 0.74048,
12
+ radiusToA: 0.5,
13
+ cToA: 1.633,
14
+ vertices: hexVertices,
15
+ edges: hexEdges,
16
+ sites: [
17
+ ...hexVertices.map(([x, y, z], index) => ({
18
+ id: `hcp-boundary-${index}`,
19
+ x: (x + 1) / 2,
20
+ y: (y + 0.866) / 1.732,
21
+ z,
22
+ role: 'corner' as const,
23
+ })),
24
+ { id: 'hcp-center-bottom', x: 0.5, y: 0.5, z: 0, role: 'face' },
25
+ { id: 'hcp-center-top', x: 0.5, y: 0.5, z: 1, role: 'face' },
26
+ { id: 'hcp-interior-a', x: 0.33, y: 0.42, z: 0.5, role: 'interior' },
27
+ { id: 'hcp-interior-b', x: 0.67, y: 0.58, z: 0.5, role: 'interior' },
28
+ { id: 'hcp-interior-c', x: 0.5, y: 0.28, z: 0.5, role: 'interior' },
29
+ ],
30
+ };
@@ -0,0 +1,25 @@
1
+ import { bodyCenteredCubic } from './body-centered-cubic';
2
+ import { cesiumChloride } from './cesium-chloride';
3
+ import { diamondCubic } from './diamond-cubic';
4
+ import { faceCenteredCubic } from './face-centered-cubic';
5
+ import { hexagonalClosePacked } from './hexagonal-close-packed';
6
+ import { perovskite } from './perovskite';
7
+ import { rockSalt } from './rock-salt';
8
+ import { rutile } from './rutile';
9
+ import { simpleCubic } from './simple-cubic';
10
+ import { wurtzite } from './wurtzite';
11
+ import { zincBlende } from './zinc-blende';
12
+
13
+ export const LATTICE_STRUCTURES = [
14
+ simpleCubic,
15
+ bodyCenteredCubic,
16
+ faceCenteredCubic,
17
+ hexagonalClosePacked,
18
+ diamondCubic,
19
+ rockSalt,
20
+ cesiumChloride,
21
+ zincBlende,
22
+ wurtzite,
23
+ perovskite,
24
+ rutile,
25
+ ];
@@ -0,0 +1,20 @@
1
+ import type { LatticeStructure } from '../data';
2
+ import { cubeCorners, cubeEdges, cubeFaceCenters, cubeVertices, renamedSites } from './shared';
3
+
4
+ export const perovskite: LatticeStructure = {
5
+ id: 'perovskite',
6
+ name: 'Cubic perovskite',
7
+ shortName: 'ABO3',
8
+ cellGeometry: 'cubic',
9
+ coordinationNumber: 6,
10
+ atomsPerCell: 1,
11
+ packingFactor: 0.64,
12
+ radiusToA: 0.5,
13
+ vertices: cubeVertices,
14
+ edges: cubeEdges,
15
+ sites: [
16
+ ...cubeCorners('perovskite'),
17
+ { id: 'perovskite-body-center', x: 0.5, y: 0.5, z: 0.5, role: 'interior' },
18
+ ...renamedSites('perovskite-oxygen', cubeFaceCenters),
19
+ ],
20
+ };
@@ -0,0 +1,23 @@
1
+ import type { LatticeStructure } from '../data';
2
+ import { cubeCorners, cubeEdges, cubeFaceCenters, cubeVertices, renamedSites } from './shared';
3
+
4
+ export const rockSalt: LatticeStructure = {
5
+ id: 'rock-salt',
6
+ name: 'Rock salt',
7
+ shortName: 'NaCl',
8
+ cellGeometry: 'cubic',
9
+ coordinationNumber: 6,
10
+ atomsPerCell: 4,
11
+ packingFactor: 0.667,
12
+ radiusToA: 0.5,
13
+ vertices: cubeVertices,
14
+ edges: cubeEdges,
15
+ sites: [
16
+ ...cubeCorners('rock-salt'),
17
+ ...renamedSites('rock-salt', cubeFaceCenters),
18
+ { id: 'rock-salt-edge-a', x: 0.5, y: 0, z: 0, role: 'face' },
19
+ { id: 'rock-salt-edge-b', x: 0, y: 0.5, z: 0, role: 'face' },
20
+ { id: 'rock-salt-edge-c', x: 0, y: 0, z: 0.5, role: 'face' },
21
+ { id: 'rock-salt-center', x: 0.5, y: 0.5, z: 0.5, role: 'interior' },
22
+ ],
23
+ };
@@ -0,0 +1,25 @@
1
+ import type { LatticeStructure } from '../data';
2
+ import { cubeCorners, cubeEdges, cubeVertices } from './shared';
3
+
4
+ export const rutile: LatticeStructure = {
5
+ id: 'rutile',
6
+ name: 'Rutile',
7
+ shortName: 'TiO2',
8
+ cellGeometry: 'tetragonal',
9
+ coordinationNumber: 6,
10
+ atomsPerCell: 2,
11
+ packingFactor: 0.58,
12
+ radiusToA: 0.31,
13
+ cToA: 0.644,
14
+ vertices: cubeVertices,
15
+ edges: cubeEdges,
16
+ sites: [
17
+ ...cubeCorners('rutile'),
18
+ { id: 'rutile-metal-a', x: 0, y: 0, z: 0, role: 'corner' },
19
+ { id: 'rutile-metal-b', x: 0.5, y: 0.5, z: 0.5, role: 'interior' },
20
+ { id: 'rutile-oxygen-a', x: 0.305, y: 0.305, z: 0, role: 'face' },
21
+ { id: 'rutile-oxygen-b', x: 0.695, y: 0.695, z: 0, role: 'face' },
22
+ { id: 'rutile-oxygen-c', x: 0.195, y: 0.805, z: 0.5, role: 'interior' },
23
+ { id: 'rutile-oxygen-d', x: 0.805, y: 0.195, z: 0.5, role: 'interior' },
24
+ ],
25
+ };