Mercurial > repos > public > sbplib_julia
annotate src/BoundaryConditions/sat.jl @ 1599:37b05221beda feature/boundary_conditions
Review
author | Jonatan Werpers <jonatan@werpers.com> |
---|---|
date | Wed, 29 May 2024 22:35:08 +0200 |
parents | abc5cc0aec94 |
children | 3e7438e2a033 |
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 |
abc5cc0aec94
Update docstrings
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1396
diff
changeset
|
7 For `sat_op, L = sat_tensors(...)` then `SAT = sat_op*(L*u - g)` where `g` |
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 |
1599 | 11 # REVIEW: Rename `sat_op` to `penalty_tensor`? |
1135
05b1d6fd6401
Add functions for constructing SATs
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
12 |
1217
ea2e8254820a
Update docstrings and start implementing tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1167
diff
changeset
|
13 |
1135
05b1d6fd6401
Add functions for constructing SATs
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
14 """ |
1167
fd80e9a0ef99
Make use of discretize in sat functions
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1135
diff
changeset
|
15 sat(op, grid, bc::BoundaryCondition, params...) |
1135
05b1d6fd6401
Add functions for constructing SATs
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
16 |
1483
abc5cc0aec94
Update docstrings
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1396
diff
changeset
|
17 Simultaneous-Approximation-Term for a general `bc` to `op`. |
abc5cc0aec94
Update docstrings
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1396
diff
changeset
|
18 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
|
19 |
1483
abc5cc0aec94
Update docstrings
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1396
diff
changeset
|
20 `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
|
21 """ |
1167
fd80e9a0ef99
Make use of discretize in sat functions
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1135
diff
changeset
|
22 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
|
23 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
|
24 return SAT(u, g) = sat_op*(L*u - g) |
1599 | 25 end |