Mercurial > repos > public > sbplib
annotate +sbp/+implementations/d2_sparsity_pattern_inds.m @ 1344:b4e5e45bd239 feature/D2_boundary_opt
Remove round off zeros from D2Nonequidistant operators
author | Vidar Stiernström <vidar.stiernstrom@it.uu.se> |
---|---|
date | Sat, 15 Oct 2022 15:48:20 +0200 |
parents | |
children |
rev | line source |
---|---|
1344
b4e5e45bd239
Remove round off zeros from D2Nonequidistant operators
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
1 function inds = d2_sparsity_pattern_inds(m, order, BP, interior_offset, closure_offset) |
b4e5e45bd239
Remove round off zeros from D2Nonequidistant operators
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
2 sparsity_pattern = sparse(m,m); |
b4e5e45bd239
Remove round off zeros from D2Nonequidistant operators
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
3 inner_stencil_inds = -order/2-interior_offset:order/2+interior_offset; |
b4e5e45bd239
Remove round off zeros from D2Nonequidistant operators
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
4 inner_stencil_pattern = ones(m,length(inner_stencil_inds)); |
b4e5e45bd239
Remove round off zeros from D2Nonequidistant operators
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
5 sparsity_pattern = spdiags(inner_stencil_pattern,inner_stencil_inds,sparsity_pattern); |
b4e5e45bd239
Remove round off zeros from D2Nonequidistant operators
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
6 sparsity_pattern(1:BP,1:BP+closure_offset) = 1; |
b4e5e45bd239
Remove round off zeros from D2Nonequidistant operators
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
7 sparsity_pattern(end-BP+1:end,end-(BP+closure_offset)+1:end) = 1; |
b4e5e45bd239
Remove round off zeros from D2Nonequidistant operators
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
8 for k = 1:closure_offset |
b4e5e45bd239
Remove round off zeros from D2Nonequidistant operators
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
9 sparsity_pattern(BP+k,1:BP+closure_offset+k) = 1; |
b4e5e45bd239
Remove round off zeros from D2Nonequidistant operators
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
10 sparsity_pattern(end-(BP+k)+1,end-(BP+k+closure_offset)+1:end) = 1; |
b4e5e45bd239
Remove round off zeros from D2Nonequidistant operators
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
11 end |
b4e5e45bd239
Remove round off zeros from D2Nonequidistant operators
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
12 inds = find(sparsity_pattern); |
b4e5e45bd239
Remove round off zeros from D2Nonequidistant operators
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
13 end |