void CSeperator_EfficiencyCurve::BuildDataFields(MDataDefn &DB) { DB.ObjectBegin("TS_EffCurve", "EffCurve"); DB.Text("Efficiency Curve"); //DB.StructBegin("TS_Top", "Top" ); DB.StructBegin("Top"); DB.Double("Alpha" , "", &m_dTopAlpha , MF_PARAMETER , MC_None); DB.Double("Beta" , "", &m_dTopBeta , MF_PARAMETER , MC_None); DB.Double("BetaStar" , "", &m_dTopBetaStar , MF_RESULT , MC_None); DB.Double("D50" , "", &m_dTopD50 , MF_PARAMETER , MC_L("mm")); DB.Double("C" , "", &m_dTopC , MF_PARAMETER , MC_None); DB.Double("WaterSplitToUS" , "", &m_dTopWaterSplitToUS, MF_PARAMETER , MC_Frac("%")); DB.StructEnd(); //DB.StructBegin("TS_Bottom", "Bottom" ); DB.StructBegin("Bottom" ); DB.Double("Alpha" , "", &m_dBottomAlpha , MF_PARAMETER , MC_None); DB.Double("Beta" , "", &m_dBottomBeta , MF_PARAMETER , MC_None); DB.Double("BetaStar" , "", &m_dBottomBetaStar , MF_RESULT , MC_None); DB.Double("D50" , "", &m_dBottomD50 , MF_PARAMETER , MC_L("mm")); DB.Double("C" , "", &m_dBottomC , MF_PARAMETER , MC_None); DB.Double("WaterSplitToUS" , "", &m_dBottomWaterSplitToUS , MF_PARAMETER , MC_Frac("%")); DB.StructEnd(); // // Outputs // DB.Page("Top Deck Partition"); CString Tg; for (int i=(m_TopEu.GetSize()-1); i>=0; i--) { Tg.Format("Top.I%02d", i); DB.Double((char*)(const char*)Tg, "", &m_TopEu[i], MF_RESULT, MC_Frac("%")); } DB.Page("Bottom Deck Partition"); for (int i=(m_BottomEu.GetSize()-1); i>=0; i--) { Tg.Format("Bottom.I%02d", i); DB.Double((char*)(const char*)Tg, "", &m_BottomEu[i], MF_RESULT, MC_Frac("%")); } DB.ObjectEnd(); }
mi_A[6] = 0.066; mi_A[7] = 0.053; mi_A[8] = 0.043; mi_A[9] = 0.035; mi_A[10] = 0.028; mi_A[11] = 0.022; mi_A[12] = 0.018; mi_A[13] = 0.015; mi_A[14] = 0.012; mi_A[15] = 0.01; mi_A[16] = 0.008; mi_A[17] = 0.006; mi_A[18] = 0.004; mi_A[19] = 0.003; mi_A[20] = 0.002; mi_A[21] = 0.0015; mi_A[22] = 0.0010; mi_A[23] = 0.0005; } //==================================================================================== void CMill_Ball::BuildDataFields(MDataDefn &DB) { DB.ObjectBegin("TS_Ball", "Ball"); DB.Page("Ball Mill Parameters"); DB.Text("Simulated Mill"); // NUMBER OF PARALLEL MILLS DB.Long("NMills", "", &mi_NParrallelMills , MF_PARAMETER ); //DIAMETER (INSIDE LINERS, METRES) OF MILL BEING SIMULATED. DB.Double("Dsim", "", &mi_DiameterSim , MF_PARAMETER , MC_L); // LENGTH (INSIDE LINERS, METRES) OF MILL BEING SIMULATED. DB.Double("Lsim", "", &mi_LengthSim , MF_PARAMETER , MC_L); // FRACTION CRITICAL SPEED OF MILL BEING SIMULATED. DB.Double("CSsim", "", &mi_FracCriticalSpeedSim , MF_PARAMETER , MC_Frac); // LOAD FRACTION (SEE ABOVE) OF MILL BEING SIMULATED. DB.Double("LFsim", "", &mi_FracLoadSim , MF_PARAMETER , MC_Frac); // WORK INDEX OF ORE FED TO MILL BEING SIMULATED. DB.Double("WIsim", "", & mi_WorkIndexSim , MF_PARAMETER , MC_WI ); // Units?? // Simulated Mill Ball Top Size DB.Double("BallSizesim", "", & mi_BallTopSizeSim , MF_PARAMETER , MC_L ); // MODEL PARAMETERS // ~~~~~~~~~~~~~~~~ DB.Text("Original Mill"); // MILL DIAMETER (INSIDE LINERS, METRES) OF MILL FROM // WHICH MODEL PARAMETERS ARE DERIVED. DB.Double("Dfit", "", &mi_DiameterDerived , MF_PARAMETER , MC_L); // FRACTION OF CRITICAL SPEED OF MILL FROM WHICH MODEL // PARAMETERS ARE DERIVED. DB.Double("CSfit", "", &mi_FracCriticalSpeedDerived , MF_PARAMETER , MC_Frac); // LOAD FRACTION (I.E. FRACTION OF MILL OCCUPIED BY // STATIONARY LOAD, INCLUDING VOIDS) OF MILL FROM // WHICH MODEL PARAMETERS ARE DERIVED. DB.Double("LFfit", "", &mi_FracLoadDerived , MF_PARAMETER , MC_Frac); // ORE WORK INDEX OF MILL FROM WHICH MODEL PARAMETERS ARE // DERIVED. DB.Double("WIfit", "", & mi_WorkIndexDerived , MF_PARAMETER , MC_WI); // Units?? DB.Double("BreakageRateFactor", "", & mi_K , MF_PARAMETER ); // Mill Ball Top Size DB.Double("BallSizefit", "", & mi_BallTopSizeDerived , MF_PARAMETER , MC_L ); DB.Page("Rate/Discharge Function"); DB.Long("NSplineKnots", "", &mi_NumSplineKnots , MF_PARAMETER ); if (mi_NumSplineKnots<3) mi_NumSplineKnots = 3; if (mi_NumSplineKnots > 30) mi_NumSplineKnots = 30; DB.Text("Size - Enter in units of um"); DB.Text("Size"); for (int i = 0; i < (mi_NumSplineKnots+1); i++) { char buff[20]; sprintf(buff,"K%d_Size",i); DB.Double( buff , "", &mi_KnotSize[i] , MF_PARAMETER , MC_L ); } DB.Text("Ln R/D* (meas)"); for (int i = 0; i < (mi_NumSplineKnots+1); i++) { char buff[20]; sprintf(buff,"K%d_LnRDm",i); DB.Double( buff , "", &mi_KnotLnRDStar[i] , MF_PARAMETER ); } DB.Text("Ln R/D* (calc)"); for (int i = 0; i < (mi_NumSplineKnots+1); i++) { char buff[20]; sprintf(buff,"K%d_LnRDc",i); DB.Double( buff , "", &mo_KnotLnRDStar[i] , MF_RESULT ); } DB.Page("Appearance Data"); for (int i = 0; i < 31; i++) { char buff[20]; sprintf(buff,"A%d",i);