pdeInfo.v_tagExpansionSize

21 views
Skip to first unread message

Curtis Larsen

unread,
Jul 6, 2017, 2:52:39 PM7/6/17
to Biocellion Support
I don't understand pdeInfo.v_tagExpansionSize.

I'm currently doing this:   pdeInfo.v_tagExpansionSize.assign( NUM_AMR_LEVELS, 0 );

Which is consistent with the requirement that 0 has to be assigned for the coarsest AMR level, so the code runs.  But I don't know what effect this has.


seunghwa.kang

unread,
Jul 6, 2017, 2:57:08 PM7/6/17
to Biocellion Support
That is fine if your distribution of agents is pretty static.

But if you're regrdding only infrequently and if your collection of agents are expected to grow somewhat significantly within a single regridding interval, you may want to have some safety margins.

v_tagExpansionSize is introduced to allow such safety margins.

Let me know if you need further clarification.

Thank you very much,

-seunghwa

Curtis Larsen

unread,
Jul 7, 2017, 3:47:21 PM7/7/17
to Biocellion Support
I'm pretty sure I don't get it yet.  So, correct my misunderstandings in this description.

Regridding is when the AMR algorithm decides what part of the domain needs to be in small grid boxes, and what part needs to be in larger grid boxes.  Tags help mark regions where changes in the grid may need to occur. The tagExpansionSize is used to decide when to tag a region for division into smaller grids.

So, if the number of agents in an area changes quickly, I'll want a tagExpansionSize number larger than 0 to force regridding.  What are the units of tagExpansionSize?  Do I use a 1, a 2, a 100, a 1000...?

Thanks for your patience.


seunghwa.kang

unread,
Jul 7, 2017, 4:33:53 PM7/7/17
to Biocellion Support
Regridding is when the AMR algorithm decides what part of the domain needs to be in small grid boxes, and what part needs to be in larger grid boxes.
=>
Correct, you set the regridding interval in the xml configuration file.
 
Tags help mark regions where changes in the grid may need to occur.
=>
You tag each interface grid unit box with a desired AMR level. Biocellion does not automatically decide a desired AMR level. Users mark each unit box with a desired AMR level. So if there are two levels (fine & coarse), a unit box marked with the fine level is guaranteed to be included in fine grids. A unit box marked with the coarse level may or (mostly) may not be included in fine grids.

The tagExpansionSize is used to decide when to tag a region for division into smaller grids.
=>
So if you tag a collection of unit boxes with the fine level, Biocellion generates a set of boxes that covers the marked unit boxes. If tagExpansionSize is set, Biocellion grows these boxes by the tagExpansion size, and the entire set of unit boxes covered by theses grown boxes are guaranteed to be included in fine grids.

So, if the number of agents in an area changes quickly, I'll want a tagExpansionSize number larger than 0 to force regridding.  What are the units of tagExpansionSize?  Do I use a 1, a 2, a 100, a 1000...?
=>
Re-gridding interval is set in the xml configuration file. The unit for tagExpansionSize is interface grid unit box. So say there is a colony of cells, and you wish to cover any unit box overlaps with the colony to be covered by fine grids. And the size of the colony can grow by up to 3 unit boxes within the single regridding interval, you set the tagExpansionSize to 3.

Is this clear? or have any questions?

Thank you very much,

-seunghwa


On Thursday, July 6, 2017 at 11:52:39 AM UTC-7, Curtis Larsen wrote:

Curtis Larsen

unread,
Jul 7, 2017, 9:03:26 PM7/7/17
to Biocellion Support
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.

Reply all
Reply to author
Forward
0 new messages