annotate Notes.md @ 423:10a67ac48d6e

Add some notes
author Jonatan Werpers <jonatan@werpers.com>
date Sun, 18 Oct 2020 22:21:43 +0200
parents 26e186b565b3
children 1c41f4fd3e61
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
10a67ac48d6e Add some notes
Jonatan Werpers <jonatan@werpers.com>
parents: 410
diff changeset
100
10a67ac48d6e Add some notes
Jonatan Werpers <jonatan@werpers.com>
parents: 410
diff changeset
101 ### Test-applikationer
10a67ac48d6e Add some notes
Jonatan Werpers <jonatan@werpers.com>
parents: 410
diff changeset
102 div och grad operationer
10a67ac48d6e Add some notes
Jonatan Werpers <jonatan@werpers.com>
parents: 410
diff changeset
103
10a67ac48d6e Add some notes
Jonatan Werpers <jonatan@werpers.com>
parents: 410
diff changeset
104 ### Alternativ:
10a67ac48d6e Add some notes
Jonatan Werpers <jonatan@werpers.com>
parents: 410
diff changeset
105 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.