CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > OpenFOAM Installation

Moving already Installed OpenFOAM to different machine (user)

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

Reply
 
LinkBack Thread Tools Display Modes
Old   August 26, 2010, 08:58
Post Moving already Installed OpenFOAM to different machine (user)
  #1
New Member
 
Join Date: Aug 2010
Posts: 3
Rep Power: 6
lokendra is on a distinguished road
Hi Everyone,

How to make sure that moving an already existing OpenFOAM installation (built from source) to a different user in same machine or a user in different machine alltogether (assuming all OS, package installation to be the same), works fine (so that one needs not build it again, because its time-consuming).
I mean, just resetting the environment variables would be enough to complete the installation for a new user/machine ?

My actual problem, is that I am trying to run OpenFOAM on a grid.
And I am using my local installation for the grid-user (making sure the permission compatibility) . And I am not able to run OpenFOAM on grid as grid-user (after resetting the env variable according to grid-user)

Following error occurs on running a simple blockMesh Command:

word::stripInvalid() called for word CN=5a631e00-2cdb-4b59-861f-4580f7e05fe2
For debug level (= 2) > 1 this is considered fatal
/tmp/openfoam-test/runOpenFoam: line 23: 16241 Aborted blockMesh

"CN=5a631e00-2cdb-4b59-861f-4580f7e05fe2" is actually the grid-userId on the Grid.
lokendra is offline   Reply With Quote

Old   August 26, 2010, 18:14
Default
  #2
Super Moderator
 
Bruno Santos
Join Date: Mar 2009
Location: Lisbon, Portugal
Posts: 8,318
Blog Entries: 34
Rep Power: 84
wyldckat is just really nicewyldckat is just really nicewyldckat is just really nicewyldckat is just really nice
Greetings Lokendra and welcome to the forum!

I'm sorry for starting off with a rant, but I'm going to have to say this first: XtreemOS is stupid It's breaking a rule in user naming: No stupid characters in the user names, which should also be short by definition!

So, AFAIK, the explanation is this: OpenFOAM at the core needs to know some $HOME and user details, so it can more easily know where to tread in a multi-core environment. And the user name is also checked for "illegal" characters, to avoid some bad things to happen further down the road with the file systems.

So, I'm going to try to post some minor changes (or hacking ) you need to do to OpenFOAM's file "src/OSspecific/POSIX/POSIX.C". Do this on your original machine/build environment! So, open that file and next I'll give the changes to be done.

... But first, some introduction to the addition needed on your grid account - a new variable in the shell environment is crucial to be defined in .bashrc or something like that:
Code:
export MYUSER="ofuser"
The name "ofuser" is more OpenFOAM friendly, but feel free to make it "lokendra" or your username in your initial build system, but stay clear from strange characters
And make sure your HOME variable is defined:
Code:
echo $HOME
If it isn't defined, then you will need to define it!

Now, as for the changes in the OpenFOAM's file POSIX.C:
  1. Find the line "Foam::word Foam::userName()";
  2. Change this:
    Code:
    Foam::word Foam::userName()
    {
        struct passwd* pw = getpwuid(getuid());
    
        if (pw != NULL)
        {
            return pw->pw_name;
        }
        else
        {
            return word::null;
        }
    }
    To this:
    Code:
    Foam::word Foam::userName()
    {
        char* env = getenv("MYUSER");
    
        if (env != NULL)
        {
            return fileName(env);
        }
        else
        {
          struct passwd* pw = getpwuid(getuid());
    
          if (pw != NULL)
          {
              return pw->pw_name;
          }
          else
          {
              return word::null;
          }
        }
    }
  3. Now find "Foam::fileName Foam::home(const word& userName)";
  4. Change this:
    Code:
    Foam::fileName Foam::home(const word& userName)
    {
        struct passwd* pw;
    
        if (userName.size())
        {
            pw = getpwnam(userName.c_str());
        }
        else
        {
            char* env = getenv("HOME");
    
            if (env != NULL)
            {
                return fileName(env);
            }
    
            pw = getpwuid(getuid());
        }
    
        if (pw != NULL)
        {
            return pw->pw_dir;
        }
        else
        {
            return fileName::null;
        }
    }
    To this:
    Code:
    Foam::fileName Foam::home(const word& userName)
    {
        char* env = getenv("HOME");
    
        if (env != NULL)
        {
            return fileName(env);
        }
    
        struct passwd* pw;
    
        if (userName.size())
        {
            pw = getpwnam(userName.c_str());
        }
        else
        {
            pw = getpwuid(getuid());
        }
    
        if (pw != NULL)
        {
            return pw->pw_dir;
        }
        else
        {
            return fileName::null;
        }
    }
NOTE: I haven't tested this code, but the changes made shouldn't leave margin for bugs

