Skip to content
  • 最新
  • 版块
  • 东岳流体
  • 随机看[请狂点我]
皮肤
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(不使用皮肤)
  • 不使用皮肤
折叠
CFD中文网

CFD中文网

  1. CFD中文网
  2. OpenFOAM
  3. 在OpenFOAM中如何判断一个单元是否为边界单元?

在OpenFOAM中如何判断一个单元是否为边界单元?

已定时 已固定 已锁定 已移动 OpenFOAM
3 帖子 2 发布者 2.0k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • A 离线
    A 离线
    AppleKiller
    写于 最后由 编辑
    #1

    各位道友好!

    关于这个问题,我最初的想法是遍历该单元的所有面,然后判断这些面是否在边界上。请问有没有其他的方法呢?(任何方法都行)

    A 1 条回复 最后回复
  • A 离线
    A 离线
    AppleKiller
    在 中回复了 AppleKiller 最后由 编辑
    #2

    @AppleKiller 在 在OpenFOAM中如何判断一个单元是否为边界单元? 中说:

    各位道友好!

    关于这个问题,我最初的想法是遍历该单元的所有面,然后判断这些面是否在边界上。请问有没有其他的方法呢?(任何方法都行)

    这是这个方法的代码,有没有其他比较快速的方法呢?

    forAll (mesh().cells()[cellID], faceI)
    {
    	const label patchi = mesh().boundaryMesh().which(mesh().cells()[cellID][faceI]);
    	
    	if
    	(
    	   patchi > 0
    	&& !isA<processorPolyPatch>(mesh().boundaryMesh()[patchi])									
    	)
    	{
    		Info << "Find it" << endl;
    	}
    }
    
    1 条回复 最后回复
  • 学流体的小明学 离线
    学流体的小明学 离线
    学流体的小明 神
    写于 最后由 编辑
    #3

    可以从边界上的face返回这个face属于的cell

    const Foam::fvBoundaryMesh &procBoundary = mesh.boundary();
        forAll(procBoundary, patch)
            {
            forAll(procBoundary[patch], facei)
                {
                const label bcell = boundaryMesh[patch].faceCells()[facei];
                }
            }
    

    你可以得到所有的边界单元编号,然后做你其它向做的事就应该比较方便了

    1 条回复 最后回复

  • 登录

  • 登录或注册以进行搜索。
  • 第一个帖子
    最后一个帖子
0
  • 最新
  • 版块
  • 东岳流体
  • 随机看[请狂点我]