Hello,
The example code from: FreeFem++ users | Main >> Newton3D is giving a seg-fault in the while loop, specifically the int3d(Th) functions are not working properly.
I would like to solve this, any pointers would be appreciated.
Best,
Isha
Hello,
The example code from: FreeFem++ users | Main >> Newton3D is giving a seg-fault in the while loop, specifically the int3d(Th) functions are not working properly.
I would like to solve this, any pointers would be appreciated.
Best,
Isha
I have try the example, the converge is bad and test test explose but the code works.
cd /Users/hecht/Downloads ; FreeFem+±CoCoa /Users/hecht/Downloads/boussinesq3d.edp
MBP-M2-FH:~ hecht$ cd /Users/hecht/Downloads ; FreeFem+±CoCoa /Users/hecht/Downloads/boussinesq3d.edp
do script " cd ‘/Users/hecht/Downloads’; /Applications/FreeFem++.app/Contents/ff-4.14-dev/bin/FreeFem++ ‘boussinesq3d.edp’ -glut ‘/Applications/FreeFem++.app/Contents/ff-4.14-dev/bin/ffglut’ ;"
– FreeFem++ v4.14 (Ven 7 jui 2024 11:35:37 CEST - git v4.14-60-g660dbd36)
file : boussinesq3d.edp
Load: lg_fem lg_mesh lg_mesh3 eigenvalue
1 : ////
2 : //// Adapted in April 2014 from a code by F. Hecht
3 : ////
4 : /**
5 : Incompressible steady Navier Stokes + boussinesq coupled system
6 : with Taylor-Hood Finite element
7 : Non-linearity : Newton method
8 : continuation on Rayleigh Number
9 : Solution computed on a cube [0,1]^3
10 :
11 : Problem: Navier-Sokes and Temperature on vertical direccion (Boussinesq hyp.)
12 :
13 : Equations:
14 :
15 : (u.grad)u-nuLap(u) +Grad p = -cT*(0,0,1)’ in the cube
16 : (u.grad)T-kLap(T) = 0 in the cube
17 :
18 : Boundary Conditions:
19 :
20 : u=0 on boundary of cube
21 : T=0 on opposite sidewalls 2 and 4
22 : (d/dn)T=0 on the rest of walls
23 :
24 : /
25 :
26 : ////
27 : //// 2D mesh
28 : ////
29 : int nn=10;
30 : mesh th2d=square(nn,nn);
31 : ////
32 : //// labels for the cube 3d mesh
33 : ////
34 : int[int] rup=[0,1]; ////top of the cube labelled by cero
35 : int[int] rdown=[0,1];////bottom of the cube labelled by cero
36 : int[int] rmid=[1,1,2,2,3,3,4,4];//// sidewalls labelled as the 2d edges they stand on
37 : ////
38 : //// 3D mesh
39 : ////
40 : load “msh3”
41 : mesh3 Th=buildlayers(square(nn,nn),nn, zbound=[0.,1.],
42 : labelmid=rmid, labelup = rup, labeldown = rdown);
43 : real errm=1e-2;
44 : ////
45 : //// MACROS…they mean
46 : ////
47 : //// for a scalar u grad(u) computes the gradient
48 : ////
49 : macro grad(u) [dx(u),dy(u),dz(u)] ) ////
50 : ////
51 : //// For a vector u of componentes u#1,u#2,u#3
52 : //// here # acts as wildcar character
53 : //// Grad(u) compute the matrix of the gradients
54 : ////
55 : macro Grad(u) [grad(u#1),grad(u#2),grad(u#3)] ) ////
56 : ////
57 : //// For a vector u of componentes u#1,u#2,u#3
58 : //// div(u) compute the divergence
59 : ////
60 : macro div(u) (dx(u#1)+dy(u#2)+dz(u#3)) ) ////
61 : ////
62 : //// for a vector u of componentes u#1,u#2,u#3 a scalar v
63 : //// ugrad(u,v) compute a scalar (u.Grad)v
64 : ////
65 : macro ugrad(u,v) ([u#1,u#2,u#3]'grad(v) ) ) ////
66 : ////
67 : //// for a vector u of componentes u#1,u#2,u#3
68 : //// for a vector v of componentes v#1,v#2,v#3
69 : //// the temperature T
70 : //// UgradV(u,v,T) gives a vector of componente
71 : //// (u.grad)v#1, (u.grad)v#2, (u.grad)v#3, (u.grad)T
72 : ////
73 : //// This is a non linear term when u=v
74 : ////
75 : macro UgradV(u,v,T) [ugrad(u,v#1),ugrad(u,v#2),ugrad(u,v#3),ugrad(u,T)] ) ////
76 : ////
77 : //// Finite element spaces for computations
78 : ////
79 : //// Taylor-Hood P2-P1 pair for better precision. Migth be a bit expensive and
80 : //// could be better to use P1b-P1
81 : ////
82 : fespace XXXMh(Th,[P2,P2,P2,P1,P1]);////vectorial FE space for velocity and pressure
83 :
84 : XXXMh [u1,u2,u3,p,T]; ////
85 : XXXMh [uw1,uw2,uw3,pw,Tw]; ////increments during the Newton iteration
86 : XXXMh [v1,v2,v3,q,TT]; //// test functions
87 : XXXMh [uc1,uc2,uc3,pc,Tc]; //// Current computed values out of the Newton iterate
88 : ////
89 : //// Physical constants
90 : ////
91 : real nu= 1./100; //// starting viscosity
92 : real nufinal=1/1000.; //// wanted final viscosity
93 : ////
94 : //// cnu reducing factor for viscosity
95 : //// We reduce viscosity by dividing by cnu
96 : ////
97 : real cnu=2;
98 : ////
99 : //// Number of reductions on viscosity
100 : ////
101 : int countermax=10;
102 : int counter=0;
103 : ////
104 : real Pr = 56.2; //// Prandtl number
105 : real k = 1. / Pr ; //// Heat diffusion, inverse of Prandtl
106 : ////
107 : ////
108 : verbosity=0;
109 : real err=0;
110 : //// stop test for Newton
111 : real eps=1e-6;
112 :
113 : real nuc=nu;//// current viscosity
114 : cout << " ---------------------------- " << endl;
115 : cout << " — START COMPUTATIONS — " << endl;
116 : cout << " ---------------------------- " << endl;
117 : ////
118 : bool adaptation=1;
119 : int one =adaptation; //// to perform mesh adaptation
120 : ////
121 : //// initial data for Newton process
122 : ////
123 : [u1,u2,u3,p,T]=[0,0,0,0,x]; //// cero velocity and heating from above
124 : plot(T,wait=0,cmm=“Initial temperature T=x”, coef=0.3,fill=1,value=1,nbiso=20);
125 : ////
126 : //// Continuation on viscosity number
127 : //// Compute first for a given viscosity and then after convergence of
128 : //// Newton method reduce the viscosity number until nufinal
129 : ////
130 : while((nuc>nufinal) && (counter<countermax)&&(cnu>1.05))
131 : { //// start loop on viscosity
132 : counter =counter+1;
133 : real rey=1./nuc;
134 : real c= - rey/Pr; //// ratio Reynolds/Prandtl
135 :
136 : int n; //// counter for Newton iteration
137 : for (n=0;n<=20;n++)//// nonlinear Newton iteration
138 : {
139 : //// initial data very first iteration is
140 : ////[u1,u2,u3,p,T]=[0,0,0,0,1-x];
141 : ////
142 : //// variables uw1,uw2,uw3,pw,Tw contain the increments computed by
143 : //// using the Gateaux o Frechet derivative
144 : ////
145 : //// v represents—> [v1,v2,v3] (test functions)
146 : //// TT test function for temperature
147 : ////
148 : solve BoussinesqNL([uw1,uw2,uw3,pw,Tw],[v1,v2,v3,q,TT])
149 : =
150 : //// start now with the term
151 : //// <dF(u,T),(uw,Tw)>
152 : ////
153 : int3d(Th) (
154 : ////
155 : ////result of the nonlinear parts on the differential mappping
156 : ////nonlinear parts (ugrad)uw+(uwgrad)u+(ugrad)Tw+(uw*grad)T
157 : ////
158 : ////
159 : //// u represents—> [u1,u2,u3]
160 : //// uw represents—> [uw1,uw2,uw3]
161 : ////
162 : //// Solving <dF(u,T),(uw,Tw)>=-F(u,T) using variational formulation
163 : //// and then
164 : //// u:=u+uw
165 : //// T:=T+Tw
166 : ////
167 : UgradV(u,uw,Tw) [ugrad(u,uw1) ([u1,u2,u3]'*grad(uw1) [dx(uw1),dy(uw1),dz(uw1)] ) ,ugrad(u,uw2) ([u1,u2,u3]‘grad(uw2) [dx(uw2),dy(uw2),dz(uw2)] ) ,ugrad(u,uw3) ([u1,u2,u3]'grad(uw3) [dx(uw3),dy(uw3),dz(uw3)] ) ,ugrad(u,Tw) ([u1,u2,u3]'grad(Tw) [dx(Tw),dy(Tw),dz(Tw)] ) ]’ * [v1,v2,v3,TT]
168 : + UgradV(uw,u,T) [ugrad(uw,u1) ([uw1,uw2,uw3]'grad(u1) [dx(u1),dy(u1),dz(u1)] ) ,ugrad(uw,u2) ([uw1,uw2,uw3]'grad(u2) [dx(u2),dy(u2),dz(u2)] ) ,ugrad(uw,u3) ([uw1,uw2,uw3]‘grad(u3) [dx(u3),dy(u3),dz(u3)] ) ,ugrad(uw,T) ([uw1,uw2,uw3]'grad(T) [dx(T),dy(T),dz(T)] ) ]’ * [v1,v2,v3,TT]
169 : ////
170 : //// nuLap(uw)v (here uw represents—> [uw1,uw2,uw3])
171 : ////
172 : + ( Grad(uw) [grad(uw1) [dx(uw1),dy(uw1),dz(uw1)],grad(uw2) [dx(uw2),dy(uw2),dz(uw2)],grad(uw3) [dx(uw3),dy(uw3),dz(uw3)]]:Grad(v) [grad(v1) [dx(v1),dy(v1),dz(v1)],grad(v2) [dx(v2),dy(v2),dz(v2)],grad(v3) [dx(v3),dy(v3),dz(v3)]]) * nuc
173 : ////
174 : //// effect of Boussinesq hypothesis body force is -cT(0,0,1)’
175 : ////
176 : + cTwv3
177 : ////
178 : ////-kLap(Tw)
179 : + grad(Tw) [dx(Tw),dy(Tw),dz(Tw)]'grad(TT) [dx(TT),dy(TT),dz(TT)]k
180 : ////
181 : //// incompressibility for uw
182 : ////
183 : - div(uw) (dx(uw1)+dy(uw2)+dz(uw3)) q
184 : ////
185 : //// grad(pw)
186 : ////
187 : -div(v) (dx(v1)+dy(v2)+dz(v3)) pw
188 : ////
189 : //// stabilization term
190 : ////
191 : + 1e-8pwq
192 : )
193 : ////
194 : //// Now the -F(u,T) term goes +F(u,T) on left hand side
195 : + int3d(Th)(
196 : ////
197 : //// non linear term on data (u,T)
198 : //// (ugrad)u+(ugrad)T
199 : ////
200 : UgradV(u,u,T) [ugrad(u,u1) ([u1,u2,u3]'grad(u1) [dx(u1),dy(u1),dz(u1)] ) ,ugrad(u,u2) ([u1,u2,u3]‘grad(u2) [dx(u2),dy(u2),dz(u2)] ) ,ugrad(u,u3) ([u1,u2,u3]'grad(u3) [dx(u3),dy(u3),dz(u3)] ) ,ugrad(u,T) ([u1,u2,u3]'grad(T) [dx(T),dy(T),dz(T)] ) ]’ * [v1,v2,v3,TT] //// non linear term on data (u,T)
201 : ////
202 : ////the -nuLap(u)
203 : ////
204 : + ( Grad(u) [grad(u1) [dx(u1),dy(u1),dz(u1)],grad(u2) [dx(u2),dy(u2),dz(u2)],grad(u3) [dx(u3),dy(u3),dz(u3)]]:Grad(v) [grad(v1) [dx(v1),dy(v1),dz(v1)],grad(v2) [dx(v2),dy(v2),dz(v2)],grad(v3) [dx(v3),dy(v3),dz(v3)]] ) * nuc
205 : ////
206 : //// the body force cT(0,0,1)’
207 : ////
208 : + cTv3
209 : ////
210 : //// the -kLap(T)
211 : ////
212 : + grad(T) [dx(T),dy(T),dz(T)]’*grad(TT) [dx(TT),dy(TT),dz(TT)]k
213 : ////
214 : //// the incompressibility condition
215 : ////
216 : - div(u) (dx(u1)+dy(u2)+dz(u3)) q
217 : ////
218 : //// the grad(p)
219 : ////
220 : -div(v) (dx(v1)+dy(v2)+dz(v3)) p
221 : //// the stabilization term
222 : + 1e-8pq
223 : )
224 : //// Boundary Conditions for velocity field
225 : + on(1,2,3,4, uw1=0,uw2=0,uw3=0)//// velocity cero top, bottom and sidewalls
226 : //// Boundary Conditions for Temperature field
227 : + on(2,4,Tw=0);//// Temperature cero opposite sidewalls 2 and 4
228 : //// on the rest…normal derivative of T is cero.
229 : ////
230 : //// update all the fields…velocities and temperature whithin Newton iteration
231 : ////
232 : ////
233 : //// update values to compute again
234 : ////
235 : u1[] += uw1[]; ////u1[]=u1[]+uw1[] an update the rest in the same way
236 :
237 : //// u2[] += uw2[]; //u2[]=u2[]+uw2[]
238 : //// u3[] += uw3[]; //u3[]=u3[]+uw3[]
239 : //// p[] += pw[]; //p[]=p[]+pw[]
240 : //// T[] += Tw[]; //T[]=T[]+Tw[]
241 :
242 :
243 : ////
244 : //// computation of norms for the increments, takes five components at the same time
245 : ////
246 : real solutionl2=u1[].l2; //// l2 norm of all components [u1,u2,u3,p,T]
247 : real incrementl2=uw1[].l2; //// l2 norm of all components [uw1,uw2,uw3,pw,Tw]
248 : ////
249 : //// normalization of the norms
250 : ////
251 : err= incrementl2/solutionl2;
252 :
253 : cout << " iter = "<< n << " norm l2 of the solution is = " << solutionl2
254 : << " nu = " << nuc << endl;
255 : cout << " iter = "<< n << " norm l2 of the increment is = " << incrementl2
256 : << " nu = " << nuc << endl;
257 :
258 : cout << " iter = "<< n << " err " <<err
259 : << " nu = " << nuc << endl;
260 : ////
261 : //// plot iterate
262 : ////
263 : plot(T,wait=0,cmm=“Temperature using Newton Method for viscosity = " + nuc +”, it = "+ n+ ", err = “+err, coef=0.3,fill=1,value=1,nbiso=20);
264 : ////
265 : ////–> In case of no convergence…
266 : //// (n>3 AND err>2) is blowup
267 : //// (n>12 AND err>eps) is lack of convergence or very slow
268 : ////
269 : if( (n>3 && err > 2.) || (n>12 && err > 1) ) //// (n>3 AND err>2) or (n>12 AND err>eps)
270 : {//// start —> if
271 : cout<<” NO convergence for nu = "+nuc+ ", it = "+ n+ ", err = "+err <<endl;
272 : nuc=nuccnu; //// get back to previous nu
273 : cout << " LAST viscosity TO CONVERGE = " << nuc<< endl;
274 : ////
275 : //// take computed values for previous nuc to start again
276 : ////
277 : u1=uc1;
278 : ////
279 : //// New reduction for cnu
280 : ////
281 : cnu= cnu^(0.6); //// no conv. => change lower (cnu^(0.6) makes cnu smaller)
282 : nuc = nuc/cnu; //// new vicosity
283 : cout << " RESTART with NEW viscosity = " << nuc << endl;
284 : cout << " Using as Inital Data the solution for PREVIOUS v
… : iscosity " << endl;
285 : break; //// Blowup ??? —>out of for loop go to while loop
286 : }//// end —> if( n>3 && err > 2.)
287 : ////
288 : ////–>In case of Convergence then…
289 : ////
290 : if(err < eps)
291 : {//// start —> if(err < eps)
292 : cout << " CONVERGENCE for viscosity = " << nuc << " on iters = “<< n <<”, err = “+err << endl;
293 : ////uc1=u1; uc2=u2; uc3=u3; pc=p; Tc=T; // save computed values of this convergent solution
294 : uc1=u1;
295 : plot(T,wait=0,cmm=“Solution for viscosity = " + nuc,coef=0.3,fill=1,value=1,nbiso=20);
296 :
297 : if( n < 4) cnu=cnu^1.5; //// fast converge => change faster ( cnu^ 1.5 makes bigger cnu)
298 : nuc = max(nufinal, nuc/cnu); //// reduce to a new vicosity
299 : cout << " Continuation to new viscosity = " << nuc <<” (dividing factor “<<cnu<<”)”<< endl;
300 : cout << " Initial data IS the FINAL computation for previ
… : ous viscosity " << endl;
301 : break; //// converge —> out of for loop. Start again with u1,u2,p and new nuc
302 : }//// end —> if(err < eps)
303 : }////end —> for loop
304 : } //// end while loop on viscosity
305 : plot(T,cmm=“Temperature Last converge of Newton Method for nu
… : = " + nuc,coef=0.3,wait=0,fill=1,value=1,nbiso=10);
306 : cout << " LAST viscosity TO CONVERGE nu = " << nuc << endl;
307 : plot(coef=0.2,cmm=” Temperature for viscosity "+nuc,T,fill=1,value=1,nbiso=20); sizestack + 1024 =8456 ( 7432 )
FALLBACK (log once): Fallback to SW vertex for line stipple
FALLBACK (log once): Fallback to SW vertex processing, m_disable_code: 2000
FALLBACK (log once): Fallback to SW vertex processing in drawCore, m_disable_code: 2000
iter = 0 norm l2 of the solution is = 54.5936 nu = 0.01
iter = 0 norm l2 of the increment is = 50.1886 nu = 0.01
iter = 0 err 0.919313 nu = 0.01
iter = 1 norm l2 of the solution is = 36.0245 nu = 0.01
iter = 1 norm l2 of the increment is = 24.0584 nu = 0.01
iter = 1 err 0.667836 nu = 0.01
iter = 2 norm l2 of the solution is = 30.3662 nu = 0.01
iter = 2 norm l2 of the increment is = 9.25408 nu = 0.01
iter = 2 err 0.30475 nu = 0.01
iter = 3 norm l2 of the solution is = 28.8534 nu = 0.01
iter = 3 norm l2 of the increment is = 2.88402 nu = 0.01
iter = 3 err 0.0999543 nu = 0.01
iter = 4 norm l2 of the solution is = 28.775 nu = 0.01
iter = 4 norm l2 of the increment is = 0.252122 nu = 0.01
iter = 4 err 0.00876183 nu = 0.01
iter = 5 norm l2 of the solution is = 28.7755 nu = 0.01
iter = 5 norm l2 of the increment is = 0.00210796 nu = 0.01
iter = 5 err 7.32553e-05 nu = 0.01
iter = 6 norm l2 of the solution is = 28.7755 nu = 0.01
iter = 6 norm l2 of the increment is = 8.17775e-08 nu = 0.01
iter = 6 err 2.84191e-09 nu = 0.01
CONVERGENCE for viscosity = 0.01 on iters = 6, err = 2.84191e-09
Continuation to new viscosity = 0.005 (dividing factor 2)
Initial data IS the FINAL computation for previous viscosity
iter = 0 norm l2 of the solution is = 41.6728 nu = 0.005
iter = 0 norm l2 of the increment is = 18.7846 nu = 0.005
iter = 0 err 0.450764 nu = 0.005
iter = 1 norm l2 of the solution is = 41.504 nu = 0.005
iter = 1 norm l2 of the increment is = 4.46038 nu = 0.005
iter = 1 err 0.107469 nu = 0.005
iter = 2 norm l2 of the solution is = 41.7005 nu = 0.005
iter = 2 norm l2 of the increment is = 0.755348 nu = 0.005
iter = 2 err 0.0181136 nu = 0.005
iter = 3 norm l2 of the solution is = 41.7012 nu = 0.005
iter = 3 norm l2 of the increment is = 0.0127765 nu = 0.005
iter = 3 err 0.000306383 nu = 0.005
iter = 4 norm l2 of the solution is = 41.7012 nu = 0.005
iter = 4 norm l2 of the increment is = 6.72466e-06 nu = 0.005
iter = 4 err 1.61258e-07 nu = 0.005
CONVERGENCE for viscosity = 0.005 on iters = 4, err = 1.61258e-07
Continuation to new viscosity = 0.0025 (dividing factor 2)
Initial data IS the FINAL computation for previous viscosity
iter = 0 norm l2 of the solution is = 66.0549 nu = 0.0025
iter = 0 norm l2 of the increment is = 31.8274 nu = 0.0025
iter = 0 err 0.481832 nu = 0.0025
iter = 1 norm l2 of the solution is = 65.3784 nu = 0.0025
iter = 1 norm l2 of the increment is = 7.43208 nu = 0.0025
iter = 1 err 0.113678 nu = 0.0025
iter = 2 norm l2 of the solution is = 65.4833 nu = 0.0025
iter = 2 norm l2 of the increment is = 1.6268 nu = 0.0025
iter = 2 err 0.0248429 nu = 0.0025
iter = 3 norm l2 of the solution is = 65.4821 nu = 0.0025
iter = 3 norm l2 of the increment is = 0.147724 nu = 0.0025
iter = 3 err 0.00225594 nu = 0.0025
iter = 4 norm l2 of the solution is = 65.4822 nu = 0.0025
iter = 4 norm l2 of the increment is = 0.00298921 nu = 0.0025
iter = 4 err 4.56493e-05 nu = 0.0025
iter = 5 norm l2 of the solution is = 65.4822 nu = 0.0025
iter = 5 norm l2 of the increment is = 1.44427e-06 nu = 0.0025
iter = 5 err 2.2056e-08 nu = 0.0025
CONVERGENCE for viscosity = 0.0025 on iters = 5, err = 2.2056e-08
Continuation to new viscosity = 0.00125 (dividing factor 2)
Initial data IS the FINAL computation for previous viscosity
iter = 0 norm l2 of the solution is = 113.327 nu = 0.00125
iter = 0 norm l2 of the increment is = 61.1883 nu = 0.00125
iter = 0 err 0.539928 nu = 0.00125
iter = 1 norm l2 of the solution is = 138.326 nu = 0.00125
iter = 1 norm l2 of the increment is = 83.6301 nu = 0.00125
iter = 1 err 0.604589 nu = 0.00125
iter = 2 norm l2 of the solution is = 327.972 nu = 0.00125
iter = 2 norm l2 of the increment is = 309.394 nu = 0.00125
iter = 2 err 0.943356 nu = 0.00125
iter = 3 norm l2 of the solution is = 5173.89 nu = 0.00125
iter = 3 norm l2 of the increment is = 5173 nu = 0.00125
iter = 3 err 0.999828 nu = 0.00125
iter = 4 norm l2 of the solution is = 43883.1 nu = 0.00125
iter = 4 norm l2 of the increment is = 43792.8 nu = 0.00125
iter = 4 err 0.997941 nu = 0.00125
iter = 5 norm l2 of the solution is = 51760.5 nu = 0.00125
iter = 5 norm l2 of the increment is = 64390.4 nu = 0.00125
iter = 5 err 1.24401 nu = 0.00125
iter = 6 norm l2 of the solution is = 652427 nu = 0.00125
iter = 6 norm l2 of the increment is = 657325 nu = 0.00125
iter = 6 err 1.00751 nu = 0.00125
iter = 7 norm l2 of the solution is = 6.52001e+06 nu = 0.00125
iter = 7 norm l2 of the increment is = 6.57713e+06 nu = 0.00125
iter = 7 err 1.00876 nu = 0.00125
iter = 8 norm l2 of the solution is = 1.40046e+07 nu = 0.00125
iter = 8 norm l2 of the increment is = 1.52788e+07 nu = 0.00125
iter = 8 err 1.09099 nu = 0.00125
iter = 9 norm l2 of the solution is = 4.62e+08 nu = 0.00125
iter = 9 norm l2 of the increment is = 4.61924e+08 nu = 0.00125
iter = 9 err 0.999836 nu = 0.00125
iter = 10 norm l2 of the solution is = 1.45225e+09 nu = 0.00125
iter = 10 norm l2 of the increment is = 1.47547e+09 nu = 0.00125
iter = 10 err 1.01599 nu = 0.00125
iter = 11 norm l2 of the solution is = 3.73892e+10 nu = 0.00125
iter = 11 norm l2 of the increment is = 3.71997e+10 nu = 0.00125
iter = 11 err 0.994932 nu = 0.00125
iter = 12 norm l2 of the solution is = 1.17798e+11 nu = 0.00125
iter = 12 norm l2 of the increment is = 1.2022e+11 nu = 0.00125
iter = 12 err 1.02056 nu = 0.00125
iter = 13 norm l2 of the solution is = 3.50408e+11 nu = 0.00125
iter = 13 norm l2 of the increment is = 3.74938e+11 nu = 0.00125
iter = 13 err 1.07 nu = 0.00125
NO convergence for nu = 0.00125, it = 13, err = 1.07
LAST viscosity TO CONVERGE = 0.0025
RESTART with NEW viscosity = 0.00164938
Using as Inital Data the solution for PREVIOUS viscosity
iter = 0 norm l2 of the solution is = 88.8106 nu = 0.00164938
iter = 0 norm l2 of the increment is = 30.0889 nu = 0.00164938
iter = 0 err 0.338799 nu = 0.00164938
iter = 1 norm l2 of the solution is = 88.0441 nu = 0.00164938
iter = 1 norm l2 of the increment is = 6.9484 nu = 0.00164938
iter = 1 err 0.0789195 nu = 0.00164938
iter = 2 norm l2 of the solution is = 88.1804 nu = 0.00164938
iter = 2 norm l2 of the increment is = 5.63273 nu = 0.00164938
iter = 2 err 0.0638774 nu = 0.00164938
iter = 3 norm l2 of the solution is = 88.0055 nu = 0.00164938
iter = 3 norm l2 of the increment is = 1.63483 nu = 0.00164938
iter = 3 err 0.0185764 nu = 0.00164938
iter = 4 norm l2 of the solution is = 88.0043 nu = 0.00164938
iter = 4 norm l2 of the increment is = 0.14972 nu = 0.00164938
iter = 4 err 0.00170128 nu = 0.00164938
iter = 5 norm l2 of the solution is = 88.0042 nu = 0.00164938
iter = 5 norm l2 of the increment is = 0.00183785 nu = 0.00164938
iter = 5 err 2.08837e-05 nu = 0.00164938
iter = 6 norm l2 of the solution is = 88.0042 nu = 0.00164938
iter = 6 norm l2 of the increment is = 5.67813e-07 nu = 0.00164938
iter = 6 err 6.45211e-09 nu = 0.00164938
CONVERGENCE for viscosity = 0.00164938 on iters = 6, err = 6.45211e-09
Continuation to new viscosity = 0.00108819 (dividing factor 1.51572)
Initial data IS the FINAL computation for previous viscosity
iter = 0 norm l2 of the solution is = 133.75 nu = 0.00108819
iter = 0 norm l2 of the increment is = 68.0884 nu = 0.00108819
iter = 0 err 0.509074 nu = 0.00108819
iter = 1 norm l2 of the solution is = 163.842 nu = 0.00108819
iter = 1 norm l2 of the increment is = 108.07 nu = 0.00108819
iter = 1 err 0.6596 nu = 0.00108819
iter = 2 norm l2 of the solution is = 772.998 nu = 0.00108819
iter = 2 norm l2 of the increment is = 759.157 nu = 0.00108819
iter = 2 err 0.982095 nu = 0.00108819
iter = 3 norm l2 of the solution is = 1561.14 nu = 0.00108819
iter = 3 norm l2 of the increment is = 1555.72 nu = 0.00108819
iter = 3 err 0.996531 nu = 0.00108819
iter = 4 norm l2 of the solution is = 10970.7 nu = 0.00108819
iter = 4 norm l2 of the increment is = 11042.6 nu = 0.00108819
iter = 4 err 1.00656 nu = 0.00108819
iter = 5 norm l2 of the solution is = 1.81488e+06 nu = 0.00108819
iter = 5 norm l2 of the increment is = 1.81507e+06 nu = 0.00108819
iter = 5 err 1.00011 nu = 0.00108819
iter = 6 norm l2 of the solution is = 6.91653e+06 nu = 0.00108819
iter = 6 norm l2 of the increment is = 7.1665e+06 nu = 0.00108819
iter = 6 err 1.03614 nu = 0.00108819
iter = 7 norm l2 of the solution is = 8.98585e+06 nu = 0.00108819
iter = 7 norm l2 of the increment is = 1.06925e+07 nu = 0.00108819
iter = 7 err 1.18993 nu = 0.00108819
iter = 8 norm l2 of the solution is = 3.07881e+07 nu = 0.00108819
iter = 8 norm l2 of the increment is = 3.19718e+07 nu = 0.00108819
iter = 8 err 1.03845 nu = 0.00108819
iter = 9 norm l2 of the solution is = 6.88865e+07 nu = 0.00108819
iter = 9 norm l2 of the increment is = 7.16418e+07 nu = 0.00108819
iter = 9 err 1.04 nu = 0.00108819
iter = 10 norm l2 of the solution is = 6.74559e+08 nu = 0.00108819
iter = 10 norm l2 of the increment is = 6.71772e+08 nu = 0.00108819
iter = 10 err 0.995868 nu = 0.00108819
iter = 11 norm l2 of the solution is = 4.34913e+09 nu = 0.00108819
iter = 11 norm l2 of the increment is = 4.40264e+09 nu = 0.00108819
iter = 11 err 1.0123 nu = 0.00108819
iter = 12 norm l2 of the solution is = 1.39342e+10 nu = 0.00108819
iter = 12 norm l2 of the increment is = 1.44947e+10 nu = 0.00108819
iter = 12 err 1.04023 nu = 0.00108819
iter = 13 norm l2 of the solution is = 8.43101e+11 nu = 0.00108819
iter = 13 norm l2 of the increment is = 8.43635e+11 nu = 0.00108819
iter = 13 err 1.00063 nu = 0.00108819
NO convergence for nu = 0.00108819, it = 13, err = 1.00063
LAST viscosity TO CONVERGE = 0.00164938
RESTART with NEW viscosity = 0.00128514
Using as Inital Data the solution for PREVIOUS viscosity
iter = 0 norm l2 of the solution is = 107.797 nu = 0.00128514
iter = 0 norm l2 of the increment is = 27.2448 nu = 0.00128514
iter = 0 err 0.252743 nu = 0.00128514
iter = 1 norm l2 of the solution is = 108.026 nu = 0.00128514
iter = 1 norm l2 of the increment is = 20.6578 nu = 0.00128514
iter = 1 err 0.191231 nu = 0.00128514
iter = 2 norm l2 of the solution is = 107.749 nu = 0.00128514
iter = 2 norm l2 of the increment is = 12.5265 nu = 0.00128514
iter = 2 err 0.116256 nu = 0.00128514
iter = 3 norm l2 of the solution is = 112.77 nu = 0.00128514
iter = 3 norm l2 of the increment is = 33.9331 nu = 0.00128514
iter = 3 err 0.300905 nu = 0.00128514
iter = 4 norm l2 of the solution is = 109.131 nu = 0.00128514
iter = 4 norm l2 of the increment is = 26.5275 nu = 0.00128514
iter = 4 err 0.243078 nu = 0.00128514
iter = 5 norm l2 of the solution is = 1384.5 nu = 0.00128514
iter = 5 norm l2 of the increment is = 1382.35 nu = 0.00128514
iter = 5 err 0.998452 nu = 0.00128514
iter = 6 norm l2 of the solution is = 1188 nu = 0.00128514
iter = 6 norm l2 of the increment is = 1178.22 nu = 0.00128514
iter = 6 err 0.99177 nu = 0.00128514
iter = 7 norm l2 of the solution is = 15670.2 nu = 0.00128514
iter = 7 norm l2 of the increment is = 15673.3 nu = 0.00128514
iter = 7 err 1.0002 nu = 0.00128514
iter = 8 norm l2 of the solution is = 32865 nu = 0.00128514
iter = 8 norm l2 of the increment is = 34103.6 nu = 0.00128514
iter = 8 err 1.03769 nu = 0.00128514
iter = 9 norm l2 of the solution is = 229752 nu = 0.00128514
iter = 9 norm l2 of the increment is = 231107 nu = 0.00128514
iter = 9 err 1.0059 nu = 0.00128514
iter = 10 norm l2 of the solution is = 1.7383e+06 nu = 0.00128514
iter = 10 norm l2 of the increment is = 1.78141e+06 nu = 0.00128514
iter = 10 err 1.0248 nu = 0.00128514
iter = 11 norm l2 of the solution is = 4.5312e+06 nu = 0.00128514
iter = 11 norm l2 of the increment is = 5.00278e+06 nu = 0.00128514
iter = 11 err 1.10407 nu = 0.00128514
iter = 12 norm l2 of the solution is = 7.86183e+07 nu = 0.00128514
iter = 12 norm l2 of the increment is = 7.84382e+07 nu = 0.00128514
iter = 12 err 0.997709 nu = 0.00128514
iter = 13 norm l2 of the solution is = 1.34233e+08 nu = 0.00128514
iter = 13 norm l2 of the increment is = 1.39051e+08 nu = 0.00128514
iter = 13 err 1.03589 nu = 0.00128514
NO convergence for nu = 0.00128514, it = 13, err = 1.03589
LAST viscosity TO CONVERGE = 0.00164938
RESTART with NEW viscosity = 0.00142004
Using as Inital Data the solution for PREVIOUS viscosity
iter = 0 norm l2 of the solution is = 99.0145 nu = 0.00142004
iter = 0 norm l2 of the increment is = 14.6384 nu = 0.00142004
iter = 0 err 0.147841 nu = 0.00142004
iter = 1 norm l2 of the solution is = 99.0791 nu = 0.00142004
iter = 1 norm l2 of the increment is = 5.42687 nu = 0.00142004
iter = 1 err 0.0547731 nu = 0.00142004
iter = 2 norm l2 of the solution is = 98.8848 nu = 0.00142004
iter = 2 norm l2 of the increment is = 1.85827 nu = 0.00142004
iter = 2 err 0.0187923 nu = 0.00142004
iter = 3 norm l2 of the solution is = 98.8679 nu = 0.00142004
iter = 3 norm l2 of the increment is = 0.50027 nu = 0.00142004
iter = 3 err 0.00505999 nu = 0.00142004
iter = 4 norm l2 of the solution is = 98.8675 nu = 0.00142004
iter = 4 norm l2 of the increment is = 0.0185601 nu = 0.00142004
iter = 4 err 0.000187727 nu = 0.00142004
iter = 5 norm l2 of the solution is = 98.8675 nu = 0.00142004
iter = 5 norm l2 of the increment is = 3.41836e-05 nu = 0.00142004
iter = 5 err 3.45751e-07 nu = 0.00142004
CONVERGENCE for viscosity = 0.00142004 on iters = 5, err = 3.45751e-07
Continuation to new viscosity = 0.00122258 (dividing factor 1.16151)
Initial data IS the FINAL computation for previous viscosity
iter = 0 norm l2 of the solution is = 112.495 nu = 0.00122258
iter = 0 norm l2 of the increment is = 21.4033 nu = 0.00122258
iter = 0 err 0.19026 nu = 0.00122258
iter = 1 norm l2 of the solution is = 115.015 nu = 0.00122258
iter = 1 norm l2 of the increment is = 30.1166 nu = 0.00122258
iter = 1 err 0.261848 nu = 0.00122258
iter = 2 norm l2 of the solution is = 1952.41 nu = 0.00122258
iter = 2 norm l2 of the increment is = 1958 nu = 0.00122258
iter = 2 err 1.00287 nu = 0.00122258
iter = 3 norm l2 of the solution is = 979.026 nu = 0.00122258
iter = 3 norm l2 of the increment is = 981.707 nu = 0.00122258
iter = 3 err 1.00274 nu = 0.00122258
iter = 4 norm l2 of the solution is = 1362.15 nu = 0.00122258
iter = 4 norm l2 of the increment is = 1363.92 nu = 0.00122258
iter = 4 err 1.0013 nu = 0.00122258
iter = 5 norm l2 of the solution is = 15041.9 nu = 0.00122258
iter = 5 norm l2 of the increment is = 15045.3 nu = 0.00122258
iter = 5 err 1.00022 nu = 0.00122258
iter = 6 norm l2 of the solution is = 31833.9 nu = 0.00122258
iter = 6 norm l2 of the increment is = 32619.8 nu = 0.00122258
iter = 6 err 1.02469 nu = 0.00122258
iter = 7 norm l2 of the solution is = 122936 nu = 0.00122258
iter = 7 norm l2 of the increment is = 128315 nu = 0.00122258
iter = 7 err 1.04376 nu = 0.00122258
iter = 8 norm l2 of the solution is = 1.69228e+06 nu = 0.00122258
iter = 8 norm l2 of the increment is = 1.69446e+06 nu = 0.00122258
iter = 8 err 1.00129 nu = 0.00122258
iter = 9 norm l2 of the solution is = 5.27616e+06 nu = 0.00122258
iter = 9 norm l2 of the increment is = 5.33833e+06 nu = 0.00122258
iter = 9 err 1.01178 nu = 0.00122258
iter = 10 norm l2 of the solution is = 5.51745e+07 nu = 0.00122258
iter = 10 norm l2 of the increment is = 5.5605e+07 nu = 0.00122258
iter = 10 err 1.0078 nu = 0.00122258
Thank you for trying out the example, I am not using the cocoa executable. I installed it on a RHEL(Oracle linux version 9) and with that binary I get a seg-fault.
More specifically I am getting an exception of “Broken pipe” at the following line:
‘fwrite(ptr,size,nmemb,stream);’ in ffapi.cpp line 198
The call stack looks like:
You should deactivate plotting, probably by using the additional command line parameter -nw, then the code will run fine.
There is something wrong with your installation. How did you compile FreeFEM? What version are you using?
I compiled the develop branch of FreeFem-sources, because there were issues related to 3rd-party downloads on the master branch. Some checks are indeed failing when I run make check:
test-suite.log (173.2 KB)
The only little hack I made to get it all compiled was commenting out a couple of lines in plugin mpi: