Ejemplo n.º 1
0
void CSurface3D::MRU_Move2Head(CSurface3DPanel * E)
  {
  #if dbgSurfaces
  if (dbg3DMRU())
    dbgpln("MRU_Move2Head :%-20s %08x %08x H:%08x T:%08x", Name(), E, E->m_pFrame, m_pMRUHead, m_pMRUTail);
  //m_MRUList.AddHead(E);
  #endif

  if (m_pMRUHead!=E)
    {
    MRU_Remove(E);
    if (m_pMRUHead)
      m_pMRUHead->m_pMRUNext=E;
    E->m_pMRUNext=NULL;
    E->m_pMRUPrev=m_pMRUHead;
    m_pMRUHead=E;
    if (m_pMRUTail==NULL)
      m_pMRUTail=E;
    m_nPanelCnt++;
    }
  #if dbgSurfaces
  if (dbg3DMRU())
    dbgpln("               %-20s                   H:%08x T:%08x", "", m_pMRUHead, m_pMRUTail);
  #endif
  };
Ejemplo n.º 2
0
void CNetBlk::ShowSubNets(int N, int dbgShowConns)
  {
  int N1=(N>=0 ? N : 0);
  int N2=(N>=0 ? N+1 : NSubNets);

  for (int Sub = N1; Sub < N2; Sub++)
    SubNet[Sub]->ShowSubNet(dbgShowConns);

  Strng CS;
  int dun=0;
  JoinIter J(m_Joins);
  for (CJoinRec * p = J.First(); (p); p = J.Next())
    {
    if (!p->m_pSubNet)
      {
      if (!dun)
        {
        dbgpln("--------------------------------");
        dbgpln("SubN PQIx - UnAssigned");              
        if (p->m_pSubNet)
          dbgpln("Sub ??? Unknown");
        }
      dbgpln("%4i %-12s %s(%i)", p->m_pSubNet ? p->m_pSubNet->m_SubNetNo : -1, p->Nd()->TypeString(CS), p->Nd()->FullObjTag(),p->iJoinArrayInx);
      dun=1;
      }
    } 
  }
Ejemplo n.º 3
0
void CSubNetBlk::ShowSubNet(int dbgShowConns)
  {
  dbgpln("--------------------------------");
  //dbgp("%i.%i - %s - ",pNet->NetNo, SubNetNo, SolnString(SolutionType()));
  dbgp("%i.%i - ",pNet->NetNo, m_SubNetNo);
  if (m_fLonely) dbgp("Lonely ");
  if (m_fUnDefined) dbgp("Undefined ");
  if (m_fIsolatedNet) dbgp("IsolatedNet ");
  if (m_fIsolatedNode) dbgp("IsolatedNode ");
  if (m_fFixed) dbgp("Fixed ");
  if (m_fNetWrk) dbgp("NetWrk ");
  dbgpln("");

  GrpFlwIter G(m_Grps);
  for (CGrpFlwBlk * g=G.First(); g; g=G.Next())
    ShowSubNetsL(g, dbgShowConns);

  dbgpln("...");
  JoinIter T(m_Ties);
  for (CJoinRec * p = T.First(); (p); p = T.Next())
    ShowSubNetsT(p, dbgShowConns);

//  dbgpln("...");
//  JoinIter J(Joins);
//  for (CJoinRec * j = J.First(); (j); j = J.Next())
//    ShowSubNetsJ(j, dbgShowConns);

  if (dbgShowConns) 
    {
    }
  }
Ejemplo n.º 4
0
void CSurface2D::Dump()
  {
  dbgpln("Surface:%s", Name());
  dbgpln("Usage  : %10.5f%%  [%i of %i]", Usage()*100, m_nDivsInited, m_nDivs);
  dbgpln("Worst  : %10.5f%%  @%i = %g", 100*m_WorstErrorV, m_WorstErrorX, Map2X(m_WorstErrorX, 0.5));

  dbgpln("I:\tX\tY\tDiff");
  for (int i=0; i<=m_nDivs; i++)
    {
    CSurface2DElement &E=m_Elements[Min((long)i, m_nDivs-1L)];
    if (E.m_Inited)
      {
      for(int j=0; j<2; j++)
        {
        double di=j*0.5;
        double x1=Map2X(i,di);
        double y1=m_fnYO(E(di));
        dbgpln("%5.1f:\t%15.8f\t%15.8f\t%15.8f\t%8.5e", 
               i+di,x1,y1,y1-m_fnY(x1),100*FracErr(y1, m_fnY(x1)));
        }
      }
    else
      {
      //for(int j=0; j<2; j++)
      //  {
      //  double di=j*0.5;
      //  dbgpln("%5.1f:\t%15.8f\t\t\t", i+di,Map2X(i,di));
      //  }
      }
    }
  };
