
[Sponsors] 
MY VALIDATION RESULTS (NONNEWTONIAN FLUID)  with pictures and graphs 

LinkBack  Thread Tools  Display Modes 
November 28, 2014, 10:08 
MY VALIDATION RESULTS (NONNEWTONIAN FLUID)  with pictures and graphs

#1 
Member
vitor spadeto
Join Date: Nov 2014
Posts: 51
Rep Power: 4 
Hello Friends, My present results of validation blood flow (nonNewtonian) using the model BirdCarreau viscosity (selected in transportProperties) are:
The scientific paper profiles compared with my profiles are: vertical profile: horizontal profile: (the graph above is inverted) It can be seen in greater rounding my results. The profiles are very different. What's going on? I am missing some parameter or the OpenFOAM is not able to simulate the precision of scientific paper? I found it very far these results: / The adopted parameters are of a paper where it adopts the following properties:  Laminar;  Reynolds < 500;  Nonnewtonian;  tetraedrical mesh (CHECKMESH gives "Mesh OK"); my mesh: paper viscosity model: Note: I just modified the BirdCarreau viscosity model. I changed the value of "a" viscosity (above). OpenFOAM inserts a= 2 as standard and I needed a=0.644 as described above in the paper). The procedure I did was just change the value of "a" constant in BirdCarreau.C, I saved the changes and directory of BirdCarreau.C typed "wmake libso" which gave the following result (which I think is ok): Code:
a@aAspireV3571:/opt/openfoam230/src/transportModels/incompressible/viscosityModels/BirdCarreau$ wmake libso wmake: 'Make' directory does not exist in /opt/openfoam230/src/transportModels/incompressible/viscosityModels/BirdCarreau Searching up directories tree for Make directory Found target directory ./../.. Making dependency list for source file viscosityModels/BirdCarreau/BirdCarreau.C SOURCE=viscosityModels/BirdCarreau/BirdCarreau.C ; g++ m64 Dlinux64 DWM_DP Wall Wextra Wnounusedparameter Woldstylecast Wnonvirtualdtor O3 DNoRepository ftemplatedepth100 I.. I../twoPhaseMixture/lnInclude I/opt/openfoam230/src/finiteVolume/lnInclude IlnInclude I. I/opt/openfoam230/src/OpenFOAM/lnInclude I/opt/openfoam230/src/OSspecific/POSIX/lnInclude fPIC c $SOURCE o Make/linux64GccDPOpt/BirdCarreau.o '/opt/openfoam230/platforms/linux64GccDPOpt/lib/libincompressibleTransportModels.so' is up to date. a@aAspireV3571:/opt/openfoam230/src/transportModels/incompressible/viscosityModels/BirdCarreau$ Code:
transportModel BirdCarreau; nu nu [ 0 2 1 0 0 0 0 ] 3e06; BirdCarreauCoeffs { nu0 nu0 [ 0 2 1 0 0 0 0 ] 1.560283688e05; //μ0 = 0.022 Pa.s >> divided by density of 1410 kg/s = 1.56e05 nuInf nuInf [ 0 2 1 0 0 0 0 ] 1.560283688e06;//μ∞ = 0.0022 Pa.s >> divided by density of 1410 kg/s = 1.56e06 k k [ 0 0 1 0 0 0 0 ] 0.11;// k = 0.11 Seconds n n [ 0 0 0 0 0 0 0 ] 0.392; //n= 0.392 } U file: Code:
dimensions [0 1 1 0 0 0 0]; internalField uniform (0 0 0); boundaryField { inlet_host { type fixedValue; value uniform (0.04284 0 0); } inlet_graft { type fixedValue; value uniform (0.0905 0 0.0905); } outlet { type zeroGradient; } wall { type fixedValue; value uniform (0 0 0); } } Code:
dimensions [0 2 2 0 0 0 0]; internalField uniform 0; boundaryField { inlet_host { type zeroGradient; } inlet_graft { type zeroGradient; } outlet { type fixedValue; value uniform 0; } wall { type zeroGradient; } } RASproperties: Code:
RASModel laminar; turbulence off; printCoeffs on; Code:
ddtSchemes { default steadyState; } gradSchemes { default Gauss linear; } divSchemes { default none; div(phi,U) bounded Gauss upwind; div(phi,k) bounded Gauss upwind; div(phi,epsilon) bounded Gauss upwind; div(phi,R) bounded Gauss upwind; div(R) Gauss linear; div(phi,nuTilda) bounded Gauss upwind; div((nuEff*dev(T(grad(U))))) Gauss linear; } laplacianSchemes { default Gauss linear corrected; } interpolationSchemes { default linear; } snGradSchemes { default corrected; } fluxRequired { default no; p ; } Code:
solvers { p { solver GAMG; tolerance 1e08; relTol 0.1; smoother GaussSeidel; nPreSweeps 0; nPostSweeps 2; cacheAgglomeration on; agglomerator faceAreaPair; nCellsInCoarsestLevel 10; mergeLevels 1; } "(UkepsilonRnuTilda)" { solver smoothSolver; smoother symGaussSeidel; tolerance 1e07; relTol 0.1; } } SIMPLE { nNonOrthogonalCorrectors 0; residualControl { p 1e5; U 1e6; "(kepsilonomega)" 1e6; } } relaxationFactors { fields { p 0.3; } equations { U 0.7; k 0.7; epsilon 0.7; R 0.7; nuTilda 0.7; } } Code:
application simpleFoam; startFrom latestTime; startTime 0; stopAt endTime; endTime 2000; deltaT 0.4; writeControl timeStep; writeInterval 800; purgeWrite 0; writeFormat ascii; writePrecision 6; writeCompression off; timeFormat general; timePrecision 6; runTimeModifiable true; Where is the error? Best Regards, Vitor Spadeto Venturin 

November 28, 2014, 10:27 

#2 
Member
vitor spadeto
Join Date: Nov 2014
Posts: 51
Rep Power: 4 
Someone help me? I desire so much to validate that simulation... is a blood flow


November 28, 2014, 10:53 

#3 
Member
vitor spadeto
Join Date: Nov 2014
Posts: 51
Rep Power: 4 
I share with you my case simulation..
HTML Code:
http://www.filedropper.com/1p5dq34 

November 28, 2014, 13:14 

#4 
Member
vitor spadeto
Join Date: Nov 2014
Posts: 51
Rep Power: 4 
checkMesh gives OK:
Code:
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // Create time Create polyMesh for time = 0 Time = 0 Mesh stats points: 142741 faces: 1484913 internal faces: 1412843 cells: 724439 faces per cell: 4 boundary patches: 4 point zones: 0 face zones: 0 cell zones: 0 Overall number of cells of each type: hexahedra: 0 prisms: 0 wedges: 0 pyramids: 0 tet wedges: 0 tetrahedra: 724439 polyhedra: 0 Checking topology... Boundary definition OK. Cell to face addressing OK. Point usage OK. Upper triangular ordering OK. Face vertices OK. Number of regions: 1 (OK). Checking patch topology for multiply connected surfaces... Patch Faces Points Surface topology inlet_host 430 241 ok (nonclosed singly connected) inlet_graft 380 216 ok (nonclosed singly connected) wall 70844 35497 ok (nonclosed singly connected) outlet 416 235 ok (nonclosed singly connected) Checking geometry... Overall domain bounding box (0.03 0.0015 0.0015) (0.03 0.0015 0.0260563) Mesh (nonempty, nonwedge) directions (1 1 1) Mesh (nonempty) directions (1 1 1) Boundary openness (4.95962e17 4.0039e17 3.44229e16) OK. Max cell openness = 2.55702e16 OK. Max aspect ratio = 4.99948 OK. Minimum face area = 2.70255e09. Maximum face area = 5.70468e08. Face area magnitudes OK. Min volume = 8.05461e14. Max volume = 4.19327e12. Total volume = 6.48978e07. Cell volumes OK. Mesh nonorthogonality Max: 65.888 average: 14.4021 Nonorthogonality check OK. Face pyramids OK. Max skewness = 0.650632 OK. Coupled point location match (average 0) OK. Mesh OK. 

November 30, 2014, 11:21 
Blood Validation> Final Results

#5 
Member
vitor spadeto
Join Date: Nov 2014
Posts: 51
Rep Power: 4 
Friends I runned a simulation in order to validate it. I will appreciate if you gives your opinion to improve accuracy. My results already are good, but can improve more through fvschemes and fvsolution.
http://www.filedropper.com/jbiomech2006b (this is an important paper) And This is my description and goals:my_simulation.txt This is part of my college work. Thank you for attention Last edited by vitorspadetoventurin; November 30, 2014 at 13:34. 

November 30, 2014, 13:29 

#6 
Member
vitor spadeto
Join Date: Nov 2014
Posts: 51
Rep Power: 4 
I forgot the case.. Here is it:
http://www.filedropper.com/showdownload.php/sendfalko 

December 2, 2014, 06:14 

#7 
Senior Member
Albrecht vBoetticher
Join Date: Aug 2010
Location: Zürich, Swizerland
Posts: 212
Rep Power: 9 
Hi,
in "Numerical investigation of inertia and shearthinning effects in axisymmetric flows of carreau fluids by a galerkin leastsquares method", Lat. Am. appl. res. from October 2008 they quote Neofytou (2005) to have used the SIMPLE pressure corrector step together with QUICK difference scheme. Maybe that is necessary. I have only one thing to add: As soon as the viscosity is shearrate dependend, things become strongly grid dependent so you should make shure that your grid resolution vertical to the flow direction is the same as in your comparison paper. And if your flow is not steady state, it becomes timestep dependent, too, because since your viscosity changes with velocity, and your velocity profile depends on viscosity, you can amplify errors. One thing popular with turbulence modelling, where the turbulent part of the viscosity makes your viscosity flow dependent, is to introduce an outer loop, "nOuterCorrectors" in the PIMPLE loop in fvSolution dictionary. Maybe that exists for your solver, too. And keeping Courant number below 0.5 may help, too. (controlDict) I implemented an iterative step, where the viscosity is calculated at the beginning of the time step, and again at the end, and then the time step is performed again with an averaged viscosity, but still dambreak simulations with interFOAM are heavily timestep and grid dependent. So, I think, you need to get the mesh and timestep the same as in the paper. 

December 2, 2014, 07:28 

#8 
Member
vitor spadeto
Join Date: Nov 2014
Posts: 51
Rep Power: 4 
thank for attention friend... I have other case (from the same validation paper)....residuals are +/ (e06), but in this case... did not converged...... Can you take a look in order to improve results(if possible for you)?
http://www.filedropper.com/forumcase2dq12 really thanks! (Don't need simulate again.. just take a look in fvschemes and fvsolution.) 

December 8, 2014, 09:26 

#9 
Senior Member
Olivier
Join Date: Jun 2009
Location: France, grenoble
Posts: 266
Rep Power: 10 
Hello,
Just to say that, if i remeber corectly, you don't have to make a custom carreau viscosity model. In OF carreau model, a=2 by default, but just add a=0.6 in your transportProperties file, and the new "a" value will be taken into account. PS: use 2nd order scheme also instead of Gauss upwind. Regards, olivier 

Thread Tools  
Display Modes  

