view test/BoundaryConditions/sat_test.jl @ 1395:bdcdbd4ea9cd feature/boundary_conditions

Merge with default. Comment out broken tests for boundary_conditions at sat
author Vidar Stiernström <vidar.stiernstrom@it.uu.se>
date Wed, 26 Jul 2023 21:35:50 +0200
parents ea2e8254820a
children b96858a50e35
line wrap: on
line source

using Test


using Sbplib.BoundaryConditions
using Sbplib.Grids
using Sbplib.RegionIndices
using Sbplib.LazyTensors

grid = equidistant_grid(11, 0.0, 1.0)
(id_l,id_r) = boundary_identifiers(grid)
struct MockOp
end

function BoundaryConditions.sat_tensors(op::MockOp, grid, bc::DirichletCondition)
    sz = size(grid)
    m = sz[1]
    ind = (region(bc.id) == Lower()) ? 1 : m
    e = zeros(m);
    e[ind] = 1.
    eᵀ = ones(Float64,m,0);
    e[ind] = 1.
    c_tensor = LazyTensors.DiagonalTensor(e)
    p_tensor = DenseTensor(eᵀ, (1,), (2,))
    closure(u) = c_tensor*u
    function penalty(g)
        @show g
        return p_tensor*g
    end
    return closure, penalty
end


# @testset "sat" begin
#     g = ConstantBoundaryData(2.0)
#     dc = DirichletCondition(g,id_l)
#     op = MockOp()
#     f = sat(op, grid, dc)
#     u = eval_on(grid, x-> -1/2 + x^2)
#     @show f(0.,u)
# end