Direct solving Log Out | Topics | Search
Moderators | Register | Edit Profile

FlexPDE User's Forum » User Postings » Direct solving « Previous Next »

Author Message
Top of pagePrevious messageNext messageBottom of page Link to this message

Jared Barber (jared_barber)
Member
Username: jared_barber

Post Number: 38
Registered: 01-2007
Posted on Tuesday, August 26, 2008 - 02:34 pm:   

Hello,

I am using flexpde to solve a system which involves a domain of fluid motion coupled to a moving boundary. This is a quasi-steady state problem and each time step involves solving an elliptic problem coupled to a system of scalar equations (which govern the instantaneous motion of the boundary). I seem to have found (please correct me if this is a wrong conclusion) that when many global equations are involved, the iterative solver does not work very well. I have also transferred my boundaries and problem (at least most of it) to another fem solver. There I found that direct solving seems to work just fine (and much much quicker).

Without going into details about why one seems to work better than the other, I have the following questions. Hopefully some light can be shed on them.

1) Is there a way currently to get the full unrounded mass matrix and load vector from FlexPDE.

Comments: I know that select print(matrix) will print out the matrix. I don't know what the command for printing out the load vector would be. (Is it already there when you use select print(matrix)? I had difficulty finding it if that is the case.) Also, the matrix printed out only seems to contain 6 digits of accuracy and is always printing out 0.000000 as a number. Is this stored in skyline format or something like it and, if so, why is it printing out zeros? If they are really nonzero, I'd like to know what they are (even if they are smaller than 1e-6). Hopefully someone can shed some light on this.

2) Does FlexPDE have any direct solving capabilities that I can play with?

3) If not, will it have direct solving capabilities any time soon?

Thanks,

Jared
Top of pagePrevious messageNext messageBottom of page Link to this message

Robert G. Nelson (rgnelson)
Moderator
Username: rgnelson

Post Number: 1162
Registered: 06-2003
Posted on Wednesday, August 27, 2008 - 01:58 am:   

Several years ago, we invested some effort in implementing direct solution methods, and found in every case we tried that it was significantly slower than the Conjugate Gradient methods we already had in place.

However, the testing we did at that time did not include large numbers of global variables coupled through implicit boundary values, as your problem does.

There are a couple of things that might cause the slow convergence you are experiencing.

1) since global variable coupling through implicit boundary values is not something we have tested heavily, it is possible that there are matrix construction errors. We will review the matrix construction in these cases to make sure the coupling is correct.

2) FlexPDE solves the entire augmented matrix (nodal coupling plus rows and columns for global variables and constraints) as a single linear system. There are scaling issues related to the very different needs of the nodal and global equations within the conjugate gradient process. This balancing may not be optimal at present. We have worked up some techniques for inserting direct solution of global equations and constraints into a conjugate-gradient process for nodal equations. If initial experiments seem promising, we will make them standard in a later version of FlexPDE.


The coupling matrix is stored in "compressed-row" form, with a list of column numbers and elements for each row. This form was chosen for maximal storage efficiency, together with convenient access for the matrix*vector operations at the core of the Conjugate Gradient method.

The matrix printed by print(matrix) was intended as a debugging tool, not as a matrix export mechanism, so the print form is more suited to visual inspection than numerical use. I will look into installing some controls on output precision and printing the load vector.

Add Your Message Here
Post:
Username: Posting Information:
This is a private posting area. Only registered users and moderators may post messages here.
Password:
Options: Enable HTML code in message
Automatically activate URLs in message
Action:

Topics | Last Day | Last Week | Tree View | Search | Help/Instructions | Program Credits Administration