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

Reply via email to