Thank you. This cleared up my confusion very well.
This is a list of follow-up statements that I believe to be true. If they are correct statements, you don't need to reply. :)
- In updatePhiPDEInfo() the user sets pdeInfo.numLevels and pdeInfo.ifLevel. These values, along with amr.refine_ratio from the XML file configure the number and size of subgrids in a unit box.
- In updateIfGridAMRTags() the user sets the maximum size of amr refinement boxes for solving the PDE, by setting the amr level for the unit box.
- If the amr level for the unit box is coarser than the pdeInfo.ifLevel set in updatePhiPDEInfo(), all of the subgrids that are finer than the specification will share the solution of the coarser size that was used in the solution.
- In updatePhiPDEInfo() the user sets pdeInfo.v_tagExpansionSize to force a same resolution gridding pad of some number of unit boxes around unit boxes that are finely gridded.
- If cells may interact with a unit box before the next regridding, that unit box should be marked at the finer resolution desired, either through v_tagExpansionSize, or finestLevel in updateIfGridAMRTags().
- Keeping unit boxes marked for coarser resolution when finer resolution is not needed, should increase calculation efficiency.