FreeFOAM The Cross-Platform CFD Toolkit
UEqns.H
Go to the documentation of this file.
1 fvVectorMatrix UaEqn(Ua, Ua.dimensions()*dimVol/dimTime);
2 fvVectorMatrix UbEqn(Ub, Ub.dimensions()*dimVol/dimTime);
3 
4 {
5  {
6  volTensorField gradUaT = fvc::grad(Ua)().T();
7 
8  if (kineticTheory.on())
9  {
10  kineticTheory.solve(gradUaT);
11  nuEffa = kineticTheory.mua()/rhoa;
12  }
13  else // If not using kinetic theory is using Ct model
14  {
15  nuEffa = sqr(Ct)*nutb + nua;
16  }
17 
18  volTensorField Rca
19  (
20  "Rca",
21  ((2.0/3.0)*I)*(sqr(Ct)*k + nuEffa*tr(gradUaT)) - nuEffa*gradUaT
22  );
23 
24  if (kineticTheory.on())
25  {
26  Rca -= ((kineticTheory.lambda()/rhoa)*tr(gradUaT))*tensor(I);
27  }
28 
29  surfaceScalarField phiRa =
30  -fvc::interpolate(nuEffa)*mesh.magSf()*fvc::snGrad(alpha)
31  /fvc::interpolate(alpha + scalar(0.001));
32 
33  UaEqn =
34  (
35  (scalar(1) + Cvm*rhob*beta/rhoa)*
36  (
37  fvm::ddt(Ua)
38  + fvm::div(phia, Ua, "div(phia,Ua)")
39  - fvm::Sp(fvc::div(phia), Ua)
40  )
41 
43  + fvc::div(Rca)
44 
45  + fvm::div(phiRa, Ua, "div(phia,Ua)")
46  - fvm::Sp(fvc::div(phiRa), Ua)
47  + (fvc::grad(alpha)/(fvc::average(alpha) + scalar(0.001)) & Rca)
48  ==
49  // g // Buoyancy term transfered to p-equation
50  - fvm::Sp(beta/rhoa*K, Ua)
51  //+ beta/rhoa*K*Ub // Explicit drag transfered to p-equation
52  - beta/rhoa*(liftCoeff - Cvm*rhob*DDtUb)
53  );
54 
55  UaEqn.relax();
56  }
57 
58  {
59  volTensorField gradUbT = fvc::grad(Ub)().T();
60  volTensorField Rcb
61  (
62  "Rcb",
63  ((2.0/3.0)*I)*(k + nuEffb*tr(gradUbT)) - nuEffb*gradUbT
64  );
65 
66  surfaceScalarField phiRb =
68  /fvc::interpolate(beta + scalar(0.001));
69 
70  UbEqn =
71  (
72  (scalar(1) + Cvm*rhob*alpha/rhob)*
73  (
74  fvm::ddt(Ub)
75  + fvm::div(phib, Ub, "div(phib,Ub)")
76  - fvm::Sp(fvc::div(phib), Ub)
77  )
78 
80  + fvc::div(Rcb)
81 
82  + fvm::div(phiRb, Ub, "div(phib,Ub)")
83  - fvm::Sp(fvc::div(phiRb), Ub)
84 
85  + (fvc::grad(beta)/(fvc::average(beta) + scalar(0.001)) & Rcb)
86  ==
87  // g // Buoyancy term transfered to p-equation
88  - fvm::Sp(alpha/rhob*K, Ub)
89  //+ alpha/rhob*K*Ua // Explicit drag transfered to p-equation
90  + alpha/rhob*(liftCoeff + Cvm*rhob*DDtUa)
91  );
92 
93  UbEqn.relax();
94  }
95 }
96 
97 // ************************ vim: set sw=4 sts=4 et: ************************ //