diff options
author | Erik Schnetter <schnetter@gmail.com> | 2012-09-04 14:29:35 -0400 |
---|---|---|
committer | Barry Wardell <barry.wardell@gmail.com> | 2012-09-11 18:23:36 +0100 |
commit | 8d514c8daac1e54e09b34f3bfdd9dc820a5f9a81 (patch) | |
tree | 942cc7c203402f28006476bab6310bc3f0b1081b /Carpet/CarpetLib/src/ggf.cc | |
parent | fecf73f5fe4584c2023f9d9a1fdf89e9f4a25e0d (diff) |
CarpetLib: Support prolongating faces
Add infrastructure to prolongate faces of grid functions. This may be used during refluxing to apply part of the correction to the fine grid.
Diffstat (limited to 'Carpet/CarpetLib/src/ggf.cc')
-rw-r--r-- | Carpet/CarpetLib/src/ggf.cc | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/Carpet/CarpetLib/src/ggf.cc b/Carpet/CarpetLib/src/ggf.cc index dbabfe1c7..17f9d9406 100644 --- a/Carpet/CarpetLib/src/ggf.cc +++ b/Carpet/CarpetLib/src/ggf.cc @@ -516,6 +516,32 @@ ref_reflux_all (comm_state & state, +// Reflux-prolongate a refinement level +void +ggf:: +ref_reflux_prolongate_all (comm_state & state, + int const tl, int const rl, int const ml, + int const dir, int const face) +{ + static Timer timer ("ref_reflux_prolongate_all"); + timer.start (); + // Require same times + static_assert (abs(0.1) > 0, "Function CarpetLib::abs has wrong signature"); + assert (abs(t.get_time(ml,rl,tl) - t.get_time(ml,rl-1,tl)) <= + 1.0e-8 * (1.0 + abs(t.get_time(ml,rl,tl)))); + islab slabinfo; + slabinfo.is_centered = 1 - ivect::dir(dir); + transfer_from_all (state, + tl,rl,ml, + dh::fast_dboxes::fast_ref_refl_prol_sendrecv[dir][face], + tl,rl-1,ml, + false, false, + &slabinfo); + timer.stop (0); +} + + + // Transfer regions of all components void ggf:: |