Eng-Tips is the largest engineering community on the Internet

Intelligent Work Forums for Engineering Professionals

  • Congratulations waross on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

routines for nonsymmetric stiffness matrix with skyline storage 1

Status
Not open for further replies.

ricewjx

Mechanical
Oct 21, 2005
8
0
0
US
I'm developing finite element program myself for the research. We used the skyline storage for the system matrix. Now the new stiffness matrix is unsymmetric and all the solver I can find is for symmetric matrix. Could anyone tell me where I can find the program with skyline storage scheme to solve the unsymmetric matrix? Thank you very much for your help!!!!
 
Replies continue below

Recommended for you

Thanks, EricZhao! I now think it may not be the nonsymmetric problem. It may be the numerical error that cause the results to be incorrect. I doubt that globally the solution converges though locally the error stacks. Don't know what to do now. Sigh!
 
I don't know either if you are going to solve this problem in a direct or iteraqtive way, but matrix package could be useful to look for possible bugs even for sparse matrix (the Matlab built in solver for sparse matrix is iterative, I guess to be a Preconditioned Conjugated Gradient method).

Between ways to store sparse matrix I think that sky line is the most suitable for direct Gauss - like elimination method, so implicitally it should be used for symmetric matrices.

I'm wondering what kind of problem you are solving, since I guess that it shouldn't be a structural neither a diffusion (Poisson like) problem.

For sparse matrices I'd like to advice the use of routines developed at Cornell University at


If the concern of using a direct method is to check solution existence you can first look for near zero eighenvalue of matrix.
 
RICEWJX: If yyour stiffness matrix is not symmetric, I suspect there may be an error. Stiffness matrices should always be symmetric.

Regards
Dave
 
If the problem is geometrically nonlinear the resulting tangent stiffness matrix can become non-symmetric..however the usual procedure to deal with this is either to ignore the non-symmetric portion or to symmetrize it.
 
Thank you for all the discussions! My problem is that the finite element program will converge, however, to the wrong solution if I use the nonlinear tangent matrix. If I use the linear matrix, the program will converge to correct solution. So the problem has to be with my tangent formulation. However, the formulation did work for 2 other test problems in which the finite element program converge to correct solution and takes less steps than linear matrix.
 
I think that since you are dealing with a non-linear type of equation (as supposed in my previous post) you are looking for a solution that is some steady solution of a transient problem.

A suitable way to find the solution is to follow numerically what nature does to find a solution: granting that eighenvalues are all non positive (as linear structural or diffusion like problems are) you can find the steady solution after time evolution.

Since the problem is non linear you can check the greater eigenvalue in each linearized time step.

Dx_under_Dt = [A(x,t)] * x - b
x = x + Dx_under_Dt * dt

the steady solution is necessary an x for which
[A(x_,t)]*x_-b=0

[Note: max dt is correlated with greatest eigenvalue.]

You can solve the problem in the above way (Euler's one order method or any other explicit way) even using a Runghe Kutta like (forget the note for stability) or Simpson integration.

I did something similar for a diffusion and advenction (Navier Stokes like) set of equation using Matlab. It could be easly transferred in fortran with sparse allocation and multiplication routines (it took me one month of work for writing PDE problem, coding, debugging).
 
Status
Not open for further replies.
Back
Top