Beispiel #1
0
inline bool Upwind_ZCoDiS<Tprec, Dim>::calcCoefficients3D () {
    prec_t dyz = dy * dz, dyz_dx = Gamma * dyz / dx;
    prec_t dxz = dx * dz, dxz_dy = Gamma * dxz / dy;
    prec_t dxy = dx * dy, dxy_dz = Gamma * dxy / dz;
    prec_t dxyz_dt = dx * dy * dz / dt;
    prec_t ce, cw;
    prec_t cn, cs;
    prec_t cf, cb;
    aE = 0.0; aW = 0.0; aN = 0.0; aS = 0.0; aF = 0.0; aB = 0.0; aP = 0.0; 
    sp = 0.0;

   for (int k = bk; k <= ek; ++k)
       for (int i =  bi; i <= ei; ++i)
	   for (int j = bj; j <= ej; ++j)
	   {
	       ce = ( u(i,j,k) + u(i,j+1,k) ) * 0.5 * dyz;
	       cw = ( u(i-1,j,k) + u(i-1,j+1,k) ) * 0.5 * dyz;
	       cn = ( v(i,j,k) + v(i+1,j,k) ) * 0.5 * dxz;
	       cs = ( v(i,j-1,k) + v(i+1,j-1,k) ) * 0.5 * dxz;
	       cf = ( w(i,j,k) + w(i,j,k+1) ) * 0.5 * dxy;
	       cb = ( w(i,j,k) + w(i,j,k-1) ) * 0.5 * dxy;

	       if ( ce > 0 ) ce = 0.0; 
	       else          ce = -ce;
//
// This statement:	    
	       if ( cw <= 0 ) cw = 0.0; 
//
// is more efficient than the next similar one:
//	    if ( cw > 0 ) cw = cw; 
//	    else          cw = 0.0;

	       if ( cn > 0 ) cn = 0.0;
	       else          cn = -cn;
	       if ( cs <= 0 ) cs = 0.0; 

	       if ( cf > 0 ) cf = 0.0;
	       else          cf = -cf;
	       if ( cb <= 0 ) cb = 0.0; 
	    
	       aE (i,j,k) = (dyz_dx + ce);
	       aW (i,j,k) = (dyz_dx + cw);
	       aN (i,j,k) = (dxz_dy + cn);
	       aS (i,j,k) = (dxz_dy + cs);
	       aF (i,j,k) = (dxy_dz + cf);
	       aB (i,j,k) = (dxy_dz + cb);
	       aP (i,j,k) = aE (i,j,k) + aW (i,j,k) + aN (i,j,k) + aS (i,j,k)
		   + aF (i,j,k) + aB (i,j,k) + dxyz_dt;
//		+ (ce - cw);	    
// Term (ce - cw) is part of discretizated continuity equation, and
// must be equal to zero when that equation is valid, so I can avoid
// this term for efficiency.

	       sp(i,j,k) = w(i,j,k) * dxyz_dt - 
		 ( p(i,j,k+1)- p(i,j,k) ) * dxy; 
	   }    
   calc_dw_3D();
   applyBoundaryConditions3D();
   return 0;   
}
Beispiel #2
0
inline
bool CDS_YLES<T_number, Dim>::calcCoefficients(const ScalarField &nut) { 
    T_number dyz = dy * dz, dxz = dx * dz, dxy = dx * dy;
    T_number dyz_dx = dyz / dx, dxz_dy = dxz / dy, dxy_dz = dxy / dz;
    T_number ce, cw, cn, cs, cf, cb;
    T_number nutinter;
    T_number dxyz_dt = dx * dy * dz / dt;
    T_number RaGaVol = Rayleigh * Gamma * 0.5 * dx * dy * dz;
   
    for (int i =  bi; i <= ei; ++i)
	for (int j = bj; j <= ej; ++j)
	    for (int k = bk; k <= ek; ++k)
	    {
		ce = ( u(i,j,k) + u(i,j+1,k) ) * 0.5 * dyz;
		cw = ( u(i-1,j,k) + u(i-1,j+1,k) ) * 0.5 * dyz;
		cn = ( v(i,j,k) + v(i,j+1,k) ) * 0.5 * dxz;
		cs = ( v(i,j,k) + v(i,j-1,k) ) * 0.5 * dxz;
		cf = ( w(i,j,k) + w(i,j,k+1) ) * 0.5 * dxy;
		cb = ( w(i-1,j,k) + w(i-1,j,k+1) ) * 0.5 * dxy;

//
// nut is calculated on center of volumes, therefore, nut
// must be staggered in y direction:	    
		nutinter = 0.5 * ( nut(i,j,k) + nut(i,j+1,k) );

		aE (i,j,k) = (Gamma + nutinter) * dyz_dx - ce * 0.5;
		aW (i,j,k) = (Gamma + nutinter) * dyz_dx + cw * 0.5;
		aN (i,j,k) = 2 * (Gamma + nutinter) * dxz_dy - cn * 0.5;
		aS (i,j,k) = 2 * (Gamma + nutinter) * dxz_dy + cs * 0.5;
		aF (i,j,k) = (Gamma + nutinter) * dxy_dz - cf * 0.5;
		aB (i,j,k) = (Gamma + nutinter) * dxy_dz + cb * 0.5;
		aP (i,j,k) = aE (i,j,k) + aW (i,j,k) +
		             aN (i,j,k) + aS (i,j,k) +
		             aF (i,j,k) + aB (i,j,k) +
		             dxyz_dt;	    
//		aP (i,j,k) /= alpha;  // under-relaxation
//		+ (ce - cw)  + (cn - cs) + (cf - cb);	    
// Term (ce - cw) is part of discretizated continuity equation, and
// must be equal to zero when that equation is valid, so I can avoid
// this term for efficiency.

		sp (i,j,k) = v(i,j,k) * dxyz_dt - 
		    ( p(i,j+1,k) - p(i,j,k) ) * dxz +
		    RaGaVol * ( T(i,j,k) + T(i,j+1,k) ) +
		    nutinter * ( (u(i,j+1,k) - u(i,j,k) - 
				  u(i-1,j+1,k) + u(i-1,j,k)) * dz +
				 (w(i,j+1,k) - w(i,j,k) - 
				  w(i,j+1,k-1) + w(i,j,k-1)) * dx );
		
//		    v(i,j,k) * (1-alpha) * aP(i,j,k)/alpha; // under-relaxation
	}    
    calc_dv_3D();
    applyBoundaryConditions3D();

    return 1;
}
Beispiel #3
0
bu(gs): 
co(mpilers): 

