Difference between revisions of "User:Bfiedler/DraftCoriolisForce"

From OpenFOAMWiki
Line 1: Line 1:
 
   
 
   
 +
=== copy  some  source code ===
 +
 
if you do not have a solver directory in $WM_PROJECT_USER_DIR do  
 
if you do not have a solver directory in $WM_PROJECT_USER_DIR do  
  
Line 10: Line 12:
 
  cp -r buoyantBoussinesqPimpleFoam  $WM_PROJECT_USER_DIR/applications/solvers/my_tornado
 
  cp -r buoyantBoussinesqPimpleFoam  $WM_PROJECT_USER_DIR/applications/solvers/my_tornado
  
cp -r buoyantBoussinesqPimpleFoam  $WM_PROJECT_USER_DIR/applications/solvers/my_tornado
+
In its new location, we need to copy a file that was shared in the the previous location:
  
  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/.
  cp - buoyantBoussinesqSimpleFoam/readTransportProperties.H  $WM_PROJECT_USER_DIR/applications/solvers/my_tornado/.
+
  cp buoyantBoussinesqSimpleFoam/readTransportProperties.H  $WM_PROJECT_USER_DIR/applications/solvers/my_tornado/.
 +
 +
  
 
  cd $WM_PROJECT_USER_DIR/applications/solvers
 
  cd $WM_PROJECT_USER_DIR/applications/solvers
Line 64: Line 68:
  
 
  cd $FOAM_RUN/tutorials/heatTransfer
 
  cd $FOAM_RUN/tutorials/heatTransfer
  cp -r buoyantBoussinesqPimpleFoam $FOAM_RUN/my_tornado
+
 
 +
 
 +
  cp -r buoyantBoussinesqPimpleFoam/hotRoom $FOAM_RUN/my_tornado
 +
cp -r buoyantPimpleFoam/hotRoom/setHotRoom $FOAM_RUN/my_tornado/.
 
  cd $FOAM_RUN/my_tornado
 
  cd $FOAM_RUN/my_tornado
 
  ./Allclean
 
  ./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
 +
 +
Then edit transportProperties near the end to include this line:
 +
 +
myVector myVector [0 0 -1 0 0 0 0] (0 0.001 0);
 +
 +
Then
 +
 +
cd ..
 +
./Allrun
 +
 +
After about 20 seconds of CPU time, the run should finish.  Now you should be apple to view the results with paraFoam.
 +
 +
If you want to experiment with a different magnitude of myVector, then you don't need to recompile or run setHotRoom.
 +
After editing transportProperties, you could do:
 +
 +
./AllClean
 +
blockMesh
 +
my_tornado

Revision as of 21:34, 10 January 2011

1 copy some source code

if you do not have a solver directory in $WM_PROJECT_USER_DIR do

mkdir $WM_PROJECT_USER_DIR/applications/solvers

get the original tutorial code for

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

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/.
cp buoyantBoussinesqSimpleFoam/readTransportProperties.H  $WM_PROJECT_USER_DIR/applications/solvers/my_tornado/.


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 your app my_tornado (though without any ability yet to make a tornado) :

ls $FOAM_USER_APPBIN

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 Ready to run

cd $FOAM_RUN/tutorials/heatTransfer


cp -r buoyantBoussinesqPimpleFoam/hotRoom $FOAM_RUN/my_tornado
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

Then edit transportProperties near the end to include this line:

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

Then

cd ..
./Allrun

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

If you want to experiment with a different magnitude of myVector, then you don't need to recompile or run setHotRoom. After editing transportProperties, you could do:

./AllClean
blockMesh
my_tornado