Changes between Version 1 and Version 2 of ControllingRefinement


Ignore:
Timestamp:
09/14/11 14:29:14 (13 years ago)
Author:
Jonathan
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • ControllingRefinement

    v1 v2  
    66After all of the cells in a given parent info have been potentially marked for refinement, the subroutine NewSubGrids in [source:'Scrambler (Development)/data/data_info_ops.f90' data_info_ops.f90] groups the flagged cells into rectangular patches so that every cell is within a patch and that no patch has a filling ratio less then the !DesiredFillRatio for that level set in [GlobalDataExplained global.data].  Having a !DesiredFillRatio of 1.0 will effectively limit refinement to only cells marked for refinement however the !MinimumGridSize also set in [GlobalDataExplained global.data] may limit the actual desired fill ratios.  Having many small grids is generally not as efficient as having a few larger grids even if they comprise more cells and so a desired fill ratio of 1.0 does not usually give the best performance.  Values of .7 to .9 are recommended for optimal performance.
    77
     8||  Fill Ratio = .7  ||  Fill Ratio = .9  ||  Fill Ratio = 1.0  ||
     9|| [[Image(ErrFlag1_7.png, width=513)]] || [[Image(ErrFlag1_9.png, width=513)]] || [[Image(ErrFlag1_10.png, width=513)]] ||
     10
     11Additionally one can increase the minimum grid size to reduce the prevalence of long slender grids.  Below we increased the minimum refined patch to be 4 parent cells.  (This results in actual child grids that are at least 8x8)
     12
     13|| [[Image(ErrFlag1_10_4.png, width=513)]]
     14
     15After the new patches are determined, the distribution algorithm may split these patches to accommodate load balancing.  For example running on 3 processors we get
     16
     17||  Fill Ratio = .7  ||  Fill Ratio = .9  ||  Fill Ratio = 1.0  ||
     18|| [[Image(ErrFlag1_7_2_3.png, width=513)]] || [[Image(ErrFlag1_9_2_3.png, width=513)]] || [[Image(ErrFlag1_10_2_3.png, width=513)]] ||
     19
     20
     21
     22
     23
     24
     25
     26
     27
     28
     29
     30
     31
     32
     33
     34
     35
     36
     37
     38
     39
     40
     41
     42
     43
     44
     45
     46
     47
     48
     49
     50
     51
     52
     53
     54
     55
     56
     57
     58
     59
     60
     61
     62
     63
     64
     65
     66
     67
     68
     69
     70
     71
     72
     73
     74
     75
     76
     77
     78
     79
     80
     81
     82
     83
     84
     85
     86
     87
     88
     89
     90
     91
     92
     93
     94
     95
     96
     97
     98
     99
     100
     101
     102
     103
     104
     105
     106
     107
     108
     109
     110
     111
     112== Field Gradient Refinement ==
     113AstroBEAR 2.0 comes with the ability to refine on field gradients.  For each fluid variable, AstroBEAR checks if...
     114
     115[[latex($\frac{|q_{i+1}-q_{i}|}{\max \left({\frac{|q_{i+1}|+|q_{i}|}{2},\mbox{MinScale}} \right)} > \mbox{tol}$)]]
     116
     117and marks cell {{{i+1}}} and cell {{{i}}} for refinement.  This is essentially [[latex($\Delta x \frac{\partial log(q)}{\partial x}$)]].  The [[latex($\Delta x$)]] is for the current grid resolution and results in coarser levels being more sensitive to fluid gradients for a given tolerance.  The values of tol is found by multiplying the qTolerance for the level with the refineVariableFactor for the fluid variable and MinScale is dependent on which field you are considering.
     118
     119== Jeans Criteria ==
     120When Self Gravity is turned on, refinement is flagged based on the Jeans criterion
     121
     122== !ProblemSetErrFlag ==
     123
     124Users can manually set error flags based on any other criteria (position, etc...) in their problem module
     125
     126== Particles ==
     127
     128Sink Particles have a buffer array that triggers refinement within a certain distance of a particle.