Skip to content

Block-implicit assembly abstraction

James Sutherland requested to merge assembly-abstraction into master
  1. Modify block-implicit matrix assembly to work through a four-part abstraction:
  • chain rule assembly
  • matrix mod/transformation (one transformation for now, possibly an arbitrary number later)
  • augment matrix for the time integration
  • preconditioner (performed as a mod)
  1. Add matrix mod interface, time integration augmentation mod, identity adder mod, and some simple examples for a test

  2. Add chain rule assembler interface, direct accumulator of sensitivities (no special indexing), and a test with a custom assembler class

  3. Add a virtual method for setting sensitivity calculations in the BDF integrators, because block-implicit needs sensitivities determined by the chain rule assembler while variable-implicit needs residual sensitivities to the nonlinear iteration variables

  4. In dual time tests: move variable and rhs tag construction ahead of the integrator construction because block-implicit needs it for chain rule assembly

Merge request reports

Loading