Difference between revisions of "User:Bfiedler/DraftCoriolisForce"

From OpenFOAMWiki
(Created page with " cd $WM_PROJECT_USER_DIR/applications/solvers ls -l cd my_tornado if you have this file, delete it: rm buoyantBoussinesqPimpleFoam.dep cd Make If you have this director...")
 
(Ready to run)
 
(9 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
   
 
   
 +
=== Copy  Some  Source Code ===
  
 +
if you do not yet have a solver directory in $WM_PROJECT_USER_DIR ,  create it:
 +
 +
mkdir $WM_PROJECT_USER_DIR/applications/solvers
 +
 +
Copy the original tutorial code for  buoyantBoussinesqPimpleFoam  into your solver directory, renaming it to my_tornado:
 +
 +
cd $FOAM_SOLVERS
 +
cd heatTransfer
 +
cp -r buoyantBoussinesqPimpleFoam  $WM_PROJECT_USER_DIR/applications/solvers/my_tornado
 +
 +
With this code in its new location, we need to copy a file that was shared in the the previous location:
 +
 +
cp buoyantBoussinesqSimpleFoam/readTransportProperties.H  $WM_PROJECT_USER_DIR/applications/solvers/my_tornado/.
 +
 +
Check that the code compiles in its new location:
 
  cd $WM_PROJECT_USER_DIR/applications/solvers
 
  cd $WM_PROJECT_USER_DIR/applications/solvers
 
  ls -l
 
  ls -l
Line 14: Line 30:
  
 
  my_tornado.C
 
  my_tornado.C
 
+
   
 
  EXE = $(FOAM_APPBIN)/my_tornado
 
  EXE = $(FOAM_APPBIN)/my_tornado
 
  
 
  cd ..
 
  cd ..
 
  wmake
 
  wmake
  
You may get a few warning.  But if all has went wall you see the app my_tornado (though without any ability yet to make a tornado) :
+
You may get a few warnings.  But hopefully  you will see a new  app my_tornado (though without any ability yet to make a tornado) :
  
 
  ls $FOAM_USER_APPBIN
 
  ls $FOAM_USER_APPBIN
 +
 +
Next we add the capabiltiy to make the tornado.
 +
 +
=== Add the Coriolis Force ===
 +
 +
Add a single line UEqn.H, so that the top of the file is:
 +
 +
<pre>    // Solve the momentum equation
 +
 +
    fvVectorMatrix UEqn
 +
    (
 +
        fvm::ddt(U)
 +
      + fvm::div(phi, U)
 +
      + turbulence->divDevReff(U)
 +
      + (2*myVector ^ U) // Coriolis force
 +
    );</pre>
 +
 +
 +
Add one line to the end of readTransportProperties.H
 +
 +
dimensionedVector myVector(laminarTransport.lookup("myVector"));
 +
 +
Then recompile
 +
wmake
 +
 +
=== Prepare the Run Directory ===
 +
 +
cd $FOAM_RUN/tutorials/heatTransfer
 +
 +
cp -r buoyantBoussinesqPimpleFoam/hotRoom $FOAM_RUN/my_tornado
 +
 +
We consolidate some code that were separate in the original tutorial structure:
 +
cp -r buoyantPimpleFoam/hotRoom/setHotRoom $FOAM_RUN/my_tornado/.
 +
 +
cd $FOAM_RUN/my_tornado
 +
./Allclean
 +
ls
 +
 +
You should see something like this:
 +
0/  Allclean*  Allrun*  constant/  setHotRoom/  system/
 +
 +
Edit Allrun so that the compileApplication line is simply:
 +
 +
compileApplication setHotRoom
 +
 +
Now we need to specify myVector, which we will use as the rotation vector in the calculation of the Coriolis force:
 +
 +
cd constant
 +
 +
Edit transportProperties near the end to include this line:
 +
 +
myVector myVector [0 0 -1 0 0 0 0] (0 0.001 0);
 +
 +
Then
 +
 +
cd ..
 +
 +
A quick way to proceed is to do:
 +
 +
./Allrun
 +
 +
After about 20 seconds of CPU time, the run should finish.  Now you should be apple to view the results with paraFoam.
 +
Note the log files.
 +
 +
If you want to experience the details that were scripted by Allrun, do this instead:
 +
 +
cd setHotRoom
 +
wmake
 +
 +
This should reveal a new app setHotRoom:
 +
ls $FOAM_USER_APPBIN
 +
 +
cd ..
 +
setHotRoom
 +
blockMesh
 +
my_tornado

Latest revision as of 20:44, 22 January 2011

1 Copy Some Source Code

if you do not yet have a solver directory in $WM_PROJECT_USER_DIR , create it:

mkdir $WM_PROJECT_USER_DIR/applications/solvers

Copy the original tutorial code for buoyantBoussinesqPimpleFoam into your solver directory, renaming it to my_tornado:

cd $FOAM_SOLVERS
cd heatTransfer
cp -r buoyantBoussinesqPimpleFoam  $WM_PROJECT_USER_DIR/applications/solvers/my_tornado

With this code in its new location, we need to copy a file that was shared in the the previous location:

cp buoyantBoussinesqSimpleFoam/readTransportProperties.H  $WM_PROJECT_USER_DIR/applications/solvers/my_tornado/.

Check that the code compiles in its new location:

cd $WM_PROJECT_USER_DIR/applications/solvers
ls -l
cd my_tornado

if you have this file, delete it:

rm buoyantBoussinesqPimpleFoam.dep
cd Make

If you have this directory, then delete it:

rm -rf linux64GccDPOpt

and edit the file named "files" to this:

my_tornado.C
   
EXE = $(FOAM_APPBIN)/my_tornado
cd ..
wmake

You may get a few warnings. But hopefully you will see a new app my_tornado (though without any ability yet to make a tornado) :

ls $FOAM_USER_APPBIN

Next we add the capabiltiy to make the tornado.

2 Add the Coriolis Force

Add a single line UEqn.H, so that the top of the file is:

    // Solve the momentum equation

    fvVectorMatrix UEqn
    (
        fvm::ddt(U)
      + fvm::div(phi, U)
      + turbulence->divDevReff(U)
      + (2*myVector ^ U) // Coriolis force
    );


Add one line to the end of readTransportProperties.H

dimensionedVector myVector(laminarTransport.lookup("myVector"));

Then recompile

wmake

3 Prepare the Run Directory

cd $FOAM_RUN/tutorials/heatTransfer
cp -r buoyantBoussinesqPimpleFoam/hotRoom $FOAM_RUN/my_tornado

We consolidate some code that were separate in the original tutorial structure:

cp -r buoyantPimpleFoam/hotRoom/setHotRoom $FOAM_RUN/my_tornado/.
cd $FOAM_RUN/my_tornado
./Allclean
ls

You should see something like this:

0/  Allclean*  Allrun*  constant/  setHotRoom/  system/

Edit Allrun so that the compileApplication line is simply:

compileApplication setHotRoom

Now we need to specify myVector, which we will use as the rotation vector in the calculation of the Coriolis force:

cd constant

Edit transportProperties near the end to include this line:

myVector myVector [0 0 -1 0 0 0 0] (0 0.001 0);

Then

cd ..

A quick way to proceed is to do:

./Allrun

After about 20 seconds of CPU time, the run should finish. Now you should be apple to view the results with paraFoam. Note the log files.

If you want to experience the details that were scripted by Allrun, do this instead:

cd setHotRoom
wmake

This should reveal a new app setHotRoom:

ls $FOAM_USER_APPBIN
cd ..
setHotRoom
blockMesh
my_tornado