28Vector<double> uresidual_v(0, 0, 0);
30scalar fluxresidual = 1;
31scalar prec1residual = 1;
32scalar prec2residual = 1;
33scalar prec3residual = 1;
34scalar prec4residual = 1;
35scalar prec5residual = 1;
36scalar prec6residual = 1;
37scalar prec7residual = 1;
38scalar prec8residual = 1;
40scalar dec1residual = 1;
41scalar dec2residual = 1;
42scalar dec3residual = 1;
49res_os.open(
"./ITHACAoutput/Offline/residuals", std::ios_base::app);
52#if defined(OFVER) && (OFVER == 6)
54while (simple.loop(runTime) && residual > tolerance && csolve < maxIter )
56while (simple.loop() && residual > tolerance && csolve < maxIter )
59 Info <<
"Time = " << runTime.timeName() << nl << endl;
64 Tresidual = TEqn.solve().initialResidual();
66#include "updateConsts.H"
73 Tresidual = TEqn.solve().initialResidual();
76 for (label i = 0; i < 3; i++)
78 if (C < uresidual_v[i])
85 residual =
max(presidual, uresidual);
86 residual =
max(residual, fluxresidual);
87 residual =
max(residual, prec1residual);
88 residual =
max(residual, prec2residual);
89 residual =
max(residual, prec3residual);
90 residual =
max(residual, prec4residual);
91 residual =
max(residual, prec5residual);
92 residual =
max(residual, prec6residual);
93 residual =
max(residual, prec7residual);
94 residual =
max(residual, prec8residual);
95 residual =
max(residual, Tresidual);
96 residual =
max(residual, dec1residual);
97 residual =
max(residual, dec2residual);
98 residual =
max(residual, dec3residual);
99 Info <<
"\nResidual: " << residual << endl << endl;
101 laminarTransport.correct();
102 turbulence->correct();
103 powerDens = (1 - decbetaTot) * flux * SP1_0 + (decLam1 * dec1 + decLam2 * dec2 +
106 Info <<
"ExecutionTime = " << runTime.elapsedCpuTime() <<
" s"
107 <<
" ClockTime = " << runTime.elapsedClockTime() <<
" s"
109 Info <<
"\nIteration number: " << csolve << endl << endl;
112res_os << residual << std::endl;
114runTime.setTime(runTime.startTime(), 0);
131 "./ITHACAoutput/Offline/");
137Ufield.append(U.clone());
138Pfield.append(p.clone());
139Fluxfield.append(flux.clone());
140Prec1field.append(prec1.clone());
141Prec2field.append(prec2.clone());
142Prec3field.append(prec3.clone());
143Prec4field.append(prec4.clone());
144Prec5field.append(prec5.clone());
145Prec6field.append(prec6.clone());
146Prec7field.append(prec7.clone());
147Prec8field.append(prec8.clone());
148Tfield.append(T.clone());
149Dec1field.append(dec1.clone());
150Dec2field.append(dec2.clone());
151Dec3field.append(dec3.clone());
152vFields.append(v.clone());
153DFields.append(D.clone());
154NSFFields.append(NSF.clone());
155AFields.append(A.clone());
156SPFields.append(SP.clone());
T max(Eigen::SparseMatrix< T > &mat, label &ind_row, label &ind_col)
Find the maximum of a sparse Matrix (Useful for DEIM).
void exportSolution(GeometricField< Type, PatchField, GeoMesh > &s, fileName subfolder, fileName folder, word fieldName)
Export a field to file in a certain folder and subfolder.