comparison Notes.md @ 410:26e186b565b3

Add some notes about vector valued grid functions
author Jonatan Werpers <jonatan@werpers.com>
date Thu, 15 Oct 2020 21:06:28 +0200
parents de4746d6d126
children 10a67ac48d6e
comparison
equal deleted inserted replaced
409:b4e65cb18423 410:26e186b565b3
25 - [ ] Dispatch in Lower() instead of the type Lower so `::Lower` instead of `::Type{Lower}` ??? 25 - [ ] Dispatch in Lower() instead of the type Lower so `::Lower` instead of `::Type{Lower}` ???
26 Seems better unless there is some specific reason to use the type instead of the value. 26 Seems better unless there is some specific reason to use the type instead of the value.
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. 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.
28 - [ ] Can we have a trait to tell if a TensorMapping is transposable? 28 - [ ] Can we have a trait to tell if a TensorMapping is transposable?
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? 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?
30
31 ## Vector valued grid functions
32 Från slack konversation:
33
34 Jonatan Werpers:
35 Med vektorvärda gridfunktioner vill vi ju fortfarande att grid funktionen ska vara till exempel AbstractArray{LitenVektor,2}
36 Och att man ska kunna göra allt man vill med LitenVektor
37 typ addera, jämföra osv
38 Och då borde points returnera AbstractArray{LitenVektor{Float,2},2} för ett 2d nät
39 Men det kanske bara ska vara Static arrays?
40
41 Vidar Stiernström:
42 Ja, jag vet inte riktigt vad som är en rimlig representation
43 Du menar en vektor av static arrays då?
44
45 Jonatan Werpers:
46 Ja, att LitenVektor är en StaticArray
47
48 Vidar Stiernström:
49 Tuplar känns typ rätt inuitivt för att representera värdet i en punkt
50 men
51 det suger att man inte har + och - för dem
52
53 Jonatan Werpers:
54 Ja precis
55
56 Vidar Stiernström:
57 så kanske är bra med static arrays i detta fall
58
59 Jonatan Werpers:
60 Man vill ju kunna köra en Operator rakt på och vara klar eller?
61
62 Vidar Stiernström:
63 Har inte alls tänkt på hur det vi gör funkar mot vektorvärda funktioner
64 men känns som staticarrays är hur man vill göra det
65 tuplar är ju immutable också
66 blir jobbigt om man bara agerar på en komponent då
67
68 Jonatan Werpers:
69 Hm…
70 Tål att tänkas på
71 Men det lär ju bli mer indirektion med mutables eller?
72 Hur fungerar det?
73 Det finns ju hur som helst både SVector och MVector i StaticArrays
74
75 Vidar Stiernström:
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
77 så man lagrar grejer enl: w = [u1, v1, u2, v2, …] i 1D.
78 Men alltså har ingen aning hur julia hanterar detta
79
80 Jonatan Werpers:
81 Det vi är ute efter kanske är att en grid funcktion är en AbstractArray{T,2} where T<:NågotSomViKanRäknaMed
82 Och så får den typen var lite vad som helst.
83
84 Vidar Stiernström:
85 Tror det kan vara farligt att ha nåt som är AbstractArray{LitenArray{NDof},Dim}
86 Jag gissar att det kompilatorn vill ha är en stor array med doubles
87
88 Jonatan Werpers:
89 Och sen är det upp till den som använder grejerna att vara smart
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
91 Det kommer väl lösa sig när man börjar implementera vektorvärda saker
92 Euler nästa!
93 New
94 Vidar Stiernström:
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
96
97 Jonatan Werpers:
98 https://github.com/JuliaArrays/ArraysOfArrays.jl
99 https://github.com/jw3126/Setfield.jl