OK, now run ./Allwmake as you've done before. It should build quite quickly, since it will only update libOpenFOAM.so

Keep us posted on the outcome!

Best regards,
Bruno
wyldckat is offline   Reply With Quote

Old   August 27, 2010, 04:57
Default
  #3
New Member
 
Join Date: Aug 2010
Posts: 3
Rep Power: 6
lokendra is on a distinguished road
Hi Bruno,

Thanks a LOT for such a detailed and clear instructions.
The hack worked like a charm.

Thanx again for your time.

Regards
Lokendra
lokendra is offline   Reply With Quote

Old   November 30, 2011, 13:59
Default
  #4
Senior Member
 
Join Date: Mar 2011
Posts: 155
Rep Power: 6
tH3f0rC3 is on a distinguished road
Does anyone know how to solve this problem in Windows?

I try to run OpenFOAM in Windows. The same error appears when I try to run OF.
I cannot find the files you mentioned in my WIndows version, thus I don't know how to solve this problem. Maybe someone knows more.

Thanks a lot.

Best Regards,
tH3f0rC3
tH3f0rC3 is offline   Reply With Quote

Old   December 1, 2011, 03:29
Default
  #5
Super Moderator
 
Bruno Santos
Join Date: Mar 2009
Location: Lisbon, Portugal
Posts: 8,318
Blog Entries: 34
Rep Power: 84
wyldckat is just really nicewyldckat is just really nicewyldckat is just really nicewyldckat is just really nice
Hi tH3f0rC3,

Quote:
Originally Posted by tH3f0rC3 View Post
Does anyone know how to solve this problem in Windows?

I try to run OpenFOAM in Windows. The same error appears when I try to run OF.
I cannot find the files you mentioned in my WIndows version, thus I don't know how to solve this problem. Maybe someone knows more.
Wait... you're getting the exact same error as reported on the original post?
Quote:
Originally Posted by lokendra View Post
word::stripInvalid() called for word CN=5a631e00-2cdb-4b59-861f-4580f7e05fe2
For debug level (= 2) > 1 this is considered fatal
/tmp/openfoam-test/runOpenFoam: line 23: 16241 Aborted blockMesh
If you are getting a similar error but with a different word, then it would be easier to help you if you showed said error and tell us with which application it crashed with!

Best regards,
Bruno
wyldckat is offline   Reply With Quote

Old   December 1, 2011, 03:41
Default
  #6
Senior Member
 
Join Date: Mar 2011
Posts: 155
Rep Power: 6
tH3f0rC3 is on a distinguished road
Hi,

it is the nearly the same error:

word::stripInvalid() called for word ***
For debug level (= 2) > 1 this is considered fatal

*** is another word. It is my full name. Maybe because I named the computer like that, I don't know.
When I switch off all debug options in the controldict file OF runs. I haven't found out if OF really runs without a mistake.

This error message occurs no matter which command I have typed in (laplacianFoam, chtMultiRegionFoam, blockMesh...)

Best Regards
tH3f0rC3 is offline   Reply With Quote

Old   December 1, 2011, 03:51
Default
  #7
Super Moderator
 
Bruno Santos
Join Date: Mar 2009
Location: Lisbon, Portugal
Posts: 8,318
Blog Entries: 34
Rep Power: 84
wyldckat is just really nicewyldckat is just really nicewyldckat is just really nicewyldckat is just really nice
Hi tH3f0rC3,

Ah, that makes it a lot clearer

The solution for that and some other issues are described at openfoamwiki.net, on this section: Setting up shop in Windows

I didn't even remember that I briefly wrote some tips on how to use MSys there! A year flies by in an instant... (check the history link at the top of the page) and parts of my memory goes with it...

Good luck!
Bruno
wyldckat is offline   Reply With Quote

Old   December 1, 2011, 04:19
Default
  #8
Senior Member
 
Join Date: Mar 2011
Posts: 155
Rep Power: 6
tH3f0rC3 is on a distinguished road
Hi,

thanks, now it works.

Best Regards
tH3f0rC3 is offline   Reply With Quote

Old   December 1, 2011, 05:11
Default
  #9
Senior Member
 
Join Date: Mar 2011
Posts: 155
Rep Power: 6
tH3f0rC3 is on a distinguished road
I Don't know exactly what have done, but OF works now.
I think the paths have not been set correct and now they are.

New problem:
I want to have a look at the simulated results with paraView. I have paraView installed but in WIndows paraView needs VTK files, as far as I know. Thus I have tried to foamToVTK the calculated files.
The VTK files are created but paraView can't read. The following error message appears in paraView when opening the vtk-files:

ERROR: In ..\..\..\..\source\VTK\IO\vtkUnstructuredGridReade r.cxx, line 349 vtkUnstructuredGridReader (10C74FD8): Unrecognized keyword: u


