CEED / libCEED

CEED Library: Code for Efficient Extensible Discretizations
https://libceed.org
BSD 2-Clause "Simplified" License
198 stars 47 forks source link

Fix diagonal assembly for mixed operators AtPoints #1641

Closed jeremylt closed 1 month ago

jeremylt commented 1 month ago

Fixes #1640

Works locally for me with CUDA and CPU

$ ./build/ex01-static -options_file examples/ex01-static-elasticity-mpm-mixed-linear-mms-pcfieldsplit-jacobi.yml -snes_monitor -ksp_monitor -pc_type jacobi -ceed /gpu/cuda/ref
----- Ratel Static Example -----

Ratel Context:
  MPI:
    Hostname: taliensis
    Total ranks: 1
  libCEED:
    Backend resource: /gpu/cuda/ref
    Backend MemType: device
  PETSc:
    VecType: cuda
    MatType: shell
...
  0 SNES Function norm 7.981366173789e-03
    0 KSP Residual norm 2.395003134058e-02
    1 KSP Residual norm 2.210373338493e-02
    2 KSP Residual norm 6.097487983922e-03
    3 KSP Residual norm 1.617911273539e-03
    4 KSP Residual norm 9.823135102314e-04
    5 KSP Residual norm 5.893867487065e-04
    6 KSP Residual norm 2.565469680526e-04
    7 KSP Residual norm 1.746499452301e-04
    8 KSP Residual norm 1.478945999930e-04
    9 KSP Residual norm 1.026774486366e-04
   10 KSP Residual norm 6.886334228664e-05
   11 KSP Residual norm 3.435901027863e-05
   12 KSP Residual norm 1.997305317950e-05
   13 KSP Residual norm 7.303567079192e-06
   14 KSP Residual norm 3.428983165088e-06
   15 KSP Residual norm 2.501281433428e-06
   16 KSP Residual norm 7.179831187973e-07
   17 KSP Residual norm 4.050262890271e-07
   18 KSP Residual norm 2.183135205084e-07
  1 SNES Function norm 7.123484755724e-08
    0 KSP Residual norm 2.183135205089e-07
    1 KSP Residual norm 1.663911710237e-07
    2 KSP Residual norm 7.715843222042e-08
    3 KSP Residual norm 5.607675274239e-08
    4 KSP Residual norm 3.464069749801e-08
    5 KSP Residual norm 2.989658296587e-08
    6 KSP Residual norm 2.127249959792e-08
    7 KSP Residual norm 1.552890280323e-08
    8 KSP Residual norm 8.345326236960e-09
    9 KSP Residual norm 3.462643151019e-09
   10 KSP Residual norm 2.006707522212e-09
   11 KSP Residual norm 1.095536636824e-09
   12 KSP Residual norm 5.392162821277e-10
   13 KSP Residual norm 2.020418360772e-10
   14 KSP Residual norm 1.360606576653e-10
   15 KSP Residual norm 7.323618126310e-11
   16 KSP Residual norm 3.426223955267e-11
   17 KSP Residual norm 1.708577153159e-11
   18 KSP Residual norm 1.077684742078e-11
   19 KSP Residual norm 4.429119141116e-12
   20 KSP Residual norm 3.261378024791e-12
   21 KSP Residual norm 1.686127504871e-12
  2 SNES Function norm 5.359947927304e-13
SNES iterations: 2
SNES converged reason: CONVERGED_FNORM_RELATIVE
L2 Error, field 0: 6.462523038751e-04
L2 Error, field 1: 5.636349190204e-03
Computed strain energy: 8.612334648074e-05
Max displacement:       [1.596771316061e-03, 3.101904080036e-03, 4.652856120054e-03]
Max pressure:            8.766546914649e-03
Time taken to compute solution (sec): 1.45302