[EMAIL PROTECTED] wrote:
>> It would be useful to lay out a plan for tackling DofMaps. Getting this
>> right is the key to parallel assembly, assembly optimisations and
>> applying Dirichlet boundary conditions by eliminating Dirichlet dofs
>> from the global system.
>>
> 
> I think I will look at the Dirichlet conditions in a little while, since I
> like symmetric matrices. I think I will enforce the bc at element level so
> the assemble function
> will need to take in bc.
> A = assemble(form, mesh, bc)
> or for systems
> A = assemble([form00, form01, form10, form11], mesh, [bc0, bc1])
> or something similar.
> 

Some linear algebra packages only assemble terms with a positive index 
in the dof map, and ignore negative integers. I'm pretty sure that PETSc 
does this. A good start would be to use minus signs in the dof map for 
dofs with Dirichlet bcs.

Garth



> The element-level-wise elimination should be easy enough
> to extend to parallel systems.
> 
> 
> Kent
> 
> 
>> I'm happy to take a look, but I'll need some time because I've lost my
>> overview of DofMaps. If someone else is already on top of it, I'd be
>> happy to provide feedback.
>>
>> Garth
>>
>>
>> Anders Logg wrote:
>>> On Mon, Jun 16, 2008 at 10:45:18PM +0200, Martin Sandve Alnæs wrote:
>>>> 2008/6/16 Anders Logg <[EMAIL PROTECTED]>:
>>>>> On Mon, Jun 16, 2008 at 10:10:32PM +0200, Martin Sandve Alnæs wrote:
>>>>>> 2008/6/16 Anders Logg <[EMAIL PROTECTED]>:
>>>>>>> On Mon, Jun 16, 2008 at 09:46:23PM +0200, Martin Sandve Alnæs wrote:
>>>>>>>> 2008/6/16 Anders Logg <[EMAIL PROTECTED]>:
>>>>>>>>> On Mon, Jun 16, 2008 at 07:06:20PM +0200, Martin Sandve Alnæs
>>>>>>>>> wrote:
>>>>>>>>>> I think DofMapSet should be independent of the form it was
>>>>>>>>>> initialized with.
>>>>>>>>>> I believe the sharing of a single set of dofmaps among different
>>>>>>>>>> forms is one
>>>>>>>>>> of the key tasks of this class, and that the vector with form
>>>>>>>>>> argument dofmaps
>>>>>>>>>> should rather be obtained on demand:
>>>>>>>>> Agree.
>>>>>>>>>
>>>>>>>>>>   // Get vector of dofmaps (possibly not unique) for each
>>>>>>>>>> argument of form
>>>>>>>>>>   dofmapvector = dofmapset.getDofMaps(form);
>>>>>>>>> What does this function do?
>>>>>>>> Gets a vector<DofMap*> with length equal to form.rank() +
>>>>>>>> form.num_coefficients(),
>>>>>>>> where each DofMap* is the same if the signature is the same.
>>>>>>>> In other words, constructs and returns what is currently a member:
>>>>>>>>
>>>>>>>>     // Array of dof maps for current form
>>>>>>>>     std::vector<DofMap*> dof_map_set;
>>>>>>>>
>>>>>>>> but on the fly for a given form such that DofMapSet isn't
>>>>>>>> associated with any particular form.
>>>>>>> ok, now I understand what you mean. But I would suggest
>>>>>>>
>>>>>>>  DofMap& dof_map = dofmapset.extractDofMap(form, i);
>>>>>> Agree, that was the second function I suggested.
>>>>> ok.
>>>>>
>>>>>>> Or are we going to pass around Arrays of DofMaps?
>>>>>> It was just a convenience function to replace the existing
>>>>>> functionality, but this functionality should probably rather
>>>>>> be in UFC or something.
>>>>> DofMapSet? Perhaps, but that would mean putting *functionality* into
>>>>> UFC which we haven't done so far (except the Python boilerplate).
>>>> I'm just guessing here, I imagine the vector of dofmaps for a form
>>>> is only used in the context of assembly, and then they can be
>>>> picked out together with other data in UFC. You or Garth put
>>>> this vector<DofMap*> in DofMapSet in the first place, feel free
>>>> to decide where to have it :)
>>> It's also used in assemble.py for things like initializing Functions,
>>> but I think this can be greatly enhanced once the DofMapSet is not
>>> tied to a particular form.
>>>
>>>
>>>
>>> ------------------------------------------------------------------------
>>>
>>> _______________________________________________
>>> DOLFIN-dev mailing list
>>> [email protected]
>>> http://www.fenics.org/mailman/listinfo/dolfin-dev
>>
>> _______________________________________________
>> DOLFIN-dev mailing list
>> [email protected]
>> http://www.fenics.org/mailman/listinfo/dolfin-dev
>>
> 
> 
_______________________________________________
DOLFIN-dev mailing list
[email protected]
http://www.fenics.org/mailman/listinfo/dolfin-dev

Reply via email to