如何在流场中加入体积力场
-
编程。
// 先创建一个场 volVectorField source_Vector ( IOobject ( "source_Vector", mesh.time().timeName(), mesh, IOobject::NO_READ, IOobject::AUTO_WRITE ), mesh, dimensionedVector(dimensionSet(1,-2,-2,0,0,0,0), Zero) ); // 根据你的需要进行赋值 forAll(mesh,cellid) { source_Vector[cellid]=........; } // 添加方案一,添加到UEqn.H当中的动量方程中 fvVectorMatrix UEqn ( fvm::ddt(rho, U) + fvm::div(rhoPhi, U) + MRF.DDt(rho, U) + turbulence->divDevRhoReff(rho, U) == fvOptions(rho, U) + source_Vector // Add the source field ); // 添加方案二,添加到泊松方程里面,需要先插值为surfaceScalarField surfaceScalarField source_phig=-fvc::interpolate(source_Vector ); // 然后添加到pEqn的phig surfaceScalarField phig ( ( mixture.surfaceTensionForce() + source_phig // Add the source field - ghf*fvc::snGrad(rho) )*rAUf*mesh.magSf() );
我这个是改的interFoam,你类比一下就行,量纲应该不会一样。
-
volVectorField bForce ( IOobject ( "bForce", runTime.timeName(), mesh, IOobject::NO_READ, IOobject::AUTO_WRITE ), mesh, dimensionedVector("bForce", dimensionSet(1, -2, -2, 0, 0, 0, 0), Zero) // dimless ); for (label cellI = 0; cellI < mesh.C().size(); cellI++) // only process 0? { const scalar x0 = 0; const scalar y0 = 0.0245; const scalar x = mesh.Cf()[cellI][0] - x0; const scalar y = mesh.Cf()[cellI][1] - y0; if (x > 0 && x < 0.012 && y > 0 && y < 0.0005) { bForce[cellI][0] = 50; }