MCPcopy Create free account
hub / github.com/IBAMR/IBAMR / resetLevels

Method resetLevels

ibtk/src/math/HierarchyMathOps.cpp:359–407  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

357} // setPatchHierarchy
358
359void
360HierarchyMathOps::resetLevels(const int coarsest_ln, const int finest_ln)
361{
362#if !defined(NDEBUG)
363 TBOX_ASSERT(d_hierarchy);
364 TBOX_ASSERT((coarsest_ln >= 0) && (finest_ln >= coarsest_ln) && (finest_ln <= d_hierarchy->getFinestLevelNumber()));
365#endif
366 // Reset the level numbers.
367 d_coarsest_ln = coarsest_ln;
368 d_finest_ln = finest_ln;
369 d_cached_eulerian_data.resetLevels(d_coarsest_ln, d_finest_ln);
370 d_hier_cc_data_ops->resetLevels(d_coarsest_ln, d_finest_ln);
371 d_hier_fc_data_ops->resetLevels(d_coarsest_ln, d_finest_ln);
372 d_hier_sc_data_ops->resetLevels(d_coarsest_ln, d_finest_ln);
373
374 // Reset the CoarsenSchedule vectors.
375 d_of_coarsen_scheds.resize(d_finest_ln);
376 d_on_s_coarsen_scheds.resize(d_finest_ln);
377 d_on_v_coarsen_scheds.resize(d_finest_ln);
378 d_os_coarsen_scheds.resize(d_finest_ln);
379 d_oe_coarsen_scheds.resize(d_finest_ln);
380 for (int dst_ln = d_coarsest_ln; dst_ln < d_finest_ln; ++dst_ln)
381 {
382 Pointer<PatchLevel<NDIM>> src_level = d_hierarchy->getPatchLevel(dst_ln + 1);
383 Pointer<PatchLevel<NDIM>> dst_level = d_hierarchy->getPatchLevel(dst_ln);
384 d_of_coarsen_scheds[dst_ln] = d_of_coarsen_alg->createSchedule(dst_level, src_level);
385 d_on_s_coarsen_scheds[dst_ln] = d_on_s_coarsen_alg->createSchedule(dst_level, src_level);
386 d_on_v_coarsen_scheds[dst_ln] = d_on_v_coarsen_alg->createSchedule(dst_level, src_level);
387 d_os_coarsen_scheds[dst_ln] = d_os_coarsen_alg->createSchedule(dst_level, src_level);
388 d_oe_coarsen_scheds[dst_ln] = d_oe_coarsen_alg->createSchedule(dst_level, src_level);
389 }
390
391 // Reset the cell weights and compute the volume of the domain.
392 resetCellWeights(d_coarsest_ln, d_finest_ln);
393 if (d_using_wgt_fc) resetFaceWeights(d_coarsest_ln, d_finest_ln);
394 if (d_using_wgt_sc) resetSideWeights(d_coarsest_ln, d_finest_ln);
395 d_volume = d_hier_cc_data_ops->sumControlVolumes(d_wgt_cc_idx, d_wgt_cc_idx);
396
397 // Deallocate scratch data.
398 if (!d_using_wgt_cc)
399 {
400 for (int ln = d_coarsest_ln; ln <= d_finest_ln; ++ln)
401 {
402 Pointer<PatchLevel<NDIM>> level = d_hierarchy->getPatchLevel(ln);
403 level->deallocatePatchData(d_wgt_cc_idx);
404 }
405 }
406 return;
407} // resetLevels
408
409Pointer<CellVariable<NDIM, double>>
410HierarchyMathOps::getCellWeightVariable() const

Callers 15

VecDestroy_SAMRAIMethod · 0.45
initializeSolverStateMethod · 0.45
deallocate_vector_dataFunction · 0.45
free_vector_componentsFunction · 0.45
spreadForceMethod · 0.45
PCApply_SaddlePointMethod · 0.45
spreadForceMethod · 0.45
deallocateSolverStateMethod · 0.45

Calls 4

getPatchLevelMethod · 0.80
deallocatePatchDataMethod · 0.80
getFinestLevelNumberMethod · 0.45
resizeMethod · 0.45

Tested by 5

mainFunction · 0.36
mainFunction · 0.36
mainFunction · 0.36
mainFunction · 0.36
mainFunction · 0.36