annotate src/BoundaryConditions/sat.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 ea2e8254820a
children abc5cc0aec94
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...)
1396
35840a0681d1 Start drafting new implemenentation of boundary conditions
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1217
diff changeset
22 sat_op, L = sat_tensors(op, grid, bc, params...)
35840a0681d1 Start drafting new implemenentation of boundary conditions
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1217
diff changeset
23 return SAT(u, g) = sat_op*(L*u - g)
1217
ea2e8254820a Update docstrings and start implementing tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1167
diff changeset
24 end