*/

#include "initsupl.loc"

#ifndef _MICROC_
#include <dos.h>
#endif
#include <portable.h>
#include "mcb.h"

#include "suppldbg.h"

#ifdef RCS_Version
static char const rcsid[] = 
	"$Id: mcb_env.c,v 1.1 2006/06/17 03:25:05 blairdude Exp $";
#endif

static int isEnvcomp(void *arg, word mcb)
{	return (isPSP(mcb) && mcb_env(mcb) == (unsigned)arg)
		? mcb : 0;
}

int isEnv(const word mcb)
{	DBG_ENTER("isEnv", Suppl_mcb)
	DBG_ARGUMENTS( ("mcb=%u", mcb) )
	DBG_RETURN_BI( mcb_walk(0, aF(isEnvcomp), (void*)MCB2SEG(mcb)))
}
Beispiel #4
0
int main(int theArgCount, char ** theArgs)
{
    if (theArgCount == 1)
    {
        cout << "File name must be specified\n";
        return 1;
    }

    ifstream aF( theArgs[1], ios::in );

    if ( !aF.is_open() )
    {
        cout << "File not found\n";
        return 1;
    }

    LineList aVect;

    while (true)
    {
        char aData[500];
        aF.getline(aData, sizeof aData);

        ProcessLine(aVect, aData);

        if ( aF.bad() || aF.eof() ) break;
    }

    aF.close();

    if (BuildNumber == 0)
    {
        cout << "#define BUILDNUMBER string not found\n";
        return 1;
    }

    ofstream aFO(theArgs[1], ios::out|ios::trunc);

    if ( !aFO.is_open() )
    {
        cout << "Could not write data back to file\n";
        return 1;
    }



    bool aNewLine = false;
    for (LineIter aIt = aVect.begin(); aIt != aVect.end(); aIt++)
    {
        if (aNewLine)
            aFO << endl;

        aFO << *aIt;

        aNewLine = true;
    }

    aFO.close();

    cout << "Success\n";
    return 0;
}
Beispiel #5
0
void BenchcSysQuadCreuse
     (
         INT aNbVar,
         INT aNbEq,
         cNameSpaceEqF::eTypeSysResol aType
      )
{
    bool isFixe = NRrandom3() < 0.5;
    //cFormQuadCreuse aSCr(aNbVar,isFixe);
    cFormQuadCreuse aSCr( aNbVar, cElMatCreuseGen::StdNewOne( aNbVar, aNbVar, isFixe ) ); // __NEW
    //aSCr.SetEpsB(1e-10);
    cGenSysSurResol & aS1 = aSCr;

    L2SysSurResol   aSPl(aNbVar);
    cGenSysSurResol & aS2 = aSPl;

    bool SysFix = (aType == cNameSpaceEqF::eSysCreuxFixe);
    cSetEqFormelles aSet2(aType); // ,1e-10);
    cEqFormelleLineaire * anEq2_1 = aSet2.NewEqLin(1,aNbVar);
    cEqFormelleLineaire * anEq2_3 = aSet2.NewEqLin(3,aNbVar);


    Im1D_REAL8   aIm2(aNbVar,0.0);
    for (INT aK=0; aK<aNbVar; aK++)
        aSet2.Alloc().NewInc(aIm2.data()+aK);
    aSet2.SetClosed();
    //if (aType !=  cNameSpaceEqF::eSysPlein)
    //   aSet2.FQC()->SetEpsB(1e-10);


    Im1D_REAL8 aF(aNbVar,0.0);

    for (INT aNbTest=0 ; aNbTest<3 ; aNbTest++)
    {
        for (INT aX =0 ; aX<aNbVar; aX++)
        {
	    std::vector<INT> V;
	    V.push_back(aX);

            REAL aPds = 0.5;
            double C1 = 1;
            aF.data()[aX] = C1;
            REAL aCste =  NRrandom3();
	    if (isFixe)
	    {
		if (aX==0)
	           aSCr.SetOffsets(V);
                //aS1.GSSR_AddNewEquation_Indexe(V,aPds,&C1,aCste);
                aS1.GSSR_AddNewEquation_Indexe(V,aPds,&C1,aCste);
	    }
	    else 
                aS1.GSSR_AddNewEquation(aPds,aF.data(),aCste);
            aS2.GSSR_AddNewEquation(aPds,aF.data(),aCste);

	     if ((NRrandom3() < 0.5) && (! SysFix))
                anEq2_1->AddEqNonIndexee(aCste,&C1,aPds,V);
	     else
	     {
                if (SysFix)
		   aSet2.FQC()->SetOffsets(V);
                anEq2_1->AddEqIndexee(aCste,&C1,aPds,V);
	     }

            aF.data()[aX] = 0;
        }

        for (INT aK =0 ; aK<aNbEq; aK++)
	{
	     std::vector<INT> aVInd;
	     REAL   aV3[3];

             static INT I1=0;
             static INT I2=0;
             static INT I3=0;
	     bool TransI =     (NRrandom3() <0.5)
		           &&  (aK != 0)
		           &&  (I1 < aNbVar-1)
		           &&  (I2 < aNbVar-1)
		           &&  (I3 < aNbVar-1); 
	     if (TransI)
	     {
		     I1++;
		     I2++;
		     I3++;
	     }
	     else
	     {
                I1 = std::min(aNbVar-1,INT(NRrandom3()*aNbVar));
                I2 = std::min(aNbVar-1,INT(NRrandom3()*aNbVar));
                I3 = std::min(aNbVar-1,INT(NRrandom3()*aNbVar));
	     }
             REAL aCste = NRrandom3();


	     aV3[0] = NRrandom3();
	     aV3[1] = NRrandom3();
	     aV3[2] = NRrandom3();

	     aF.data()[I1] += aV3[0];
             aF.data()[I2] += aV3[1];
             aF.data()[I3] += aV3[2];
	     aVInd.push_back(I1);
	     aVInd.push_back(I2);
	     aVInd.push_back(I3);

	     if ((NRrandom3() < 0.5) && (! SysFix))
                anEq2_3->AddEqNonIndexee(aCste,aV3,1,aVInd);
	     else
	     {
		if (SysFix)
		{
                   if (! TransI)
		      aSet2.FQC()->SetOffsets(aVInd);
		}
                anEq2_3->AddEqIndexee(aCste,aV3,1,aVInd);
	     }

	     if ((NRrandom3()<0.5) || isFixe)
	     {
	         if (isFixe) 
		 {
                     if (! TransI)
                        aSCr.SetOffsets(aVInd);
		 }
                 aS1.GSSR_AddNewEquation_Indexe(aVInd,1,aV3,aCste);
	     }
	     else
                 aS1.GSSR_AddNewEquation(1,aF.data(),aCste);

	     if (NRrandom3()<0.5)
                 aS2.GSSR_AddNewEquation_Indexe(aVInd,1,aV3,aCste);
	     else
                 aS2.GSSR_AddNewEquation(1,aF.data(),aCste);


             aF.data()[I1] = 0;
             aF.data()[I2] = 0;
             aF.data()[I3] = 0;
	}
        


	bool OK;
        Im1D_REAL8 Sol1 = aS1.GSSR_Solve(&OK);
        Im1D_REAL8 Sol2 = aS2.GSSR_Solve(&OK);
	REAL aDif;
	ELISE_COPY(Sol1.all_pts(),Abs(Sol1.in()-Sol2.in()),VMax(aDif));
	cout << "a Dif " << aDif << "\n";
	BENCH_ASSERT(aDif<1e-4);

	aSet2.SolveResetUpdate();
	ELISE_COPY(Sol1.all_pts(),Abs(aIm2.in()-Sol2.in()),VMax(aDif));
	cout << "a Dif " << aDif << "\n";
	BENCH_ASSERT(aDif<1e-4);



        aS1.GSSR_Reset();
        aS2.GSSR_Reset();
    }
}
Beispiel #6
0
inline bool Quick_ZHay<Tprec, Dim>::calcCoefficients3D () {
    prec_t dyz = dy * dz, dyz_dx = Gamma * dyz / dx;
    prec_t dxz = dx * dz, dxz_dy = Gamma * dxz / dy;
    prec_t dxy = dx * dy, dxy_dz = Gamma * dxy / dz;
    prec_t dxyz_dt = dx * dy * dz / dt;
    prec_t ce, cem, cep, cw, cwm, cwp, CE, CW;
    prec_t cn, cnm, cnp, cs, csm, csp, CN, CS;
    prec_t cf, cfm, cfp, cb, cbm, cbp, CF, CB;
    aE = 0.0; aW = 0.0; aN = 0.0; aS = 0.0; aF = 0.0; aB = 0.0; aP = 0.0; 
    sp = 0.0;
    
    for (int k = bk; k <= ek; ++k)
      for (int i =  bi; i <= ei; ++i)
	for (int j = bj; j <= ej; ++j)
	  {
	    CE = ce = ( u(i  ,j  ,k) + u(i  ,j+1,k  ) ) * 0.5 * dyz;
	    CW = cw = ( u(i-1,j  ,k) + u(i-1,j+1,k  ) ) * 0.5 * dyz;
	    CN = cn = ( v(i  ,j  ,k) + v(i+1,j  ,k  ) ) * 0.5 * dxz;
	    CS = cs = ( v(i  ,j-1,k) + v(i+1,j-1,k  ) ) * 0.5 * dxz;
	    CF = cf = ( w(i  ,j  ,k) + w(i  ,j  ,k+1) ) * 0.5 * dxy;
	    CB = cb = ( w(i  ,j  ,k) + w(i  ,j  ,k-1) ) * 0.5 * dxy;
	    cem = cep = 0.0;
	    cwm = cwp = 0.0;
	    cnm = cnp = 0.0;
	    csm = csp = 0.0;
	    cfm = cfp = 0.0;
	    cbm = cbp = 0.0;

	    // QUICK as presented in Hayase et al.
// ---- X
	    if ( ce > 0 ) { 
	      CE = 0;
	      if (i == bi) {
		cep = ce * (phi_0(i+1,j,k) - phi_0(i-1,j,k)) / 3.0;
	      } else {
		cep = ce * 0.125 * (-phi_0(i-1,j,k) - 2*phi_0(i,j,k) + 3*phi_0(i+1,j,k));
	      }
	    } else {
	      // The case i == ei is taken in to account in applyBoundaryConditions3D.
	      if (i == ei-1) {
		cem = ce * (phi_0(i+2,j,k) - phi_0(i,j,k)) / 3.0;
	      } else if (i < ei-1) {
		cem = ce * 0.125 * (-phi_0(i+2,j,k) - 2*phi_0(i+1,j,k) + 3*phi_0(i,j,k));
	      }
	    }
	    
	    if ( cw > 0 ) { 
	      // The case i == bi is taken in to account in applyBoundaryConditions3D.
	      if (i == bi+1) {
		cwp = cw * (phi_0(i,j,k) - phi_0(i-2,j,k)) / 3.0;
	      } else if (i > bi+1) {
		cwp = cw * 0.125 * (-phi_0(i-2,j,k) - 2*phi_0(i-1,j,k) + 3*phi_0(i,j,k));
	      }
	    } else {
	      CW = 0;
	      if (i == ei) {
		cwm = cw * (phi_0(i-1,j,k) - phi_0(i+1,j,k)) / 3.0;
	      } else {
		cwm = cw * 0.125 * (-phi_0(i+1,j,k) - 2*phi_0(i,j,k) + 3*phi_0(i-1,j,k));
	      }
	    }

// ---- Y
	    if ( cn > 0 ) { 
	      CN = 0;
	      if (j == bj) {
		cnp = cn * (phi_0(i,j+1,k) - phi_0(i,j-1,k)) / 3.0;
	      } else {
		cnp = cn * 0.125 * (-phi_0(i,j-1,k) - 2*phi_0(i,j,k) + 3*phi_0(i,j+1,k));
	      }
	    } else {
	      if (j == ej-1) {
		cnm = cn * (phi_0(i,j+2,k) - phi_0(i,j,k)) / 3.0;
	      } else if (i < ei-1) {
		cnm = cn * 0.125 * (-phi_0(i,j+2,k) - 2*phi_0(i,j+1,k) + 3*phi_0(i,j,k));
	      }
	    }
	    
	    if ( cs > 0 ) { 
	      if (j == bj+1) {
		csp = cs * (phi_0(i,j,k) - phi_0(i,j-2,k)) / 3.0;
	      } else if (j > bj+1) {
		csp = cs * 0.125 * (-phi_0(i,j-2,k) - 2*phi_0(i,j-1,k) + 3*phi_0(i,j,k));
	      }
	    } else {
	      CS = 0;
	      if (j == ej) {
		csm = cs * (phi_0(i,j-1,k) - phi_0(i,j+1,k)) / 3.0;
	      } else {
		csm = cs * 0.125 * (-phi_0(i,j+1,k) - 2*phi_0(i,j,k) + 3*phi_0(i,j-1,k));
	      }
	    }

// ---- Z
	    if ( cf > 0 ) { 
	      CF = 0;
	      cfp = cf * 0.125 * (-phi_0(i,j,k-1) - 2*phi_0(i,j,k) + 3*phi_0(i,j,k+1));
	    } else {
	      if (k == ek) {
		cfm = cf * 0.125 * (-5*phi_0(i,j,k+1) + 6*phi_0(i,j,k) - phi_0(i,j,k-1));
	      } else {
		cfm = cf * 0.125 * (-phi_0(i,j,k+2) - 2*phi_0(i,j,k+1) + 3*phi_0(i,j,k));
	      }
	    }
	    
	    if ( cb > 0 ) { 
	      if (k == bk) {
		cbp = cb * 0.125 * (-5*phi_0(i,j,k-1) + 6*phi_0(i,j,k) - phi_0(i,j,k+1));
	      } else {
		cbp = cb * 0.125 * (-phi_0(i,j,k-2) - 2*phi_0(i,j,k-1) + 3*phi_0(i,j,k));
	      }
	    } else {
	      CB = 0;
	      cbm = cb * 0.125 * (-phi_0(i,j,k+1) - 2*phi_0(i,j,k) + 3*phi_0(i,k,k-1));
	    }
	    
	    aE (i,j,k) = dyz_dx - CE;
	    aW (i,j,k) = dyz_dx + CW;
	    aN (i,j,k) = dxz_dy - CN;
	    aS (i,j,k) = dxz_dy + CS;
	    aF (i,j,k) = dxy_dz - CF;
	    aB (i,j,k) = dxy_dz + CB;
	    aP (i,j,k) = aE (i,j,k) + aW (i,j,k) + aN (i,j,k) + aS (i,j,k) 
	      + aF (i,j,k) + aB (i,j,k) + dxyz_dt
	      + (ce - cw) + (cn - cs) + (cf - cb);

	    sp(i,j,k) = w(i,j,k) * dxyz_dt - 
	      ( p(i,j,k+1)- p(i,j,k) ) * dxy
	      - (cep + cem - cwp - cwm + 
		 cnp + cnm - csp - csm +
		 cfp + cfm - cbp - cbm);    
	  }    
    calc_dw_3D();
    applyBoundaryConditions3D();
    return 0;     
}
Beispiel #7
0
inline bool CDS_YHay<Tprec, Dim>::calcCoefficients3D () 
{
    prec_t dyz = dy * dz, dyz_dx = Gamma * dyz / dx;
    prec_t dxz = dx * dz, dxz_dy = Gamma * dxz / dy;
    prec_t dxy = dx * dy, dxy_dz = Gamma * dxy / dz;
    prec_t dxyz_dt = dx * dy * dz / dt;
    prec_t ce, cep, cem, cw, cwp, cwm, CE, CW;
    prec_t cn, cnp, cnm, cs, csp, csm, CN, CS;
    prec_t cf, cfp, cfm, cb, cbp, cbm, CF, CB;
    prec_t RaGaVol = Rayleigh * Gamma * 0.5 * dx * dy * dz;
    aE = 0.0; aW = 0.0; aN = 0.0; aS = 0.0; aF = 0.0; aB = 0.0; aP = 0.0; 
    sp = 0.0;

    for (int k = bk; k <= ek; ++k)
      for (int i =  bi; i <= ei; ++i)
	for (int j = bj; j <= ej; ++j)
	  {
	    CE = ce = ( u(i  ,j,k) + u(i  ,j+1,k  ) ) * 0.5 * dyz;
	    CW = cw = ( u(i-1,j,k) + u(i-1,j+1,k  ) ) * 0.5 * dyz;
	    CN = cn = ( v(i  ,j,k) + v(i  ,j+1,k  ) ) * 0.5 * dxz;
	    CS = cs = ( v(i  ,j,k) + v(i  ,j-1,k  ) ) * 0.5 * dxz;
	    CF = cf = ( w(i  ,j,k) + w(i  ,j  ,k+1) ) * 0.5 * dxy;
	    CB = cb = ( w(i-1,j,k) + w(i-1,j  ,k+1) ) * 0.5 * dxy;
	    cem = cep = 0;
	    cwm = cwp = 0;
	    cnm = cnp = 0;
	    csm = csp = 0;
	    cfm = cfp = 0;
	    cbm = cbp = 0;

	    if ( ce > 0 ){
	      CE = 0;
	      cep = ce * 0.5 * (-phi_0(i,j,k) + phi_0(i+1,j,k));
	    } else {
	      cem = ce * 0.5 * (phi_0(i,j,k) - phi_0(i+1,j,k));
	    } 
	  
	    if ( cw > 0 ){
	      cwp = cw * 0.5 * (-phi_0(i-1,j,k) + phi_0(i,j,k));
	    } else {
	      CW = 0.0;
	      cwm = cw * 0.5 * (phi_0(i-1,j,k) - phi_0(i,j,k));
	    } 	    
	    
	    if ( cn > 0 ){
	      CN = 0;
	      cnp = cn * 0.5 * (-phi_0(i,j,k) + phi_0(i,j+1,k));
	    } else {
	      cnm = cn * 0.5 * (phi_0(i,j,k) - phi_0(i,j+1,k));
	    } 
	    
	    if ( cs > 0 ){
	      csp = cs * 0.5 * (-phi_0(i,j-1,k) + phi_0(i,j,k));
	    } else {
	      CS = 0.0;
	      csm = cs * 0.5 * (phi_0(i,j-1,k) - phi_0(i,j,k));
	    } 

	    if ( cf > 0 ){
	      CF = 0;
	      cfp = cf * 0.5 * (-phi_0(i,j,k) + phi_0(i,j,k+1));
	    } else {
	      cfm = cf * 0.5 * (phi_0(i,j,k) - phi_0(i,j,k+1));
	    } 
	    
	    if ( cb > 0 ){
	      cbp = cb * 0.5 * (-phi_0(i,j,k-1) + phi_0(i,j,k));
	    } else {
	      CB = 0.0;
	      cbm = cb * 0.5 * (phi_0(i,j,k-1) - phi_0(i,j,k));
	    } 
	
	    aE (i,j,k) = dyz_dx - CE;
	    aW (i,j,k) = dyz_dx + CW;
	    aN (i,j,k) = dxz_dy - CN;
	    aS (i,j,k) = dxz_dy + CS;
	    aF (i,j,k) = dxy_dz - CF;
	    aB (i,j,k) = dxy_dz + CB;
	    aP (i,j,k) = aE (i,j,k) + aW (i,j,k) + aN (i,j,k) + aS (i,j,k)
	      + aF (i,j,k) + aB (i,j,k) + dxyz_dt
	      + (ce - cw) + (cn - cs) + (cn - cs);
	    sp (i,j,k) += v(i,j,k) * dxyz_dt - 
	      ( p(i,j+1,k) - p(i,j,k) ) * dxz +
	      RaGaVol * ( T(i,j,k) + T(i,j+1,k) )
	      - (cep + cem - cwp - cwm + cnp + cnm - csp - csm + cfp + cfm - cbp - cbm); 
	  }    
    calc_dv_3D();
    applyBoundaryConditions3D();
    return 0;
}
Beispiel #8
0
pr(erequistes): 
va(lue): 0: is no MCB\item else: is a MCB
re(lated to): isPSP isEnv mcb_walk
se(condary subsystems): 
bu(gs): 
co(mpilers): 

*/

#include "initsupl.loc"

#include <portable.h>
#include "mcb.h"

#include "suppldbg.h"

#ifdef RCS_Version
static char const rcsid[] = 
	"$Id: mcb_is.c,v 1.1 2006/06/17 03:25:05 blairdude Exp $";
#endif

static isMCBcomp(void *arg, word mcb)
{	return mcb == (unsigned)arg;
}

int isMCB(const word mcb)
{	DBG_ENTER("isMCB", Suppl_mcb)
	DBG_ARGUMENTS( ("mcb=%u", mcb) )
	DBG_RETURN_BI( mcb_walk(0, aF(isMCBcomp), (void*)mcb))
}
Beispiel #9
0
 cFoncCarBool  (bool (*aF)(int))
 {
     for (int aC=0 ; aC<256 ; aC++)
        mLut[aC] = aF(aC);
 }