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:< |
