View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0000766 | OpenFOAM | Bug | public | 2013-03-07 07:06 | 2013-03-12 17:06 |
Reporter | nogenmyr | Assigned To | henry | ||
Priority | normal | Severity | minor | Reproducibility | always |
Status | resolved | Resolution | fixed | ||
Platform | Linux | OS | centos | OS Version | 5 |
Summary | 0000766: Motion set wrong in fvMotionSolverEngineMesh | ||||
Description | The 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 Reproduce | Run for instance kiva test tutorial with "engineMesh fvMotionSolver". | ||||
Tags | No tags attached. | ||||