Version 19 (modified by 12 years ago) ( diff ) | ,
---|
This page is intended to be somewhere between a blog and a wiki. I post things about about the BearCLAW code that bother me, either because I don't understand the code or because I don't understand the reasoning behind a design decision, as well as any answers I might dig up. This way I can keep track of things that need attention without breaking the flow of what I'm doing.
Coarsening Algorithm
[BDS] [2007-06-21] This whole business in CoarseInit of creating temporary NodeInfo structures every time you want to coarsen a cell seems a little inefficient. Among other things, given the way EstimateErrors is called using the ApplyOnLevel() function, it means that the NodeInfo population is doubled and then halved with each time step. Maybe there's a heuristic somewhere that I haven't seen yet, but it just seems odd.
Restrict function
[BDS] [2007-06-21] I'm not sure by looking at it what this function does. It looks like it does something to the field variable arrays in the Child
parameter, but I'm not sure precisely what.
UPDATE [BDS] [2007-06-21] I've received an answer on this one. Restrict() is essentially an extension of the coarsening process, updating the cooling and MHD fields according to the coarsening of the grid.
PeriodicPairs function
[BDS] [2007-06-28] The PeriodicBC function calls PeriodicPairs() using the same NodeInfo structure for both input parameters; I'm not precisely sure why anyone would want to do that, since presumably the cells that are overlapping already have the same configuration.
NewSubGrids function
[BDS] [2007-06-29] It looks like there are a few functions here that could have some parameters removed, as well as some possible code/algorithm cleaning-up in the NewSubgrids() function.
GridAdapt function
[BDS] [2007-07-02] The following section of code should probably be checked for redundancy:
! Call user node initialization for newly-created grids. CALL ApplyOnLevel(level+1, ProblemInit, Dummy) # if defined MPIBEAR !!DEC$ IF DEFINED(MPIBEAR) iErr = MPI_Dispatch_Finalize(BEARf_ProblemNodeInfoInit) !!DEC$ ENDIF # endif CALL SetGhost(level+1) ! Call user node initialization for newly-created grids. CALL ApplyOnLevel(level+1, ProblemInit, Dummy) # if defined MPIBEAR !!DEC$ IF DEFINED(MPIBEAR) iErr = MPI_Dispatch_Finalize(BEARf_ProblemNodeInfoInit) !!DEC$ ENDIF # endif
Presumably the SetGhost() function changes things somehow, but we'll have to see.
OverlapAuxCopy function
There are a couple of increment/decrement calls for mS
that don't need to be there (leastways they don't actually change the functioning of the program).