Skip to content

Draft: Feature/gridvar based assembly

Dennis Gläser requested to merge feature/gridvar-based-assembly into master

An attempt to add the minimum changes necessary to support grid-vars-based assembly with the new grid variables interface (i.e. not carrying prevGridVars, but representing one state of the solution)...

Adds a helper class to detect if the given grid vars have the "new interface" (detecting gridVars.volVars()), which is used in several places to alter the behaviour of certain classes. For instance, the LocalAssembler is changed to operate as such:

LocalAssembler localAssembler{..., gridVariables};
localAssembler.assembleJacobian(matrix);

instead of the current

LocalAssembler localAssembler{..., curSol};
localAssembler.assemble(matrix, gridVars);  // gridVars must actually fit to curSol :/

This implementation actually does not make use of the localView concept of grid variables, in order not to have to touch all the interfaces. As mentioned, the idea was to do the minimum necessary to enable gridvars-based-assembly.

Supersedes !3570, which should be closed in case we prefer this.

Notes for the reviewer

TODO: insert text here

Before you request a review from someone, make sure to revise the following points:

  • does the new code follow the style guide?
  • do the test pipelines pass? (see guide on how to run pipelines for a merge request)
  • is the code you changed and/or the new code you wrote covered in the test suite? (if not, extend the existing tests or write new ones)
  • does your change affect public interfaces or behavior, or, does it introduce a new feature? If so, document the change in CHANGELOG.md.
  • is the list of the header includes complete? ("include what you use")
  • all files have to end with a \n character. Make sure there is no \ No newline at end of file comment in "Changes" of this MR.
  • (if not applicable remove) are newly introduced or modified physical values/functions backed up with a scientific reference (including doi) in the docs?
  • (if not applicable remove) if the examples are modified, is the documentation regenerated (using generate_example_docs.py)
Edited by Dennis Gläser

Merge request reports