Integrator:formEleTangent() versus formTangent method..

For developers writing C++, Fortran, Java, code who have questions or comments to make.

Moderators: silvia, selimgunay, Moderators

Post Reply
nspk
Posts: 6
Joined: Tue Jan 22, 2013 11:00 am

Integrator:formEleTangent() versus formTangent method..

Post by nspk » Tue Jan 22, 2013 11:19 am

Am trying to trace the sequence of events happening during a linear/nonlinear analysis.

In the Integrator subclasses, there is a method formEleTangent() which forms the tangent matrix after iterating all over the elements(similar method for nodes).
However all solution algorithm methods in EquisolnAlgo Subclasses whether linear, or newton raphson, are calling the parallel(and more simpler) method formTangent() while solving the current step.

So what is the basis behind choosing formTangent() over formEleTangent()? Why such two parallel ways?

After reading frank's thesis, the method formEleTangent() made more sense to me for getting the complete K*e matrix..
Someone kindly throw light... :?

fmk
Site Admin
Posts: 5883
Joined: Fri Jun 11, 2004 2:33 pm
Location: UC Berkeley
Contact:

Re: Integrator:formEleTangent() versus formTangent method..

Post by fmk » Tue Jan 22, 2013 11:55 am

the formTangent() methods appear high up in the class hierarchy (i.e. IncrementalIntegrator or TransientIntegrator). These methdods contain the loops to iterate over elements and nodes. As a consequence of this method, the algorithims do not have to include code to do these loops; they only need to invoke formTangent().

The formEleTang() is called by the formTangent method. I could have just let every subclass of integrator implement the formTangent method by iterating over all ele and nodes and doing the code in the formEleTang() in the inner most loop. however why duplicate all the code in all the classes? it's not good OOP design to do so. hence the solution we have.

the concrete integrator classes implement the formEleTang as they are the ones who know what each elements contribution will be (especially true for the transient integrators). the formTangent() method appears higher up in the class hierarchy and is not implemented by all the integrators. it is this one called by the solution algorithms. The code for the algorithms is made simpler by the fact that they do not have to iterate over all the elements and nodes. Likewise the code for the many integrators is made simpler in a similar fashion.

nspk
Posts: 6
Joined: Tue Jan 22, 2013 11:00 am

Re: Integrator:formEleTangent() versus formTangent method..

Post by nspk » Tue Jan 22, 2013 5:36 pm

Could appreciate the OOP but was exasperated finding out from where the call to getEleTang() is going through. Your explanation cleared it up.

Thanks frank!!

indianfashion
Posts: 1
Joined: Tue Aug 29, 2017 11:14 pm
Contact:

Re: Integrator:formEleTangent() versus formTangent method..

Post by indianfashion » Tue Aug 29, 2017 11:16 pm

Thanks for providing useful information . I found some really interesting stuff in your blog especially this discussion. Keep up the good work.

Post Reply