Mercurial > repos > public > sbplib
annotate +multiblock/+domain/Annulus.m @ 1256:479d5672fecd feature/FMMlabb
Minor cleanup
author | Vidar Stiernström <vidar.stiernstrom@it.uu.se> |
---|---|
date | Tue, 11 Feb 2020 19:17:49 +0100 |
parents | 5e2a61340d4e |
children | 4d472d020ccf |
rev | line source |
---|---|
1254 | 1 classdef Annulus < multiblock.DefCurvilinear |
2 properties | |
1256
479d5672fecd
Minor cleanup
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1255
diff
changeset
|
3 r_inner % Radii of inner disk |
479d5672fecd
Minor cleanup
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1255
diff
changeset
|
4 c_inner % Center of inner disk |
479d5672fecd
Minor cleanup
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1255
diff
changeset
|
5 r_outer % Radii of outer disk |
479d5672fecd
Minor cleanup
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1255
diff
changeset
|
6 c_outer % Radii of outer disk |
1254 | 7 end |
8 | |
9 methods | |
1256
479d5672fecd
Minor cleanup
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1255
diff
changeset
|
10 function obj = Annulus(r_inner, c_inner, r_outer, c_outer) |
1254 | 11 default_arg('r_inner', 0.3); |
1256
479d5672fecd
Minor cleanup
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1255
diff
changeset
|
12 default_arg('c_inner', [0; 0]); |
479d5672fecd
Minor cleanup
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1255
diff
changeset
|
13 default_arg('r_outer', 1) |
1254 | 14 default_arg('c_outer', [0; 0]); |
1256
479d5672fecd
Minor cleanup
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1255
diff
changeset
|
15 % Assert that the problem is well-defined |
479d5672fecd
Minor cleanup
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1255
diff
changeset
|
16 d = norm(c_outer-c_inner,2); |
479d5672fecd
Minor cleanup
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1255
diff
changeset
|
17 assert(r_outer > d+r_inner, 'Inner disk not contained in outer disk'); |
479d5672fecd
Minor cleanup
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1255
diff
changeset
|
18 |
1254 | 19 cir_out_A = parametrization.Curve.circle(c_outer,r_outer,[-pi/2 pi/2]); |
20 cir_in_A = parametrization.Curve.circle(c_inner,r_inner,[pi/2 -pi/2]); | |
21 | |
22 cir_out_B = parametrization.Curve.circle(c_outer,r_outer,[pi/2 3*pi/2]); | |
23 cir_in_B = parametrization.Curve.circle(c_inner,r_inner,[3*pi/2 pi/2]); | |
24 | |
25 c0_out = cir_out_A(0); | |
26 c1_out = cir_out_A(1); | |
27 | |
28 c0_in_A = cir_in_A(1); | |
29 c1_in_A = cir_in_A(0); | |
30 | |
31 c0_out_B = cir_out_B(0); | |
32 c1_out_B = cir_out_B(1); | |
33 | |
34 c0_in_B = cir_in_B(1); | |
35 c1_in_B = cir_in_B(0); | |
36 | |
37 | |
38 sp2_A = parametrization.Curve.line(c0_in_A,c0_out); | |
39 sp3_A = parametrization.Curve.line(c1_in_A,c1_out); | |
40 | |
41 sp2_B = parametrization.Curve.line(c0_in_B,c0_out_B); | |
42 sp3_B = parametrization.Curve.line(c1_in_B,c1_out_B); | |
43 | |
44 | |
45 A = parametrization.Ti(sp2_A, cir_out_A, sp3_A.reverse, cir_in_A); | |
1256
479d5672fecd
Minor cleanup
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1255
diff
changeset
|
46 B = parametrization.Ti(sp2_B , cir_out_B,sp3_B.reverse, cir_in_B ); |
1254 | 47 |
48 blocks = {A,B}; | |
49 blocksNames = {'A','B'}; | |
50 | |
51 conn = cell(2,2); | |
52 | |
53 conn{1,2} = {'n','s'}; | |
54 conn{2,1} = {'n','s'}; | |
55 | |
56 boundaryGroups = struct(); | |
1255 | 57 boundaryGroups.out = multiblock.BoundaryGroup({{1,'e'},{2,'e'}}); |
58 boundaryGroups.in = multiblock.BoundaryGroup({{1,'w'},{2,'w'}}); | |
1254 | 59 boundaryGroups.all = multiblock.BoundaryGroup({{1,'e'},{2,'w'},{1,'w'},{2,'e'}}); |
60 | |
61 obj = obj@multiblock.DefCurvilinear(blocks, conn, boundaryGroups, blocksNames); | |
62 | |
63 obj.r_inner = r_inner; | |
64 obj.r_outer = r_outer; | |
65 obj.c_inner = c_inner; | |
66 obj.c_outer = c_outer; | |
67 end | |
68 | |
69 function ms = getGridSizes(obj, m) | |
1256
479d5672fecd
Minor cleanup
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1255
diff
changeset
|
70 ms = {[m m], [m m]}; |
1254 | 71 end |
72 end | |
73 end |