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
