Changes between Version 3 and Version 4 of AstroBearAmr
- Timestamp:
- 05/19/11 12:26:47 (14 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
AstroBearAmr
v3 v4 62 62 * '''{{{SetErrFlags(n)}}}''' -- Determine which regions to refine. Refinement regions are determined by the physical processes involved, as well as specific conditions imposed by the problem modules. 63 63 * '''{{{BackupNodes(n+1)}}}''' -- Caches the nodes on the child level (n+1). We are about to create the new level {{{n+1}}} nodes, and the data referenced by the backed-up nodes will be used when {{{ApplyOverlaps(n+1)}}} is called (see above). 64 * '''{{{CreateChildrens(n)}}}'''-- A favorite of hillbillies everywhere, this routine creates child nodes on level {{{n+1}}} using the refinement flags seton level {{{n}}}.64 * '''{{{CreateChildrens(n)}}}'''-- This routine creates child nodes on level {{{n+1}}} using the refinement flags set on level {{{n}}}. The use of "Childrens" here is not a typo; {{{CreateChildrens()}}} is so named because it applies the {{{CreateChildren(Info)}}} subroutine to each grid on level {{{n}}}. 65 65 * '''{{{InheritOldNodeOverlapsChildren(n)}}}''' -- Nested grids mean that spatial relationships (overlaps and neighbors) are inherited from parent grids. This routine passes information about the previous generation of {{{n+1}}} grids to the new grids created by {{{CreateChildrens(n)}}}. This routine is ''only'' executed on step 1 of the {{{AMR()}}} execution loop. 66 66 * '''{{{InheritNewNodeOverlapsChildren(n)}}}''' -- The children of previous level {{{n}}} grids will also need to send their data to the children of new level {{{n}}} grids. 67 * '''{{{InheritNeighborsChildren(n)}}}''' -- The children of neighboring grids on level {{{n}}} will very likely be neighbors. This routine passes neighbor information from level {{{n}}} to level {{{n+1}}}.68 * !AdvanceGrids - Performs hyperbolic advance of data structures69 * AMR(n+1)- Launches AMR routine on the child level70 * !ApplyChildrenData - Inverse of !ProlongateParentData - Applies restricted data from child grids to improve solution on coarser parent grids.71 * !SyncFluxes - To enforce mass conservation and DivB constraint - common fluxes usedat grid boundaries need to be synchronized.72 * !AccumulateFluxes - We need to accumulate the used fluxes to send back to our parent grids.67 * '''{{{InheritNeighborsChildren(n)}}}''' -- The children of neighboring grids on level {{{n}}} will likely be neighbors on level {{{n+1}}}. This routine passes neighbor information from level {{{n}}} to level {{{n+1}}}. 68 * '''{{{AdvanceGrids(n)}}}''' -- Performs the hyperbolic advance step on the grids of level {{{n}}}. This is where our numerical solvers come in. 69 * '''{{{AMR(n+1)}}}''' -- Launches AMR routine on the child level 70 * '''{{{ApplyChildrenData(n)}}}''' -- The inverse of {{{ProlongateParentData()}}}, this routine restricts data from the child grids onto their parent grids, providing a more accurate solution on the coarser level. 71 * '''{{{SyncFluxes(n)}}}''' -- To enforce mass conservation and the DivB constraint, the fluxes at grid boundaries need to be synchronized. 72 * '''{{{AccumulateFluxes(n)}}}''' - Accumulates the fluxes used on level {{{n}}} to send back to the parent grids on level {{{n-1}}}. 73 73 74 74 * Step 2