CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > Software User Forums > OpenFOAM > OpenFOAM Running, Solving & CFD

linearAxialAngularSpring restraint in rigidBodyMotion solver

Register Blogs Members List Search Today's Posts Mark Forums Read

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   August 12, 2018, 00:11
Default linearAxialAngularSpring restraint in rigidBodyMotion solver
  #1
Member
 
Jiadong Wang
Join Date: Mar 2018
Location: Australia
Posts: 32
Rep Power: 8
jiadongw is on a distinguished road
Hey Foamers,

I have worked on the motion solver rigidBodyMotion for a while, but still be struct in the linearAxialAngularSpring restraint.

Basically, I want to apply a linearAxialAngularSpring restraint to an airfoil, just like what wingMotion tutorial did using sixDoFRigidBodyMotion.
My final goal is to simulate two bodies with linearAxialAngularSpring restraint, so I guess the rigidBodyMotion solver is only choice because the sixDoFRigidBodyDisplacement has been deleted in new versions of OpenFoam.

The three official tutorials with rigidBodyMotion solver do not include linearAxialAngularSpring restraint, and the instructions about rigidBodyMotion solver seem to be quite few until now.

I try to modify the tutorial wingMotion using rigidBodyMotion solver, but is blows up after a period of time. Here is my modified dynamicMeshDict.
Code:
/*--------------------------------*- C++ -*----------------------------------*\
  =========                 |
  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
   \\    /   O peration     | Website:  https://openfoam.org
    \\  /    A nd           | Version:  6
     \\/     M anipulation  |
\*---------------------------------------------------------------------------*/
FoamFile
{
    version     2.0;
    format      ascii;
    class       dictionary;
    object      dynamicMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

dynamicFvMesh      dynamicMotionSolverFvMesh;

motionSolverLibs ("librigidBodyMeshMotion.so");

motionSolver    rigidBodyMotion;

rigidBodyMotionCoeffs
{

    report          on;

    solver
    {
        type symplectic;
    }

    g               (0 -9.81 0);
    rho             rhoInf;
    rhoInf          1;

    bodies
    {
       wing
       {
          type            rigidBody;
          parent          root;
          centreOfMass    (0.4974612746 -0.01671895744 0.125);
          mass            22.9;
          inertia         (1.958864357 0 0 3.920839234 0 2.057121362);
          transform       (1 0 0 0 1 0 0 0 1) (0.25 0.007 0.125);
   
          joint
          {
              type    composite;
              joints
              (
                   {
                       type Py;
                   }
                   {
                       type Rz;
                   }
              );
          }

          patches         (wing);
          innerDistance   0.3;
          outerDistance   1;

        }
    }

    restraints
    {
        linearSpring
        {
            type            linearSpring;
            body            wing;
            anchor          (0.25 0.007 0.125);
            refAttachmentPt (0.25 0.007 0.125);
            stiffness       4000;
            damping         2;
            restLength      0;
        } 
   
        axialSpring
        {
            type            linearAxialAngularSpring;
            body            wing;
            axis            (0 0 1);
            referenceOrientation
            (
                1 0 0
                0 1 0
                0 0 1
            );
            stiffness       700;
            damping         0.5;
        }
    }
}


// ************************************************************************* //

My question is:
1) Does anyone know is there any available tutorial about the rigidBodyMotion solver with linearAxialAngularSpring restraint?
2) How to define the centre of mass, centre of rotation, transform and referenceOrientation in rigidBodyMotion solver?

Any advice is appreciated, thanks.
jiadongw is offline   Reply With Quote

Old   August 12, 2018, 05:40
Default
  #2
Senior Member
 
Santiago Lopez Castano
Join Date: Nov 2012
Posts: 354
Rep Power: 15
Santiago is on a distinguished road
Why dont you go to an earlier version of OF that does have what you need?
Santiago is offline   Reply With Quote

Old   August 12, 2018, 20:30
Default
  #3
Member
 
Jiadong Wang
Join Date: Mar 2018
Location: Australia
Posts: 32
Rep Power: 8
jiadongw is on a distinguished road
Quote:
Originally Posted by Santiago View Post
Why dont you go to an earlier version of OF that does have what you need?
Thanks for your reply, Santiago.

Yes, I have tested earlier version (OF4.0) which employs the sixDoFRigidBodyDisplacement and is able to handle multiple bodies. But its mesh solver is displacementLaplacian, which has a poor performance on rotation motion.

The new version OpenFoam treats the mesh motion using Slerp interpolation that has a amazing performance when work on the rotation motion of body. That's definitely what I need.

Anyway, thank you very much.
jiadongw is offline   Reply With Quote

Old   August 13, 2018, 04:49
Default
  #4
Senior Member
 
Santiago Lopez Castano
Join Date: Nov 2012
Posts: 354
Rep Power: 15
Santiago is on a distinguished road
Quote:
Originally Posted by jiadongw View Post

But its mesh solver is displacementLaplacian, which has a poor performance on rotation motion.
Is that true for your case? Does the mesh degrade so badly? Have you tried to use non conformal gridding (AMI, composite?)
Santiago is offline   Reply With Quote

Old   August 13, 2018, 21:33
Default
  #5
Member
 
Jiadong Wang
Join Date: Mar 2018
Location: Australia
Posts: 32
Rep Power: 8
jiadongw is on a distinguished road
Quote:
Originally Posted by Santiago View Post
Is that true for your case? Does the mesh degrade so badly? Have you tried to use non conformal gridding (AMI, composite?)
Yes, it seem to be true. My case needs a pitch angle of about 40 degrees. But the sixDoFRigidBodyDisplacement only can handle about 20 degrees rotation.

Because I want to simulate two foils which are very close to each other, I'm not sure AMI is suitable for my case.
jiadongw is offline   Reply With Quote

Reply

Tags
linearaxialangularspring, rigidbodymotion

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Fluent Adjoint Solver? ex10148 FLUENT 16 September 28, 2018 08:11
thobois class engineTopoChangerMesh error Peter_600 OpenFOAM 4 August 2, 2014 09:52
Divergence problem Smaras FLUENT 13 February 21, 2013 05:03
3d vof Smaras FLUENT 2 February 19, 2013 06:58
why the solver reject it? Anyone with experience? bearcat CFX 6 April 28, 2008 14:08


All times are GMT -4. The time now is 01:38.