Skip to content
Snippets Groups Projects
UEqns.H 2.86 KiB
Newer Older
Henry's avatar
Henry committed
fvVectorMatrix U1Eqn(U1, U1.dimensions()*dimVol/dimTime);
fvVectorMatrix U2Eqn(U2, U2.dimensions()*dimVol/dimTime);
Henry's avatar
Henry committed
        volTensorField gradU1T(T(fvc::grad(U1)));
Henry's avatar
Henry committed
            kineticTheory.solve(gradU1T);
            nuEff1 = kineticTheory.mu1()/rho1;
        }
        else // If not using kinetic theory is using Ct model
        {
Henry's avatar
Henry committed
            nuEff1 = sqr(Ct)*nut2 + nu1;
Henry's avatar
Henry committed
        volTensorField Rc1
Henry's avatar
Henry committed
            "Rc1",
            (((2.0/3.0)*I)*nuEff1)*tr(gradU1T) - nuEff1*gradU1T
        if (kineticTheory.on())
        {
Henry's avatar
Henry committed
            Rc1 -= ((kineticTheory.lambda()/rho1)*tr(gradU1T))*tensor(I);
Henry's avatar
Henry committed
        surfaceScalarField phiR1
Henry's avatar
Henry committed
            -fvc::interpolate(nuEff1)*mesh.magSf()*fvc::snGrad(alpha1)
            /fvc::interpolate(alpha1 + scalar(0.001))
Henry's avatar
Henry committed
        U1Eqn =
Henry's avatar
Henry committed
            (scalar(1) + Cvm*rho2*alpha2/rho1)*
Henry's avatar
Henry committed
                fvm::ddt(U1)
              + fvm::div(phi1, U1, "div(phi1,U1)")
              - fvm::Sp(fvc::div(phi1), U1)
Henry's avatar
Henry committed
          - fvm::laplacian(nuEff1, U1)
          + fvc::div(Rc1)
Henry's avatar
Henry committed
          + fvm::div(phiR1, U1, "div(phi1,U1)")
          - fvm::Sp(fvc::div(phiR1), U1)
          + (fvc::grad(alpha1)/(fvc::average(alpha1) + scalar(0.001)) & Rc1)
         ==
        //  g                          // Buoyancy term transfered to p-equation
Henry's avatar
Henry committed
          - fvm::Sp(alpha2/rho1*K, U1)
        //+ alpha2/rho1*K*U2           // Explicit drag transfered to p-equation
          - alpha2/rho1*(liftCoeff - Cvm*rho2*DDtU2)
        mrfZones.addCoriolis(scalar(1) + Cvm*rho2*alpha2/rho1, U1Eqn);
Henry's avatar
Henry committed
        U1Eqn.relax();
Henry's avatar
Henry committed
        volTensorField gradU2T(T(fvc::grad(U2)));
        volTensorField Rc2
Henry's avatar
Henry committed
            "Rc2",
            (((2.0/3.0)*I)*nuEff2)*tr(gradU2T) - nuEff2*gradU2T
Henry's avatar
Henry committed
        surfaceScalarField phiR2
Henry's avatar
Henry committed
            -fvc::interpolate(nuEff2)*mesh.magSf()*fvc::snGrad(alpha2)
            /fvc::interpolate(alpha2 + scalar(0.001))
Henry's avatar
Henry committed
        U2Eqn =
Henry's avatar
Henry committed
            (scalar(1) + Cvm*rho2*alpha1/rho2)*
Henry's avatar
Henry committed
                fvm::ddt(U2)
              + fvm::div(phi2, U2, "div(phi2,U2)")
              - fvm::Sp(fvc::div(phi2), U2)
Henry's avatar
Henry committed
          - fvm::laplacian(nuEff2, U2)
          + fvc::div(Rc2)
Henry's avatar
Henry committed
          + fvm::div(phiR2, U2, "div(phi2,U2)")
          - fvm::Sp(fvc::div(phiR2), U2)
Henry's avatar
Henry committed
          + (fvc::grad(alpha2)/(fvc::average(alpha2) + scalar(0.001)) & Rc2)
         ==
        //  g                          // Buoyancy term transfered to p-equation
Henry's avatar
Henry committed
          - fvm::Sp(alpha1/rho2*K, U2)
        //+ alpha1/rho2*K*U1           // Explicit drag transfered to p-equation
          + alpha1/rho2*(liftCoeff + Cvm*rho2*DDtU1)
        mrfZones.addCoriolis(scalar(1) + Cvm*rho2*alpha1/rho2, U2Eqn);
Henry's avatar
Henry committed
        U2Eqn.relax();