Beispiel #1
0
void CEC_FracExt::BuildDataDefnEnd(DataDefnBlk & DDB)
  {
  if (!DDB.ForFileSnpScn() && RB.sm_ChgVars)
    {
    if (RB.sm_ChgVars & SRSC_Mass)
      {
      if (DDB.BeginStruct(&Eq, "MsChg", NULL, DDB_NoPage, -1, 0|MarkerClosed))
        {
        for (int i=0; i<Eq.Reactant.GetSize(); i++)
          {
          DDB.Double(SDB[Eq.Reactant[i].SpcId].SymOrTag(), "", DC_Qm, "kmol/s", &Eq.Reactant[i].m_dMsXfer, &Eq, isResult|noFileAtAll);
          }
        for (int i=0; i<Eq.Product.GetSize(); i++)
          DDB.Double(SDB[Eq.Product[i].SpcId].SymOrTag(), "", DC_Qm, "kmol/s", &Eq.Product[i].m_dMsXfer, &Eq, isResult|noFileAtAll);
        }
      DDB.EndStruct();
      }

    if (RB.sm_ChgVars & SRSC_Molar)
      {
      if (DDB.BeginStruct(&Eq, "MlChg", NULL, DDB_NoPage, -1, 0|MarkerClosed))
        {
        for (int i=0; i<Eq.Reactant.GetSize(); i++)
          {
          DDB.Double(SDB[Eq.Reactant[i].SpcId].SymOrTag(), "", DC_QKgMl, "kmol/s", &Eq.Reactant[i].m_dMlXfer, &Eq, isResult|noFileAtAll);
          }
        for (int i=0; i<Eq.Product.GetSize(); i++)
          DDB.Double(SDB[Eq.Product[i].SpcId].SymOrTag(), "", DC_QKgMl, "kmol/s", &Eq.Product[i].m_dMlXfer, &Eq, isResult|noFileAtAll);
        }
      DDB.EndStruct();
      }
    }
  };
Beispiel #2
0
void Crush1::BuildDataDefn(DataDefnBlk & DDB)
  {
  DDB.BeginStruct(this);

  DDB.Text("");
  DDB.CheckBox("On", "", DC_, "", &bOnLine, this, isParm);
  DDB.Text("Power");
  DDB.Double("Bond_WI",        "BondWI",    DC_WI ,   "kWh/t", &BWI,        this, isParm);
  DDB.Double("Calc_Power",     "UsedPower", DC_Pwr,   "kW",    &Power,      this, isResult|0);

  DDB.Text("");
  DDB.Double("Density",        "Rho",       DC_Rho,   "kg/m^3", xidRho,      this, isResult|0);
  BuildDataDefnElevation(DDB);
  CB.Add_StandardDataDefn(DDB, true);

  DDB.Visibility(NM_Dynamic|SM_All|HM_All);
  DDB.Text("");
  DDB.Double("DischOnSpeed",   "",          DC_Frac,  "%",     &DischOnSpeed, this, isParm);
  MSB.BuildDataDefn(DDB, this, "Speed", 1);
  m_Pwr.BuildDataDefn(DDB);
  DDB.Visibility();

  DDB.Text("");
  BuildDataDefnShowIOs(DDB);

  CB.Add_ObjectDataDefn(DDB, true);

  DDB.Object(&Disch,     this, NULL, NULL, DDB_RqdPage);

  DDB.EndStruct();
  }
Beispiel #3
0
/*This provides access to the variables of the model and calls the
BuildDataDefn for objects used by the model.*/
void CentrifugeMB::BuildDataDefn(DataDefnBlk & DDB)
  {
  DDB.BeginStruct(this);

  DDB.Visibility(NM_Dynamic|SM_All|HM_All);
  BuildDataDefnElevation(DDB);
  DDB.Text    (" ");

  DDB.Double  ("Density",    "Rho",           DC_Rho,  "kg/m^3", xidRho,         this, isResult|0);
  DDB.Double  ("Level",      "Lvl",           DC_Frac, "%",      xidLevel,       this, isResult|0);
  DDB.Double  ("Mass_Accum", "QmAcc",         DC_Qm,   "kg/s",   &m_QmAcc,       this, isResult|0);
  DDB.Double  ("Vol_Accum",  "QvAcc",         DC_Qv,   "L/s",    &m_QvAcc,       this, isResult|0);
  DDB.Visibility();

  DDB.Text    ("");
  DDB.Text    ("Requirements");
  DDB.CheckBox("On",                      "",                DC_,     "",       &fOn,                this, isParm);
  if (PrjFileVerNo()<49)
    DDB.Double  ("",           "SolidLoss",     DC_Frac, "%",      &RqdSolidsToFiltrate, this, isParm);//SolidLoss
  else
    DDB.Double  ("Rqd_Solids_To_Filtrate",  "RqdSolToFilt",    DC_Frac, "%",      &RqdSolidsToFiltrate,this, isParm);//SolidLoss
  DDB.Double  ("Rqd_Cake_Moisture",       "RqdCakeMoist",    DC_Frac, "%",      &RqdCakeMoist,       this, isParm);
  DDB.Double  ("Rqd_Wash_Efficiency",     "RqdWashEff",      DC_Frac, "%",      &WashEff,            this, isParm);
  DDB.Text    ("");
  DDB.Text    ("Results");
  //DDB.Double  ("Wash_Efficiency",         "WashEff",         DC_Frac, "%",      &ActWashEff,         this, isResult);//|noFile|noSnap);
  DDB.Double  ("Cake_Moisture",           "CakeMoist",       DC_Frac, "%",      &ActCakeLiq,         this, isResult);//|noFile|noSnap);
  DDB.Double  ("Cake_Solids",             "CakeSolids",      DC_Frac, "%",      &ActCakeSolids,      this, isResult);//|noFile|noSnap);
  DDB.Double  ("Filtrate_Solids",         "FiltSolids",      DC_Frac, "%",      &ActFiltSolids,      this, isResult);//|noFile|noSnap);
  DDB.Double  ("FiltrateSolidsConc@25",   "FiltSolConc25",   DC_Conc, "g/L",    &ActFiltSolConc,     this, isResult);//|noFile|noSnap);
  DDB.Double  ("FiltrateSolidsConc@T",    "FiltSolConc@T",   DC_Conc, "g/L",    &ActFiltSolConcT,    this, isResult);//|noFile|noSnap|InitHidden);
  DDB.Visibility(NM_Probal|SM_All|HM_All);
  //DDB.Byte    ("",                        "ScanEffSpecie",   DC_,     "",       &iScanEffSpecie,     this, isParm, SDB.DDBLiqSpList());
  //DDB.Double  ("Scandrett_Wash_Eff",      "ScandrettEff",    DC_Frac, "%",      &ActScandrettEff,    this, isResult);//|noFile|noSnap);
  DDB.Byte    ("",                        "WashComp",        DC_,     "",       &iWashEffSpecie,     this, isParm, SDB.DDBLiqSpList());
  DDB.Double  ("",                        "CompWashEff1",    DC_Frac, "%",      &dSpWashEff,         this, isResult);//|noFile|noSnap);
  DDB.Double  ("",                        "CompWashEff2",    DC_Frac, "%",      &dSpWashEff2,        this, isResult);//|noFile|noSnap);

  //DDB.Visibility(NM_Dynamic|SM_All|HM_All);
  //DDB.Bool    ("",           "CakeDisch?",    DC_     , "",      &Disch,         this, isParm, DDBYesNo);
  DDB.Visibility();

  DDB.Text    (" ");
  m_RB.Add_OnOff(DDB);
  m_EHX.Add_OnOff(DDB);

  DDB.Text    (" ");
  BuildDataDefnShowIOs(DDB);

  m_RB.BuildDataDefn(DDB);
  m_EHX.BuildDataDefn(DDB);

  if (SolveSurgeMethod())
    {
    DDB.Object(&Contents, this, NULL, NULL, DDB_RqdPage);
    DDB.Object(&m_PresetImg, this, NULL, NULL, DDB_RqdPage);
    }

  DDB.EndStruct();
  }
Beispiel #4
0
void Flare::BuildDataDefn(DataDefnBlk &DDB)
    {
  //  if (Page & 0x1)
  DDB.BeginStruct(this);
  DDB.Page   ("Page 1");
  DDB.Text   ("Datum");
  DDB.Double ("Datum",        "Z",    DC_L    , "m",    &dDatum,        this, isResult|0      | DYNMODE);
  DDB.Double ("Datum_Rqd",    "Z_Rqd",DC_L    , "m",    &dDatum_Rqd,    this, isParmStopped | DYNMODE|NAN_OK);
  DDB.Text   (" ");
  DDB.Double ("Mass_Flow",   "Qm",    DC_Qm,  "kg/s",  xidQm,     this, 0); //  ,NDT_ZERODEFAULT|NDT_SGN           )
  DDB.Double ("Vol_Flow",    "Qv",    DC_Qm,  "m^3/h", xidQv,     this, 0); //  ,NDT_SGN           )
  DDB.Text   (" ");
  DDB.Double ("Press_Input", "PiR",   DC_P,   "kPag",  xidPInRmt, this, 0); //  ,NDT_SGN    )
  DDB.Text   (" ");
//    }

//  if (Page & 0x2)
//    {
  DDB.Page   ("Page 2");
  DDB.String ("Flare",        "",           DC_,      "",     &FlareTag,   this,  isParm);
  DDB.Text   (" ");
//    }

  DDB.EndStruct();
  };
Beispiel #5
0
/*#F:This provides access to the variables of the model.*/
void X_Comp::BuildDataDefn(DataDefnBlk & DDB)
  {
  DDB.BeginStruct(this);

  DDB.Text("");
  DDB.Double ("","PowerMaximum",         DC_Pwr,    "kW", &P_MaxPower,          this  ,isParm);
  DDB.Double ("","Psetpoint",            DC_P,    "kPag", &P_SetpointPressure,  this  ,isParm);
  DDB.Double ("","Polytropic_Eff",       DC_Frac,    "%", &P_PolytropicEff,     this  ,isParm);
  DDB.Double ("","Compressability",      DC_,         "", &P_Compressability,   this  ,isParm);
  DDB.Text("");

  DDB.Byte   ("","Status",               DC_,         "", &P_Status,            this  ,isParm, DDBOnOff);

  DDB.Text("");
  static DDBValueLst DDB0[] = {
    {0,    "Pressure"},
    {1,    "Speed"},
    {0}};
  DDB.Byte   ("","Control",              DC_,     "",     &Control,             this  ,isParm|SetOnChange|AffectsStruct, DDB0);
  dword IsPress=Control==0;
  dword IsSpeed=Control==1;
  DDB.Double ("","MinSpeed",             DC_pS,   "rpm",  &MinSpeed,            this  ,(IsSpeed?0:noView)|isParm);
  DDB.Double ("","MaxSpeed",             DC_pS,   "rpm",  &MaxSpeed,            this  ,(IsSpeed?0:noView)|isParm);
  DDB.Double ("","SpdTC",                DC_Time, "s",    &SpdTau,              this  ,(IsSpeed?0:noView)|isParm);
  DDB.Double ("","SpdSpt",               DC_Frac, "%",    &SpdSpt,              this  ,(IsSpeed?0:noView)|isParm);
  DDB.Double ("","SpdFbk",               DC_Frac, "%",    &SpdFbk,              this  ,(IsSpeed?0:noView));
  DDB.Double ("","Speed",                DC_pS,   "rpm",  &ActSpeed,            this  ,(IsSpeed?0:noView));
  DDB.Double ("","NetBoost",             DC_DP,   "kPa",  &TheBoost,            this  ,(IsSpeed?0:noView)|InitHidden);

  DDB.Double ("","SpeedRatio",           DC_Frac, "%",    &SpeedRatio,          this  ,(IsPress?0:noView)|isParm|NAN_OK); // Why? - CNM
  DDB.Text("");

  DDB.Text("");
  DDB.Double ("","SpecificHheaRat",      DC_Frac, "%",    &P_SpecificHeatRatio, this  ,0);
  DDB.Double ("","MolecularWeight",      DC_,     "",     &P_MolecularWeight,   this  ,0);
  DDB.Double ("","MMSCFD",               DC_,     "",     &MFlow,               this  ,0);
  DDB.Double ("","Pin",                  DC_P,    "kPag", &Pin,                 this  ,0);
  DDB.Double ("","Pout",                 DC_P,    "kPag", &Pout,                this  ,0);
  DDB.Double ("","Qin",                  DC_Qm,   "kg/s", &QinFlange,           this  ,0);
  DDB.Double ("","Qout",                 DC_Qm,   "kg/s", &QoutFlange,          this  ,0);
  DDB.Double ("","QvSrg",                DC_Qv,   "m^3/s",&QvSrg,               this  ,0);
  DDB.Double ("","QvIn",                 DC_Qv,   "m^3/s",&QvIn,                this  ,0);
  DDB.Double ("","Tin",                  DC_T,    "C",    &Tin,                 this  ,0);
  DDB.Double ("","Tout",                 DC_T,    "C",    &Tout,                this  ,0);
  DDB.Double ("","PowerUsage",           DC_Pwr,  "kW",   &CurrentPow,          this  ,0);
  DDB.Text("");

  DDB.Object(&SurgeCondition, this, NULL, "TestComment 1",DDB_RqdPage);
  DDB.Object(&Efficiency,     this, NULL, "TestComment 2",DDB_RqdPage);
  DDB.Object(&Speed,          this, NULL, "TestComment 3",DDB_RqdPage);

  DDB.EndStruct();
  };
