Mercurial > repos > public > sbplib_julia
changeset 135:bb1cc9c7877c boundary_conditions
Add outline of idea for implemenation of sats
author | Jonatan Werpers <jonatan@werpers.com> |
---|---|
date | Thu, 21 Feb 2019 16:45:06 +0100 |
parents | 79699dda29be |
children | cb9a789338a1 |
files | diffOp.jl |
diffstat | 1 files changed, 26 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/diffOp.jl Thu Feb 21 16:27:28 2019 +0100 +++ b/diffOp.jl Thu Feb 21 16:45:06 2019 +0100 @@ -128,3 +128,29 @@ I = Index{Unknown}.(Tuple(i)) apply(L, v, I) end + +""" +A BoundaryCondition should implement the method + sat(::DiffOp, v::AbstractArray, data::AbstractArray, ...) +""" +abstract type BoundaryCondition end + +struct Dirichlet <: BoundaryCondition + tau::Float64 + # boundaryId?? +end + +struct Neumann <: BoundaryCondition + # boundaryId?? +end + +function sat(L::Laplace{2}, bc::Neumann, v::AbstractArray{T,2}, g::AbstractVector{T}, i::CartesianIndex{2}) + # Hi * e * H_gamma * (d'*v - g) + # e, d, H_gamma applied based on bc.boundaryId +end + +function sat(L::Laplace{2}, bc::Dirichlet, v::AbstractArray{T,2}, g::AbstractVector{T}, i::CartesianIndex{2}) + # Hi * (tau/h*e + sig*d) * H_gamma * (e'*v - g) + # e, d, H_gamma applied based on bc.boundaryId +end +