View Issue Details

IDProjectCategoryView StatusLast Update
0000766OpenFOAMBugpublic2013-03-12 17:06
Reporternogenmyr Assigned Tohenry  
PrioritynormalSeverityminorReproducibilityalways
Status resolvedResolutionfixed 
PlatformLinuxOScentosOS Version5
Summary0000766: Motion set wrong in fvMotionSolverEngineMesh
DescriptionThe class uses a velocityComponent motion solver, where velocity should be specified. Still in fvMotionSolverEngineMesh::move(), displacement is set:

motionSolver_.cellMotionU().boundaryField()[pistonIndex_] == deltaZ;

Replace deltaZ with deltaZ/engineDB_.deltaTValue() to set velocity instead.

2nd issue: When the interpolation from cellMotionU to pointMotionU is done in class velocityComponentLaplacianFvMotionSolver, the mesh points on the piston edge are affected by the lower velocity of the liner points, which slightly deforms the piston at the edge during run. A workaround can be done in fvMotionSolverEngineMesh::move() to force motion of piston patch points:

...
    motionSolver_.solve();
    
    const pointField& oldPoints = points();
    pointField newPoints = motionSolver_.curPoints()();

    const polyPatch& pp = boundaryMesh()[pistonIndex_];
    const labelList& meshPoints = pp.meshPoints();

    forAll(meshPoints, pointI)
    {
        label meshPointI = meshPoints[pointI];
        newPoints[meshPointI].z() = oldPoints[meshPointI].z() + deltaZ;
    }

....

// movePoints(motionSolver_.curPoints());
        movePoints(newPoints);


Steps To ReproduceRun for instance kiva test tutorial with "engineMesh fvMotionSolver".
TagsNo tags attached.

Activities

henry

2013-03-12 17:06

manager   ~0001984

Resolved by commit 2d27ff5f9b9bb6177c95eb52c928356994192091 in OpenFoam-2.2.x

Issue History

Date Modified Username Field Change
2013-03-07 07:06 nogenmyr New Issue
2013-03-12 17:06 henry Note Added: 0001984
2013-03-12 17:06 henry Status new => resolved
2013-03-12 17:06 henry Resolution open => fixed
2013-03-12 17:06 henry Assigned To => henry