Beispiel #6
0
void CIsolator::BuildDataDefn(DataDefnBlk & DDB)
  {
  DDB.BeginStruct(this, "CIsolator", NULL, DDB_NoPage);
  DDB.Text("");
  DDB.Long       ("TermCfg",    "", DC_,    "",  xidTSCfg, this, isParm, DDBCTTypes);
  DDB.CheckBoxBtn("On",         "", DC_,    "",  &m_bOn,          this, isParm);
  DDB.Double     ("HeatLoad",   "", DC_Pwr, "W",  xidHtLoad,          this, isResult);
  DDB.Text("");
  m_tsPwrIn.BuildDataDefn(DDB, 1, true);
  m_tsPwrOut.BuildDataDefn(DDB, 2, true);

  DDB.EndStruct();
  }
Beispiel #7
0
/*#F:This provides access to the variables of the model and calls the
BuildDataDefn for objects used by the model.*/ 
void CElectroCell::BuildDataDefn(DataDefnBlk & DDB)
  {
  DDB.BeginStruct(this);

  DDB.Visibility(NM_Dynamic|SM_All|HM_All);
  BuildDataDefnElevation(DDB);
  DDB.Double  ("Density",       "Rho",      DC_Rho,  "kg/m^3", xidRho,         this, isResult|0);
  DDB.Double  ("Level",         "Lvl",      DC_Frac, "%",      xidLevel,       this, isResult|0);
  DDB.Double  ("Mass_Accum",    "QmAcc",    DC_Qm,   "kg/s",   &m_QmAcc,       this, isResult|0);
  DDB.Double  ("Vol_Accum",     "QvAcc",    DC_Qv,   "L/s",    &m_QvAcc,       this, isResult|0);
  DDB.Text    ("");
  DDB.Byte    ("Plated_Metal?", "Metal?",   DC_,     "",       &iMetal,        this, isParm, SDB.DDBSolSpList());
  DDB.Double  ("Cathode_Mass",  "Cathodes", DC_,     "",       &CathMass,      this, isResult|0);
  DDB.Visibility();

  DDB.Text    ("");
  DDB.Double  ("CellEfficiency","Cell_Eff",        DC_Frac, "%",      &dCellEff,      this, isParm);
  //DDB.Double  ("",           "PreHeatFrac", DC_Frac, "%",      &dPreHeatFrac,  this, isParm); //possibly not needed?
  //DDB.Double  ("",             "EnergyRqd", DC_Pwr,  "kW",     &dHeatFlow,     this, isResult|noFileAtAll|InitHidden);
  //DDB.Double  ("",             "HeatFlow",  DC_Pwr,  "kW",     &dHeatFlow,     this, isResult|0);
  DDB.Double  ("",             "ElecEnergyTotal",  DC_Pwr,  "kW",     &m_dElecEnergyTotal,     this, isResult|0);
  DDB.Double  ("",             "ElecEnergyReact",  DC_Pwr,  "kW",     &m_dElecEnergyReact,     this, isResult|0);
  DDB.Double  ("",             "ElecEnergyHeat",   DC_Pwr,  "kW",     &m_dElecEnergyHeat ,     this, isResult|0);
  DDB.Text    ("");
  DDB.Double  ("TempFeed",     "Feed.T",           DC_T,    "C",      &m_TempKFeed,     this, isResult);//|noFileAtAll);
  DDB.Double  ("FinalT",       "",                 DC_T,    "C",      &m_TempKProd,     this, isResult|0);


  DDB.Text    ("");
  m_RB.Add_OnOff(DDB);

  DDB.Visibility();
  DDB.Text    ("");
  BuildDataDefnShowIOs(DDB, true);
  BuildDataDefnIOOpts(DDB);

  m_RB.BuildDataDefn(DDB);

  if (SolveSurgeMethod())
    {
    DDB.Object(&Contents, this, NULL, NULL, DDB_RqdPage);
    DDB.Object(&m_PresetImg, this, NULL, NULL, DDB_RqdPage);
    }

  DDB.Visibility(NM_Dynamic|SM_All|HM_All);
	//if (Contents.SpillExists())
  //  DDB.Object(&Contents.OverFlow, this, NULL, NULL, DDB_RqdPage);
  DDB.Visibility();

  DDB.EndStruct();
  };
Beispiel #8
0
void CBBBase::DoBuildDataDefn(DataDefnBlk & DDB)
  {
  if (m_pMethod)
    {
    Method.m_pDDB=&DDB;
    if (Method.m_pUnitDef->m_AddUsrPrefix)
      DDB.BeginStruct(m_pNd, "Usr", NULL, DDB_NoPage);
    Method.BuildDataFields();
    if (Method.m_pUnitDef->m_AddUsrPrefix)
      DDB.EndStruct();

    Method.m_pDDB=NULL;
    }
  }
Beispiel #9
0
void VLL_Sep::BuildDataDefn(DataDefnBlk &DDB)
  {
  DDB.BeginStruct(this);
  DDB.SuppressNextBlock();
  FlashTank::BuildDataDefn(DDB);
  DDB.Page    ("Boot", DDB_RqdPage);
  DDB.Double  ("",                    "Boot.IF",     DC_Frac, "%",       xidBH2oIf,    this, 0);
  DDB.Double  ("",                    "Boot.Volume", DC_Vol,  "m^3",     &BootVolume,  this, isParm);
  DDB.Double  ("",                    "Boot.Liq",    DC_M,    "kg",      &TotalSettled,this, (fDoDbgBrk ? isParm : 0)|InitHidden);
  //DDB.Double  ("H2ORemoveEfficiency","H2ORemEff",   DC_Frac, "%",       &H2ORemEff,   this, isParm);
  DDB.Double  ("RemovalEfficiency",   "RemEff",      DC_Frac, "%",       &H2ORemEff,   this, isParm);
  DDB.Double  ("H2oSettled",          "", DC_M, "kg", &H2oSettled,   this, isParmConstruct|InitHidden);
  DDB.Double  ("MEGSettled",          "", DC_M, "kg", &MEGSettled,   this, isParmConstruct|InitHidden);
  DDB.Text   (" ");
  DDB.EndStruct();
  }
Beispiel #10
0
void HydroCyclone::BuildDataDefn(DataDefnBlk & DDB)
  {
  DDB.BeginStruct(this);
  DDB.Double("ByePass2Grits", "",       DC_Frac, "%",      &ByePass2Grits,  this,isParm);
  DDB.Double("OreToGrits",    "",       DC_Frac, "%",      &Ore2Grit,       this, DynMode() ? 0 : isParm);
  DDB.Double("LiqToGrits",    "",       DC_Frac, "%",      &Liq2Grit,       this, DynMode() ? 0 : isParm);

  DDB.Text("");
  GSM.Add_OnOff(DDB);
  GSM.BuildDataDefn(DDB, NULL, NULL, DDB_OptPage);

  DDB.Object(&PartCrv, this, NULL, NULL, DDB_RqdPage);


  DDB.EndStruct();
  };
Beispiel #11
0
void FlashTank::BuildDataDefn(DataDefnBlk &DDB)
  {
  DDB.BeginStruct(this);
  DDB.Double ("Pressure",     "P",    DC_P,    "kPag",   xidPMean,        this, 0);
  DDB.Double ("Temperature",  "T",    DC_T,    "C",      xidTemp,        this, 0);
  DDB.Double ("Density",      "Rho",  DC_Rho,  "kg/m^3", xidRho,       this, 0);
  DDB.Double ("Level",        "Lvl",  DC_Frac, "%",      xidLevel,     this, 0);

  DDB.Text   ("Datum");
  DDB.Double ("Datum",        "Z",    DC_L    , "m",    &dDatum,        this, isResult|0      | DYNMODE);
  DDB.Double ("Datum_Rqd",    "Z_Rqd",DC_L    , "m",    &dDatum_Rqd,    this, isParmStopped | DYNMODE|NAN_OK);

  DDB.Text   (" ");
  DDB.Double  ("POffset",      "",    DC_DP,    "kPa",     &POffset,          this, 0);

  DDB.Text    ("");
  DDB.CheckBoxBtn("Closed",    "",      DC_     , "",      xidClosed,      this,
    isParmStopped|(!gs_Environment.OK() ? noView|noFile|noSnap|noScenario:0) , DDBYesNo);
  DDB.CheckBoxBtn("Networked", "", DC_     , "",       xidNetPressDamp,       this,
    isParmStopped|(!gs_Environment.OK() || !Contents.Closed() ? noView|noFile|noSnap|noScenario:0) , DDBYesNo);

  VLE.Add_OnOff(DDB);

  VLE.BuildDataDefn(DDB, NULL, NULL, DDB_RqdPage, 0);
  if (SolveMode()==DYNMODE)
    {
    DDB.Object(&Contents, this, NULL, NULL, DDB_RqdPage);
    DDB.Object(&PresetImg, this, NULL, NULL, DDB_RqdPage);
    }

  DDB.Page("IOs");
  Strng Commnt, Nm;
  for (int i=0; i<NoFlwIOs(); i++)
    {
    Nm.Set("IO_%02i", i);
    DDB.Double(Nm(),     "",  DC_Qm , "kg/s",    xidIO_Qm0+i,       this, 0);
#ifndef UsingZTagObj
    DDB.VolatileTags(Nm(), Nm());
#endif

    Commnt.Set("%s", Nd_Rmt(i)->FullObjTag());
    DDB.TagComment(Commnt());
    }
  DDB.Double("IO_Sigma",    "",  DC_Qm , "kg/s",    xidIO_QmSigma,       this, 0);

  DDB.EndStruct();
  };
