Difference between revisions of "Extend-bazaar/Toolkits/ImmersedBoundary"
(→Install from a Git repository on 1.6-ext: Added subsection "Install from a Git repository on foam-extend 3.1") |
(→Installation: Forgot to add foam-extend 4.0 to the list of versions where it already exists) |
||
(7 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
== Description == | == Description == | ||
− | This toolkit was created by Zeljko Tukovic and Hrvoje Jasak, according to [http:// | + | This toolkit was created by Zeljko Tukovic and Hrvoje Jasak, according to [http://sourceforge.net/projects/openfoam-extend/files/OpenFOAM_Workshops/OFW7_2012_Darmstadt/Training/ZeljkoTukovic/ZeljkoTukovic-ImmersedBoundarySlides.tgz this presentation]. The original source code is provided here: [http://sourceforge.net/projects/openfoam-extend/files/OpenFOAM_Workshops/OFW7_2012_Darmstadt/Training/ZeljkoTukovic/ZeljkoTukovic-ImmersedBoundaryMaterial.tgz ZeljkoTukovic-ImmersedBoundaryMaterial.tgz] |
+ | There are at least two other implementations of Immersed Boundary Method for OpenFOAM: | ||
+ | * This code was adapted and further extended by ICONCFD, but it does not seem to have been made available to the public: [https://www.researchgate.net/publication/279717854_Implementation_of_a_moving_immersed_boundary_method_on_a_dynamically_refining_mesh_with_automatic_load_balancing Implementation of a moving immersed boundary method on a dynamically refining mesh with automatic load balancing] | ||
+ | ** Before this publication was made, there was the following discussion thread: [https://www.cfd-online.com/Forums/openfoam-solving/131488-immersed-boundary-cylinder-tutorial-using-icoibfoam-application.html#post483505 Immersed Boundary Cylinder Tutorial using IcoIbFoam application - start reading from post #4] | ||
+ | * The CFDEM project has a solver: [https://github.com/CFDEMproject/CFDEMcoupling-PUBLIC/tree/master/applications/solvers/cfdemSolverIB cfdemSolverIB in CFDEMcoupling at GitHub] | ||
+ | ** Installation instructions are available here: [https://www.cfdem.com/media/CFDEM/docu/CFDEMcoupling_Manual.html#installation CFDEMcoupling Manual - Section 'Installation'] | ||
+ | * See also a community contributed solver for 2D flow: [[Contrib/IBSBM:_Immersed-Boundary_Suspension_Solver]] | ||
== Installation == | == Installation == | ||
− | {{versionInfo}}{{version1.6-ext}} | + | {{versionInfo}}{{version1.6-ext}}{{version3.1-ext}}{{version3.2-ext}}{{version4.0-ext}} |
− | + | As of foam-extend 3.2, this toolkit is integrated into foam-extend and has been considerably improved. At the time of this writing (11:15, 5 September 2015 (CEST)) foam-extend 3.2 wasn't officially released yet, but instructions on how to get the pre-release version can be found here: [http://www.cfd-online.com/Forums/openfoam-installation/157770-foam-windows-linux-mac.html FOAM on Windows, Linux and Mac] | |
− | + | ||
− | + | ||
+ | As for previous versions of foam-extend, 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|Install from the original source code on 1.6-ext]] | ||
+ | * From a git repository: | ||
+ | ** [[#Install from a Git repository on 1.6-ext|Install from a Git repository on 1.6-ext]] | ||
+ | ** [[#Install from a Git repository on foam-extend 3.1|Install from a Git repository on foam-extend 3.1]] | ||
=== Install from the original source code on 1.6-ext === | === Install from the original source code on 1.6-ext === | ||
Line 15: | Line 24: | ||
<bash>mkdir -p $FOAM_RUN | <bash>mkdir -p $FOAM_RUN | ||
cd $FOAM_RUN/.. | cd $FOAM_RUN/.. | ||
− | wget "http:// | + | wget "http://sourceforge.net/projects/openfoam-extend/files/OpenFOAM_Workshops/OFW7_2012_Darmstadt/Training/ZeljkoTukovic/ZeljkoTukovic-ImmersedBoundaryMaterial.tgz" |
tar -xzf ZeljkoTukovic-ImmersedBoundaryMaterial.tgz | tar -xzf ZeljkoTukovic-ImmersedBoundaryMaterial.tgz | ||
cd ImmersedBoundary | cd ImmersedBoundary | ||
Line 97: | Line 106: | ||
== Documentation == | == Documentation == | ||
− | Some documentation is available in [http:// | + | Some documentation is available in [http://sourceforge.net/projects/openfoam-extend/files/OpenFOAM_Workshops/OFW7_2012_Darmstadt/Training/ZeljkoTukovic/ZeljkoTukovic-ImmersedBoundarySlides.tgz this presentation]. |
Quoting from post #11 on the thread [http://www.cfd-online.com/Forums/openfoam/124472-immersed-boundary-method-already-available-2-1-x-2-2-x.html#post459040 Is Immersed Boundary Method already available in OF 2.1.x or 2.2.x]: | Quoting from post #11 on the thread [http://www.cfd-online.com/Forums/openfoam/124472-immersed-boundary-method-already-available-2-1-x-2-2-x.html#post459040 Is Immersed Boundary Method already available in OF 2.1.x or 2.2.x]: | ||
Line 156: | Line 165: | ||
== Discussion threads == | == Discussion threads == | ||
Here is a list of known discussion threads regarding this toolkit: | Here is a list of known discussion threads regarding this toolkit: | ||
− | * [ | + | * [https://www.cfd-online.com/Forums/openfoam-community-contributions/124472-immersed-boundary-method-already-available-2-1-x-2-2-x.html#post459040 Is Immersed Boundary Method already available in OF 2.1.x or 2.2.x] |
− | * [ | + | * [https://www.cfd-online.com/Forums/openfoam-community-contributions/131488-immersed-boundary-cylinder-tutorial-using-icoibfoam-application.html Immersed Boundary Cylinder Tutorial using IcoIbFoam application] |
− | + | * [https://www.cfd-online.com/Forums/openfoam-community-contributions/141321-immersed-boundary-method-openfoam-3-1-ext.html Immersed Boundary Method in OpenFOAM-3.1-ext] | |
+ | * For other threads on the topic of ''[ImmersedBoundary]'', see [https://www.cfd-online.com/Forums/openfoam-community-contributions/?pp=40&daysprune=-1&prefixid=openfoam_cc_immersedbound Threads in Forum 'OpenFOAM Community Contributions' with the prefix ''[ImmersedBoundary]''] | ||
== History == | == History == | ||
+ | |||
+ | 21:23, 7 April 2015 (CEST): Repaired links here on this wiki page. | ||
+ | |||
19:16, 5 April 2014 (CEST): Kicked off this page, since it was nowhere to be found on the wiki. | 19:16, 5 April 2014 (CEST): Kicked off this page, since it was nowhere to be found on the wiki. | ||
[[Category:Incomplete pages]] | [[Category:Incomplete pages]] |
Latest revision as of 23:04, 31 August 2018
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
There are at least two other implementations of Immersed Boundary Method for OpenFOAM:
- This code was adapted and further extended by ICONCFD, but it does not seem to have been made available to the public: Implementation of a moving immersed boundary method on a dynamically refining mesh with automatic load balancing
- Before this publication was made, there was the following discussion thread: Immersed Boundary Cylinder Tutorial using IcoIbFoam application - start reading from post #4
- The CFDEM project has a solver: cfdemSolverIB in CFDEMcoupling at GitHub
- Installation instructions are available here: CFDEMcoupling Manual - Section 'Installation'
- See also a community contributed solver for 2D flow: Contrib/IBSBM:_Immersed-Boundary_Suspension_Solver
2 Installation
As of foam-extend 3.2, this toolkit is integrated into foam-extend and has been considerably improved. At the time of this writing (11:15, 5 September 2015 (CEST)) foam-extend 3.2 wasn't officially released yet, but instructions on how to get the pre-release version can be found here: FOAM on Windows, Linux and Mac
As for previous versions of foam-extend, 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:
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://sourceforge.net/projects/openfoam-extend/files/OpenFOAM_Workshops/OFW7_2012_Darmstadt/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
2.3 Install from a Git repository on foam-extend 3.1
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 git checkout fe31 cd 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 this presentation.
Quoting from post #11 on the thread Is Immersed Boundary Method already available in OF 2.1.x or 2.2.x:
- Note that the IB method in OF-1.6-ext uses IBMask (0 - inside IB boundary, 1 - fluid domain) to calculate various fields (e.g. p. U), hence physical behaviour inside the immersed body is not solved.
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
- Immersed Boundary Method in OpenFOAM-3.1-ext
- For other threads on the topic of [ImmersedBoundary], see Threads in Forum 'OpenFOAM Community Contributions' with the prefix [ImmersedBoundary]
6 History
21:23, 7 April 2015 (CEST): Repaired links here on this wiki page.
19:16, 5 April 2014 (CEST): Kicked off this page, since it was nowhere to be found on the wiki.