Ejemplo n.º 5
0
void CSubNetBlk::ShowSubNetsL(CGrpFlwBlk * g, int dbgShowConns)
  {
  dbgp("%s%s ", g->m_iFlwPh_Act&FPh_Gasses ? "V":" ", g->m_iFlwPh_Act&FPh_Liquid? "L":" ");
  dbgp("%02i ", g->m_pSubNet->m_SubNetNo);
  dbgp(" %s", JoinTypeStr(g->m_LnkInx.Typ));

  int Fxd=g->m_Src.m_pFBJn->GetFixed();
  dbgp(" %s[%s]%s", (Fxd?"{":" "), g->m_Src.m_pNd->FullObjTag(),(Fxd?"}":" "));
  JoinIter L(g->m_Lnks);
  for (CJoinRec * p = L.First(); p; p = L.Next())
    {
    switch(p->Typ)
      {
      case JTyp_Link:
      case JTyp_Edge:
      case JTyp_FxdLnk:
      case JTyp_Lone:
        {
        dbgp("->");
        Fxd=0;
        for (int c=0; c<p->NConns(); c++)
          if (p->IOFB(c,0)->GetFixed())
            Fxd=1;
        dbgp("%s%s%s(%i)%s",(Fxd?"{":" "), SgnStr(p->Dirn), p->Nd()->FullObjTag(),p->iJoinArrayInx,(Fxd?"}":" "));
        dbgp("%02i ", p->m_pSubNet->m_SubNetNo);
        }
        break;
      default:
        dbgpln(" %s%s(%i)", SgnStr(p->Dirn), p->Nd()->FullObjTag(),p->iJoinArrayInx);
      }
    }
  Fxd=g->m_Dst.m_pFBJn->GetFixed();
  dbgp("->%s[%s]%s", (Fxd?"{":" "), g->m_Dst.m_pNd->FullObjTag(),(Fxd?"}":" "));
  dbgpln("");
  }
Ejemplo n.º 6
0
CSurface3DPanel *CSurface3D::MRU_RemoveTail()
  {
  CSurface3DPanel *T=m_pMRUTail;
  #if dbgSurfaces
  if (dbg3DMRU())
    dbgpln("MRU_RemoveTail:%-20s %08x %08x H:%08x T:%08x", Name(), T, T->m_pFrame, m_pMRUHead, m_pMRUTail);
  #endif
  if (m_pMRUTail)
    {
    m_nPanelCnt--;
    if (m_pMRUTail==m_pMRUHead)
      {
      m_pMRUHead=NULL;
      m_pMRUTail=NULL;
      }
    else
      {
      if (m_pMRUTail->m_pMRUNext)
        m_pMRUTail->m_pMRUNext->m_pMRUPrev=NULL;
      m_pMRUTail=m_pMRUTail->m_pMRUNext;
      }
    }
  #if dbgSurfaces
  if (dbg3DMRU())
    dbgpln("               %-20s                   H:%08x T:%08x", "", m_pMRUHead, m_pMRUTail);
  #endif
  return T;
  };
Ejemplo n.º 7
0
flag CODESolver::StepSizeOK_2()
  {
  if (m_ErrMax <= 1.0)
    {
    if (m_ErrMax < GrowLimit)
      {
//      rIC.m_TimeIncNext = rIC.m_TimeInc*Grow;
//      rIC.m_TimeIncNext = rIC.m_TimeInc*Grow *Min(1.0+0.25*log(GrowLimit/GTZ(ErrMax)), 2.0);
//      rIC.m_TimeIncNext = rIC.m_TimeInc*Grow*Min(1.0+0.10*log(GrowLimit/GTZ(ErrMax)), 2.0);
      rIC.m_TimeIncNext = rIC.m_TimeInc*(1.0+0.10*log(GrowLimit/GTZ(m_ErrMax)));
      rIC.m_TimeIncNext = Min(rIC.m_TimeIncNext, Min(rIC.m_TimeInc*2.0, rIC.m_TimeIncMx));
      #if dbgODESolve
      if (dbgStepsNext())
        dbgpln("NextStep:Grow   Err:%11.5g dT:%8.5f > %8.5f",m_ErrMax,rIC.m_TimeInc,rIC.m_TimeIncNext);
      #endif
      }
    else if (m_ErrMax > OKShrinkLimit)
      {
//      rIC.m_TimeIncNext = rIC.m_TimeInc*OKShrink;
      rIC.m_TimeIncNext = rIC.m_TimeInc*(1.0+(1.0-OKShrink)*(m_ErrMax - OKShrinkLimit)/(1.0 - OKShrinkLimit));
      #if dbgODESolve
      if (dbgStepsNext())
        dbgpln("NextStep:Shrink Err:%11.5g dT:%8.5f < %8.5f",m_ErrMax,rIC.m_TimeInc,rIC.m_TimeIncNext);
      #endif
      }
    else
      {
      rIC.m_TimeIncNext = rIC.m_TimeInc;
      #if dbgODESolve
      if (dbgStepsNext())
        dbgpln("NextStep:Hold   Err:%11.5g dT:           %8.5f",m_ErrMax,rIC.m_TimeInc);
      #endif
      }

    CODEDataBlock ODB(this);
    ODB.Set(eStateAdvance, -1, CODEDataBlock::Correct2, pODEBase);

    return 1;
    }

  double ndt = rIC.m_TimeInc*BADShrink /(1.0+Min(0.25*log(m_ErrMax), 1.0));
  #if dbgODESolve
  if (dbgStepsNext())
    dbgpln("NextStep:Redo   Err:%11.5g dT:%8.5f @ %8.5f",m_ErrMax,rIC.m_TimeInc,ndt);
  #endif
  rIC.m_TimeIncRestart = ndt;
  fStepSizeTooSmall = (rIC.m_TimeInc < rIC.m_TimeIncMn);//MINSTEPSIZE);
  return 0;
  }
