看到一段与这三个类相关的经典代码,记录备查。
来源:https://www.cfd-online.com/Forums/openfoam
surfaceScalarField D(fvc::interpolate(D_cell));
scalarField allLambda(mesh.nFaces(), 1.0);
slicedSurfaceScalarField lambda
(
IOobject
(
"lambda",
mesh.time().timeName(),
mesh,
IOobject::NO_READ,
IOobject::NO_WRITE,
false
),
mesh,
dimless,
allLambda,
false // Use slices for the couples
);
scalarField& lambdaIf = lambda;
surfaceScalarField::Boundary& lambdaBf = lambda.boundaryFieldRef();
forAll(lambdaIf, facei)
{
if(P[facei] < epsilon) {lambdaIf[facei] = 0;}
}
forAll(lambdaBf, patchi)
{
scalarField& lambdaPf = lambdaBf[patchi];
forAll(lambdaPf, pFacei)
{
if(P[pFacei] < epsilon) {lambdaPf[pFacei] = 0;}
}
}
syncTools::syncFaceList(mesh,allLambda,minEqOp<scalar>());
D*=lambda;
scalarField 是标量场;
surfaceScalarField 为几何场量,包含 internalField 和 boundaryField;
slicedSurfaceScalarField 生成 scalarField 的引用,其数据结构与surfaceScalarField相同,主要用于自动处理 coupled 边界。
Contact me
E-mail: 18810577380@163.com