You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This issue is a coordinating issue for improvements of the planned AdParser class to be implemented in #1181 and is downstream from that issue. Right now, this is just a bank of ideas.
Caching and recomputations
Part of the motivation for introducing the AdParser is to be able to cache evaluations of Ad operator trees, or subtrees. A key step will be to identify which subtrees can be regarded as static between non-linear iterations, time steps etc.; for clarity the decision on how and whether to do caching for specific terms is a different matter. Some rules of thumb will clearly apply:
Variables change between non-linear iterations (with a possible exception if we implement splitting schemes on the non-linear level, but that would require the introduction of a notion of active/passive variables or similar).
Discretizations change if the term is non-linear. The model will know about this.
Time-dependent dense arrays can change between time steps, but not inside the non-linear solver.
Grid-related quantities change if the grid changes, e.g. for AMR, fracture propagation, or large deformation. The user setting up the model should know about this.
A pragmatic approach to detecting changed and unaltered Ad operator trees could be to define a tagging system (an Enum?) which describes the above classification scheme, or similar, and assign tags to individual operators.
TBC.
The text was updated successfully, but these errors were encountered:
This issue is a coordinating issue for improvements of the planned
AdParser
class to be implemented in #1181 and is downstream from that issue. Right now, this is just a bank of ideas.Caching and recomputations
Part of the motivation for introducing the
AdParser
is to be able to cache evaluations of Ad operator trees, or subtrees. A key step will be to identify which subtrees can be regarded as static between non-linear iterations, time steps etc.; for clarity the decision on how and whether to do caching for specific terms is a different matter. Some rules of thumb will clearly apply:A pragmatic approach to detecting changed and unaltered Ad operator trees could be to define a tagging system (an Enum?) which describes the above classification scheme, or similar, and assign tags to individual operators.
TBC.
The text was updated successfully, but these errors were encountered: