Mercurial > repos > public > sbplib_julia
comparison DiffOps/src/laplace.jl @ 285:e21dcda55163 boundary_conditions
Add type representing an unknown dimension in the domain of tensormappings
author | Vidar Stiernström <vidar.stiernstrom@it.uu.se> |
---|---|
date | Fri, 19 Jun 2020 12:20:31 +0200 |
parents | 0b8e041a1873 |
children | 7247e85dc1e8 |
comparison
equal
deleted
inserted
replaced
284:0b8e041a1873 | 285:e21dcda55163 |
---|---|
100 | 100 |
101 # TODO: This is obviouly strange. Is domain_size just discarded? Is there a way to avoid storing grid in BoundaryValue? | 101 # TODO: This is obviouly strange. Is domain_size just discarded? Is there a way to avoid storing grid in BoundaryValue? |
102 # Can we give special treatment to TensorMappings that go to a higher dim? | 102 # Can we give special treatment to TensorMappings that go to a higher dim? |
103 function LazyTensors.range_size(e::BoundaryValue{T}, domain_size::NTuple{1,Integer}) where T | 103 function LazyTensors.range_size(e::BoundaryValue{T}, domain_size::NTuple{1,Integer}) where T |
104 if dim(e.bId) == 1 | 104 if dim(e.bId) == 1 |
105 return (missing, domain_size[1]) | 105 return (UnknownDim, domain_size[1]) |
106 elseif dim(e.bId) == 2 | 106 elseif dim(e.bId) == 2 |
107 return (domain_size[1], missing) | 107 return (domain_size[1], UnknownDim) |
108 end | 108 end |
109 end | 109 end |
110 LazyTensors.domain_size(e::BoundaryValue{T}, range_size::NTuple{2,Integer}) where T = (range_size[3-dim(e.bId)],) | 110 LazyTensors.domain_size(e::BoundaryValue{T}, range_size::NTuple{2,Integer}) where T = (range_size[3-dim(e.bId)],) |
111 # TODO: Make a nicer solution for 3-dim(e.bId) | 111 # TODO: Make a nicer solution for 3-dim(e.bId) |
112 | 112 |
137 | 137 |
138 # TODO: This is obviouly strange. Is domain_size just discarded? Is there a way to avoid storing grid in BoundaryValue? | 138 # TODO: This is obviouly strange. Is domain_size just discarded? Is there a way to avoid storing grid in BoundaryValue? |
139 # Can we give special treatment to TensorMappings that go to a higher dim? | 139 # Can we give special treatment to TensorMappings that go to a higher dim? |
140 function LazyTensors.range_size(e::NormalDerivative, domain_size::NTuple{1,Integer}) | 140 function LazyTensors.range_size(e::NormalDerivative, domain_size::NTuple{1,Integer}) |
141 if dim(e.bId) == 1 | 141 if dim(e.bId) == 1 |
142 return (missing, domain_size[1]) | 142 return (UnknownDim, domain_size[1]) |
143 elseif dim(e.bId) == 2 | 143 elseif dim(e.bId) == 2 |
144 return (domain_size[1], missing) | 144 return (domain_size[1], UnknownDim) |
145 end | 145 end |
146 end | 146 end |
147 LazyTensors.domain_size(e::NormalDerivative, range_size::NTuple{2,Integer}) = (range_size[3-dim(e.bId)],) | 147 LazyTensors.domain_size(e::NormalDerivative, range_size::NTuple{2,Integer}) = (range_size[3-dim(e.bId)],) |
148 | 148 |
149 # TODO: Not type stable D:< | 149 # TODO: Not type stable D:< |