Mercurial > repos > public > sbplib
comparison +scheme/Euler1d.m @ 111:0e66299592cc
Fixed some bugs regarding flowState determination.
author | Jonatan Werpers <jonatan@werpers.com> |
---|---|
date | Wed, 09 Dec 2015 15:48:58 +0100 |
parents | f5ed7ff58115 |
children | f39f98b59f61 |
comparison
equal
deleted
inserted
replaced
110:f5ed7ff58115 | 111:0e66299592cc |
---|---|
163 % Devide columns by stuff to get rid of extra comp? | 163 % Devide columns by stuff to get rid of extra comp? |
164 end | 164 end |
165 | 165 |
166 function fs = flowStateL(obj, q) | 166 function fs = flowStateL(obj, q) |
167 q_l = obj.e_L'*q; | 167 q_l = obj.e_L'*q; |
168 c = obj.c(q); | 168 c = obj.c(q_l); |
169 v = q_l(2,:)/q_l(1,:); | 169 v = q_l(2,:)/q_l(1,:); |
170 | 170 |
171 if v > c | 171 if v > c |
172 fs = scheme.Euler1d.SUPERSONIC_INFLOW; | 172 fs = scheme.Euler1d.SUPERSONIC_INFLOW; |
173 elseif v > 0 | 173 elseif v > 0 |
174 fs = scheme.Euler1d.SUBSONIC_INFLOW; | 174 fs = scheme.Euler1d.SUBSONIC_INFLOW; |
175 elseif v > -c | 175 elseif v > -c |
176 fs = scheme.Euler1d.SUBSONIC_OUTFLOW; | 176 fs = scheme.Euler1d.SUBSONIC_OUTFLOW; |
177 else | 177 else |
178 fs = scheme.Euler1d.SUPERSONIC_INFLOW; | 178 fs = scheme.Euler1d.SUPERSONIC_OUTFLOW; |
179 end | 179 end |
180 end | 180 end |
181 | 181 |
182 % returns positiv values for inlfow, negative for outflow. | 182 % returns positiv values for inlfow, negative for outflow. |
183 % +-1 for subsonic | 183 % +-1 for subsonic |
184 function fs = flowStateR(obj, q) | 184 function fs = flowStateR(obj, q) |
185 q_r = obj.e_R'*q; | 185 q_r = obj.e_R'*q; |
186 c = obj.c(q); | 186 c = obj.c(q_r); |
187 v = q_r(2,:)/q_r(1,:); | 187 v = q_r(2,:)/q_r(1,:); |
188 | 188 |
189 if v < -c | 189 if v < -c |
190 fs = scheme.Euler1d.SUPERSONIC_INFLOW; | 190 fs = scheme.Euler1d.SUPERSONIC_INFLOW; |
191 elseif v < 0 | 191 elseif v < 0 |
192 fs = scheme.Euler1d.SUBSONIC_INFLOW; | 192 fs = scheme.Euler1d.SUBSONIC_INFLOW; |
193 elseif v < c | 193 elseif v < c |
194 fs = scheme.Euler1d.SUBSONIC_OUTFLOW; | 194 fs = scheme.Euler1d.SUBSONIC_OUTFLOW; |
195 else | 195 else |
196 fs = scheme.Euler1d.SUPERSONIC_INFLOW; | 196 fs = scheme.Euler1d.SUPERSONIC_OUTFLOW; |
197 end | 197 end |
198 end | 198 end |
199 | 199 |
200 % Enforces the boundary conditions | 200 % Enforces the boundary conditions |
201 % w+ = R*w- + g(t) | 201 % w+ = R*w- + g(t) |