[Dune] A question about solving my problem

Dedner, Andreas A.S.Dedner at warwick.ac.uk
Sat Jun 26 18:53:48 CEST 2021


Hi.
As Christian said this doesn't look like a too difficult example (except the corner case g(u)=|grad(u)| which will cause problems with the non linear solver).

So, I am wondering which problems you encountered with FreeFem since I would except any standard PDE software package should at least manage the case g(u)=u^2. Are there any additional details about your problem that caused the problems? Is it the a-posteriori adaptivity that made things difficult or the DG formulation of the problem?

Perhaps have a look at
https://dune-project.org/sphinx/content/sphinx/dune-fem/discontinuousgalerkin_nb.html
That's DG for Laplace but adding nonlinearities should be in general straightforward like in
https://dune-project.org/sphinx/content/sphinx/dune-fem/dune-fempy_nb.html

Best
Andreas

________________________________
From: Dune <dune-bounces at lists.dune-project.org> on behalf of Christian Engwer <christian.engwer at uni-muenster.de>
Sent: 26 June 2021 14:39
To: Hyun-Geun Shin <shgmath at gmail.com>
Cc: dune at lists.dune-project.org <dune at lists.dune-project.org>
Subject: Re: [Dune] A question about solving my problem

Dear Hyun-Geun,

> My problem is to solve a PDE like -div(g(u) * grad(u)) = f, discretized by
> discontinuous Galerkin methods. Here, u is the solution, g(u) is a nonlinear
> function, and f is a load function. So, g(u) can be “abs(grad(u))” or u^2.

So basically you are trying to solve a non-linear diffusion
problem. This is perfectly possible.

Although it is not part of the usual examples the modifications
regarding the typical poisson problem are not too big. You should be
able to implement this relatively easily with a discretization module
like dune-pdelab, which I'm using, but also dune-fem should provide
the necessary flexibility. The third option would be to do thinkgs a
bit more by hand and use the functions spaces from dune-functions.

Regarding the non-linear solver, a standard Newton method, together
with a Jacobian computed by numerical differentiation should work in
most cases. Still, depending on the type on non-linearity, you might
encounter convergecne issues (which you can still ignore if you don't
care about efficiency).

Ciao
Christian

_______________________________________________
Dune mailing list
Dune at lists.dune-project.org
https://lists.dune-project.org/mailman/listinfo/dune
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.dune-project.org/pipermail/dune/attachments/20210626/d1691baa/attachment.htm>


More information about the Dune mailing list