Skip to content

Zhong 2008 isoviscous response: constrained vs Nitsche free-slip behavior #248

@gthyagi

Description

@gthyagi

Summary

While reproducing the Zhong et al. (2008) isoviscous Stokes response benchmark in UW3, constrained and Nitsche free-slip boundary conditions match different diagnostics:

  • Constrained free slip provides useful built-in multiplier/topography diagnostics, but the official 8-rank 1/8 run overpredicts characteristic velocities.
  • Nitsche free slip matches the Zhong Table 2 characteristic velocities well at 8 ranks, but raw boundary sigma_rr is not sufficient for dynamic-topography recovery.

This is related to the broader free-slip discussion in #104, but this issue is specifically about the Zhong 2008 spherical-shell response benchmark.

Benchmark script:

https://github.com/gthyagi/uw3-mantle-convection-benchmarks/blob/main/benchmarks/010_stokes_response_isoviscous.py

Benchmark setup

Default comparison case:

  • Zhong et al. (2008) Table 2, first Stokes-flow set
  • l = 2, m = 0, depth 0.5d
  • r_b = 0.55, r_t = 1.0, r0 = 0.775
  • uniform viscosity, eta = 1
  • internal spherical-boundary load equivalent to delta(r-r0) P_l^0(theta) e_r
  • response coefficients normalized by the measured angular norm of P_l^0
  • serial validation: -uw_cellsize 1/4
  • parallel validation: mpirun -np 8 ... -uw_cellsize 1/8

Zhong analytical references for this case:

Quantity Reference
surface topography s 4.998e-01
CMB topography b 9.313e-01
surface characteristic velocity ` Ut
CMB characteristic velocity ` Ub

Results

Error summary

BC / run Surface topo error CMB topo error Surface velocity error CMB velocity error
constrained, serial 1/4 15.8% 16.4% 1.68% 3.88%
constrained, 8-rank 1/8 13.0% 7.66% 25.1% 63.1%
Nitsche gamma 10, serial 1/4 10.6% 15.5% 0.257% 5.87%
Nitsche gamma 10, 8-rank 1/8 48.0% 52.4% 0.654% 0.243%
Nitsche gamma 100, 8-rank 1/8 47.9% 51.5% 0.146% 0.038%

Serial actual response values

BC / serial 1/4 Surface topo CMB topo Surface velocity CMB velocity
constrained 4.2090356241027566e-01 7.786127017538488e-01 1.0228577582537592e-02 1.2320478342852333e-02
Nitsche gamma 10 4.4705955177993373e-01 7.87091287177956e-01 1.0034120263339545e-02 1.2556363891469484e-02

8-rank actual response values

BC / 8-rank 1/8 Surface topo CMB topo Surface velocity CMB velocity
constrained 5.648430331865263e-01 1.0026232680557212e+00 1.2584202252522738e-02 1.9340833150169143e-02
Nitsche gamma 10 2.5978694927744095e-01 4.43175114203523e-01 1.0125825484077849e-02 1.1888840166227975e-02
Nitsche gamma 100 2.6026572894429606e-01 4.517496256438572e-01 1.0074644204660118e-02 1.1855484341433173e-02

Interpretation

This appears to split into two issues:

  1. Velocity response: Nitsche free slip is currently the better match to Zhong Table 2. The 8-rank 1/8 Nitsche run is below 1% error for both surface and CMB characteristic velocity. Constrained free slip overpredicts these velocities at 8 ranks.
  2. Dynamic topography: constrained multiplier topography is useful, but constrained velocity response does not match the benchmark. Nitsche velocity is correct, but raw direct boundary sigma_rr is not enough for topography. This likely needs a CBF-style or projected boundary traction recovery path for Nitsche runs.

Current benchmark script behavior

010_stokes_response_isoviscous.py now defaults to:

  • Zhong-style P_l^0 forcing
  • measured angular-norm response normalization
  • Nitsche free slip for the Zhong velocity comparison
  • direct-stress topography diagnostics for non-constrained runs
  • constrained free slip remains available with -uw_freeslip_type constrained for multiplier/topography diagnostics

Suggested next steps

  • Investigate why constrained free slip overpredicts the 8-rank velocity response.
  • Keep Nitsche as the default for Zhong Table 2 velocity-response comparison unless/until constrained velocity behavior is explained.
  • Implement/test a Nitsche-compatible dynamic-topography recovery method, preferably CBF-style or projected boundary traction.
  • After topography recovery is fixed, run the full Table 2 matrix for l = 2, 5, 8, 15 and depths 0.25d, 0.5d, 0.75d.

Metadata

Metadata

Labels

enhancementNew feature or request

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions