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. 以DTCHullWave算例为例 ,使用dynamicmeshDict计算船舶波浪增阻,这里参数的意义是我所标注的这个意思吗?

以DTCHullWave算例为例 ,使用dynamicmeshDict计算船舶波浪增阻,这里参数的意义是我所标注的这个意思吗?

已定时 已固定 已锁定 已移动 OpenFOAM
15 帖子 5 发布者 11.9k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • Z 离线
    Z 离线
    zqliu012345
    写于 最后由 李东岳 编辑
    #1
    dynamicFvMesh   dynamicMotionSolverFvMesh;
    
    motionSolverLibs   ("librigidBodyMeshMotion.so");//求解所用的库
    
    motionSolver    rigidBodyMotion;
    
    report          on;//在终端输出相关信息
    
    solver
    {
        type Newmark;//求解器的显性或隐性,一阶或者二阶
    }
    
    accelerationRelaxation 0.4;//修正因子,openfoam百科上说一般取0.9-1
    
    bodies
    {
          hull
        {
            type            rigidBody;//定义hull的类型为刚体
            parent          root;//不知道什么意思
    
            centreOfMass    (0 0 0);//重心
            mass            412.73;//质量
            inertia         (40 0 0 921 0 921);//这个不知道是什么意思```
            transform       (1 0 0 0 1 0 0 0 1) (2.929541 0 0.2);//这个不知道是什么意思
            joint//这个子字典不知道什么意思  猜测是和下面的restraints有关,Pz对应下面的translaterDamper  即在垂向上不进行约束,并指定垂向运动的阻尼系数。Ry对应下面的totationDamper,即在绕y轴旋转上不进行约束,并指定旋转阻尼系数
            {
                type    composite;
                joints
                (
                    {
                        type Pz;
                    }
                    {
                        type Ry;
                    }
                );
            }
    
            patches         (hull);//钢体面名字
            innerDistance   0.3; //在0.3范围内的网格随刚体一起移动,在1以外的网格不发生变形,在0.3-1之间的网格发生变形
            outerDistance   1;
        }
    }
    
    restraints//这个不知道和constraints有什么区别
    {
        translationDamper
        {
            type linearDamper;//线性的 与位移成正比
            body hull;
            coeff 8596; //垂向阻尼系数
        }
    
        rotationDamper
        {
            type sphericalAngularDamper;  //与角速度成正比
            body hull;
            coeff 11586;//绕y轴旋转的阻尼系数。
        }
    }
    
    
    // ************************************************************************* //
    

    还有一个问题就是自己仿照DTCHullwave算例计算一艘kcs的船,算了0.76秒 paraview查看发现这个船一直下沉,纵倾的幅度很小很小,不仔细看都看不出来。请各位有经验的前辈给予一定的指导。

    Z 1 条回复 最后回复
  • towerT 离线
    towerT 离线
    tower
    写于 最后由 编辑
    #2

    joint 部分 Pz的意思可以沿着z轴直线运动 Ry的意思是可以绕y轴旋转 inertia的话我的理解是转动惯量 不是零的值分别代表Ixx Iyy izz :mihu:

    Z 1 条回复 最后回复
  • Z 离线
    Z 离线
    zqliu012345
    在 中回复了 tower 最后由 编辑
    #3

    @tower 万分感谢,还有一个很奇怪的是,TChull的船纵向坐标是0——6m,但这里的centreofmass(应该是重心坐标吧)纵坐标确是0,请问这个是什么原因呢?

    1 条回复 最后回复
  • 一 离线
    一 离线
    一朵苍凉
    写于 最后由 编辑
    #4

    个人理解:这里的centerofmass设置为(0 0 0 )应该是固船坐标系的意思,在势流理论里面,可以通过取固定在物体重心处的坐标系来将物体匀速运动的问题转化成固定流速物体的绕流问题,大大简化计算。所以如果船舶只有航速贸易放开自由度,取这个坐标系是可以将船舶匀速运动的问题转化成船舶绕流问题的,这样就可以把非定常问题简化成定常问题了。

    S 1 条回复 最后回复
  • S 离线
    S 离线
    souliam
    在 中回复了 一朵苍凉 最后由 编辑
    #5

    @一朵苍凉 不知道您能不能帮我看下我的算例,看看那儿可以优化以下?我的算例是重叠网格进行自由运动计算。运算几步以后就崩了,运动不对,但不知道那儿存在问题,可以的话,我上传详细的细节给您。1.png 2.png

    一 1 条回复 最后回复
  • 一 离线
    一 离线
    一朵苍凉
    在 中回复了 souliam 最后由 编辑
    #6

    @souliam
    运行很快崩溃的话,可能是存在非常致命的问题。首先确保网格是mesh ok的,然后确保物体的几何属性例如质量惯性矩这些都没问题,如果还是很快crash的话,可以适当增大pimple求解的外循环次数。

    S 2 条回复 最后回复
  • S 离线
    S 离线
    souliam
    在 中回复了 一朵苍凉 最后由 编辑
    #7

    @一朵苍凉 这个算例我在商软starccm+里面已经算过,目前在openfoamv2012进行同样的计算。网格仿造DTChull算例,利用snappyHexMesh生成,我的求解文件输出是这样的,运动输出的6Dof结果感觉比较大,所以我认为可能是我的dynamicsMeshdict文件可能有问题,但不知道那儿有问题,您方便的话,再帮我看以下,指点一二,感谢。
    Create time

    Create mesh for time = 0

    Selecting dynamicFvMesh dynamicOversetFvMesh
    Selecting motion solver: sixDoFRigidBodyMotion
    Applying solid body motion to entire mesh
    Selecting sixDoFSolver Newmark
    Translational constraint tensor (0 0 0 0 0 0 0 0 1)
    Rotational constraint tensor (1 0 0 0 1 0 0 0 1)

    PIMPLE: no residual control data found. Calculations will employ 2 corrector loops

    Using LTS
    Reading field p_rgh

    Reading field U

    Reading/calculating face flux field phi

    Creating cellMask field to block out hole cells

    Creating interpolatedCells field

    Reading transportProperties

    Selecting incompressible transport model Newtonian
    Selecting incompressible transport model Newtonian
    Selecting turbulence model type RAS
    Selecting RAS turbulence model kEpsilon
    RAS
    {
    RASModel kEpsilon;
    turbulence on;
    printCoeffs on;
    Cmu 0.09;
    C1 1.44;
    C2 1.92;
    C3 0;
    sigmak 1;
    sigmaEps 1.3;
    }

    Reading g

    Reading hRef
    Calculating field g.h

    No MRF models present

    No finite volume options present
    DICPCG: Solving for pcorr, Initial residual = 1, Final residual = 9.39433050916e-07, No Iterations 467
    Reading/calculating face velocity Uf

    Starting time loop

    Flow time scale min/max = 8.6866267787e-07, 0.0291922459613
    Smoothed flow time scale min/max = 8.6866267787e-07, 0.0291922459613
    Time = 0.001

    PIMPLE: iteration 1
    forces forces:
    rho: rho
    Not including porosity effects

    Restraint translationDamper: force (-0 -0 -0)
    Restraint rotationDamper: moment (-0 -0 -0)
    6-DoF rigid body motion
    Centre of rotation: (0 0 -0.461009082997)
    Centre of mass: (0 0 -0.461009082997)
    Orientation: (0.999999999122 -4.18404783667e-05 2.19816547713e-06 4.18405388615e-05 0.999999998746 -2.75277355352e-05 -2.19701370075e-06 2.75278274834e-05 0.999999999619)
    Linear velocity: (0 0 0.0218340063689)
    Angular velocity: (0.0550532334843 0.00439510067628 0.0836815815307)
    cellVolumeWeight : detected 2 mesh regions

    zone:0 nCells:1428000
    zone:1 nCells:1108410
    

    Marking patch-cells on zone 0
    Marking patch-cells on zone 1

    After patch analysis : nCells : 2536410
    other : 2371976
    patch : 141190
    overset: 23244

    Creating mesh-to-mesh addressing for region0 and region0 regions using cellVolumeWeight
    meshToMesh: Using AABBTree method
    Overlap volume: 2.68136988135
    cellVolumeWeight : detected 3 mesh regions after overset

    Front : fraction:1 size:23970
    Overset analysis : nCells : 2536410
    calculated : 2512836
    interpolated : 23432
    hole : 142

    Execution time for mesh.update() = 56.91 s
    smoothSolver: Solving for alpha.water, Initial residual = 1.32501360637e-07, Final residual = 5.40621940608e-09, No Iterations 1
    Phase-1 volume fraction = 0.80497110631 Min(alpha.water) = 0 Max(alpha.water) = 1.00094392533
    MULES: Correcting alpha.water
    MULES: Correcting alpha.water
    MULES: Correcting alpha.water
    Phase-1 volume fraction = 0.804971106201 Min(alpha.water) = -5.22912457509e-16 Max(alpha.water) = 1.00094392533
    smoothSolver: Solving for alpha.water, Initial residual = 1.32287726888e-07, Final residual = 5.33117835751e-09, No Iterations 1
    Phase-1 volume fraction = 0.80497110685 Min(alpha.water) = -3.28734455684e-21 Max(alpha.water) = 1.00148843719
    Applying the previous iteration compression flux
    MULES: Correcting alpha.water
    MULES: Correcting alpha.water
    MULES: Correcting alpha.water
    MULES: Correcting alpha.water
    Phase-1 volume fraction = 0.804971106742 Min(alpha.water) = -3.32478347046e-14 Max(alpha.water) = 1.00148843719
    DILUPBiCGStab: Solving for p_rgh, Initial residual = 1, Final residual = 0.00904252579238, No Iterations 4
    time step continuity errors : sum local = 4.98432915358e-06, global = -4.35030739554e-09, cumulative = -4.35030739554e-09
    DILUPBiCGStab: Solving for p_rgh, Initial residual = 0.000104613428998, Final residual = 9.48129717208e-07, No Iterations 95
    time step continuity errors : sum local = 5.17819342099e-08, global = 9.75203425207e-09, cumulative = 5.40172685653e-09
    smoothSolver: Solving for epsilon, Initial residual = 0.00318321052028, Final residual = 5.00754349231e-05, No Iterations 2
    bounding epsilon, min: -0.00891808144257 max: 106.248958364 average: 1.03357845974
    smoothSolver: Solving for k, Initial residual = 0.999999999979, Final residual = 0.0989395295117, No Iterations 1
    PIMPLE: iteration 2
    smoothSolver: Solving for alpha.water, Initial residual = 1.5141031309e-05, Final residual = 5.25145730347e-09, No Iterations 2
    Phase-1 volume fraction = 0.804973015496 Min(alpha.water) = -7.90828268587e-26 Max(alpha.water) = 1.00074698501
    Applying the previous iteration compression flux
    MULES: Correcting alpha.water
    MULES: Correcting alpha.water
    MULES: Correcting alpha.water
    MULES: Correcting alpha.water
    Phase-1 volume fraction = 0.804972981578 Min(alpha.water) = -0.000375075266952 Max(alpha.water) = 1.00074698501
    smoothSolver: Solving for alpha.water, Initial residual = 1.54146759159e-05, Final residual = 5.35120277128e-09, No Iterations 2
    Phase-1 volume fraction = 0.804974867545 Min(alpha.water) = -4.8534415386e-10 Max(alpha.water) = 1.0014871078
    Applying the previous iteration compression flux
    MULES: Correcting alpha.water
    MULES: Correcting alpha.water
    MULES: Correcting alpha.water
    MULES: Correcting alpha.water
    Phase-1 volume fraction = 0.80497478029 Min(alpha.water) = -0.000141219315799 Max(alpha.water) = 1.0014871078
    DILUPBiCGStab: Solving for p_rgh, Initial residual = 3.91238817862e-05, Final residual = 9.99981139229e-07, No Iterations 15
    time step continuity errors : sum local = 1.97312896592e-06, global = 8.73490744761e-07, cumulative = 8.78892471617e-07
    DILUPBiCGStab: Solving for p_rgh, Initial residual = 6.95825944208e-06, Final residual = 8.05766273076e-07, No Iterations 19
    time step continuity errors : sum local = 1.37353052288e-06, global = -1.53311028217e-07, cumulative = 7.25581443401e-07
    smoothSolver: Solving for epsilon, Initial residual = 0.0476145055724, Final residual = 0.00249278364183, No Iterations 6
    bounding epsilon, min: -1.06527371456 max: 3100.56090246 average: 2.84781772564
    smoothSolver: Solving for k, Initial residual = 0.79259262557, Final residual = 0.0311989522415, No Iterations 4
    ExecutionTime = 112.02 s ClockTime = 112 s

    Flow time scale min/max = 1.85015907037e-06, 1e+15
    Smoothed flow time scale min/max = 1.85015907037e-06, 0.0296574788498
    Time = 0.002

    PIMPLE: iteration 1
    forces forces:
    rho: rho
    Not including porosity effects

    Restraint translationDamper: force (-0 -0 -187.685118747)
    Restraint rotationDamper: moment (-637.846763149 -50.9216364354 -969.534803614)
    6-DoF rigid body motion
    Centre of rotation: (0 0 -0.459430003293)
    Centre of mass: (0 0 -0.459430003293)
    Orientation: (0.998240479028 -0.0584060732538 0.0102311601265 0.058508037056 0.998237177305 -0.00996731887657 -0.00963097244877 0.0105483862658 0.999897982755)
    Linear velocity: (0 0 3.13632540091)
    Angular velocity: (6.05745573944 18.6026037453 117.298982883)
    cellVolumeWeight : detected 2 mesh regions

    zone:0 nCells:1428000
    zone:1 nCells:1108410
    

    Marking patch-cells on zone 0
    Marking patch-cells on zone 1

    After patch analysis : nCells : 2536410
    other : 2371976
    patch : 141190
    overset: 23244

    Creating mesh-to-mesh addressing for region0 and region0 regions using cellVolumeWeight
    meshToMesh: Using AABBTree method
    Overlap volume: 2.67649933669
    cellVolumeWeight : detected 4 mesh regions after overset

    Front : fraction:1 size:24277
    Overset analysis : nCells : 2536410
    calculated : 2512742
    interpolated : 23425
    hole : 243

    Execution time for mesh.update() = 54.91 s
    [3] #0 Foam::error::printStack(Foam::Ostream&) at ??:?
    [3] #1 Foam::sigFpe::sigHandler(int) at ??:?
    [3] #2 ? in /lib/x86_64-linux-gnu/libpthread.so.0
    [3] #3 Foam::symGaussSeidelSmoother::smooth(Foam::word const&, Foam::Field<double>&, Foam::lduMatrix const&, Foam::Field<double> 一堆错误提示省略

    Primary job terminated normally, but 1 process returned
    a non-zero exit code. Per user-direction, the job has been aborted.


    mpirun noticed that process rank 3 with PID 0 on node dell-optiplex-7070 exited on signal 8 (Floating point exception).

    1 条回复 最后回复
  • S 离线
    S 离线
    souliam
    在 中回复了 一朵苍凉 最后由 编辑
    #8

    @一朵苍凉 dynamicMeshDict 这时我的6自由度文件

    一 1 条回复 最后回复
  • 一 离线
    一 离线
    一朵苍凉
    在 中回复了 souliam 最后由 编辑
    #9

    @souliam 看起来你释放了一个平动和三个转动,不确定你的惯性矩等几何参数设置是否正确。为什么浮体网格表面看起来那么稀?

    S 1 条回复 最后回复
  • S 离线
    S 离线
    souliam
    在 中回复了 一朵苍凉 最后由 编辑
    #10

    @一朵苍凉 惯性矩这个我再确认一下,谢谢!上图显示的不是浮体表面网格,是背景网格和重叠区域网格的叠加一起。 目前的centerofmass以及orientation,在我的理解中似乎是一样的物理意义,质心?

    一 1 条回复 最后回复
  • 一 离线
    一 离线
    一朵苍凉
    在 中回复了 souliam 最后由 编辑
    #11

    @souliam 这个centerofmass是质心,orientation应该是旋转中心吧,一般可以默认旋转中心在质心处(个人理解)。

    S 2 条回复 最后回复
  • S 离线
    S 离线
    souliam
    在 中回复了 一朵苍凉 最后由 编辑
    #12

    @一朵苍凉 好的,我认同你的解释,

    1 条回复 最后回复
  • S 离线
    S 离线
    souliam
    在 中回复了 一朵苍凉 最后由 编辑
    #13

    @一朵苍凉 非常谢谢你!

    1 条回复 最后回复
  • Z 离线
    Z 离线
    zqliu012345
    在 中回复了 zqliu012345 最后由 编辑
    #14

    @zqliu012345
    在DTCHullMoveing的算例中使用的是运动求解器你是rigidBodyMotion求解器,对于这个求解器的参数而言
    其中是centreOfMass 这个参数表示的是重心在旋转重心的相对位置,而不是表面意思理解的中心的全局坐标,他要跟transform配合使用的一般transform的第一个括号表示坐标系不旋转(因为前面就是一个单位矩阵)后面括号的坐标是旋转中心,如下图所示(interFoam中的floatingObject算例)(0.5 .45 0.1)是这个附体的旋转中心,而他的重心的全局坐标不是上面的centreOfMass 是 这个变量表示重心和旋转重心在三个方向的距离,因为需要进行加减才能得到重心,这里他的重心(质心)就是(0.5+0,0.45+0, 0.1+0.25)即(0.5 0.45 0.35)
    2bbf380f-a342-4ca0-b948-f593dd49ad95-image.png

    对于把重心当做旋转中心的情况 centreOfMass 里面就是全都是0 transform第一个括号都不变,第二个括号里面是重心的全局坐标(DTCHull算例就是这种情况 因此 他的centreofMass是(0 0 0))

    1 条回复 最后回复
  • S 离线
    S 离线
    Sichan
    写于 最后由 编辑
    #15

    您好,我想在您这个回答的基础上再问一个问题。由于在rigidBodyMotion求解器中,centraOfMass是相对于centraOfRotation,那么sixDoFRigidBodyMotion求解器中的momentOfInertia改成rigidBodyMotion求解器中的interia应该做何种变换呢?

    1 条回复 最后回复

  • 登录

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