Ejemplo n.º 8
0
void CSlotConnect::Dump(LPCSTR Hd)
  {
  dbgp("%sConn %s %s %s %10s %4i %10s ",//%4i Cd:%4i %08x %08x %s", 
    Hd, m_bValid?"OK":"  ", m_bIsGet?"Get":"   ", m_bIsSet?"Set":"   ", SrcDstString(m_eSrc), m_lSrcIndex, SrcDstString(m_eDst));

  if (m_eDst==eCSD_CdBlk)
    dbgpln("Cd:%4i %08x %08x %s", m_lCdBlk, m_pCdBlk, m_pCdBlkVar, m_sTag);
  else
    dbgpln("%4i%22s%s", m_lDstIndex, "", m_sTag);

  for (int i=0; i<m_Delay.m_OnRise.GetCount(); i++)
    dbgpln("       Rise Delay  %8.2f @ %5i msecs", m_Delay.m_OnRise[i].m_Value.dblVal, m_Delay.m_OnRise[i].m_dwTime);
  for (int i=0; i<m_Delay.m_OnFall.GetCount(); i++)
    dbgpln("       Fall Delay  %8.2f @ %5i msecs", m_Delay.m_OnFall[i].m_Value.dblVal, m_Delay.m_OnFall[i].m_dwTime);
  }
Ejemplo n.º 9
0
void CSurface3DFrame::Initialise(CSurface3D * p3D, long Level,
                                double MinX, double MaxX, long NDivsX, 
                                double MinY, double MaxY, long NDivsY)
  {
  m_bInitDone=true;
  
  m_p3D=p3D;
  m_iLevel=Level;
  m_eDivision=C3D_DivNone;

  m_nDivsX=NDivsX;
  m_dXMin=MinX;
  m_dXMax=MaxX;
  m_dDivWidthX=1;
    
  m_nDivsY=NDivsY;
  m_dYMin=MinY;
  m_dYMax=MaxY;
  m_dDivWidthY=1;

  m_dDivWidthX=(m_dXMax-m_dXMin)/NDivsX; 
  m_dDivWidthY=(m_dYMax-m_dYMin)/NDivsY; 

  m_Frames=NULL;
  m_pPanel=NULL;
  #if dbgSurfaces
  if (dbgInitialise())
    dbgpln("I:%18.9f > %18.9f | %18.9f > %18.9f %s[Lvl:%2i] [Cnt:%6i Calls:%8i]", 
            MinX,MaxX,MinY,MaxY, (LPCTSTR)m_p3D->m_sName, m_iLevel, m_p3D->m_nFrameCnt, m_p3D->m_nCalls);
  #endif
  };
Ejemplo n.º 10
0
bool CSurface3DPanel::CheckFit(CSurface3DFrame *pFrame)
  {
  const double Pos[][2]=
    {
      {0.50, 0.33},
      {0.50, 0.67},
      {0.33, 0.50},
      {0.67, 0.50},
      {-1,0}
    };

  double err=0.0;
  for (int i=0; Pos[i][0]>=0.0; i++)
    {
    double Fx=Pos[i][0];
    double Fy=Pos[i][1];
    double X=pFrame->Map2X(Fx);
    double Y=pFrame->Map2Y(Fy);
    double FVal=ValueFxFy(Fx, Fy);
    double Val=pFrame->m_p3D->m_fnZ(X, Y);
    double e=FracErr(FVal, Val);
    err=Max(err, e);

    #if dbgSurfaces
    if (dbgInitialise())
      dbgpln("e:%18.9f %18.9f = %18.9f\n"
             "  %18.9f %18.9f = %18.9f [%18.9f]: %12.4e %12.4e", 
              X,Y,Val,Fx,Fy,FVal,FVal-Val,e, err);
    #endif
    }                                                                    
  return err<pFrame->m_p3D->m_FitTolerance;//1.0e-4;
  };
