← Back to team overview

dolfin team mailing list archive

Re: Additions to assembler interface

 

On Sunday September 25 2011 23:54:57 Anders Logg 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
> 
> We need to access these separately.
> 
> 2. Add options for controlling if and how we call A.apply()

Wouldn't this be unnesseary if 1 is implemented? Then you just impement your 
own more flexible assemble routine?

Johan

> 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@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~dolfin
> More help   : https://help.launchpad.net/ListHelp


Follow ups

References