SPEC icon indicating copy to clipboard operation
SPEC copied to clipboard

Question: Multi-volume fixed-boundary calculation in SPEC

Open Taegeun-Jeong opened this issue 7 months ago • 8 comments

Hi,

I'm trying to set up a multi-volume fixed-boundary calculation in SPEC, but I'm running into some issues that I don’t fully understand yet.

When I use a single volume nvols=1, everything runs smoothly and the results are as expected. However, when I increase the number of volumes (e.g., nvols=3), the behavior becomes confusing (link).

Specifically:

For the vacuum case (zero pressure), the multi-volume case's result is different from the single-volume case. I expected the solution to be the same, since both are vacuum configurations.

Here's a representative output:

fcn2   :     114.08 :        22  3 ; |f|= 2.08376E-03 ; time=      1.79s ; log|BB|e= -3.03 -3.17
fcn2   :            :              ;                                     ; log|II|o= -3.06 -2.94
mp00ac :     115.66 : myid=  0 ; lvol=  1 ; ideriv= 0 ; GMRES ierr=  -1 ;  max niter, epsGMRES not reached ; 

I've shared both input files in this link.

  • eq_1.sp corresponds to nvols=1 (success)
  • eq_3.sp corresponds to nvols=3 (quasi-success)

Any advice on what I might be doing wrong—or suggestions on what to check—would be greatly appreciated!

Thanks so much in advance.

Taegeun-Jeong avatar Jul 09 '25 11:07 Taegeun-Jeong

what boundary are you imposing?

are you trying to solve for the vacuum case?

for the nvol=3 case, can you plot the initial guess for the interfaces?

can you show the complete output on screen?

jloizu avatar Jul 09 '25 11:07 jloizu

  1. I used the Precise-QA vacuum configuration by Landreman & Paul as the boundary.
  2. Ultimately, I’d like to construct a stepped-pressure profile to study finite-beta effects. As a preliminary step, I first tried running a multi-volume configuration for the vacuum case.
  3. Could you clarify what you mean by “initial guess for the interfaces”? Are you referring to plots like this one?
  4. Here is the full output from the terminal.

Taegeun-Jeong avatar Jul 09 '25 11:07 Taegeun-Jeong

Sorry, I accidentally closed the issue. I hope to reopen it.

Taegeun-Jeong avatar Jul 09 '25 11:07 Taegeun-Jeong

  • still cannot see your termina output
  • SPEC volumes are separated by interfaces, and an initial guess (Rmn, Zmn) has to be provided at the start, for SPEC to try finding force-balance (even for vacuum). If this guess is very bad, the code will usually not converge.
  • if you want to find a vacuum, with more than one volume, then you should use Lconstraint=3 (the current constraint) and set Ivol=0 and Isurf=0 for all volumes/interfaces
  • for strongly shaped boundaries like this one, SPEC is numerically fragile, i.e. it is not easy to find converged equilibria (even in vacuum). Erol Balkovic has been developing a new version that is very robust and seems to work nicely, but he is still making some tests; hopefully, we will release the new solver very soon.

hope this helps!

jloizu avatar Jul 09 '25 11:07 jloizu

  1. eq_1.sp (nvols=1 successful case)
(spec_wrapper) [taegeun@gpu01 precise_QA_success]$ xspec eq_1.sp
xspech :            : version =  3.23
       :  compiled  : date    = Mon Feb 17 21:22:07 KST 2025 ; 
       :            : srcdir  = /home/taegeun/code/SPEC ; 
       :            : macros  = /home/taegeun/code/SPEC/src/macros ; 
       :            : fc      = /home/taegeun/.conda/envs/spec_wrapper/bin/mpif90 ; 
       :            : flags   =  ; 
xspech :            : 
xspech :       0.00 : date=2025/07/09 , 20:53:29 ; machine precision= 1.11E-16 ; vsmall= 1.11E-14 ; small= 1.11E-12 ;
xspech :            : 
xspech :       0.00 : parallelism : ncpu=  1 ; nthreads=  1 ;
rdcmdl :            : 
rdcmdl :            : 
rdcmdl :       0.00 : ext = eq_1                                                                                                
xspech :            : 
xspech :       0.00 : begin execution ; calling global:readin ;
readin :            : 
readin :       0.00 : Igeometry=  3 ; Istellsym=  1 ; Lreflect=  0 ;
readin :            : Lfreebound=  0 ; phiedge=  8.699999999999961E-02 ; curtor=  0.000000000000000E+00 ; curpol=  0.000000000000000E+00 ;
readin :            : gamma=  0.000000000000000E+00 ;
readin :            : Nfp=  2 ; Nvol=  1 ; Mvol=  1 ; Mpol=  9 ; Ntor=  8 ;
readin :            : pscale=  1.00000E+00 ; Ladiabatic= 2 ; Lconstraint=  0 ; mupf: tol,its=  1.00E-14 ,   8 ;
readin :            : Lrad = 12,
readin :            : 
readin :       0.00 : Linitialize=  1 ;LautoinitBn=  1 ; Lzerovac= 0 ; Ndiscrete= 2 ;
readin :            : Nquad=  -1 ; iMpol=  -4 ; iNtor=  -4 ;
readin :            : Lsparse= 0 ; Lsvdiota= 0 ; imethod= 3 ; iorder= 2 ; iprecon= 1 ; iotatol= -1.00000E+00 ;
readin :            : Lextrap= 0 ; Mregular= -1 ; Lrzaxis= 1 ; Ntoraxis= 3 ;
readin :            : 
readin :       0.00 : LBeltrami= 4 ; Linitgues= 1 ; Lmatsolver= 3 ; LGMRESprec= 1 ; NiterGMRES= 500 ; epsGMRES=  1.00000E-14 ; epsILU=  1.00000E-12 ;
readin :            : 
readin :       0.00 : Lfindzero= 2 ;
readin :            : escale=  0.00000E+00 ; opsilon=  1.00000E+00 ; pcondense=  4.000 ; epsilon=  1.00000E+00 ; wpoloidal= 1.0000 ; upsilon=  1.00000E+00 ;
readin :            : forcetol=  1.00000E-08 ; c05xmax=  1.00000E-06 ; c05xtol=  1.00000E-12 ; c05factor=  1.00000E-04 ; LreadGF= F ; 
readin :            : mfreeits=   0 ; gBntol=  1.00000E-06 ; gBnbld=  6.66000E-01 ;
readin :            : vcasingeps=  1.00000E-12 ; vcasingtol=  1.00000E-08 ; vcasingits=     8 ; vcasingper=     1 ;
readin :            : 
readin :       0.00 : odetol=  1.00E-07 ; nPpts=   101 ;
readin :            : LHevalues= F ; LHevectors= F ; LHmatrix= T ; Lperturbed= 0 ; dpp= -1 ; dqq= -1 ; dRZ=  1.00000000E-05 ; Lcheck=  1 ; Ltiming= F ;
readin :            : 
readin :            : myid=  0 ; Rscale= 1.000000000000000E+00 ;
preset :            : myid=  0 ; Mrad= 12 : Lrad= 12,
preset :       0.00 : LBsequad= F , LBnewton= F , LBlinear= T ;
preset :            : 
preset :       0.00 : Nquad=  -1 ; mn=  162 ; NGdof=     0 ; NAdof=  1699,
preset :            : 
preset :       0.00 : Nt=    72 ; Nz=    64 ; Ntz=     4608 ;
xspech :       0.54 : #freeits=  0 ; |f|= 0.00000E+00 ; time=      0.31s ; log|BB|e
xspech :            :              ;                                     ; log|II|o
xspech :            : -------------------Stability Evaluations------------------ 
xspech :       0.54 : myid=  0 ; calling hessian; see .ext.hessian.myid ;
 hesian: only calculates the hessian matrix when Lcons=2
