Difference between revisions of "Extend-bazaar/Toolkits/ImmersedBoundary"
(→Install from the original source code on 1.6-ext) |
(Added brief instructions regarding how to use and documentation) |
||
Line 43: | Line 43: | ||
== Usage examples == | == Usage examples == | ||
− | + | There are 2 tutorial folders present in this toolkit: | |
+ | <ul> | ||
+ | <li>{{tt|tutorials}} which provides a set of tutorials by Zeljko Tukovic, with the following folders: | ||
+ | <pre>cavity | ||
+ | damBreakWithCylinder | ||
+ | flowOverCylinder | ||
+ | flowOverSphere | ||
+ | pitzDailyLaminar | ||
+ | pitzDailyLaminarSimpleIbFoam</pre> | ||
+ | </li> | ||
+ | <li>{{tt|tutorials_HJ}} provides a set of tutorials by Hrvoje Jasak, with the following folders: | ||
+ | <pre>cylBumpinterIbFoam | ||
+ | cylinderInChannelFineicoIbFoam | ||
+ | cylinderInChannelicoIbFoam | ||
+ | cylinderInChannelPotential | ||
+ | cylinderInChannelScalarTransport | ||
+ | cylinderInSquareLaplace | ||
+ | cylinderInSquarePotential | ||
+ | pitzDailyBodyFitted | ||
+ | pitzDailyLaminaricoIbFoam | ||
+ | pitzDailyLaminarsimpleIbFoam | ||
+ | pitzDailyTurbulentsimpleIbFoam | ||
+ | simpleSilencerLaminaricoIbFoam | ||
+ | sphereInChannel | ||
+ | thickPlateRefinedMesh</pre> | ||
+ | </li> | ||
+ | </ul> | ||
+ | |||
+ | To use them, simply go into the respective folder, e.g.: | ||
+ | <bash>cd tutorials/cavity/cavity</bash> | ||
+ | And run the script {{tt|Allrun}}: | ||
+ | <bash>./Allrun</bash> | ||
== Documentation == | == Documentation == | ||
− | + | Some documentation is available in the [http://www.openfoamworkshop.org/2012/downloads/Training/ZeljkoTukovic/ZeljkoTukovic-ImmersedBoundarySlides.tgz this presentation]. | |
Revision as of 17:44, 5 April 2014
Contents
1 Description
This toolkit was created by Zeljko Tukovic and Hrvoje Jasak, according to this presentation. The original source code is provided here: ZeljkoTukovic-ImmersedBoundaryMaterial.tgz
2 Installation
It depends on the origin from which you wish to download:
- From the original source code, follow the steps from this section: Install from the original source code on 1.6-ext
- From a git repository: Install from a Git repository on 1.6-ext
2.1 Install from the original source code on 1.6-ext
To download and install, run these commands:
mkdir -p $FOAM_RUN cd $FOAM_RUN/.. wget "http://www.openfoamworkshop.org/2012/downloads/Training/ZeljkoTukovic/ZeljkoTukovic-ImmersedBoundaryMaterial.tgz" tar -xzf ZeljkoTukovic-ImmersedBoundaryMaterial.tgz cd ImmersedBoundary tar -xzf ImmersedBoundary_HJ_ZT.tgz cd ImmersedBoundary_HJ_ZT/src ./Allwclean ./Allwmake
2.2 Install from a Git repository on 1.6-ext
To download and install, run these commands:
mkdir -p $FOAM_RUN cd $FOAM_RUN/.. git clone git@github.com:wyldckat/ImmersedBoundary.git ImmersedBoundary cd ImmersedBoundary/src ./Allwmake
Note: If you have problems using git to clone from the official repository, then try these mirrors:
- wyldckat's ImmersedBoundary repository at Github - you can use any of the following commands:
git clone git@github.com:wyldckat/ImmersedBoundary.git ImmersedBoundary git clone https://github.com/wyldckat/ImmersedBoundary.git ImmersedBoundary
3 Usage examples
There are 2 tutorial folders present in this toolkit:
- tutorials which provides a set of tutorials by Zeljko Tukovic, with the following folders:
cavity damBreakWithCylinder flowOverCylinder flowOverSphere pitzDailyLaminar pitzDailyLaminarSimpleIbFoam
- tutorials_HJ provides a set of tutorials by Hrvoje Jasak, with the following folders:
cylBumpinterIbFoam cylinderInChannelFineicoIbFoam cylinderInChannelicoIbFoam cylinderInChannelPotential cylinderInChannelScalarTransport cylinderInSquareLaplace cylinderInSquarePotential pitzDailyBodyFitted pitzDailyLaminaricoIbFoam pitzDailyLaminarsimpleIbFoam pitzDailyTurbulentsimpleIbFoam simpleSilencerLaminaricoIbFoam sphereInChannel thickPlateRefinedMesh
To use them, simply go into the respective folder, e.g.:
cd tutorials/cavity/cavity
And run the script Allrun:
./Allrun
4 Documentation
Some documentation is available in the this presentation.
4.1 Creating new solvers that use this toolkit
Transcript from the instructions present in the file src/SOLVER_COOKBOOK, documenting the procedure for creating new solvers that use this toolkit:
Make/options: add -I$(LIB_SRC)/triSurface/lnInclude \ -I$(LIB_SRC)/meshTools/lnInclude \ -I../immersedBoundary/lnInclude -ltriSurface \ -lmeshTools \ -L$(FOAM_USER_LIBBIN) -limmersedBoundary \ createFields.H: add # include "createIbMasks.H" solver: 1) add immersed boundary headers #include "immersedBoundaryFvPatch.H" #include "immersedBoundaryAdjustPhi.H" 2) on calculation of face fluxes (or their components), mask with faceIbMask 3) before to adjustPhi, add: // Adjust immersed boundary fluxes immersedBoundaryAdjustPhi(phi, U); 4) on explicit updates, add correctBoundaryConditions(); eg. U = fvc::reconstruct(phi); U.correctBoundaryConditions(); 5) On reports of continuity error, add masking: Info<< "IB-masked continuity error = " << mag(cellIbMask*fvc::div(phi))().weightedAverage(mesh.V()).value() << endl; or use immersedBoundaryContinuityErrs.H 5) Chenge Courant number check to be IB-sensitive, using immersedBoundaryCourantNo.H
5 Discussion threads
Here is a list of known discussion threads regarding this toolkit:
- Is Immersed Boundary Method already available in OF 2.1.x or 2.2.x
- Immersed Boundary Cylinder Tutorial using IcoIbFoam application
6 History
19:16, 5 April 2014 (CEST): Kicked off this page, since it was nowhere to be found on the wiki.