Ejemplo n.º 11
0
CSurface3DElement & CSurface3DElement::GetElement(long Ix, long Iy)
  {
  long i=Index(Ix, Iy);
  CSurface3DElement *E=m_Elements[i];
  if (E==NULL)
    { 
    m_r3D.m_nElementAllocs++;
    E=new CSurface3DElement(m_r3D, this, i, m_iLevel+1);
    m_Elements[i]=E;
    if (m_r3D.m_nMRULen>=m_r3D.m_nMRULenMax)
      {
      CSurface3DElement *pLast=m_r3D.MRU_RemoveTail();
      if (pLast)
        {
        pLast->m_pParent->m_Elements[pLast->m_lIndex]=NULL;
        delete pLast;
        }
      }
    else
      {
      m_r3D.m_nMRULen++;
      }
    if (m_r3D.m_nElementAllocs%ALLOCDBGCNT==0 || (GetTickCount()-m_r3D.m_dwLastTicks>60000))
      {
      m_r3D.m_dwLastTicks=GetTickCount();
      dbgpln("Surface:%20s has %7i elements %7i allocs %5i MRULen", m_r3D.Name(), m_r3D.m_nElementCnt, m_r3D.m_nElementAllocs, m_r3D.m_nMRULen);
      }
    }
  if (E->m_Elements==NULL)
    m_r3D.MRU_Move2Head(E);
  return *E;
  }
Ejemplo n.º 12
0
bool CSurface3DElement::Initialise(double MinX, double MaxX, long NDivsX, 
                                   double MinY, double MaxY, long NDivsY)
  {
  m_bInitDone=true;
  m_nDivsX=NDivsX;
  m_dMinimumX=MinX;
  m_dMaximumX=MaxX;
  m_dDivWidthX=1;
    
  m_nDivsY=NDivsY;
  m_dMinimumY=MinY;
  m_dMaximumY=MaxY;
  m_dDivWidthY=1;

  m_dDivWidthX=(m_dMaximumX-m_dMinimumX)/NDivsX; 
  m_dDivWidthY=(m_dMaximumY-m_dMinimumY)/NDivsY; 

  m_bFitDone=false;
  m_bFitOK=false;
  m_bLOK=false;
  m_bROK=false;
  m_bTOK=false;
  m_bBOK=false;

  #if dbgSurfaces
  if (dbgInitialise())
    dbgpln("I:%18.9f > %18.9f | %18.9f > %18.9f %s[Lvl:%2i] [Cnt:%6i Calls:%8i]", 
            MinX,MaxX,MinY,MaxY, (LPCTSTR)m_r3D.m_sName, m_iLevel, m_r3D.m_nElementCnt, m_r3D.m_nCalls);
  #endif

  RemoveElements();
  return true;
  };
Ejemplo n.º 13
0
void HydroCyclone::EvalJoinFlows(int JoinNo)
  {
  double QmVIn = 0.0, QmSIn = 0.0;
  for (int i=0; i<NoFlwIOs() && IOId_Self(i)==ioidFeed ; i++)
    if (IO_In(i))
      {
      pSpConduit p=IOConduit(i);
      QmVIn += p->QMass(som_Liq);
      QmSIn += p->QMass(som_Sol);
      }

dbgpln("Hydrocyclone to be sorted out Liquids not done");

  long Failed = 0;
  double Passing=0;
  int nIn1=IOWithId_Self(ioidFeed);
  if (nIn1 >= 0)
    {
    pSQSzDist1 pSz;
    pSz=SQSzDist1::Ptr(IOConduit(nIn1)->Model());
    Ore2Grit=pSz->GritsFraction(PartCrv, 0.0, ByePass2Grits);
    GritFlowRatio=(Ore2Grit*QmSIn)/GTZ(QmVIn + (1.0-Ore2Grit)*QmSIn);
    Joins[0].SetQm_QmRatio(Max(1.0e-6, GritFlowRatio));
    }
  };
Ejemplo n.º 14
0
void MRngChkMngr::Dump()
  {
  POSITION Pos=m_List.GetHeadPosition();
  while (Pos)
    {
    MRngChkCntxt &C=*m_List.GetNext(Pos);
    //dbgpln("MRngChkMngr::Dump %4i %08x %i  %s", m_Iter, this, C.m_Iter, C.RngChkTag());
    if (C.m_Iter==m_Iter)
      {
      //dbgpln("RngChk %s:%s", C.RngChkTag());
      POSITION PosI=C.m_List.GetHeadPosition();
      while (PosI)
        {
        MRngChkItem &I=*C.m_List.GetNext(PosI);
        dbgp("  %-20s %08x", I.m_Key.m_sCntxt, &I);
        if (I.m_GTMax)
          dbgp("  %-20s %.4f > %.4f", I.m_Key.m_sName, I.m_Value, I.m_MaxValue);
        if (I.m_LTMin)
          dbgp("  %-20s %.4f < %.4f", I.m_Key.m_sName, I.m_Value, I.m_MinValue);
        dbgpln("");
        
        }
      }
    }
  };
