[Dune] Help requested for my first test case in non linear mechanics

Carsten Gräser graeser at mi.fu-berlin.de
Thu Apr 16 11:04:58 CEST 2020


Hi Thomas,
Am 16.04.20 um 09:53 schrieb Christian Engwer:
> Hi Thomas,
> 
> as you said, it works for a single element, I don't think it is likely
> that the actual problem arises from wrong boundary conditions, but from
> something else. Your currently replace your Dirichlet rows with a
> diagonal 1. Some remarks... What is the size of your other matrix
> entries? Are they O(1)? Otherwise you might run into issues due to the
> different entries, or you have to do a full elimination (including
> columns). You are using a CG solver. That should work, as you are
> arriving in the right subspaces but your matrix is non-symmetric, so
> depending on the finite on precision errors, you might still run into
I think that's not true here. By using an ILU-preconditioner
you can no longer argue that CG will stay in the affine subspace
where the problem is symmetric. Furthermore there's no guarantee that
the ILU preconditioner is s.p.d. such that you can no longer be
sure that CG converges.

As a remedy I prose to incorporate the boundary conditions in a
symmetric way (i.e. use the residual for your boundary conditions
and zero-out Dirichlet columns as well) and use the symmetric ILDL
preconditioner instead of ILU.

Another remark: While you're solving a vector valued problem,
you're using a scalar basis (with vector valued coefficients).
Dune-functions easily allows to create power spaces which are
suitable for vector valued problems (cf. your vtk_basis). I'd
strongly recommend to use this, because using vector valued
coefficients in dune-functions partially works but was never
officially supported (for good reason).

Best,
Carsten




More information about the Dune mailing list