Paul, FYI, I think I've figured out what's going on here. If the whole model is in the elastic regime, then the analytical and f.d. jacobians match.
If I set the load to be sufficiently high such that the entire model is plastic, then again the analytical and f.d. jacobians match. The case where I get a mismatch is if the model is part elastic and part plastic. In this case, I believe that the finite difference jacobian is wrong because the small f.d. perturbations can lead to a change from elastic to plastic (or vice versa), which leads to a large error in the jacobian. Does that sound like a plausible explanation to you? David On Wed, Mar 30, 2016 at 9:25 AM, David Knezevic <david.kneze...@akselos.com> wrote: > On Wed, Mar 30, 2016 at 9:20 AM, Paul T. Bauman <ptbau...@gmail.com> > wrote: > >> >> >> On Wed, Mar 30, 2016 at 9:16 AM, David Knezevic < >> david.kneze...@akselos.com> wrote: >> >>> On Wed, Mar 30, 2016 at 9:11 AM, Paul T. Bauman <ptbau...@gmail.com> >>> wrote: >>> >>>> >>>> >>>> On Wed, Mar 30, 2016 at 8:00 AM, David Knezevic < >>>> david.kneze...@akselos.com> wrote: >>>>> >>>>> >>>>> Thanks for your comments. The problem I'm considering is plasticity, >>>>> using the radial return algorithm. As far as I can tell, the code matches >>>>> the text book, and it converges correctly. However, it doesn't match the >>>>> finite difference Jacobian from FEMSystem. So there are two possibilities: >>>>> >>>>> 1) Somehow the finite difference Jacobian is inconsistent with the >>>>> radial return algorithm. This doesn't seem impossible to me, given that >>>>> the >>>>> radial return algorithm is highly path-dependent. >>>>> >>>> >>>> This is very much a thing. What reference are you using? The Jacobian >>>> you get from the equations vs. the Jacobian which includes the radial >>>> return algorithm ("consistent tangent" as the community calls it) are >>>> different. Simo and Hughes, "Computationally Inelasticity" has a good >>>> discussion of this. >>>> >>> >>> >>> I'm using Simo and Hughes. I implemented the algorithm in "Box 3.2" of >>> that book for radial return, and it seems to be working fine. >>> >> >> OK, cool. Just wanted to make sure you were aware (I figured you were). >> >> >>> However, I would have thought that I could use a finite difference >>> Jacobian based on the residual that is given by the radial return algorithm >>> (i.e. the residual that uses the stress from radial return). I would have >>> thought that yields a "consistent tangent", no? >>> >> >> Agreed. I'd suspect a bug, or I'm forgetting something because I haven't >> played with damage/plasticity in ~3 years. >> > > > OK. I was hoping there might be some reason that the finite difference > could be wrong in this case... but I agree, it's more likely that there's > just a bug. > > Do you get dramatic convergence behavior changes between the finite >> difference version and the analytical version? If not, very likely there's >> some small term that's missing/in error. >> > > They both converge similarly, so yeah, there's probably a small term > that's in error. > > Thanks, > David > > ------------------------------------------------------------------------------ Transform Data into Opportunity. Accelerate data analysis in your applications with Intel Data Analytics Acceleration Library. Click to learn more. http://pubads.g.doubleclick.net/gampad/clk?id=278785471&iu=/4140 _______________________________________________ Libmesh-users mailing list Libmesh-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/libmesh-users