Ejemplo n.º 15
0
void CEvBlk::Skip(DWORD DeltaID)
  {
  DeltaID--;
  if (DeltaID<=0x1F)
    {
    pData[pTS->iLen++] = (TS_SKIP_0 | (byte)DeltaID); 
    }
  else if (DeltaID<=0x1FFF)
    {
    pData[pTS->iLen++] = (TS_SKIP_1 | ((byte)DeltaID & 0x1F)); 
    pData[pTS->iLen++] = (byte)_lrotr(DeltaID, 5);
    }
  else if (DeltaID<=0x1FFFFF)
    {
    pData[pTS->iLen++] = (TS_SKIP_2 | ((byte)DeltaID & 0x1F)); 
    *((WORD*)&pData[pTS->iLen]) = (WORD)_lrotr(DeltaID, 5);
    pTS->iLen += 2;
    }
  else if (DeltaID<=0x1FFFFFFF)
    {
    *((DWORD*)&pData[pTS->iLen]) = (DWORD)_lrotr(DeltaID, 5);
    pData[pTS->iLen++] = (TS_SKIP_3 | ((byte)DeltaID & 0x1F)); 
    pTS->iLen += 3;
    }
  else
    {
    dbgpln("DeltaID in historian %d is to large !!!!!", DeltaID);
    VERIFY(FALSE);
    }
  }
Ejemplo n.º 16
0
void CSubNetBlk::ShowSubNetsJ(CJoinRec * p, int dbgShowConns)
  {
  dbgp("%s%s ", p->VFlowAllowed(m_bFullFlow) ? "V":" ", p->LFlowAllowed(m_bFullFlow) ? "L":" ");
  dbgp("%02i ", p->m_pSubNet->m_SubNetNo);
  dbgp(" %s", JoinTypeStr(p->Typ));
//  dbgp("%s", p->fIsImpNd ? "I":" ");
//  dbgp("%s", p->fIsAccLnk? "A":" ");
  dbgp(" %s",SgnStr(p->Dirn));
  dbgp(" %s%s%s%s %s",
    (p->fLonely ? "L" : p->fUnDefined ? "U" : " "),
    (p->fIsolatedNet ? (p->fIsoNetRef ? "I" : " ") : p->fIsolatedNode ? "i" : " "),
    (p->fIsFixedXfer ? "X" : (p->fInFixedNet ? "F" : " ")),
    (p->fIsFixedExtern ? "x" : " "), (p->fHasXBstHere? "B" : " "), (p->fUDFShut ? "S" : " "));
  switch(p->Typ)
    {
    case JTyp_Tie:
    case JTyp_ImpNd:
    case JTyp_AccLnk:
      dbgp(" P ");
      if (p->nProdFracs>=2)
        {
        dbgp(" pf[%i]",p->nProdFracs);
        for (int pf=0; pf<p->nProdFracs; pf++)
          dbgp(" [%s:%g]",p->Nd_Rmt(p->ProdFracs[pf].iConnNo)->FullObjTag(),p->ProdFracs[pf].dProdFrac);
        }
      break;
    default :
      dbgp(" ?              ");
      break;
    }
  dbgpln(" %s%s(%i)", SgnStr(p->Dirn), p->Nd()->FullObjTag(),p->iJoinArrayInx);
  }
Ejemplo n.º 17
0
void CSurface3D::MRU_Remove(CSurface3DPanel * E)
  {
  #if dbgSurfaces
  if (dbg3DMRU())
    dbgpln("MRU_Remove    :%-20s %08x %08x H:%08x T:%08x", Name(), E, E->m_pFrame, m_pMRUHead, m_pMRUTail);
  #endif
  if (E==m_pMRUTail)
    {
    m_nPanelCnt--;
    if (E==m_pMRUHead)
      {
      m_pMRUHead=NULL;
      m_pMRUTail=NULL;
      }
    else
      {
      if (m_pMRUTail->m_pMRUNext)
        m_pMRUTail->m_pMRUNext->m_pMRUPrev=NULL;
      m_pMRUTail=m_pMRUTail->m_pMRUNext;
      }
    }
  else if (E==m_pMRUHead)
    {
    m_nPanelCnt--;
    if (m_pMRUHead->m_pMRUPrev)
      m_pMRUHead->m_pMRUPrev->m_pMRUNext=NULL;
    m_pMRUHead=m_pMRUHead->m_pMRUPrev;
    }
  else 
    {
    CSurface3DPanel * P=E->m_pMRUPrev;
    CSurface3DPanel * N=E->m_pMRUNext;
    if (P)
      {
      ASSERT(N!=NULL);
      m_nPanelCnt--;
      if (P)
        P->m_pMRUNext=N;
      if (N)
        N->m_pMRUPrev=P;
      }
    }
  #if dbgSurfaces
  if (dbg3DMRU())
    dbgpln("               %-20s                   H:%08x T:%08x", "", m_pMRUHead, m_pMRUTail);
  #endif
  }
