Chi-Tech
lbs__XXPowerIterationKEigenSCDSA.h
Go to the documentation of this file.
1/** \defgroup lbs__XXPowerIterationKEigenSCDSA lbs.XXPowerIterationKEigenSCDSA
2
3
4\ingroup LBSExecutors
5Generalized implementation of a k-Eigenvalue solver using Power Iteration and with SCDSA acceleration.
6
7
8## Example usage:
9Create this object:
10\code
11params =
12{
13 param_name1 = value1,
14 param_name2 = value2,
15 --etc.
16}
17lbs.XXPowerIterationKEigenSCDSA.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>accel_pi_k_tol</B></TT><span style="color: #c4c1c0;">&nbsp &nbsp &nbsp &nbspK-eigenvalue tolerance for the acceleration scheme's inner power iterations</span></button>
71<div class="content" style="display: none;">
72 <p><I>type=</I><span style="color: blue;"><TT>FLOAT</TT></span>. K-eigenvalue tolerance for the acceleration scheme's inner power iterations
73</p>
74 <p>Default value: <TT style="color:grey">1e-10(double)</TT></p>
75</div>
76
77<button type="button" class="droppy2" style=
78"
79background-color: #edf0f5;
80color: #9373A5;
81cursor: pointer;
82border: none;
83text-align: left;
84outline: none;
85font-size: 15px;
86margin: 2px 2px;
87border: 2px solid #687372;
88display: block;
89width: 100%;
90vertical-align: middle;
91padding-top: 4px;
92padding-bottom: 0px;
93"
94><span class="arrow" style="padding-left: 0px;">►</span><TT><B>accel_pi_max_its</B></TT><span style="color: #c4c1c0;">&nbsp &nbsp &nbsp &nbspMaximum allowable iterations for the acceleration scheme's inner power iterations</span></button>
95<div class="content" style="display: none;">
96 <p><I>type=</I><span style="color: blue;"><TT>INTEGER</TT></span>. Maximum allowable iterations for the acceleration scheme's inner power iterations
97</p>
98 <p>Default value: <TT style="color:grey">50</TT></p>
99</div>
100
101<button type="button" class="droppy2" style=
102"
103background-color: #edf0f5;
104color: #9373A5;
105cursor: pointer;
106border: none;
107text-align: left;
108outline: none;
109font-size: 15px;
110margin: 2px 2px;
111border: 2px solid #687372;
112display: block;
113width: 100%;
114vertical-align: middle;
115padding-top: 4px;
116padding-bottom: 0px;
117"
118><span class="arrow" style="padding-left: 0px;">►</span><TT><B>accel_pi_verbose</B></TT><span style="color: #c4c1c0;">&nbsp &nbsp &nbsp &nbspFlag, if set will result in verbose output from the acceleration scheme</span></button>
119<div class="content" style="display: none;">
120 <p><I>type=</I><span style="color: blue;"><TT>BOOLEAN</TT></span>. Flag, if set will result in verbose output from the acceleration scheme
121</p>
122 <p>Default value: <TT style="color:grey">false</TT></p>
123</div>
124
125<button type="button" class="droppy2" style=
126"
127background-color: #edf0f5;
128color: #9373A5;
129cursor: pointer;
130border: none;
131text-align: left;
132outline: none;
133font-size: 15px;
134margin: 2px 2px;
135border: 2px solid #687372;
136display: block;
137width: 100%;
138vertical-align: middle;
139padding-top: 4px;
140padding-bottom: 0px;
141"
142><span class="arrow" style="padding-left: 0px;">►</span><TT><B>diff_accel_diffusion_l_abs_tol</B></TT><span style="color: #c4c1c0;">&nbsp &nbsp &nbsp &nbspAbsolute residual tolerance to use for the diffusion accelerator</span></button>
143<div class="content" style="display: none;">
144 <p><I>type=</I><span style="color: blue;"><TT>FLOAT</TT></span>. Absolute residual tolerance to use for the diffusion accelerator
145</p>
146 <p>Default value: <TT style="color:grey">1e-10(double)</TT></p>
147</div>
148
149<button type="button" class="droppy2" style=
150"
151background-color: #edf0f5;
152color: #9373A5;
153cursor: pointer;
154border: none;
155text-align: left;
156outline: none;
157font-size: 15px;
158margin: 2px 2px;
159border: 2px solid #687372;
160display: block;
161width: 100%;
162vertical-align: middle;
163padding-top: 4px;
164padding-bottom: 0px;
165"
166><span class="arrow" style="padding-left: 0px;">►</span><TT><B>diff_accel_diffusion_max_iters</B></TT><span style="color: #c4c1c0;">&nbsp &nbsp &nbsp &nbspMaximum allowable iterations for the diffusion accelerator</span></button>
167<div class="content" style="display: none;">
168 <p><I>type=</I><span style="color: blue;"><TT>INTEGER</TT></span>. Maximum allowable iterations for the diffusion accelerator
169</p>
170 <p>Default value: <TT style="color:grey">100</TT></p>
171</div>
172
173<button type="button" class="droppy2" style=
174"
175background-color: #edf0f5;
176color: #9373A5;
177cursor: pointer;
178border: none;
179text-align: left;
180outline: none;
181font-size: 15px;
182margin: 2px 2px;
183border: 2px solid #687372;
184display: block;
185width: 100%;
186vertical-align: middle;
187padding-top: 4px;
188padding-bottom: 0px;
189"
190><span class="arrow" style="padding-left: 0px;">►</span><TT><B>diff_accel_diffusion_petsc_options</B></TT><span style="color: #c4c1c0;">&nbsp &nbsp &nbsp &nbspAdditional PETSc options for the diffusion accelerator</span></button>
191<div class="content" style="display: none;">
192 <p><I>type=</I><span style="color: blue;"><TT>STRING</TT></span>. Additional PETSc options for the diffusion accelerator
193</p>
194 <p>Default value: <TT style="color:grey">"ssss"</TT></p>
195</div>
196
197<button type="button" class="droppy2" style=
198"
199background-color: #edf0f5;
200color: #9373A5;
201cursor: pointer;
202border: none;
203text-align: left;
204outline: none;
205font-size: 15px;
206margin: 2px 2px;
207border: 2px solid #687372;
208display: block;
209width: 100%;
210vertical-align: middle;
211padding-top: 4px;
212padding-bottom: 0px;
213"
214><span class="arrow" style="padding-left: 0px;">►</span><TT><B>diff_accel_diffusion_verbose</B></TT><span style="color: #c4c1c0;">&nbsp &nbsp &nbsp &nbspFlag, if set will enable verbose output of the diffusion accelerator</span></button>
215<div class="content" style="display: none;">
216 <p><I>type=</I><span style="color: blue;"><TT>BOOLEAN</TT></span>. Flag, if set will enable verbose output of the diffusion accelerator
217</p>
218 <p>Default value: <TT style="color:grey">false</TT></p>
219</div>
220
221<button type="button" class="droppy2" style=
222"
223background-color: #edf0f5;
224color: #9373A5;
225cursor: pointer;
226border: none;
227text-align: left;
228outline: none;
229font-size: 15px;
230margin: 2px 2px;
231border: 2px solid #687372;
232display: block;
233width: 100%;
234vertical-align: middle;
235padding-top: 4px;
236padding-bottom: 0px;
237"
238><span class="arrow" style="padding-left: 0px;">►</span><TT><B>diff_accel_sdm</B></TT><span style="color: #c4c1c0;">&nbsp &nbsp &nbsp &nbspSpatial discretization to use for the diffusion solver</span></button>
239<div class="content" style="display: none;">
240 <p><I>type=</I><span style="color: blue;"><TT>STRING</TT></span>. Spatial discretization to use for the diffusion solver
241</p>
242 <p>Default value: <TT style="color:grey">"pwld"</TT></p>
243 <p>Allowable values: <TT>"pwld", "pwlc"</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>dt</B></TT><span style="color: #c4c1c0;">&nbsp &nbsp &nbsp &nbspDesired initial timestep size</span></button>
264<div class="content" style="display: none;">
265 <p><I>type=</I><span style="color: blue;"><TT>FLOAT</TT></span>. Desired initial timestep size.
266</p>
267 <p>Default value: <TT style="color:grey">0.01(double)</TT></p>
268 <p>Allowable values: <TT>>= 1e-12(double)</TT></p>
269</div>
270
271<button type="button" class="droppy2" style=
272"
273background-color: #edf0f5;
274color: #9373A5;
275cursor: pointer;
276border: none;
277text-align: left;
278outline: none;
279font-size: 15px;
280margin: 2px 2px;
281border: 2px solid #687372;
282display: block;
283width: 100%;
284vertical-align: middle;
285padding-top: 4px;
286padding-bottom: 0px;
287"
288><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>
289<div class="content" style="display: none;">
290 <p><I>type=</I><span style="color: blue;"><TT>FLOAT</TT></span>. Transient end-time if applicable.
291</p>
292 <p>Default value: <TT style="color:grey">1(double)</TT></p>
293</div>
294
295<button type="button" class="droppy2" style=
296"
297background-color: #edf0f5;
298color: #9373A5;
299cursor: pointer;
300border: none;
301text-align: left;
302outline: none;
303font-size: 15px;
304margin: 2px 2px;
305border: 2px solid #687372;
306display: block;
307width: 100%;
308vertical-align: middle;
309padding-top: 4px;
310padding-bottom: 0px;
311"
312><span class="arrow" style="padding-left: 0px;">►</span><TT><B>k_tol</B></TT><span style="color: #c4c1c0;">&nbsp &nbsp &nbsp &nbspTolerance on the k-eigenvalue</span></button>
313<div class="content" style="display: none;">
314 <p><I>type=</I><span style="color: blue;"><TT>FLOAT</TT></span>. Tolerance on the k-eigenvalue
315</p>
316 <p>Default value: <TT style="color:grey">1e-10(double)</TT></p>
317</div>
318
319<button type="button" class="droppy2" style=
320"
321background-color: #edf0f5;
322color: #9373A5;
323cursor: pointer;
324border: none;
325text-align: left;
326outline: none;
327font-size: 15px;
328margin: 2px 2px;
329border: 2px solid #687372;
330display: block;
331width: 100%;
332vertical-align: middle;
333padding-top: 4px;
334padding-bottom: 0px;
335"
336><span class="arrow" style="padding-left: 0px;">►</span><TT><B>max_iters</B></TT><span style="color: #c4c1c0;">&nbsp &nbsp &nbsp &nbspMaximum power iterations allowed</span></button>
337<div class="content" style="display: none;">
338 <p><I>type=</I><span style="color: blue;"><TT>INTEGER</TT></span>. Maximum power iterations allowed
339</p>
340 <p>Default value: <TT style="color:grey">1000</TT></p>
341</div>
342
343<button type="button" class="droppy2" style=
344"
345background-color: #edf0f5;
346color: #9373A5;
347cursor: pointer;
348border: none;
349text-align: left;
350outline: none;
351font-size: 15px;
352margin: 2px 2px;
353border: 2px solid #687372;
354display: block;
355width: 100%;
356vertical-align: middle;
357padding-top: 4px;
358padding-bottom: 0px;
359"
360><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>
361<div class="content" style="display: none;">
362 <p><I>type=</I><span style="color: blue;"><TT>INTEGER</TT></span>. Maximum number of timesteps to allow. Negative values disables this.
363</p>
364 <p>Default value: <TT style="color:grey">-1</TT></p>
365</div>
366
367<button type="button" class="droppy2" style=
368"
369background-color: #edf0f5;
370color: #9373A5;
371cursor: pointer;
372border: none;
373text-align: left;
374outline: none;
375font-size: 15px;
376margin: 2px 2px;
377border: 2px solid #687372;
378display: block;
379width: 100%;
380vertical-align: middle;
381padding-top: 4px;
382padding-bottom: 0px;
383"
384><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>
385<div class="content" style="display: none;">
386 <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.
387</p>
388 <p>Default value: <TT style="color:grey">"XXPowerIterationKEigen"</TT></p>
389</div>
390
391<button type="button" class="droppy2" style=
392"
393background-color: #edf0f5;
394color: #9373A5;
395cursor: pointer;
396border: none;
397text-align: left;
398outline: none;
399font-size: 15px;
400margin: 2px 2px;
401border: 2px solid #687372;
402display: block;
403width: 100%;
404vertical-align: middle;
405padding-top: 4px;
406padding-bottom: 0px;
407"
408><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>
409<div class="content" style="display: none;">
410 <p><I>type=</I><span style="color: blue;"><TT>BOOLEAN</TT></span>. If true, reinitializes scalar phi fluxes to 1
411</p>
412 <p>Default value: <TT style="color:grey">true</TT></p>
413</div>
414
415<button type="button" class="droppy2" style=
416"
417background-color: #edf0f5;
418color: #9373A5;
419cursor: pointer;
420border: none;
421text-align: left;
422outline: none;
423font-size: 15px;
424margin: 2px 2px;
425border: 2px solid #687372;
426display: block;
427width: 100%;
428vertical-align: middle;
429padding-top: 4px;
430padding-bottom: 0px;
431"
432><span class="arrow" style="padding-left: 0px;">►</span><TT><B>reset_solution</B></TT><span style="color: #c4c1c0;">&nbsp &nbsp &nbsp &nbspFlag, if set to true will initialize the phi-solution to all 1's before executing</span></button>
433<div class="content" style="display: none;">
434 <p><I>type=</I><span style="color: blue;"><TT>BOOLEAN</TT></span>. Flag, if set to true will initialize the phi-solution to all 1's before executing
435</p>
436 <p>Default value: <TT style="color:grey">true</TT></p>
437</div>
438
439<button type="button" class="droppy2" style=
440"
441background-color: #edf0f5;
442color: #9373A5;
443cursor: pointer;
444border: none;
445text-align: left;
446outline: none;
447font-size: 15px;
448margin: 2px 2px;
449border: 2px solid #687372;
450display: block;
451width: 100%;
452vertical-align: middle;
453padding-top: 4px;
454padding-bottom: 0px;
455"
456><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>
457<div class="content" style="display: none;">
458 <p><I>type=</I><span style="color: blue;"><TT>FLOAT</TT></span>. Transient start-time if applicable.
459</p>
460 <p>Default value: <TT style="color:grey">0(double)</TT></p>
461</div>
462
463<button type="button" class="droppy2" style=
464"
465background-color: #edf0f5;
466color: #9373A5;
467cursor: pointer;
468border: none;
469text-align: left;
470outline: none;
471font-size: 15px;
472margin: 2px 2px;
473border: 2px solid #687372;
474display: block;
475width: 100%;
476vertical-align: middle;
477padding-top: 4px;
478padding-bottom: 0px;
479"
480><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>
481<div class="content" style="display: none;">
482 <p><I>type=</I><span style="color: blue;"><TT>FLOAT</TT></span>. Current time of the solver.
483</p>
484 <p>Default value: <TT style="color:grey">0(double)</TT></p>
485</div>
486
487<button type="button" class="droppy2" style=
488"
489background-color: #edf0f5;
490color: #9373A5;
491cursor: pointer;
492border: none;
493text-align: left;
494outline: none;
495font-size: 15px;
496margin: 2px 2px;
497border: 2px solid #687372;
498display: block;
499width: 100%;
500vertical-align: middle;
501padding-top: 4px;
502padding-bottom: 0px;
503"
504><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>
505<div class="content" style="display: none;">
506 <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.
507</p>
508 <p>Default value: <TT style="color:grey">0</TT></p>
509</div>
510
511</div>
512\endhtmlonly
513
514\htmlonly
515
516<script>
517
518{
519 var coll = document.getElementsByClassName("droppy2");
520 var i;
521
522 for (i = 0; i < coll.length; i++) {
523 coll[i].addEventListener("click", function() {
524 this.classList.toggle("active");
525 var content = this.nextElementSibling;
526 if (content.style.display === "block") {
527 content.style.display = "none";
528 this.childNodes[0].innerText = "►"
529 } else {
530 content.style.display = "block";
531 this.children[0].innerText = "▼"
532 }
533 });
534 }
535}</script>
536
537\endhtmlonly
538
539### Usage Examples:
540\ref test_modules_LinearBoltzmannSolvers_Transport_Keigen_KEigenvalueTransport2D_1c_QBlock_CBC_lua
541\ref test_modules_LinearBoltzmannSolvers_Transport_Keigen_KEigenvalueTransport2D_1c_QBlock_lua
542\ref test_modules_LinearBoltzmannSolvers_Transport_Keigen_c5g7_c5g7_lua
543*/