Anders Logg wrote: > On Tue, Jan 15, 2008 at 03:29:27PM -0500, Jake Ostien wrote: > >> Firstly, I am trying to update my code to the latest version of DOLFIN >> (pulled today). I am getting an assertion error while trying to >> initialize a discrete vector (which obviously worked previously, say the >> 0.7.1 release). >> >> Here is the general flavor of what I am doing >> >> <In the constructor of a NonlinearProblem class> >> >> BilinearForm a; >> LinearForm L(f, g, h); >> >> Vector vec; >> Function func; >> >> func.init(mesh, vec, *L, 3); >> > > The last argument seems suspicious. You have a form with only three > arguments and you ask for the forth function space associated with the > form. If you want a Function corresponding to the h function, try with > a 2 instead. > DiscreteFunction::init computes num_arguments = form.rank() + form.num_coefficients() as a check. I read that as providing basically an offset (by the form rank) of the argument number. This previously worked for me, and I never argued with a success, even though the convention you imply is more intuitive.
But now in the operator[], dof_map_set.size() only seems to be as large as the form rank. So taking my actual code (not an example) I have in my constructor < some stuff > a = new DGSGPaBilinearForm(tan, n, h, alpha, k, mu, lambda, plastic_flag); < some other stuff > plastic_flag.init(mesh, pflag_vec, *a, 9) which made sense if you take a rank two form (0,1) plus the arguments (2,3,4,5,6,7,8,9). After the update in the DofMapSet::operator[] method dof_map_set.size() is 2 and i is 9, so obviously the assertion fails. Now, curiously, when I go back and check the version I was using, I see different behavior, such that the operator[] is never called during construction. I'm confused about this, so I'll look some more, but I'm open to suggestions from anyone who knows the system better than me. Jake > Also, prefer to use the constructor directly instead of init: > > Function func(mesh, vec, L, 2); > > _______________________________________________ DOLFIN-dev mailing list [email protected] http://www.fenics.org/mailman/listinfo/dolfin-dev
