void refine(BoxLayout& a_output, const BoxLayout& a_input, int a_refinement) { if (!a_input.isClosed()) { MayDay::Error("input to refine must be called with closed BoxLayout"); } if (a_output.isClosed()) { MayDay::Error("output of refine must be called on open BoxLayout"); } a_output.deepCopy(a_input); for (int ivec = 0; ivec < a_output.m_boxes->size(); ivec++) { (*a_output.m_boxes)[ivec].box.refine(a_refinement); } a_output.close(); }
void coarsen(BoxLayout& a_output, const BoxLayout& a_input, int a_refinement) { if (!a_input.isClosed()) { MayDay::Error("input to coarsen must be called with closed BoxLayout"); } if (a_output.isClosed()) { MayDay::Error("output of coarsen must be called on open BoxLayout"); } //a_output.deepCopy(a_input); a_output.m_boxes = RefCountedPtr<Vector<Entry> >(new Vector<Entry>(*(a_input.m_boxes))); a_output.m_layout = a_input.m_layout; #ifdef CH_MPI a_output.m_dataIndex = a_input.m_dataIndex; #endif for (int ivec = 0; ivec < a_output.m_boxes->size(); ivec++) { (*a_output.m_boxes)[ivec].box.coarsen(a_refinement); } a_output.close(); }