Ejemplo n.º 18
0
double CEC_FinalConc::ExtentActual(double ProdMoles)
  {
  SpMArray NewMoles;
  NewMoles=RB.Moles;
  CR_EqnControl::ApplyChanges(ProdMoles, NewMoles);
  RB.AdjustForSrcSnks(NewMoles);

  double M=NewMoles[m_Spc.m_SpcId];
  double MW=SDB[m_Spc.m_SpcId].MoleWt();
  double V=RB.VolWithLockup(som_Liq, NewMoles, Valid(m_dRqdTemp)?m_dRqdTemp:RB.EstFinalT(), RB.m_Press);
  double C;
  if (m_Spc.m_ReactTerm>=0)
    {
    C=(M*MW)/GTZ(V);
    }
  else if (m_Spc.m_ProdTerm>=0)
    {
    C=(M*MW)/GTZ(V);
    }
  else
    C=0.0;

  if (0)
    {
    if (1)
      dbgp("FinalConc:Actual: Prod:%14.8g Act:%14.8f Rqd:%14.8f %10.4f %10.4f|",
          ProdMoles, C, ExtentReqd(), M, V);
    else
      dbgp("FinalConc:Actual: %14.8f %14.8f %10.4f %10.4f %10.4f %10.4f %10.4f %10.4f|",
          ProdMoles, C, ExtentReqd(), M, MW, V, Valid(m_dRqdTemp)?m_dRqdTemp:RB.EstFinalT(), RB.m_Press);
    for (int i=0; i<SVSpcCount();i++)
      if (RB.Moles[i]>0.0 || NewMoles[i]>0)
        dbgp(" %10.6f", RB.Moles[i]);
    dbgpln("");
    if (1)
      dbgp("                  %14s %14s %14s %10s %10s|", "", "", "", "", "", "", "", "");
    else
      dbgp("                  %14s %14s %10s %10s %10s %10s %10s %10s|", "", "", "", "", "", "", "", "");
    for (int i=0; i<SVSpcCount();i++)
      if (RB.Moles[i]>0.0 || NewMoles[i]>0)
        dbgp(" %10.6f", NewMoles[i]);
    dbgpln("");
    }
  return C;
  };
Ejemplo n.º 19
0
void MDebug::PrintLn(LPCSTR pFmt, ...)
  {
  char Buff[2048];
  va_list argptr;
  va_start(argptr, pFmt);
  vsprintf(Buff, pFmt, argptr);
  va_end(argptr);
  dbgpln("%s", Buff);
  };
Ejemplo n.º 20
0
void MN_Xfer::DumpDerivs()
  {
  dbgpln("--Xfr %-12s", FullObjTag());
  for (int i = 0; i < NoFlwIOs(); i++)
    if (IO_In(i))
      dbgpln("            In  >> :[%14.6g][%14.6g]|[%14.6g] %14.6g %14.3fC %s",
             IOConduit(i)->QMass(som_SL), IOConduit(i)->QMass(som_Gas) ,
             IOConduit(i)->msHz(), 
             IOConduit(i)->totHf()/GTZ(IOConduit(i)->QMass(som_ALL)),
             K2C(IOConduit(i)->Temp()), Nd_Rmt(i)->FullObjTag());
  for (i = 0; i < NoFlwIOs(); i++)
    if (IO_Out(i))
      dbgpln("            Out << :[%14.6g][%14.6g]|[%14.6g] %14.6g %14.3fC %s",
             IOConduit(i)->QMass(som_SL), IOConduit(i)->QMass(som_Gas) ,
             IOConduit(i)->msHz(), 
             IOConduit(i)->totHf()/GTZ(IOConduit(i)->QMass(som_ALL)),
             K2C(IOConduit(i)->Temp()), Nd_Rmt(i)->FullObjTag());
  }
