Mercurial > repos > public > sbplib_julia
annotate test/BoundaryConditions/sat_test.jl @ 1396:35840a0681d1 feature/boundary_conditions
Start drafting new implemenentation of boundary conditions
author | Vidar Stiernström <vidar.stiernstrom@it.uu.se> |
---|---|
date | Wed, 26 Jul 2023 23:11:02 +0200 |
parents | bdcdbd4ea9cd |
children | b96858a50e35 |
rev | line source |
---|---|
1217
ea2e8254820a
Update docstrings and start implementing tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
1 using Test |
ea2e8254820a
Update docstrings and start implementing tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
2 |
ea2e8254820a
Update docstrings and start implementing tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
3 |
ea2e8254820a
Update docstrings and start implementing tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
4 using Sbplib.BoundaryConditions |
ea2e8254820a
Update docstrings and start implementing tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
5 using Sbplib.Grids |
ea2e8254820a
Update docstrings and start implementing tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
6 using Sbplib.RegionIndices |
ea2e8254820a
Update docstrings and start implementing tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
7 using Sbplib.LazyTensors |
ea2e8254820a
Update docstrings and start implementing tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
8 |
1395
bdcdbd4ea9cd
Merge with default. Comment out broken tests for boundary_conditions at sat
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1217
diff
changeset
|
9 grid = equidistant_grid(11, 0.0, 1.0) |
1217
ea2e8254820a
Update docstrings and start implementing tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
10 (id_l,id_r) = boundary_identifiers(grid) |
ea2e8254820a
Update docstrings and start implementing tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
11 struct MockOp |
ea2e8254820a
Update docstrings and start implementing tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
12 end |
ea2e8254820a
Update docstrings and start implementing tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
13 |
ea2e8254820a
Update docstrings and start implementing tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
14 function BoundaryConditions.sat_tensors(op::MockOp, grid, bc::DirichletCondition) |
ea2e8254820a
Update docstrings and start implementing tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
15 sz = size(grid) |
ea2e8254820a
Update docstrings and start implementing tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
16 m = sz[1] |
ea2e8254820a
Update docstrings and start implementing tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
17 ind = (region(bc.id) == Lower()) ? 1 : m |
ea2e8254820a
Update docstrings and start implementing tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
18 e = zeros(m); |
ea2e8254820a
Update docstrings and start implementing tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
19 e[ind] = 1. |
ea2e8254820a
Update docstrings and start implementing tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
20 eᵀ = ones(Float64,m,0); |
ea2e8254820a
Update docstrings and start implementing tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
21 e[ind] = 1. |
ea2e8254820a
Update docstrings and start implementing tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
22 c_tensor = LazyTensors.DiagonalTensor(e) |
ea2e8254820a
Update docstrings and start implementing tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
23 p_tensor = DenseTensor(eᵀ, (1,), (2,)) |
ea2e8254820a
Update docstrings and start implementing tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
24 closure(u) = c_tensor*u |
ea2e8254820a
Update docstrings and start implementing tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
25 function penalty(g) |
ea2e8254820a
Update docstrings and start implementing tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
26 @show g |
ea2e8254820a
Update docstrings and start implementing tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
27 return p_tensor*g |
ea2e8254820a
Update docstrings and start implementing tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
28 end |
ea2e8254820a
Update docstrings and start implementing tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
29 return closure, penalty |
ea2e8254820a
Update docstrings and start implementing tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
30 end |
ea2e8254820a
Update docstrings and start implementing tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
31 |
ea2e8254820a
Update docstrings and start implementing tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
32 |
1395
bdcdbd4ea9cd
Merge with default. Comment out broken tests for boundary_conditions at sat
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1217
diff
changeset
|
33 # @testset "sat" begin |
bdcdbd4ea9cd
Merge with default. Comment out broken tests for boundary_conditions at sat
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1217
diff
changeset
|
34 # g = ConstantBoundaryData(2.0) |
bdcdbd4ea9cd
Merge with default. Comment out broken tests for boundary_conditions at sat
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1217
diff
changeset
|
35 # dc = DirichletCondition(g,id_l) |
bdcdbd4ea9cd
Merge with default. Comment out broken tests for boundary_conditions at sat
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1217
diff
changeset
|
36 # op = MockOp() |
bdcdbd4ea9cd
Merge with default. Comment out broken tests for boundary_conditions at sat
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1217
diff
changeset
|
37 # f = sat(op, grid, dc) |
bdcdbd4ea9cd
Merge with default. Comment out broken tests for boundary_conditions at sat
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1217
diff
changeset
|
38 # u = eval_on(grid, x-> -1/2 + x^2) |
bdcdbd4ea9cd
Merge with default. Comment out broken tests for boundary_conditions at sat
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1217
diff
changeset
|
39 # @show f(0.,u) |
bdcdbd4ea9cd
Merge with default. Comment out broken tests for boundary_conditions at sat
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1217
diff
changeset
|
40 # end |