CFD Online Discussion Forums

CFD Online Discussion Forums (http://www.cfd-online.com/Forums/)
-   OpenFOAM Post-Processing (http://www.cfd-online.com/Forums/openfoam-post-processing/)
-   -   writing solid body position to a file - sixdof issue (http://www.cfd-online.com/Forums/openfoam-post-processing/129455-writing-solid-body-position-file-sixdof-issue.html)

fsaltara February 5, 2014 13:13

writing solid body position to a file - sixdof issue
 
When using the sixdof solver, how is it possible to write the time history of the body position to a file, like it is done with the forces?

simon-2 February 26, 2014 15:35

hi,
unfortunately, i don't know how to do this well, but i'm also looking for a solution to this problem. Obviously, there is no ready-to-use functionObject for logging positions as there is for forces.
using other functionObjects, i got the demanded values, but in a very bad structure:

i used functionObject "writeRegisteredObject" in controlDict to write object "dynamicMeshDict":
a)
Code:

functions
{
    positions
    {
        // Forcibly write registered objects

        type            writeRegisteredObject;
        functionObjectLibs ("libIOFunctionObjects.so");
        log                yes;
       
        outputControl  timeStep;
        outputInterval  1;
        writeInterval  1;

        // Objects to write
        objectNames    ( dynamicMeshDict );
    }
};


this produces folders and files for every single timestep :eek:

this means, i would get thousands of files like
caseRoot/80.01/uniform/sixDoFRigidBodyMotionState.gz
caseRoot/80.0199/uniform/sixDoFRigidBodyMotionState.gz
caseRoot/80.0298/uniform/sixDoFRigidBodyMotionState.gz
and so on, each containing a file like
b)
Code:

/*--------------------------------*- 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;
    location    "80.0199/uniform";
    object      sixDoFRigidBodyMotionState;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

centreOfMass    ( 3.3 0 0.1386375 );

orientation    ( 0.99807619 0 0.061999301 0 1 0 -0.061999301 0 0.99807619 );

velocity        ( 0 0 0.0045163445 );

acceleration    ( 1.3211615 -2.6233042 0.84606626 );

angularMomentum ( 0 -0.2529557 0 );

torque          ( 1109.8274 99.511973 -24.488035 );


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

but does NOT create a logfile.
in fact, this is the information i was looking for, but i would prefer to get a single file like

c)
Code:

#time centreOfMass orientation velocity acceleration angularMomentum Torque
80.0199 ( 3.3 0 0.1386375 ) ( 0.99807619 0 0.061999301 0 1 0 -0.061999301 0 0.99807619 ) ( 0 0 0.0045163445 ) ( 1.3211615 -2.6233042 0.84606626 ) ( 0 -0.2529557 0 ) ( 1109.8274 99.511973 -24.488035 )
80.0298 ( ... ... ... ) (.. ... ... .. .. .. .. .. ..) (.. .. ..) (.. .. ..) (... .. ..)
80.0398 ( ... ... ... ) (.. ... ... .. .. .. .. .. ..) (.. .. ..) (.. .. ..) (... .. ..)
80.0497 ( ... ... ... ) (.. ... ... .. .. .. .. .. ..) (.. .. ..) (.. .. ..) (... .. ..)

like for forces output.

i know its just a matter of batch processing to collect all b)-files to a single c)-file, but it is not very clean to temporary overflood the case-directory with thousands of folders, containing folders, containig archives, containing files... before collapsing them all to one single text file.

So does anyone know a smarter solution to log these values in a single file at runtime?

regards
simon

araujo February 26, 2014 19:31

have you tried to write as a "probe" in the controlDirect file?

simon-2 February 26, 2014 21:18

probes does not work for my case, as it needs a "probeLocation", and centreOfMass is not inside any cell, because the simulated space lies outside the object :confused:- probe seems to take a value of a field in a specified location. Therefore, i tried to track the value of pointDisplacement in my centreOfMass location, with above conclusions..
but how to access motionState, which is not a field?

araujo February 27, 2014 05:22

I'm having the same issue as well, I wish to track the amplitude and trajectory of the center of mass of a cylinder subjected to VIV. Check out this tool:
http://openfoamwiki.net/index.php/Co...omRegexp-files

it may be helpful.


All times are GMT -4. The time now is 07:32.