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)