Example #1
0
void SysCADParamsTable::BuildDataFields(MDataDefn &DD)
  {
  /*DD.MatrixBegin(TableName, TableName, ncols, nrows, 8, 0, "X", "Y", 0);
  for (int r=0; r<nrows; r++)
    {
    DD.GridRowStart();
    DD.MatrixElementStart(0, r);
    for (int c=0; c<ncols; c++)
      {
      DD.Double(c==0 ? Col0Name : Col1Name, "", &(val[r*ncols+c]), MF_RESULT|MF_NO_FILING, MC_None);
      }
    }
  DD.MatrixEnd();*/

  DD.Text("------------------------------------------------------------");
  CString Txt,T1;
  Txt.Format("Data table:%s", TableName);
  DD.Text(Txt);
  Txt.Format("   %s(%s) | %s(%s)", Col0Desc, Col0Name, Col1Desc, Col1Name);
  DD.Text(Txt);

  DD.GridBegin(TableName, ncols, nrows);

  Txt.Format("%s//%s", Col0Name, Col1Name);
  DD.GridColumnHeader(Txt, 6, 0, 0);
  DD.GridColumnHeader(Col0Name, 10, 0);
  DD.GridColumnHeader(Col1Name, 10, 0);

  for (int r=0; r<nrows; r++)
    {
    T1.Format("%s[%i]", TableName, r);
    DD.GridRowHeader(T1); //does not work!!!
    DD.GridRowStart();
    for (int c=0; c<ncols; c++)
      {
      Txt.Format("%s[%i].%s", TableName, r, c==0 ? Col0Name : Col1Name);
      DD.Double(Txt, "", &(val[r*ncols+c]), MF_PARAMETER, MC_None);
      }
    }

  DD.GridEnd();
  }
Example #2
0
	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);
Example #3
0
	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();

	}
Example #4
0
void CLimn_ModelData_Base::BuildDataFields(MDataDefn & DD)
  {
  const int ArrayDbg=0;

  DD.Text("Parameters...");
  //DD.Text("");

  CString GridTxt;
  bool InArray=false;
  bool GridBusy=false;
  int m_ColCount=0;
  int m_ValCount=0;
  int m_iCol=0;
  int m_iRow=0;
  for (int i=0; i<DataCount(); i++)
    {
    if (m_Defs[i])
      {
      CLimn_ModelData_ParmDef & D = *m_Defs[i];

      for (int j=0; j<D.m_Hdrs.GetCount(); j++)
        {
        CLimn_ModelData_ParmHdr & H=D.m_Hdrs[j];
        CString Txt(H.m_Text);
        if (H.m_nRows>1 && H.m_nCols>1)
          {
          Txt= "Matrix: ";
          m_ColCount=H.m_nCols;
          m_ValCount=H.m_nRows*H.m_nCols; 
          m_iCol=0;
          m_iRow=0;
          }
        else if (H.m_nRows>1 || H.m_nCols>1)
          {
          Txt= "Vector: ";
          m_ColCount=H.m_nCols;
          m_ValCount=H.m_nRows*H.m_nCols; 
          m_iCol=0;
          m_iRow=0;
          }
        Txt+=H.m_Text;
        DD.Page(H.m_Text, true);
        GridTxt=D.m_Tag;
        //DD.Text(Txt);
        }

      if (!D.m_Hide)
        {
        MD_Flags F=MF_PARAMETER;
        bool StartRow=false;
        bool EndRows=false;
        if (m_ValCount>0)
          {
          if (m_iCol==0)
            StartRow=true;
          if (++m_iCol>=m_ColCount)
            {
            m_iCol=0;
            m_iRow++;
            }
          if (--m_ValCount==0)
            {
            EndRows=true;
            }
          }

        if (D.m_ArrayBegin)
          {
          InArray=true;
          //CString Cls;
          //Cls.Format("DW_%s",D.m_Class);
          DD.ArrayBegin(D.m_Class, D.m_Tag, D.m_ArrayLen,0);

          if (ArrayDbg)
            gs_Dbg.PrintLn("ArrayBegin %s %s %i >>>>>>>>>>>", D.m_Class, D.m_Tag, D.m_ArrayLen);
          }

        if (StartRow)
          {
          if (!GridBusy)
            {
            DD.GridBegin(GridTxt, m_ColCount, m_ValCount/m_ColCount, 10, 0);
            GridBusy=true;
            }
          DD.GridRowStart();
          }
        if (InArray)
          {
          if (D.m_iIndex>=0)
            DD.ArrayElementStart(D.m_iIndex, 0);
          else
            DD.ArrayElementStart(D.m_sIndex, 0);
          if (ArrayDbg)
            gs_Dbg.PrintLn("ArrayEle  %s %i %s", D.m_Tag, D.m_iIndex, D.m_sIndex);
          
          //if (m_iCol==0)
          //  DD.Text("XXXXXX");  

          CString S;
          //S.Format("%s[%s]", D.m_Tag, D.m_Index);
          //S=D.m_Index;
          S="V";
          if (D.m_IsBool)
            DD.Bool  (S, "",  1+i,  F);
          else
            DD.Double(S, "",  1+i,  F, D.m_Cnv);
          
          DD.ArrayElementEnd(0);
          }
        else
          {
          if (D.m_IsBool)
            DD.Bool  (D.m_Tag, "",  1+i,  F);
          else
            DD.Double(D.m_Tag, "",  1+i,  F, D.m_Cnv);
          }
        if (EndRows)
          {
          DD.GridEnd();
          GridBusy=false;
          }

        if (D.m_ArrayEnd)
          {
          DD.ArrayEnd(0);
          if (ArrayDbg)
            gs_Dbg.PrintLn("ArrayEnd   %s %s <<<<<<<<<<<", "", "");
          InArray=false;
          }
        }
      }
    }
  };