Mercurial > repos > public > sbplib_julia
comparison Notes.md @ 1326:e352630a0309 refactor/grids
Fix a bunch of typos
author | Jonatan Werpers <jonatan@werpers.com> |
---|---|
date | Sun, 30 Apr 2023 22:33:13 +0200 |
parents | 31d0b7638304 |
children | c0c1189c5f2e |
comparison
equal
deleted
inserted
replaced
1325:797b4ee51edf | 1326:e352630a0309 |
---|---|
200 Preferably dimensions and sizes should be checked when lazy objects are created, for example TensorApplication, TensorComposition and so on. If dimension checks decreases performance we can make them skippable later. | 200 Preferably dimensions and sizes should be checked when lazy objects are created, for example TensorApplication, TensorComposition and so on. If dimension checks decreases performance we can make them skippable later. |
201 | 201 |
202 ## Vector valued grid functions | 202 ## Vector valued grid functions |
203 | 203 |
204 ### Test-applikationer | 204 ### Test-applikationer |
205 div och grad operationer | 205 div- och grad-operationer |
206 | 206 |
207 Enligt Wikipedia verkar det som att `∇⋅` agerar på första dimensionen av ett tensor fält och `div()` på sista. | 207 Enligt Wikipedia verkar det som att `∇⋅` agerar på första dimensionen av ett tensorfält och `div()` på sista. |
208 Om man generaliserar kanske `∇` i så fall bara lägger till en dimension i början. | 208 Om man generaliserar kanske `∇` i så fall bara lägger till en dimension i början. |
209 | 209 |
210 Kan vi implementera `⋅`(\cdot) så att de fungerar som man vill för både tensor-fält och tensor-operatorer? | 210 Kan vi implementera `⋅`(\cdot) så att de fungerar som man vill för både tensor-fält och tensor-operatorer? |
211 | 211 |
212 Är `∇` ett tensor-fält av tensor-operatorer? Vad är ett tensor-fält i vår kod? Är det en special-fall av en tensor-mapping? | 212 Är `∇` ett tensor-fält av tensor-operatorer? Vad är ett tensor-fält i vår kod? Är det en special-fall av en tensor-mapping? |
213 | 213 |
214 ### Grid-funktionen | 214 ### Grid-funktionen |
215 Grid-funktionon har typen `AbstractArray{T,2} where T`. | 215 Grid-funktioner har typen `AbstractArray{T,2} where T`. |
216 `T` kan vara lite vad som helst, tillexemel en SVector eller Array, eller tuple. TensorOperatorerna bryr sig inte om exakt vad det är, mer än att typen måste stödja de operationer som operatorn använder. | 216 `T` kan vara lite vad som helst, tillexemel en SVector eller Array, eller Tuple. Tensoroperatorerna bryr sig inte om exakt vad det är, mer än att typen måste stödja de operationer som operatorn använder. |
217 | 217 |
218 En nackdel kan vara hur man ska få ut gridfunktionen för tex andra komponenten. | 218 En nackdel kan vara hur man ska få ut gridfunktionen för tex andra komponenten. |
219 | 219 |
220 Syntax: | 220 Syntax: |
221 ``` | 221 ``` |
223 gf = evalOn(g, f) | 223 gf = evalOn(g, f) |
224 gf[2,3] # x̄ för en viss gridpunkt | 224 gf[2,3] # x̄ för en viss gridpunkt |
225 gf[2,3][2] # x̄[2] för en viss gridpunkt | 225 gf[2,3][2] # x̄[2] för en viss gridpunkt |
226 ``` | 226 ``` |
227 | 227 |
228 Note: Behöver bestämma om eval on skickar in `x̄` eller `x̄...` till `f`. Eller om man kan stödja båda. | 228 Note: Behöver bestämma om `eval_on` skickar in `x̄` eller `x̄...` till `f`. Eller om man kan stödja båda. |
229 | 229 |
230 ### Tensor operatorer | 230 ### Tensor operatorer |
231 Vi kan ha tensor-operatorer som agerar på ett skalärt fält och ger ett vektorfält eller tensorfält. | 231 Vi kan ha tensor-operatorer som agerar på ett skalärt fält och ger ett vektorfält eller tensorfält. |
232 Vi kan också ha tensor-operatorer som agerar på ett vektorfält eller tensorfält och ger ett skalärt fält. | 232 Vi kan också ha tensor-operatorer som agerar på ett vektorfält eller tensorfält och ger ett skalärt fält. |
233 | 233 |
241 Skulle kunna ha en funktion `range_type(::LazyTensor, ::Type{domain_type})` | 241 Skulle kunna ha en funktion `range_type(::LazyTensor, ::Type{domain_type})` |
242 | 242 |
243 Kanske kan man implementera `⋅(tm::LazyTensor{R,D}, v::AbstractArray{T,D})` där T är en AbstractArray, tm på något sätt har komponenter, lika många som T har element. | 243 Kanske kan man implementera `⋅(tm::LazyTensor{R,D}, v::AbstractArray{T,D})` där T är en AbstractArray, tm på något sätt har komponenter, lika många som T har element. |
244 | 244 |
245 ### Komponenter som gridfunktioner | 245 ### Komponenter som gridfunktioner |
246 En viktig operation för vektor fält är att kunna få ut komponenter som grid-funktioner. Detta behöver antagligen kunna ske lazy. | 246 En viktig operation för vektorfält är att kunna få ut komponenter som grid-funktioner. Detta behöver antagligen kunna ske lazy. |
247 Det finns ett par olika lösningar: | 247 Det finns ett par olika lösningar: |
248 * Implementera en egen typ av view som tar hand om detta. Eller Accessors.jl? | 248 * Implementera en egen typ av view som tar hand om detta. Eller Accessors.jl? |
249 * Använda en LazyTensor | 249 * Använda en LazyTensor |
250 * Någon typ av lazy-broadcast | 250 * Någon typ av lazy-broadcast |
251 * En lazy array som applicerar en funktion för varje element. | 251 * En lazy array som applicerar en funktion för varje element. |