Another error message appears when starting foamToVTK :
From function IOstream::compressionEnum(const word&)
in file db/IOstreams/IOstreams/IOstreams.C at line 75
bad compression specifier 'off', using 'uncompressed'


And then the foamToVTK starts.
Do you think this causes the error in paraView? I don't think so, but I can't think off another mistake why paraView can't read the vtk files.


Best Regards
tH3f0rC3 is offline   Reply With Quote

Old   December 1, 2011, 05:24
Default
  #10
Super Moderator
 
Bruno Santos
Join Date: Mar 2009
Location: Lisbon, Portugal
Posts: 8,318
Blog Entries: 34
Rep Power: 84
wyldckat is just really nicewyldckat is just really nicewyldckat is just really nicewyldckat is just really nice
Hi tH3f0rC3,

Wasn't there a "parafoam.bat" file in the patch files!? Read step #4 of the previous link

If you use a version of ParaView 3.8.0 or newer, you can open files of type ".foam, which what "parafoam.bat" does.

If you still want to use VTK files, try:
Code:
foamToVTK -help
Best regards,
Bruno
wyldckat is offline   Reply With Quote

Old   December 1, 2011, 06:02
Default
  #11
Senior Member
 
Join Date: Mar 2011
Posts: 155
Rep Power: 6
tH3f0rC3 is on a distinguished road
There was such a file.

I use paraview 3.10.1 -> But how can I open the "normal" results of my solver without foamToVTK these results?

I have copied the parafoam.bat to the bin directory of OpenFoam.
Now I think I have to move the still installed paraView to another directory that the parafoam.bat can find the paraview.exe
This step doesn't work, because I haven't the same directory files described in the link you've posted.
I have tried to modify the parafoam.bat from


echo.>case.foam
start paraview.exe --data="case.foam"

to


echo.>case.foam
start D:\programs\paraview3.10.1\bin\paraview.exe --data="case.foam"

BUt this doesn't work.

->
Or how can I create the .foam file myself?
tH3f0rC3 is offline   Reply With Quote

Old   December 1, 2011, 09:10
Default
  #12
Senior Member
 
Join Date: Mar 2011
Posts: 155
Rep Power: 6
tH3f0rC3 is on a distinguished road
An extract from the link you posted:

Paraview should be installed in, or copied to, one of the following folders, according to the versions installed (these are only some of the possible versions):
ThirdParty-1.7.0\platforms\linuxmingw32\paraview-3.8.0
ThirdParty-1.7.0\platforms\linuxmingw-w32\paraview-3.8.0

ThirdParty-1.7.0\platforms\linuxmingw-w64\paraview-3.8.0

This is exactly the thing I havn't done up to now, because I don't have such directories. And I can't find out where the parafoam.bat searches for the paraview.exe


The source code of parafoam.bat:
echo.>case.foam
start paraview.exe --data="case.foam"


Best Regards
tH3f0rC3 is offline   Reply With Quote

Old   December 1, 2011, 15:47
Default
  #13
Super Moderator
 
Bruno Santos
Join Date: Mar 2009
Location: Lisbon, Portugal
Posts: 8,318
Blog Entries: 34
Rep Power: 84
wyldckat is just really nicewyldckat is just really nicewyldckat is just really nicewyldckat is just really nice
Hi tH3f0rC3,

Quote:
Originally Posted by tH3f0rC3 View Post
echo.>case.foam
start D:\programs\paraview3.10.1\bin\paraview.exe --data="case.foam"

BUt this doesn't work.

->
Or how can I create the .foam file myself?
Uhm... it was right in front of you!?
Code:
echo.>case.foam
Run that on the command line at your simulation case and then you can open in ParaView!

It doesn't matter what the file contains, because ParaView only uses the file as a marker of the case to be opened.

Best regards,
Bruno
wyldckat is offline   Reply With Quote

Old   December 2, 2011, 09:36
Default
  #14
Senior Member
 
Join Date: Mar 2011
Posts: 155
Rep Power: 6
tH3f0rC3 is on a distinguished road
Perfect, thanks!
tH3f0rC3 is offline   Reply With Quote

Reply

Tags
already existing, already installed, moving, new user

Thread Tools
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 On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
unable to install openfoam 1.7 using apt-get maazhmd OpenFOAM Installation 7 July 24, 2011 11:18
OpenFoam User with experiance of OOFELIE elvis OpenFOAM 2 January 21, 2010 12:51
How to learn OpenFoam for a new user lzgwhy OpenFOAM 4 November 23, 2009 00:00
Is it better to create a user for openFOAM? Xwang OpenFOAM Installation 6 July 15, 2009 06:31
Run FOAM on a remote machine luckyluke OpenFOAM Installation 1 June 21, 2005 05:19


All times are GMT -4. The time now is 21:41.