← Back to team overview

dolfin team mailing list archive

Re: Additions to assembler interface

 

On 26 September 2011 08:06, Johan Hake <johan.hake@xxxxxxxxx> wrote:
> 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.
>>

Sounds ok.

>> 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?
>

Agree.

To do something fancier with 'apply', you'll need to check the other
backends. You would also need to think carefully about how it would
work in parallel when adding/inserting entries on different processes.

Garth

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


References