Beispiel #12
0
void Mill1::BuildDataDefn(DataDefnBlk & DDB)
  {
  DDB.BeginStruct(this);

  DDB.Text("");
  DDB.CheckBox("On", "", DC_, "", &bOnLine, this, isParm);
  DDB.Text("Power");
  DDB.Double("InstalledPower", "Motor",     DC_Pwr,   "kW",    &Motor,      this, isParm);
  DDB.Double("PercentHeat",    "HeatPerc",  DC_Frac,  "%",     &Eff,        this, isParm);
  DDB.Double("Bond_WI",        "BondWI",    DC_WI ,   "kWh/t", &BWI,        this, isParm);
  DDB.Double("Calc_Power",     "UsedPower", DC_Pwr,   "kW",    &Power,      this, isResult|0);
  DDB.Double("Calc_Heat",      "HeatPower", DC_Pwr,   "kW",    &Heat,       this, isResult|0);

  DDB.Text("");
  DDB.Double("Density",        "Rho",       DC_Rho,  "kg/m^3", xidRho,      this, isResult|0);
  BuildDataDefnElevation(DDB);
  CB.Add_StandardDataDefn(DDB, true);

  DDB.Visibility(NM_Dynamic|SM_All|HM_All);
  DDB.Text("");
  DDB.Double("DischOnSpeed",   "",          DC_Frac,  "%",     &DischOnSpeed, this, isParm);
  MSB.BuildDataDefn(DDB, this, "Speed", 1);
  m_Pwr.BuildDataDefn(DDB);
  DDB.Visibility();
  
  m_RB.Add_OnOff(DDB);

  DDB.Text("");
  BuildDataDefnShowIOs(DDB);

  CB.Add_ObjectDataDefn(DDB, true);
  m_RB.BuildDataDefn(DDB);

  if (NetDynamicMethod())
    {
    DDB.Object(&Contents, this, NULL, NULL, DDB_RqdPage);
    DDB.Object(&m_PresetImg, this, NULL, NULL, DDB_RqdPage);
    }

  DDB.Object(&Disch,     this, NULL, NULL, DDB_RqdPage);

  
  DDB.EndStruct();
  }
Beispiel #13
0
void CSzSSA::BuildDataDefn(DataDefnBlk & DDB)
  {
//  DDB.CheckBox("SetSAM",        "",     DC_,          "",       &m_bSetSAM,         this,  m_bSAMCalcd ? 0 : isParm);
  if (DDB.BeginStruct(this, "SSA", 0))
    {
    DDB.Byte    ("",              "Method",     DC_,          "",       &m_iMethod,            this, 0/*isParm*/, DDBMeth);
    DDB.Visibility(NSHM_All ,m_iMethod==SSA_Independent);
    if (!DDB.ForFileSnpScn())
      DDB.CheckBoxBtn("SetData",  "",           DC_,          "",       xidSSAAllowSet,        this, isParm);
    DDB.Long    ("",              "Solids",     DC_,          "",       &m_iSolids,            this, (m_bHasPSD || !DataSettable()) ? 0 : isParm, SDB.DDBSolSpListDash());
    DDB.Visibility();
    DDB.Double  ("SeedSurfAreaM", "SAM",        DC_SurfAreaM, "m^2/g",  xidSSAPartSAM,         this, (m_bHasPSD || !DataSettable()) ? 0 : isParm);
    DDB.Double  ("SeedSurfAreaL", "SAL",        DC_SurfAreaL, "m^2/L",  xidSSAPartSAL,         this, noFile);
    DDB.Double  ("#/s",           "",           DC_,          "",       xidSSAPartNoperSec,    this, noFile|InitHidden);
    DDB.Double  ("#/L",           "",           DC_,          "",       xidSSAPartNoperVol,    this, noFile|InitHidden);
    DDB.Double  ("PartDiam",      "D",          DC_L,         "um",     xidSSAPartDiam,        this, ((m_bHasPSD || !DataSettable()) ? 0 : isParm)|noFile);
    DDB.Double  ("SolidsQm",      "",           DC_Qm,        "kg/s",   xidSSAPartSolidsQm,    this, noFile|InitHidden);
    }
  DDB.EndStruct();
  }
Beispiel #14
0
void CTransformer::BuildDataDefn(DataDefnBlk & DDB)
  {
  DDB.BeginStruct(this, "CTransformer", NULL, DDB_NoPage);
  DDB.Text("");
  DDB.Long       ("PriCfg",    "", DC_,   "",  xidTSCfgP, this, isParm, DDBCTTypes);
  DDB.Long       ("SecCfg",    "", DC_,   "",  xidTSCfgS, this, isParm, DDBCTTypes);
  DDB.Text("");
  DDB.Double       ("NomPriVolts",   "", DC_V,     "V",     &m_dPriV, this, isParm);
  DDB.Double       ("NomSecVolts",   "", DC_V,     "V",     &m_dSecV, this, isParm);
  DDB.Double       ("PriResist",     "", DC_Ohms,  "Ohms",  xidPriR,  this, isParm);
  DDB.Double       ("PriIndReact",   "", DC_Ohms,  "Ohms",  xidPriX,  this, isParm);
  DDB.Double       ("SecResist",     "", DC_Ohms,  "Ohms",  xidSecR,  this, isParm);
  DDB.Double       ("SecIndReact",   "", DC_Ohms,  "Ohms",  xidSecX,  this, isParm);
  DDB.Double       ("NoLoadCurrent", "", DC_I,     "A",     &m_dNLI,  this, isParm);
  DDB.Double       ("NoLoadPhase",   "", DC_Ang,   "deg",   &m_dNLA,  this, isParm);
  DDB.Double       ("HeatLoad",      "", DC_Pwr,   "W",     xidHtLoad,this, 0);
  DDB.Text("");
  m_tsPri.BuildDataDefn(DDB, 1, true);
  m_tsSec.BuildDataDefn(DDB, 2, true);
  DDB.EndStruct();
  }
Beispiel #15
0
void CPipeTerm::BuildDataDefn(DataDefnBlk &DDB)
  {
  DDB.BeginStruct(this, NULL, NULL, DDB_NoPage);

  DDB.Text   ("Flow Conditions");
  DDB.Double ("Mass_Flow",    "Qm",       DC_Qm,   "kg/s",   xidQm,         this, isResult|noFile|noSnap);
  DDB.Double ("Vol_Flow",     "Qv",       DC_Qv,   "L/s",    xidQv,         this, isResult|noFile|noSnap);
  DDB.Double ("NVol_Flow",    "NQv",      DC_NQv,  "NL/s",   xidNQv,        this, isResult|noFile|noSnap);
  DDB.Double ("Temperature",  "T",        DC_T,    "C",      xidTemp,       this, isResult|noFile|noSnap);
  DDB.Double ("Density",      "Rho",      DC_Rho,  "kg/m^3", xidRho,        this, isResult|noFile|noSnap);
  DDB.Double ("NDensity",     "NRho",     DC_Rho,  "kg/m^3", xidNRho,       this, isResult|noFile|noSnap);
  DDB.Double ("PressureIn",   "PIn",      DC_P,    "kPag",   xidPIn,        this, isResult|noFile|noSnap);
  DDB.Double ("PressureOut",  "POut",     DC_P,    "kPag",   xidPOut,       this, isResult|noFile|noSnap);

  DDB.Visibility(NSHM_All);
  flag ParmOK=true;
  
  DDB.Visibility();
  DDB.Text  ("");
  DDB.Double("PressureOutRqd","POutRqd",  DC_P,    "kPag",   &m_dPOut,       this, isParm);
  DDB.Double("Head",          "",         DC_L,    "m",      &m_dHead,       this, isParm);

  BuildDataDefnElevation(DDB);
  
  DDB.Text  ("");
  m_FRB.BuildDataDefn(DDB, this, true);
  DDB.Visibility(NM_Dynamic|SM_All|HM_All);
  DDB.Text  ("");
  m_VPB.BuildDataDefn(DDB, this, "Posn", 1);
  DDB.Visibility(NSHM_All);

  if (NoFlwIOs()>0 && !DDB.ForFileSnpScn())
    IOFB(0,0)->BuildDataDefn(FBDDOpt_WithAll, DDB, this, "CtrlEqn", 2);

  DDB.Visibility();
  DDB.Object(&m_Flows, this, NULL, NULL, DDB_RqdPage);

  DDB.Text("");
  DDB.EndStruct();
  }
Beispiel #16
0
void Crusher::BuildDataDefn(DataDefnBlk & DDB)
  {
  DDB.BeginStruct(this);
  BuildDataDefnElevation(DDB);
  DDB.Text("");

  DDB.Text("");
  static DDBValueLst DDB0[]={
    {CM_PartCrv,  "PartitionCrv"},
    {CM_SelBreak, "Select/Break"},
    {0}};
  DDB.Byte  ("Method",   "", DC_,     "",  &iMethod,  this, isParm|DDEF_SETONCHANGE, DDB0);
//?  DDB.Bool("UseSelBrk",   "",  DC_,  "", &fUseSelBrk,   this, isParm, DDBYesNo);

  DDB.Text("");
  DDB.Double("Bond_WI",      "Bond_WI",    DC_WI ,  "kWh/t",  &BWI  ,   this, isParm);
  DDB.Double("Calc_Power",   "CalcPower",  DC_Pwr,  "kW",     &Power,   this, isResult|0);

  //DDB.Double("Density",      "Rho",  DC_Rho,  "kg/m^3", xidRho,   this, 0);
  //DDB.Double("Level",        "Lvl",  DC_Frac, "%",      xidLevel, this, 0);


  MSB.BuildDataDefn(DDB, this, "Speed", 1);
  m_Pwr.BuildDataDefn(DDB);
  //DDB.Object(&BWDist,    this);
  //DDB.Object(&EDist,     this);
  if (iMethod==CM_SelBreak)
    DDB.Object(&SelBrk, this);
  else
    DDB.Object(&DischPart, this);

  DDB.Object(&Disch,     this, NULL, NULL, DDB_RqdPage);
  

  DDB.EndStruct();
  };
