Search found 6 matches

by nspk
Wed Feb 27, 2013 5:40 am
Forum: OpenSees.exe Users
Topic: Confusion over Load/Disp Control in Transient Analysis
Replies: 1
Views: 558

Confusion over Load/Disp Control in Transient Analysis

Hello
As per Opensees way of working, I am provided Load Control or Displacement Control Integrators only for Static Problems.
For Dynamic Ones I need to use something like Newmark.
However if I'm not mistaken Newmark is kind of an integration scheme to build up response at t+dt from the current response at t. Other than that it should not do anything. So where do we specify the stuff that usually goes in load control or displacement control for static problems, like load steps, and way of searching for equilibrium via line-search, arclength search, or simple load control? :?
by nspk
Sat Feb 16, 2013 2:59 am
Forum: Framework
Topic: Lapack Solver Input A
Replies: 1
Views: 1426

Lapack Solver Input A

The band storage process as per lapack documentation points to storing of the A matrix(of AX=B) as another compacted matrix. Quoting from the lapack documentation -
"An m-by-n band matrix with kl subdiagonals and ku superdiagonals may be stored compactly in a two-dimensional array with kl+ku+1 rows and n columns."
--http://www.netlib.org/lapack/lug/node124.html

Also given in opensees wiki:
--http://opensees.berkeley.edu/wiki/index ... eneral_SOE

How is it then that the opensees classes BandGenLinSOE and BandGenLinLapackSolver.cpp are storing the data as a single dimensioned array double* A and also sending this to the DGBSV module of lapack?
by nspk
Tue Feb 05, 2013 8:07 am
Forum: Framework
Topic: element by element solution strategies
Replies: 0
Views: 1048

element by element solution strategies

I see that a section of member functions of FE_Element Class - the ones pasted below are expected to be used for element by element solution strategies.
I want to know where(in which class) is the element by element strategy implemented since integrators seem to implement the standard full matrix K*X=P.


// methods for ele-by-ele strategies
virtual const Vector &getTangForce(const Vector &x, double fact = 1.0);
virtual const Vector &getK_Force(const Vector &x, double fact = 1.0);
virtual const Vector &getKi_Force(const Vector &x, double fact = 1.0);
virtual const Vector &getC_Force(const Vector &x, double fact = 1.0);
virtual const Vector &getM_Force(const Vector &x, double fact = 1.0);
virtual void addM_Force(const Vector &accel, double fact = 1.0);
virtual void addD_Force(const Vector &vel, double fact = 1.0);
by nspk
Thu Jan 24, 2013 9:47 am
Forum: Documentation
Topic: Documentation for FE formulation.
Replies: 1
Views: 2235

Documentation for FE formulation.

It seems most of the Opensees FE formulation for getting the matrices and vectors is following from Frank Mckenna's Thesis Section 3.2 of thesis-Object-Oriented Finite Element Programming: Frameworks for Analysis, Algorithms and Parallel.

But is there any further reference on this way of doing things to get a more detailed look or to digest it better? I do not mean any general book like Zienkiewicz , something which has same or similar FE formulation as above or Opensees.
by nspk
Tue Jan 22, 2013 5:36 pm
Forum: Framework
Topic: Integrator:formEleTangent() versus formTangent method..
Replies: 3
Views: 3217

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

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!!
by nspk
Tue Jan 22, 2013 11:19 am
Forum: Framework
Topic: Integrator:formEleTangent() versus formTangent method..
Replies: 3
Views: 3217

Integrator:formEleTangent() versus formTangent method..

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... :?