Ejemplo n.º 21
0
double CEC_FracExt::ExtentActual(double ProdMoles)
  {
  double EA=0;
  if (m_iXSpcId>=0)
    {
    if (RB.Version()==3)
      {
      double MolesUsed=0;
      if (m_iXReactTerm>=0)
        MolesUsed=Eq.m_dMlXfer*Eq.Reactant[m_iXReactTerm].NoOfMoles;
      else if (m_iXProdTerm>=0)
        MolesUsed=Eq.m_dMlXfer*Eq.Product[m_iXProdTerm].NoOfMoles;
      else
        {
        ASSERT_ALWAYS(0, "FracExt not setup", __FILE__, __LINE__);
        }
      if (RB.Moles_BS[m_iXSpcId]>=ZeroLimit)
        EA=MolesUsed/RB.Moles_BS[m_iXSpcId];
      else
        EA=ExtentReqd();
      }
    }
  if (0)
    {
    dbgp("Extent   :Actual: Prod:%14.8g Act:%14.8f Rqd:%14.8f|", ProdMoles, EA, ExtentReqd());
    //for (int i=0; i<SVSpcCount();i++)
    //  if (RB.Moles[i]>0.0 || NewMoles[i]>0)
    //    dbgp(" %10.6f", RB.Moles[i]);
    dbgpln("");
    //dbgp("                  %14s %14s %14s|", "", "", "", "", "", "", "", "");
    //for (int i=0; i<SVSpcCount();i++)
    //  if (RB.Moles[i]>0.0 || NewMoles[i]>0)
    //    dbgp(" %10.6f", NewMoles[i]);
    //dbgpln("");
    }
  if (0)
    {
    dbgp("FracExt:Actual:  %10.4f  %10.4f  %10.4f  ",
          ProdMoles, EA, ExtentReqd());
    dbgpln("");
    }
  return EA;
  };
Ejemplo n.º 22
0
/*#F:Outputs the vector contents (format acording to options) to the debug file.*/
void CIArray::dbgDump( pchar Desc,  //Optional text description, default = ''
                       flag Horizontal) //Optional, default = True
{
    dbgp("%s:[%d]", Desc, GetSize());
    if (Horizontal)
    {
        for (long i=0; i<Min(50,GetSize()); i++)
            dbgp("%11.3g ", m_pData[i]);
        if (GetSize()>5)
            dbgp("...");
        dbgpln("");
    }
    else
    {
        dbgpln("");
        for (long i=0; i<GetSize(); i++)
            dbgpln("%4d: %11.3g", i, m_pData[i]);
    }
}
Ejemplo n.º 23
0
void CLink::SendStateValue()
  {
  //dbgpln("SendDisplayValue %4i %s", m_lSlot, m_bVisible?"Visible":"Hidden");
  //if (m_bVisible && gs_SlotMngr.m_bMonitorOn)
    {
    BOOL OK=theApp.PostThreadMessage(WMU_UPDATEONELINKSTATE, m_lLink, StateLong()); 
    if (!OK)
      dbgpln("SendDisplayValue Failed %4i", m_lLink);
    }
  }
Ejemplo n.º 24
0
void MRngChkCntxt::AddRngChkMsg(LPCSTR Name, TaggedObject * pSrc, LPCSTR Msg)
  {
  MRngChkItem * pItem = FindItem(Name, pSrc->FullObjTag());

  bool IsNew = pItem->m_Iter != gs_RngChecks.m_Iter;
  if (IsNew)
    {
    pItem->m_iCnv     = 0;
    pItem->m_IsMsg    = true;
    pItem->m_LTMin    = false;
    pItem->m_GTMax    = false;

    pItem->m_Iter     = gs_RngChecks.m_Iter;

    pItem->m_sMsg     = Msg;

    if (m_Iter!=gs_RngChecks.m_Iter)
      {
      if (m_pObject)
        {
        m_pObject->ClrCI(1);
        for (int i=0; i<m_ValidCount; i++)
          m_pObject->ClrCI(FirstRngChkCI+i);
        }
      m_ValidCount = 1;
      }
    else
      m_ValidCount++;
    m_Iter=gs_RngChecks.m_Iter;

    if (m_pObject)
      {
      if (sm_iCndRngChks>=CRC_Basic)
        {
        m_pObject->SetCI(1);
        if (sm_iCndRngChks>=CRC_All)
          {
          if (IsNew && m_ValidCount<=MaxRngChksPerNode)
            {
            pItem->FormatDisplay(0);
            Strng S;
            S.Set("Wr\t %s", pItem->m_sDisplay);
            m_pObject->SetCI(FirstRngChkCI+m_ValidCount-1, "%s", S);
            }

          }
        }
      }

    dbgpln("MRngChkMngr::AddRngChkMsg() %4i %08x %-30s %-20s %-20s %s", 
      m_Iter, this, pItem->m_Key.m_sCntxt, pItem->m_Key.m_sName, Name, Msg);
    }
  };
Ejemplo n.º 25
0
void CLink::SendDisplayValue()
  {
  //dbgpln("CLink::SendDisplayValue %4i %s", m_lLink, m_bVisible?"Visible":"Hidden");

  if (m_bVisible && gs_SlotMngr.m_bMonitorOn)
    {
    BOOL OK=theApp.PostThreadMessage(WMU_UPDATEONELINK, m_lLink, (long)new CLinkValue(*this)); 
    if (!OK)
      dbgpln("SendDisplayValue Failed %4i", m_lLink);
    }

  }
