comparison +sbp/+implementations/d4_variable_6.m @ 860:b758d1cf4c8e feature/poroelastic

Add computation of HI*M to D2Variable to make adjoint gradient computation easier.
author Martin Almquist <malmquist@stanford.edu>
date Wed, 24 Oct 2018 16:16:43 -0700
parents 43d02533bea3
children e54c2f54dbfe
comparison
equal deleted inserted replaced
859:4c7532db42cd 860:b758d1cf4c8e
83 83
84 scheme_width = 7; 84 scheme_width = 7;
85 scheme_radius = (scheme_width-1)/2; 85 scheme_radius = (scheme_width-1)/2;
86 r = (1+scheme_radius):(m-scheme_radius); 86 r = (1+scheme_radius):(m-scheme_radius);
87 87
88 function D2 = D2_fun(c) 88 function [D2, B] = D2_fun(c)
89 89
90 Mm3 = c(r-2)/0.40e2 + c(r-1)/0.40e2 - 0.11e2/0.360e3 * c(r-3) - 0.11e2/0.360e3 * c(r); 90 Mm3 = c(r-2)/0.40e2 + c(r-1)/0.40e2 - 0.11e2/0.360e3 * c(r-3) - 0.11e2/0.360e3 * c(r);
91 Mm2 = c(r-3)/0.20e2 - 0.3e1/0.10e2 * c(r-1) + c(r+1)/0.20e2 + 0.7e1/0.40e2 * c(r) + 0.7e1/0.40e2 * c(r-2); 91 Mm2 = c(r-3)/0.20e2 - 0.3e1/0.10e2 * c(r-1) + c(r+1)/0.20e2 + 0.7e1/0.40e2 * c(r) + 0.7e1/0.40e2 * c(r-2);
92 Mm1 = -c(r-3)/0.40e2 - 0.3e1/0.10e2 * c(r-2) - 0.3e1/0.10e2 * c(r+1) - c(r+2)/0.40e2 - 0.17e2/0.40e2 * c(r) - 0.17e2/0.40e2 * c(r-1); 92 Mm1 = -c(r-3)/0.40e2 - 0.3e1/0.10e2 * c(r-2) - 0.3e1/0.10e2 * c(r+1) - c(r+2)/0.40e2 - 0.17e2/0.40e2 * c(r) - 0.17e2/0.40e2 * c(r-1);
93 M0 = c(r-3)/0.180e3 + c(r-2)/0.8e1 + 0.19e2/0.20e2 * c(r-1) + 0.19e2/0.20e2 * c(r+1) + c(r+2)/0.8e1 + c(r+3)/0.180e3 + 0.101e3/0.180e3 * c(r); 93 M0 = c(r-3)/0.180e3 + c(r-2)/0.8e1 + 0.19e2/0.20e2 * c(r-1) + 0.19e2/0.20e2 * c(r+1) + c(r+2)/0.8e1 + c(r+3)/0.180e3 + 0.101e3/0.180e3 * c(r);
126 M(m-4,m-9)=M(m-9,m-4); 126 M(m-4,m-9)=M(m-9,m-4);
127 127
128 M=M/h; 128 M=M/h;
129 129
130 D2 = HI*(-M - c(1)*e_l*d1_l' + c(m)*e_r*d1_r'); 130 D2 = HI*(-M - c(1)*e_l*d1_l' + c(m)*e_r*d1_r');
131 B = HI*M;
131 end 132 end
132 D2 = @D2_fun; 133 D2 = @D2_fun;
133 134
134 % Fourth derivative, 1th order accurate at first 8 boundary points (still 135 % Fourth derivative, 1th order accurate at first 8 boundary points (still
135 % yield 5th order convergence if stable: for example u_tt=-u_xxxx 136 % yield 5th order convergence if stable: for example u_tt=-u_xxxx