← Back to team overview

dolfin team mailing list archive

Re: Additions to assembler interface

 

On 26 September 2011 08:54, Anders Logg <logg@xxxxxxxxx> 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@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~dolfin
> More help   : https://help.launchpad.net/ListHelp
>


References