Dear Andreas,

J is for  half of the elements diagonal. So if Rm  is also diagonal,  the 
LU factorization will be avoided in those cases.
(Provided  what you say for \ also applies to the /.)

Bravo.   And many thanks.  It was driving me nuts.

Petr


On Saturday, December 13, 2014 4:13:50 PM UTC-8, Andreas Noack wrote:
>
> I don't know how J looks, but could it be that it is diagonal? If so, I 
> have an idea for the reason for this. If you look here
>
> https://github.com/JuliaLang/julia/blob/master/base/linalg/dense.jl#L412
>
> you can see the \ checks if the matrix is diagonal. If it is, the solver 
> uses the \(Diagonal, Matrix) method which avoid the LU factorization that 
> \(Matrix, Matrix) uses.
>
> Do you think that is the reason?
>
> 2014-12-13 17:56 GMT-05:00 Petr Krysl <krysl...@gmail.com <javascript:>>:
>>
>> You're absolutely right, sorry!  I got distracted and I forgot to post 
>> instructions.  I've also tried to simplify things, and I think I've gotten 
>> it down to just a few lines of code. Unfortunately, the rest of the code 
>> still needs to be there for declarations and such (https://github.com/
>> PetrKryslUCSD/Test_jfineale).
>>
>> The rotation matrix gets used in one place only. Refer to lines 68ff in 
>> conductivity() from FEMMHeatDiffusionModule.jl.
>>
>>             # Here is that rotation matrix Rm
>>             FEMMBaseModule.getRm!(self.femmbase,Rm,Ns[j]'*x,J,labels[i]); 
>> # Material orientation matrix
>>             # And here is the only place it gets used
>>             gradN = gradNparams[j]/(Rm'*J); # gradient WRT material 
>> coordinates
>>             #
>>
>> conductivity() is the last thing called in the driver. Picking Rm on line 
>> 41  of the driver (Poisson_FE_example.jl) leads to different  computation 
>> CPU times.
>>
>> Petr
>>
>> On Saturday, December 13, 2014 1:37:36 PM UTC-8, Steven G. Johnson wrote:
>>>
>>> Unfortunately, it's not really reasonable for people on a mailing list 
>>> to dissect such a large body of code; you need to boil it down to a smaller 
>>> example that illustrates the behavior you mentioned.
>>>
>>

Reply via email to