Mercurial > repos > public > sbplib
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 |