private void initChemistry(FPCarrier fp, ChemTable tbl)
 {
     LogStr(tbl.Text);
     _fp = fp;
     tbl.Enumerate(rp);
 }
 private static void solve(out double m_X, FPCarrier s_X, out double m_Y, FPCarrier s_Y,
     double m_A, FPCarrier s_A, double m_B, FPCarrier s_B)
 {
     m_CaO = m_CaO - d_A(m_B, s_B, "CaO") - d_A(m_A, s_A, "CaO") - d_Met("CaO");
     m_MgO = m_MgO - d_A(m_B, s_B, "MgO") - d_A(m_A, s_A, "MgO") - d_Met("MgO");
     resXY(out m_X, s_X, out m_Y, s_Y);
 }
 private static double heat001(FPCarrier fp)
 {
     return (fp.fpNorm(70) / fp.fpNorm(72)) * fp.fpNorm(69);
 }
 private static void resXY(out double m_X, FPCarrier s_X, out double m_Y, FPCarrier s_Y)
 {
     m_X = (m_CaO / s_Y.fpNorm("CaO") - m_MgO / s_Y.fpNorm("MgO"))
         / (s_X.fpNorm("CaO") / s_Y.fpNorm("CaO") - s_X.fpNorm("MgO") / s_Y.fpNorm("MgO"));
     m_Y = (m_CaO / s_X.fpNorm("CaO") - m_MgO / s_X.fpNorm("MgO"))
         / (s_Y.fpNorm("CaO") / s_X.fpNorm("CaO") - s_Y.fpNorm("MgO") / s_X.fpNorm("MgO"));
     m_X /= s_X.fpNorm("Yield");
     m_Y /= s_Y.fpNorm("Yield");
 }
 private static double d_A(double m_A, FPCarrier s_A, string fpId)
 {
     return m_A * s_A.fpNorm(fpId) * s_A.fpNorm("Yield");
 }