diff test/BoundaryConditions/sat_test.jl @ 1217:ea2e8254820a feature/boundary_conditions

Update docstrings and start implementing tests
author Vidar Stiernström <vidar.stiernstrom@it.uu.se>
date Tue, 07 Feb 2023 21:55:07 +0100
parents
children bdcdbd4ea9cd
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/BoundaryConditions/sat_test.jl	Tue Feb 07 21:55:07 2023 +0100
@@ -0,0 +1,40 @@
+using Test
+
+
+using Sbplib.BoundaryConditions
+using Sbplib.Grids
+using Sbplib.RegionIndices
+using Sbplib.LazyTensors
+
+grid = EquidistantGrid(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 = evalOn(grid, x-> -1/2 + x^2)
+    @show f(0.,u)
+end