Exemplo n.º 1
0
void setValue(LevelData<EBCellFAB>& phase, const BaseBCValue& value,
              const Box& domain,
              const RealVect& dx, const RealVect& origin,
              bool useKappa)
{
    RealVect loc;
    IntVect  originIV = domain.smallEnd();
    DataIterator dit = phase.dataIterator();
    for (dit.begin(); dit.ok(); ++dit)
    {
        EBCellFAB& efab = phase[dit];

        FArrayBox& fab  = efab.getFArrayBox();
        ForAllX(Real, fab)
        {
            D_EXPR(loc[0]=iR+nR-nR+originIV[0], loc[1]=jR+originIV[1], loc[2]=kR+originIV[2]);
            loc+=0.5;
            loc*=dx;
            loc+=origin;
            fabR = value.value(loc, RealVect::Zero, 1.e99,0);
        }
        EndFor ;
        if (useKappa)
        {
            const EBISBox& ebox = efab.getEBISBox();
            IntVectSet ivs = ebox.getIrregIVS(efab.getRegion());
            IVSIterator it(ivs);
            for (; it.ok(); ++it)
            {
                const IntVect iv = it();
                VolIndex vi(iv,0);
                if (ebox.bndryArea(vi) != 0)
                {
                    loc = iv;
                    loc+=0.5;
                    loc+= ebox.centroid(vi);
                    loc*=dx;
                    loc+=origin;
                    efab(vi, 0) = value.value(loc, RealVect::Zero, 1.e99,0)*ebox.volFrac(vi);
                }
            }
        }
    }
Exemplo n.º 2
0
IntVect::IntVect (const Array<int> &a)
{
    BL_ASSERT(a.size() == BL_SPACEDIM);
    D_EXPR(vect[0] = a[0], vect[1] = a[1], vect[2] = a[2]);
}
Exemplo n.º 3
0
IntVect::IntVect (const int *a)
{
    D_EXPR(vect[0] = a[0], vect[1] = a[1], vect[2] = a[2]);
}