> > > Anders Logg wrote: >> On Wed, Aug 20, 2008 at 04:17:11PM +0200, [EMAIL PROTECTED] wrote: >>>> [EMAIL PROTECTED] wrote: >>>>>> Can Assembler::assemble_system be easily generalised to an Array of >>>>>> DirichletBC, >>>>>> >>>>>> Array<DirichletBC*> bcs >>>>>> >>>>>> so that vector equations can be handled? >>>>>> >>>>>> Garth >>>>>> >>>>> Good point, I'll have a look. >>>>> >>>> OK, I'm taking a look at the moment with a view to generalising >>>> Assembler::assemble_system for nonlinear problems (Newton solve). >>>> >>>> Garth >>> OK, in the present implementation, the matrix does not have 1 on the >>> diagonal >>> associated with bcs. It will be 1 times the number of elements (or >>> faces) >>> associated >>> with it. >>> >>> This weighting can be stored but it is not presently done. >>> >>> Kent >> >> I amazed you even managed to implement that code. It's huge. We should >> try to break it up so we can reuse as much as possible between that >> and the standard assemble() function. >> > > I was impressed :). > > Now that what's needed is clear, it can be broken up. It looks to me > like a number of the existing functions can be extended slightly and > then re-used. The actual code for applying the bcs is not very long. > > Garth >
It is a mess, way to large and should be broken up. It is also a bit "difficult" to break up. For instance, the coefficents may or may not need to be computed depending on whether it has been computed earlier ie. after computing coefficients for a macro element it should not be needed when computing the cell integral. The same applies to dof_maps. Hence it is hard to group everything associated with eg a cell integral together in a function. Or maybe it can be done with a set of bools that contains the state of the various structures. Kent _______________________________________________ DOLFIN-dev mailing list [email protected] http://www.fenics.org/mailman/listinfo/dolfin-dev
