comparison +multiblock/DiffOp.m @ 216:8b10476b9bb7 feature/beams

multiblock: Fixed some problems in DiffOp and Grid.
author Jonatan Werpers <jonatan@werpers.com>
date Wed, 22 Jun 2016 14:44:03 +0200
parents 39b7dcb2c724
children 5df8d20281fe
comparison
equal deleted inserted replaced
215:7bb2ef637142 216:8b10476b9bb7
62 continue 62 continue
63 end 63 end
64 64
65 [ii, ij] = obj.diffOps{i}.interface(intf{1}, obj.diffOps{j}, intf{2}); 65 [ii, ij] = obj.diffOps{i}.interface(intf{1}, obj.diffOps{j}, intf{2});
66 D{i,i} = D{i,i} + ii; 66 D{i,i} = D{i,i} + ii;
67 D{i,j} = D{i,j} + ij; 67 D{i,j} = ij;
68 68
69 [jj, ji] = obj.diffOps{j}.interface(intf{2}, obj.diffOps{i}, intf{1}); 69 [jj, ji] = obj.diffOps{j}.interface(intf{2}, obj.diffOps{i}, intf{1});
70 D{j,j} = D{j,j} + jj; 70 D{j,j} = D{j,j} + jj;
71 D{j,i} = D{j,i} + ji; 71 D{j,i} = ji;
72 end 72 end
73 end 73 end
74 obj.D = blockmatrix.toMatrix(D); 74 obj.D = blockmatrix.toMatrix(D);
75 75
76 obj.blockmatrixDiv = blockmatrix.getDivision(D); 76 obj.blockmatrixDiv = blockmatrix.getDivision(D);
106 106
107 % Creates the closere and penalty matrix for a given boundary condition, 107 % Creates the closere and penalty matrix for a given boundary condition,
108 % boundary -- the name of the boundary on the form [id][name] where 108 % boundary -- the name of the boundary on the form [id][name] where
109 % id is the number of a block and name is the name of a 109 % id is the number of a block and name is the name of a
110 % boundary of that block example: 1s or 3w 110 % boundary of that block example: 1s or 3w
111 function [closure, penalty] = boundary_condition(obj,boundary,type,data) 111 function [closure, penalty] = boundary_condition(obj,boundary,type)
112 I = boundary(1) 112 I = boundary{1};
113 name = boundary(2:end); 113 name = boundary{2};
114 114
115 % Get the closure and penaly matrices 115 % Get the closure and penaly matrices
116 [blockClosure, blockPenalty] = obj.diffOps{I}.boundary_condition(name, type, data); 116 [blockClosure, blockPenalty] = obj.diffOps{I}.boundary_condition(name, type);
117 117
118 % Expand to matrix for full domain. 118 % Expand to matrix for full domain.
119 div = obj.blockmatrixDiv; 119 div = obj.blockmatrixDiv;
120 closure = blockmatrix.zero(div); 120 closure = blockmatrix.zero(div);
121 closure{I,I} = blockClosure; 121 closure{I,I} = blockClosure;
124 penalty = blockmatrix.zero(div); 124 penalty = blockmatrix.zero(div);
125 penalty{I} = blockPenalty; 125 penalty{I} = blockPenalty;
126 126
127 % Convert to matrix 127 % Convert to matrix
128 closure = blockmatrix.toMatrix(closure); 128 closure = blockmatrix.toMatrix(closure);
129 penalty = blockmatrix.toMatrix(closure); 129 penalty = blockmatrix.toMatrix(penalty);
130 end 130 end
131 131
132 function [closure, penalty] = interface(obj,boundary,neighbour_scheme,neighbour_boundary) 132 function [closure, penalty] = interface(obj,boundary,neighbour_scheme,neighbour_boundary)
133 133
134 end 134 end