Beispiel #17
0
void CoolingTower::BuildDataDefn(DataDefnBlk & DDB)
  {
  DDB.BeginStruct(this);

  DDB.Visibility(NM_Dynamic|SM_All|HM_All);
  BuildDataDefnElevation(DDB);
  DDB.Double  ("Pressure",     "P",     DC_P,    "kPag",   xidPMean,       this, isResult|0);
  DDB.Double  ("Temperature",  "T",     DC_T,    "C",      xidTemp,        this, isResult|0);
  DDB.Double  ("Density",      "Rho",   DC_Rho,  "kg/m^3", xidRho,         this, isResult|0);
  DDB.Double  ("Level",        "Lvl",   DC_Frac, "%",      xidLevel,       this, isResult|0);
  DDB.Double  ("Mass_Accum",   "QmAcc", DC_Qm,  "kg/s",    &m_QmAcc,       this, isResult|0);
  DDB.Double  ("Vol_Accum",    "QvAcc", DC_Qv,  "L/s",     &m_QvAcc,       this, isResult|0);
  AddMdlNetworked(DDB);

  DDB.Visibility(NM_Probal|SM_All|HM_All);
  static DDBValueLst DDB0[]={
    {CTM_Simple, "Simple"},
    {CTM_Merkel, "Merkel"},
    {0}};
  static DDBValueLst DDB1[]={
    {MCT_KaVL, "KaV/L"},
    {MCT_TOut, "OutletT"},
    {0}};
  static DDBValueLst DDB2[]={
    {WLM_None, "None"},
    {WLM_Frac, "MassFrac"},
    {WLM_Qm, "MassFlow"},
    {WLM_DriftBlowdown, "Drift&Blowdown"},
    {0}};

  //TODO: many of these variables should be calculated using xid_xxx rather than storing everything!
  DDB.Text    ("");
  DDB.Byte    ("Method",               "", DC_,     "",      &iMethod,        this, isParm|SetOnChange, DDB0);
  DDB.Text    ("");
  DDB.Text    ("Characteristics");
  DDB.Visibility(NM_Probal|SM_All|HM_All, iMethod==CTM_Merkel);
  DDB.Byte    ("CalcType",             "", DC_,     "",      &iMerkelCalcType,this, isParm|SetOnChange, DDB1);
  DDB.Visibility(NM_Probal|SM_All|HM_All);
  DDB.Double  ("AirWetBulbT",          "", DC_T,    "C",     &dAirWetBulbT,   this, isParm);
  DDB.Double  ("ApproachTemp","ApproachT", DC_dT,   "C",     &dApproachT,     this, (iMethod==CTM_Merkel && iMerkelCalcType==MCT_TOut) ? isResult : isParm);
  DDB.Visibility(NM_Probal|SM_All|HM_All, iMethod==CTM_Merkel);
  DDB.Double  ("LG_Ratio",             "", DC_,     "",      &dLGRatio,       this, isParm);
  DDB.Double  ("KaVL",                 "", DC_,     "",      &dKaVL,          this, (iMethod==CTM_Merkel && iMerkelCalcType==MCT_TOut) ? isParm : isResult);
  DDB.Visibility(NM_Probal|SM_All|HM_All);
  DDB.Double  ("FeedQm",               "", DC_Qm,   "kg/s",  &dQmIn,          this, isResult);
  DDB.Double  ("TempFeed",       "Feed.T", DC_T,    "C",     &dTempKFeed,     this, isResult);
  DDB.Double  ("TempDrop",        "TDrop", DC_dT,   "C",     &dTempDrop,      this, isResult);
  DDB.Double  ("FinalT",               "", DC_T,    "C",     &dFinalT,        this, isResult);
  //DDB.Double  ("HeatFlow",             "", DC_Pwr,  "kW",    &dHeatFlow,      this, isResult); perhaps remove???
  DDB.Visibility(NM_Probal|SM_All|HM_All, iMethod==CTM_Merkel);
  DDB.Double  ("HeatTransfer",         "", DC_Pwr,  "kW",    &dDuty,          this, isResult);
  DDB.Visibility(NM_Probal|SM_All|HM_All);
  DDB.Double  ("FinalP",               "", DC_P,    "kPag",  &dFinalP,        this, isResult|InitHidden);
  DDB.Text    ("");
  DDB.Text    ("Water Loss/Makeup");
  DDB.Byte    ("LossMethod",           "", DC_,     "",      &iLossMethod,    this, isParm|SetOnChange, DDB2);
  DDB.Visibility(NM_Probal|SM_All|HM_All, iLossMethod==WLM_DriftBlowdown);
  DDB.Double  ("DriftLoss",            "", DC_Frac, "%",     &dDriftLossFrac, this, isParm);
  DDB.Long    ("Cycles",               "", DC_,     "",      &iCycles,        this, isParm);
  DDB.Visibility(NM_Probal|SM_All|HM_All, iLossMethod==WLM_Frac);
  DDB.Double  ("RqdLossFrac",          "", DC_Frac, "%",     &dRqdLossFrac,   this, isParm);
  DDB.Visibility(NM_Probal|SM_All|HM_All, iLossMethod==WLM_Qm);
  DDB.Double  ("RqdLossQm",            "", DC_Qm,   "kg/s",  &dRqdLossQm,     this, isParm);
  DDB.Visibility(NM_Probal|SM_All|HM_All, iLossMethod==WLM_Frac || iLossMethod==WLM_Qm);
  DDB.Double  ("FracOfLossToDrift",    "", DC_Frac, "%",     &dRqdDriftLossFrac, this, isParm);
  DDB.Visibility(NM_Probal|SM_All|HM_All, iMethod==CTM_Merkel);
  DDB.Double  ("EvapFactor",           "", DC_,     "",      &dEvapFactor,    this, isParm);
  DDB.Visibility(NM_Probal|SM_All|HM_All, iMethod==CTM_Simple);
  DDB.Double  ("MaxEvapFrac",          "", DC_Frac, "%",     &dMaxEvapFrac,   this, isParm);
  DDB.Visibility(NM_Probal|SM_All|HM_All);
  DDB.Double  ("DriftLossQm",          "", DC_Qm,   "kg/s",  &dDriftLossQm,   this, isResult);
  DDB.Double  ("BlowdownLossQm",       "", DC_Qm,   "kg/s",  &dBlowdownLossQm,this, isResult);
  DDB.Double  ("LossQm",               "", DC_Qm,   "kg/s",  &dLossQm,        this, isResult);
  DDB.Double  ("EvapLossQm",           "", DC_Qm,   "kg/s",  &dEvapLossQm,    this, isResult);
  DDB.Double  ("TotalLossQm",          "", DC_Qm,   "kg/s",  &dTotalLossQm,   this, isResult|InitHidden);
  DDB.Double  ("WaterEvapQm",    "EvapQm", DC_Qm,   "kg/s",  &dQmWaterEvap,   this, isResult|InitHidden);
  DDB.Double  ("WaterVapFrac",         "", DC_Frac, "%",     &dEvapFrac,      this, isResult);
  if (iMethod==CTM_Merkel)
    {
    DDB.Text    ("");
    DDB.Text    ("Air-Water Mixture Estimates");
    }
  DDB.Visibility(NM_Probal|SM_All|HM_All, iMethod==CTM_Merkel);
  DDB.Double  ("AirEnthOut",           "", DC_HMs,  "kJ/kg", &dAirEnthOut,    this, isResult);
  DDB.Double  ("HeatAvailable",        "", DC_Pwr,  "kW",    &dDuty,          this, isResult);
  DDB.Double  ("AirQm",                "", DC_Qm,   "kg/s",  &dAirQmIn,       this, isResult);
  DDB.Double  ("AirCp",                "", DC_CpMs, "kJ/kg.C",&dAirCp,        this, isParm);
  DDB.Double  ("AirInDryBulbT",        "", DC_T,    "C",     &dAirDryBulbT,   this, isParm);
  DDB.Double  ("AirTRise",             "", DC_dT,   "C",     &dAirTRise,      this, isResult);
  DDB.Double  ("AirOutT",              "", DC_T,    "C",     &dAirTOut,       this, isResult);
  DDB.Double  ("AirWaterMixQm",        "", DC_Qm,   "kg/s",  &dAirMixQm,      this, isResult);
  DDB.Double  ("AirWaterMixCpEst",     "", DC_CpMs, "kJ/kg.C",&dAirMixCp,     this, isResult);
  DDB.Double  ("AirWaterMixTEst",      "", DC_T,    "C",     &dAirMixT,       this, isResult);
  
  //DDB.Visibility(NM_Probal|SM_All|HM_All);
  //RB.Add_OnOff(DDB, False);
  //EHX.Add_OnOff(DDB, False);
  
  DDB.Visibility();
  

  DDB.Text  (" ");
  BuildDataDefnShowIOs(DDB);
  BuildDataDefnIOOpts(DDB);
  
  //RB.BuildDataDefn(DDB);
  //EHX.BuildDataDefn(DDB);
  //VLE.BuildDataDefn(DDB);

  if (NetDynamicMethod())
    {
    DDB.Object(&Contents, this, NULL, NULL, DDB_RqdPage);
    DDB.Object(&m_PresetImg, this, NULL, NULL, DDB_RqdPage);

    //if (Contents.SpillExists())
    //  DDB.Object(&Contents.OverFlow(), this, NULL, NULL, DDB_RqdPage);
    }
  DDB.EndStruct();
 
  }
