|
[Sponsors] |
Multi body: Unknown patchField type sixDoFRigidBodyDisplacement for patch type wall |
|
LinkBack | Thread Tools | Search this Thread | Display Modes |
April 19, 2020, 18:31 |
Multi body: Unknown patchField type sixDoFRigidBodyDisplacement for patch type wall
|
#1 |
New Member
Paulo
Join Date: Dec 2017
Posts: 9
Rep Power: 8 |
Hi,
I'm trying to simulate two bodies in two degree of freedom using pimpleDyMFoam. I set the wall of the two bodies as sixDoFRigidBodyDisplacement. I have already set in controlDict file library "libforces.so" in order to run sixDoFRigidBodyDisplacement. However, I got the following error: --> FOAM FATAL IO ERROR: Unknown patchField type sixDoFRigidBodyDisplacement for patch type wall Valid patchField types are : 31 ( angularOscillatingDisplacement angularOscillatingVelocity calculated codedFixedValue cyclic cyclicACMI cyclicAMI cyclicRepeatAMI cyclicSlip empty fixedNormalSlip fixedValue nonuniformTransformCyclic oscillatingDisplacement oscillatingVelocity processor processorCyclic slip solidBodyMotionDisplacement surfaceDisplacement surfaceSlipDisplacement symmetry symmetryPlane timeVaryingMappedFixedValue timeVaryingUniformFixedValue uniformFixedValue uniformInterpolatedDisplacement value waveDisplacement wedge zeroGradient ) Any sugestion? Thanks. |
|
April 20, 2020, 16:34 |
|
#2 |
New Member
Paulo
Join Date: Dec 2017
Posts: 9
Rep Power: 8 |
These are my files if necessary (pointDisplacement and dynamicMeshDict)
/*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: 5 | | \\ / A nd | Web: www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class pointVectorField; location "0.01"; object pointDisplacement; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // dimensions [0 1 0 0 0 0 0]; internalField uniform (0 0 0); boundaryField { cylinder1 { type sixDoFRigidBodyDisplacement; value uniform (0 0 0); innerDistance 0.15; // motion area outerDistance 1.5; // dynamic mesh area mass 161.69841; // structural mass centreOfMass (-0.25 0 0.165); //massa sup momentOfInertia (2.09904751 2.09904751 1.26326884); g (0 0 -9.81); orientation ( 1 0 0 0 1 0 0 0 1 ); velocity (0 0 0); angularMomentum (0 0 0); rho rhoInf; rhoInf 998.21; // accelerationRelaxation 0.9; // accelerationDamping 0.95; report on; reportToFile on; solver { type symplectic; } constraints { maxIteration 1000; noRotate1 { sixDoFRigidBodyMotionConstraint axis; axis (0 0 1); } noRotate2 { sixDoFRigidBodyMotionConstraint axis; axis (1 0 0); } noRotate3 { sixDoFRigidBodyMotionConstraint axis; axis (0 1 0); } restrain_z { sixDoFRigidBodyMotionConstraint plane; // Plane - restrain z and allow x and y normal (0 0 1); } } restraints { verticalSpring1 { sixDoFRigidBodyMotionRestraint linearSpring; anchor (-0.25 5000.75 0.165);// m -spring attached point on bottom refAttachmentPt (-0.25 0 0.165);//m - spring attached point on cylinder stiffness 0.00025167094001214400;//N/m damping 0;//Ns/m restLength 5000;//m } verticalSpring2 { sixDoFRigidBodyMotionRestraint linearSpring; anchor (-0.25 -5000.75 0.165);// m -spring attached point on bottom refAttachmentPt (-0.25 0 0.165);//m - spring attached point on cylinder stiffness 0.00025167094001214400;//N/m damping 0;//Ns/m restLength 5000;//m } horizontalSpring1 { sixDoFRigidBodyMotionRestraint linearSpring; anchor (-5001 0 0.165);// m -spring attached point on bottom refAttachmentPt (-0.25 0 0.165);//m - spring attached point on cylinder stiffness 0.00025167094001214400;//N/m damping 0;//Ns/m restLength 5000;//m } horizontalSpring2 { sixDoFRigidBodyMotionRestraint linearSpring; anchor (5000.5 0 0.165);// m -spring attached point on bottom refAttachmentPt (-0.25 0 0.165);//m - spring attached point on cylinder stiffness 0.00025167094001214400;//N/m damping 0;//Ns/m restLength 5000;//m } } } cylinder2 { type sixDoFRigidBodyDisplacement; innerDistance 0.15; // motion area outerDistance 1.5; // dynamic mesh area mass 161.69841; // structural mass centreOfMass (0.25 0 0.165); //massa sup momentOfInertia (2.09904751 2.09904751 1.26326884); g (0 0 -9.81); orientation ( 1 0 0 0 1 0 0 0 1 ); velocity (0 0 0); angularMomentum (0 0 0); rho rhoInf; rhoInf 998.21; // accelerationRelaxation 0.9; // accelerationDamping 0.95; report on; reportToFile on; solver { type symplectic; } constraints { maxIteration 1000; noRotate1 { sixDoFRigidBodyMotionConstraint axis; axis (0 0 1); } noRotate2 { sixDoFRigidBodyMotionConstraint axis; axis (1 0 0); } noRotate3 { sixDoFRigidBodyMotionConstraint axis; axis (0 1 0); } restrain_z { sixDoFRigidBodyMotionConstraint plane; // Plane - restrain z and allow x and y normal (0 0 1); } } restraints { verticalSpring3 { sixDoFRigidBodyMotionRestraint linearSpring; anchor (0.25 5000.75 0.165);// m -spring attached point on bottom refAttachmentPt (0.25 0 0.165);//m - spring attached point on cylinder stiffness 0.00025167094001214400;//N/m damping 0;//Ns/m restLength 5000;//m } verticalSpring4 { sixDoFRigidBodyMotionRestraint linearSpring; anchor (0.25 -5000.75 0.165);// m -spring attached point on bottom refAttachmentPt (0.25 0 0.165);//m - spring attached point on cylinder stiffness 0.00025167094001214400;//N/m damping 0;//Ns/m restLength 5000;//m } horizontalSpring3 { sixDoFRigidBodyMotionRestraint linearSpring; anchor (-5000.5 0 0.165);// m -spring attached point on bottom refAttachmentPt (0.25 0 0.165);//m - spring attached point on cylinder stiffness 0.00025167094001214400;//N/m damping 0;//Ns/m restLength 5000;//m } horizontalSpring4 { sixDoFRigidBodyMotionRestraint linearSpring; anchor (5001 0 0.165);// m -spring attached point on bottom refAttachmentPt (0.25 0 0.165);//m - spring attached point on cylinder stiffness 0.00025167094001214400;//N/m damping 0;//Ns/m restLength 5000;//m } } } front { type empty; } back { type empty; } ".*" { type fixedValue; value uniform (0 0 0); } } // ************************************************** *********************** // /*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: 2.3.0 | | \\ / A nd | Web: www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class dictionary; object motionProperties; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // dynamicFvMesh dynamicMotionSolverFvMesh; motionSolverLibs ( // "libsixDoFRigidBodyMotion.so" "libfvMotionSolvers.so" ); solver displacementLaplacian; //diffusivity quadratic inverseDistance 5.0 (cilindro); //5=uniforme displacementLaplacianCoeffs { diffusivity inverseDistance ( cylinder1 cylinder2); } // ************************************************** *********************** // |
|
April 23, 2020, 22:45 |
|
#3 |
Member
Andrew O. Winter
Join Date: Aug 2015
Location: Seattle, WA, USA
Posts: 78
Rep Power: 11 |
Hi Paulo,
You've got things mixed up in your files. A lot of the lines in your pointDisplacement file are meant to be in your dynamicMeshDict instead. Also, sixDoFRigidBodyDisplacement is not a type of boundary condition as far as I know, which is essentially what the error message in your first post is telling you. I think you should check out the OpenFOAM Wiki documentation page for the sixDoFRigidBodyMotion solver in order to properly understand how you should be setting up the dynamicMeshDict. It might also be helpful to browse around in the tutorials section of the OpenFOAM github repository. More specifically, you can find instances of the sixDoFRigidBodyMotion solver being used if you go to multiphase/RAS/DTCHullMoving or multiphase/RAS/floatingObject, which provide pointDisplacement and dynamicMeshDict file examples. Andrew P.S. - You should probably post things like this in the Home > Forums > Software User Forums > OpenFOAM > OpenFOAM Running, Solving & CFD section of the forum instead of the main OpenFOAM section. |
|
April 24, 2020, 05:36 |
|
#4 | |
New Member
Paulo
Join Date: Dec 2017
Posts: 9
Rep Power: 8 |
Quote:
Thank you for the response, Andrew! Next time I will post in Solving & CFD section. Thank you for the advise. You were right. I've mixed files. I checked openfoamwiki and I did a similar file now. However, I want to calculate the center of mass for each body (not computing just one point for center of mass symbolizing both bodies. But I want to compute one point for each body for center of mass in log file or similar). Do you know how to do that? Better: How do I set dynamicMeshDict for two moving bodies and put 4 springs for each cylinder (identical cylinders)? PS.: Actually I mixed the files because I wanted to get the center of mass of each body. One of the solutions I researched in websites was mixing files like this. But it was wrong as you said. |
||
April 24, 2020, 16:19 |
|
#5 |
Member
Andrew O. Winter
Join Date: Aug 2015
Location: Seattle, WA, USA
Posts: 78
Rep Power: 11 |
Hey Paulo,
No problem, I'm happy to help, especially I've gone through my own struggles with learning to use the sixDoFRigidBodyMotion solver. Concerning your questions, there is both good and bad news. The good news is that it is possible to model multiple bodies using the sixDoFRigidBodyMotion solver; however, the bad news is that you will need to do a fair amount of additional work before even being able to try it out since the coding for this has not been developed in the official OpenFOAM release versions yet. Also, I double-checked the current set of tutorials and did not find a single example of a multi-body simulation or any information about a built-in multi-body solver in any openfoam.org releases. To find some resources explaining how to implement the multi-body dynamics, you can find great OpenFOAM tutorials on Hakan Nilsson's CFD course webpage, which come with presentations and reports. More specifically, the reports A tutorial of the sixDofRigidBodyMotion library with multiple bodies and Coupled motion of two floating objects by Magnus Urquhart and Minghao Wu, respectively, provide detailed descriptions of how you can augment the default solver to create a multi-body solver. There are also some CFD Online forum posts concerning this matter too that might be worth reading through to better understand the situation. In particular, the ones I know of are as follows:
Sorry I can't be of more help, good luck! Andrew |
|
June 2, 2020, 07:27 |
|
#6 |
New Member
Fluid Tool Engineering
Join Date: Jul 2019
Location: Ho Chi Minh City
Posts: 10
Rep Power: 7 |
Hi Andrew,
I post answer at link below. It got from your link Multiple floating objects using InterDyMFoam and sixDoFRigidBodyMotion solver |
|
Tags |
multi body, patchfield, pimpledymfoam, sixdofrigidbody |
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Why Menter's SST model low-Re issue has not been seriously investigated? | vkrastev | OpenFOAM | 58 | January 8, 2018 16:20 |
multiphaseEulerFoam/tank discharge | ves | OpenFOAM Running, Solving & CFD | 8 | December 31, 2017 15:59 |
Time step continuity error | lpz_michele | OpenFOAM Running, Solving & CFD | 0 | October 12, 2015 07:05 |
Wrong flow in ratating domain problem | Sanyo | CFX | 17 | August 15, 2015 07:20 |
compressible two phase flow in CFX4.4 | youngan | CFX | 0 | July 2, 2003 00:32 |