annotate +sbp/+implementations/d2_4.m @ 1347:ac54767ae1fb feature/poroelastic tip

Add interface, not fully compatible.
author Martin Almquist <martin.almquist@it.uu.se>
date Tue, 30 Apr 2024 14:58:35 +0200
parents 8b8672134be8
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
261
6009f2712d13 Moved and renamned all implementations.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
1 function [H, HI, D1, D2, e_1, e_m, M, Q, S_1, S_m] = d2_4(m,h)
382
8b8672134be8 Edit for clarity.
Jonatan Werpers <jonatan@werpers.com>
parents: 267
diff changeset
2
266
bfa130b7abf6 Added error message for too few grid points to all implementation files.
Martin Almquist <martin.almquist@it.uu.se>
parents: 261
diff changeset
3 BP = 4;
bfa130b7abf6 Added error message for too few grid points to all implementation files.
Martin Almquist <martin.almquist@it.uu.se>
parents: 261
diff changeset
4 if(m<2*BP)
bfa130b7abf6 Added error message for too few grid points to all implementation files.
Martin Almquist <martin.almquist@it.uu.se>
parents: 261
diff changeset
5 error(['Operator requires at least ' num2str(2*BP) ' grid points']);
bfa130b7abf6 Added error message for too few grid points to all implementation files.
Martin Almquist <martin.almquist@it.uu.se>
parents: 261
diff changeset
6 end
bfa130b7abf6 Added error message for too few grid points to all implementation files.
Martin Almquist <martin.almquist@it.uu.se>
parents: 261
diff changeset
7
267
f7ac3cd6eeaa Sparsified all implementation files, removed all matlab warnings, fixed small bugs on minimum grid points.
Martin Almquist <martin.almquist@it.uu.se>
parents: 266
diff changeset
8 e_1=sparse(m,1);e_1(1)=1;
f7ac3cd6eeaa Sparsified all implementation files, removed all matlab warnings, fixed small bugs on minimum grid points.
Martin Almquist <martin.almquist@it.uu.se>
parents: 266
diff changeset
9 e_m=sparse(m,1);e_m(m)=1;
261
6009f2712d13 Moved and renamned all implementations.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
10
6009f2712d13 Moved and renamned all implementations.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
11 e=ones(m,1);
6009f2712d13 Moved and renamned all implementations.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
12 H=spdiags(e,0,m,m);
267
f7ac3cd6eeaa Sparsified all implementation files, removed all matlab warnings, fixed small bugs on minimum grid points.
Martin Almquist <martin.almquist@it.uu.se>
parents: 266
diff changeset
13 %H=speye(m,m);
261
6009f2712d13 Moved and renamned all implementations.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
14
6009f2712d13 Moved and renamned all implementations.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
15 H(1:4,1:4)=diag([17/48 59/48 43/48 49/48]);
6009f2712d13 Moved and renamned all implementations.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
16 H(m-3:m,m-3:m)=rot90(diag([17/48 59/48 43/48 49/48]),2);
6009f2712d13 Moved and renamned all implementations.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
17 H=H*h;
6009f2712d13 Moved and renamned all implementations.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
18 HI=inv(H);
6009f2712d13 Moved and renamned all implementations.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
19
6009f2712d13 Moved and renamned all implementations.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
20
6009f2712d13 Moved and renamned all implementations.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
21 Q=spdiags([e -8*e 0*e 8*e -e], -2:2, m, m)/12;
6009f2712d13 Moved and renamned all implementations.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
22 %Q=(-1/12*diag(ones(m-2,1),2)+8/12*diag(ones(m-1,1),1)-8/12*diag(ones(m-1,1),-1)+1/12*diag(ones(m-2,1),-2));
382
8b8672134be8 Edit for clarity.
Jonatan Werpers <jonatan@werpers.com>
parents: 267
diff changeset
23 Q_U = [
8b8672134be8 Edit for clarity.
Jonatan Werpers <jonatan@werpers.com>
parents: 267
diff changeset
24 0 0.59e2/0.96e2 -0.1e1/0.12e2 -0.1e1/0.32e2;
8b8672134be8 Edit for clarity.
Jonatan Werpers <jonatan@werpers.com>
parents: 267
diff changeset
25 -0.59e2/0.96e2 0 0.59e2/0.96e2 0;
8b8672134be8 Edit for clarity.
Jonatan Werpers <jonatan@werpers.com>
parents: 267
diff changeset
26 0.1e1/0.12e2 -0.59e2/0.96e2 0 0.59e2/0.96e2;
8b8672134be8 Edit for clarity.
Jonatan Werpers <jonatan@werpers.com>
parents: 267
diff changeset
27 0.1e1/0.32e2 0 -0.59e2/0.96e2 0;
8b8672134be8 Edit for clarity.
Jonatan Werpers <jonatan@werpers.com>
parents: 267
diff changeset
28 ];
261
6009f2712d13 Moved and renamned all implementations.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
29 Q(1:4,1:4)=Q_U;
6009f2712d13 Moved and renamned all implementations.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
30 Q(m-3:m,m-3:m)=rot90( -Q_U(1:4,1:4) ,2 );
6009f2712d13 Moved and renamned all implementations.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
31
267
f7ac3cd6eeaa Sparsified all implementation files, removed all matlab warnings, fixed small bugs on minimum grid points.
Martin Almquist <martin.almquist@it.uu.se>
parents: 266
diff changeset
32 D1=H\(Q-1/2*(e_1*e_1')+1/2*(e_m*e_m')) ;
261
6009f2712d13 Moved and renamned all implementations.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
33
6009f2712d13 Moved and renamned all implementations.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
34 M=-spdiags([-e 16*e -30*e 16*e -e], -2:2, m, m)/12;
6009f2712d13 Moved and renamned all implementations.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
35
6009f2712d13 Moved and renamned all implementations.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
36 %M=-(-1/12*diag(ones(m-2,1),2)+16/12*diag(ones(m-1,1),1)+16/12*diag(ones(m-1,1),-1)-1/12*diag(ones(m-2,1),-2)-30/12*diag(ones(m,1),0));
6009f2712d13 Moved and renamned all implementations.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
37
382
8b8672134be8 Edit for clarity.
Jonatan Werpers <jonatan@werpers.com>
parents: 267
diff changeset
38 M_U=[
8b8672134be8 Edit for clarity.
Jonatan Werpers <jonatan@werpers.com>
parents: 267
diff changeset
39 0.9e1/0.8e1 -0.59e2/0.48e2 0.1e1/0.12e2 0.1e1/0.48e2;
8b8672134be8 Edit for clarity.
Jonatan Werpers <jonatan@werpers.com>
parents: 267
diff changeset
40 -0.59e2/0.48e2 0.59e2/0.24e2 -0.59e2/0.48e2 0;
8b8672134be8 Edit for clarity.
Jonatan Werpers <jonatan@werpers.com>
parents: 267
diff changeset
41 0.1e1/0.12e2 -0.59e2/0.48e2 0.55e2/0.24e2 -0.59e2/0.48e2;
8b8672134be8 Edit for clarity.
Jonatan Werpers <jonatan@werpers.com>
parents: 267
diff changeset
42 0.1e1/0.48e2 0 -0.59e2/0.48e2 0.59e2/0.24e2;
8b8672134be8 Edit for clarity.
Jonatan Werpers <jonatan@werpers.com>
parents: 267
diff changeset
43 ];
261
6009f2712d13 Moved and renamned all implementations.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
44 M(1:4,1:4)=M_U;
6009f2712d13 Moved and renamned all implementations.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
45
6009f2712d13 Moved and renamned all implementations.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
46 M(m-3:m,m-3:m)=rot90( M_U ,2 );
6009f2712d13 Moved and renamned all implementations.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
47 M=M/h;
6009f2712d13 Moved and renamned all implementations.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
48
382
8b8672134be8 Edit for clarity.
Jonatan Werpers <jonatan@werpers.com>
parents: 267
diff changeset
49 S_U=[-0.11e2/0.6e1 3 -0.3e1/0.2e1 0.1e1/0.3e1;]/h;
267
f7ac3cd6eeaa Sparsified all implementation files, removed all matlab warnings, fixed small bugs on minimum grid points.
Martin Almquist <martin.almquist@it.uu.se>
parents: 266
diff changeset
50 S_1=sparse(sparse(1,m));
261
6009f2712d13 Moved and renamned all implementations.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
51 S_1(1:4)=S_U;
267
f7ac3cd6eeaa Sparsified all implementation files, removed all matlab warnings, fixed small bugs on minimum grid points.
Martin Almquist <martin.almquist@it.uu.se>
parents: 266
diff changeset
52 S_m=sparse(sparse(1,m));
261
6009f2712d13 Moved and renamned all implementations.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
53 S_m(m-3:m)=fliplr(-S_U);
6009f2712d13 Moved and renamned all implementations.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
54
6009f2712d13 Moved and renamned all implementations.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
55
267
f7ac3cd6eeaa Sparsified all implementation files, removed all matlab warnings, fixed small bugs on minimum grid points.
Martin Almquist <martin.almquist@it.uu.se>
parents: 266
diff changeset
56 D2=H\(-M-e_1*S_1+e_m*S_m);
261
6009f2712d13 Moved and renamned all implementations.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
57 S_1 = S_1';
6009f2712d13 Moved and renamned all implementations.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
58 S_m = S_m';
6009f2712d13 Moved and renamned all implementations.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
59 end