Exemple #1
0
Real
ABecLaplacian::norm (int nm, int level, const bool local)
{
    BL_PROFILE("ABecLaplacian::norm()");

    BL_ASSERT(nm == 0);
    const MultiFab& a   = aCoefficients(level);

    D_TERM(const MultiFab& bX  = bCoefficients(0,level);,
Exemple #2
0
void
ABec4::setCoefficients (const MultiFab &_a,
			const MultiFab &_b)
{
  aCoefficients(_a);
  bCoefficients(_b);

  if (LO_Op) {
    int level = 0;
    const BoxArray& cba = boxArray(level);
    LO_Op->aCoefficients(_a);
    bool do_harm = true;
    for (int d=0; d<BL_SPACEDIM; ++d) {
      BoxArray eba = BoxArray(cba).surroundingNodes(d);
      MultiFab btmp(eba,1,0);
      lo_cc2ec(_b,btmp,0,0,1,d,do_harm);
      LO_Op->bCoefficients(btmp,d);
    }
  }
}
Exemple #3
0
void
ABec4::compFlux (D_DECL(MultiFab &xflux, MultiFab &yflux, MultiFab &zflux),
		 MultiFab& in, bool do_ApplyBC, const BC_Mode& bc_mode,
		 int src_comp, int dst_comp, int num_comp, int bnd_comp)
{
    const int level = 0;
    BL_ASSERT(num_comp==1);

    if (do_ApplyBC)
      applyBC(in,src_comp,num_comp,level,bc_mode,bnd_comp);

    const MultiFab& a = aCoefficients(level);
    const MultiFab& b = bCoefficients(level);

    const bool tiling = true;

#ifdef _OPENMP
#pragma omp parallel
#endif
    for (MFIter inmfi(in,tiling); inmfi.isValid(); ++inmfi)
    {
        D_TERM(const Box& xbx   = inmfi.nodaltilebox(0);,
	       const Box& ybx   = inmfi.nodaltilebox(1);,