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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1254
204b47c51bf8 Add annulus
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
1 classdef Annulus < multiblock.DefCurvilinear
204b47c51bf8 Add annulus
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
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
204b47c51bf8 Add annulus
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
7 end
204b47c51bf8 Add annulus
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
8
204b47c51bf8 Add annulus
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
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
204b47c51bf8 Add annulus
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
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
204b47c51bf8 Add annulus
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
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
204b47c51bf8 Add annulus
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
19 cir_out_A = parametrization.Curve.circle(c_outer,r_outer,[-pi/2 pi/2]);
204b47c51bf8 Add annulus
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
20 cir_in_A = parametrization.Curve.circle(c_inner,r_inner,[pi/2 -pi/2]);
204b47c51bf8 Add annulus
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
21
204b47c51bf8 Add annulus
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
22 cir_out_B = parametrization.Curve.circle(c_outer,r_outer,[pi/2 3*pi/2]);
204b47c51bf8 Add annulus
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
23 cir_in_B = parametrization.Curve.circle(c_inner,r_inner,[3*pi/2 pi/2]);
204b47c51bf8 Add annulus
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
24
204b47c51bf8 Add annulus
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
25 c0_out = cir_out_A(0);
204b47c51bf8 Add annulus
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
26 c1_out = cir_out_A(1);
204b47c51bf8 Add annulus
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
27
204b47c51bf8 Add annulus
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
28 c0_in_A = cir_in_A(1);
204b47c51bf8 Add annulus
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
29 c1_in_A = cir_in_A(0);
204b47c51bf8 Add annulus
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
30
204b47c51bf8 Add annulus
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
31 c0_out_B = cir_out_B(0);
204b47c51bf8 Add annulus
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
32 c1_out_B = cir_out_B(1);
204b47c51bf8 Add annulus
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
33
204b47c51bf8 Add annulus
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
34 c0_in_B = cir_in_B(1);
204b47c51bf8 Add annulus
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
35 c1_in_B = cir_in_B(0);
204b47c51bf8 Add annulus
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
36
204b47c51bf8 Add annulus
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
37
204b47c51bf8 Add annulus
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
38 sp2_A = parametrization.Curve.line(c0_in_A,c0_out);
204b47c51bf8 Add annulus
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
39 sp3_A = parametrization.Curve.line(c1_in_A,c1_out);
204b47c51bf8 Add annulus
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
40
204b47c51bf8 Add annulus
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
41 sp2_B = parametrization.Curve.line(c0_in_B,c0_out_B);
204b47c51bf8 Add annulus
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
42 sp3_B = parametrization.Curve.line(c1_in_B,c1_out_B);
204b47c51bf8 Add annulus
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
43
204b47c51bf8 Add annulus
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
44
204b47c51bf8 Add annulus
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
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
204b47c51bf8 Add annulus
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
47
204b47c51bf8 Add annulus
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
48 blocks = {A,B};
204b47c51bf8 Add annulus
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
49 blocksNames = {'A','B'};
204b47c51bf8 Add annulus
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
50
204b47c51bf8 Add annulus
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
51 conn = cell(2,2);
204b47c51bf8 Add annulus
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
52
204b47c51bf8 Add annulus
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
53 conn{1,2} = {'n','s'};
204b47c51bf8 Add annulus
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
54 conn{2,1} = {'n','s'};
204b47c51bf8 Add annulus
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
55
204b47c51bf8 Add annulus
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
56 boundaryGroups = struct();
1255
5e2a61340d4e Fix boundary groups
Ylva Rydin <ylva.rydin@telia.com>
parents: 1254
diff changeset
57 boundaryGroups.out = multiblock.BoundaryGroup({{1,'e'},{2,'e'}});
5e2a61340d4e Fix boundary groups
Ylva Rydin <ylva.rydin@telia.com>
parents: 1254
diff changeset
58 boundaryGroups.in = multiblock.BoundaryGroup({{1,'w'},{2,'w'}});
1254
204b47c51bf8 Add annulus
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
59 boundaryGroups.all = multiblock.BoundaryGroup({{1,'e'},{2,'w'},{1,'w'},{2,'e'}});
204b47c51bf8 Add annulus
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
60
204b47c51bf8 Add annulus
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
61 obj = obj@multiblock.DefCurvilinear(blocks, conn, boundaryGroups, blocksNames);
204b47c51bf8 Add annulus
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
62
204b47c51bf8 Add annulus
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
63 obj.r_inner = r_inner;
204b47c51bf8 Add annulus
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
64 obj.r_outer = r_outer;
204b47c51bf8 Add annulus
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
65 obj.c_inner = c_inner;
204b47c51bf8 Add annulus
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
66 obj.c_outer = c_outer;
204b47c51bf8 Add annulus
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
67 end
204b47c51bf8 Add annulus
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
68
204b47c51bf8 Add annulus
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
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
204b47c51bf8 Add annulus
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
71 end
204b47c51bf8 Add annulus
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
72 end
204b47c51bf8 Add annulus
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
73 end