annotate src/BoundaryConditions/sat.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 fd80e9a0ef99
children 35840a0681d1
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1135
05b1d6fd6401 Add functions for constructing SATs
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
1 """
1217
ea2e8254820a Update docstrings and start implementing tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1167
diff changeset
2 sat_tensors(op, grid, bc::BoundaryCondition, params...)
1135
05b1d6fd6401 Add functions for constructing SATs
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
3
1217
ea2e8254820a Update docstrings and start implementing tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1167
diff changeset
4 Returns the functions `closure(u)` and `penalty(g)` used to construct a SAT for the
ea2e8254820a Update docstrings and start implementing tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1167
diff changeset
5 `LazyTensor` operator `op` on `grid` associated with the boundary condition `bc`,
ea2e8254820a Update docstrings and start implementing tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1167
diff changeset
6 where g is the discretized data of `bc`.
1135
05b1d6fd6401 Add functions for constructing SATs
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
7 """
05b1d6fd6401 Add functions for constructing SATs
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
8 function sat_tensors end
05b1d6fd6401 Add functions for constructing SATs
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
9
1217
ea2e8254820a Update docstrings and start implementing tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1167
diff changeset
10
1135
05b1d6fd6401 Add functions for constructing SATs
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
11 """
1167
fd80e9a0ef99 Make use of discretize in sat functions
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1135
diff changeset
12 sat(op, grid, bc::BoundaryCondition, params...)
1135
05b1d6fd6401 Add functions for constructing SATs
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
13
1217
ea2e8254820a Update docstrings and start implementing tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1167
diff changeset
14 Simultaneous-Approximation-Term for a general `BoundaryCondition` `bc` to `LazyTensor` `op`.
ea2e8254820a Update docstrings and start implementing tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1167
diff changeset
15 The function returns a function `f`, where f(t,u)` returns a `LazyTensorApplication`
ea2e8254820a Update docstrings and start implementing tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1167
diff changeset
16 weakly imposing the boundary condition at time `t`, when added to `op*u`.
ea2e8254820a Update docstrings and start implementing tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1167
diff changeset
17
ea2e8254820a Update docstrings and start implementing tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1167
diff changeset
18 `op` must implement the function `sat_tensors`. `f` is then constructed as
ea2e8254820a Update docstrings and start implementing tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1167
diff changeset
19 `f(t,u) = closure(u) + `penalty(g(t))`.
1135
05b1d6fd6401 Add functions for constructing SATs
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
20 """
1167
fd80e9a0ef99 Make use of discretize in sat functions
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1135
diff changeset
21 function sat(op, grid, bc::BoundaryCondition, params...)
1135
05b1d6fd6401 Add functions for constructing SATs
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
22 closure, penalty = sat_tensors(op, grid, bc, params...)
1217
ea2e8254820a Update docstrings and start implementing tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1167
diff changeset
23 g = discretize(data(bc),boundary_grid(grid, bc.id))
ea2e8254820a Update docstrings and start implementing tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1167
diff changeset
24 return (t,u) -> closure(u) + penalty(g(t))
1135
05b1d6fd6401 Add functions for constructing SATs
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
25 end
05b1d6fd6401 Add functions for constructing SATs
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
26
1167
fd80e9a0ef99 Make use of discretize in sat functions
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1135
diff changeset
27
1217
ea2e8254820a Update docstrings and start implementing tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1167
diff changeset
28 """
ea2e8254820a Update docstrings and start implementing tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1167
diff changeset
29 sat(op, grid, bc::BoundaryCondition{ZeroBoundaryData}, params...)
1135
05b1d6fd6401 Add functions for constructing SATs
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
30
1217
ea2e8254820a Update docstrings and start implementing tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1167
diff changeset
31 Simultaneous-Approximation-Term for a general `BoundaryCondition` `bc` to `LazyTensor` `op`.
ea2e8254820a Update docstrings and start implementing tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1167
diff changeset
32 The function returns a function `f`, where f(t,u)` returns a `LazyTensorApplication`
ea2e8254820a Update docstrings and start implementing tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1167
diff changeset
33 weakly imposing a homogenous boundary condition, when added to `op*u`.
1135
05b1d6fd6401 Add functions for constructing SATs
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
34
1217
ea2e8254820a Update docstrings and start implementing tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1167
diff changeset
35 `op` must implement the function `sat_tensors`. `f` is then constructed as
ea2e8254820a Update docstrings and start implementing tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1167
diff changeset
36 `f(t,u) = closure(u)`.
ea2e8254820a Update docstrings and start implementing tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1167
diff changeset
37 """
ea2e8254820a Update docstrings and start implementing tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1167
diff changeset
38 function sat(op, grid, bc::BoundaryCondition{ZeroBoundaryData}, params...)
ea2e8254820a Update docstrings and start implementing tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1167
diff changeset
39 closure = sat_tensors(op, grid, bc, params...)
ea2e8254820a Update docstrings and start implementing tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1167
diff changeset
40 return (t,u) -> closure(u)
ea2e8254820a Update docstrings and start implementing tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1167
diff changeset
41 end