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

Read a vector list with IFstream and create IOobject from it

Register Blogs Community New Posts Updated Threads Search

Like Tree1Likes
  • 1 Post By abiy

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   June 14, 2013, 09:30
Default Read a vector list with IFstream and create IOobject from it
  #1
New Member
 
Marcel Vonlanthen
Join Date: Nov 2012
Location: Zurich, Switzerland
Posts: 28
Rep Power: 13
Sylv is on a distinguished road
Dear foamer,

I want to use some cutting planes from a source case (generate by the runtime sampling tool) to feed the inlet of a target case. To do so, I use the BC timeVaryingMappedFixedValue at the inlet of my traget case.

Unfortunately, the foamFiles generated by the sampling tool have no header, thus I cannot read them directly with timeVaryingMappedFixedValue (TVMFV). So I decided to modify this BC.

for example, TVMFV reads U values from the file U with an IOobject (IOobject needs header):
Code:
IOField<point> samplePoints
        (
            IOobject
            (
                "points",
                this->db().time().constant(),
                "boundaryData"/this->patch().name(),
                this->db(),
                IOobject::MUST_READ,
                IOobject::AUTO_WRITE,
                false
            )
        );
I can read the U from the sampling tool with IFstream (does not need header):
Code:
vectorField readU;
fileName caseDir = "path/to/my/Ufile"
IFstream dataStream(caseDir/"U");
dataStream >> readU;
How can I reconstruct the IOobject in TVMFV with my vectorField "readU"? My question is similar to this post http://www.cfd-online.com/Forums/ope...-foamfile.html, but I still don't understand how to do it...
Sylv is offline   Reply With Quote

Old   October 9, 2017, 15:25
Default
  #2
New Member
 
Abiy Melaku
Join Date: Jul 2016
Location: Western University
Posts: 5
Rep Power: 9
abiy is on a distinguished road
Hello Marcel!

I am replying late because it took me 5 years to figure out the answer .

In case if you are still looking for the answer, you can create IOField from already existing field as follows.

Code:
IOField<vector> readUIO
        (
            IOobject
            (
                "readU",
                this->db().time().constant(),
                "boundaryData"/this->patch().name(),
                this->db(),
                IOobject::MUST_READ,
                IOobject::AUTO_WRITE,
                false
            ),
            readU
        );
Hope this will help!
abiy is offline   Reply With Quote

Reply


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



All times are GMT -4. The time now is 23:57.