Beispiel #18
0
void CActuator::BuildDataDefn(DataDefnBlk & DDB)
  {
  DDB.BeginStruct(this, "CActuator", NULL, DDB_NoPage);
  DDB.Text("");
  DDB.CheckBoxBtn("On",           "",         DC_, "", &bOn,           this, isParmStopped, DDBYesNo);
  DDB.CheckBoxBtn("ShowCnv",      "",         DC_, "", &bWithCnvComment,this, isParmStopped, DDBYesNo);
  DDB.Visibility();
  DDB.Long("", "Ac_Cnt",  DC_, "", idmCount,       this, isParmStopped/*|AffectsStruct*/);
  DDB.Text("");
  if (m_DataBlk.GetSize()>0)
    {
    DDB.Button("Check_tags",   "", DC_,    "",    idmCheckBtn,      this, isParmStopped);
    DDB.Text("");
    DDB.String("State",        "", DC_,    "",    &m_StateLine[0],  this, noSnap|noFile);
    DDB.Text("Error:");
    DDB.String("Msg_1",        "", DC_,    "",    &m_StateLine[1],  this, noSnap|noFile);
    DDB.String("Msg_2",        "", DC_,    "",    &m_StateLine[2],  this, noSnap|noFile);
    DDB.Text("");
    }
  DDB.Text("----------------------------------------");

  static DDBValueLst DDBFail[]={
      {Fail_None,                         "None"             },
      {Fail_Hold,                         "Hold"             },
      {Fail_Hold|Fail_Noise,              "Hold,Noise"       },
      {Fail_MinVal,                       "MinVal"           },
      {Fail_MaxVal,                       "MaxVal"           },
      {Fail_LoVal,                        "LoVal"            },
      {Fail_HiVal,                        "HiVal"            },
      {Fail_MinVal|Fail_Ramp,             "MinVal,Ramp"      },
      {Fail_MaxVal|Fail_Ramp,             "MaxVal,Ramp"      },
      {Fail_LoVal|Fail_Ramp,              "LoVal,Ramp"       },
      {Fail_HiVal|Fail_Ramp,              "HiVal,Ramp"       },
      {Fail_MinVal|Fail_Noise,            "MinVal,Noise"     },
      {Fail_MaxVal|Fail_Noise,            "MaxVal,Noise"     },
      {Fail_LoVal|Fail_Noise,             "LoVal,Noise"      },
      {Fail_HiVal|Fail_Noise,             "HiVal,Noise"      },
      {Fail_MinVal|Fail_Ramp|Fail_Noise,  "MinVal,Ramp,Noise"},
      {Fail_MaxVal|Fail_Ramp|Fail_Noise,  "MaxVal,Ramp,Noise"},
      {Fail_LoVal|Fail_Ramp|Fail_Noise,   "LoVal,Ramp,Noise" },
      {Fail_HiVal|Fail_Ramp|Fail_Noise,   "HiVal,Ramp,Noise" },
      {0}};
  static DDBValueLst DDBXForms[]={
      {XF_None,   "None"   },
      {XF_Linear, "Linear" },
      //{XF_Sqr,    "Sqr"    },
      //{XF_Sqrt,   "Sqrt"   },
      {0}};
  static DDBValueLst DDBFilters[]={
      {Flt_None,        "None"   },
      {Flt_FirstOrder,  "FirstOrder" },
      {0}};
  static DDBValueLst DDBRawXLates[]={
      {XL_None,     "None"   },
      {XL_AtoD,     "AtoD"  },
      {XL_Linear,   "Linear" },
      //{XL_PulseEncode  "PulseWidth" },
      {0}};
  char Buff[128];
  Strng Tag;
  if (DDB.BeginArray(this, "Cfg", "Ac_Cfg", m_DataBlk.GetSize()))
    {
    for (int i=0; i<m_DataBlk.GetSize(); i++)
      {
      if (1)// i>0 && (i % 2)==1)
        {
        sprintf(Buff, "%d", i);
        DDB.Page(Buff, DDB_OptPage);
        }
      DDB.BeginElement(this, i);
      CActuatorBlk * T = m_DataBlk[i];
      Strng CnvTxt;
      if (bWithCnvComment && XRefsValid() && T->m_bValid)
        GetValidCnvTxt(T->m_OutputVar, CnvTxt);
      DDB.String("ID",                 "",            DC_,          "", idmCfgTags+(i*NoOfCfgTags)+1, this, isParmStopped|isTag);
      DDB.String("OutputTag",          "",            DC_,          "", idmCfgTags+(i*NoOfCfgTags)+2, this, isParmStopped|isTag);
      //DDB.Double("RequiredValue",      "ReqdVal",         DC_,          "", &T->m_dReqdValue,               this, isResult|noFileAtAll);
      DDB.Double("RequiredValue",      "Rqd",         DC_,          "", &T->m_dReqdValue,               this, isResult|noFileAtAll);
      if (CnvTxt.Len())
        DDB.TagComment(CnvTxt());

//      DDB.Byte  ("Transform",          "",            DC_,          "",   &T->m_Xform.m_iType,  this, isParm|SetOnChange, DDBXForms);
//      DDB.Visibility(NSHM_All, T->m_Xform.m_iType);
//      DDB.Float ("Xf.Factor",          "",            DC_,          "",   &T->m_Xform.m_dFactor,      this, isParm);
//      DDB.Float ("Xf.Bias",            "",            DC_,          "",   &T->m_Xform.m_dBias,        this, isParm);
//
//      DDB.Visibility();
//
//      DDB.Byte  ("Filter",             "",            DC_,          "",   &T->m_Flt.m_iType,   this, isParm|SetOnChange, DDBFilters);
//      DDB.Visibility(NSHM_All, T->m_Flt.m_iType == Flt_FirstOrder);
//      DDB.Float ("Flt.TimeConst",      "Flt.Tau",     DC_Time,      "s",  &T->m_Flt.m_dTau,    this, isParm);
//      DDB.Double("Flt.PrevValue",      "",            DC_,          "",   &T->m_Flt.m_dPrevValue, this, InitHidden);
//      DDB.Visibility();
//
//      DDB.Byte  ("Fail.Mode",          "",            DC_,          "",   &T->m_Fail.m_iType,   this, isParm|SetOnChange, DDBFail);
//      DDB.Float ("Fail.LoValue",       "",            DC_,          "",   &T->m_Fail.m_dLoValue,   this, isParm);
//      DDB.Float ("Fail.HiValue",       "",            DC_,          "",   &T->m_Fail.m_dHiValue,   this, isParm);
//      DDB.Float ("Fail.NoiseStdDev",   "",            DC_,          "%",  &T->m_Fail.m_dNoiseStdDevFrac,   this, isParm);
//      DDB.Float ("Fail.SlewTime",      "",            DC_Time,      "s",  &T->m_Fail.m_dSlewTime,   this, isParm);
//
//
//      DDB.Float ("MinValue",           "MinV",        DC_,          "",   &T->m_dMinValue,   this, isParm);
//      DDB.Float ("MaxValue",           "MaxV",        DC_,          "",   &T->m_dMaxValue,   this, isParm);
//      DDB.Double("Value",              "",            DC_,          "",   &T->m_dValue,      this, isResult);
//
//      DDB.Float ("LoLimit",            "LL",          DC_,          "",   &T->m_dLoLimit,    this, isParm);
//      DDB.Float ("HiLimit",            "HL",          DC_,          "",   &T->m_dHiLimit,    this, isParm);
//
      flag ff=0;
      DDB.CheckBox  ("LoInvert",       "",            DC_,          "",   &T->m_bLoInvert,   this, isParm|SetOnChange);
      DDB.CheckBox  ("HiInvert",       "",            DC_,          "",   &T->m_bHiInvert,   this, isParm|SetOnChange);
      DDB.Bool      ("",               "Lo",          DC_,          "",   &T->m_bLo,         this, isResult);
      DDB.Bool      ("",               "Hi",          DC_,          "",   &T->m_bHi,         this, isResult);

//      DDB.Byte      ("RawTransform",   "",            DC_,          "",   &T->m_RawXform.m_iType,  this, isParm|SetOnChange, DDBRawXLates);
//      DDB.Visibility(NSHM_All, T->m_RawXform.m_iType>=XL_AtoD);
//      DDB.Float     ("Raw.MinValue",   "",            DC_,          "",   &T->m_RawXform.m_dMinValue,    this, isParm);
//      DDB.Float     ("Raw.MaxValue",   "",            DC_,          "",   &T->m_RawXform.m_dMaxValue,    this, isParm);
//      DDB.Visibility();
//
      //DDB.Double    ("OutputValue",    "Output",      DC_,          "",   &T->m_dOutputValue,   this, isResult);
      DDB.Double    ("OutputValue",    "Out",         DC_,          "",   &T->m_dOutputValue,   this, isResult);

      DDB.String    ("PLCAddess",      "",            DC_,          "",   &T->m_sPLCAddress,    this, isParmStopped|InitHidden);
      
      DDB.Long      ("Priority",       "",            DC_,          "",   idmCfgTags+(i*NoOfCfgTags)+4, this, isParmStopped|InitHidden);
      DDB.Text("----------------------------------------");
      }
    }
  DDB.EndArray();

  DDB.EndStruct();
  }
Beispiel #19
0
/*This provides access to the variables of the model and calls the
BuildDataDefn for objects used by the model.*/
void BeltCnv::BuildDataDefn(DataDefnBlk & DDB)
  {
  DDB.BeginStruct(this);

  //DDB.Page   ("Parms");
  DDB.Text    ("");
  DDB.Visibility(NM_Dynamic|SM_All|HM_All);
  BuildDataDefnElevation(DDB);
  DDB.Text("");
  DDB.Double  ("BeltSpeed",    "",                DC_Ldt,  "m/s",   xidBeltSpeed,       this, isResult);
  DDB.Visibility();
  DDB.Double  ("Length",       "L",               DC_L,    "m",     xidBeltLength,      this, isParm);
  DDB.Visibility(NM_Dynamic|SM_All|HM_All);
  DDB.Double  ("MaxSpeed",     "",                DC_Ldt,  "m/s",   &m_MaxVelocity,     this, isParm);
  DDB.Double  ("MaxLoading",   "MaxSpillLoad",    DC_MpL,  "kg/m",  &m_MaxSpillLoading, this, isParm);
  DDB.Double  ("MinLoading",   "",                DC_MpL,  "kg/m",  &m_MinLoading,      this, isParm|InitHidden);
  DDB.Long    ("MaxTurndown",  "",                DC_,     "",      &m_MaxTurnDown,     this, isParm|InitHidden);

  DDB.Visibility(NM_Dynamic|SM_All|HM_All);
  DDB.Double  ("",             "MaxStallLoad",    DC_M,    "kg",    &m_MaxStallLoading, this, isParm);
  DDB.CheckBox("",             "StartIfStalled",  DC_,     "",      &m_fStartIfStalled, this, isParm);
  DDB.Byte    ("",             "WasRunning",      DC_,     "",      &m_fWasRunning,     this, isResult|InitHidden);

  DDB.Double  ("TotalMass",    "",                DC_M,    "kg",    xidTotalMass,       this, isResult);
  DDB.Double  ("AvgLoading",   "",                DC_MpL,  "kg/m",  xidAvgLoading,      this, isResult);

  if (OrigPrjFileVerNo()<90 && DDB.ForFileSnpScn())
    DDB.String  ("SpillArea",    "",              DC_,     "",      &m_sAreaTag,        this, isParmStopped);
  DDB.Double  ("TotalSpilt",   "",                DC_M,    "kg",    xidTotSpilt,        this, isParm);
  DDB.Double  ("TotalVented",  "",                DC_M,    "kg",    xidTotVented,       this, isParm);

  DDB.Page("BeltDrive", DDB_RqdPage);
  DDB.Text    ("Power Draw");
  DDB.Double  ("NoLoadPower",  "",                DC_Pwr,  "kW",    &m_NLPower,         this, isParm);
  DDB.Double  ("FullLoadPower","",                DC_Pwr,  "kW",    &m_FLPower,         this, isParm);
  DDB.Double  ("Power",        "",                DC_Pwr,  "kW",    &m_Power,           this, isResult);

  DDB.Text("");
  m_Pwr.BuildDataDefn(DDB);
  m_BeltSB.BuildDataDefn(DDB, this, "Speed", 1);
  DDB.Visibility();

  DDB.Text("");
  DDB.Long    ("NoWtMtrs",     "",                DC_,     "",      xidNWtMtrs,         this, isParm);
  static DDBValueLst DDB1[] = {
    {QPT_None,        "None" },
    {QPT_FixedPts,    "Fixed Points"},
    {QPT_AllSections, "All Section Pts"},
    {QPT_MinSections, "Min Section Pts"},
    {0}};
  DDB.CheckBox("ShowProfile",  "",                DC_,     "",      xidShowProf,        this, isParm|SetOnChange);
  DDB.Visibility(NM_Dynamic|SM_All|HM_All, m_fShowProfile);
  DDB.Long    ("ProfDispType", "",                DC_,     "",      xidProfDispType,    this, isParm, DDB1);
  //DDB.Visibility(NM_Dynamic|SM_All|HM_All, m_fShowProfile && m_ProfDispType==QPT_FixedPts);
  //DDB.Long    ("ProfilePts",   "",                DC_,     "",      xidProfPts,         this, isParm);
  DDB.Visibility(NM_Dynamic|SM_All|HM_All);
  DDB.Long    ("NSections",    "",                DC_,     "",      xidNSections,       this, isResult);
  if (DDB.BeginStruct(this, "MinSect", 0, DDB_NoPage))
    {
    DDB.Double  ("Length",     "",                DC_Frac, "%",     &m_Q.m_dMinFracSectLen,  this, isParm);
    DDB.Visibility(NM_Dynamic|SM_All|HM_All, m_Q.m_dMinFracSectLen>0);
    DDB.Double  ("LoadTol",    "",                DC_Frac, "%",     &m_Q.m_dLoadTol,  this, isParm);
    DDB.Double  ("TempTol",    "",                DC_Frac, "%",     &m_Q.m_dTempTol,  this, isParm);
    DDB.Double  ("MFracTol",   "",                DC_Frac, "%",     &m_Q.m_dMFracTol,  this, isParm);
    }
  DDB.EndStruct();

  DDB.Text("");
  BuildDataDefnShowIOs(DDB);


  if (m_WtMtrPos.GetSize())
    {
    DDB.Page("WtMtrs", DDB_RqdPage);
    if (DDB.BeginArray(this, "WtMtr", "WtMtr", m_WtMtrPos.GetSize(), 0))
      {
      for (int i=0; i<m_WtMtrPos.GetSize(); i++)
        if (DDB.BeginElement(this, i))
          {
          DDB.Double("Pos",      "",                  DC_L ,     "m",     xidWtrMtrPos0+i,      this, isParm);
          DDB.Double("Loading",  "",                  DC_MpL,    "kg/m",  xidWtrMtrLd0+i,       this, isResult|0);
          DDB.Double("Rate",     "",                  DC_Qm,     "kg/s",  xidWtrMtrRate0+i,     this, isResult|0);
          DDB.Text("");
          }
      }
    DDB.EndArray();
    }


  int FdLst[MaxIOList], PrLst[MaxIOList];
  int nFd=0, nPr=0;
  for (int i=0; i<NoFlwIOs(); i++)
    if (IOId_Self(i)==idFeed)
      FdLst[nFd++]=i;
    else if (IOId_Self(i)==idProd)
      PrLst[nPr++]=i;

  int DoOld=((!DDB.ForFiling() && !DDB.ForSnapShot() && !DDB.ForScenario() && !DDB.ForView()) ||
            (DDB.ForFiling() && DDB.DoingPutData()));

  Strng Nm;
  DDB.Page("Feeds", DDB_RqdPage);
  if (DDB.BeginArray(this, "Fd", "BltCnvFd", nFd, 0))
    for (i=0; i<nFd; i++)
      if (DDB.BeginElement(this, Nd_Rmt(FdLst[i])->FullObjTag()))
        {
        DDB.Double     ("Pos",      "",  DC_L , "m",      xidFeedPos0+i,      this, isParm);
        DDB.Visibility(NM_Dynamic|SM_All|HM_All);
        DDB.CheckBoxBtn("Limited",  "",  DC_, "",         xidFeedLimited0+i,  this, isParm);
        DDB.Visibility(NM_Dynamic|SM_All|HM_All, m_Q.FeedLimited(i));
        DDB.Double     ("Capacity", "",  DC_Frac, "%",    xidFeedCapFrac0+i,  this, isParm);
        DDB.Visibility();
        DDB.Double     ("Qm",       "",  DC_Qm , "kg/s",  xidFeedQm0+i,       this, 0);
        DDB.Text("");

        if (DoOld)
          {
          DDB.BeginElement(this, i);
          DDB.Double("Pos",     "",  DC_L , "m",    xidFeedPos0+i,       this, isParm);
          DDB.Double("Qm",     "",  DC_Qm , "kg/s",  xidFeedQm0+i,       this, 0);
          }
        }
  DDB.EndArray();

  DDB.Page("Products", DDB_RqdPage);
  if (DDB.BeginArray(this, "Pr", "BltCnvPr", nPr, 0))
    for (i=0; i<nPr; i++)
      if (DDB.BeginElement(this, Nd_Rmt(PrLst[i])->FullObjTag()))
        {
        DDB.Double("Pos",     "",   DC_L ,     "m",    xidProdPos0+i,       this, isParm);
        DDB.Double("Removal","",    DC_Frac , "%",     xidProdRemove0+i,    this, isParm);
        DDB.Double("Qm",    "",     DC_Qm ,   "kg/s",  xidProdQm0+i,        this, 0);
        DDB.Double("Loss",  "",     DC_Qm ,   "kg/s",  xidProdLoss0+i,      this, 0);

        DDB.Text("");

        if (DoOld)
          {
          DDB.BeginElement(this, i);
          //DDB.TagComment(Nd_Rmt(PrLst[i])->FullObjTag());
          //DDB.BeginElement(this, Nd_Rmt(PrLst[i])->FullObjTag());
          DDB.Double("Pos",     "",   DC_L ,     "m",    xidProdPos0+i,       this, isParm);
          DDB.Double("Removal","",    DC_Frac , "%",     xidProdRemove0+i,    this, isParm);
          DDB.Double("Qm",    "",     DC_Qm ,   "kg/s",  xidProdQm0+i,        this, 0);
          DDB.Double("Loss",  "",     DC_Qm ,   "kg/s",  xidProdLoss0+i,      this, 0);
          }
        }
  DDB.EndArray();

  if (m_fShowProfile)
    DDB.Object(&m_Q.Profile(), this);

  //BuildDataDefnAreaIOs(DDB);

  DDB.EndStruct();
  };
