void SpongeLayerForceFunction::setDataOnPatch(const int data_idx, Pointer<Variable<NDIM> > /*var*/, Pointer<Patch<NDIM> > patch, const double /*data_time*/, const bool initial_time, Pointer<PatchLevel<NDIM> > /*level*/) { Pointer<PatchData<NDIM> > f_data = patch->getPatchData(data_idx); #if !defined(NDEBUG) TBOX_ASSERT(f_data); #endif Pointer<CellData<NDIM, double> > f_cc_data = f_data; Pointer<SideData<NDIM, double> > f_sc_data = f_data; #if !defined(NDEBUG) TBOX_ASSERT(f_cc_data || f_sc_data); #endif if (f_cc_data) f_cc_data->fillAll(0.0); if (f_sc_data) f_sc_data->fillAll(0.0); if (initial_time) return; const int cycle_num = d_fluid_solver->getCurrentCycleNumber(); const double dt = d_fluid_solver->getCurrentTimeStepSize(); const double rho = d_fluid_solver->getStokesSpecifications()->getRho(); const double kappa = cycle_num >= 0 ? 0.5 * rho / dt : 0.0; Pointer<PatchData<NDIM> > u_current_data = patch->getPatchData( d_fluid_solver->getVelocityVariable(), d_fluid_solver->getCurrentContext()); Pointer<PatchData<NDIM> > u_new_data = patch->getPatchData( d_fluid_solver->getVelocityVariable(), d_fluid_solver->getNewContext()); #if !defined(NDEBUG) TBOX_ASSERT(u_current_data); #endif if (f_cc_data) setDataOnPatchCell(f_data, u_current_data, u_new_data, kappa, patch); if (f_sc_data) setDataOnPatchSide(f_data, u_current_data, u_new_data, kappa, patch); return; } // setDataOnPatch
void SpongeLayerForceFunction::setDataOnPatch( const int data_idx, Pointer<Variable<NDIM> > /*var*/, Pointer<Patch<NDIM> > patch, const double /*data_time*/, const bool initial_time, Pointer<PatchLevel<NDIM> > /*level*/) { Pointer<PatchData<NDIM> > f_data = patch->getPatchData(data_idx); #ifdef DEBUG_CHECK_ASSERTIONS TBOX_ASSERT(!f_data.isNull()); #endif Pointer<CellData<NDIM,double> > f_cc_data = f_data; Pointer<SideData<NDIM,double> > f_sc_data = f_data; #ifdef DEBUG_CHECK_ASSERTIONS TBOX_ASSERT(!f_cc_data.isNull() || !f_sc_data.isNull()); #endif if (!f_cc_data.isNull()) f_cc_data->fillAll(0.0); if (!f_sc_data.isNull()) f_sc_data->fillAll(0.0); if (initial_time) return; if (!f_cc_data.isNull()) setDataOnPatchCell(data_idx, patch); if (!f_sc_data.isNull()) setDataOnPatchSide(data_idx, patch); return; }// setDataOnPatch