CFD_FOAM
Open in Telegram
Contact Me: @NimaSamkhaniani Follow Me: https://linktr.ee/nimasamkhaniani
Show more1 533
Subscribers
No data24 hours
No data7 days
+130 days
Posts Archive
1 533
🔴 Install foam-extend-4.1 on ubuntu 22.04
1- follow instruction from here:
https://openfoamwiki.net/index.php/Installation/Linux/foam-extend-4.1
2- you may need install some packages such as:
sudo apt-get install rpm hg git
make sure all stages in the ThirdParty compilation is successful
3-if you get error for UList for PackedBoolList, it is related to GCC version, can be handled based on following link:
https://sourceforge.net/p/foam-extend/tickets/68/
or go to file PackedList.H (foam-extend-4.1/src/foam/containers/Lists/PackedList/PackedList.H) and change the line 150
from
private List<unsigned int>
to
public List<unsigned int>
#openfoam4.1
1 533
🔴 آموزش آنلاین اپنفوم ( مقدماتی)
فرم ثبت نام و اطلاعات کارگاه:
https://forms.gle/J5S81yWdxNpz6kwYA
اطلاعات تکمیلی:
https://t.me/+iFCzPT7kGLE1MDQ0
شروع کارگاه: ۳۰ شهریور
1 533
🔴 Visualize water-like free surface flow
https://www.linkedin.com/posts/nima-samkhaniani_openfoam-thin-plate-triangular-weir-activity-7100841332251709441-LsaV?utm_source=share&utm_medium=member_desktop
1 533
🔴 Changes and Settings for Standard Turbulence Model Implementation in
OpenFOAM
#turbulenceModel
https://turbmodels.larc.nasa.gov/Papers/ChangesToOpenFOAM.pdf
1 533
🔴 install salome 9.11 on ubuntu 22.04
1- download the binary file from:
https://www.salome-platform.org/?page_id=2430
2-extract the zip file
3-export the path in .bashrc e.g:
export PATH="/home/sam/Programs/SALOME-9.11.0/SALOME-9.11.0-native-UB22.04-SRC/:$PATH"
4-install the required libraries:
sudo apt-get install libcdt5 libcgraph6 libgvc6 libqwt-qt5-6 libtbb12 libfreeimage3 libcminpack1
pip3 install PyQt5
1 533
🔴 using if statement in OpenFOAM test-cases:
#ifeq $FOAM_APPLICATION decomposePar
method scotch;
#else
method hierarchical;
coeffs
{
n (5 2 1);
}
#endif
1 533
🔴How to add your binary (executable) files path into Linux terminal
1- see the list of current PATH
echo $PATH
2- Add to the .bashrc, the address of your binary files:
export PATH="/path to the binary file/:$PATH"
e.g. for the paraview, binary files are located in the following address:
/opt/paraviewopenfoam56/bin, then:
export PATH="/opt/paraviewopenfoam56/bin/:$PATH"
3- Open new terminal, now you can access the binary files from linux terminal
1 533
🔴 How to write and store a registered objects:
1- find the list of registered objects: e.g. here we want to know the list of registered objects for solver driftFluxFoam.
driftFluxFoam -postProcess -func "writeObjects(banana)"
2- add writeObjects function into controlDict dictionary: e.g here we want to write the data for Udm
functions {
Us
{
type writeObjects;
functionObjectLibs ("libutilityFunctionObjects.so");
writeControl outputTime;
writeInterval 1;
objects
(
"Udm"
);
}
}
#writeObjects #registeredObjects
1 533
🔴 How To Install BLAS/LAPACK in Ubuntu 20.04 LTS
https://www.youtube.com/watch?v=YFcETdYO8aw
🔴 How to Install PETSc in Ubuntu 20.04 LTS
https://www.youtube.com/watch?v=ZYaus058rf0
1 533
🔴 Fish passage simulation
✴️ keep the water level constant
✴️ reduce the air velocity in free surface simulation! (manipulation)
https://www.linkedin.com/posts/nicolas-diego-badano_openfoam-github-cfd-ugcPost-7028680733426597888-VgEC
code:
https://github.com/nicolasbadano/fishpassage
1 533
🔴 How to install doxygen when OpenFOAM is intalled in Opt
#doxygen
1- change access to the root:
sudo -i
2- go to doxygen directory:
cd /opt/openfoam8/doc/Doxygen
3- source the .bashrc file to load environment variables:
source ../../etc/bashrc
4- then compile the code, the compilation takes several minutes
./Allwmake
5- After compilation, exit the root profile
exit
To use the doxygen, then run open the index.html with firefox or any web browser software.
or you can add the following in the .bashrc:
alias of8_doxygen='cd /opt/openfoam8/doc/Doxygen && firefox html/index.html'
Then you can recall it from the terminal using the command:
of8_doxygen
1 533
🔴Turbulence Models
source:
https://personalpages.manchester.ac.uk/staff/david.d.apsley/turbmod.pdf
1 533
some swak4Foam utilities:
🔴groovyBC: write a new mixed-BC
🔴replayTransientBC Utility to quickly test whether a groovyBC gives the expected results
- add replayTransientBCDict to system directory, then run:
replayTransientBC
🔴 fieldReport: return some packed information about the field e.g max/min/average
fieldReport U -latestTime
fieldReport U -time 100:
🔴 funkySetField:
1- apply non-uniform initial condition with option -time 0
2- employed to do post-processing using option -create, create new field from saved data. e.g
calcFahrenheit
{
field TFahrenheit;
create true;
expression "T*9/5 -459.67";
valuePatches ( frontAndBack hot cold topAndBottom);
dimension [0 0 0 1 0];
//aliases {mu thermo:mu;};
}
🔴 funkySetBoundaryField: to apply non-uniform BC for specific patch e.g.
the inletOutlet condition looks like that:
type inletOutlet;
phi phi;
inletValue uniform 0;
value uniform 0;
then using funkySetBoundaryField, you can apply a non-uniform inletValue. for that you need to provide a funkySetBoundaryDict in system directory
test
{
field U;
expressions
(
{
target inletOutlet;
patchName outlet;
variables (
"Ymax=max(pts().y);"
"Ymin=min(pts().y);"
"h=(Ymax+Ymin)/2;"
);
expression "pos().y > h ? vector(0,0,0) : vector(1,0,0)";
}
);
}
🔴 writeBoundarySubfields : test the above functionality , so it return the non-uniform field as a separate field which can be visualized in the para-view e.g
writeBoundarySubfields -time 0 -subfields "inletValue:vector" U
🔴 expressionField: returns a run-time new field
viscousDissipation
{
type expressionField;
fieldName viscousDissipation;
expression "mu*(grad(U) && grad(U))";
verbose true;
autowrite true;
dimension [0 2 -2 0 0 0 0]; //check
aliases {mu thermo:mu;};
}
🔴 readAndUpdateFields with the aid of groovyBC can be used to calculate new fields. example:
- add new field e.g. heatFlux in 0 directory with appropriate groovyBC expression.
...
"(hot|cold)"
{
type groovyBC;
//variables "k=10;";
valueExpression "k*snGrad(T)";
value uniform 307.75; // 34.6 degC
}
...
then add this function into controlDict
readHeatFlux
{
type readAndUpdateFields;
fields (
heatFlux
);
writeControl timeStep;
writeInterval 1;
correctBoundary no;
}
🔴 listRegisteredObjects : returns the list of object which can be accessed on the run-time.
whatIsThere {
type listRegisteredObjects;
}
#swak4Foam