Beispiel #20
0
/*#F:This provides access to the variables of the model.*/
void X_Tie::BuildDataDefn(DataDefnBlk & DDB)
  {
  DDB.BeginStruct(this);

  DDB.Text   ("");
  DDB.Double  ("Pressure",     "P",     DC_P,    "kPag",   xidPMean,       this, isResult|0);
  DDB.Visibility(NM_Dynamic|SM_All|HM_All);
  DDB.Double  ("PressureEst",  "PEst",  DC_P,    "kPag",   xidPEstMean,    this, isResult|0);
  DDB.Text   ("");
  BuildDataDefnElevation(DDB);

  DDB.Visibility(NM_Probal|SM_All|HM_All);
  DDB.Text   ("");

  long PBOpts= (m_VLE.Enabled() ? (PC_BasicPB & ~PC_SatP):PC_BasicPB);
  long DynOpts= (m_VLE.Enabled() ? (PC_BasicDyn & ~PC_SatP):PC_BasicDyn);
  m_PCtrl0.BuildDataDefn(DDB, this, NetProbalMethod(), PBOpts, DynOpts);//PC_Atmos|PC_Reqd);
  DDB.Visibility();

  if (NetDynamicMethod())
    {
    DDB.Text("");
    DDB.CheckBoxBtn("NetworkIsolator",  "",  DC_, "", xidNetworkIsolator,   this, isParmStopped|SetOnChange|AffectsStruct);
    }

  if (!m_NetworkIsolator)
    {
    m_BlkEval.Add_OnOff(DDB);  
    if (PrjFileVerNo()<97 && (DDB.DoingPutData() && DDB.ForFileSnpScn() || 0))
      {                      
      DDB.Text("");
      m_RB.Add_OnOff(DDB);
      m_EHX.Add_OnOff(DDB);
      }

    DDB.Visibility(SM_Buffered|HM_All);
    m_Leak.Add_OnOff(DDB,0,100);
    DDB.Visibility();
    GSM.Add_OnOff(DDB);
    DDB.CheckBox("ShowQFeed",             "",  DC_, "", &m_bShowQFeed,         this, isParm|SetOnChange);
    DDB.CheckBox("ShowQProd",             "",  DC_, "", &m_bShowQProd,         this, isParm|SetOnChange);
    }

#if XREFTEST
  DDB.CheckBox("TagIOTest",             "",  DC_, "", &m_bTestTagIO,         this, isParm|SetOnChange);
#endif

  DDB.Text("");
  BuildDataDefnShowIOs(DDB);
  BuildDataDefnIOOpts(DDB);

  if (m_NetworkIsolator)
    {
    DDB.Visibility();
    DDB.Object(m_Accumulator, this, NULL, NULL, DDB_RqdPage);
    if (m_bShowQFeed)
      DDB.Object(&m_QFeed, this, NULL, NULL, DDB_RqdPage);
    m_QProd(); // ensure exists
    if (m_QProd.Exists())
      {
      DDB.Visibility(NSHM_All, m_bShowQProd);
      DDB.Object(&m_QProd, this, NULL, NULL, DDB_RqdPage);
      DDB.Visibility();
      }
    }
  else //if (1)//NetProbalMethod())
    {
    DDB.Text("");
    m_BlkEval.BuildDataDefn(DDB);
    GSM.BuildDataDefn(DDB);
    m_QFeed(); // ensure exists
    if (m_QFeed.Exists())
      {
      DDB.Visibility(NSHM_All, m_bShowQFeed);
      DDB.Object(&m_QFeed, this, NULL, NULL, DDB_RqdPage);
      DDB.Visibility();
      }
    m_QProd(); // ensure exists
    if (m_QProd.Exists())
      {
      DDB.Visibility(NSHM_All, m_bShowQProd);
      DDB.Object(&m_QProd, this, NULL, NULL, DDB_RqdPage);
      DDB.Visibility();
      }
    }


  //BuildDataDefnAreaIOs(DDB);

  DDB.EndStruct();
  };
Beispiel #21
0
void Sys13::BuildDataDefn(DataDefnBlk & DDB)
  {
  DDB.BeginStruct(this);

  DDB.Page("Page 1");
  DDB.Bool      ("PKA1301A.Auto",    "",      DC_,      "",       &bPKA1301A     ,this  ,isParm);
  DDB.Bool      ("PKA1301B.Auto",    "",      DC_,      "",       &bPKA1301B     ,this  ,isParm);
  DDB.Bool      ("UHA1301A.Auto",    "",      DC_,      "",       &bUHA1301A     ,this  ,isParm);
  DDB.Bool      ("UHA1301B.Auto",    "",      DC_,      "",       &bUHA1301B     ,this  ,isParm);
  DDB.Text(" ");
  DDB.Double    ("VLVin_Posn",       "",      DC_Frac,  "%",      &VLVin_Posn    ,this  ,isParm);
  DDB.Text(" ");
  DDB.Double    ("VGA1301.LvlSet",   "",      DC_Frac,  "%",      &VGA1301_LvlSet,this  ,isParm);
  DDB.Double    ("VGA1301.Lvl",      "",      DC_Frac,  "%",      &VGA1301_Lvl   ,this  ,0);
  DDB.Double    ("VGA1301.P",        "",      DC_P,     "kPa",    &VGA1301_P     ,this  ,0);
  DDB.Double    ("VGA1301.T",        "",      DC_T,     "C",      &VGA1301_T     ,this  ,0);
  DDB.Text(" ");
  DDB.Double    ("HBA1301.LvlSet",   "",      DC_Frac,  "%",      &HBA1301_LvlSet,this  ,isParm);
  DDB.Double    ("HBA1301.Lvl",      "",      DC_Frac,  "%",      &HBA1301_Lvl   ,this  ,0);
  DDB.Double    ("HBA1301.P",        "",      DC_P,     "kPa",    &HBA1301_P     ,this  ,0);
  DDB.Double    ("HBA1301.T",        "",      DC_T,     "C",      &HBA1301_T     ,this  ,0);
  DDB.Text(" ");
  DDB.Double    ("VBA1301.Lvl",      "",      DC_Frac,  "%",      &VBA1301_Lvl   ,this  ,0);
  DDB.Double    ("VBA1301.T",        "",      DC_T,     "C",      &VBA1301_T     ,this  ,0);
  DDB.Text(" ");
  //DDB.Double    ("VB1001.LvlSet",    "",      DC_Frac,  "%",      &VB1001_LvlSet ,this  ,isParm);
  //DDB.Double    ("VB1001.Lvl",       "",      DC_Frac,  "%",      &VB1001_Lvl    ,this  ,0);
  //DDB.Double    ("FEA13050.Qm",      "",      DC_Qm,    "kg/s",   &FEA13050_Qm   ,this  ,0);
  DDB.Text(" ");
  DDB.Double    ("QmBoil",           "",      DC_Qm,    "kg/s",   &QmBoil        ,this  ,isParm);
  DDB.Double    ("QmCirc",           "",      DC_Qm,    "kg/s",   &QmCirc        ,this  ,isParm);
  DDB.Double    ("QmXfer",           "",      DC_Qm,    "kg/s",   &QmXfer        ,this  ,isParm);
  DDB.Double    ("QmFill",           "",      DC_Qm,    "kg/s",   &QmFill        ,this  ,isParm);
  DDB.Double    ("QmSetl",           "",      DC_Qm,    "kg/s",   &QmSetl        ,this  ,isParm);
  DDB.Double    ("QmRich",           "",      DC_Qm,    "kg/s",   &QmRich        ,this  ,0);
  DDB.Double    ("QmLean",           "",      DC_Qm,    "kg/s",   &QmLean        ,this  ,0);
  DDB.Text(" ");
  DDB.Double    ("Q1m",              "",      DC_Qm,    "kg/s",   &Q1m           ,this  ,0);
  DDB.Double    ("Q2m",              "",      DC_Qm,    "kg/s",   &Q2m           ,this  ,0);
  DDB.Double    ("Q3m",              "",      DC_Qm,    "kg/s",   &Q3m           ,this  ,0);
  DDB.Double    ("Q4m",              "",      DC_Qm,    "kg/s",   &Q4m           ,this  ,0);
  DDB.Double    ("Q5m",              "",      DC_Qm,    "kg/s",   &Q5m           ,this  ,0);
  DDB.Double    ("Q6m",              "",      DC_Qm,    "kg/s",   &Q6m           ,this  ,0);
  DDB.Double    ("Q7m",              "",      DC_Qm,    "kg/s",   &Q7m           ,this  ,0);
  DDB.Text(" ");
  DDB.Page("Page 2");
  DDB.Bool      ("LC13111.Auto",     "",      DC_,      "",       &bLC13111     ,this   ,isParm);
  DDB.Bool      ("LC13114.Auto",     "",      DC_,      "",       &bLC13114     ,this   ,isParm);
  DDB.Bool      ("LC13117.Auto",     "",      DC_,      "",       &bLC13117     ,this   ,isParm);
  DDB.Bool      ("LC13120.Auto",     "",      DC_,      "",       &bLC13120     ,this   ,isParm);
  DDB.Bool      ("PK1302A.Auto",     "",      DC_,      "",       &bPK1302A     ,this   ,isParm);
  DDB.Bool      ("PK1302B.Auto",     "",      DC_,      "",       &bPK1302B     ,this   ,isParm);
  DDB.Text(" ");
  DDB.Text(" ");
  DDB.Double    ("VH1301.Lvl",       "",      DC_Frac,  "%",      &VH1301_Lvl   ,this   ,0);
  DDB.Double    ("VH1301.T",         "",      DC_T,     "C",      &VH1301_T     ,this   ,0);
  DDB.Double    ("VH1302.Lvl",       "",      DC_Frac,  "%",      &VH1302_Lvl   ,this   ,0);
  DDB.Double    ("VH1302.T",         "",      DC_T,     "C",      &VH1302_T     ,this   ,0);
  DDB.Text(" ");
  DDB.Double    ("Q8m",              "",      DC_Qm,    "kg/s",   &Q8m          ,this   ,0);
  DDB.Double    ("Q9m",              "",      DC_Qm,    "kg/s",   &Q9m          ,this   ,0);
  DDB.Double    ("Qam",              "",      DC_Qm,    "kg/s",   &Qam          ,this   ,0);
  DDB.Double    ("Qbm",              "",      DC_Qm,    "kg/s",   &Qbm          ,this   ,0);
  DDB.Double    ("Qcm",              "",      DC_Qm,    "kg/s",   &Qcm          ,this   ,0);
  DDB.Text(" ");

//  if (PrjFileVerNo()<24)
//    {
    VGA1301.BuildDataDefn(DDB);
    HBA1301.BuildDataDefn(DDB);
    VBA1301.BuildDataDefn(DDB);
    VH1301.BuildDataDefn(DDB);
    VH1302.BuildDataDefn(DDB);
    TEGStore.BuildDataDefn(DDB);
//    }
//  else
//    {
//    DDB.Object(&VGA1301 , this, NULL, NULL, DDB_OptPage);
//    DDB.Object(&HBA1301 , this, NULL, NULL, DDB_OptPage);
//    DDB.Object(&VBA1301 , this, NULL, NULL, DDB_OptPage);
//    DDB.Object(&VH1301  , this, NULL, NULL, DDB_OptPage);
//    DDB.Object(&VH1302  , this, NULL, NULL, DDB_OptPage);
//    DDB.Object(&TEGStore, this, NULL, NULL, DDB_OptPage);
//    }

  DDB.EndStruct();
  };
