Hi,

If you don't like deriving the stuff by hand you might have a
look at AceGen (http://www.fgg.uni-lj.si/Symech/), it uses Mathematica
for the linarization and generates C code for the residual and jacobian.

Robert

On Mon, Nov 25, 2013 at 12:01:20PM -0700, Derek Gaston wrote:
> If it works with JFNK and fails without it... that means your Jacobian is 
> incorrect.  Take another look at your derivatives that are going into your 
> Jacobian...
> 
> Derek
> 
> Sent from my iPhone
> 
> On Nov 25, 2013, at 11:19 AM, Lorenzo Zanon <[email protected]> 
> wrote:
> 
> >> Are you sure the Jacobian is correct?  Is this a buckling problem, or
> >> something nonsmooth like plasticity or contact?  If not, Newton should
> >> converge fairly fast.
> > 
> > It should be, running on a 10x2x1 mesh I get convergence and a roughly 
> > correct output (wrt FEAP). The problem is just a bar with an applied load, 
> > modelled with nonlinear hysotropic elasticity (no plasticity, no contact).
> > 
> >> Did you set a near null space (rigid body modes) using
> >> MatSetNearNullSpace and perhaps MatNullSpaceCreateRigidBody?  Are you
> >> using a nodal basis?  How do you enforce boundary conditions?
> > 
> > I'm using Lagrange first order on HEX8 elements. Boundary conditions are 
> > set as in the example:
> > 
> >    std::set<boundary_id_type> boundary_ids;
> >    boundary_ids.insert(4); // 3D
> > ...    
> >    // Create a ZeroFunction to initialize dirichlet_bc
> >    ZeroFunction<> zf;
> >    DirichletBoundary dirichlet_bc(boundary_ids, variables, &zf);
> >    system.get_dof_map().add_dirichlet_boundary(dirichlet_bc);
> > 
> >> Do you need the line search? with an NL decay rate that slow one of two 
> >> things is happening I'd bet - either the Jacobian is incorrect, so your 
> >> computed dU is not a descent direction(see the increase from steps 2-4) or 
> >> the line search is behaving non-optimally.
> > 
> > 
> > Testing on the small 10x2x1 problem, without any option it fails:
> > 
> >> example-opt 
> >> NL step  0, |residual|_2 = 3.464102e-05
> >> StVen system solved at nonlinear iteration 0 , final nonlinear residual 
> >> norm: 3.464102e-05
> > 
> > With linesearch and JFNK it works:
> > 
> >> example-opt -snes_type ls -snes_linesearch_type basic -snes_mf_operator
> >> NL step  0, |residual|_2 = 3.464102e-05
> >> NL step  1, |residual|_2 = 2.417673e-04
> >> NL step  2, |residual|_2 = 6.139470e-08
> >> NL step  3, |residual|_2 = 5.468950e-13
> >> NL step  4, |residual|_2 = 7.179521e-18
> >> StVen system solved at nonlinear iteration 4 , final nonlinear residual 
> >> norm: 7.179521e-18
> > 
> > Using either linesearch or JFNK it doesn't converge, it looks like I need 
> > both. Apparently I can do without LU, but still it's very slow.
> > 
> > Thanks
> > Lorenzo
> > 
> >> On Nov 25, 2013, at 4:01 PM, Kirk, Benjamin (JSC-EG311) wrote:
> >> 
> >> 
> >> On Nov 25, 2013, at 6:23 AM, Lorenzo Zanon <[email protected]>
> >> wrote:
> >> 
> >>> Hello,
> >>> 
> >>> Thanks for the detailed answer!
> >>> 
> >>> I've just re-run the executable taking off the -snes_mf_operator and LU 
> >>> options, but it doesn't look any better... :
> >>> 
> >>> Running ./example-opt -snes_type ls -snes_linesearch_type basic -ksp_rtol 
> >>> 1e-4
> >>> NL step  0, |residual|_2 = 1.936492e-05
> >>> NL step  1, |residual|_2 = 1.938856e-05
> >>> NL step  2, |residual|_2 = 1.941222e-05
> >>> NL step  3, |residual|_2 = 1.943592e-05
> >>> NL step  4, |residual|_2 = 1.945964e-05
> >>> 
> >>> Then I stopped it because it didn't look like converging, after one hour 
> >>> or so.
> >> 
> >> Do you need the line search? with an NL decay rate that slow one of two 
> >> things is happening I'd bet - either the Jacobian is incorrect, so your 
> >> computed dU is not a descent direction(see the increase from steps 2-4) or 
> >> the line search is behaving non-optimally.
> >> 
> >> I think -snes_info (?) will present more verbose information that may be 
> >> useful to you.
> >> 
> >> -Ben
> > 
> > 
> > ------------------------------------------------------------------------------
> > Shape the Mobile Experience: Free Subscription
> > Software experts and developers: Be at the forefront of tech innovation.
> > Intel(R) Software Adrenaline delivers strategic insight and game-changing 
> > conversations that shape the rapidly evolving mobile landscape. Sign up 
> > now. 
> > http://pubads.g.doubleclick.net/gampad/clk?id=63431311&iu=/4140/ostg.clktrk
> > _______________________________________________
> > Libmesh-users mailing list
> > [email protected]
> > https://lists.sourceforge.net/lists/listinfo/libmesh-users
> 
> ------------------------------------------------------------------------------
> Shape the Mobile Experience: Free Subscription
> Software experts and developers: Be at the forefront of tech innovation.
> Intel(R) Software Adrenaline delivers strategic insight and game-changing 
> conversations that shape the rapidly evolving mobile landscape. Sign up now. 
> http://pubads.g.doubleclick.net/gampad/clk?id=63431311&iu=/4140/ostg.clktrk
> _______________________________________________
> Libmesh-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/libmesh-users

------------------------------------------------------------------------------
Shape the Mobile Experience: Free Subscription
Software experts and developers: Be at the forefront of tech innovation.
Intel(R) Software Adrenaline delivers strategic insight and game-changing 
conversations that shape the rapidly evolving mobile landscape. Sign up now. 
http://pubads.g.doubleclick.net/gampad/clk?id=63431311&iu=/4140/ostg.clktrk
_______________________________________________
Libmesh-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libmesh-users

Reply via email to