Mercurial > repos > public > sbplib_julia
annotate Notes.md @ 427:1c41f4fd3e61
Add some notes and todos
author | Jonatan Werpers <jonatan@werpers.com> |
---|---|
date | Mon, 19 Oct 2020 10:28:21 +0200 |
parents | 10a67ac48d6e |
children | 8f9b3eac128a |
rev | line source |
---|---|
318
0c8d4a734c4f
Add some todos and add a Notes.md file
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
1 # Notes |
0c8d4a734c4f
Add some todos and add a Notes.md file
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
2 |
0c8d4a734c4f
Add some todos and add a Notes.md file
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
3 ## Known size of range and domain? |
320
d705b397aa33
Clean up Notes.md and TODO.md
Jonatan Werpers <jonatan@werpers.com>
parents:
319
diff
changeset
|
4 Is there any reason to use a trait to differentiate between fixed size and unknown size? |
d705b397aa33
Clean up Notes.md and TODO.md
Jonatan Werpers <jonatan@werpers.com>
parents:
319
diff
changeset
|
5 |
379
de4746d6d126
Add some notes and todos
Jonatan Werpers <jonatan@werpers.com>
parents:
332
diff
changeset
|
6 When do we need to know the size of the range and domain? |
de4746d6d126
Add some notes and todos
Jonatan Werpers <jonatan@werpers.com>
parents:
332
diff
changeset
|
7 * When indexing to provide boundschecking? |
de4746d6d126
Add some notes and todos
Jonatan Werpers <jonatan@werpers.com>
parents:
332
diff
changeset
|
8 * When doing specialised computations for different parts of the range/domain? |
de4746d6d126
Add some notes and todos
Jonatan Werpers <jonatan@werpers.com>
parents:
332
diff
changeset
|
9 * More? |
319
05ac7d7f9176
Move research and thinking from TODO.md to Notes.md
Jonatan Werpers <jonatan@werpers.com>
parents:
318
diff
changeset
|
10 |
379
de4746d6d126
Add some notes and todos
Jonatan Werpers <jonatan@werpers.com>
parents:
332
diff
changeset
|
11 Maybe if we should have dynamic sizing it could be only for the range. `domain_size` would not be implemented. And the `range_size` would be a function of a vector that the TensorMapping is applied to. |
332
535f1bff4bcc
Add some notes and some todos
Jonatan Werpers <jonatan@werpers.com>
parents:
320
diff
changeset
|
12 |
319
05ac7d7f9176
Move research and thinking from TODO.md to Notes.md
Jonatan Werpers <jonatan@werpers.com>
parents:
318
diff
changeset
|
13 ## Reasearch and thinking |
05ac7d7f9176
Move research and thinking from TODO.md to Notes.md
Jonatan Werpers <jonatan@werpers.com>
parents:
318
diff
changeset
|
14 - [ ] Use a trait to indicate if a TensorMapping uses indices with regions. |
05ac7d7f9176
Move research and thinking from TODO.md to Notes.md
Jonatan Werpers <jonatan@werpers.com>
parents:
318
diff
changeset
|
15 The default should be that they do NOT. |
05ac7d7f9176
Move research and thinking from TODO.md to Notes.md
Jonatan Werpers <jonatan@werpers.com>
parents:
318
diff
changeset
|
16 - [ ] What to name this trait? Can we call it IndexStyle but not export it to avoid conflicts with Base.IndexStyle? |
05ac7d7f9176
Move research and thinking from TODO.md to Notes.md
Jonatan Werpers <jonatan@werpers.com>
parents:
318
diff
changeset
|
17 - [ ] Use a trait to indicate that a TensorMapping har the same range and domain? |
05ac7d7f9176
Move research and thinking from TODO.md to Notes.md
Jonatan Werpers <jonatan@werpers.com>
parents:
318
diff
changeset
|
18 - [ ] Rename all the Tensor stuff to just LazyOperator, LazyApplication and so on? |
05ac7d7f9176
Move research and thinking from TODO.md to Notes.md
Jonatan Werpers <jonatan@werpers.com>
parents:
318
diff
changeset
|
19 - [ ] Figure out repeated application of regioned TensorMappings. Maybe an instance of a tensor mapping needs to know the exact size of the range and domain for this to work? |
05ac7d7f9176
Move research and thinking from TODO.md to Notes.md
Jonatan Werpers <jonatan@werpers.com>
parents:
318
diff
changeset
|
20 - [ ] Check how the native julia doc generator works |
05ac7d7f9176
Move research and thinking from TODO.md to Notes.md
Jonatan Werpers <jonatan@werpers.com>
parents:
318
diff
changeset
|
21 - [ ] Check if Vidars design docs fit in there |
05ac7d7f9176
Move research and thinking from TODO.md to Notes.md
Jonatan Werpers <jonatan@werpers.com>
parents:
318
diff
changeset
|
22 - [ ] Create a macro @lazy which replaces a binary op (+,-) by its lazy equivalent? Would be a neat way to indicate which evaluations are lazy without cluttering/confusing with special characters. |
05ac7d7f9176
Move research and thinking from TODO.md to Notes.md
Jonatan Werpers <jonatan@werpers.com>
parents:
318
diff
changeset
|
23 - [ ] Specificera operatorer i TOML eller något liknande? |
05ac7d7f9176
Move research and thinking from TODO.md to Notes.md
Jonatan Werpers <jonatan@werpers.com>
parents:
318
diff
changeset
|
24 H.. H_gamma etc.) |
332
535f1bff4bcc
Add some notes and some todos
Jonatan Werpers <jonatan@werpers.com>
parents:
320
diff
changeset
|
25 - [ ] Dispatch in Lower() instead of the type Lower so `::Lower` instead of `::Type{Lower}` ??? |
535f1bff4bcc
Add some notes and some todos
Jonatan Werpers <jonatan@werpers.com>
parents:
320
diff
changeset
|
26 Seems better unless there is some specific reason to use the type instead of the value. |
379
de4746d6d126
Add some notes and todos
Jonatan Werpers <jonatan@werpers.com>
parents:
332
diff
changeset
|
27 - [ ] How do we handle mixes of periodic and non-periodic grids? Seems it should be supported on the grid level and on the 1d operator level. Between there it should be transparent. |
de4746d6d126
Add some notes and todos
Jonatan Werpers <jonatan@werpers.com>
parents:
332
diff
changeset
|
28 - [ ] Can we have a trait to tell if a TensorMapping is transposable? |
de4746d6d126
Add some notes and todos
Jonatan Werpers <jonatan@werpers.com>
parents:
332
diff
changeset
|
29 - [ ] Is it ok to have "Constructors" for abstract types which create subtypes? For example a Grids() functions that gives different kind of grids based on input? |
410
26e186b565b3
Add some notes about vector valued grid functions
Jonatan Werpers <jonatan@werpers.com>
parents:
379
diff
changeset
|
30 |
26e186b565b3
Add some notes about vector valued grid functions
Jonatan Werpers <jonatan@werpers.com>
parents:
379
diff
changeset
|
31 ## Vector valued grid functions |
26e186b565b3
Add some notes about vector valued grid functions
Jonatan Werpers <jonatan@werpers.com>
parents:
379
diff
changeset
|
32 Från slack konversation: |
26e186b565b3
Add some notes about vector valued grid functions
Jonatan Werpers <jonatan@werpers.com>
parents:
379
diff
changeset
|
33 |
26e186b565b3
Add some notes about vector valued grid functions
Jonatan Werpers <jonatan@werpers.com>
parents:
379
diff
changeset
|
34 Jonatan Werpers: |
26e186b565b3
Add some notes about vector valued grid functions
Jonatan Werpers <jonatan@werpers.com>
parents:
379
diff
changeset
|
35 Med vektorvärda gridfunktioner vill vi ju fortfarande att grid funktionen ska vara till exempel AbstractArray{LitenVektor,2} |
26e186b565b3
Add some notes about vector valued grid functions
Jonatan Werpers <jonatan@werpers.com>
parents:
379
diff
changeset
|
36 Och att man ska kunna göra allt man vill med LitenVektor |
26e186b565b3
Add some notes about vector valued grid functions
Jonatan Werpers <jonatan@werpers.com>
parents:
379
diff
changeset
|
37 typ addera, jämföra osv |
26e186b565b3
Add some notes about vector valued grid functions
Jonatan Werpers <jonatan@werpers.com>
parents:
379
diff
changeset
|
38 Och då borde points returnera AbstractArray{LitenVektor{Float,2},2} för ett 2d nät |
26e186b565b3
Add some notes about vector valued grid functions
Jonatan Werpers <jonatan@werpers.com>
parents:
379
diff
changeset
|
39 Men det kanske bara ska vara Static arrays? |
26e186b565b3
Add some notes about vector valued grid functions
Jonatan Werpers <jonatan@werpers.com>
parents:
379
diff
changeset
|
40 |
26e186b565b3
Add some notes about vector valued grid functions
Jonatan Werpers <jonatan@werpers.com>
parents:
379
diff
changeset
|
41 Vidar Stiernström: |
26e186b565b3
Add some notes about vector valued grid functions
Jonatan Werpers <jonatan@werpers.com>
parents:
379
diff
changeset
|
42 Ja, jag vet inte riktigt vad som är en rimlig representation |
26e186b565b3
Add some notes about vector valued grid functions
Jonatan Werpers <jonatan@werpers.com>
parents:
379
diff
changeset
|
43 Du menar en vektor av static arrays då? |
26e186b565b3
Add some notes about vector valued grid functions
Jonatan Werpers <jonatan@werpers.com>
parents:
379
diff
changeset
|
44 |
26e186b565b3
Add some notes about vector valued grid functions
Jonatan Werpers <jonatan@werpers.com>
parents:
379
diff
changeset
|
45 Jonatan Werpers: |
26e186b565b3
Add some notes about vector valued grid functions
Jonatan Werpers <jonatan@werpers.com>
parents:
379
diff
changeset
|
46 Ja, att LitenVektor är en StaticArray |
26e186b565b3
Add some notes about vector valued grid functions
Jonatan Werpers <jonatan@werpers.com>
parents:
379
diff
changeset
|
47 |
26e186b565b3
Add some notes about vector valued grid functions
Jonatan Werpers <jonatan@werpers.com>
parents:
379
diff
changeset
|
48 Vidar Stiernström: |
26e186b565b3
Add some notes about vector valued grid functions
Jonatan Werpers <jonatan@werpers.com>
parents:
379
diff
changeset
|
49 Tuplar känns typ rätt inuitivt för att representera värdet i en punkt |
26e186b565b3
Add some notes about vector valued grid functions
Jonatan Werpers <jonatan@werpers.com>
parents:
379
diff
changeset
|
50 men |
26e186b565b3
Add some notes about vector valued grid functions
Jonatan Werpers <jonatan@werpers.com>
parents:
379
diff
changeset
|
51 det suger att man inte har + och - för dem |
26e186b565b3
Add some notes about vector valued grid functions
Jonatan Werpers <jonatan@werpers.com>
parents:
379
diff
changeset
|
52 |
26e186b565b3
Add some notes about vector valued grid functions
Jonatan Werpers <jonatan@werpers.com>
parents:
379
diff
changeset
|
53 Jonatan Werpers: |
26e186b565b3
Add some notes about vector valued grid functions
Jonatan Werpers <jonatan@werpers.com>
parents:
379
diff
changeset
|
54 Ja precis |
26e186b565b3
Add some notes about vector valued grid functions
Jonatan Werpers <jonatan@werpers.com>
parents:
379
diff
changeset
|
55 |
26e186b565b3
Add some notes about vector valued grid functions
Jonatan Werpers <jonatan@werpers.com>
parents:
379
diff
changeset
|
56 Vidar Stiernström: |
26e186b565b3
Add some notes about vector valued grid functions
Jonatan Werpers <jonatan@werpers.com>
parents:
379
diff
changeset
|
57 så kanske är bra med static arrays i detta fall |
26e186b565b3
Add some notes about vector valued grid functions
Jonatan Werpers <jonatan@werpers.com>
parents:
379
diff
changeset
|
58 |
26e186b565b3
Add some notes about vector valued grid functions
Jonatan Werpers <jonatan@werpers.com>
parents:
379
diff
changeset
|
59 Jonatan Werpers: |
26e186b565b3
Add some notes about vector valued grid functions
Jonatan Werpers <jonatan@werpers.com>
parents:
379
diff
changeset
|
60 Man vill ju kunna köra en Operator rakt på och vara klar eller? |
26e186b565b3
Add some notes about vector valued grid functions
Jonatan Werpers <jonatan@werpers.com>
parents:
379
diff
changeset
|
61 |
26e186b565b3
Add some notes about vector valued grid functions
Jonatan Werpers <jonatan@werpers.com>
parents:
379
diff
changeset
|
62 Vidar Stiernström: |
26e186b565b3
Add some notes about vector valued grid functions
Jonatan Werpers <jonatan@werpers.com>
parents:
379
diff
changeset
|
63 Har inte alls tänkt på hur det vi gör funkar mot vektorvärda funktioner |
26e186b565b3
Add some notes about vector valued grid functions
Jonatan Werpers <jonatan@werpers.com>
parents:
379
diff
changeset
|
64 men känns som staticarrays är hur man vill göra det |
26e186b565b3
Add some notes about vector valued grid functions
Jonatan Werpers <jonatan@werpers.com>
parents:
379
diff
changeset
|
65 tuplar är ju immutable också |
26e186b565b3
Add some notes about vector valued grid functions
Jonatan Werpers <jonatan@werpers.com>
parents:
379
diff
changeset
|
66 blir jobbigt om man bara agerar på en komponent då |
26e186b565b3
Add some notes about vector valued grid functions
Jonatan Werpers <jonatan@werpers.com>
parents:
379
diff
changeset
|
67 |
26e186b565b3
Add some notes about vector valued grid functions
Jonatan Werpers <jonatan@werpers.com>
parents:
379
diff
changeset
|
68 Jonatan Werpers: |
26e186b565b3
Add some notes about vector valued grid functions
Jonatan Werpers <jonatan@werpers.com>
parents:
379
diff
changeset
|
69 Hm… |
26e186b565b3
Add some notes about vector valued grid functions
Jonatan Werpers <jonatan@werpers.com>
parents:
379
diff
changeset
|
70 Tål att tänkas på |
26e186b565b3
Add some notes about vector valued grid functions
Jonatan Werpers <jonatan@werpers.com>
parents:
379
diff
changeset
|
71 Men det lär ju bli mer indirektion med mutables eller? |
26e186b565b3
Add some notes about vector valued grid functions
Jonatan Werpers <jonatan@werpers.com>
parents:
379
diff
changeset
|
72 Hur fungerar det? |
26e186b565b3
Add some notes about vector valued grid functions
Jonatan Werpers <jonatan@werpers.com>
parents:
379
diff
changeset
|
73 Det finns ju hur som helst både SVector och MVector i StaticArrays |
26e186b565b3
Add some notes about vector valued grid functions
Jonatan Werpers <jonatan@werpers.com>
parents:
379
diff
changeset
|
74 |
26e186b565b3
Add some notes about vector valued grid functions
Jonatan Werpers <jonatan@werpers.com>
parents:
379
diff
changeset
|
75 Vidar Stiernström: |
26e186b565b3
Add some notes about vector valued grid functions
Jonatan Werpers <jonatan@werpers.com>
parents:
379
diff
changeset
|
76 När vi jobbat i c/c++ och kollat runt lite hur man brukar göra så lagrar man i princip alla sina obekanta i en lång vektor och så får man specificera i funktioerna vilken komponent man agerar på och till vilken man skriver |
26e186b565b3
Add some notes about vector valued grid functions
Jonatan Werpers <jonatan@werpers.com>
parents:
379
diff
changeset
|
77 så man lagrar grejer enl: w = [u1, v1, u2, v2, …] i 1D. |
26e186b565b3
Add some notes about vector valued grid functions
Jonatan Werpers <jonatan@werpers.com>
parents:
379
diff
changeset
|
78 Men alltså har ingen aning hur julia hanterar detta |
26e186b565b3
Add some notes about vector valued grid functions
Jonatan Werpers <jonatan@werpers.com>
parents:
379
diff
changeset
|
79 |
26e186b565b3
Add some notes about vector valued grid functions
Jonatan Werpers <jonatan@werpers.com>
parents:
379
diff
changeset
|
80 Jonatan Werpers: |
26e186b565b3
Add some notes about vector valued grid functions
Jonatan Werpers <jonatan@werpers.com>
parents:
379
diff
changeset
|
81 Det vi är ute efter kanske är att en grid funcktion är en AbstractArray{T,2} where T<:NågotSomViKanRäknaMed |
26e186b565b3
Add some notes about vector valued grid functions
Jonatan Werpers <jonatan@werpers.com>
parents:
379
diff
changeset
|
82 Och så får den typen var lite vad som helst. |
26e186b565b3
Add some notes about vector valued grid functions
Jonatan Werpers <jonatan@werpers.com>
parents:
379
diff
changeset
|
83 |
26e186b565b3
Add some notes about vector valued grid functions
Jonatan Werpers <jonatan@werpers.com>
parents:
379
diff
changeset
|
84 Vidar Stiernström: |
26e186b565b3
Add some notes about vector valued grid functions
Jonatan Werpers <jonatan@werpers.com>
parents:
379
diff
changeset
|
85 Tror det kan vara farligt att ha nåt som är AbstractArray{LitenArray{NDof},Dim} |
26e186b565b3
Add some notes about vector valued grid functions
Jonatan Werpers <jonatan@werpers.com>
parents:
379
diff
changeset
|
86 Jag gissar att det kompilatorn vill ha är en stor array med doubles |
26e186b565b3
Add some notes about vector valued grid functions
Jonatan Werpers <jonatan@werpers.com>
parents:
379
diff
changeset
|
87 |
26e186b565b3
Add some notes about vector valued grid functions
Jonatan Werpers <jonatan@werpers.com>
parents:
379
diff
changeset
|
88 Jonatan Werpers: |
26e186b565b3
Add some notes about vector valued grid functions
Jonatan Werpers <jonatan@werpers.com>
parents:
379
diff
changeset
|
89 Och sen är det upp till den som använder grejerna att vara smart |
26e186b565b3
Add some notes about vector valued grid functions
Jonatan Werpers <jonatan@werpers.com>
parents:
379
diff
changeset
|
90 Vill man vara trixig kan man väl då imlementera SuperHaxxorGridFunction <: AbstractArray{Array{…},2} som lagrar allt linjärt eller något sånt |
26e186b565b3
Add some notes about vector valued grid functions
Jonatan Werpers <jonatan@werpers.com>
parents:
379
diff
changeset
|
91 Det kommer väl lösa sig när man börjar implementera vektorvärda saker |
26e186b565b3
Add some notes about vector valued grid functions
Jonatan Werpers <jonatan@werpers.com>
parents:
379
diff
changeset
|
92 Euler nästa! |
26e186b565b3
Add some notes about vector valued grid functions
Jonatan Werpers <jonatan@werpers.com>
parents:
379
diff
changeset
|
93 New |
26e186b565b3
Add some notes about vector valued grid functions
Jonatan Werpers <jonatan@werpers.com>
parents:
379
diff
changeset
|
94 Vidar Stiernström: |
26e186b565b3
Add some notes about vector valued grid functions
Jonatan Werpers <jonatan@werpers.com>
parents:
379
diff
changeset
|
95 Det vore skönt att inte behöva skriva såhär varje gång man testar mot en tupel :smile: @test [gp[i]...] ≈ [p[i]...] atol=5e-13 |
26e186b565b3
Add some notes about vector valued grid functions
Jonatan Werpers <jonatan@werpers.com>
parents:
379
diff
changeset
|
96 |
26e186b565b3
Add some notes about vector valued grid functions
Jonatan Werpers <jonatan@werpers.com>
parents:
379
diff
changeset
|
97 Jonatan Werpers: |
26e186b565b3
Add some notes about vector valued grid functions
Jonatan Werpers <jonatan@werpers.com>
parents:
379
diff
changeset
|
98 https://github.com/JuliaArrays/ArraysOfArrays.jl |
26e186b565b3
Add some notes about vector valued grid functions
Jonatan Werpers <jonatan@werpers.com>
parents:
379
diff
changeset
|
99 https://github.com/jw3126/Setfield.jl |
423 | 100 |
101 ### Test-applikationer | |
102 div och grad operationer | |
103 | |
104 ### Alternativ: | |
427
1c41f4fd3e61
Add some notes and todos
Jonatan Werpers <jonatan@werpers.com>
parents:
423
diff
changeset
|
105 |
1c41f4fd3e61
Add some notes and todos
Jonatan Werpers <jonatan@werpers.com>
parents:
423
diff
changeset
|
106 #### 1.Använda tuplar |
1c41f4fd3e61
Add some notes and todos
Jonatan Werpers <jonatan@werpers.com>
parents:
423
diff
changeset
|
107 Fördelar: |
1c41f4fd3e61
Add some notes and todos
Jonatan Werpers <jonatan@werpers.com>
parents:
423
diff
changeset
|
108 |
1c41f4fd3e61
Add some notes and todos
Jonatan Werpers <jonatan@werpers.com>
parents:
423
diff
changeset
|
109 Nackdelar: |
1c41f4fd3e61
Add some notes and todos
Jonatan Werpers <jonatan@werpers.com>
parents:
423
diff
changeset
|
110 |
1c41f4fd3e61
Add some notes and todos
Jonatan Werpers <jonatan@werpers.com>
parents:
423
diff
changeset
|
111 Syntax: |
1c41f4fd3e61
Add some notes and todos
Jonatan Werpers <jonatan@werpers.com>
parents:
423
diff
changeset
|
112 ``` |
1c41f4fd3e61
Add some notes and todos
Jonatan Werpers <jonatan@werpers.com>
parents:
423
diff
changeset
|
113 f(x,y) = x^2 + y^2 |
1c41f4fd3e61
Add some notes and todos
Jonatan Werpers <jonatan@werpers.com>
parents:
423
diff
changeset
|
114 gf = eval_on_grid(g,f) |
1c41f4fd3e61
Add some notes and todos
Jonatan Werpers <jonatan@werpers.com>
parents:
423
diff
changeset
|
115 gf[2,3] # En tupel för en given gridpunkt |
1c41f4fd3e61
Add some notes and todos
Jonatan Werpers <jonatan@werpers.com>
parents:
423
diff
changeset
|
116 gf[2,3][2] # Andra komponenten av vektor fältet i en punkt. |
1c41f4fd3e61
Add some notes and todos
Jonatan Werpers <jonatan@werpers.com>
parents:
423
diff
changeset
|
117 |
1c41f4fd3e61
Add some notes and todos
Jonatan Werpers <jonatan@werpers.com>
parents:
423
diff
changeset
|
118 ``` |
1c41f4fd3e61
Add some notes and todos
Jonatan Werpers <jonatan@werpers.com>
parents:
423
diff
changeset
|
119 |
1c41f4fd3e61
Add some notes and todos
Jonatan Werpers <jonatan@werpers.com>
parents:
423
diff
changeset
|
120 #### 2.AbstractArray{T,2} where T |
423 | 121 Låta alla saker ta in AbstractArray{T,2} where T. Där T kan vara lite vad som helst, tillexemel en SVector eller Array. Men Differens-opertorerna bryr sig inte om det. |
427
1c41f4fd3e61
Add some notes and todos
Jonatan Werpers <jonatan@werpers.com>
parents:
423
diff
changeset
|
122 |
1c41f4fd3e61
Add some notes and todos
Jonatan Werpers <jonatan@werpers.com>
parents:
423
diff
changeset
|
123 En nackdel kan var hur man ska få ut gridfunktionen för tex andra komponenten. |
1c41f4fd3e61
Add some notes and todos
Jonatan Werpers <jonatan@werpers.com>
parents:
423
diff
changeset
|
124 |
1c41f4fd3e61
Add some notes and todos
Jonatan Werpers <jonatan@werpers.com>
parents:
423
diff
changeset
|
125 Syntax: |
1c41f4fd3e61
Add some notes and todos
Jonatan Werpers <jonatan@werpers.com>
parents:
423
diff
changeset
|
126 ``` |
1c41f4fd3e61
Add some notes and todos
Jonatan Werpers <jonatan@werpers.com>
parents:
423
diff
changeset
|
127 gf = eval(...) |
1c41f4fd3e61
Add some notes and todos
Jonatan Werpers <jonatan@werpers.com>
parents:
423
diff
changeset
|
128 gf[2,3] # Hela vektorn för en gridpunkt |
1c41f4fd3e61
Add some notes and todos
Jonatan Werpers <jonatan@werpers.com>
parents:
423
diff
changeset
|
129 gf[2,3][2] # Andra komponenten av vektor fältet. |
1c41f4fd3e61
Add some notes and todos
Jonatan Werpers <jonatan@werpers.com>
parents:
423
diff
changeset
|
130 ``` |
1c41f4fd3e61
Add some notes and todos
Jonatan Werpers <jonatan@werpers.com>
parents:
423
diff
changeset
|
131 #### 3.AbstractArray{T,2+1} where T |
1c41f4fd3e61
Add some notes and todos
Jonatan Werpers <jonatan@werpers.com>
parents:
423
diff
changeset
|
132 Man låter helt enkelt arrayen ha en extra dimension. En fördel är att man har en väldigt "native" typ. En nackdel kan vara att det eventuellt blir rörigt vilken dimension olika operatorer ska agera på. I värsta fall behöver vi "kroneckra in" de tillagda dimensionerna. Vektorfältets index kommer också att bli det första eftersom vi vill att de ska lagras kontinuerligt i minnet pga chachen. (Går kanske att lösa med en custom typ men då krånglar man till det för sig). En fördel skulle vara att man enkelt får ut olika komponenter. |
1c41f4fd3e61
Add some notes and todos
Jonatan Werpers <jonatan@werpers.com>
parents:
423
diff
changeset
|
133 |
1c41f4fd3e61
Add some notes and todos
Jonatan Werpers <jonatan@werpers.com>
parents:
423
diff
changeset
|
134 Syntax: |
1c41f4fd3e61
Add some notes and todos
Jonatan Werpers <jonatan@werpers.com>
parents:
423
diff
changeset
|
135 ``` |
1c41f4fd3e61
Add some notes and todos
Jonatan Werpers <jonatan@werpers.com>
parents:
423
diff
changeset
|
136 gf = eval_on_grid(g,f) |
1c41f4fd3e61
Add some notes and todos
Jonatan Werpers <jonatan@werpers.com>
parents:
423
diff
changeset
|
137 gf[:,2,3] # Hela vektorn för en gridpunkt |
1c41f4fd3e61
Add some notes and todos
Jonatan Werpers <jonatan@werpers.com>
parents:
423
diff
changeset
|
138 gf[2,2,3] # Andra komponenten av vektor fältet i en punkt. |
1c41f4fd3e61
Add some notes and todos
Jonatan Werpers <jonatan@werpers.com>
parents:
423
diff
changeset
|
139 gf[2,:,:] # |
1c41f4fd3e61
Add some notes and todos
Jonatan Werpers <jonatan@werpers.com>
parents:
423
diff
changeset
|
140 ``` |
1c41f4fd3e61
Add some notes and todos
Jonatan Werpers <jonatan@werpers.com>
parents:
423
diff
changeset
|
141 |
1c41f4fd3e61
Add some notes and todos
Jonatan Werpers <jonatan@werpers.com>
parents:
423
diff
changeset
|
142 ### Evaluering av funktioner på nät |
1c41f4fd3e61
Add some notes and todos
Jonatan Werpers <jonatan@werpers.com>
parents:
423
diff
changeset
|
143 Hur ska man skriva funktioner som evalueras på nätet? `f(x,y) = ...` eller `f(x̄) = ...`? Eller båda? Kan eval_on_grid se skillnad eller får användaren specificera? |
1c41f4fd3e61
Add some notes and todos
Jonatan Werpers <jonatan@werpers.com>
parents:
423
diff
changeset
|
144 |
1c41f4fd3e61
Add some notes and todos
Jonatan Werpers <jonatan@werpers.com>
parents:
423
diff
changeset
|
145 ``` |
1c41f4fd3e61
Add some notes and todos
Jonatan Werpers <jonatan@werpers.com>
parents:
423
diff
changeset
|
146 f(x,y) = [x^2, y^2] |
1c41f4fd3e61
Add some notes and todos
Jonatan Werpers <jonatan@werpers.com>
parents:
423
diff
changeset
|
147 f(x̄) = [x̄[1]^2, x̄[2]^2] |
1c41f4fd3e61
Add some notes and todos
Jonatan Werpers <jonatan@werpers.com>
parents:
423
diff
changeset
|
148 ``` |
1c41f4fd3e61
Add some notes and todos
Jonatan Werpers <jonatan@werpers.com>
parents:
423
diff
changeset
|
149 |
1c41f4fd3e61
Add some notes and todos
Jonatan Werpers <jonatan@werpers.com>
parents:
423
diff
changeset
|
150 Påverkas detta av hur vi förväntar oss kunna skapa lata gridfunktioner? |
1c41f4fd3e61
Add some notes and todos
Jonatan Werpers <jonatan@werpers.com>
parents:
423
diff
changeset
|
151 |
1c41f4fd3e61
Add some notes and todos
Jonatan Werpers <jonatan@werpers.com>
parents:
423
diff
changeset
|
152 ### Komponenter som gridfunktioner |
1c41f4fd3e61
Add some notes and todos
Jonatan Werpers <jonatan@werpers.com>
parents:
423
diff
changeset
|
153 För alternativ 1 och 2 har vi problemet hur vi får ut komponenter som vektorfält. Detta behöver antagligen kunna ske lazy. |
1c41f4fd3e61
Add some notes and todos
Jonatan Werpers <jonatan@werpers.com>
parents:
423
diff
changeset
|
154 Det finns ett par olika lösningar: |
1c41f4fd3e61
Add some notes and todos
Jonatan Werpers <jonatan@werpers.com>
parents:
423
diff
changeset
|
155 * Implementera en egen typ av view som tar hand om detta. Eller Accessors.jl? |
1c41f4fd3e61
Add some notes and todos
Jonatan Werpers <jonatan@werpers.com>
parents:
423
diff
changeset
|
156 * Använda en TensorMapping |
1c41f4fd3e61
Add some notes and todos
Jonatan Werpers <jonatan@werpers.com>
parents:
423
diff
changeset
|
157 * Någon typ av lazy-broadcast |
1c41f4fd3e61
Add some notes and todos
Jonatan Werpers <jonatan@werpers.com>
parents:
423
diff
changeset
|
158 * En lazy array som applicerar en funktion för varje element. |
1c41f4fd3e61
Add some notes and todos
Jonatan Werpers <jonatan@werpers.com>
parents:
423
diff
changeset
|
159 |
1c41f4fd3e61
Add some notes and todos
Jonatan Werpers <jonatan@werpers.com>
parents:
423
diff
changeset
|
160 Skulle vara en fördel om det är hyffsat generiskt så att en eventuell användare kan utöka det enkelt om de har någon egen exotisk typ. Eller ska man vila helt på |
1c41f4fd3e61
Add some notes and todos
Jonatan Werpers <jonatan@werpers.com>
parents:
423
diff
changeset
|
161 |
1c41f4fd3e61
Add some notes and todos
Jonatan Werpers <jonatan@werpers.com>
parents:
423
diff
changeset
|
162 Syntax: |
1c41f4fd3e61
Add some notes and todos
Jonatan Werpers <jonatan@werpers.com>
parents:
423
diff
changeset
|
163 ``` |
1c41f4fd3e61
Add some notes and todos
Jonatan Werpers <jonatan@werpers.com>
parents:
423
diff
changeset
|
164 gf = eval(...) |
1c41f4fd3e61
Add some notes and todos
Jonatan Werpers <jonatan@werpers.com>
parents:
423
diff
changeset
|
165 component(gf,2) # Andra komponenten av en vektor |
1c41f4fd3e61
Add some notes and todos
Jonatan Werpers <jonatan@werpers.com>
parents:
423
diff
changeset
|
166 component(gf,2,3) # (2,3) elementet av en matris |
1c41f4fd3e61
Add some notes and todos
Jonatan Werpers <jonatan@werpers.com>
parents:
423
diff
changeset
|
167 component(gf,:,2) # Andra kolumnen av en matris |
1c41f4fd3e61
Add some notes and todos
Jonatan Werpers <jonatan@werpers.com>
parents:
423
diff
changeset
|
168 @ourview gf[:,:][2] |
1c41f4fd3e61
Add some notes and todos
Jonatan Werpers <jonatan@werpers.com>
parents:
423
diff
changeset
|
169 ``` |