[Getdp] nonlinear time-dependent problem
sdurand
sdurand at cage.ugent.be
Mon Aug 3 13:56:56 CEST 2009
Hi all,
I want to solve a time-dependent nonlinear diffusion problem for the
variable u, where the diffusion coefficient is proportional to u^2:
u_t - div(u^2 grad u) = f
I am not quite sure about the JacNL-terms in the formulation if I use
backward Euler for time-discretization. Is the following correct? I have
defined the functions
Kappa [domain] = ($1)^2.;
dKappa[domain] = 2*($1);
dt = 0.01; (timestep)
Formulation{
{ Name approx ; Type FemEquation;
Quantity {
{ Name u; Type Local; NameOfSpace Hone; }
}
Equation {
Galerkin { Dt [ Dof{u}, {u} ];
In domain; Integration GradGrad; Jacobian Vol; }
Galerkin { [ Kappa[ {u} ]*Dof{d u} , {d u} ];
In domain; Integration GradGrad; Jacobian Vol; }
Galerkin { [ -Source[] , {u} ];
In domain; Integration GradGrad; Jacobian Vol; }
Galerkin { JacNL[ Dof{u}/dt,{u}];
In domain; Integration GradGrad; Jacobian Vol; }
Galerkin { JacNL[ Kappa[{u}]*Dof{d u}, {d u} ];
In domain; Integration GradGrad; Jacobian Vol; }
Galerkin { JacNL[ dKappa[{u}]*{d u}*Dof{u}, {d u} ];
In domain; Integration GradGrad; Jacobian Vol; }
}
}
}
Resolution{
{ Name nonlinearDiffusion;
System {
{ Name solve; NameOfFormulation approx; }
}
Operation {
InitSolution [solve]; SaveSolution [solve];
TimeLoopTheta[initialT, finalT, dt, 1] {
IterativeLoop[Nbr_NT, NL_Eps, NL_Relax] {
GenerateJac[solve]; SolveJac[solve];
}
SaveSolution[solve];
}
}
}
}
Thanks for any comments!
Stephane