Closed RoberAgro closed 1 day ago
Verified the gradients for all the cascade functions and also for evaluate_axial_turbine
Educated guess still required to get meaningful derivative values for comparison
Pandas dataframe usage has been removed in performance analysis. It has been replaced by dictionaries and other functions decribed in numerics and file_utils docs
Writing and storing the results gives errors as it uses pandas commands. This has to be updated and changed.
Jax works with isentropic and critical mach choking criteira for the complete axial turbine problem
The issue is with critical mass flow rate choking criteria for which jax is not working. Jax differentiates compute_critical_values function in choking criteria but Jax fails when differentiating critical_mass_flow_rate function
Jax runs for whole turbine calculation with critical_mach_number and kacker-okapuu loss model
Jax runs for whole turbine calculation with critical_mach_number and moustapha loss model
Now JAX runs for whole turbine calculation with critical_mach_number and all loss models
JAX works for two_stage turbine calculation too with crtical_mach_number as choking criterion and all loss models. Now the issue is with critical_mass_flow_rate choking criterion, it has a tracing error with JAX. One possible issue is with how the function is defined. Checking the issue
JAX works now with critical_mass_flow_rate choking criterion too. The tracer error was due to the fact that critical_state was initialized within the critical_mass_flow_rate function and it was being updated which caused the tracer error while using JAX. It is resolved by using another dict updated_critical_state to avoid mutation of critical_state. The updated code works now
Performance analysis differentiation with JAX has been done
Design Optimization works with critical mach number and approx derivatives
Some probable issues with design_optimization:
len() doesn't work with jax array