xspech :            :
xspech :       0.56 : myid=  0 ; Poincare plot ; odetol= 1.0E-07 ; nPpts=    101 ; nPtrj=   10,
xspech :            :
xspech :       0.56 : myid=  0 ; calling jo00aa; computing error in field ;
jo00aa :       0.58 : myid=  0 ; lvol =  1 ; lrad = 12 ; AVG E^\s=  1.270416165792039E-04 , E^\t=  8.879456423112297E-05 , E^\z=  1.098505353365255E-05 ; time=    0.02s ;
jo00aa :       0.58 : myid=  0 ; lvol =  1 ; lrad = 12 ; MAX E^\s=  3.352737691445225E-03 , E^\t=  3.089360281736523E-02 , E^\z=  4.112619023450622E-04 ; time=    0.02s ;
jo00aa :       0.63 : myid=  0 ; lvol =  1 ; lrad = 12 ; MAX gB^s(-1)=  0.000000000000000E+00 , gB^s(+1) =  5.028674961990558E-19 ; time=    0.07s ;
jo00aa :       0.63 : myid=  0 ; lvol =  1 ; lrad = 12 ; dtfluxERR   =  0.000000000000000E+00 , dpfluxERR=  0.000000000000000E+00 ; time=    0.07s ;
pp00aa :       2.46 : myid=  0 ; lvol=  1 ;   1 : (s,t)=( -0.80000000000000004 ,  0.00000000000000000 ) ; utflag=  1 ; transform=  4.198995141733445E-01 ;
pp00aa :       4.29 : myid=  0 ; lvol=  1 ;   2 : (s,t)=( -0.59999999999999998 ,  0.00000000000000000 ) ; utflag=  1 ; transform=  4.199165448513404E-01 ;
pp00aa :       6.12 : myid=  0 ; lvol=  1 ;   3 : (s,t)=( -0.40000000000000002 ,  0.00000000000000000 ) ; utflag=  1 ; transform=  4.199415931076383E-01 ;
pp00aa :       7.95 : myid=  0 ; lvol=  1 ;   4 : (s,t)=( -0.19999999999999996 ,  0.00000000000000000 ) ; utflag=  1 ; transform=  4.199718743934722E-01 ;
pp00aa :       9.96 : myid=  0 ; lvol=  1 ;   5 : (s,t)=(  0.00000000000000000 ,  0.00000000000000000 ) ; utflag=  1 ; transform=  4.200031821775099E-01 ;
pp00aa :      11.79 : myid=  0 ; lvol=  1 ;   6 : (s,t)=(  0.19999999999999996 ,  0.00000000000000000 ) ; utflag=  1 ; transform=  4.200295541641996E-01 ;
pp00aa :      13.62 : myid=  0 ; lvol=  1 ;   7 : (s,t)=(  0.39999999999999991 ,  0.00000000000000000 ) ; utflag=  1 ; transform=  4.200429286331936E-01 ;
pp00aa :      15.45 : myid=  0 ; lvol=  1 ;   8 : (s,t)=(  0.60000000000000009 ,  0.00000000000000000 ) ; utflag=  1 ; transform=  4.200328062967061E-01 ;
pp00aa :      17.29 : myid=  0 ; lvol=  1 ;   9 : (s,t)=(  0.80000000000000004 ,  0.00000000000000000 ) ; utflag=  1 ; transform=  4.199852812777078E-01 ;
pp00aa :      19.12 : myid=  0 ; lvol=  1 ;  10 : (s,t)=(  1.00000000000000000 ,  0.00000000000000000 ) ; utflag=  1 ; transform=  4.198792389912081E-01 ;
ending :            : 
ending :      19.80 : myid=  0 ; completion ; time=     19.80s =     0.33m =   0.01h =  0.00d ; date= 2025/07/09 ; time= 20:53:48 ; ext = eq_1                                                        
ending :            : 
xspech :            :
xspech :      19.80 : myid=  0 : time=    0.33m =   0.01h =  0.00d ;
Note: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG IEEE_DIVIDE_BY_ZERO IEEE_UNDERFLOW_FLAG IEEE_DENORMAL
  1. eq_3.sp (nvols=3)
(spec_wrapper) [taegeun@gpu01 precise_QA_success]$ xspec eq_3.sp
xspech :            : version =  3.23
       :  compiled  : date    = Mon Feb 17 21:22:07 KST 2025 ; 
       :            : srcdir  = /home/taegeun/code/SPEC ; 
       :            : macros  = /home/taegeun/code/SPEC/src/macros ; 
       :            : fc      = /home/taegeun/.conda/envs/spec_wrapper/bin/mpif90 ; 
       :            : flags   =  ; 
