pydae-uds 1.0.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (185) hide show
  1. pydae_uds-1.0.1/.gitignore +81 -0
  2. pydae_uds-1.0.1/PKG-INFO +30 -0
  3. pydae_uds-1.0.1/README.md +11 -0
  4. pydae_uds-1.0.1/pyproject.toml +46 -0
  5. pydae_uds-1.0.1/src/pydae/uds/__init__.py +27 -0
  6. pydae_uds-1.0.1/src/pydae/uds/builder.py +22 -0
  7. pydae_uds-1.0.1/src/pydae/uds/dev/trafo_Dyg11.ipynb +215 -0
  8. pydae_uds-1.0.1/src/pydae/uds/dev/trafos_sym.ipynb +221 -0
  9. pydae_uds-1.0.1/src/pydae/uds/ess/__init__.py +0 -0
  10. pydae_uds-1.0.1/src/pydae/uds/ess/bess.ipynb +275 -0
  11. pydae_uds-1.0.1/src/pydae/uds/ess/bess_dcac.hjson +46 -0
  12. pydae_uds-1.0.1/src/pydae/uds/ess/bess_dcac.ipynb +638 -0
  13. pydae_uds-1.0.1/src/pydae/uds/ess/bess_dcac.py +347 -0
  14. pydae_uds-1.0.1/src/pydae/uds/ess/bess_dcac.svg +1025 -0
  15. pydae_uds-1.0.1/src/pydae/uds/ess/bess_dcdc.hjson +34 -0
  16. pydae_uds-1.0.1/src/pydae/uds/ess/bess_dcdc.ipynb +574 -0
  17. pydae_uds-1.0.1/src/pydae/uds/ess/bess_dcdc.py +249 -0
  18. pydae_uds-1.0.1/src/pydae/uds/ess/bess_dcdc_gf.hjson +35 -0
  19. pydae_uds-1.0.1/src/pydae/uds/ess/bess_dcdc_gf.py +185 -0
  20. pydae_uds-1.0.1/src/pydae/uds/ess/bess_dcdc_gf_iso.hjson +31 -0
  21. pydae_uds-1.0.1/src/pydae/uds/ess/bess_r.hjson +52 -0
  22. pydae_uds-1.0.1/src/pydae/uds/ess/bess_r.py +209 -0
  23. pydae_uds-1.0.1/src/pydae/uds/ess/bess_r_ctrl_3ph_4w_pq.hjson +48 -0
  24. pydae_uds-1.0.1/src/pydae/uds/ess/ess.py +28 -0
  25. pydae_uds-1.0.1/src/pydae/uds/ess/temp.py +1822 -0
  26. pydae_uds-1.0.1/src/pydae/uds/ess/xy_1.json +61 -0
  27. pydae_uds-1.0.1/src/pydae/uds/fcs/__init__.py +0 -0
  28. pydae_uds-1.0.1/src/pydae/uds/fcs/bess.ipynb +275 -0
  29. pydae_uds-1.0.1/src/pydae/uds/fcs/bess_dcac.svg +1025 -0
  30. pydae_uds-1.0.1/src/pydae/uds/fcs/bess_dcdc.hjson +34 -0
  31. pydae_uds-1.0.1/src/pydae/uds/fcs/bess_dcdc.py +249 -0
  32. pydae_uds-1.0.1/src/pydae/uds/fcs/bess_r.hjson +52 -0
  33. pydae_uds-1.0.1/src/pydae/uds/fcs/bess_r.py +209 -0
  34. pydae_uds-1.0.1/src/pydae/uds/fcs/bess_r_ctrl_3ph_4w_pq.hjson +48 -0
  35. pydae_uds-1.0.1/src/pydae/uds/fcs/fcs.py +27 -0
  36. pydae_uds-1.0.1/src/pydae/uds/fcs/pem_dcac.hjson +46 -0
  37. pydae_uds-1.0.1/src/pydae/uds/fcs/pem_dcac.ipynb +638 -0
  38. pydae_uds-1.0.1/src/pydae/uds/fcs/pem_dcac.py +347 -0
  39. pydae_uds-1.0.1/src/pydae/uds/fcs/pemfc_dcdc_gf.ipynb +197 -0
  40. pydae_uds-1.0.1/src/pydae/uds/fcs/pemfc_dcdc_gf.py +261 -0
  41. pydae_uds-1.0.1/src/pydae/uds/fcs/pemfc_dcdc_gf_iso.hjson +31 -0
  42. pydae_uds-1.0.1/src/pydae/uds/fcs/sofc.py +411 -0
  43. pydae_uds-1.0.1/src/pydae/uds/fcs/sofc_dcdc.py +274 -0
  44. pydae_uds-1.0.1/src/pydae/uds/fcs/sofc_dcdc_gf.hjson +35 -0
  45. pydae_uds-1.0.1/src/pydae/uds/fcs/sofc_dcdc_gf.ipynb +238 -0
  46. pydae_uds-1.0.1/src/pydae/uds/fcs/sofc_dcdc_gf.py +411 -0
  47. pydae_uds-1.0.1/src/pydae/uds/fcs/sofc_dcdc_gf_iso.hjson +31 -0
  48. pydae_uds-1.0.1/src/pydae/uds/fcs/sofc_dcdcac_gf.py +263 -0
  49. pydae_uds-1.0.1/src/pydae/uds/fcs/sofc_dcdcac_gf_ib.hjson +49 -0
  50. pydae_uds-1.0.1/src/pydae/uds/fcs/sofc_dcdcac_gf_ib.ipynb +7928 -0
  51. pydae_uds-1.0.1/src/pydae/uds/fcs/sofc_dcdcac_gf_iso.hjson +46 -0
  52. pydae_uds-1.0.1/src/pydae/uds/fcs/sofc_dcdcac_gf_iso.ipynb +7871 -0
  53. pydae_uds-1.0.1/src/pydae/uds/fcs/temp.py +1822 -0
  54. pydae_uds-1.0.1/src/pydae/uds/fcs/xy_1.json +61 -0
  55. pydae_uds-1.0.1/src/pydae/uds/genapes/__init__.py +6 -0
  56. pydae_uds-1.0.1/src/pydae/uds/genapes/ac3ph3w_ideal.py +123 -0
  57. pydae_uds-1.0.1/src/pydae/uds/genapes/ac3ph4w_ideal.py +122 -0
  58. pydae_uds-1.0.1/src/pydae/uds/genapes/dc_ideal.py +74 -0
  59. pydae_uds-1.0.1/src/pydae/uds/genapes/genape_inf.py +215 -0
  60. pydae_uds-1.0.1/src/pydae/uds/genapes/genapes.py +26 -0
  61. pydae_uds-1.0.1/src/pydae/uds/lines/__init__.py +10 -0
  62. pydae_uds-1.0.1/src/pydae/uds/lines/lines.py +332 -0
  63. pydae_uds-1.0.1/src/pydae/uds/loads/__init__.py +6 -0
  64. pydae_uds-1.0.1/src/pydae/uds/loads/load_ac.py +135 -0
  65. pydae_uds-1.0.1/src/pydae/uds/loads/load_ac_3w.py +93 -0
  66. pydae_uds-1.0.1/src/pydae/uds/loads/load_dc.py +40 -0
  67. pydae_uds-1.0.1/src/pydae/uds/loads/loads.py +30 -0
  68. pydae_uds-1.0.1/src/pydae/uds/miscellaneous/__init__.py +6 -0
  69. pydae_uds-1.0.1/src/pydae/uds/miscellaneous/breaker.hjson +43 -0
  70. pydae_uds-1.0.1/src/pydae/uds/miscellaneous/breaker.py +59 -0
  71. pydae_uds-1.0.1/src/pydae/uds/miscellaneous/temp.py +1822 -0
  72. pydae_uds-1.0.1/src/pydae/uds/pvs/__init__.py +0 -0
  73. pydae_uds-1.0.1/src/pydae/uds/pvs/pv_mppt_dcdc.ipynb +252 -0
  74. pydae_uds-1.0.1/src/pydae/uds/pvs/pv_mpt.hjson +48 -0
  75. pydae_uds-1.0.1/src/pydae/uds/pvs/pv_mpt.py +158 -0
  76. pydae_uds-1.0.1/src/pydae/uds/pvs/pv_mpt_dcac.hjson +34 -0
  77. pydae_uds-1.0.1/src/pydae/uds/pvs/pv_mpt_dcac.py +188 -0
  78. pydae_uds-1.0.1/src/pydae/uds/pvs/pv_mpt_dcdc.hjson +34 -0
  79. pydae_uds-1.0.1/src/pydae/uds/pvs/pv_mpt_dcdc.py +194 -0
  80. pydae_uds-1.0.1/src/pydae/uds/pvs/pvs.py +22 -0
  81. pydae_uds-1.0.1/src/pydae/uds/pvs/temp.py +1951 -0
  82. pydae_uds-1.0.1/src/pydae/uds/shunts/__init__.py +6 -0
  83. pydae_uds-1.0.1/src/pydae/uds/shunts/shunts.py +47 -0
  84. pydae_uds-1.0.1/src/pydae/uds/sources/__init__.py +10 -0
  85. pydae_uds-1.0.1/src/pydae/uds/sources/ac3ph3w_ideal.py +100 -0
  86. pydae_uds-1.0.1/src/pydae/uds/sources/ac3ph4w_ideal.hjson +39 -0
  87. pydae_uds-1.0.1/src/pydae/uds/sources/ac3ph4w_ideal.py +157 -0
  88. pydae_uds-1.0.1/src/pydae/uds/sources/acdc_3ph_4w_dc.hjson +42 -0
  89. pydae_uds-1.0.1/src/pydae/uds/sources/acdc_3ph_4w_vdc_q.hjson +42 -0
  90. pydae_uds-1.0.1/src/pydae/uds/sources/dc_ideal.py +74 -0
  91. pydae_uds-1.0.1/src/pydae/uds/sources/dc_src_load.hjson +40 -0
  92. pydae_uds-1.0.1/src/pydae/uds/sources/genape_inf.py +215 -0
  93. pydae_uds-1.0.1/src/pydae/uds/sources/sources.py +25 -0
  94. pydae_uds-1.0.1/src/pydae/uds/sources/temp.py +1951 -0
  95. pydae_uds-1.0.1/src/pydae/uds/sources/vdc_src.py +93 -0
  96. pydae_uds-1.0.1/src/pydae/uds/transformers/Dyg11.json +19 -0
  97. pydae_uds-1.0.1/src/pydae/uds/transformers/Dyg11.py +195 -0
  98. pydae_uds-1.0.1/src/pydae/uds/transformers/Dyn11.json +36 -0
  99. pydae_uds-1.0.1/src/pydae/uds/transformers/Dyn11.py +223 -0
  100. pydae_uds-1.0.1/src/pydae/uds/transformers/Dyn11t.json +38 -0
  101. pydae_uds-1.0.1/src/pydae/uds/transformers/__init__.py +6 -0
  102. pydae_uds-1.0.1/src/pydae/uds/transformers/cigre_eu_lv_ind.py +1823 -0
  103. pydae_uds-1.0.1/src/pydae/uds/transformers/transformers.py +763 -0
  104. pydae_uds-1.0.1/src/pydae/uds/uds_builder.py +442 -0
  105. pydae_uds-1.0.1/src/pydae/uds/utils/__init__.py +9 -0
  106. pydae_uds-1.0.1/src/pydae/uds/utils/measurements.py +165 -0
  107. pydae_uds-1.0.1/src/pydae/uds/utils/model2svg.py +302 -0
  108. pydae_uds-1.0.1/src/pydae/uds/utils/reports.py +132 -0
  109. pydae_uds-1.0.1/src/pydae/uds/vsc_ctrls/__init__.py +0 -0
  110. pydae_uds-1.0.1/src/pydae/uds/vsc_ctrls/ctrl_3ph_4w_droop.py +96 -0
  111. pydae_uds-1.0.1/src/pydae/uds/vsc_ctrls/ctrl_3ph_4w_pq.py +208 -0
  112. pydae_uds-1.0.1/src/pydae/uds/vsc_ctrls/ctrl_3ph_4w_pq_ib.hjson +44 -0
  113. pydae_uds-1.0.1/src/pydae/uds/vsc_ctrls/temp.py +1951 -0
  114. pydae_uds-1.0.1/src/pydae/uds/vsc_ctrls/vsc_ctrls.py +21 -0
  115. pydae_uds-1.0.1/src/pydae/uds/vscs/__init__.py +0 -0
  116. pydae_uds-1.0.1/src/pydae/uds/vscs/ac1ph2wpq.py +105 -0
  117. pydae_uds-1.0.1/src/pydae/uds/vscs/ac3ph3wpq.py +105 -0
  118. pydae_uds-1.0.1/src/pydae/uds/vscs/ac3ph3wvdcq.py +232 -0
  119. pydae_uds-1.0.1/src/pydae/uds/vscs/ac3ph4wgf.py +204 -0
  120. pydae_uds-1.0.1/src/pydae/uds/vscs/ac3ph4wgfpi2.py +274 -0
  121. pydae_uds-1.0.1/src/pydae/uds/vscs/ac3ph4wgfpi3.py +350 -0
  122. pydae_uds-1.0.1/src/pydae/uds/vscs/ac3ph4wgfpi3_ib.hjson +44 -0
  123. pydae_uds-1.0.1/src/pydae/uds/vscs/ac3ph4wgfpi3_iso.hjson +44 -0
  124. pydae_uds-1.0.1/src/pydae/uds/vscs/ac3ph4wgfpidq.py +236 -0
  125. pydae_uds-1.0.1/src/pydae/uds/vscs/ac3ph4wgfpidq3.hjson +47 -0
  126. pydae_uds-1.0.1/src/pydae/uds/vscs/ac3ph4wgfpidq3.py +360 -0
  127. pydae_uds-1.0.1/src/pydae/uds/vscs/ac3ph4wgfpidq3_ib.hjson +43 -0
  128. pydae_uds-1.0.1/src/pydae/uds/vscs/ac3ph4wpq.py +131 -0
  129. pydae_uds-1.0.1/src/pydae/uds/vscs/ac3ph4wvdcq.py +147 -0
  130. pydae_uds-1.0.1/src/pydae/uds/vscs/ac_1_dc_2.py +1951 -0
  131. pydae_uds-1.0.1/src/pydae/uds/vscs/ac_3ph4w_gfpizv.py +510 -0
  132. pydae_uds-1.0.1/src/pydae/uds/vscs/ac_3ph_4w.ipynb +222 -0
  133. pydae_uds-1.0.1/src/pydae/uds/vscs/ac_3ph_4w.py +161 -0
  134. pydae_uds-1.0.1/src/pydae/uds/vscs/ac_3ph_4w_gfpizv.ipynb +7043 -0
  135. pydae_uds-1.0.1/src/pydae/uds/vscs/ac_3ph_4w_gfpizv.py +570 -0
  136. pydae_uds-1.0.1/src/pydae/uds/vscs/ac_3ph_4w_gfpizv_back.py +543 -0
  137. pydae_uds-1.0.1/src/pydae/uds/vscs/ac_3ph_4w_gfpizv_ib.hjson +46 -0
  138. pydae_uds-1.0.1/src/pydae/uds/vscs/ac_3ph_4w_gfpizv_ib.ipynb +7105 -0
  139. pydae_uds-1.0.1/src/pydae/uds/vscs/ac_3ph_4w_gfpizv_iso.hjson +46 -0
  140. pydae_uds-1.0.1/src/pydae/uds/vscs/ac_3ph_4w_gfpizv_iso.ipynb +7105 -0
  141. pydae_uds-1.0.1/src/pydae/uds/vscs/ac_3ph_4w_gfpizv_sharing.hjson +45 -0
  142. pydae_uds-1.0.1/src/pydae/uds/vscs/ac_3ph_4w_ib.hjson +46 -0
  143. pydae_uds-1.0.1/src/pydae/uds/vscs/ac_3ph_4w_iso.hjson +46 -0
  144. pydae_uds-1.0.1/src/pydae/uds/vscs/ac_3ph_4w_l.hjson +40 -0
  145. pydae_uds-1.0.1/src/pydae/uds/vscs/ac_3ph_4w_l.py +332 -0
  146. pydae_uds-1.0.1/src/pydae/uds/vscs/ac_3ph_4w_l_ib.hjson +40 -0
  147. pydae_uds-1.0.1/src/pydae/uds/vscs/ac_3ph_4w_l_ib.ipynb +194 -0
  148. pydae_uds-1.0.1/src/pydae/uds/vscs/ac_3ph_4w_l_iso.hjson +43 -0
  149. pydae_uds-1.0.1/src/pydae/uds/vscs/ac_3ph_4w_l_iso.ipynb +191 -0
  150. pydae_uds-1.0.1/src/pydae/uds/vscs/ac_3ph_4w_pq.hjson +38 -0
  151. pydae_uds-1.0.1/src/pydae/uds/vscs/ac_3ph_4w_pq.py +168 -0
  152. pydae_uds-1.0.1/src/pydae/uds/vscs/ac_3ph_4w_pq_ib.hjson +40 -0
  153. pydae_uds-1.0.1/src/pydae/uds/vscs/acdc_2ac_2dc.hjson +41 -0
  154. pydae_uds-1.0.1/src/pydae/uds/vscs/acdc_2ac_2dc.py +1951 -0
  155. pydae_uds-1.0.1/src/pydae/uds/vscs/acdc_2ac_2dc_gfh.hjson +55 -0
  156. pydae_uds-1.0.1/src/pydae/uds/vscs/acdc_3ph_4w_l.py +248 -0
  157. pydae_uds-1.0.1/src/pydae/uds/vscs/acdc_3ph_4w_pq.hjson +39 -0
  158. pydae_uds-1.0.1/src/pydae/uds/vscs/acdc_3ph_4w_pq.ipynb +333 -0
  159. pydae_uds-1.0.1/src/pydae/uds/vscs/acdc_3ph_4w_pq.py +135 -0
  160. pydae_uds-1.0.1/src/pydae/uds/vscs/acdc_3ph_4w_vdc_q.hjson +41 -0
  161. pydae_uds-1.0.1/src/pydae/uds/vscs/acdc_3ph_4w_vdc_q.py +160 -0
  162. pydae_uds-1.0.1/src/pydae/uds/vscs/dcdc_gfh.hjson +34 -0
  163. pydae_uds-1.0.1/src/pydae/uds/vscs/dcdc_gfh.py +132 -0
  164. pydae_uds-1.0.1/src/pydae/uds/vscs/dcdc_gfl.hjson +34 -0
  165. pydae_uds-1.0.1/src/pydae/uds/vscs/dcdc_gfl.py +99 -0
  166. pydae_uds-1.0.1/src/pydae/uds/vscs/dcdc_ph.hjson +34 -0
  167. pydae_uds-1.0.1/src/pydae/uds/vscs/dcdc_ph.py +107 -0
  168. pydae_uds-1.0.1/src/pydae/uds/vscs/temp.py +1822 -0
  169. pydae_uds-1.0.1/src/pydae/uds/vscs/vscs.py +81 -0
  170. pydae_uds-1.0.1/src/pydae/uds/vsgs/__init__.py +0 -0
  171. pydae_uds-1.0.1/src/pydae/uds/vsgs/calcs.ipynb +64 -0
  172. pydae_uds-1.0.1/src/pydae/uds/vsgs/gflpfzv.py +226 -0
  173. pydae_uds-1.0.1/src/pydae/uds/vsgs/gflpfzv_ib.hjson +47 -0
  174. pydae_uds-1.0.1/src/pydae/uds/vsgs/gflpfzv_ib.ipynb +265 -0
  175. pydae_uds-1.0.1/src/pydae/uds/vsgs/gfpizv.py +407 -0
  176. pydae_uds-1.0.1/src/pydae/uds/vsgs/gfpizv_ib.hjson +48 -0
  177. pydae_uds-1.0.1/src/pydae/uds/vsgs/gfpizv_ib.ipynb +64 -0
  178. pydae_uds-1.0.1/src/pydae/uds/vsgs/gfpizv_iso.hjson +47 -0
  179. pydae_uds-1.0.1/src/pydae/uds/vsgs/gfpizv_sharing.hjson +58 -0
  180. pydae_uds-1.0.1/src/pydae/uds/vsgs/gfpizv_sharing.ipynb +64 -0
  181. pydae_uds-1.0.1/src/pydae/uds/vsgs/temp.py +1822 -0
  182. pydae_uds-1.0.1/src/pydae/uds/vsgs/vsg_lpf.hjson +43 -0
  183. pydae_uds-1.0.1/src/pydae/uds/vsgs/vsg_lpf.py +130 -0
  184. pydae_uds-1.0.1/src/pydae/uds/vsgs/vsg_lpf_ib.hjson +47 -0
  185. pydae_uds-1.0.1/src/pydae/uds/vsgs/vsgs.py +25 -0
