Mercurial > repos > public > sbplib_julia
annotate src/BoundaryConditions/sat.jl @ 1602:3e7438e2a033 feature/boundary_conditions
Address review comments (1 left to be discussed)
author | Vidar Stiernström <vidar.stiernstrom@gmail.com> |
---|---|
date | Sat, 01 Jun 2024 17:39:54 -0700 |
parents | 37b05221beda |
children |
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 |
1483
abc5cc0aec94
Update docstrings
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1396
diff
changeset
|
4 The tensor and boundary operator used to construct a simultaneous-approximation-term |
abc5cc0aec94
Update docstrings
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1396
diff
changeset
|
5 for imposing `bc` related to `op`. |
abc5cc0aec94
Update docstrings
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1396
diff
changeset
|
6 |
1602
3e7438e2a033
Address review comments (1 left to be discussed)
Vidar Stiernström <vidar.stiernstrom@gmail.com>
parents:
1599
diff
changeset
|
7 For `penalty_tensor, L = sat_tensors(...)` then `SAT = penalty_tensor*(L*u - g)` where `g` |
1483
abc5cc0aec94
Update docstrings
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1396
diff
changeset
|
8 is the boundary data. |
1135
05b1d6fd6401
Add functions for constructing SATs
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
9 """ |
05b1d6fd6401
Add functions for constructing SATs
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
10 function sat_tensors end |
05b1d6fd6401
Add functions for constructing SATs
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
11 |
1217
ea2e8254820a
Update docstrings and start implementing tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1167
diff
changeset
|
12 |
1135
05b1d6fd6401
Add functions for constructing SATs
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
13 """ |
1602
3e7438e2a033
Address review comments (1 left to be discussed)
Vidar Stiernström <vidar.stiernstrom@gmail.com>
parents:
1599
diff
changeset
|
14 sat(op, grid, bc::BoundaryCondition; kwargs...) |
1135
05b1d6fd6401
Add functions for constructing SATs
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
15 |
1483
abc5cc0aec94
Update docstrings
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1396
diff
changeset
|
16 Simultaneous-Approximation-Term for a general `bc` to `op`. |
abc5cc0aec94
Update docstrings
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1396
diff
changeset
|
17 Returns a function `SAT(u,g)` weakly imposing `bc` when added to `op*u`. |
1217
ea2e8254820a
Update docstrings and start implementing tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1167
diff
changeset
|
18 |
1483
abc5cc0aec94
Update docstrings
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1396
diff
changeset
|
19 `op` must implement the function `sat_tensors`. |
1135
05b1d6fd6401
Add functions for constructing SATs
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
20 """ |
1602
3e7438e2a033
Address review comments (1 left to be discussed)
Vidar Stiernström <vidar.stiernstrom@gmail.com>
parents:
1599
diff
changeset
|
21 function sat(op, grid, bc::BoundaryCondition; kwargs...) |
3e7438e2a033
Address review comments (1 left to be discussed)
Vidar Stiernström <vidar.stiernstrom@gmail.com>
parents:
1599
diff
changeset
|
22 penalty_tensor, L = sat_tensors(op, grid, bc; kwargs...) |
3e7438e2a033
Address review comments (1 left to be discussed)
Vidar Stiernström <vidar.stiernstrom@gmail.com>
parents:
1599
diff
changeset
|
23 return SAT(u, g) = penalty_tensor*(L*u - g) |
1599 | 24 end |