← Back to team overview

dolfin team mailing list archive

[HG] PDE class can now solve nonlinear PDEs.

 

One or more new changesets pushed to the primary DOLFIN repository.
A short summary of the last three changesets is included below.

changeset:   1732:9059f1aeb57b9f1d598ec35e7b190350dedfe36c
tag:         tip
user:        "Garth N. Wells <g.n.wells@xxxxxxxxxx>"
date:        Fri Feb 24 16:28:30 2006 +0100
files:       src/demo/pde/Makefile.am src/demo/pde/Makefile.in src/demo/pde/nonlinear/nonlinear-poisson/Makefile src/demo/pde/nonlinear/nonlinear-poisson/NonlinearPoisson.form src/demo/pde/nonlinear/nonlinear-poisson/NonlinearPoisson.h src/demo/pde/nonlinear/nonlinear-poisson/main.cpp src/kernel/form/LinearPDE.cpp src/kernel/form/Makefile.am src/kernel/form/Makefile.in src/kernel/form/NonlinearPDE.cpp src/kernel/form/PDE.cpp src/kernel/form/dolfin/GenericPDE.h src/kernel/form/dolfin/LinearPDE.h src/kernel/form/dolfin/Makefile.am src/kernel/form/dolfin/Makefile.in src/kernel/form/dolfin/NonlinearPDE.h src/kernel/form/dolfin/PDE.h src/kernel/form/dolfin/dolfin_form.h src/kernel/nls/Makefile.am src/kernel/nls/Makefile.in src/kernel/nls/NewtonSolver.cpp src/kernel/nls/NonlinearFunction.cpp src/kernel/nls/NonlinearPDE.cpp src/kernel/nls/NonlinearProblem.cpp src/kernel/nls/dolfin/Makefile.am src/kernel/nls/dolfin/Makefile.in src/kernel/nls/dolfin/NewtonSolver.h src/kernel/nls/dolfin/NonlinearFunction.h src/kernel/nls/dolfin/NonlinearPDE.h src/kernel/nls/dolfin/NonlinearProblem.h src/kernel/nls/dolfin/dolfin_nls.h src/kernel/parameter/dolfin/DefaultParameters.h
description:
PDE class can now solve nonlinear PDEs.

Nonlinear PDE's can be solved in a similar fashion to linear PDEs. The code below is from src/demo/pde/nonlinear/nonlinear-poisson.

Newton-Raphson steps increments inside PDE will be added later. 

 // Set up problem
  UnitSquare mesh(16, 16);
  MyFunction f;
  MyBC bc;
  Function u;

  // Create forms and nonlinear PDE
  NonlinearPoisson::BilinearForm a(u);
  NonlinearPoisson::LinearForm L(u, f);
  PDE pde(a, L, mesh, bc, PDE::nonlinear);


  // Solve nonlinear problem in a series of steps
  real dt = 1.0; real t  = 0.0; real T  = 3.0;
  f.sync(t);
  bc.sync(t);

  pde.set("Newton relative tolerance", 1e-6); 
  while( t < T)
  {
    t += dt;
    pde.solve(u);
  }


changeset:   1731:99f23a65ddd7a6afda9dece11e3fa69127146b82
user:        "Anders Logg <logg@xxxxxxxxx>"
date:        Wed Feb 22 17:11:28 2006 -0500
files:       src/kernel/form/PDE.cpp src/kernel/form/dolfin/LinearPDE.h src/kernel/form/dolfin/PDE.h
description:
Move inlined functions from PDE.h to PDE.cpp (don't need to be inlined).


changeset:   1730:041f07f0257dcc619443823bc9de9da3aa0d9ec0
parent:      1729:6b9197d1af3e3d824b9e6b49db8911c3ae7f2a3a
parent:      1728:0723016a2c0da1cae7acb59dd2a1c31c1a095293
user:        "Garth N. Wells <g.n.wells@xxxxxxxxxx>"
date:        Wed Feb 22 10:02:00 2006 +0100
files:       ChangeLog
description:
Update ChangeLog.


-------------------------------------------------------
For more details, visit http://www.fenics.org/hg/dolfin