LaMEM icon indicating copy to clipboard operation
LaMEM copied to clipboard

Error occurs with a permeable lower boundary

Open colorzircon opened this issue 10 months ago • 0 comments

I would like to set a permeable lower boundary in my model, but always have "NONLINEAR SOLVER FAILED TO CONVERGE!" problem which occurs at STEP 1 or 2 after initial guess.

-------------------------------------------------------------------------
============================== INITIAL GUESS =============================
--------------------------------------------------------------------------
  0 SNES Function norm 1.074517965146e+01 
  0 PICARD ||F||/||F0||=1.000000e+00 
  Linear js_ solve did not converge due to DIVERGED_ITS iterations 50
  1 SNES Function norm 2.368330182036e+06 
Nonlinear solve did not converge due to DIVERGED_DTOL iterations 1
--------------------------------------------------------------------------
**************   NONLINEAR SOLVER FAILED TO CONVERGE!   ****************** 
--------------------------------------------------------------------------
Number of iterations    : 1
SNES solution time      : 2.04841 (sec)
--------------------------------------------------------------------------
Residual summary: 
   Continuity: 
      |Div|_inf = 1.614184709881e-02 
      |Div|_2   = 3.028446117248e-01 
   Momentum: 
      |mRes|_2  = 2.368330182036e+06 
   Energy: 
      |eRes|_2  = 4.512402107700e+03 
--------------------------------------------------------------------------
Saving output ... done (0.131675 sec)
--------------------------------------------------------------------------
================================= STEP 1 =================================
--------------------------------------------------------------------------
Current time        : 0.00000000 [Myr] 
Tentative time step : 0.01000000 [Myr] 
--------------------------------------------------------------------------
Phase_Transition ... done (0.0109891 sec)
--------------------------------------------------------------------------
  0 SNES Function norm 2.480494688340e+06 
  0 PICARD ||F||/||F0||=1.000000e+00 
  Linear js_ solve did not converge due to DIVERGED_ITS iterations 50
  1 SNES Function norm 2.487377180434e+06 
  1 PICARD ||F||/||F0||=1.002775e+00 
  Linear js_ solve did not converge due to DIVERGED_ITS iterations 50
  2 SNES Function norm 2.410771152743e+06 
  2 PICARD ||F||/||F0||=9.718913e-01 
  Linear js_ solve did not converge due to DIVERGED_ITS iterations 50
  3 SNES Function norm 2.506946831182e+06 
  3 PICARD ||F||/||F0||=1.010664e+00 
  Linear js_ solve did not converge due to DIVERGED_NANORINF iterations 0
Nonlinear solve did not converge due to DIVERGED_LINEAR_SOLVE iterations 3
--------------------------------------------------------------------------
**************   NONLINEAR SOLVER FAILED TO CONVERGE!   ****************** 
--------------------------------------------------------------------------
SNES Divergence Reason  : the linear solve failed
[0]PETSC ERROR: --------------------- Error Message --------------------------------------------------------------
[0]PETSC ERROR: Severe divergence reason detected (see above)

I have no idea if any other (values of) parameters should be adjusted if the permeable lower boundary is turned on.

I would appreciate it very much if anyone could help me.

#===============================================================================
# Boundary conditions
#===============================================================================
# temperature on the top & bottom boundaries [usually constant]
	temp_top        = 20.0
	temp_bot        = 1600.0

# temperature initial guess flag
# linear profile between temp_top and temp_bot
    init_temp = 1;

	open_top_bound  = 1

# No-slip boundary flag mask (left right front back bottom top)
	noslip          = 0 0 0 0 0 0

# Permeable lower boundary flag
   open_bot_bound  = 1
   permeable_phase_inflow = 10 

The temperature of phase 10 has been set to 1600.0 the same as temp_bot = 1600.0 in the CreateMakers.m file.

BTW, the below is the PETSc options:

#----------------------------------------------------------------------------------
#PETSc options
#----------------------------------------------------------------------------------
<PetscOptionsStart>
    -snes_ksp_ew
    -snes_ksp_ew_rtolmax 1e-4
    -snes_rtol 10e-3
    -snes_atol 1e-4
    -snes_max_it 200

    -snes_PicardSwitchToNewton_rtol 5e-3
    -snes_NewtonSwitchToPicard_it 20

    -js_ksp_type fgmres
    -js_ksp_max_it 50
    -js_ksp_atol 1e-8
    -js_ksp_rtol 1e-4

    -snes_linesearch_type l2
    -snes_linesearch_maxstep 20

<PetscOptionsEnd>

colorzircon avatar Feb 15 '25 06:02 colorzircon