Beispiel #22
0
/*#F:This provides access to the variables of the model and calls the
BuildDataDefn for objects Tled by the model.*/
void Flot::BuildDataDefn(DataDefnBlk & DDB)
  {
  DDB.BeginStruct(this);

  DDB.Visibility();
  GSM.Add_OnOff(DDB);

  DDB.Visibility(DYNMODE);
	DDB.Text    ("");
  //DDB.Double  ("Datum_Rqd",      "Z_Rqd",         DC_L    , "m",     &Z_Rqd,      this, isParm|NAN_OK);
  //DDB.Double  ("Datum",          "Z",             DC_L,    "m",      &Z,          this, 0);
  DDB.Double  ("Pressure",       "P",             DC_P,    "kPag",   xidPMean,    this, noFile|noSnap);
  DDB.Double  ("Temperature",    "T",             DC_T,    "C",      xidTemp,     this, noFile|noSnap);
  DDB.Double  ("Density",        "Rho",           DC_Rho,  "kg/m^3", xidRho,      this, noFile|noSnap);
  DDB.Double  ("Level",          "Lvl",           DC_Frac, "%",      xidLevel,    this, noFile|noSnap);
  DDB.Double  ("Mass_Accum",     "QmAcc",         DC_Qm,  "kg/s",    &QmAcc,      this, noFile|noSnap);
  DDB.Double  ("Vol_Accum",      "QvAcc",         DC_Qv,  "L/s",     &QvAcc,      this, noFile|noSnap);
  DDB.Visibility();

  DDB.Text    ("");
  static DDBValueLst DDB1[]={
    {(int)True,  "SizeRecovery"},
    {(int)False, "NoSizeRecovery" },
    {0}};
  DDB.Bool    ("RecoveryMethod", "Method",        DC_,     "",       &RM,         this, isParm, DDB1);
	DDB.Long    ("Float",          "Flot?",         DC_,     "",       &iFlot,      this, isParm, SDB.DDBSolSpList());
  if (!RM)
		{
    DDB.Double("Recovery",       "Recovery",      DC_Frac, "%",      &Eff,        this, isParm);
		DDB.Double("Grade",          "Grade",         DC_Frac, "%",      &Grd,        this, isParm);

		DDB.Text    ("");
		static DDBValueLst DDB0[]={
			{(int)True,  "Yes"},
			{(int)False, "No" },
			{0}};
		DDB.Bool  ("SecondFloat?",   "SecFloat?",     DC_,     "",       &SecFlot,    this, isParm, DDB0);
		if (SecFlot)
			{
			DDB.Long  ("SecondFloat",  "SecFlot",       DC_,     "",       &iSec,       this, isParm, SDB.DDBSolSpList());
			DDB.Double("SecondGrade",  "SecGrade",      DC_Frac, "%",      &Grade2,     this, isParm);
			}
		}
  if (RM)
		{
    DDB.Double("TotalRec",       "TotalRec",      DC_Frac, "%",      &TotRecover, this, 0);
		DDB.Double("Grade",          "Grade",         DC_Frac, "%",      &Grade,      this, 0);
		}
  DDB.Text("");

  
  DDB.Text    ("");
  //DDB.Double  ("SS_Lvl",         "",              DC_Frac, "%",      &SS_Lvl,     this, isParm);
  DDB.Double  ("WaterInConc",    "FlotWater",     DC_Frac, "%",      &Rec,        this, isParm);


  DDB.Visibility(DYNMODE);
  DDB.Byte    ("Collect",        "Coll?",         DC_,     "",       &iColl,      this, isParm, SDB.DDBSpList());
  DDB.Visibility();
  RB.Add_OnOff(DDB);
  BuildDataDefnShowIOs(DDB);

  if (RM)
    DDB.Object(&SizeRec, this, NULL, NULL, DDB_RqdPage);

  RB.BuildDataDefn(DDB, NULL, NULL, DDB_RqdPage, 0);
  
  GSM.BuildDataDefn(DDB);

  if (SolveMode()==DYNMODE)
    {
    DDB.Object(&Contents, this, NULL, NULL, DDB_RqdPage);
    DDB.Object(&PresetImg, this, NULL, NULL, DDB_RqdPage);
    }

  DDB.Visibility(DYNMODE);
  DDB.Object(&FlotFn, this, NULL, NULL, DDB_RqdPage);
  DDB.Visibility();

  DDB.EndStruct();
 
  };
Beispiel #23
0
void CCWasher::BuildDataDefn(DataDefnBlk & DDB)
  {
  DDB.BeginStruct(this);

  BuildDataDefnElevation(DDB);

  DDB.Visibility();
	DDB.Text    ("");
  static DDBValueLst DDB0[]={
    {(int)MEM_Scandrett, "ScandrettEff"},
    {(int)MEM_Mixing, "MixingEff", MDD_Hidden }, //this has bugs, keep hidden!
    {0}};
  static DDBValueLst DDB1[]={
    {(int)True,  "g/L_Solids"},
    {(int)False, "%_Solids" },
    {0}};
  if (PrjFileVerNo()<49)
    {
    DDB.Text    ("Requirements");
    DDB.CheckBox("On",                  "",             DC_,     "",    &fOn,                this, isParm);
  	DDB.Byte    ("Eff_Specie",          "RqdSpecie",    DC_,     "",    &iScanEffSpecie,     this, isParm, SDB.DDBLiqSpList());
    DDB.Double  ("Scandrett_wash_eff",  "ScandrettEff", DC_Frac, "%",   &ScandrettEff,       this, isParm);
    DDB.Bool    ("U/FMethod",           "SolidSpec",    DC_,      "",   &SA,                 this, isParm, DDB1);
    if (SA)
      DDB.Double("Reqd_UFlowSolids",    "R_USol",       DC_Conc, "g/L", &RqdUFSolidsConc25,   this, isParm);
    else
      DDB.Double("U/F_Solids",          "U/FSolids",    DC_Frac, "%",   &RqdUFSolids,        this, isParm);
    DDB.Text    ("Results");
	  DDB.Double  ("UnderFlow_Solids",    "UFSolids",     DC_Frac, "%",   &UFSolids,		  	   this, isResult|0);
	  DDB.Double  ("UnderFlow_Specie",    "UFSpecie",     DC_Conc, "g/L", &UFCaustic,					 this, isResult|0);
	  DDB.Double  ("OverFlow_Specie",     "OFSpecie",     DC_Conc, "g/L", &OFCaustic,					 this, isResult|InitHidden);
    }
  else
    {
    DDB.Text    ("Requirements");
    DDB.CheckBox("On",                      "",                DC_,     "",       &fOn,                this, isParm);
    DDB.Byte    ("",                        "ScanEffSpecie",   DC_,     "",       &iScanEffSpecie,     this, isParm, SDB.DDBLiqSpList());
    DDB.Byte    ("Wash_Eff_Method",         "EffMethod",       DC_,      "",      &iEffMethod,         this, isParm, DDB0);
    DDB.Visibility(NSHM_All, iEffMethod==MEM_Mixing);
    DDB.Double  ("Mixing_Efficiency",       "MixingEff",       DC_Frac, "%",      &MixEff,             this, isParm);
    DDB.Visibility(NSHM_All, iEffMethod==MEM_Scandrett);
    DDB.Double  ("Rqd_Scandrett_Wash_Eff",  "RqdScandrettEff", DC_Frac, "%",      &ScandrettEff,       this, isParm);
    DDB.Visibility();
    DDB.Bool    ("UnderFlow_Method",        "Method",          DC_,      "",      &SA,                 this, isParm, DDB1);
    DDB.Visibility(NSHM_All, SA);
    DDB.Double  ("Rqd_U/F_SolidsConc@25",   "RqdUFSolConc25",  DC_Conc, "g/L",    &RqdUFSolidsConc25,  this, isParm);
    DDB.Visibility(NSHM_All, !SA);
    DDB.Double  ("Rqd_UnderFlow_Solids",    "RqdUFSolids",     DC_Frac, "%",      &RqdUFSolids,        this, isParm);
    DDB.Visibility();
    DDB.Text    ("");
    DDB.Text    ("Results");
    DDB.Double  ("UnderFlow_Solids",        "UFSolids",        DC_Frac, "%",      &UFSolids,           this, isResult|0);
    //DDB.Double  ("OverFlow_Solids",         "OFSolids",        DC_Frac, "%",      &OFSolids,           this, isResult|InitHidden);
    DDB.Double  ("UnderFlow_SolidsConc@25", "UFSolConc25",     DC_Conc, "g/L",    &ActUFSolidsConc25,  this, isResult|InitHidden);
    //DDB.Double  ("OverFlow_SolidsConc@25",  "OFSolConc25",     DC_Conc, "g/L",    &ActOFSolidsConc25,  this, isResult|InitHidden);
    DDB.Double  ("Scandrett_Wash_Eff",      "ScandrettEff",    DC_Frac, "%",      &ActScandrettEff,    this, isResult);//|noFile|noSnap);
    DDB.Double  ("UnderFlow_Specie",        "UFSpecie",        DC_Conc, "g/L",    &UFCaustic,				   this, isResult|0);
    DDB.Double  ("OverFlow_Specie",         "OFSpecie",        DC_Conc, "g/L",    &OFCaustic,				   this, isResult|0);
    DDB.Double  ("ByPassGuess",             "",                DC_,     "",       &ByPassGuess,				 this, noView|isParm|NAN_OK);
    DDB.Double  ("WashByPassGuess",         "",                DC_,     "",       &WashByPassGuess,		 this, noView|isParm|NAN_OK);
    }

  DDB.Text    ("");
  m_RB.Add_OnOff(DDB);
  m_EHX.Add_OnOff(DDB);

  DDB.Text    ("");
  BuildDataDefnShowIOs(DDB);

  m_RB.BuildDataDefn(DDB);
  m_EHX.BuildDataDefn(DDB);

  DDB.Visibility();

  if (SolveSurgeMethod())
    {
    DDB.Object(&Contents, this, NULL, NULL, DDB_RqdPage);
    DDB.Object(&m_PresetImg, this, NULL, NULL, DDB_RqdPage);
    }

  DDB.EndStruct();
  }
Beispiel #24
0
void FilterPress::BuildDataDefn(DataDefnBlk & DDB)
  {
  DDB.BeginStruct(this);

  DDB.Visibility(SM_Buffered|HM_All);
  BuildDataDefnElevation(DDB);
  DDB.Visibility();

  DDB.Text    ("");
  static DDBValueLst DDB0[]={
    {FSM_SolToFiltFrac, "SolidsToFiltrateFraction"},
    {FSM_FiltSolConc, "FiltrateConcentration"},
    {0}};
  DDB.Text    ("Requirements");
  DDB.Byte    ("Filtrate_Method",         "Method",          DC_,     "",       &iRqdFiltMethod,     this, isParm|AffectsStruct, DDB0);
  DDB.Visibility(NSHM_All, (iRqdFiltMethod == FSM_SolToFiltFrac));
  if (PrjFileVerNo()<48)
    DDB.Double  ("",                        "RqdFiltSolids",   DC_Frac, "%",      &RqdSolidsToFiltrate,this, isParm);
  else
    DDB.Double  ("Rqd_Solids_To_Filtrate",  "RqdSolToFilt",    DC_Frac, "%",      &RqdSolidsToFiltrate,this, isParm);//SolidLoss
  DDB.Visibility(NSHM_All, (iRqdFiltMethod == FSM_FiltSolConc));
  DDB.Double  ("Rqd_FiltrateSolidsConc25","RqdFiltSolConc25",DC_Conc, "g/L",    &RqdFiltSolConc,     this, isParm);
  DDB.Visibility();
  DDB.Double  ("Solids_To_FiltrateUsed",  "SolToFiltUsed",   DC_Frac, "%",      &SolidsToFiltUsed,   this, isResult|InitHidden);//|noView);
  DDB.Double  ("Rqd_Cake_Moisture",       "RqdCakeMoist",    DC_Frac, "%",      &RqdCakeMoist,       this, isParm);
  DDB.Double  ("Rqd_Wash_Efficiency",     "RqdWashEff",      DC_Frac, "%",      &RqdWashEff,         this, isParm);
  DDB.Text    ("Results");
  DDB.Double  ("Wash_Efficiency",         "WashEff",         DC_Frac, "%",      &ActWashEff,         this, isResult);//|noFile|noSnap);
  DDB.Double  ("Cake_Solids",             "CakeSolids",      DC_Frac, "%",      &ActCakeSolids,      this, isResult);//|noFile|noSnap);
  DDB.Double  ("Filtrate_Solids",         "FiltSolids",      DC_Frac, "%",      &ActFiltSolids,      this, isResult);//|noFile|noSnap);
  DDB.Double  ("CakeSolidsConc@25",       "CakeSolConc25",   DC_Conc, "g/L",    &ActCakeSolConc,     this, isResult);//|noFile|noSnap);
  DDB.Double  ("FiltrateSolidsConc@25",   "FiltSolConc25",   DC_Conc, "g/L",    &ActFiltSolConc,     this, isResult);//|noFile|noSnap);
  //DDB.Double  ("FiltrateSolidsConc@T",    "FiltSolConc@T",   DC_Conc, "g/L",    &ActFiltSolConcT,    this, isResult);//|noFile|noSnap|InitHidden);
  //DDB.Byte    ("",                        "ScanEffSpecie",   DC_,     "",       &iScanEffSpecie,     this, isParm, SDB.DDBLiqSpList());
  //DDB.Double  ("Scandrett_Wash_Eff",      "ScandrettEff",    DC_Frac, "%",      &ActScandrettEff,    this, isResult);//|noFile|noSnap);
  DDB.Byte    ("",                        "WashComp",        DC_,     "",       &iWashEffSpecie,     this, isParm, SDB.DDBLiqSpList());
  DDB.Double  ("",                        "CompWashEff",     DC_Frac, "%",      &dSpWashEff,         this, isResult);//|noFile|noSnap);

  DDB.Text    (" ");
  DDB.CheckBox("TrackStatus", "",           DC_,          "",         &bTrackStatus,     this, isParm);

  DDB.Visibility(SM_Buffered|HM_All);
  DDB.Text    (" ");
  DDB.CheckBoxBtn("",   "Filtrate2Washing",    DC_,          "",      &fFilt2Washings,   this, isParm, DDBYesNo);
  DDB.CheckBoxBtn("",   "CakeDisch",           DC_,          "",      &fDischarge,       this, isParm, DDBYesNo);
  DDB.Text    (" ");
  DDB.Double  ("",   "Press_Drop",          DC_DP,        "kPa",      &FilterDP,         this, isResult|0);
  DDB.Double  ("",   "MembraneRes",         DC_MembDP,    "kPa.s/m",  &MembDP,           this, isParm);
  DDB.Double  ("",   "Viscosity",           DC_Visc,      "cP",       &LiqVisc,          this, isParm);
  DDB.Double  ("",   "SpecCakeResistance",  DC_SpCakeRes, "m/kg",     &SpCakeRes,        this, isParm);
  DDB.Double  ("",   "Area",                DC_Area,      "m^2",      &FiltArea,         this, isParm);

  if (SolveSurgeMethod())
    DDB.Object(&m_Cake, this, NULL, NULL, DDB_RqdPage);
  DDB.Visibility();

  DDB.Text    ("");
  BuildDataDefnShowIOs(DDB);

  //BuildDataDefnAreaIOs(DDB);

  DDB.EndStruct();
  }
Beispiel #25
0
/*This provides access to the variables of the model and calls the
BuildDataDefn for objects used by the model.*/
void DuctUnit::BuildDataDefn(DataDefnBlk & DDB)
  {
  DDB.BeginStruct(this);

  DDB.Visibility();

  BuildDataDefnElevation(DDB);
  DDB.Double  ("Pressure",     "P",     DC_P,    "kPag",   xidPMean,       this, noFile|noSnap);
  DDB.Double  ("Temperature",  "T",     DC_T,    "C",      xidTemp,        this, noFile|noSnap);
  DDB.Double  ("Density",      "Rho",   DC_Rho,  "kg/m^3", xidRho,         this, noFile|noSnap);
  DDB.Double  ("Level",        "Lvl",   DC_Frac, "%",      xidLevel,       this, noFile|noSnap);
  DDB.Double  ("Mass_Accum",   "QmAcc", DC_Qm,  "kg/s",    &m_QmAcc,       this, noFile|noSnap);
  DDB.Double  ("Vol_Accum",    "QvAcc", DC_Qv,  "L/s",     &m_QvAcc,       this, noFile|noSnap);
  
  //DDB.Text    ("");
  //DDB.Visibility(NM_Probal|SM_All|HM_All|SSMODE);
  //DDB.Double  ("FlashSplit",   "",      DC_Frac, "%",      &FlashSplit,    this, 0);
  //DDB.Double  ("SS_Lvl",       "",      DC_Frac, "%",      &SS_Lvl,        this, isParm);
  DDB.Visibility();
  DDB.Text    ("");
  DDB.CheckBoxBtn("Closed",        "", DC_     , "",      xidClosed,      this, 
    isParmStopped|(!gs_Environment.HasGas() ? noView|noFile|noSnap|noScenario:0) , DDBYesNo);
  DDB.CheckBoxBtn("NetPressDamping", "", DC_     , "",      xidNetPressDamp,       this, 
    isParmStopped|(!gs_Environment.HasGas() || !Contents.Closed() ? noView|noFile|noSnap|noScenario:0) , DDBYesNo);

  GSM.Add_OnOff(DDB);
  m_VLE.Add_OnOff(DDB);
  m_HX.Add_OnOff(DDB);
  m_RB.Add_OnOff(DDB);
  BuildDataDefnElevation(DDB);
  DDB.Text("");
  DDB.Visibility();
  DDB.Double  ("RqdTOut",      "", DC_T,    "C",      &dRqdTOut,     this, isParm|SetOnChange|NAN_OK);
  DDB.Double  ("RqddT",        "", DC_dT,   "C",      &dRqddT,       this, isParm|SetOnChange|NAN_OK);
  DDB.Visibility(NM_Dynamic|SM_All|HM_All, Valid(dRqddT));
  DDB.Double  ("RqdTOutMin",   "", DC_T,    "C",      &dRqdTOutMin,  this, isParm);
  DDB.Double  ("RqdTOutMax",   "", DC_T,    "C",      &dRqdTOutMax,  this, isParm);
  DDB.Visibility(NM_Dynamic|SM_All|HM_All, Valid(dRqddT)||Valid(dRqdTOut));
  DDB.Double  ("TInLowest",    "", DC_T,    "C",      &dTInLowest,   this, isParm);
  DDB.Double  ("TInHighest",   "", DC_T,    "C",      &dTInHighest,  this, isParm);

  DDB.Visibility(NM_Dynamic|SM_All|HM_All, !Valid(dRqddT)&&!Valid(dRqdTOut));
  DDB.Double  ("AmbientTemp",   "", DC_T,    "C",       &dAmbientTemp,  this, isParm);
  DDB.Double  ("HeatLoss",      "", DC_HCapF,"kJ/dC/s", &dHeatXferCoeff,  this, isParm);
  DDB.Double  ("StructMass",    "", DC_M,    "kg",      &dStructMass,   this, isParm);
  DDB.Double  ("StructTemp",    "", DC_T,    "C",       &dStructTemp,   this, isParm);
  DDB.Double  ("StructCp",      "", DC_CpMs,   "kJ/kg.C", &dStructCp,     this, isParm);
  DDB.Visibility();
  DDB.Double  ("RqdH2OVapFrac", "", DC_Frac, "%",      &dRqdH2OVapFrac, this, isParm);
  DDB.Double  ("HeatLossRate",  "", DC_Pwr,  "kW",     &dHeatLossRate,  this, 0);

  DDB.Double  ("QmSink",     "", DC_Qm,     "kg/s",   &dQmSink,     this, 0);
  DDB.Double  ("QmSinkMeas", "", DC_Qm,     "kg/s",   &dQmSinkMeas, this, NAN_OK);
  DDB.Double  ("QmSinkTau",  "", DC_Time,   "s",      &dQmSinkTau,  this, isParm);

//  QmSink=0.0;
//  QmSinkTau=3.0;

  DDB.Text("");

  BuildDataDefnIOOptions(DDB);
  DDB.Text("");

  DDB.Visibility();
  BuildDataDefnShowIOs(DDB);

  m_HX.BuildDataDefn(DDB, NULL, NULL, DDB_RqdPage, 0);
  m_RB.BuildDataDefn(DDB);
  m_VLE.BuildDataDefn(DDB);
  
  GSM.BuildDataDefn(DDB);

  if (NetDynamicMethod())
    {
    DDB.Object(&Contents, this, NULL, NULL, DDB_RqdPage);
    DDB.Object(&m_PresetImg, this, NULL, NULL, DDB_RqdPage);
    }

  //if (Contents.SpillExists())
  //  DDB.Object(&Contents.OverFlow(), this, NULL, NULL, DDB_RqdPage);
  //DDB.Object(&OverFlow, this, NULL, DDB_RqdPage);
  DDB.EndStruct();
 
  };