On Wed, 23 Apr 2008, Nasser Mohieddin Abukhdeir wrote:

> *** Solving time step 0, time = 1e-07 ***
> ERROR:  LASPACK Error:
> in ILUFactor for Mat:
> Factorization produces zero pivot elements.
> [0] src/numerics/laspack_linear_solver.C, line 276, compiled Apr 21 2008
> at 14:01:19
> Aborted
>
> Basically I added my expressions for the residual and Jacobian and
> removed all of the boundary condition code because I need to impose
> Neuman BCs (which from what I understand is implicitely taken care of by
> the FEM algorithm).

Homogeneous natural BCs are implicitly taken care of by the FEM
formulation, but just what the "natural boundary condition" is depends
on your precise formulation; if you've got something complicated, take
a look at what boundary integrals pop out of your integration by parts
to double-check that what you're setting to zero is what you want to
be setting to zero.

> I initialized t=0 with an acceptable solution to the equations, so I
> just expected some smooth sailing...

You're solving a transient problem, then?  In an all-Neumann problem
with no reaction terms you can often get a singular matrix doing a
steady solve (since the problem itself isn't uniquely defined); but
for a transient problem, the mass matrix coming from the time
integration should prevent anything like that from happening.

> I am also wondering about DiffSystem, should I just scrap my work with
> ex13 and start with DiffSystem?

There are tradeoffs.  DiffSystem makes it easier to add some new
features (e.g. adaptive time stepping, more complex nonlinear
equations) to your code, but it also means you'll have to make
more changes to your code to keep up with the library.

When you construct a DiffSystem subclass, you read:
"Warning, This code is untested, experimental, or likely to see future
API changes"

The "untested" and "experimental" adjectives no longer apply, but
"future API changes" certainly does.  I'm probably going to alter even
the most basic class methods to make it work better multithreaded.
The changes should be straightforward (methods will take reference
parameter(s) instead of using certain member variables), but it's
never fun when your code suddenly requires repair because a new
library version made backwards incompatible API changes.
---
Roy

-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference 
Don't miss this year's exciting event. There's still time to save $100. 
Use priority code J8TL2D2. 
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
_______________________________________________
Libmesh-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libmesh-users

Reply via email to