Yiliang:
> 1. When I use SI-system (N-m-s), the material properties value will be
> really large as expected. For example, the Young's modulus will be 1e11
> Pa. Somehow, the dmp code will behave very strangely in this case. The
> CG will finish in 0 iteration and the solution will be empty. If I
> change the unit system to be N-mm-s, the Young's modulus become 1e5 MPa
> and then the CG starts to behave normally. The smp code seems to be more
> insensitive to the type of unit system.
How do you set the stopping criterion for your solver? If you are
solving a single equation, the choice of physical units should not
matter because any choice scales all equations equally. In that case,
using a *relative* tolerance as a stopping criterion should lead to a
number of iterations that is the same for all choices of units.
The situation is different if you have a system of equations (say, the
Stokes equations) in which case you need to scale the equations to a
common unit first.
> 2. Although the finally results of smp and dmp are the same, the
> computational time is different. Surprisingly, the dmp code is slower
> than smp code. It is not because the CG is slower in dmp, it is somehow
> the dmp code will need more N-R iterations them smp.
I don't actually know what SMP and DMP mean. As a consequence, I can't
suggest why the two formulations may lead to different numbers of
nonlinear iterations.
> Based on the above observation, I have feeling that there are some loss
> of accuracy when using petsc. Most likely it happens when we transfer
> Vector or Matrix between petsc and dealii.
I don't think this is a likely reason for the discrepancy. We have been
using the PETSc interfaces for more than 20 years by now, and I don't
think that PETSc is more or less accurate than our own linear algebra
classes, or that accuracy is lost in the transfer. The issue is almost
certainly somewhere else.
Best
W.