Normal shock mode : better error handling required when illegal values are entered
- Dominant language
- Python
- Stars
- 35
- Forks
- 10
- PR merge metrics
- No merged PRs in 30d
Description
Should not get core dumped. Will have to be dealt in `scikit-aero/skaero/gasdynamics/isentropic.py` or in caeroc.
```
DEBUG:caeroc-app:MODE: Normal shock relations
INFO:caeroc-app:{'M_1': 0.9}
CRITICAL:caeroc-app:Mach number must be supersonic
Traceback (most recent call last):
File "/scratch/avmo/opt/caeroc-r8bspf19/src/scikit-aero/skaero/gasdynamics/isentropic.py", line 54, in mach_angle
mu = np.arcsin(1 / M)
FloatingPointError: invalid value encountered in arcsin
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/avmo/src/caeroc/caeroc/gui/runtime.py", line 214, in on_qpb_calculate_released
self.mode.calculate(**kwargs)
File "/home/avmo/src/caeroc/caeroc/formulae/shock.py", line 89, in calculate
self.store(key, getattr(self, key))
File "/scratch/avmo/opt/caeroc-r8bspf19/src/scikit-aero/skaero/gasdynamics/shocks.py", line 219, in M_2
M_2 = self.M_2n / np.sin(self.beta - self.theta)
File "/scratch/avmo/opt/caeroc-r8bspf19/src/scikit-aero/skaero/gasdynamics/shocks.py", line 194, in theta
if self.beta == mach_angle(self.M_1) or self.beta == np.pi / 2:
File "/scratch/avmo/opt/caeroc-r8bspf19/src/scikit-aero/skaero/gasdynamics/isentropic.py", line 56, in mach_angle
raise ValueError("Mach number must be supersonic")
ValueError: Mach number must be supersonic
[1] 11343 abort (core dumped) caeroc-app
```
Contributor guide
No contributing guide indexed for this repository
Research direction
Reproduce the Normal shock relations case with M_1 set to 0.9, then trace the failure through caeroc/formulae/shock.py and caeroc/gui/runtime.py. Compare the possible handling points with scikit-aero/skaero/gasdynamics/isentropic.py; done means illegal values are reported without aborting caeroc-app or producing a core dump.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- desktop
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100