@@ -0,0 +1,81 @@
1
+ # Python
2
+ __pycache__/
3
+ *.py[cod]
4
+ *$py.class
5
+ *.egg-info/
6
+ *.egg
7
+ dist/
8
+ build/
9
+ *.so
10
+ *.dll
11
+ *.dylib
12
+
13
+ # Virtual environments
14
+ .venv/
15
+ venv/
16
+ env/
17
+
18
+ # uv
19
+ uv.lock
20
+
21
+ # IDE
22
+ .vscode/
23
+ .idea/
24
+ *.swp
25
+ *.swo
26
+
27
+ # Build artifacts from pydae
28
+ *_cffi.c
29
+ *_ctypes.c
30
+ *_ctypes.so
31
+ *_ctypes.dll
32
+ *.pyd
33
+ *.obj
34
+ *.exp
35
+ *.lib
36
+ system_data.json
37
+ packages/**/temp_*_data.json
38
+ packages/**/temp_*_xy_0.json
39
+ packages/**/temp_*_damp_report.md
40
+ packages/**/xy_0.json
41
+ packages/**/jacobian_diagnostic.png
42
+ packages/**/Release/
43
+
44
+ # OS
45
+ .DS_Store
46
+ Thumbs.db
47
+
48
+ # Testing
49
+ .pytest_cache/
50
+ .coverage
51
+ htmlcov/
52
+
53
+ # Jupyter
54
+ .ipynb_checkpoints/
55
+
56
+ # Generated artifacts from examples
57
+ examples/*.svg
58
+ examples/*_data.json
59
+ examples/xy_0.json
60
+ examples/*_xy_0.json
61
+ examples/jacobian_diagnostic.png
62
+
63
+ # Root-level test data artifacts
64
+ *xy_0.json
65
+ test_*_data.json
66
+ test_*_bcd_data.json
67
+ compare_hjson.py
68
+ test_ieee39_casadi.py
69
+ condaenv.*.requirements.txt
70
+
71
+ # Sphinx build output
72
+ docs/**/_build/
73
+ docs/**/_autosummary/
74
+
75
+ # Claude Code local state (keep .claude/commands, settings.json, this repo's shared config)
76
+ .claude/settings.local.json
77
+ .claude/.credentials*
78
+ .claude/history*
79
+
80
+
81
+ prompts/
@@ -0,0 +1,30 @@
1
+ Metadata-Version: 2.4
2
+ Name: pydae-uds
3
+ Version: 1.0.1
4
+ Summary: Unbalanced distribution systems builder for pydae DAE solver
5
+ Project-URL: Homepage, https://github.com/pydae/pydae
6
+ Project-URL: Repository, https://github.com/pydae/pydae
7
+ Author-email: Juan Manuel Mauricio <jmmauricio6@gmail.com>
8
+ License: MIT
9
+ Keywords: DAE,distribution,power-systems,three-phase,unbalanced
10
+ Classifier: Development Status :: 4 - Beta
11
+ Classifier: Intended Audience :: Science/Research
12
+ Classifier: License :: OSI Approved :: MIT License
13
+ Classifier: Topic :: Scientific/Engineering
14
+ Requires-Python: >=3.10
15
+ Requires-Dist: hjson>=3.0.0
16
+ Requires-Dist: networkx>=3.2.0
17
+ Requires-Dist: pydae>=1.0.0
18
+ Description-Content-Type: text/markdown
19
+
20
+ # pydae-uds
21
+
22
+ Unbalanced Distribution Systems builder for the [pydae](https://github.com/pydae/pydae) DAE solver.
23
+
24
+ Reads 3-phase unbalanced distribution network descriptions and constructs the symbolic DAE system dictionary for `pydae.core.Builder`.
25
+
26
+ ## Installation
27
+
28
+ ```bash
29
+ pip install pydae-uds # automatically installs pydae as a dependency
30
+ ```
@@ -0,0 +1,11 @@
1
+ # pydae-uds
2
+
3
+ Unbalanced Distribution Systems builder for the [pydae](https://github.com/pydae/pydae) DAE solver.
4
+
5
+ Reads 3-phase unbalanced distribution network descriptions and constructs the symbolic DAE system dictionary for `pydae.core.Builder`.
6
+
7
+ ## Installation
8
+
9
+ ```bash
10
+ pip install pydae-uds # automatically installs pydae as a dependency
11
+ ```
@@ -0,0 +1,46 @@
1
+ # =============================================================================
2
+ # pydae-uds: Unbalanced Distribution Systems Builder
3
+ # =============================================================================
4
+ # Previously known as "urisi". Builds DAE system dictionaries for
5
+ # unbalanced (3-phase) distribution network analysis.
6
+ #
7
+ # Users install with: pip install pydae-uds
8
+ # Import with: from pydae.uds import UdsBuilder
9
+ # =============================================================================
10
+
11
+ [project]
12
+ name = "pydae-uds"
13
+ version = "1.0.1"
14
+ description = "Unbalanced distribution systems builder for pydae DAE solver"
15
+ readme = "README.md"
16
+ requires-python = ">=3.10"
17
+ license = {text = "MIT"}
18
+ authors = [
19
+ {name = "Juan Manuel Mauricio", email = "jmmauricio6@gmail.com"}
20
+ ]
21
+ keywords = ["power-systems", "DAE", "unbalanced", "distribution", "three-phase"]
22
+ classifiers = [
23
+ "License :: OSI Approved :: MIT License",
24
+ "Development Status :: 4 - Beta",
25
+ "Intended Audience :: Science/Research",
26
+ "Topic :: Scientific/Engineering",
27
+ ]
28
+ dependencies = [
29
+ "pydae>=1.0.0",
30
+ "networkx>=3.2.0",
31
+ "hjson>=3.0.0",
32
+ ]
33
+
34
+ [project.urls]
35
+ Homepage = "https://github.com/pydae/pydae"
36
+ Repository = "https://github.com/pydae/pydae"
37
+
38
+ [tool.uv.sources]
39
+ pydae = { workspace = true }
40
+
41
+ [build-system]
42
+ requires = ["hatchling"]
43
+ build-backend = "hatchling.build"
44
+
45
+ [tool.hatch.build.targets.wheel]
46
+ packages = ["src/pydae"]
@@ -0,0 +1,27 @@
1
+ """
2
+ pydae.uds - Unbalanced Distribution Systems Builder
3
+ =====================================================
4
+
5
+ Previously known as "urisi". This package reads 3-phase unbalanced
6
+ distribution network descriptions and constructs the DAE system
7
+ dictionary for pydae.core.Builder.
8
+
9
+ Usage::
10
+
11
+ from pydae.uds import UdsBuilder
12
+
13
+ net = UdsBuilder('distribution_network.json')
14
+ net.construct('my_network')
15
+
16
+ from pydae.core import Builder
17
+ bld = Builder(net.sys_dict, target='ctypes')
18
+ bld.build()
19
+
20
+ Migration from urisi
21
+ ---------------------
22
+ Old: from pydae.uds import UdsBuilder
23
+ New: from pydae.uds import UdsBuilder
24
+ """
25
+
26
+ from pydae.uds.uds_builder import UdsBuilder
27
+ __all__ = ["UdsBuilder"]
@@ -0,0 +1,22 @@
1
+ # pydae/uds/builder.py
2
+ """
3
+ Unbalanced Distribution Systems Builder.
4
+
5
+ This module will contain the code currently in pydae.urisi.urisi_builder.
6
+ It reads 3-phase unbalanced network descriptions and constructs the
7
+ symbolic DAE system dictionary for pydae.core.Builder.
8
+
9
+ Migration checklist:
10
+ 1. Copy urisi_builder.py content here
11
+ 2. Rename class urisi -> UdsBuilder
12
+ 3. Update internal imports from pydae.uds.* -> pydae.uds.*
13
+ 4. Move component models into pydae/uds/components/
14
+ """
15
+
16
+ # Placeholder - replace with actual urisi code
17
+ # class UdsBuilder:
18
+ # def __init__(self, network_file):
19
+ # ...
20
+ # def construct(self, name):
21
+ # ...
22
+ # return self.sys_dict
@@ -0,0 +1,215 @@
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "code",
5
+ "execution_count": 1,
6
+ "metadata": {},
7
+ "outputs": [],
8
+ "source": [
9
+ "import sympy as sym"
10
+ ]
11
+ },
12
+ {
13
+ "cell_type": "code",
14
+ "execution_count": 21,
15
+ "metadata": {},
16
+ "outputs": [],
17
+ "source": [
18
+ "'''\n",
19
+ "I1 = U1_to_I1 * U1\n",
20
+ "U1 = N*UA\n",
21
+ "IA = N.T * I1 + UnRG\n",
22
+ "\n",
23
+ "IA = Yp*UA\n",
24
+ "\n",
25
+ "IA = (N.T * U1_to_I1 * N)*UA + UnRG \n",
26
+ "\n",
27
+ "'''\n",
28
+ "\n",
29
+ "G_ta,B_ta,G_ma,B_ma,Ratio_a = sym.symbols('G_ta,B_ta,G_ma,B_ma,Ratio_a', real = True)\n",
30
+ "G_tb,B_tb,G_mb,B_mb,Ratio_b = sym.symbols('G_tb,B_tb,G_mb,B_mb,Ratio_b', real = True)\n",
31
+ "G_tc,B_tc,G_mc,B_mc,Ratio_c = sym.symbols('G_tc,B_tc,G_mc,B_mc,Ratio_c', real = True)\n",
32
+ "\n",
33
+ "G_ta,B_ta,G_ma,B_ma,Ratio_a = sym.symbols('G_t,B_t,G_m,B_m,Ratio_a', real = True)\n",
34
+ "G_tb,B_tb,G_mb,B_mb,Ratio_b = sym.symbols('G_t,B_t,G_m,B_m,Ratio_b', real = True)\n",
35
+ "G_tc,B_tc,G_mc,B_mc,Ratio_c = sym.symbols('G_t,B_t,G_m,B_m,Ratio_c', real = True)\n",
36
+ "\n",
37
+ "G_t,B_t,G_m,B_m,Ratio = sym.symbols('G_t,B_t,G_m,B_m,Ratio', real = True)\n",
38
+ "Ratio_2abc = sym.symbols('Ratio_2abc', real = True)\n",
39
+ "B_m = 0.0\n",
40
+ "G_m = 0.0\n",
41
+ "B_ta = B_tb = B_tc = B_t\n",
42
+ "G_ta = G_tb = G_tc = G_t\n",
43
+ "\n",
44
+ "B_ma = B_mb = B_mc = B_m\n",
45
+ "G_ma = G_mb = G_mc = G_m\n",
46
+ "\n",
47
+ "U_A,U_B,U_C,U_a,U_b,U_c,U_n = sym.symbols('U_A,U_B,U_C,U_a,U_b,U_c,U_n')\n",
48
+ "\n",
49
+ "\n",
50
+ "R_g = sym.symbols('R_g', real = True)\n",
51
+ "\n",
52
+ "\n",
53
+ "Y_ta = G_ta + sym.I*B_ta\n",
54
+ "Y_ma = G_ma + sym.I*B_ma\n",
55
+ "Y_tb = G_tb + sym.I*B_tb\n",
56
+ "Y_mb = G_mb + sym.I*B_mb \n",
57
+ "Y_tc = G_tc + sym.I*B_tc\n",
58
+ "Y_mc = G_mc + sym.I*B_mc \n",
59
+ "\n",
60
+ "RRatio_a = Ratio\n",
61
+ "RRatio_b = Ratio\n",
62
+ "RRatio_c = Ratio\n",
63
+ "\n",
64
+ "U1_to_I1 = sym.Matrix([\n",
65
+ " [ Y_ta + Y_ma, -RRatio_a*Y_ta, 0, 0, 0, 0],\n",
66
+ " [-RRatio_a*Y_ta, RRatio_a**2*Y_ta, 0, 0, 0, 0],\n",
67
+ " [ 0, 0, Y_tb + Y_mb, -RRatio_b*Y_tb, 0, 0],\n",
68
+ " [ 0, 0,-RRatio_b*Y_tb, RRatio_b**2*Y_tb, 0, 0],\n",
69
+ " [ 0, 0, 0, 0, Y_tc + Y_mc, -RRatio_c*Y_tc],\n",
70
+ " [ 0, 0, 0, 0,-RRatio_c*Y_tc, RRatio_c**2*Y_tc]\n",
71
+ "])\n",
72
+ "\n",
73
+ "N = sym.Matrix([# A B C a b c n\n",
74
+ " [ 1, -1, 0, 0, 0, 0, 0], # 1 \n",
75
+ " [ 0, 0, 0, 1, 0, 0, -1], # 2\n",
76
+ " [ 0, 1, -1, 0, 0, 0, 0], # 3\n",
77
+ " [ 0, 0, 0, 0, 1, 0, -1], # 4\n",
78
+ " [-1, 0, 1, 0, 0, 0, 0], # 5\n",
79
+ " [ 0, 0, 0, 0, 0, 1, -1] # 6\n",
80
+ "])\n",
81
+ "\n",
82
+ "Y_prim = N.T @ U1_to_I1 @ N\n",
83
+ "Y_prim[-1,-1] += 1/R_g\n",
84
+ "Y_prim = sym.simplify(Y_prim)\n",
85
+ "\n",
86
+ "U_ABCabcn = sym.Matrix([U_A,U_B,U_C,U_a,U_b,U_c,U_n]) \n",
87
+ "\n",
88
+ "\n",
89
+ "I_ABCabcn = Y_prim @ U_ABCabcn\n",
90
+ "I_n = I_ABCabcn[-1]\n",
91
+ "\n",
92
+ "I = sym.I\n",
93
+ "U_n_abc = sym.solve( I_n, U_n)[0]\n",
94
+ "\n",
95
+ "I_ABCabc = sym.Matrix(I_ABCabcn.subs(U_n,U_n_abc)[:-1])\n",
96
+ "U_ABCabc = sym.Matrix([U_A,U_B,U_C,U_a,U_b,U_c]) \n",
97
+ "\n",
98
+ "Y_prim = I_ABCabc.jacobian(U_ABCabc)\n",
99
+ "\n",
100
+ "G = sym.simplify(sym.re((Y_prim)))\n",
101
+ "B = sym.simplify(sym.im((Y_prim)))"
102
+ ]
103
+ },
104
+ {
105
+ "cell_type": "code",
106
+ "execution_count": 22,
107
+ "metadata": {},
108
+ "outputs": [
109
+ {
110
+ "name": "stdout",
111
+ "output_type": "stream",
112
+ "text": [
113
+ "1700\n",
114
+ "False\n",
115
+ "Matrix([[2*G_t, -G_t, -G_t, -G_t*Ratio, 0, G_t*Ratio], [-G_t, 2*G_t, -G_t, G_t*Ratio, -G_t*Ratio, 0], [-G_t, -G_t, 2*G_t, 0, G_t*Ratio, -G_t*Ratio], [-G_t*Ratio, G_t*Ratio, 0, Ratio**2*(6*B_t**2*G_t*R_g**2*Ratio**4 + B_t**2*R_g*Ratio**2 + 6*G_t**3*R_g**2*Ratio**4 + 5*G_t**2*R_g*Ratio**2 + G_t)/(9*B_t**2*R_g**2*Ratio**4 + 9*G_t**2*R_g**2*Ratio**4 + 6*G_t*R_g*Ratio**2 + 1), R_g*Ratio**4*(-6*B_t**2*G_t*R_g*Ratio**2 + (B_t**2 - G_t**2)*(3*G_t*R_g*Ratio**2 + 1))/(9*B_t**2*R_g**2*Ratio**4 + (3*G_t*R_g*Ratio**2 + 1)**2), R_g*Ratio**4*(-6*B_t**2*G_t*R_g*Ratio**2 + (B_t**2 - G_t**2)*(3*G_t*R_g*Ratio**2 + 1))/(9*B_t**2*R_g**2*Ratio**4 + (3*G_t*R_g*Ratio**2 + 1)**2)], [0, -G_t*Ratio, G_t*Ratio, R_g*Ratio**4*(-6*B_t**2*G_t*R_g*Ratio**2 + (B_t**2 - G_t**2)*(3*G_t*R_g*Ratio**2 + 1))/(9*B_t**2*R_g**2*Ratio**4 + (3*G_t*R_g*Ratio**2 + 1)**2), Ratio**2*(6*B_t**2*G_t*R_g**2*Ratio**4 + B_t**2*R_g*Ratio**2 + 6*G_t**3*R_g**2*Ratio**4 + 5*G_t**2*R_g*Ratio**2 + G_t)/(9*B_t**2*R_g**2*Ratio**4 + 9*G_t**2*R_g**2*Ratio**4 + 6*G_t*R_g*Ratio**2 + 1), R_g*Ratio**4*(-6*B_t**2*G_t*R_g*Ratio**2 + (B_t**2 - G_t**2)*(3*G_t*R_g*Ratio**2 + 1))/(9*B_t**2*R_g**2*Ratio**4 + (3*G_t*R_g*Ratio**2 + 1)**2)], [G_t*Ratio, 0, -G_t*Ratio, R_g*Ratio**4*(-6*B_t**2*G_t*R_g*Ratio**2 + (B_t**2 - G_t**2)*(3*G_t*R_g*Ratio**2 + 1))/(9*B_t**2*R_g**2*Ratio**4 + (3*G_t*R_g*Ratio**2 + 1)**2), R_g*Ratio**4*(-6*B_t**2*G_t*R_g*Ratio**2 + (B_t**2 - G_t**2)*(3*G_t*R_g*Ratio**2 + 1))/(9*B_t**2*R_g**2*Ratio**4 + (3*G_t*R_g*Ratio**2 + 1)**2), Ratio**2*(6*B_t**2*G_t*R_g**2*Ratio**4 + B_t**2*R_g*Ratio**2 + 6*G_t**3*R_g**2*Ratio**4 + 5*G_t**2*R_g*Ratio**2 + G_t)/(9*B_t**2*R_g**2*Ratio**4 + 9*G_t**2*R_g**2*Ratio**4 + 6*G_t*R_g*Ratio**2 + 1)]])\n"
116
+ ]
117
+ }
118
+ ],
119
+ "source": [
120
+ "print(len(str(G)))\n",
121
+ "print('I' in str(G))\n",
122
+ "print(G)"
123
+ ]
124
+ },
125
+ {
126
+ "cell_type": "code",
127
+ "execution_count": 23,
128
+ "metadata": {},
129
+ "outputs": [
130
+ {
131
+ "name": "stdout",
132
+ "output_type": "stream",
133
+ "text": [
134
+ "1613\n",
135
+ "False\n",
136
+ "Matrix([[2*B_t, -B_t, -B_t, -B_t*Ratio, 0, B_t*Ratio], [-B_t, 2*B_t, -B_t, B_t*Ratio, -B_t*Ratio, 0], [-B_t, -B_t, 2*B_t, 0, B_t*Ratio, -B_t*Ratio], [-B_t*Ratio, B_t*Ratio, 0, B_t*Ratio**2*(6*B_t**2*R_g**2*Ratio**4 + 6*G_t**2*R_g**2*Ratio**4 + 4*G_t*R_g*Ratio**2 + 1)/(9*B_t**2*R_g**2*Ratio**4 + 9*G_t**2*R_g**2*Ratio**4 + 6*G_t*R_g*Ratio**2 + 1), B_t*R_g*Ratio**4*(-2*G_t*(3*G_t*R_g*Ratio**2 + 1) - 3*R_g*Ratio**2*(B_t**2 - G_t**2))/(9*B_t**2*R_g**2*Ratio**4 + (3*G_t*R_g*Ratio**2 + 1)**2), B_t*R_g*Ratio**4*(-2*G_t*(3*G_t*R_g*Ratio**2 + 1) - 3*R_g*Ratio**2*(B_t**2 - G_t**2))/(9*B_t**2*R_g**2*Ratio**4 + (3*G_t*R_g*Ratio**2 + 1)**2)], [0, -B_t*Ratio, B_t*Ratio, B_t*R_g*Ratio**4*(-2*G_t*(3*G_t*R_g*Ratio**2 + 1) - 3*R_g*Ratio**2*(B_t**2 - G_t**2))/(9*B_t**2*R_g**2*Ratio**4 + (3*G_t*R_g*Ratio**2 + 1)**2), B_t*Ratio**2*(6*B_t**2*R_g**2*Ratio**4 + 6*G_t**2*R_g**2*Ratio**4 + 4*G_t*R_g*Ratio**2 + 1)/(9*B_t**2*R_g**2*Ratio**4 + 9*G_t**2*R_g**2*Ratio**4 + 6*G_t*R_g*Ratio**2 + 1), B_t*R_g*Ratio**4*(-2*G_t*(3*G_t*R_g*Ratio**2 + 1) - 3*R_g*Ratio**2*(B_t**2 - G_t**2))/(9*B_t**2*R_g**2*Ratio**4 + (3*G_t*R_g*Ratio**2 + 1)**2)], [B_t*Ratio, 0, -B_t*Ratio, B_t*R_g*Ratio**4*(-2*G_t*(3*G_t*R_g*Ratio**2 + 1) - 3*R_g*Ratio**2*(B_t**2 - G_t**2))/(9*B_t**2*R_g**2*Ratio**4 + (3*G_t*R_g*Ratio**2 + 1)**2), B_t*R_g*Ratio**4*(-2*G_t*(3*G_t*R_g*Ratio**2 + 1) - 3*R_g*Ratio**2*(B_t**2 - G_t**2))/(9*B_t**2*R_g**2*Ratio**4 + (3*G_t*R_g*Ratio**2 + 1)**2), B_t*Ratio**2*(6*B_t**2*R_g**2*Ratio**4 + 6*G_t**2*R_g**2*Ratio**4 + 4*G_t*R_g*Ratio**2 + 1)/(9*B_t**2*R_g**2*Ratio**4 + 9*G_t**2*R_g**2*Ratio**4 + 6*G_t*R_g*Ratio**2 + 1)]])\n"
137
+ ]
138
+ }
139
+ ],
140
+ "source": [
141
+ "print(len(str(B)))\n",
142
+ "print('I' in str(B))\n",
143
+ "print(B)"
144
+ ]
145
+ },
146
+ {
147
+ "cell_type": "code",
148
+ "execution_count": 20,
149
+ "metadata": {},
150
+ "outputs": [
151
+ {
152
+ "data": {
153
+ "text/latex": [
154
+ "$\\displaystyle \\frac{- 2 B_{t}^{2} G_{t} R_{g}^{2} \\left(Ratio_{a} - Ratio_{c}\\right)^{2} \\left(Ratio_{a}^{2} + Ratio_{b}^{2} + Ratio_{c}^{2}\\right) + 2 G_{t} \\left(B_{t}^{2} R_{g}^{2} \\left(Ratio_{a}^{2} + Ratio_{b}^{2} + Ratio_{c}^{2}\\right)^{2} + \\left(G_{t} R_{g} Ratio_{a}^{2} + G_{t} R_{g} Ratio_{b}^{2} + G_{t} R_{g} Ratio_{c}^{2} + 1\\right)^{2}\\right) + R_{g} \\left(Ratio_{a} - Ratio_{c}\\right) \\left(B_{t}^{2} Ratio_{a} - B_{t}^{2} Ratio_{c} - G_{t}^{2} Ratio_{a} + G_{t}^{2} Ratio_{c}\\right) \\left(G_{t} R_{g} Ratio_{a}^{2} + G_{t} R_{g} Ratio_{b}^{2} + G_{t} R_{g} Ratio_{c}^{2} + 1\\right)}{B_{t}^{2} R_{g}^{2} \\left(Ratio_{a}^{2} + Ratio_{b}^{2} + Ratio_{c}^{2}\\right)^{2} + \\left(G_{t} R_{g} Ratio_{a}^{2} + G_{t} R_{g} Ratio_{b}^{2} + G_{t} R_{g} Ratio_{c}^{2} + 1\\right)^{2}}$"
155
+ ],
156
+ "text/plain": [
157
+ "(-2*B_t**2*G_t*R_g**2*(Ratio_a - Ratio_c)**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + 2*G_t*(B_t**2*R_g**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2)**2 + (G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1)**2) + R_g*(Ratio_a - Ratio_c)*(B_t**2*Ratio_a - B_t**2*Ratio_c - G_t**2*Ratio_a + G_t**2*Ratio_c)*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1))/(B_t**2*R_g**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2)**2 + (G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1)**2)"
158
+ ]
159
+ },
160
+ "execution_count": 20,
161
+ "metadata": {},
162
+ "output_type": "execute_result"
163
+ }
164
+ ],
165
+ "source": [
166
+ "G[0,0]"
167
+ ]
168
+ },
169
+ {
170
+ "cell_type": "code",
171
+ "execution_count": 25,
172
+ "metadata": {},
173
+ "outputs": [
174
+ {
175
+ "name": "stdout",
176
+ "output_type": "stream",
177
+ "text": [
178
+ "Matrix([[(2*B_m*B_t**2*R_g**2*Ratio_a**4 + 4*B_m*B_t**2*R_g**2*Ratio_a**2*Ratio_b**2 + 4*B_m*B_t**2*R_g**2*Ratio_a**2*Ratio_c**2 + 2*B_m*B_t**2*R_g**2*Ratio_b**4 + 4*B_m*B_t**2*R_g**2*Ratio_b**2*Ratio_c**2 + 2*B_m*B_t**2*R_g**2*Ratio_c**4 + 2*B_m*G_t**2*R_g**2*Ratio_a**4 + 4*B_m*G_t**2*R_g**2*Ratio_a**2*Ratio_b**2 + 4*B_m*G_t**2*R_g**2*Ratio_a**2*Ratio_c**2 + 2*B_m*G_t**2*R_g**2*Ratio_b**4 + 4*B_m*G_t**2*R_g**2*Ratio_b**2*Ratio_c**2 + 2*B_m*G_t**2*R_g**2*Ratio_c**4 + 4*B_m*G_t*R_g*Ratio_a**2 + 4*B_m*G_t*R_g*Ratio_b**2 + 4*B_m*G_t*R_g*Ratio_c**2 + 2*B_m + B_t**3*R_g**2*Ratio_a**4 + 2*B_t**3*R_g**2*Ratio_a**3*Ratio_c + 3*B_t**3*R_g**2*Ratio_a**2*Ratio_b**2 + 2*B_t**3*R_g**2*Ratio_a**2*Ratio_c**2 + 2*B_t**3*R_g**2*Ratio_a*Ratio_b**2*Ratio_c + 2*B_t**3*R_g**2*Ratio_a*Ratio_c**3 + 2*B_t**3*R_g**2*Ratio_b**4 + 3*B_t**3*R_g**2*Ratio_b**2*Ratio_c**2 + B_t**3*R_g**2*Ratio_c**4 + B_t*G_t**2*R_g**2*Ratio_a**4 + 2*B_t*G_t**2*R_g**2*Ratio_a**3*Ratio_c + 3*B_t*G_t**2*R_g**2*Ratio_a**2*Ratio_b**2 + 2*B_t*G_t**2*R_g**2*Ratio_a**2*Ratio_c**2 + 2*B_t*G_t**2*R_g**2*Ratio_a*Ratio_b**2*Ratio_c + 2*B_t*G_t**2*R_g**2*Ratio_a*Ratio_c**3 + 2*B_t*G_t**2*R_g**2*Ratio_b**4 + 3*B_t*G_t**2*R_g**2*Ratio_b**2*Ratio_c**2 + B_t*G_t**2*R_g**2*Ratio_c**4 + 2*B_t*G_t*R_g*Ratio_a**2 + 4*B_t*G_t*R_g*Ratio_a*Ratio_c + 4*B_t*G_t*R_g*Ratio_b**2 + 2*B_t*G_t*R_g*Ratio_c**2 + 2*B_t)/(B_t**2*R_g**2*Ratio_a**4 + 2*B_t**2*R_g**2*Ratio_a**2*Ratio_b**2 + 2*B_t**2*R_g**2*Ratio_a**2*Ratio_c**2 + B_t**2*R_g**2*Ratio_b**4 + 2*B_t**2*R_g**2*Ratio_b**2*Ratio_c**2 + B_t**2*R_g**2*Ratio_c**4 + G_t**2*R_g**2*Ratio_a**4 + 2*G_t**2*R_g**2*Ratio_a**2*Ratio_b**2 + 2*G_t**2*R_g**2*Ratio_a**2*Ratio_c**2 + G_t**2*R_g**2*Ratio_b**4 + 2*G_t**2*R_g**2*Ratio_b**2*Ratio_c**2 + G_t**2*R_g**2*Ratio_c**4 + 2*G_t*R_g*Ratio_a**2 + 2*G_t*R_g*Ratio_b**2 + 2*G_t*R_g*Ratio_c**2 + 1), (-B_m*B_t**2*R_g**2*Ratio_a**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_m*B_t**2*R_g**2*Ratio_b**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_m*B_t**2*R_g**2*Ratio_c**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_m*G_t*R_g*Ratio_a**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - B_m*G_t*R_g*Ratio_b**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - B_m*G_t*R_g*Ratio_c**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - B_m*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - B_t**3*R_g**2*Ratio_a*Ratio_b*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t**3*R_g**2*Ratio_a*Ratio_c*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t**3*R_g**2*Ratio_b**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t**3*R_g**2*Ratio_b*Ratio_c*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t**3*R_g**2*Ratio_c**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t*G_m*G_t*R_g**2*Ratio_a**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t*G_m*G_t*R_g**2*Ratio_b**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t*G_m*G_t*R_g**2*Ratio_c**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t*G_m*R_g*Ratio_a**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - B_t*G_m*R_g*Ratio_b**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - B_t*G_m*R_g*Ratio_c**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) + B_t*G_m*R_g*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t*G_t**2*R_g**2*Ratio_a*Ratio_b*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t*G_t**2*R_g**2*Ratio_a*Ratio_c*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t*G_t**2*R_g**2*Ratio_b**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t*G_t**2*R_g**2*Ratio_b*Ratio_c*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t*G_t**2*R_g**2*Ratio_c**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - 2*B_t*G_t*R_g*Ratio_a*Ratio_b*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - 2*B_t*G_t*R_g*Ratio_a*Ratio_c*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - 2*B_t*G_t*R_g*Ratio_b**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) + 2*B_t*G_t*R_g*Ratio_b*Ratio_c*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - 2*B_t*G_t*R_g*Ratio_c**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) + B_t*G_t*R_g*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1))/(B_t**2*R_g**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2)**2 + (G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1)**2), (-B_m*B_t**2*R_g**2*Ratio_a**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_m*B_t**2*R_g**2*Ratio_b**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_m*B_t**2*R_g**2*Ratio_c**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_m*G_t*R_g*Ratio_a**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - B_m*G_t*R_g*Ratio_b**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - B_m*G_t*R_g*Ratio_c**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - B_m*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - B_t**3*R_g**2*Ratio_a**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t**3*R_g**2*Ratio_a*Ratio_b*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t**3*R_g**2*Ratio_a*Ratio_c*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t**3*R_g**2*Ratio_b**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t**3*R_g**2*Ratio_b*Ratio_c*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t*G_m*G_t*R_g**2*Ratio_a**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t*G_m*G_t*R_g**2*Ratio_b**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t*G_m*G_t*R_g**2*Ratio_c**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t*G_m*R_g*Ratio_a**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - B_t*G_m*R_g*Ratio_b**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - B_t*G_m*R_g*Ratio_c**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) + B_t*G_m*R_g*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t*G_t**2*R_g**2*Ratio_a**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t*G_t**2*R_g**2*Ratio_a*Ratio_b*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t*G_t**2*R_g**2*Ratio_a*Ratio_c*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t*G_t**2*R_g**2*Ratio_b**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t*G_t**2*R_g**2*Ratio_b*Ratio_c*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - 2*B_t*G_t*R_g*Ratio_a**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) + 2*B_t*G_t*R_g*Ratio_a*Ratio_b*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - 2*B_t*G_t*R_g*Ratio_a*Ratio_c*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - 2*B_t*G_t*R_g*Ratio_b**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - 2*B_t*G_t*R_g*Ratio_b*Ratio_c*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) + B_t*G_t*R_g*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1))/(B_t**2*R_g**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2)**2 + (G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1)**2), B_t*Ratio_a*(-B_t**2*R_g**2*Ratio_a*Ratio_c*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t**2*R_g**2*Ratio_b**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t**2*R_g**2*Ratio_c**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + G_t**2*R_g**2*Ratio_a*Ratio_c*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + G_t**2*R_g**2*Ratio_b**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + G_t**2*R_g**2*Ratio_c**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - G_t*R_g*Ratio_a**2 - 2*G_t*R_g*Ratio_a*Ratio_c*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - 2*G_t*R_g*Ratio_b**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - G_t*R_g*Ratio_b**2 - 2*G_t*R_g*Ratio_c**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - G_t*R_g*Ratio_c**2 + G_t*R_g*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - 1)/(B_t**2*R_g**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2)**2 + (G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1)**2), B_t*R_g*Ratio_b**2*(B_t**2*R_g*Ratio_a*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t**2*R_g*Ratio_c*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - G_t**2*R_g*Ratio_a*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + G_t**2*R_g*Ratio_c*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + 2*G_t*Ratio_a*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - 2*G_t*Ratio_c*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1))/(B_t**2*R_g**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2)**2 + (G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1)**2), B_t*Ratio_c*(B_t**2*R_g**2*Ratio_a**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t**2*R_g**2*Ratio_a*Ratio_c*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t**2*R_g**2*Ratio_b**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - G_t**2*R_g**2*Ratio_a**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - G_t**2*R_g**2*Ratio_a*Ratio_c*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - G_t**2*R_g**2*Ratio_b**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + 2*G_t*R_g*Ratio_a**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) + G_t*R_g*Ratio_a**2 + 2*G_t*R_g*Ratio_a*Ratio_c*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) + 2*G_t*R_g*Ratio_b**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 - G_t*R_g*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + 1)/(B_t**2*R_g**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2)**2 + (G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1)**2)], [(-B_m*B_t**2*R_g**2*Ratio_a**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_m*B_t**2*R_g**2*Ratio_b**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_m*B_t**2*R_g**2*Ratio_c**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_m*G_t*R_g*Ratio_a**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - B_m*G_t*R_g*Ratio_b**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - B_m*G_t*R_g*Ratio_c**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - B_m*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - B_t**3*R_g**2*Ratio_a*Ratio_b*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t**3*R_g**2*Ratio_a*Ratio_c*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t**3*R_g**2*Ratio_b**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t**3*R_g**2*Ratio_b*Ratio_c*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t**3*R_g**2*Ratio_c**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t*G_m*G_t*R_g**2*Ratio_a**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t*G_m*G_t*R_g**2*Ratio_b**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t*G_m*G_t*R_g**2*Ratio_c**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t*G_m*R_g*Ratio_a**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - B_t*G_m*R_g*Ratio_b**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - B_t*G_m*R_g*Ratio_c**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) + B_t*G_m*R_g*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t*G_t**2*R_g**2*Ratio_a*Ratio_b*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t*G_t**2*R_g**2*Ratio_a*Ratio_c*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t*G_t**2*R_g**2*Ratio_b**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t*G_t**2*R_g**2*Ratio_b*Ratio_c*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t*G_t**2*R_g**2*Ratio_c**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - 2*B_t*G_t*R_g*Ratio_a*Ratio_b*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - 2*B_t*G_t*R_g*Ratio_a*Ratio_c*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - 2*B_t*G_t*R_g*Ratio_b**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) + 2*B_t*G_t*R_g*Ratio_b*Ratio_c*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - 2*B_t*G_t*R_g*Ratio_c**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) + B_t*G_t*R_g*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1))/(B_t**2*R_g**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2)**2 + (G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1)**2), (2*B_m*B_t**2*R_g**2*Ratio_a**4 + 4*B_m*B_t**2*R_g**2*Ratio_a**2*Ratio_b**2 + 4*B_m*B_t**2*R_g**2*Ratio_a**2*Ratio_c**2 + 2*B_m*B_t**2*R_g**2*Ratio_b**4 + 4*B_m*B_t**2*R_g**2*Ratio_b**2*Ratio_c**2 + 2*B_m*B_t**2*R_g**2*Ratio_c**4 + 2*B_m*G_t**2*R_g**2*Ratio_a**4 + 4*B_m*G_t**2*R_g**2*Ratio_a**2*Ratio_b**2 + 4*B_m*G_t**2*R_g**2*Ratio_a**2*Ratio_c**2 + 2*B_m*G_t**2*R_g**2*Ratio_b**4 + 4*B_m*G_t**2*R_g**2*Ratio_b**2*Ratio_c**2 + 2*B_m*G_t**2*R_g**2*Ratio_c**4 + 4*B_m*G_t*R_g*Ratio_a**2 + 4*B_m*G_t*R_g*Ratio_b**2 + 4*B_m*G_t*R_g*Ratio_c**2 + 2*B_m + B_t**3*R_g**2*Ratio_a**4 + 2*B_t**3*R_g**2*Ratio_a**3*Ratio_b + 2*B_t**3*R_g**2*Ratio_a**2*Ratio_b**2 + 3*B_t**3*R_g**2*Ratio_a**2*Ratio_c**2 + 2*B_t**3*R_g**2*Ratio_a*Ratio_b**3 + 2*B_t**3*R_g**2*Ratio_a*Ratio_b*Ratio_c**2 + B_t**3*R_g**2*Ratio_b**4 + 3*B_t**3*R_g**2*Ratio_b**2*Ratio_c**2 + 2*B_t**3*R_g**2*Ratio_c**4 + B_t*G_t**2*R_g**2*Ratio_a**4 + 2*B_t*G_t**2*R_g**2*Ratio_a**3*Ratio_b + 2*B_t*G_t**2*R_g**2*Ratio_a**2*Ratio_b**2 + 3*B_t*G_t**2*R_g**2*Ratio_a**2*Ratio_c**2 + 2*B_t*G_t**2*R_g**2*Ratio_a*Ratio_b**3 + 2*B_t*G_t**2*R_g**2*Ratio_a*Ratio_b*Ratio_c**2 + B_t*G_t**2*R_g**2*Ratio_b**4 + 3*B_t*G_t**2*R_g**2*Ratio_b**2*Ratio_c**2 + 2*B_t*G_t**2*R_g**2*Ratio_c**4 + 2*B_t*G_t*R_g*Ratio_a**2 + 4*B_t*G_t*R_g*Ratio_a*Ratio_b + 2*B_t*G_t*R_g*Ratio_b**2 + 4*B_t*G_t*R_g*Ratio_c**2 + 2*B_t)/(B_t**2*R_g**2*Ratio_a**4 + 2*B_t**2*R_g**2*Ratio_a**2*Ratio_b**2 + 2*B_t**2*R_g**2*Ratio_a**2*Ratio_c**2 + B_t**2*R_g**2*Ratio_b**4 + 2*B_t**2*R_g**2*Ratio_b**2*Ratio_c**2 + B_t**2*R_g**2*Ratio_c**4 + G_t**2*R_g**2*Ratio_a**4 + 2*G_t**2*R_g**2*Ratio_a**2*Ratio_b**2 + 2*G_t**2*R_g**2*Ratio_a**2*Ratio_c**2 + G_t**2*R_g**2*Ratio_b**4 + 2*G_t**2*R_g**2*Ratio_b**2*Ratio_c**2 + G_t**2*R_g**2*Ratio_c**4 + 2*G_t*R_g*Ratio_a**2 + 2*G_t*R_g*Ratio_b**2 + 2*G_t*R_g*Ratio_c**2 + 1), (-B_m*B_t**2*R_g**2*Ratio_a**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_m*B_t**2*R_g**2*Ratio_b**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_m*B_t**2*R_g**2*Ratio_c**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_m*G_t*R_g*Ratio_a**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - B_m*G_t*R_g*Ratio_b**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - B_m*G_t*R_g*Ratio_c**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - B_m*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - B_t**3*R_g**2*Ratio_a**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t**3*R_g**2*Ratio_a*Ratio_b*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t**3*R_g**2*Ratio_a*Ratio_c*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t**3*R_g**2*Ratio_b*Ratio_c*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t**3*R_g**2*Ratio_c**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t*G_m*G_t*R_g**2*Ratio_a**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t*G_m*G_t*R_g**2*Ratio_b**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t*G_m*G_t*R_g**2*Ratio_c**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t*G_m*R_g*Ratio_a**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - B_t*G_m*R_g*Ratio_b**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - B_t*G_m*R_g*Ratio_c**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) + B_t*G_m*R_g*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t*G_t**2*R_g**2*Ratio_a**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t*G_t**2*R_g**2*Ratio_a*Ratio_b*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t*G_t**2*R_g**2*Ratio_a*Ratio_c*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t*G_t**2*R_g**2*Ratio_b*Ratio_c*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t*G_t**2*R_g**2*Ratio_c**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - 2*B_t*G_t*R_g*Ratio_a**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - 2*B_t*G_t*R_g*Ratio_a*Ratio_b*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) + 2*B_t*G_t*R_g*Ratio_a*Ratio_c*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - 2*B_t*G_t*R_g*Ratio_b*Ratio_c*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - 2*B_t*G_t*R_g*Ratio_c**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) + B_t*G_t*R_g*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1))/(B_t**2*R_g**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2)**2 + (G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1)**2), B_t*Ratio_a*(B_t**2*R_g**2*Ratio_a*Ratio_b*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t**2*R_g**2*Ratio_b**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t**2*R_g**2*Ratio_c**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - G_t**2*R_g**2*Ratio_a*Ratio_b*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - G_t**2*R_g**2*Ratio_b**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - G_t**2*R_g**2*Ratio_c**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + G_t*R_g*Ratio_a**2 + 2*G_t*R_g*Ratio_a*Ratio_b*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) + 2*G_t*R_g*Ratio_b**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) + G_t*R_g*Ratio_b**2 + 2*G_t*R_g*Ratio_c**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) + G_t*R_g*Ratio_c**2 - G_t*R_g*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + 1)/(B_t**2*R_g**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2)**2 + (G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1)**2), B_t*Ratio_b*(-B_t**2*R_g**2*Ratio_a**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t**2*R_g**2*Ratio_a*Ratio_b*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t**2*R_g**2*Ratio_c**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + G_t**2*R_g**2*Ratio_a**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + G_t**2*R_g**2*Ratio_a*Ratio_b*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + G_t**2*R_g**2*Ratio_c**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - 2*G_t*R_g*Ratio_a**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - G_t*R_g*Ratio_a**2 - 2*G_t*R_g*Ratio_a*Ratio_b*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - G_t*R_g*Ratio_b**2 - 2*G_t*R_g*Ratio_c**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - G_t*R_g*Ratio_c**2 + G_t*R_g*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - 1)/(B_t**2*R_g**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2)**2 + (G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1)**2), B_t*R_g*Ratio_c**2*(-B_t**2*R_g*Ratio_a*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t**2*R_g*Ratio_b*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + G_t**2*R_g*Ratio_a*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - G_t**2*R_g*Ratio_b*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - 2*G_t*Ratio_a*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) + 2*G_t*Ratio_b*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1))/(B_t**2*R_g**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2)**2 + (G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1)**2)], [(-B_m*B_t**2*R_g**2*Ratio_a**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_m*B_t**2*R_g**2*Ratio_b**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_m*B_t**2*R_g**2*Ratio_c**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_m*G_t*R_g*Ratio_a**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - B_m*G_t*R_g*Ratio_b**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - B_m*G_t*R_g*Ratio_c**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - B_m*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - B_t**3*R_g**2*Ratio_a**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t**3*R_g**2*Ratio_a*Ratio_b*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t**3*R_g**2*Ratio_a*Ratio_c*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t**3*R_g**2*Ratio_b**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t**3*R_g**2*Ratio_b*Ratio_c*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t*G_m*G_t*R_g**2*Ratio_a**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t*G_m*G_t*R_g**2*Ratio_b**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t*G_m*G_t*R_g**2*Ratio_c**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t*G_m*R_g*Ratio_a**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - B_t*G_m*R_g*Ratio_b**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - B_t*G_m*R_g*Ratio_c**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) + B_t*G_m*R_g*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t*G_t**2*R_g**2*Ratio_a**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t*G_t**2*R_g**2*Ratio_a*Ratio_b*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t*G_t**2*R_g**2*Ratio_a*Ratio_c*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t*G_t**2*R_g**2*Ratio_b**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t*G_t**2*R_g**2*Ratio_b*Ratio_c*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - 2*B_t*G_t*R_g*Ratio_a**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) + 2*B_t*G_t*R_g*Ratio_a*Ratio_b*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - 2*B_t*G_t*R_g*Ratio_a*Ratio_c*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - 2*B_t*G_t*R_g*Ratio_b**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - 2*B_t*G_t*R_g*Ratio_b*Ratio_c*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) + B_t*G_t*R_g*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1))/(B_t**2*R_g**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2)**2 + (G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1)**2), (-B_m*B_t**2*R_g**2*Ratio_a**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_m*B_t**2*R_g**2*Ratio_b**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_m*B_t**2*R_g**2*Ratio_c**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_m*G_t*R_g*Ratio_a**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - B_m*G_t*R_g*Ratio_b**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - B_m*G_t*R_g*Ratio_c**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - B_m*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - B_t**3*R_g**2*Ratio_a**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t**3*R_g**2*Ratio_a*Ratio_b*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t**3*R_g**2*Ratio_a*Ratio_c*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t**3*R_g**2*Ratio_b*Ratio_c*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t**3*R_g**2*Ratio_c**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t*G_m*G_t*R_g**2*Ratio_a**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t*G_m*G_t*R_g**2*Ratio_b**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t*G_m*G_t*R_g**2*Ratio_c**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t*G_m*R_g*Ratio_a**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - B_t*G_m*R_g*Ratio_b**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - B_t*G_m*R_g*Ratio_c**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) + B_t*G_m*R_g*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t*G_t**2*R_g**2*Ratio_a**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t*G_t**2*R_g**2*Ratio_a*Ratio_b*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t*G_t**2*R_g**2*Ratio_a*Ratio_c*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t*G_t**2*R_g**2*Ratio_b*Ratio_c*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t*G_t**2*R_g**2*Ratio_c**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - 2*B_t*G_t*R_g*Ratio_a**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - 2*B_t*G_t*R_g*Ratio_a*Ratio_b*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) + 2*B_t*G_t*R_g*Ratio_a*Ratio_c*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - 2*B_t*G_t*R_g*Ratio_b*Ratio_c*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - 2*B_t*G_t*R_g*Ratio_c**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) + B_t*G_t*R_g*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1))/(B_t**2*R_g**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2)**2 + (G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1)**2), (2*B_m*B_t**2*R_g**2*Ratio_a**4 + 4*B_m*B_t**2*R_g**2*Ratio_a**2*Ratio_b**2 + 4*B_m*B_t**2*R_g**2*Ratio_a**2*Ratio_c**2 + 2*B_m*B_t**2*R_g**2*Ratio_b**4 + 4*B_m*B_t**2*R_g**2*Ratio_b**2*Ratio_c**2 + 2*B_m*B_t**2*R_g**2*Ratio_c**4 + 2*B_m*G_t**2*R_g**2*Ratio_a**4 + 4*B_m*G_t**2*R_g**2*Ratio_a**2*Ratio_b**2 + 4*B_m*G_t**2*R_g**2*Ratio_a**2*Ratio_c**2 + 2*B_m*G_t**2*R_g**2*Ratio_b**4 + 4*B_m*G_t**2*R_g**2*Ratio_b**2*Ratio_c**2 + 2*B_m*G_t**2*R_g**2*Ratio_c**4 + 4*B_m*G_t*R_g*Ratio_a**2 + 4*B_m*G_t*R_g*Ratio_b**2 + 4*B_m*G_t*R_g*Ratio_c**2 + 2*B_m + 2*B_t**3*R_g**2*Ratio_a**4 + 3*B_t**3*R_g**2*Ratio_a**2*Ratio_b**2 + 2*B_t**3*R_g**2*Ratio_a**2*Ratio_b*Ratio_c + 3*B_t**3*R_g**2*Ratio_a**2*Ratio_c**2 + B_t**3*R_g**2*Ratio_b**4 + 2*B_t**3*R_g**2*Ratio_b**3*Ratio_c + 2*B_t**3*R_g**2*Ratio_b**2*Ratio_c**2 + 2*B_t**3*R_g**2*Ratio_b*Ratio_c**3 + B_t**3*R_g**2*Ratio_c**4 + 2*B_t*G_t**2*R_g**2*Ratio_a**4 + 3*B_t*G_t**2*R_g**2*Ratio_a**2*Ratio_b**2 + 2*B_t*G_t**2*R_g**2*Ratio_a**2*Ratio_b*Ratio_c + 3*B_t*G_t**2*R_g**2*Ratio_a**2*Ratio_c**2 + B_t*G_t**2*R_g**2*Ratio_b**4 + 2*B_t*G_t**2*R_g**2*Ratio_b**3*Ratio_c + 2*B_t*G_t**2*R_g**2*Ratio_b**2*Ratio_c**2 + 2*B_t*G_t**2*R_g**2*Ratio_b*Ratio_c**3 + B_t*G_t**2*R_g**2*Ratio_c**4 + 4*B_t*G_t*R_g*Ratio_a**2 + 2*B_t*G_t*R_g*Ratio_b**2 + 4*B_t*G_t*R_g*Ratio_b*Ratio_c + 2*B_t*G_t*R_g*Ratio_c**2 + 2*B_t)/(B_t**2*R_g**2*Ratio_a**4 + 2*B_t**2*R_g**2*Ratio_a**2*Ratio_b**2 + 2*B_t**2*R_g**2*Ratio_a**2*Ratio_c**2 + B_t**2*R_g**2*Ratio_b**4 + 2*B_t**2*R_g**2*Ratio_b**2*Ratio_c**2 + B_t**2*R_g**2*Ratio_c**4 + G_t**2*R_g**2*Ratio_a**4 + 2*G_t**2*R_g**2*Ratio_a**2*Ratio_b**2 + 2*G_t**2*R_g**2*Ratio_a**2*Ratio_c**2 + G_t**2*R_g**2*Ratio_b**4 + 2*G_t**2*R_g**2*Ratio_b**2*Ratio_c**2 + G_t**2*R_g**2*Ratio_c**4 + 2*G_t*R_g*Ratio_a**2 + 2*G_t*R_g*Ratio_b**2 + 2*G_t*R_g*Ratio_c**2 + 1), B_t*R_g*Ratio_a**2*(-B_t**2*R_g*Ratio_b*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t**2*R_g*Ratio_c*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + G_t**2*R_g*Ratio_b*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - G_t**2*R_g*Ratio_c*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - 2*G_t*Ratio_b*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) + 2*G_t*Ratio_c*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1))/(B_t**2*R_g**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2)**2 + (G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1)**2), B_t*Ratio_b*(B_t**2*R_g**2*Ratio_a**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t**2*R_g**2*Ratio_b*Ratio_c*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t**2*R_g**2*Ratio_c**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - G_t**2*R_g**2*Ratio_a**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - G_t**2*R_g**2*Ratio_b*Ratio_c*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - G_t**2*R_g**2*Ratio_c**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + 2*G_t*R_g*Ratio_a**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) + G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + 2*G_t*R_g*Ratio_b*Ratio_c*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) + 2*G_t*R_g*Ratio_c**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) + G_t*R_g*Ratio_c**2 - G_t*R_g*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + 1)/(B_t**2*R_g**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2)**2 + (G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1)**2), B_t*Ratio_c*(-B_t**2*R_g**2*Ratio_a**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t**2*R_g**2*Ratio_b**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t**2*R_g**2*Ratio_b*Ratio_c*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + G_t**2*R_g**2*Ratio_a**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + G_t**2*R_g**2*Ratio_b**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + G_t**2*R_g**2*Ratio_b*Ratio_c*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - 2*G_t*R_g*Ratio_a**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - G_t*R_g*Ratio_a**2 - 2*G_t*R_g*Ratio_b**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - G_t*R_g*Ratio_b**2 - 2*G_t*R_g*Ratio_b*Ratio_c*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - G_t*R_g*Ratio_c**2 + G_t*R_g*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - 1)/(B_t**2*R_g**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2)**2 + (G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1)**2)], [B_t*Ratio_a*(-B_t**2*R_g**2*Ratio_a*Ratio_c*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t**2*R_g**2*Ratio_b**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t**2*R_g**2*Ratio_c**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + G_t**2*R_g**2*Ratio_a*Ratio_c*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + G_t**2*R_g**2*Ratio_b**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + G_t**2*R_g**2*Ratio_c**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - G_t*R_g*Ratio_a**2 - 2*G_t*R_g*Ratio_a*Ratio_c*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - 2*G_t*R_g*Ratio_b**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - G_t*R_g*Ratio_b**2 - 2*G_t*R_g*Ratio_c**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - G_t*R_g*Ratio_c**2 + G_t*R_g*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - 1)/(B_t**2*R_g**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2)**2 + (G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1)**2), B_t*Ratio_a*(B_t**2*R_g**2*Ratio_a*Ratio_b*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t**2*R_g**2*Ratio_b**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t**2*R_g**2*Ratio_c**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - G_t**2*R_g**2*Ratio_a*Ratio_b*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - G_t**2*R_g**2*Ratio_b**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - G_t**2*R_g**2*Ratio_c**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + G_t*R_g*Ratio_a**2 + 2*G_t*R_g*Ratio_a*Ratio_b*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) + 2*G_t*R_g*Ratio_b**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) + G_t*R_g*Ratio_b**2 + 2*G_t*R_g*Ratio_c**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) + G_t*R_g*Ratio_c**2 - G_t*R_g*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + 1)/(B_t**2*R_g**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2)**2 + (G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1)**2), B_t*R_g*Ratio_a**2*(-B_t**2*R_g*Ratio_b*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t**2*R_g*Ratio_c*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + G_t**2*R_g*Ratio_b*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - G_t**2*R_g*Ratio_c*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - 2*G_t*Ratio_b*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) + 2*G_t*Ratio_c*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1))/(B_t**2*R_g**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2)**2 + (G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1)**2), B_t*Ratio_a**2*(B_t**2*R_g**2*Ratio_b**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t**2*R_g**2*Ratio_c**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - G_t**2*R_g**2*Ratio_b**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - G_t**2*R_g**2*Ratio_c**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + G_t*R_g*Ratio_a**2 + 2*G_t*R_g*Ratio_b**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) + G_t*R_g*Ratio_b**2 + 2*G_t*R_g*Ratio_c**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) + G_t*R_g*Ratio_c**2 - G_t*R_g*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + 1)/(B_t**2*R_g**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2)**2 + (G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1)**2), B_t*R_g*Ratio_a**2*Ratio_b**2*(-B_t**2*R_g*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + G_t**2*R_g*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - 2*G_t*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1))/(B_t**2*R_g**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2)**2 + (G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1)**2), B_t*R_g*Ratio_a**2*Ratio_c**2*(-B_t**2*R_g*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + G_t**2*R_g*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - 2*G_t*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1))/(B_t**2*R_g**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2)**2 + (G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1)**2)], [B_t*R_g*Ratio_b**2*(B_t**2*R_g*Ratio_a*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t**2*R_g*Ratio_c*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - G_t**2*R_g*Ratio_a*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + G_t**2*R_g*Ratio_c*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + 2*G_t*Ratio_a*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - 2*G_t*Ratio_c*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1))/(B_t**2*R_g**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2)**2 + (G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1)**2), B_t*Ratio_b*(-B_t**2*R_g**2*Ratio_a**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t**2*R_g**2*Ratio_a*Ratio_b*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t**2*R_g**2*Ratio_c**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + G_t**2*R_g**2*Ratio_a**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + G_t**2*R_g**2*Ratio_a*Ratio_b*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + G_t**2*R_g**2*Ratio_c**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - 2*G_t*R_g*Ratio_a**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - G_t*R_g*Ratio_a**2 - 2*G_t*R_g*Ratio_a*Ratio_b*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - G_t*R_g*Ratio_b**2 - 2*G_t*R_g*Ratio_c**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - G_t*R_g*Ratio_c**2 + G_t*R_g*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - 1)/(B_t**2*R_g**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2)**2 + (G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1)**2), B_t*Ratio_b*(B_t**2*R_g**2*Ratio_a**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t**2*R_g**2*Ratio_b*Ratio_c*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t**2*R_g**2*Ratio_c**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - G_t**2*R_g**2*Ratio_a**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - G_t**2*R_g**2*Ratio_b*Ratio_c*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - G_t**2*R_g**2*Ratio_c**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + 2*G_t*R_g*Ratio_a**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) + G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + 2*G_t*R_g*Ratio_b*Ratio_c*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) + 2*G_t*R_g*Ratio_c**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) + G_t*R_g*Ratio_c**2 - G_t*R_g*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + 1)/(B_t**2*R_g**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2)**2 + (G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1)**2), B_t*R_g*Ratio_a**2*Ratio_b**2*(-B_t**2*R_g*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + G_t**2*R_g*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - 2*G_t*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1))/(B_t**2*R_g**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2)**2 + (G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1)**2), B_t*Ratio_b**2*(B_t**2*R_g**2*Ratio_a**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t**2*R_g**2*Ratio_c**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - G_t**2*R_g**2*Ratio_a**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - G_t**2*R_g**2*Ratio_c**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + 2*G_t*R_g*Ratio_a**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) + G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + 2*G_t*R_g*Ratio_c**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) + G_t*R_g*Ratio_c**2 - G_t*R_g*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + 1)/(B_t**2*R_g**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2)**2 + (G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1)**2), B_t*R_g*Ratio_b**2*Ratio_c**2*(-B_t**2*R_g*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + G_t**2*R_g*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - 2*G_t*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1))/(B_t**2*R_g**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2)**2 + (G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1)**2)], [B_t*Ratio_c*(B_t**2*R_g**2*Ratio_a**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t**2*R_g**2*Ratio_a*Ratio_c*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t**2*R_g**2*Ratio_b**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - G_t**2*R_g**2*Ratio_a**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - G_t**2*R_g**2*Ratio_a*Ratio_c*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - G_t**2*R_g**2*Ratio_b**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + 2*G_t*R_g*Ratio_a**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) + G_t*R_g*Ratio_a**2 + 2*G_t*R_g*Ratio_a*Ratio_c*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) + 2*G_t*R_g*Ratio_b**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 - G_t*R_g*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + 1)/(B_t**2*R_g**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2)**2 + (G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1)**2), B_t*R_g*Ratio_c**2*(-B_t**2*R_g*Ratio_a*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t**2*R_g*Ratio_b*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + G_t**2*R_g*Ratio_a*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - G_t**2*R_g*Ratio_b*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - 2*G_t*Ratio_a*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) + 2*G_t*Ratio_b*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1))/(B_t**2*R_g**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2)**2 + (G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1)**2), B_t*Ratio_c*(-B_t**2*R_g**2*Ratio_a**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t**2*R_g**2*Ratio_b**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t**2*R_g**2*Ratio_b*Ratio_c*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + G_t**2*R_g**2*Ratio_a**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + G_t**2*R_g**2*Ratio_b**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + G_t**2*R_g**2*Ratio_b*Ratio_c*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - 2*G_t*R_g*Ratio_a**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - G_t*R_g*Ratio_a**2 - 2*G_t*R_g*Ratio_b**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - G_t*R_g*Ratio_b**2 - 2*G_t*R_g*Ratio_b*Ratio_c*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - G_t*R_g*Ratio_c**2 + G_t*R_g*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - 1)/(B_t**2*R_g**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2)**2 + (G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1)**2), B_t*R_g*Ratio_a**2*Ratio_c**2*(-B_t**2*R_g*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + G_t**2*R_g*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - 2*G_t*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1))/(B_t**2*R_g**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2)**2 + (G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1)**2), B_t*R_g*Ratio_b**2*Ratio_c**2*(-B_t**2*R_g*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + G_t**2*R_g*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - 2*G_t*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1))/(B_t**2*R_g**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2)**2 + (G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1)**2), B_t*Ratio_c**2*(B_t**2*R_g**2*Ratio_a**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t**2*R_g**2*Ratio_b**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - G_t**2*R_g**2*Ratio_a**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - G_t**2*R_g**2*Ratio_b**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + 2*G_t*R_g*Ratio_a**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) + G_t*R_g*Ratio_a**2 + 2*G_t*R_g*Ratio_b**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 - G_t*R_g*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + 1)/(B_t**2*R_g**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2)**2 + (G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1)**2)]])\n"
179
+ ]
180
+ }
181
+ ],
182
+ "source": [
183
+ "print(B)"
184
+ ]
185
+ },
186
+ {
187
+ "cell_type": "code",
188
+ "execution_count": null,
189
+ "metadata": {},
190
+ "outputs": [],
191
+ "source": []
192
+ }
193
+ ],
194
+ "metadata": {
195
+ "kernelspec": {
196
+ "display_name": "base",
197
+ "language": "python",
198
+ "name": "python3"
199
+ },
200
+ "language_info": {
201
+ "codemirror_mode": {
202
+ "name": "ipython",
203
+ "version": 3
204
+ },
205
+ "file_extension": ".py",
206
+ "mimetype": "text/x-python",
207
+ "name": "python",
208
+ "nbconvert_exporter": "python",
209
+ "pygments_lexer": "ipython3",
210
+ "version": "3.11.7"
211
+ }
212
+ },
213
+ "nbformat": 4,
214
+ "nbformat_minor": 2
215
+ }