Chi-Tech
lbs__XXNonLinearKEigen.h
Go to the documentation of this file.
1/** \defgroup lbs__XXNonLinearKEigen lbs.XXNonLinearKEigen
2
3
4\ingroup LBSExecutors
5Generalized implementation of a non-linear k-Eigenvalue solver
6
7
8## Example usage:
9Create this object:
10\code
11params =
12{
13 param_name1 = value1,
14 param_name2 = value2,
15 --etc.
16}
17lbs.XXNonLinearKEigen.Create(params)
18\endcode
19## Required Input parameters
20\htmlonly
21
22<div style="display: block;">
23<button type="button" class="droppy2" style=
24"
25background-color: #edf0f5;
26color: #9373A5;
27cursor: pointer;
28border: none;
29text-align: left;
30outline: none;
31font-size: 15px;
32margin: 2px 2px;
33border: 2px solid #687372;
34display: block;
35width: 100%;
36vertical-align: middle;
37padding-top: 4px;
38padding-bottom: 0px;
39"
40><span class="arrow" style="padding-left: 0px;">►</span><TT><B>lbs_solver_handle</B></TT><span style="color: #c4c1c0;">&nbsp &nbsp &nbsp &nbspHandle to an existing lbs solver</span></button>
41<div class="content" style="display: none;">
42 <p><I>type=</I><span style="color: blue;"><TT>INTEGER</TT></span>. Handle to an existing lbs solver
43</p>
44</div>
45
46</div>
47\endhtmlonly
48
49## Optional Input parameters
50\htmlonly
51
52<div style="display: block;">
53<button type="button" class="droppy2" style=
54"
55background-color: #edf0f5;
56color: #9373A5;
57cursor: pointer;
58border: none;
59text-align: left;
60outline: none;
61font-size: 15px;
62margin: 2px 2px;
63border: 2px solid #687372;
64display: block;
65width: 100%;
66vertical-align: middle;
67padding-top: 4px;
68padding-bottom: 0px;
69"
70><span class="arrow" style="padding-left: 0px;">►</span><TT><B>dt</B></TT><span style="color: #c4c1c0;">&nbsp &nbsp &nbsp &nbspDesired initial timestep size</span></button>
71<div class="content" style="display: none;">
72 <p><I>type=</I><span style="color: blue;"><TT>FLOAT</TT></span>. Desired initial timestep size.
73</p>
74 <p>Default value: <TT style="color:grey">0.01(double)</TT></p>
75 <p>Allowable values: <TT>>= 1e-12(double)</TT></p>
76</div>
77
78<button type="button" class="droppy2" style=
79"
80background-color: #edf0f5;
81color: #9373A5;
82cursor: pointer;
83border: none;
84text-align: left;
85outline: none;
86font-size: 15px;
87margin: 2px 2px;
88border: 2px solid #687372;
89display: block;
90width: 100%;
91vertical-align: middle;
92padding-top: 4px;
93padding-bottom: 0px;
94"
95><span class="arrow" style="padding-left: 0px;">►</span><TT><B>end_time</B></TT><span style="color: #c4c1c0;">&nbsp &nbsp &nbsp &nbspTransient end-time if applicable</span></button>
96<div class="content" style="display: none;">
97 <p><I>type=</I><span style="color: blue;"><TT>FLOAT</TT></span>. Transient end-time if applicable.
98</p>
99 <p>Default value: <TT style="color:grey">1(double)</TT></p>
100</div>
101
102<button type="button" class="droppy2" style=
103"
104background-color: #edf0f5;
105color: #9373A5;
106cursor: pointer;
107border: none;
108text-align: left;
109outline: none;
110font-size: 15px;
111margin: 2px 2px;
112border: 2px solid #687372;
113display: block;
114width: 100%;
115vertical-align: middle;
116padding-top: 4px;
117padding-bottom: 0px;
118"
119><span class="arrow" style="padding-left: 0px;">►</span><TT><B>l_abs_tol</B></TT><span style="color: #c4c1c0;">&nbsp &nbsp &nbsp &nbspLinear absolute tolerance</span></button>
120<div class="content" style="display: none;">
121 <p><I>type=</I><span style="color: blue;"><TT>FLOAT</TT></span>. Linear absolute tolerance
122</p>
123 <p>Default value: <TT style="color:grey">1e-08(double)</TT></p>
124</div>
125
126<button type="button" class="droppy2" style=
127"
128background-color: #edf0f5;
129color: #9373A5;
130cursor: pointer;
131border: none;
132text-align: left;
133outline: none;
134font-size: 15px;
135margin: 2px 2px;
136border: 2px solid #687372;
137display: block;
138width: 100%;
139vertical-align: middle;
140padding-top: 4px;
141padding-bottom: 0px;
142"
143><span class="arrow" style="padding-left: 0px;">►</span><TT><B>l_div_tol</B></TT><span style="color: #c4c1c0;">&nbsp &nbsp &nbsp &nbspLinear divergence tolerance</span></button>
144<div class="content" style="display: none;">
145 <p><I>type=</I><span style="color: blue;"><TT>FLOAT</TT></span>. Linear divergence tolerance
146</p>
147 <p>Default value: <TT style="color:grey">1e+06(double)</TT></p>
148</div>
149
150<button type="button" class="droppy2" style=
151"
152background-color: #edf0f5;
153color: #9373A5;
154cursor: pointer;
155border: none;
156text-align: left;
157outline: none;
158font-size: 15px;
159margin: 2px 2px;
160border: 2px solid #687372;
161display: block;
162width: 100%;
163vertical-align: middle;
164padding-top: 4px;
165padding-bottom: 0px;
166"
167><span class="arrow" style="padding-left: 0px;">►</span><TT><B>l_gmres_breakdown_tol</B></TT><span style="color: #c4c1c0;">&nbsp &nbsp &nbsp &nbspGMRes breakdown tolerance</span></button>
168<div class="content" style="display: none;">
169 <p><I>type=</I><span style="color: blue;"><TT>FLOAT</TT></span>. GMRes breakdown tolerance
170</p>
171 <p>Default value: <TT style="color:grey">1e+06(double)</TT></p>
172</div>
173
174<button type="button" class="droppy2" style=
175"
176background-color: #edf0f5;
177color: #9373A5;
178cursor: pointer;
179border: none;
180text-align: left;
181outline: none;
182font-size: 15px;
183margin: 2px 2px;
184border: 2px solid #687372;
185display: block;
186width: 100%;
187vertical-align: middle;
188padding-top: 4px;
189padding-bottom: 0px;
190"
191><span class="arrow" style="padding-left: 0px;">►</span><TT><B>l_gmres_restart_intvl</B></TT><span style="color: #c4c1c0;">&nbsp &nbsp &nbsp &nbspGMRes restart interval</span></button>
192<div class="content" style="display: none;">
193 <p><I>type=</I><span style="color: blue;"><TT>INTEGER</TT></span>. GMRes restart interval
194</p>
195 <p>Default value: <TT style="color:grey">30</TT></p>
196</div>
197
198<button type="button" class="droppy2" style=
199"
200background-color: #edf0f5;
201color: #9373A5;
202cursor: pointer;
203border: none;
204text-align: left;
205outline: none;
206font-size: 15px;
207margin: 2px 2px;
208border: 2px solid #687372;
209display: block;
210width: 100%;
211vertical-align: middle;
212padding-top: 4px;
213padding-bottom: 0px;
214"
215><span class="arrow" style="padding-left: 0px;">►</span><TT><B>l_max_its</B></TT><span style="color: #c4c1c0;">&nbsp &nbsp &nbsp &nbspLinear maximum iterations</span></button>
216<div class="content" style="display: none;">
217 <p><I>type=</I><span style="color: blue;"><TT>INTEGER</TT></span>. Linear maximum iterations
218</p>
219 <p>Default value: <TT style="color:grey">50</TT></p>
220</div>
221
222<button type="button" class="droppy2" style=
223"
224background-color: #edf0f5;
225color: #9373A5;
226cursor: pointer;
227border: none;
228text-align: left;
229outline: none;
230font-size: 15px;
231margin: 2px 2px;
232border: 2px solid #687372;
233display: block;
234width: 100%;
235vertical-align: middle;
236padding-top: 4px;
237padding-bottom: 0px;
238"
239><span class="arrow" style="padding-left: 0px;">►</span><TT><B>l_rel_tol</B></TT><span style="color: #c4c1c0;">&nbsp &nbsp &nbsp &nbspLinear relative tolerance</span></button>
240<div class="content" style="display: none;">
241 <p><I>type=</I><span style="color: blue;"><TT>FLOAT</TT></span>. Linear relative tolerance
242</p>
243 <p>Default value: <TT style="color:grey">1e-08(double)</TT></p>
244</div>
245
246<button type="button" class="droppy2" style=
247"
248background-color: #edf0f5;
249color: #9373A5;
250cursor: pointer;
251border: none;
252text-align: left;
253outline: none;
254font-size: 15px;
255margin: 2px 2px;
256border: 2px solid #687372;
257display: block;
258width: 100%;
259vertical-align: middle;
260padding-top: 4px;
261padding-bottom: 0px;
262"
263><span class="arrow" style="padding-left: 0px;">►</span><TT><B>max_time_steps</B></TT><span style="color: #c4c1c0;">&nbsp &nbsp &nbsp &nbspMaximum number of timesteps to allow</span></button>
264<div class="content" style="display: none;">
265 <p><I>type=</I><span style="color: blue;"><TT>INTEGER</TT></span>. Maximum number of timesteps to allow. Negative values disables this.
266</p>
267 <p>Default value: <TT style="color:grey">-1</TT></p>
268</div>
269
270<button type="button" class="droppy2" style=
271"
272background-color: #edf0f5;
273color: #9373A5;
274cursor: pointer;
275border: none;
276text-align: left;
277outline: none;
278font-size: 15px;
279margin: 2px 2px;
280border: 2px solid #687372;
281display: block;
282width: 100%;
283vertical-align: middle;
284padding-top: 4px;
285padding-bottom: 0px;
286"
287><span class="arrow" style="padding-left: 0px;">►</span><TT><B>name</B></TT><span style="color: #c4c1c0;">&nbsp &nbsp &nbsp &nbspA text name to associate with the solver</span></button>
288<div class="content" style="display: none;">
289 <p><I>type=</I><span style="color: blue;"><TT>STRING</TT></span>. A text name to associate with the solver. This name will be used in status messages and verbose iterative convergence monitors.
290</p>
291 <p>Default value: <TT style="color:grey">"XXPowerIterationKEigen"</TT></p>
292</div>
293
294<button type="button" class="droppy2" style=
295"
296background-color: #edf0f5;
297color: #9373A5;
298cursor: pointer;
299border: none;
300text-align: left;
301outline: none;
302font-size: 15px;
303margin: 2px 2px;
304border: 2px solid #687372;
305display: block;
306width: 100%;
307vertical-align: middle;
308padding-top: 4px;
309padding-bottom: 0px;
310"
311><span class="arrow" style="padding-left: 0px;">►</span><TT><B>nl_abs_tol</B></TT><span style="color: #c4c1c0;">&nbsp &nbsp &nbsp &nbspNon-linear absolute tolerance</span></button>
312<div class="content" style="display: none;">
313 <p><I>type=</I><span style="color: blue;"><TT>FLOAT</TT></span>. Non-linear absolute tolerance
314</p>
315 <p>Default value: <TT style="color:grey">1e-08(double)</TT></p>
316</div>
317
318<button type="button" class="droppy2" style=
319"
320background-color: #edf0f5;
321color: #9373A5;
322cursor: pointer;
323border: none;
324text-align: left;
325outline: none;
326font-size: 15px;
327margin: 2px 2px;
328border: 2px solid #687372;
329display: block;
330width: 100%;
331vertical-align: middle;
332padding-top: 4px;
333padding-bottom: 0px;
334"
335><span class="arrow" style="padding-left: 0px;">►</span><TT><B>nl_max_its</B></TT><span style="color: #c4c1c0;">&nbsp &nbsp &nbsp &nbspNon-linear maximum iterations</span></button>
336<div class="content" style="display: none;">
337 <p><I>type=</I><span style="color: blue;"><TT>INTEGER</TT></span>. Non-linear maximum iterations
338</p>
339 <p>Default value: <TT style="color:grey">50</TT></p>
340</div>
341
342<button type="button" class="droppy2" style=
343"
344background-color: #edf0f5;
345color: #9373A5;
346cursor: pointer;
347border: none;
348text-align: left;
349outline: none;
350font-size: 15px;
351margin: 2px 2px;
352border: 2px solid #687372;
353display: block;
354width: 100%;
355vertical-align: middle;
356padding-top: 4px;
357padding-bottom: 0px;
358"
359><span class="arrow" style="padding-left: 0px;">►</span><TT><B>nl_rel_tol</B></TT><span style="color: #c4c1c0;">&nbsp &nbsp &nbsp &nbspNon-linear relative tolerance</span></button>
360<div class="content" style="display: none;">
361 <p><I>type=</I><span style="color: blue;"><TT>FLOAT</TT></span>. Non-linear relative tolerance
362</p>
363 <p>Default value: <TT style="color:grey">1e-08(double)</TT></p>
364</div>
365
366<button type="button" class="droppy2" style=
367"
368background-color: #edf0f5;
369color: #9373A5;
370cursor: pointer;
371border: none;
372text-align: left;
373outline: none;
374font-size: 15px;
375margin: 2px 2px;
376border: 2px solid #687372;
377display: block;
378width: 100%;
379vertical-align: middle;
380padding-top: 4px;
381padding-bottom: 0px;
382"
383><span class="arrow" style="padding-left: 0px;">►</span><TT><B>nl_sol_tol</B></TT><span style="color: #c4c1c0;">&nbsp &nbsp &nbsp &nbspNon-linear solution tolerance</span></button>
384<div class="content" style="display: none;">
385 <p><I>type=</I><span style="color: blue;"><TT>FLOAT</TT></span>. Non-linear solution tolerance
386</p>
387 <p>Default value: <TT style="color:grey">1e-50(double)</TT></p>
388</div>
389
390<button type="button" class="droppy2" style=
391"
392background-color: #edf0f5;
393color: #9373A5;
394cursor: pointer;
395border: none;
396text-align: left;
397outline: none;
398font-size: 15px;
399margin: 2px 2px;
400border: 2px solid #687372;
401display: block;
402width: 100%;
403vertical-align: middle;
404padding-top: 4px;
405padding-bottom: 0px;
406"
407><span class="arrow" style="padding-left: 0px;">►</span><TT><B>num_free_power_iterations</B></TT><span style="color: #c4c1c0;">&nbsp &nbsp &nbsp &nbspThe number of free power iterations to execute before entering the non-linear algorithm</span></button>
408<div class="content" style="display: none;">
409 <p><I>type=</I><span style="color: blue;"><TT>INTEGER</TT></span>. The number of free power iterations to execute before entering the non-linear algorithm
410</p>
411 <p>Default value: <TT style="color:grey">0</TT></p>
412</div>
413
414<button type="button" class="droppy2" style=
415"
416background-color: #edf0f5;
417color: #9373A5;
418cursor: pointer;
419border: none;
420text-align: left;
421outline: none;
422font-size: 15px;
423margin: 2px 2px;
424border: 2px solid #687372;
425display: block;
426width: 100%;
427vertical-align: middle;
428padding-top: 4px;
429padding-bottom: 0px;
430"
431><span class="arrow" style="padding-left: 0px;">►</span><TT><B>reinit_phi_1</B></TT><span style="color: #c4c1c0;">&nbsp &nbsp &nbsp &nbspIf true, reinitializes scalar phi fluxes to 1</span></button>
432<div class="content" style="display: none;">
433 <p><I>type=</I><span style="color: blue;"><TT>BOOLEAN</TT></span>. If true, reinitializes scalar phi fluxes to 1
434</p>
435 <p>Default value: <TT style="color:grey">true</TT></p>
436</div>
437
438<button type="button" class="droppy2" style=
439"
440background-color: #edf0f5;
441color: #9373A5;
442cursor: pointer;
443border: none;
444text-align: left;
445outline: none;
446font-size: 15px;
447margin: 2px 2px;
448border: 2px solid #687372;
449display: block;
450width: 100%;
451vertical-align: middle;
452padding-top: 4px;
453padding-bottom: 0px;
454"
455><span class="arrow" style="padding-left: 0px;">►</span><TT><B>start_time</B></TT><span style="color: #c4c1c0;">&nbsp &nbsp &nbsp &nbspTransient start-time if applicable</span></button>
456<div class="content" style="display: none;">
457 <p><I>type=</I><span style="color: blue;"><TT>FLOAT</TT></span>. Transient start-time if applicable.
458</p>
459 <p>Default value: <TT style="color:grey">0(double)</TT></p>
460</div>
461
462<button type="button" class="droppy2" style=
463"
464background-color: #edf0f5;
465color: #9373A5;
466cursor: pointer;
467border: none;
468text-align: left;
469outline: none;
470font-size: 15px;
471margin: 2px 2px;
472border: 2px solid #687372;
473display: block;
474width: 100%;
475vertical-align: middle;
476padding-top: 4px;
477padding-bottom: 0px;
478"
479><span class="arrow" style="padding-left: 0px;">►</span><TT><B>time</B></TT><span style="color: #c4c1c0;">&nbsp &nbsp &nbsp &nbspCurrent time of the solver</span></button>
480<div class="content" style="display: none;">
481 <p><I>type=</I><span style="color: blue;"><TT>FLOAT</TT></span>. Current time of the solver.
482</p>
483 <p>Default value: <TT style="color:grey">0(double)</TT></p>
484</div>
485
486<button type="button" class="droppy2" style=
487"
488background-color: #edf0f5;
489color: #9373A5;
490cursor: pointer;
491border: none;
492text-align: left;
493outline: none;
494font-size: 15px;
495margin: 2px 2px;
496border: 2px solid #687372;
497display: block;
498width: 100%;
499vertical-align: middle;
500padding-top: 4px;
501padding-bottom: 0px;
502"
503><span class="arrow" style="padding-left: 0px;">►</span><TT><B>timestepper</B></TT><span style="color: #c4c1c0;">&nbsp &nbsp &nbsp &nbspHandle to a timestepper</span></button>
504<div class="content" style="display: none;">
505 <p><I>type=</I><span style="color: blue;"><TT>INTEGER</TT></span>. Handle to a timestepper. If not supplied then a ConstantTimeStepper will be created.
506</p>
507 <p>Default value: <TT style="color:grey">0</TT></p>
508</div>
509
510</div>
511\endhtmlonly
512
513\htmlonly
514
515<script>
516
517{
518 var coll = document.getElementsByClassName("droppy2");
519 var i;
520
521 for (i = 0; i < coll.length; i++) {
522 coll[i].addEventListener("click", function() {
523 this.classList.toggle("active");
524 var content = this.nextElementSibling;
525 if (content.style.display === "block") {
526 content.style.display = "none";
527 this.childNodes[0].innerText = "►"
528 } else {
529 content.style.display = "block";
530 this.children[0].innerText = "▼"
531 }
532 });
533 }
534}</script>
535
536\endhtmlonly
537
538### Usage Examples:
539\ref test_modules_LinearBoltzmannSolvers_MGDiffusion_KEigen_KEigenvalueMIP2D_1b_QBlock_lua
540\ref test_modules_LinearBoltzmannSolvers_MGDiffusion_KEigen_KEigenvalueMIP1D_1G_lua
541\ref test_modules_LinearBoltzmannSolvers_Transport_Keigen_KEigenvalueTransport1D_1G_CBC_lua
542\ref test_modules_LinearBoltzmannSolvers_Transport_Keigen_KEigenvalueTransport2D_1b_QBlock_lua
543\ref test_modules_LinearBoltzmannSolvers_Transport_Keigen_KEigenvalueTransport2D_1b_QBlock_CBC_lua
544\ref test_modules_LinearBoltzmannSolvers_Transport_Keigen_KEigenvalueTransport1D_1G_lua
545\ref test_modules_LinearBoltzmannSolvers_Transport_Keigen_c5g7_c5g7_lua
546*/