xspech :            : 
xspech :       0.00 : date=2025/07/09 , 20:50:14 ; machine precision= 1.11E-16 ; vsmall= 1.11E-14 ; small= 1.11E-12 ;
xspech :            : 
xspech :       0.00 : parallelism : ncpu=  1 ; nthreads=  1 ;
rdcmdl :            : 
rdcmdl :            : 
rdcmdl :       0.00 : ext = eq_3                                                                                                
xspech :            : 
xspech :       0.00 : begin execution ; calling global:readin ;
Invalid line in screenlist: /
readin :            : 
readin :       0.00 : Igeometry=  3 ; Istellsym=  1 ; Lreflect=  0 ;
readin :            : Lfreebound=  0 ; phiedge=  8.699999999999961E-02 ; curtor=  0.000000000000000E+00 ; curpol=  0.000000000000000E+00 ;
readin :            : gamma=  0.000000000000000E+00 ;
readin :            : Nfp=  2 ; Nvol=  3 ; Mvol=  3 ; Mpol=  9 ; Ntor=  8 ;
readin :            : pscale=  1.00000E+00 ; Ladiabatic= 2 ; Lconstraint=  0 ; mupf: tol,its=  1.00E-14 ,   8 ;
readin :            : Lrad = 12,12,12,
readin :            : 
readin :       0.00 : Linitialize=  1 ;LautoinitBn=  1 ; Lzerovac= 0 ; Ndiscrete= 2 ;
readin :            : Nquad=  -1 ; iMpol=  -4 ; iNtor=  -4 ;
readin :            : Lsparse= 0 ; Lsvdiota= 0 ; imethod= 3 ; iorder= 2 ; iprecon= 1 ; iotatol= -1.00000E+00 ;
readin :            : Lextrap= 0 ; Mregular= -1 ; Lrzaxis= 1 ; Ntoraxis= 3 ;
readin :            : 
readin :       0.00 : LBeltrami= 4 ; Linitgues= 1 ; Lmatsolver= 3 ; LGMRESprec= 1 ; NiterGMRES= 500 ; epsGMRES=  1.00000E-14 ; epsILU=  1.00000E-12 ;
readin :            : 
readin :       0.00 : Lfindzero= 2 ;
readin :            : escale=  0.00000E+00 ; opsilon=  1.00000E+00 ; pcondense=  4.000 ; epsilon=  1.00000E+00 ; wpoloidal= 1.0000 ; upsilon=  1.00000E+00 ;
readin :            : forcetol=  1.00000E-08 ; c05xmax=  1.00000E-06 ; c05xtol=  1.00000E-12 ; c05factor=  1.00000E-04 ; LreadGF= F ; 
readin :            : mfreeits=   0 ; gBntol=  1.00000E-06 ; gBnbld=  6.66000E-01 ;
readin :            : vcasingeps=  1.00000E-12 ; vcasingtol=  1.00000E-08 ; vcasingits=     8 ; vcasingper=     1 ;
readin :            : 
readin :       0.00 : odetol=  1.00E-07 ; nPpts=   101 ;
readin :            : LHevalues= F ; LHevectors= F ; LHmatrix= T ; Lperturbed= 0 ; dpp= -1 ; dqq= -1 ; dRZ=  1.00000000E-05 ; Lcheck=  1 ; Ltiming= F ;
readin :            : 
readin :            : myid=  0 ; Rscale= 1.000000000000000E+00 ;
preset :            : myid=  0 ; Mrad= 12 : Lrad= 12, 12, 12,
preset :       0.00 : LBsequad= F , LBnewton= F , LBlinear= T ;
preset :            : 
preset :       0.00 : Nquad=  -1 ; mn=  162 ; NGdof=   646 ; NAdof=  1699,  4051,  4051,
preset :            : 
preset :       0.00 : Nt=    72 ; Nz=    64 ; Ntz=     4608 ;
fcn2   :      27.91 :         1  1 ; |f|= 4.54402E-03 ; time=     27.67s ; log|BB|e= -3.10 -2.63
fcn2   :            :              ;                                     ; log|II|o= -3.12 -2.70
fcn2   :      29.28 :         2  1 ; |f|= 4.24880E-03 ; time=      1.37s ; log|BB|e= -3.02 -2.79
fcn2   :            :              ;                                     ; log|II|o= -3.12 -2.72
fcn2   :      30.62 :         3  1 ; |f|= 3.90876E-03 ; time=      1.34s ; log|BB|e= -2.91 -2.87
fcn2   :            :              ;                                     ; log|II|o= -3.13 -2.75
fcn2   :      31.93 :         4  1 ; |f|= 3.55923E-03 ; time=      1.31s ; log|BB|e= -2.94 -2.84
fcn2   :            :              ;                                     ; log|II|o= -3.21 -2.83
fcn2   :      33.22 :         5  1 ; |f|= 3.41120E-03 ; time=      1.29s ; log|BB|e= -3.04 -2.90
fcn2   :            :              ;                                     ; log|II|o= -3.26 -2.85
fcn2   :      34.53 :         6  1 ; |f|= 3.26348E-03 ; time=      1.31s ; log|BB|e= -3.05 -2.92
fcn2   :            :              ;                                     ; log|II|o= -3.30 -2.87
fcn2   :      35.88 :         7  1 ; |f|= 3.18318E-03 ; time=      1.35s ; log|BB|e= -3.11 -2.99
fcn2   :            :              ;                                     ; log|II|o= -3.33 -2.89
fcn2   :      37.09 :         8  1 ; |f|= 2.86341E-03 ; time=      1.21s ; log|BB|e= -3.08 -2.99
fcn2   :            :              ;                                     ; log|II|o= -3.34 -2.94
fcn2   :      38.27 :         9  1 ; |f|= 2.81911E-03 ; time=      1.18s ; log|BB|e= -3.06 -3.05
fcn2   :            :              ;                                     ; log|II|o= -3.16 -2.85
mp00ac :      39.89 : myid=  0 ; lvol=  1 ; ideriv= 0 ; GMRES ierr=  -1 ;  max niter, epsGMRES not reached ; 
fcn2   :      40.80 :        10  1 ; |f|= 9.46087E-01 ; time=      2.52s ; log|BB|e=  0.26 -2.79
fcn2   :            :              ;                                     ; log|II|o= -2.85 -2.58
fcn2   :      69.92 :        11  2 ; |f|= 2.81911E-03 ; time=     29.12s ; log|BB|e= -3.06 -3.05
fcn2   :            :              ;                                     ; log|II|o= -3.16 -2.85
fcn2   :      71.06 :        12  2 ; |f|= 2.64744E-03 ; time=      1.14s ; log|BB|e= -3.06 -2.97
fcn2   :            :              ;                                     ; log|II|o= -3.21 -2.92
fcn2   :      72.29 :        13  2 ; |f|= 5.32249E-03 ; time=      1.23s ; log|BB|e= -2.02 -3.16
fcn2   :            :              ;                                     ; log|II|o= -3.26 -2.97
fcn2   :      73.62 :        14  2 ; |f|= 2.61134E-03 ; time=      1.33s ; log|BB|e= -2.75 -3.09
fcn2   :            :              ;                                     ; log|II|o= -3.22 -2.94
fcn2   :      75.25 :        15  2 ; |f|= 2.42271E-03 ; time=      1.63s ; log|BB|e= -2.82 -3.08
fcn2   :            :              ;                                     ; log|II|o= -3.28 -2.98
mp00ac :      76.86 : myid=  0 ; lvol=  1 ; ideriv= 0 ; GMRES ierr=  -1 ;  max niter, epsGMRES not reached ; 
fcn2   :      77.62 :        16  2 ; |f|= 1.79007E+01 ; time=      2.37s ; log|BB|e=  1.50 -3.12
fcn2   :            :              ;                                     ; log|II|o= -2.83 -2.93
mp00ac :      79.22 : myid=  0 ; lvol=  1 ; ideriv= 0 ; GMRES ierr=  -1 ;  max niter, epsGMRES not reached ; 
fcn2   :     106.81 :        17  3 ; |f|= 2.42271E-03 ; time=     29.19s ; log|BB|e= -2.82 -3.08
fcn2   :            :              ;                                     ; log|II|o= -3.28 -2.98
fcn2   :     108.54 :        18  3 ; |f|= 2.35516E-03 ; time=      1.72s ; log|BB|e= -2.97 -3.09
fcn2   :            :              ;                                     ; log|II|o= -3.28 -2.99
fcn2   :     110.42 :        19  3 ; |f|= 2.29386E-03 ; time=      1.88s ; log|BB|e= -3.06 -3.10
fcn2   :            :              ;                                     ; log|II|o= -3.28 -3.00
mp00ac :     112.03 : myid=  0 ; lvol=  1 ; ideriv= 0 ; GMRES ierr=  -1 ;  max niter, epsGMRES not reached ; 
fcn2   :     112.69 :        20  3 ; |f|= 4.72039E-01 ; time=      2.27s ; log|BB|e= -0.10 -3.21
fcn2   :            :              ;                                     ; log|II|o= -3.23 -3.05
fcn2   :     114.56 :        21  3 ; |f|= 2.22203E-03 ; time=      1.87s ; log|BB|e= -3.04 -3.12
fcn2   :            :              ;                                     ; log|II|o= -3.23 -3.00
fcn2   :     116.40 :        22  3 ; |f|= 2.08376E-03 ; time=      1.84s ; log|BB|e= -3.03 -3.17
fcn2   :            :              ;                                     ; log|II|o= -3.06 -2.94
mp00ac :     118.00 : myid=  0 ; lvol=  1 ; ideriv= 0 ; GMRES ierr=  -1 ;  max niter, epsGMRES not reached ; 
mp00ac :     119.45 : myid=  0 ; lvol=  2 ; ideriv= 0 ; GMRES ierr=  -1 ;  max niter, epsGMRES not reached ; 
mp00ac :     120.91 : myid=  0 ; lvol=  3 ; ideriv= 0 ; GMRES ierr=  -1 ;  max niter, epsGMRES not reached ; 
fcn2   :     120.92 :        23  3 ; |f|= 6.19747E+06 ; time=      4.52s ; log|BB|e=  1.50  7.05
fcn2   :            :              ;                                     ; log|II|o= -2.59 -2.50
fcn2   :     150.89 :        24  4 ; |f|= 2.08376E-03 ; time=     29.97s ; log|BB|e= -3.03 -3.17
fcn2   :            :              ;                                     ; log|II|o= -3.06 -2.94
fcn2   :     152.62 :        25  4 ; |f|= 1.90629E-03 ; time=      1.73s ; log|BB|e= -3.08 -3.21
fcn2   :            :              ;                                     ; log|II|o= -3.11 -3.04
fcn2   :     154.12 :        26  4 ; |f|= 1.90799E-03 ; time=      1.50s ; log|BB|e= -3.11 -3.20
fcn2   :            :              ;                                     ; log|II|o= -3.12 -3.04
fcn2   :     155.98 :        27  4 ; |f|= 1.81562E-03 ; time=      1.86s ; log|BB|e= -3.13 -3.23
fcn2   :            :              ;                                     ; log|II|o= -3.14 -3.07
fcn2   :     158.21 :        28  4 ; |f|= 1.85570E-03 ; time=      2.23s ; log|BB|e= -3.02 -3.24
fcn2   :            :              ;                                     ; log|II|o= -3.14 -3.05
fcn2   :     160.03 :        29  4 ; |f|= 1.75850E-03 ; time=      1.82s ; log|BB|e= -3.12 -3.25
fcn2   :            :              ;                                     ; log|II|o= -3.16 -3.11
fcn2   :     161.84 :        30  4 ; |f|= 1.85394E-03 ; time=      1.81s ; log|BB|e= -3.10 -3.19
fcn2   :            :              ;                                     ; log|II|o= -3.07 -3.05
fcn2   :     189.54 :        31  5 ; |f|= 1.75734E-03 ; time=     27.70s ; log|BB|e= -3.17 -3.22
fcn2   :            :              ;                                     ; log|II|o= -3.14 -3.10
fcn2   :     191.15 :        32  5 ; |f|= 1.72649E-03 ; time=      1.62s ; log|BB|e= -3.14 -3.27
fcn2   :            :              ;                                     ; log|II|o= -3.16 -3.13
fcn2   :     192.93 :        33  5 ; |f|= 1.71086E-03 ; time=      1.77s ; log|BB|e= -3.17 -3.25
fcn2   :            :              ;                                     ; log|II|o= -3.16 -3.13
fcn2   :     195.08 :        34  5 ; |f|= 1.71759E-03 ; time=      2.16s ; log|BB|e= -3.16 -3.28
fcn2   :            :              ;                                     ; log|II|o= -3.16 -3.11
fcn2   :     224.11 :        35  6 ; |f|= 1.71086E-03 ; time=     29.03s ; log|BB|e= -3.17 -3.25
fcn2   :            :              ;                                     ; log|II|o= -3.16 -3.13
fcn2   :     225.88 :        36  6 ; |f|= 1.68421E-03 ; time=      1.77s ; log|BB|e= -3.16 -3.29
fcn2   :            :              ;                                     ; log|II|o= -3.17 -3.15
fcn2   :     227.94 :        37  6 ; |f|= 1.68697E-03 ; time=      2.06s ; log|BB|e= -3.18 -3.25
fcn2   :            :              ;                                     ; log|II|o= -3.17 -3.12
fcn2   :     230.03 :        38  6 ; |f|= 1.66540E-03 ; time=      2.09s ; log|BB|e= -3.18 -3.27
fcn2   :            :              ;                                     ; log|II|o= -3.17 -3.15
fcn2   :     231.96 :        39  6 ; |f|= 1.65359E-03 ; time=      1.93s ; log|BB|e= -3.14 -3.31
fcn2   :            :              ;                                     ; log|II|o= -3.19 -3.16
mp00ac :     233.54 : myid=  0 ; lvol=  1 ; ideriv= 0 ; GMRES ierr=  -1 ;  max niter, epsGMRES not reached ; 
fcn2   :     234.97 :        40  6 ; |f|= 2.35106E+01 ; time=      3.01s ; log|BB|e=  1.62 -3.28
fcn2   :            :              ;                                     ; log|II|o= -3.13 -3.10
fcn2   :     264.31 :        41  7 ; |f|= 1.65359E-03 ; time=     29.34s ; log|BB|e= -3.14 -3.31
fcn2   :            :              ;                                     ; log|II|o= -3.19 -3.16
fcn2   :     266.10 :        42  7 ; |f|= 1.63568E-03 ; time=      1.79s ; log|BB|e= -3.18 -3.27
fcn2   :            :              ;                                     ; log|II|o= -3.18 -3.17
fcn2   :     268.24 :        43  7 ; |f|= 1.61479E-03 ; time=      2.14s ; log|BB|e= -3.18 -3.32
fcn2   :            :              ;                                     ; log|II|o= -3.19 -3.17
fcn2   :     270.46 :        44  7 ; |f|= 1.91808E-03 ; time=      2.23s ; log|BB|e= -2.98 -3.20
fcn2   :            :              ;                                     ; log|II|o= -3.08 -2.96
fcn2   :     299.62 :        45  8 ; |f|= 1.61479E-03 ; time=     29.15s ; log|BB|e= -3.18 -3.32
fcn2   :            :              ;                                     ; log|II|o= -3.19 -3.17
fcn2   :     301.38 :        46  8 ; |f|= 1.59960E-03 ; time=      1.76s ; log|BB|e= -3.19 -3.30
fcn2   :            :              ;                                     ; log|II|o= -3.19 -3.18
fcn2   :     303.34 :        47  8 ; |f|= 1.62331E-03 ; time=      1.96s ; log|BB|e= -3.20 -3.33
fcn2   :            :              ;                                     ; log|II|o= -3.16 -3.14
fcn2   :     305.92 :        48  8 ; |f|= 1.59404E-03 ; time=      2.58s ; log|BB|e= -3.20 -3.34
fcn2   :            :              ;                                     ; log|II|o= -3.18 -3.17
fcn2   :     307.85 :        49  8 ; |f|= 1.57693E-03 ; time=      1.93s ; log|BB|e= -3.20 -3.31
fcn2   :            :              ;                                     ; log|II|o= -3.19 -3.19
fcn2   :     309.96 :        50  8 ; |f|= 1.57298E-03 ; time=      2.11s ; log|BB|e= -3.21 -3.36
fcn2   :            :              ;                                     ; log|II|o= -3.18 -3.18
fcn2   :     311.95 :        51  8 ; |f|= 1.60215E-03 ; time=      1.99s ; log|BB|e= -3.21 -3.30
fcn2   :            :              ;                                     ; log|II|o= -3.13 -3.15
mp00ac :     314.75 : myid=  0 ; lvol=  3 ; ideriv= 0 ; GMRES ierr=  -1 ;  max niter, epsGMRES not reached ; 
fcn2   :     342.15 :        52  9 ; |f|= 1.57298E-03 ; time=     30.20s ; log|BB|e= -3.21 -3.36
fcn2   :            :              ;                                     ; log|II|o= -3.18 -3.18
fcn2   :     343.86 :        53  9 ; |f|= 1.55743E-03 ; time=      1.71s ; log|BB|e= -3.21 -3.32
fcn2   :            :              ;                                     ; log|II|o= -3.18 -3.19
newton :            :
newton :     343.87 : finished ; bad progress   ; ic05p*f= 4 ; its=     53 ,   9 ;
xspech :     343.96 : #freeits=  0 ; |f|= 1.55743E-03 ; time=      0.05s ; log|BB|e= -3.21 -3.32
xspech :            :              ;                                     ; log|II|o= -3.18 -3.19
xspech :            : -------------------Stability Evaluations------------------ 
xspech :     343.96 : myid=  0 ; calling hessian; see .ext.hessian.myid ;
 hesian: only calculates the hessian matrix when Lcons=2
xspech :            :
xspech :     343.97 : myid=  0 ; Poincare plot ; odetol= 1.0E-07 ; nPpts=    101 ; nPtrj=   10,   -1,   -1,
xspech :            :
xspech :     343.97 : myid=  0 ; calling jo00aa; computing error in field ;
jo00aa :     343.99 : myid=  0 ; lvol =  1 ; lrad = 12 ; AVG E^\s=  8.833468982987903E+00 , E^\t=  7.231832235939445E+00 , E^\z=  3.257002017535367E-01 ; time=    0.02s ;
jo00aa :     343.99 : myid=  0 ; lvol =  1 ; lrad = 12 ; MAX E^\s=  3.453637386757360E+04 , E^\t=  5.324304108017557E+04 , E^\z=  2.144045905327909E+03 ; time=    0.02s ;
jo00aa :     344.04 : myid=  0 ; lvol =  1 ; lrad = 12 ; MAX gB^s(-1)=  0.000000000000000E+00 , gB^s(+1) =  2.679906365994199E-18 ; time=    0.07s ;
jo00aa :     344.04 : myid=  0 ; lvol =  1 ; lrad = 12 ; dtfluxERR   =  3.469446951953614E-18 , dpfluxERR=  0.000000000000000E+00 ; time=    0.07s ;
jo00aa :     344.05 : myid=  0 ; lvol =  2 ; lrad = 12 ; AVG E^\s=  6.515496298892457E+01 , E^\t=  7.516738716054148E+00 , E^\z=  6.667104784254148E-01 ; time=    0.01s ;
jo00aa :     344.05 : myid=  0 ; lvol =  2 ; lrad = 12 ; MAX E^\s=  1.207169225860827E+04 , E^\t=  1.027145254693757E+03 , E^\z=  2.197284492889519E+02 ; time=    0.01s ;
jo00aa :     344.15 : myid=  0 ; lvol =  2 ; lrad = 12 ; MAX gB^s(-1)=  0.000000000000000E+00 , gB^s(+1) =  8.024779492336854E-19 ; time=    0.11s ;
jo00aa :     344.15 : myid=  0 ; lvol =  2 ; lrad = 12 ; dtfluxERR   =  0.000000000000000E+00 , dpfluxERR=  2.140488162520081E-21 ; time=    0.11s ;
jo00aa :     344.16 : myid=  0 ; lvol =  3 ; lrad = 12 ; AVG E^\s=  1.214174628999828E+02 , E^\t=  5.816262315458830E+00 , E^\z=  8.322872217942365E-01 ; time=    0.01s ;
jo00aa :     344.16 : myid=  0 ; lvol =  3 ; lrad = 12 ; MAX E^\s=  4.881698887938157E+03 , E^\t=  2.813825192880877E+02 , E^\z=  9.811804581125439E+01 ; time=    0.01s ;
jo00aa :     344.26 : myid=  0 ; lvol =  3 ; lrad = 12 ; MAX gB^s(-1)=  0.000000000000000E+00 , gB^s(+1) =  9.898030931347312E-19 ; time=    0.11s ;
jo00aa :     344.26 : myid=  0 ; lvol =  3 ; lrad = 12 ; dtfluxERR   =  1.734723475976807E-18 , dpfluxERR=  1.364519238730749E-21 ; time=    0.11s ;
pp00aa :     346.15 : myid=  0 ; lvol=  1 ;   1 : (s,t)=( -0.80000000000000004 ,  0.00000000000000000 ) ; utflag=  1 ; transform=  4.055625584338348E-01 ;
pp00aa :     348.05 : myid=  0 ; lvol=  1 ;   2 : (s,t)=( -0.59999999999999998 ,  0.00000000000000000 ) ; utflag=  1 ; transform=  5.007694323654873E-01 ;
pp00aa :     349.92 : myid=  0 ; lvol=  1 ;   3 : (s,t)=( -0.40000000000000002 ,  0.00000000000000000 ) ; utflag=  1 ; transform=  4.758890684895637E-01 ;
pp00aa :     351.78 : myid=  0 ; lvol=  1 ;   4 : (s,t)=( -0.19999999999999996 ,  0.00000000000000000 ) ; utflag=  1 ; transform=  1.332286763013526E+00 ;
pp00aa :     353.69 : myid=  0 ; lvol=  1 ;   5 : (s,t)=(  0.00000000000000000 ,  0.00000000000000000 ) ; utflag=  1 ; transform=  5.791969011841239E-01 ;
pp00aa :     355.58 : myid=  0 ; lvol=  1 ;   6 : (s,t)=(  0.19999999999999996 ,  0.00000000000000000 ) ; utflag=  1 ; transform=  4.000617421138256E-01 ;
pp00aa :     357.54 : myid=  0 ; lvol=  1 ;   7 : (s,t)=(  0.39999999999999991 ,  0.00000000000000000 ) ; utflag=  1 ; transform=  3.936639068290210E-01 ;
pp00aa :     359.42 : myid=  0 ; lvol=  1 ;   8 : (s,t)=(  0.60000000000000009 ,  0.00000000000000000 ) ; utflag=  1 ; transform=  3.856791668126813E-01 ;
pp00aa :     361.28 : myid=  0 ; lvol=  1 ;   9 : (s,t)=(  0.80000000000000004 ,  0.00000000000000000 ) ; utflag=  1 ; transform=  3.774391808915029E-01 ;
pp00aa :     363.22 : myid=  0 ; lvol=  1 ;  10 : (s,t)=(  1.00000000000000000 ,  0.00000000000000000 ) ; utflag=  1 ; transform=  3.698228052655389E-01 ;
pp00aa :     365.02 : myid=  0 ; lvol=  2 ;   0 : (s,t)=( -1.00000000000000000 ,  0.00000000000000000 ) ; utflag=  1 ; transform= -2.003988126507626E-01 ;
pp00aa :     366.84 : myid=  0 ; lvol=  2 ;   1 : (s,t)=( -0.91666666666666663 ,  0.00000000000000000 ) ; utflag=  1 ; transform= -1.442385379124115E-01 ;
pp00aa :     368.61 : myid=  0 ; lvol=  2 ;   2 : (s,t)=( -0.83333333333333337 ,  0.00000000000000000 ) ; utflag=  1 ; transform= -8.647651119778020E-02 ;
pp00aa :     370.40 : myid=  0 ; lvol=  2 ;   3 : (s,t)=( -0.75000000000000000 ,  0.00000000000000000 ) ; utflag=  1 ; transform=  4.250879524400737E-02 ;
pp00aa :     372.18 : myid=  0 ; lvol=  2 ;   4 : (s,t)=( -0.66666666666666674 ,  0.00000000000000000 ) ; utflag=  1 ; transform=  1.116142953134181E-03 ;
pp00aa :     373.95 : myid=  0 ; lvol=  2 ;   5 : (s,t)=( -0.58333333333333326 ,  0.00000000000000000 ) ; utflag=  1 ; transform=  1.019459601463082E-03 ;
pp00aa :     375.73 : myid=  0 ; lvol=  2 ;   6 : (s,t)=( -0.50000000000000000 ,  0.00000000000000000 ) ; utflag=  1 ; transform=  9.641016375404604E-04 ;
pp00aa :     377.50 : myid=  0 ; lvol=  2 ;   7 : (s,t)=( -0.41666666666666663 ,  0.00000000000000000 ) ; utflag=  1 ; transform=  5.160866808672577E-05 ;
pp00aa :     379.28 : myid=  0 ; lvol=  2 ;   8 : (s,t)=( -0.33333333333333337 ,  0.00000000000000000 ) ; utflag=  1 ; transform=  7.489402437663245E-04 ;
pp00aa :     381.04 : myid=  0 ; lvol=  2 ;   9 : (s,t)=( -0.25000000000000000 ,  0.00000000000000000 ) ; utflag=  1 ; transform=  9.843542393727330E-04 ;
pp00aa :     382.82 : myid=  0 ; lvol=  2 ;  10 : (s,t)=( -0.16666666666666663 ,  0.00000000000000000 ) ; utflag=  1 ; transform=  1.515565724979221E-05 ;
pp00aa :     384.59 : myid=  0 ; lvol=  2 ;  11 : (s,t)=( -0.08333333333333337 ,  0.00000000000000000 ) ; utflag=  1 ; transform=  1.343104468041933E-03 ;
pp00aa :     386.44 : myid=  0 ; lvol=  2 ;  12 : (s,t)=(  0.00000000000000000 ,  0.00000000000000000 ) ; utflag=  1 ; transform= -2.328683484969791E-04 ;
pp00aa :     388.21 : myid=  0 ; lvol=  2 ;  13 : (s,t)=(  0.08333333333333326 ,  0.00000000000000000 ) ; utflag=  1 ; transform= -1.259944918988908E-03 ;
pp00aa :     389.99 : myid=  0 ; lvol=  2 ;  14 : (s,t)=(  0.16666666666666674 ,  0.00000000000000000 ) ; utflag=  1 ; transform=  7.759607678913321E-06 ;
pp00aa :     391.76 : myid=  0 ; lvol=  2 ;  15 : (s,t)=(  0.25000000000000000 ,  0.00000000000000000 ) ; utflag=  1 ; transform= -1.152474061454915E-03 ;
pp00aa :     393.54 : myid=  0 ; lvol=  2 ;  16 : (s,t)=(  0.33333333333333326 ,  0.00000000000000000 ) ; utflag=  1 ; transform= -3.547197136242829E-04 ;
pp00aa :     395.31 : myid=  0 ; lvol=  2 ;  17 : (s,t)=(  0.41666666666666674 ,  0.00000000000000000 ) ; utflag=  1 ; transform= -1.313268681341060E-04 ;
pp00aa :     397.08 : myid=  0 ; lvol=  2 ;  18 : (s,t)=(  0.50000000000000000 ,  0.00000000000000000 ) ; utflag=  1 ; transform= -1.064127947651707E-03 ;
pp00aa :     398.86 : myid=  0 ; lvol=  2 ;  19 : (s,t)=(  0.58333333333333326 ,  0.00000000000000000 ) ; utflag=  1 ; transform= -9.316042286284104E-04 ;
pp00aa :     400.65 : myid=  0 ; lvol=  2 ;  20 : (s,t)=(  0.66666666666666674 ,  0.00000000000000000 ) ; utflag=  1 ; transform= -1.112749176623122E-02 ;
pp00aa :     402.42 : myid=  0 ; lvol=  2 ;  21 : (s,t)=(  0.75000000000000000 ,  0.00000000000000000 ) ; utflag=  1 ; transform=  1.381126954990726E-01 ;
pp00aa :     404.22 : myid=  0 ; lvol=  2 ;  22 : (s,t)=(  0.83333333333333326 ,  0.00000000000000000 ) ; utflag=  1 ; transform=  1.832795851769714E-02 ;
pp00aa :     406.00 : myid=  0 ; lvol=  2 ;  23 : (s,t)=(  0.91666666666666674 ,  0.00000000000000000 ) ; utflag=  1 ; transform=  2.724083767911812E-02 ;
pp00aa :     407.77 : myid=  0 ; lvol=  2 ;  24 : (s,t)=(  1.00000000000000000 ,  0.00000000000000000 ) ; utflag=  1 ; transform=  1.567154081400724E-01 ;
pp00aa :     409.61 : myid=  0 ; lvol=  3 ;   0 : (s,t)=( -1.00000000000000000 ,  0.00000000000000000 ) ; utflag=  1 ; transform= -8.439076296296916E-02 ;
pp00aa :     411.38 : myid=  0 ; lvol=  3 ;   1 : (s,t)=( -0.91666666666666663 ,  0.00000000000000000 ) ; utflag=  1 ; transform= -1.890967078410822E-02 ;
pp00aa :     413.16 : myid=  0 ; lvol=  3 ;   2 : (s,t)=( -0.83333333333333337 ,  0.00000000000000000 ) ; utflag=  1 ; transform=  6.647998328884300E-03 ;
pp00aa :     414.93 : myid=  0 ; lvol=  3 ;   3 : (s,t)=( -0.75000000000000000 ,  0.00000000000000000 ) ; utflag=  1 ; transform=  3.966062015906586E-03 ;
pp00aa :     416.71 : myid=  0 ; lvol=  3 ;   4 : (s,t)=( -0.66666666666666674 ,  0.00000000000000000 ) ; utflag=  1 ; transform=  4.467474424747415E-03 ;
pp00aa :     418.48 : myid=  0 ; lvol=  3 ;   5 : (s,t)=( -0.58333333333333326 ,  0.00000000000000000 ) ; utflag=  1 ; transform=  4.369311490654190E-03 ;
pp00aa :     420.26 : myid=  0 ; lvol=  3 ;   6 : (s,t)=( -0.50000000000000000 ,  0.00000000000000000 ) ; utflag=  1 ; transform=  4.254420986200669E-03 ;
pp00aa :     422.04 : myid=  0 ; lvol=  3 ;   7 : (s,t)=( -0.41666666666666663 ,  0.00000000000000000 ) ; utflag=  1 ; transform= -3.168175651825883E-04 ;
pp00aa :     423.82 : myid=  0 ; lvol=  3 ;   8 : (s,t)=( -0.33333333333333337 ,  0.00000000000000000 ) ; utflag=  1 ; transform=  8.642913230845038E-05 ;
pp00aa :     425.60 : myid=  0 ; lvol=  3 ;   9 : (s,t)=( -0.25000000000000000 ,  0.00000000000000000 ) ; utflag=  1 ; transform=  3.495406924848897E-03 ;
pp00aa :     427.38 : myid=  0 ; lvol=  3 ;  10 : (s,t)=( -0.16666666666666663 ,  0.00000000000000000 ) ; utflag=  1 ; transform=  1.435077727076275E-03 ;
pp00aa :     429.17 : myid=  0 ; lvol=  3 ;  11 : (s,t)=( -0.08333333333333337 ,  0.00000000000000000 ) ; utflag=  1 ; transform= -2.096123060044061E-03 ;
pp00aa :     431.01 : myid=  0 ; lvol=  3 ;  12 : (s,t)=(  0.00000000000000000 ,  0.00000000000000000 ) ; utflag=  1 ; transform=  3.843424331593571E-03 ;
pp00aa :     432.80 : myid=  0 ; lvol=  3 ;  13 : (s,t)=(  0.08333333333333326 ,  0.00000000000000000 ) ; utflag=  1 ; transform=  7.504018041618745E-04 ;
pp00aa :     434.57 : myid=  0 ; lvol=  3 ;  14 : (s,t)=(  0.16666666666666674 ,  0.00000000000000000 ) ; utflag=  1 ; transform= -1.583205108113802E-03 ;
pp00aa :     436.35 : myid=  0 ; lvol=  3 ;  15 : (s,t)=(  0.25000000000000000 ,  0.00000000000000000 ) ; utflag=  1 ; transform= -3.908398526317860E-03 ;
pp00aa :     438.13 : myid=  0 ; lvol=  3 ;  16 : (s,t)=(  0.33333333333333326 ,  0.00000000000000000 ) ; utflag=  1 ; transform= -7.049629040141722E-04 ;
pp00aa :     439.91 : myid=  0 ; lvol=  3 ;  17 : (s,t)=(  0.41666666666666674 ,  0.00000000000000000 ) ; utflag=  1 ; transform= -3.971954898543219E-03 ;
pp00aa :     441.68 : myid=  0 ; lvol=  3 ;  18 : (s,t)=(  0.50000000000000000 ,  0.00000000000000000 ) ; utflag=  1 ; transform= -4.210261126571473E-03 ;
pp00aa :     443.46 : myid=  0 ; lvol=  3 ;  19 : (s,t)=(  0.58333333333333326 ,  0.00000000000000000 ) ; utflag=  1 ; transform= -3.683381541820887E-03 ;
pp00aa :     445.23 : myid=  0 ; lvol=  3 ;  20 : (s,t)=(  0.66666666666666674 ,  0.00000000000000000 ) ; utflag=  1 ; transform= -1.311051814951427E-02 ;
pp00aa :     447.00 : myid=  0 ; lvol=  3 ;  21 : (s,t)=(  0.75000000000000000 ,  0.00000000000000000 ) ; utflag=  1 ; transform= -3.822867010640977E-03 ;
pp00aa :     448.78 : myid=  0 ; lvol=  3 ;  22 : (s,t)=(  0.83333333333333326 ,  0.00000000000000000 ) ; utflag=  1 ; transform= -6.507449704480460E-03 ;
pp00aa :     450.55 : myid=  0 ; lvol=  3 ;  23 : (s,t)=(  0.91666666666666674 ,  0.00000000000000000 ) ; utflag=  1 ; transform=  6.132041161538243E-02 ;
pp00aa :     452.32 : myid=  0 ; lvol=  3 ;  24 : (s,t)=(  1.00000000000000000 ,  0.00000000000000000 ) ; utflag=  1 ; transform=  7.948227165745549E-02 ;
ending :            : 
ending :     454.36 : myid=  0 ; completion ; time=    454.36s =     7.57m =   0.13h =  0.01d ; date= 2025/07/09 ; time= 20:57:48 ; ext = eq_3                                                        
ending :            : 
xspech :            :
xspech :     454.36 : myid=  0 : time=    7.57m =   0.13h =  0.01d ;
Note: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG IEEE_DIVIDE_BY_ZERO IEEE_UNDERFLOW_FLAG IEEE_DENORMAL

Taegeun-Jeong avatar Jul 09 '25 12:07 Taegeun-Jeong

Thank you so much for your help !

Would it be possible to kindly share an example input file for a fixed-boundary with multi-region? It would be a great help for my understanding.

Taegeun-Jeong avatar Jul 09 '25 12:07 Taegeun-Jeong

Here is one: https://github.com/PrincetonUniversity/SPEC/blob/master/InputFiles/TestCases/G3V02L3Fi.001.sp

jloizu avatar Jul 09 '25 12:07 jloizu

Hi @Taegeun-Jeong,

I would like to point out a couple of things that may help your understanding.

When you run SPEC with Nvol=1 you are simply solving for the Beltrami field, which more-or-less works well. However, when you want more than one volume, then SPEC needs to also move the interfaces in order to find a state with force balance ([p+B^2]=0). This process unfortunately does not work well in SPEC and is fragile as Joaquim mentioned.

Due to this, finding force balance in shaped equilibria is essentially impossible. Even configurations with arguably less shaping than the precise-QA (e.g. W7-X) will not work except maybe in a few special cases.

Something that would likely work is to run the case with the new code that we are developing. If you're interested, you can send me an email.

ErolBa avatar Jul 09 '25 16:07 ErolBa