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.