On 20 January 2011 14:59, Marie E. Rognes <[email protected]> wrote: > On 01/20/2011 02:55 PM, Kristian Ølgaard wrote: > > On 20 January 2011 14:32, Marie E. Rognes <[email protected]> wrote: > > Repeated runs of the dolfin generate-form-files scripts seems to generate > different code. For instance for the forms defined in > > /demo/undocumented/dg-advection-diffusion/cpp/AdvectionDiffusion.ufl > > I get differences of the type > > - G[1] = 0.500000000000000*det*n1; > - G[2] = 0.500000000000000*det; > + G[1] = 0.500000000000000*det; > + G[2] = 0.500000000000000*det*n1; > > in tabulate_tensor and corresponding differences for the tensor terms. The > code seems equivalent, but this behaviour makes it tedious to check for > changes in the generated code. Has anyone else experienced this? > > Not lately, but I haven't been looking for it either. The quadrature > generator uses dicts heavily, so somewhere we need to throw in a > sorted(.keys()) to get rid of this behaviour but I don't know where > exactly. > > Do you have any guesses (other than in quadrature/*)? I can fix if you point > me in the right direction.
Yes, in quadraturegenerator.py the dictionary geo_consts from the ir is already created, and since the randomness only appears when optimisations are on, the 'random' geo_consts dictionary must be generated in quadratureoptimization.py. Expressions are added to the dictionary by the function optimise_code from quadrature.symbolics but the problem might have something to do with the order by which this function is called (the loops in the _*() functions in quadratureoptimization.py). Kristian > -- > Marie > > _______________________________________________ Mailing list: https://launchpad.net/~ffc Post to : [email protected] Unsubscribe : https://launchpad.net/~ffc More help : https://help.launchpad.net/ListHelp

