Mercurial > repos > public > sbplib_julia
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 |