Ejemplo n.º 26
0
void CBlockEvaluator::AddBlk(CBlockEvalBase *p, int DefSeqNo)
  {
  if (p)
    {
    p->m_pBlkStateSemantics=this;
    p->SetOnOffValLst(p->StateSemanticsOn() ? &m_OnOffStateValLst : &m_OnOffValLst);
    p->SetDefBlkSeqNo(DefSeqNo);
    m_Blks[m_nBlocks++]=p;
    if (0)
      dbgpln("AddBlk %3i %s %s", m_nBlocks, p->StateSemanticsOn()?"On":"  ", m_pNd->FullObjTag());
    }
  };
Ejemplo n.º 27
0
void CMyServer::Status(const char* pszFormat, ...)
  {
  #if dbgDde
  if (dbgDDE())
    {
    char buf[2048];
    va_list arglist;
    va_start(arglist, pszFormat);
    vsprintf(buf, pszFormat, arglist);
    va_end(arglist);
    dbgpln("DDE:%s", buf);
    }
  #endif
  }
Ejemplo n.º 28
0
flag CDdeExec::EO_WriteSubsData(CXMsgLst &XM, flag FirstBlock, flag LastBlock)
  {
//dbgp("SubsData:Wrt ");
  while (XM.MsgAvail())
    {
    CXM_ObjectData *pX = XM.ObjectData();
    CPkDataItem * pPItem = pX->FirstItem();
    int iIndex = pX->Index;
    Dde.Lock();
    if (iIndex<SubsData.GetSize())
      {
      CDdeAdviseBlk *p = SubsData[iIndex];
//dbgp(" %i", iIndex);
      //if (p->pItem && pPItem->Value() && IsData(pPItem->Value()->Type()))
      if (p->pItem && pPItem->Contains(PDI_Value) && IsData(pPItem->Value()->Type()))
        {
//dbgp(" %s", (LPCTSTR)p->pItem->m_strName);
        // Fetch On First Pass
        //if (pPItem->Contains(PDI_CnvInfo) && p->sCnvTxt.Length() > 0)
        CCnvIndex iCnv = p->pItem->iCnvIndex;
        if (p->sCnvTxt.Length()>0 && (iCnv)==0)
          p->sValue.Set("#Conversion not expected");
        else
          {
          if (p->sCnvTxt() && Cnvs[iCnv]->Find(p->sCnvTxt())==NULL)
            p->sValue.Set("#Unknown conversion '%s's", p->sCnvTxt());
          else
            p->sValue = pPItem->Value()->GetString("%i", "%g", iCnv, p->sCnvTxt());
          }
        StatsCnt[0]++;

        PostThreadMessage(dwThreadId, wm_SyscadDdeCommand, MAKEWPARAM(DDE_POSTADVISE, (WORD)iIndex), (LPARAM)p);
        }
      else
        {
        dbgp("Skipping DDE Data subscription change");
        if (p->pItem)
          dbgp(" %s", (LPCTSTR)p->pItem->m_strName);
        dbgpln("");
        }
      }
    Dde.Release();
    }
//dbgpln("");
  CScdDDEManager::pTheMngr->UpdateStatusWnd((WPARAM)SUB_UPDATE_EOWRITE);
  return True;
  }
Ejemplo n.º 29
0
void CBlockEvaluator::RemBlk(CBlockEvalBase *p)
  {
  if (p)
    {
    for (int i=0; i<m_nBlocks; i++)
      {
      if (m_Blks[i]==p)
        {
        m_nBlocks--;
        for (int j=i; j<m_nBlocks; j++)
          m_Blks[j]=m_Blks[j+1];
        if (0)
          dbgpln("RemBlk %3i %s", m_nBlocks, m_pNd->FullObjTag());
        break;
        }
      }
    }
  }
Ejemplo n.º 30
0
double CEC_MLFinalFrac::ExtentActual(double ProdMoles)
  {
  SpMArray NewMoles;
  NewMoles=RB.Moles;
  CR_EqnControl::ApplyChanges(ProdMoles, NewMoles);
  RB.AdjustForSrcSnks(NewMoles);

  double F;
  if (m_Spc.m_ReactTerm>=0 || m_Spc.m_ProdTerm>=0)
    F=(NewMoles[m_Spc.m_SpcId])/GTZ(NewMoles.Mass(m_AsTotal ? som_ALL : SDB[m_Spc.m_SpcId].m_OccMsk));
  else
    F=0.0;

  if (0)
    dbgpln("FinalPhaseFrac:Actual: %14.8f %14.8f |",
            ProdMoles, F, ExtentReqd());
  return F;
  };