15#include <Turbulent_viscosity.h>
19static inline double calculer_somme_mimi(
double m_i,
28static inline double calculer_somme_mijmij(
double m_ii,
49static inline double calculer_somme_mijmji(
double m_ii,
100 const double& g_ii = g[0][0];
101 const double& g_ij = g[0][1];
102 const double& g_ik = g[0][2];
103 const double& g_ji = g[1][0];
104 const double& g_jj = g[1][1];
105 const double& g_jk = g[1][2];
106 const double& g_ki = g[2][0];
107 const double& g_kj = g[2][1];
108 const double& g_kk = g[2][2];
114 const double somme_gijgij = calculer_somme_mijmij(g_ii, g_ij, g_ik, g_ji, g_jj, g_jk, g_ki, g_kj, g_kk);
115 const double somme_gijgji = calculer_somme_mijmji(g_ii, g_ij, g_ik, g_ji, g_jj, g_jk, g_ki, g_kj, g_kk);
116 const double norme_s = sqrt(somme_gijgij + somme_gijgji);
118 const double filter_volume = dx * dy * dz;
119 const double filter_lenght = cbrt(filter_volume);
121 return smagorinsky_constant*smagorinsky_constant * filter_lenght*filter_lenght * norme_s;
132 const double& g_ii = g[0][0];
133 const double& g_ij = g[0][1];
134 const double& g_ik = g[0][2];
135 const double& g_ji = g[1][0];
136 const double& g_jj = g[1][1];
137 const double& g_jk = g[1][2];
138 const double& g_ki = g[2][0];
139 const double& g_kj = g[2][1];
140 const double& g_kk = g[2][2];
151 const double a_ii = g_ii;
152 const double a_ij = g_ji;
153 const double a_ik = g_ki;
154 const double a_ji = g_ij;
155 const double a_jj = g_jj;
156 const double a_jk = g_kj;
157 const double a_ki = g_ik;
158 const double a_kj = g_jk;
159 const double a_kk = g_kk;
161 const double b_ii = dx*dx*a_ii*a_ii + dy*dy*a_ji*a_ji + dz*dz*a_ki*a_ki;
162 const double b_ij = dx*dx*a_ii*a_ij + dy*dy*a_ji*a_jj + dz*dz*a_ki*a_kj;
163 const double b_ik = dx*dx*a_ii*a_ik + dy*dy*a_ji*a_jk + dz*dz*a_ki*a_kk;
164 const double b_jj = dx*dx*a_ij*a_ij + dy*dy*a_jj*a_jj + dz*dz*a_kj*a_kj;
165 const double b_jk = dx*dx*a_ij*a_ik + dy*dy*a_jj*a_jk + dz*dz*a_kj*a_kk;
166 const double b_kk = dx*dx*a_ik*a_ik + dy*dy*a_jk*a_jk + dz*dz*a_kk*a_kk;
168 const double b_b = b_ii*b_jj - b_ij*b_ij
169 + b_ii*b_kk - b_ik*b_ik
170 + b_jj*b_kk - b_jk*b_jk;
172 const double somme_aijaij = calculer_somme_mijmji(a_ii, a_ij, a_ik, a_ji, a_jj, a_jk, a_ki, a_kj, a_kk);
175 if (somme_aijaij == 0.)
181 if (b_b/(somme_aijaij) < 0)
190 vreman_pi = (somme_aijaij == 0) ? 0. : sqrt(b_b/(somme_aijaij));
193 return vreman_constant * vreman_pi;
204 const double& g_ii = g[0][0];
205 const double& g_ij = g[0][1];
206 const double& g_ik = g[0][2];
207 const double& g_ji = g[1][0];
208 const double& g_jj = g[1][1];
209 const double& g_jk = g[1][2];
210 const double& g_ki = g[2][0];
211 const double& g_kj = g[2][1];
212 const double& g_kk = g[2][2];
238 const double gtg_ii = g_ii*g_ii + g_ji*g_ji + g_ki*g_ki;
239 const double gtg_ij = g_ii*g_ij + g_ji*g_jj + g_ki*g_kj;
240 const double gtg_ik = g_ii*g_ik + g_ji*g_jk + g_ki*g_kk;
241 const double gtg_ji = g_ij*g_ii + g_jj*g_ji + g_kj*g_ki;
242 const double gtg_jj = g_ij*g_ij + g_jj*g_jj + g_kj*g_kj;
243 const double gtg_jk = g_ij*g_ik + g_jj*g_jk + g_kj*g_kk;
244 const double gtg_ki = g_ik*g_ii + g_jk*g_ji + g_kk*g_ki;
245 const double gtg_kj = g_ik*g_ij + g_jk*g_jj + g_kk*g_kj;
246 const double gtg_kk = g_ik*g_ik + g_jk*g_jk + g_kk*g_kk;
248 const double gtg_carre_ii = gtg_ii*gtg_ii + gtg_ij*gtg_ji + gtg_ik*gtg_ki;
249 const double gtg_carre_jj = gtg_ji*gtg_ij + gtg_jj*gtg_jj + gtg_jk*gtg_kj;
250 const double gtg_carre_kk = gtg_ki*gtg_ik + gtg_kj*gtg_jk + gtg_kk*gtg_kk;
252 const double trace_gtg = gtg_ii + gtg_jj + gtg_kk;
253 const double trace_gtg_carre = gtg_carre_ii + gtg_carre_jj + gtg_carre_kk;
254 const double det_gtg = gtg_ii * gtg_jj * gtg_kk
255 - gtg_ii * gtg_kj * gtg_jk
256 - gtg_ji * gtg_ij * gtg_kk
257 + gtg_ji * gtg_kj * gtg_ik
258 + gtg_ki * gtg_ij * gtg_jk
259 - gtg_ki * gtg_jj * gtg_ik;
261 const double i1 = trace_gtg;
262 const double i2 = 0.5*(trace_gtg*trace_gtg - trace_gtg_carre);
263 const double i3 = det_gtg;
265 const double alpha_1 = i1*i1/9. - i2/3.;
266 const double alpha_2 = i1*i1*i1/27. - i1*i2/6. + i3/2;
268 if (alpha_2/(sqrt(alpha_1*alpha_1*alpha_1)) > 1)
275 else if (alpha_2/(sqrt(alpha_1*alpha_1*alpha_1)) < -1)
284 alpha_3 = (1./3.)*acos(alpha_2/(sqrt(alpha_1*alpha_1*alpha_1)));
288 if (i1/3. + 2.*sqrt(alpha_1)*cos(alpha_3) < 0)
297 sigma_1 = sqrt(i1/3. + 2.*sqrt(alpha_1)*cos(alpha_3));
301 if (i1/3. - 2.*sqrt(alpha_1)*cos(M_PI/3. + alpha_3) < 0)
310 sigma_2 = sqrt(i1/3. - 2.*sqrt(alpha_1)*cos(M_PI/3. + alpha_3));
314 if (i1/3. - 2.*sqrt(alpha_1)*cos(M_PI/3. - alpha_3) < 0)
323 sigma_3 = sqrt(i1/3. - 2.*sqrt(alpha_1)*cos(M_PI/3. - alpha_3));
326 const double d_sigma = sigma_3*(sigma_1 - sigma_2)*(sigma_2 - sigma_3)/(sigma_1*sigma_1);
328 const double filter_volume = dx * dy * dz;
329 const double filter_lenght = cbrt(filter_volume);
331 return sigma_constant*sigma_constant * filter_lenght*filter_lenght * d_sigma;
342 const double& g_ii = g[0][0];
343 const double& g_ij = g[0][1];
344 const double& g_ik = g[0][2];
345 const double& g_ji = g[1][0];
346 const double& g_jj = g[1][1];
347 const double& g_jk = g[1][2];
348 const double& g_ki = g[2][0];
349 const double& g_kj = g[2][1];
350 const double& g_kk = g[2][2];
364 const double g_carre_ii = g_ii*g_ii + g_ij*g_ji + g_ik*g_ki;
365 const double g_carre_ij = g_ii*g_ij + g_ij*g_jj + g_ik*g_kj;
366 const double g_carre_ik = g_ii*g_ik + g_ij*g_jk + g_ik*g_kk;
367 const double g_carre_ji = g_ji*g_ii + g_jj*g_ji + g_jk*g_ki;
368 const double g_carre_jj = g_ji*g_ij + g_jj*g_jj + g_jk*g_kj;
369 const double g_carre_jk = g_ji*g_ik + g_jj*g_jk + g_jk*g_kk;
370 const double g_carre_ki = g_ki*g_ii + g_kj*g_ji + g_kk*g_ki;
371 const double g_carre_kj = g_ki*g_ij + g_kj*g_jj + g_kk*g_kj;
372 const double g_carre_kk = g_ki*g_ik + g_kj*g_jk + g_kk*g_kk;
374 const double trace_g_carre = g_carre_ii + g_carre_jj + g_carre_kk;
376 const double ssd_ii = 0.5 * (g_carre_ii + g_carre_ii) - (1./3.)*trace_g_carre;
377 const double ssd_ij = 0.5 * (g_carre_ij + g_carre_ji);
378 const double ssd_ik = 0.5 * (g_carre_ik + g_carre_ki);
379 const double ssd_ji = 0.5 * (g_carre_ji + g_carre_ij);
380 const double ssd_jj = 0.5 * (g_carre_jj + g_carre_jj) - (1./3.)*trace_g_carre;
381 const double ssd_jk = 0.5 * (g_carre_jk + g_carre_kj);
382 const double ssd_ki = 0.5 * (g_carre_ki + g_carre_ik);
383 const double ssd_kj = 0.5 * (g_carre_kj + g_carre_jk);
384 const double ssd_kk = 0.5 * (g_carre_kk + g_carre_kk) - (1./3.)*trace_g_carre;
386 const double somme_ssdijssdij = calculer_somme_mijmji(ssd_ii, ssd_ij, ssd_ik, ssd_ji, ssd_jj, ssd_jk, ssd_ki, ssd_kj, ssd_kk);
388 const double s_ii = 0.5 * (g_ii + g_ii);
389 const double s_ij = 0.5 * (g_ij + g_ji);
390 const double s_ik = 0.5 * (g_ik + g_ki);
391 const double s_ji = 0.5 * (g_ji + g_ij);
392 const double s_jj = 0.5 * (g_jj + g_jj);
393 const double s_jk = 0.5 * (g_jk + g_kj);
394 const double s_ki = 0.5 * (g_ki + g_ik);
395 const double s_kj = 0.5 * (g_kj + g_jk);
396 const double s_kk = 0.5 * (g_kk + g_kk);
398 const double somme_sijsij = calculer_somme_mijmji(s_ii, s_ij, s_ik, s_ji, s_jj, s_jk, s_ki, s_kj, s_kk);
400 const double f_wale = ((pow(somme_sijsij,5./2.)+pow(somme_ssdijssdij,5./4.))==0) ? 0. : pow(somme_ssdijssdij,3./2.)/(pow(somme_sijsij,5./2.)+pow(somme_ssdijssdij,5./4.));
402 const double filter_volume = dx * dy * dz;
403 const double filter_lenght = cbrt(filter_volume);
405 return wale_constant*wale_constant * filter_lenght*filter_lenght * f_wale;
416 const double& g_ii = g[0][0];
417 const double& g_ij = g[0][1];
418 const double& g_ik = g[0][2];
419 const double& g_ji = g[1][0];
420 const double& g_jj = g[1][1];
421 const double& g_jk = g[1][2];
422 const double& g_ki = g[2][0];
423 const double& g_kj = g[2][1];
424 const double& g_kk = g[2][2];
431 const double s_ii = 0.5 * (g_ii + g_ii);
432 const double s_ij = 0.5 * (g_ij + g_ji);
433 const double s_ik = 0.5 * (g_ik + g_ki);
434 const double s_ji = 0.5 * (g_ji + g_ij);
435 const double s_jj = 0.5 * (g_jj + g_jj);
436 const double s_jk = 0.5 * (g_jk + g_kj);
437 const double s_ki = 0.5 * (g_ki + g_ik);
438 const double s_kj = 0.5 * (g_kj + g_jk);
439 const double s_kk = 0.5 * (g_kk + g_kk);
441 const double c_ii = dx*dx*g_ii*g_ii + dy*dy*g_ij*g_ij + dz*dz*g_ik*g_ik;
442 const double c_ij = dx*dx*g_ii*g_ji + dy*dy*g_ij*g_jj + dz*dz*g_ik*g_jk;
443 const double c_ik = dx*dx*g_ii*g_ki + dy*dy*g_ij*g_kj + dz*dz*g_ik*g_kk;
444 const double c_ji = dx*dx*g_ji*g_ii + dy*dy*g_jj*g_ij + dz*dz*g_jk*g_ik;
445 const double c_jj = dx*dx*g_ji*g_ji + dy*dy*g_jj*g_jj + dz*dz*g_jk*g_jk;
446 const double c_jk = dx*dx*g_ji*g_ki + dy*dy*g_jj*g_kj + dz*dz*g_jk*g_kk;
447 const double c_ki = dx*dx*g_ki*g_ii + dy*dy*g_kj*g_ij + dz*dz*g_kk*g_ik;
448 const double c_kj = dx*dx*g_ki*g_ji + dy*dy*g_kj*g_jj + dz*dz*g_kk*g_jk;
449 const double c_kk = dx*dx*g_ki*g_ki + dy*dy*g_kj*g_kj + dz*dz*g_kk*g_kk;
451 const double somme_gijgij = calculer_somme_mijmij(g_ii, g_ij, g_ik, g_ji, g_jj, g_jk, g_ki, g_kj, g_kk);
452 const double somme_cijsij = c_ii * s_ii
461 const double f_amd = (somme_gijgij==0) ? 0. : max(0., -somme_cijsij)/somme_gijgij;
463 return amd_constant * f_amd;
474 const double& g_ii = g[0][0];
475 const double& g_ij = g[0][1];
476 const double& g_ik = g[0][2];
477 const double& g_ji = g[1][0];
478 const double& g_jj = g[1][1];
479 const double& g_jk = g[1][2];
480 const double& g_ki = g[2][0];
481 const double& g_kj = g[2][1];
482 const double& g_kk = g[2][2];
489 const double s_ii = 0.5 * (g_ii + g_ii);
490 const double s_ij = 0.5 * (g_ij + g_ji);
491 const double s_ik = 0.5 * (g_ik + g_ki);
492 const double s_ji = 0.5 * (g_ji + g_ij);
493 const double s_jj = 0.5 * (g_jj + g_jj);
494 const double s_jk = 0.5 * (g_jk + g_kj);
495 const double s_ki = 0.5 * (g_ki + g_ik);
496 const double s_kj = 0.5 * (g_kj + g_jk);
497 const double s_kk = 0.5 * (g_kk + g_kk);
499 const double c_ii = dx*dx*g_ii*g_ii + dy*dy*g_ij*g_ij + dz*dz*g_ik*g_ik;
500 const double c_ij = dx*dx*g_ii*g_ji + dy*dy*g_ij*g_jj + dz*dz*g_ik*g_jk;
501 const double c_ik = dx*dx*g_ii*g_ki + dy*dy*g_ij*g_kj + dz*dz*g_ik*g_kk;
502 const double c_ji = dx*dx*g_ji*g_ii + dy*dy*g_jj*g_ij + dz*dz*g_jk*g_ik;
503 const double c_jj = dx*dx*g_ji*g_ji + dy*dy*g_jj*g_jj + dz*dz*g_jk*g_jk;
504 const double c_jk = dx*dx*g_ji*g_ki + dy*dy*g_jj*g_kj + dz*dz*g_jk*g_kk;
505 const double c_ki = dx*dx*g_ki*g_ii + dy*dy*g_kj*g_ij + dz*dz*g_kk*g_ik;
506 const double c_kj = dx*dx*g_ki*g_ji + dy*dy*g_kj*g_jj + dz*dz*g_kk*g_jk;
507 const double c_kk = dx*dx*g_ki*g_ki + dy*dy*g_kj*g_kj + dz*dz*g_kk*g_kk;
510 const double somme_cijsij = (c_ii-0.333*(c_ii+c_jj+c_kk)) * s_ii
514 + (c_jj-0.333*(c_ii+c_jj+c_kk)) * s_jj
518 + (c_kk-0.333*(c_ii+c_jj+c_kk)) * s_kk;
519 const double somme_sijsij = (s_ii-0.333*(s_ii+s_jj+s_kk)) * s_ii
523 + (s_jj-0.333*(s_ii+s_jj+s_kk)) * s_jj
527 + (s_kk-0.333*(s_ii+s_jj+s_kk)) * s_kk;
528 const double f_amd_comp = (somme_sijsij==0) ? 0. : max(0., -somme_cijsij)/somme_sijsij;
530 return amd_comp_constant * f_amd_comp;
540 const double& g_ii = g[0][0];
541 const double& g_ij = g[0][1];
542 const double& g_ik = g[0][2];
543 const double& g_ji = g[1][0];
544 const double& g_jj = g[1][1];
545 const double& g_jk = g[1][2];
546 const double& g_ki = g[2][0];
547 const double& g_kj = g[2][1];
548 const double& g_kk = g[2][2];
555 const double s_ii = 0.5 * (g_ii + g_ii);
556 const double s_ij = 0.5 * (g_ij + g_ji);
557 const double s_ik = 0.5 * (g_ik + g_ki);
558 const double s_ji = 0.5 * (g_ji + g_ij);
559 const double s_jj = 0.5 * (g_jj + g_jj);
560 const double s_jk = 0.5 * (g_jk + g_kj);
561 const double s_ki = 0.5 * (g_ki + g_ik);
562 const double s_kj = 0.5 * (g_kj + g_jk);
563 const double s_kk = 0.5 * (g_kk + g_kk);
565 const double c_ii = dx*dx*g_ii*g_ii + dy*dy*g_ij*g_ij + dz*dz*g_ik*g_ik;
566 const double c_ij = dx*dx*g_ii*g_ji + dy*dy*g_ij*g_jj + dz*dz*g_ik*g_jk;
567 const double c_ik = dx*dx*g_ii*g_ki + dy*dy*g_ij*g_kj + dz*dz*g_ik*g_kk;
568 const double c_ji = dx*dx*g_ji*g_ii + dy*dy*g_jj*g_ij + dz*dz*g_jk*g_ik;
569 const double c_jj = dx*dx*g_ji*g_ji + dy*dy*g_jj*g_jj + dz*dz*g_jk*g_jk;
570 const double c_jk = dx*dx*g_ji*g_ki + dy*dy*g_jj*g_kj + dz*dz*g_jk*g_kk;
571 const double c_ki = dx*dx*g_ki*g_ii + dy*dy*g_kj*g_ij + dz*dz*g_kk*g_ik;
572 const double c_kj = dx*dx*g_ki*g_ji + dy*dy*g_kj*g_jj + dz*dz*g_kk*g_jk;
573 const double c_kk = dx*dx*g_ki*g_ki + dy*dy*g_kj*g_kj + dz*dz*g_kk*g_kk;
575 const double somme_gijgij = calculer_somme_mijmij(g_ii, g_ij, g_ik, g_ji, g_jj, g_jk, g_ki, g_kj, g_kk);
576 const double somme_cijsij = c_ii * s_ii
585 const double f_amdnoclip = (somme_gijgij==0) ? 0. : -somme_cijsij/somme_gijgij;
587 return amdnoclip_constant * f_amdnoclip;
598 const double& g_ii = g[0][0];
599 const double& g_ij = g[0][1];
600 const double& g_ik = g[0][2];
601 const double& g_ji = g[1][0];
602 const double& g_jj = g[1][1];
603 const double& g_jk = g[1][2];
604 const double& g_ki = g[2][0];
605 const double& g_kj = g[2][1];
606 const double& g_kk = g[2][2];
608 const double& q_i = q[0];
609 const double& q_j = q[1];
610 const double& q_k = q[2];
617 const double c_i = dx*dx*g_ii*q_i + dy*dy*g_ij*q_j + dz*dz*g_ik*q_k;
618 const double c_j = dx*dx*g_ji*q_i + dy*dy*g_jj*q_j + dz*dz*g_jk*q_k;
619 const double c_k = dx*dx*g_ki*q_i + dy*dy*g_kj*q_j + dz*dz*g_kk*q_k;
621 const double somme_qiqi = calculer_somme_mimi(q_i, q_j, q_k);
622 const double somme_ciqi = c_i * q_i
625 const double f_amdscalar = (somme_qiqi==0) ? 0. : max(0., -somme_ciqi)/somme_qiqi;
627 return amdscalar_constant * f_amdscalar;
638 const double& g_ii = g[0][0];
639 const double& g_ij = g[0][1];
640 const double& g_ik = g[0][2];
641 const double& g_ji = g[1][0];
642 const double& g_jj = g[1][1];
643 const double& g_jk = g[1][2];
644 const double& g_ki = g[2][0];
645 const double& g_kj = g[2][1];
646 const double& g_kk = g[2][2];
648 const double& q_i = q[0];
649 const double& q_j = q[1];
650 const double& q_k = q[2];
657 const double c_i = dx*dx*g_ii*q_i + dy*dy*g_ij*q_j + dz*dz*g_ik*q_k;
658 const double c_j = dx*dx*g_ji*q_i + dy*dy*g_jj*q_j + dz*dz*g_jk*q_k;
659 const double c_k = dx*dx*g_ki*q_i + dy*dy*g_kj*q_j + dz*dz*g_kk*q_k;
661 const double somme_qiqi = calculer_somme_mimi(q_i, q_j, q_k);
662 const double somme_ciqi = c_i * q_i
665 const double f_amdscalarnoclip = (somme_qiqi==0) ? 0. : -somme_ciqi/somme_qiqi;
667 return amdscalarnoclip_constant * f_amdscalarnoclip;
678 const double& g_ii = g[0][0];
679 const double& g_ij = g[0][1];
680 const double& g_ik = g[0][2];
681 const double& g_ji = g[1][0];
682 const double& g_jj = g[1][1];
683 const double& g_jk = g[1][2];
684 const double& g_ki = g[2][0];
685 const double& g_kj = g[2][1];
686 const double& g_kk = g[2][2];
693 const double somme_gijgij = calculer_somme_mijmij(g_ii, g_ij, g_ik, g_ji, g_jj, g_jk, g_ki, g_kj, g_kk);
694 const double somme_gijgji = calculer_somme_mijmji(g_ii, g_ij, g_ik, g_ji, g_jj, g_jk, g_ki, g_kj, g_kk);
695 const double norme_s = sqrt(somme_gijgij + somme_gijgji);
697 const double c_ii = dx*dx*g_ii*g_ii + dy*dy*g_ij*g_ij + dz*dz*g_ik*g_ik;
698 const double c_jj = dx*dx*g_ji*g_ji + dy*dy*g_jj*g_jj + dz*dz*g_jk*g_jk;
699 const double c_kk = dx*dx*g_ki*g_ki + dy*dy*g_kj*g_kj + dz*dz*g_kk*g_kk;
701 const double trace_c = c_ii + c_jj + c_kk;
703 const double f_rds = (norme_s==0) ? 0. : trace_c/norme_s;
705 return rds_constant * (1./12.) * f_rds;
716 const double& g_ii = g[0][0];
717 const double& g_ij = g[0][1];
718 const double& g_ik = g[0][2];
719 const double& g_ji = g[1][0];
720 const double& g_jj = g[1][1];
721 const double& g_jk = g[1][2];
722 const double& g_ki = g[2][0];
723 const double& g_kj = g[2][1];
724 const double& g_kk = g[2][2];
733 const double s_ii = 0.5 * (g_ii + g_ii);
734 const double s_ij = 0.5 * (g_ij + g_ji);
735 const double s_ik = 0.5 * (g_ik + g_ki);
736 const double s_ji = 0.5 * (g_ji + g_ij);
737 const double s_jj = 0.5 * (g_jj + g_jj);
738 const double s_jk = 0.5 * (g_jk + g_kj);
739 const double s_ki = 0.5 * (g_ki + g_ik);
740 const double s_kj = 0.5 * (g_kj + g_jk);
741 const double s_kk = 0.5 * (g_kk + g_kk);
743 const double somme_sijsij = calculer_somme_mijmji(s_ii, s_ij, s_ik, s_ji, s_jj, s_jk, s_ki, s_kj, s_kk);
745 const double r_ii = s_jk * g_ii;
746 const double r_ij = s_jk * g_jj;
747 const double r_ik = s_jk * g_kk;
748 const double r_ji = s_ik * g_ii;
749 const double r_jj = s_ik * g_jj;
750 const double r_jk = s_ik * g_kk;
751 const double r_ki = s_ij * g_ii;
752 const double r_kj = s_ij * g_jj;
753 const double r_kk = s_ij * g_kk;
755 const double somme_rijrij = calculer_somme_mijmji(r_ii, r_ij, r_ik, r_ji, r_jj, r_jk, r_ki, r_kj, r_kk);
757 const double d_vss = (pow(somme_sijsij,5./2.)==0) ? 0. : (pow(somme_rijrij,3./2.))/(pow(somme_sijsij,5./2.));
759 const double filter_volume = dx * dy * dz;
760 const double filter_lenght = cbrt(filter_volume);
762 return vss_constant*vss_constant * filter_lenght*filter_lenght * d_vss;
773 const double& g_ii = g[0][0];
774 const double& g_ij = g[0][1];
775 const double& g_ik = g[0][2];
776 const double& g_ji = g[1][0];
777 const double& g_jj = g[1][1];
778 const double& g_jk = g[1][2];
779 const double& g_ki = g[2][0];
780 const double& g_kj = g[2][1];
781 const double& g_kk = g[2][2];
792 const double somme_gijgij = calculer_somme_mijmij(g_ii, g_ij, g_ik, g_ji, g_jj, g_jk, g_ki, g_kj, g_kk);
793 const double somme_gijgji = calculer_somme_mijmji(g_ii, g_ij, g_ik, g_ji, g_jj, g_jk, g_ki, g_kj, g_kk);
794 const double norme_s = sqrt(somme_gijgij + somme_gijgji);
796 const double fcs = - somme_gijgji/somme_gijgij;
798 const double f_koba = pow(fabs(fcs),3./2.) * (1 - fcs) * norme_s;
800 const double filter_volume = dx * dy * dz;
801 const double filter_lenght = cbrt(filter_volume);
803 return kobayashi_constant * filter_lenght*filter_lenght * f_koba;
double operator()(double amd_comp_constant, double dx, double dy, double dz, double rho, FixedVector< FixedVector< double, 3 >, 3 > &g, FixedVector< double, 3 > &q) override
double operator()(double amd_constant, double dx, double dy, double dz, double rho, FixedVector< FixedVector< double, 3 >, 3 > &g, FixedVector< double, 3 > &q) override
double operator()(double amdnoclip_constant, double dx, double dy, double dz, double rho, FixedVector< FixedVector< double, 3 >, 3 > &g, FixedVector< double, 3 > &q) override
double operator()(double amdscalar_constant, double dx, double dy, double dz, double rho, FixedVector< FixedVector< double, 3 >, 3 > &g, FixedVector< double, 3 > &q) override
double operator()(double amdscalarnoclip_constant, double dx, double dy, double dz, double rho, FixedVector< FixedVector< double, 3 >, 3 > &g, FixedVector< double, 3 > &q) override
double operator()(double constant, double dx, double dy, double dz, double rho, FixedVector< FixedVector< double, 3 >, 3 > &g, FixedVector< double, 3 > &q) override
double operator()(double kobayashi_constant, double dx, double dy, double dz, double rho, FixedVector< FixedVector< double, 3 >, 3 > &g, FixedVector< double, 3 > &q) override
double operator()(double rds_constant, double dx, double dy, double dz, double rho, FixedVector< FixedVector< double, 3 >, 3 > &g, FixedVector< double, 3 > &q) override
double operator()(double sigma_constant, double dx, double dy, double dz, double rho, FixedVector< FixedVector< double, 3 >, 3 > &g, FixedVector< double, 3 > &q) override
double operator()(double smagorinsky_constant, double dx, double dy, double dz, double rho, FixedVector< FixedVector< double, 3 >, 3 > &g, FixedVector< double, 3 > &q) override
double operator()(double constant, double dx, double dy, double dz, double rho, FixedVector< FixedVector< double, 3 >, 3 > &g, FixedVector< double, 3 > &q) override
double operator()(double vreman_constant, double dx, double dy, double dz, double rho, FixedVector< FixedVector< double, 3 >, 3 > &g, FixedVector< double, 3 > &q) override
double operator()(double vss_constant, double dx, double dy, double dz, double rho, FixedVector< FixedVector< double, 3 >, 3 > &g, FixedVector< double, 3 > &q) override
double operator()(double wale_constant, double dx, double dy, double dz, double rho, FixedVector< FixedVector< double, 3 >, 3 > &g, FixedVector< double, 3 > &q) override