On 11/01/09 11:29 AM, Hatef Monajemi wrote:
> Refer to attached file please!

Why are you sending plain text file in binary form? This way you are 
limiting your audience.

I can't aswer your questions, but I can convert it into more readable 
format:
=======
Hello

I am trying to figure out how to model a Nonlinear problem in dolfin in 
which there is more than one variable, say(u,p). There is currently some 
documents in "demo" and "bench/fem/assembly" which deals with nonlinear 
problmes, but in both of them there exist just one variable. I was 
wondering how the coding process changes when there is coupled PDEs (for 
instance solving Navier-Stokes equation). Based on what I found on 
threads, I could think of augmenting the solution function by defining 
subfunctions, However I think something must have been missed since I do 
not get convergence. I have modeled the same coupled problem assuming 
linearity witout having any problem, but when a nonlinear term comes in, 
it is a bit vague for me how to handle it in dolfin setting. The 
procedure I am following is as follows: (based on nonlinear-poisson demo 
and other docs)


----------------------------------------------------------
1)Defining fuction for source and BCs
        
2)Define subdomain for BCs

3)Read Mesh and Subdomain marker

4)pseudo time
   real t = 0.0;

5)Source term and initial conditions
   Function Un(mesh,2, 0.0);
   Function Pn(mesh,0.0);
   Function f(mesh,2,0.0);
   XvelNoslip xvelnoslip(mesh);
   YvelNoslip yvelnoslip(mesh);
   VelNoslip  velnoslip(mesh);
   Inflow inflow(mesh,&t);

6)Define SubSystems
   SubSystem velocity(0);
   SubSystem pressure(1);

7)solution vectors
   Function U0;
   Function P0;

8)set up Form
   NonlinearproblemBilinearForm a(U0) ;

   NonlinearproblemLinearForm L_1(Un,U0,Pn,P0,f);


9)Solve system
   Vector x;
   Function u(mesh,x,a);
10)Extract sub functions
   U0 = u[0];
   P0 = u[1];

11)set up boundary condition

   DirichletBC bc0(xvelnoslip,sub_domains,0 , velocity);
   DirichletBC bc1(yvelnoslip,sub_domains,1, velocity);
   DirichletBC bc2(velnoslip,sub_domains,2, velocity);
   DirichletBC bc3(inflow,sub_domains,2, pressure);

12)collect all the BCs
   Array<BoundaryCondition*> bcs(&bc0,&bc1,&bc2,&bc3);

13)parameters for time stepping

   real T = 0.005;
   real k = 0.001;

14)time stepping

   Progress p("Time-stepping");

   while ( t < T )
   {

   NonlinearPDE pde(a,L_1,mesh,bcs);


15) Solve nonlinear problem in a series of steps
     real ds = 1.0; real S  = 3.0;
     pde.solve(u,t,S,ds);

16) Save the Solutions

17) Move to next interval
   p = t / T;
   t += k;
   Un= U0;
   Pn= P0;
   }
-----------------------------------------------------------------------------

I would appreciate if anyone could give me any suggustions on how to 
consider a "Coupled Nonlinear PDE system" in Dolfin or at least guide me 
to the right place where I can find some documents on that.

Thanks,
Hatef






> 
> --------------------------------------
> Hatef Monajemi Graduate Student Dept of Civil and Environmental Eng 2032 MC 
> Building, Carleton University 1125 Colonel By Drive, Ottawa Ontario, Canada, 
> K1S 
> 5B6
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> DOLFIN-dev mailing list
> [email protected]
> http://www.fenics.org/mailman/listinfo/dolfin-dev

_______________________________________________
DOLFIN-dev mailing list
[email protected]
http://www.fenics.org/mailman/listinfo/dolfin-dev

Reply via email to