openfoam寻找与某一边界相邻的一层网格

13 篇文章 12 订阅

基本思路

  • 定位到边界的faceID
  • 在owner中根据faceID选择网格cell
volScalarField post
    (
        IOobject
        (
            "post",
            runTime.timeName(),
            mesh,
            IOobject::NO_READ,
            IOobject::AUTO_WRITE
        ),
	mesh,
	dimensionedScalar("0.0",dimensionSet(0,0,0,0,0),0.0)
    );
label patchID = mesh.boundaryMesh().findPatchID("cylinder");
if(patchID == -1){
	FatalErrorIn("can not find patch, please check you patch name")
		<< abort(FatalError);
}
const polyPatch& cPatch = mesh.boundaryMesh()[patchID];

const unallocLabelList& neighbour = mesh.neighbour();
const unallocLabelList& owner = mesh.owner();
forAll(cPatch,faceI){
	label faceId = cPatch.start() + faceI;
	label cellId = owner[faceId];
	post[cellId]=1;
	Info<<"cellId = "<<cellId<<endl;
}
post.write();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值