template<int dim>
class AssemblyLMH< dim >
Prove of concept for general assembly scheme. Ideas:
- Local assembly class for given DIM provides assembly methods for:
- local assembly on elements of dimension DIM
- local assembly on edges/faces of neighbouring elemnts of dimension DIM
- local assembly of interactiong elements DIM and OTHER_DIM with OTHER_DIM < DIM
- Such class template would be necessary to create particular instance of Assembler class, that takes job of pass through the mesh, precomputing necessary fields, etc. This allows to manage order of assembled entities in arbitrary way in order to use caches and vectorisation efficiently.
- Separate local assembly template would be necessary for every pass through the mesh, but it may delegate its actions to a single general local assembly class.
- The local assembly class gets an Accessor object for particular domain of the assembly, i.e. ElementAccessor for element assembly, FaceAccessor for interface intergrals assembly, and InteractionAccessor for assembly of interaction of two elements, e.g. for XFEM there may be an interaction between every 3D element within the enrichment with appropriate 1D elemnt on the well. These accessors provides methods to access fields values as well as the DOF indices on the element(s).
- Results of the assembly are passed to the global linear algebra objects collected in the RichardSystem class, global indices (which are still local indicies of the single process) provided by accessors are used.
TODO:
- finish functional Richards model
- move whole internals of the assembly_mh_matrix into local assembly classes
- mean while: imporve accessors, imporve mesh and DOF handler interface; possibly create new mesh implementation used in Darcy first and then apply it to other equations
Definition at line 47 of file assembly_lmh.hh.