[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