On 26 September 2011 08:54, Anders Logg <l...@simula.no> wrote: > As part of assembling systems on overlapping meshes (for Nitsche type > methods), my student Andre Massing is calling the regular DOLFIN > assemble function for part of the domain and then calling a special > purpose assembler (currently residing in a branch called dolfin-olm) > for terms that are not supported by the regular assembler. > > For this to work out well, I'd like to propose the following changes > to the assembler: > > 1. Make the assemble_cells, assemble_exterior/interior_facets public
I would like to cast a vote for this option, at least to make the functions protected. Kristian > We need to access these separately. > > 2. Add options for controlling if and how we call A.apply() > > A.apply() calls PETSc MatAssemblyBegin/End with MAT_FINAL_ASSEMBLY. > This makes it *very* expensive for us since we need to switch between > inserting and adding values to the matrix. We need to instead use the > option MAT_FLUSH_ASSEMBLY. It would further be useful to have an > option of not calling A.apply() at all. > > I'm not sure how this should be handled in the GenericTensor interface > since Trilinos does not seem to have a corresponding option. > > A first step would be to just add a boolean option to the assembler: > > call_apply=false > > Then we could manually flush the values in between calls. > > Opinions? > > -- > Anders > > _______________________________________________ > Mailing list: https://launchpad.net/~dolfin > Post to : dolfin@lists.launchpad.net > Unsubscribe : https://launchpad.net/~dolfin > More help : https://help.launchpad.net/ListHelp > _______________________________________________ Mailing list: https://launchpad.net/~dolfin Post to : dolfin@lists.launchpad.net Unsubscribe : https://launchpad.net/~dolfin More help : https://help.launchpad.net/ListHelp