[EMAIL PROTECTED] wrote: >> >> 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.
Is there so much overhead involved in this? We're probably recomputing these things in the other assembly functions. Perhaps there is noticeable overhead, and that's why assemble_system is faster? 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. > I'm testing now whether an Array of boundary condition can be applied as simply as I think. If that works, assemble_system should be fully functional and we can try breaking it up. Garth > Kent > > > > _______________________________________________ DOLFIN-dev mailing list [email protected] http://www.fenics.org/mailman/listinfo/dolfin-dev
