
[Sponsors] 
[solidMechanics] Support thread for "Solid Mechanics Solvers added to OpenFOAM Extend" 

LinkBack  Thread Tools  Search this Thread  Display Modes 
March 31, 2021, 01:38 

#601 
Senior Member
Hojatollah Gholami
Join Date: Jan 2019
Posts: 171
Rep Power: 7 
Dear All
I looked at foamextend4.1 and overset feature of solids4Foam. As it seen the overset tutorial with serial run is OK. But I want to know, does the code run with parallel simulation, if yes, How? Thanks 

March 31, 2021, 01:45 

#602 
Senior Member
alberto
Join Date: Apr 2016
Location: Mexico
Posts: 119
Rep Power: 10 
Yes, solids4foam can be used in parallel.
You have to use decomposePar region fluid decomposePar region solid Then.. mpirun np "cores" solids4foam parallel 

March 31, 2021, 02:19 

#603  
Senior Member
Hojatollah Gholami
Join Date: Jan 2019
Posts: 171
Rep Power: 7 
I have problem with parallel in overset tutorial. for example I use
decomposePar region fluid decomposePar region solid mpirun np 4 solids4foam parallel But, the run crush after checking Selecting dynamicFvMesh newSubsetMotionSolverFvMesh Quote:
Thanks It seen, the problem comes from subSetMotionSolver that not work with parallel. Can we use another dynamicMeshSolver in this case? Last edited by Hgholami; March 31, 2021 at 23:51. Reason: more detail 

June 8, 2021, 06:02 
Compiled Solids4foam on FE41, is solids4foam suppose to be slow?

#604 
Senior Member
Sultan Islam
Join Date: Dec 2015
Location: Canada
Posts: 141
Rep Power: 10 
Hello everyone,
So I succdsfully compiled both Fe41 and solids4foam on my Fedora 34 system after manually compiling gcc7.5 as well. Howver when I tried the hron turek laminar case I notice it takes a long time after 2 seconds, so the full 6 would take awhile. Is solids4foam not good on fe41? Unfortunately I have more issues installing fe40 than fe41. Everything works in fe41, even with its exit issue with gamg when used to solve for p, all solutions work. Fe40 can't compile due to failing on parmetis. I really hope solids4foam works as well on fe41 as fe40 xD 

June 8, 2021, 06:40 
Compiled Solids4foam on FE41, is solids4foam suppose to be slow?

#605 
Senior Member
Sita Drost
Join Date: Mar 2009
Location: Arnhem, The Netherlands
Posts: 227
Rep Power: 18 
Hi there,
Are you getting any warnings/errors when running this case? I haven't used solids4foam and foamextend for a while, but there used to be problems with foamextend4.1 and pisoFoam/pimpleFoam (one of which is used in the HronTurek Laminar case as far as I remember). See also this post (Cases diverging in foamextend4.1) and the links in it. If this is the problem you're running into, you may want to give installing fe40 another try. I vaguely remember having trouble compiling fe40 on CentOS and Ubuntu systems (the parmetis error you mention definitely sounds familiar...), but for the life of me I can't remember how I resolved this, really sorry. Did you use these instructions? Good luck, Sita 

June 8, 2021, 14:19 
I see..

#606  
Senior Member
Sultan Islam
Join Date: Dec 2015
Location: Canada
Posts: 141
Rep Power: 10 
Quote:
I did get to use fe40 before on centos7 but whenever I run any case with hierarchical or patchedConstraints decomposition, i get foam warning about not being able to load parmetisdecomp.so even though it exists xD. 

June 9, 2021, 02:23 
Compiled Solids4foam on FE41, is solids4foam suppose to be slow?

#607 
Senior Member
Sita Drost
Join Date: Mar 2009
Location: Arnhem, The Netherlands
Posts: 227
Rep Power: 18 
It could also simply be due to the fact that fluidsolid coupling is turned on at t = 2 s


June 9, 2021, 02:33 

#608  
Senior Member
Sultan Islam
Join Date: Dec 2015
Location: Canada
Posts: 141
Rep Power: 10 
Quote:
For more info, I compiled both FE41 and FE40 using master branch. Both were pulled around last week so the week of May 30th to June 5th. Maybe solids4foam was modified to work with FE41 now (despite it being slower)? 

June 9, 2021, 13:22 

#609  
Super Moderator
Philip Cardiff
Join Date: Mar 2009
Location: Dublin, Ireland
Posts: 1,091
Rep Power: 34 
Quote:


June 9, 2021, 15:43 
Answers for your Q

#610  
Senior Member
Sultan Islam
Join Date: Dec 2015
Location: Canada
Posts: 141
Rep Power: 10 
Quote:
So I ran huronturekfsi3 laminar case untill T=2.12 seconds for a test, FE40 completed it in 830.3 seconds while FE41 completed it in 1388.6 seconds. They look similar to me when I open them in paraview. I checked the solutions in a few time folders and the values only differ between 0.000X, I don't know which one is more accurate however. I brute force compiled FE40 using third party openmpi and I had no build issues (it complains about not being able to load decomp so files but thats only for a few tutotrials it seems), compiled solids4foam and it compiled correctly too. So I believe both FE41 and FE40 work fully and they both compiled solids4foam. However I don't know which one works better with solids4foam? Sure solids4foam is slow for the one case I tested, but I wonder which one is more accurate? FE40 is pretty old, so generally the FE team suggested i stick to FE41, but it seems the issue is still open? maybe the issue is a per tutorial base? I also tried the overset tutorial in beamincrossflow, it ran well and finished in 396.13 seconds (i assume it ran in serial), and it uses pimple solver and gamg, and despite a misbehaved exit, the numbers look good and nothing overflowed. One thing i do notice in FE41 is I get cat warnings about not being able to find files in system/, i assume that is not an issue. I know you write and test for both FE40 and FE41 support, but in your experience, which Foam provides the best experience for solids4foam? Last edited by EternalSeekerX; June 9, 2021 at 16:01. Reason: ran a new tut 

June 9, 2021, 17:31 

#611 
Super Moderator
Philip Cardiff
Join Date: Mar 2009
Location: Dublin, Ireland
Posts: 1,091
Rep Power: 34 
Hi Sultan,
Thanks for noting your experience. Currently FE40 is still my default. The main differences with FE41 are the fluid model implementations and the inclusion of overset. Unfortunately I can't say which one is better as I have not done exhaustive tests; you may like to read others comments. I wonder why the FE401 case is so much slower, is it the fluid or the solid or something else (fluid mesh motion even) ... Yep the overset case is set up to run in serial; it should also work in parallel but as noted in another thread it is currently broken in parallel. As regards the FE41 warnings, yep these can be ignored, although it would be nice if we dealt with them in a better way. 

June 9, 2021, 18:01 
Appreciate the confirmation

#612  
Senior Member
Sultan Islam
Join Date: Dec 2015
Location: Canada
Posts: 141
Rep Power: 10 
Quote:
For anyone else who wants to try, I suggest compiling gcc7.5 first and then compile gcc5.5 with gcc7.5. Then before compiling fe40 or fe41, just make sure to export path and ld_library_path for gcc depending on which fe you build. I haven't tried compiling my own openmpi outside of third party provided ones 

August 12, 2021, 00:50 
Strange Log File

#613 
Member
Mike Tree
Join Date: Feb 2016
Location: Charlotte, NC
Posts: 37
Rep Power: 10 
I'm seeing some strange log.solids4Foam behavior. I've successfully installed v1912 and compiled solids4Foam along side it. I can run the HronTurekFsi3/ras tutorial and see in its log.solids4Foam file the following:
Code:
Time = 0.001 Setting traction on solid interfaces Interpolating face values using AMI Create AMI zonetozone interpolator AMI: Creating addressing and weights between 84 source faces and 216 target faces AMI: using globalPolyPatch AMI: Patch source sum(weights) min:1 max:1 average:1 AMI: Patch target sum(weights) min:1 max:1 average:1 interfacetointerface face error: 0.00333563 Total force on fluid interface 0: (0.0680452 2.09831e09 7.05957e24) Total force on solid interface 0: (0.0680452 2.09831e09 7.05957e24) Evolving solid solver setCellDisplacements: reading cellDisplacements Corr 0, relative residual = 0 FDICPCG: Solving for D, Initial residual = 0, Final residual = (0 0 0), No outer iterations = 0 Max relative residual = 0, Relative residual = 0, enforceLinear = false Interpolating point values using AMI zoneA point orientation (< 0), max: 0.707107, min: 1, nIncorrectPoints: 0/170 Interpolating point values using AMI FSI relative residual1 norm for interface 0: 0 FSI residual2 norm for interface 0: 0 Time = 0.001, iteration: 1 Modes before cleanup (plate): 0, modes after cleanup (plate): 0 Current fsi underrelaxation factor (plate): 0.05 Maximal accumulated displacement of interface 0: 0 GAMG: Solving for cellMotionUx, Initial residual = 0, Final residual = 0, No Iterations 1 GAMG: Solving for cellMotionUy, Initial residual = 0, Final residual = 0, No Iterations 1 Evolving fluid model: pimpleFluid volume continuity errors : sum local = 0, global = 0 Courant Number mean: 0.0858922 max: 1.3495 velocity magnitude: 3.17842 PIMPLE: iteration 1 DILUPBiCG: Solving for Ux, Initial residual = 1, Final residual = 5.13036e08, No Iterations 7 DILUPBiCG: Solving for Uy, Initial residual = 1, Final residual = 8.42755e09, No Iterations 8 GAMG: Solving for p, Initial residual = 1, Final residual = 8.84293e07, No Iterations 60 time step continuity errors : sum local = 7.5779e10, global = 9.93387e11, cumulative = 9.93387e11 DILUPBiCG: Solving for omega, Initial residual = 0.00746969, Final residual = 1.1339e07, No Iterations 4 DILUPBiCG: Solving for k, Initial residual = 1, Final residual = 1.9442e07, No Iterations 6 But when I try to run my own case (flow through the carotid artery bifurcation), I see the following: Code:
Time = 5.88235e05 Setting traction on solid interfaces Interpolating face values using AMI Create AMI zonetozone interpolator AMI: Creating addressing and weights between 433520 source faces and 454672 target faces AMI: using globalPolyPatch AMI: Patch source sum(weights) min:0.506174 max:1.01881 average:0.999339 AMI: Patch target sum(weights) min:0.147987 max:1.02352 average:0.999352 interfacetointerface face error: 0.000176405 Total force on fluid interface 0: (0.0546705 0.000429176 0.120704) Total force on solid interface 0: (0.0552018 0.000857259 0.119434) Evolving solid solver Solving the momentum equation for D [1] setCellDisplacements: proc 1 has 0 cells with setDisplacements [2] setCellDisplacements: proc 2 has 0 cells with setDisplacements [3] setCellDisplacements: proc 3 has 0 cells with setDisplacements [4] setCellDisplacements: proc 4 has 0 cells with setDisplacements [5] setCellDisplacements: proc 5 has 0 cells with setDisplacements [6] setCellDisplacements: proc 6 has 0 cells with setDisplacements [7] setCellDisplacements: proc 7 has 0 cells with setDisplacements [8] setCellDisplacements: proc 8 has 0 cells with setDisplacements [9] setCellDisplacements: proc 9 has 0 cells with setDisplacements [10] setCellDisplacements: proc 10 has 0 cells with setDisplacements [11] setCellDisplacements: proc 11 has 0 cells with setDisplacements [12] setCellDisplacements: proc 12 has 0 cells with setDisplacements [13] setCellDisplacements: proc 13 has 0 cells with setDisplacements [14] setCellDisplacements: proc 14 has 0 cells with setDisplacements [15] setCellDisplacements: proc 15 has 0 cells with setDisplacements setCellDisplacements: reading cellDisplacements [0] setCellDisplacements: proc 0 has 0 cells with setDisplacements Corr, res, relRes, matRes, iters 100, 0.000333817, 0.000156063, 0, 7 200, 1.58933e05, 8.89816e06, 0, 7 Both residuals have converged 297, 9.88991e07, 5.57875e07, 0, 7 Interpolating point values using AMI zoneA point orientation (< 0), max: 0.894023, min: 1, nIncorrectPoints: 0/31103 Interpolating point values using AMI FSI relative residual1 norm for interface 0: 1 FSI residual2 norm for interface 0: 1 Time = 5.88235e05, iteration: 1 Current fsi underrelaxation factor (fixed): 0.001 Maximal accumulated displacement of interface 0: 0.00198066 Evolving fluid model: pimpleFluid volume continuity errors : sum local = 6.92067e15, global = 2.45978e18 Courant Number mean: 0.0371906 max: 0.999295 velocity magnitude: 0.737557 PIMPLE: iteration 1 GAMG: Solving for p, Initial residual = 0.891589, Final residual = 8.70122e07, No Iterations 42 GAMG: Solving for p, Initial residual = 0.00690861, Final residual = 8.39627e07, No Iterations 12 time step continuity errors : sum local = 1.95105e08, global = 7.59086e11, cumulative = 7.59086e11 GAMG: Solving for p, Initial residual = 0.0489028, Final residual = 9.67288e07, No Iterations 31 GAMG: Solving for p, Initial residual = 0.00354314, Final residual = 7.74235e07, No Iterations 10 time step continuity errors : sum local = 1.71419e08, global = 6.98734e11, cumulative = 1.45782e10 GAMG: Solving for p, Initial residual = 0.0515685, Final residual = 7.94962e07, No Iterations 32 GAMG: Solving for p, Initial residual = 0.00373174, Final residual = 7.94989e07, No Iterations 10 time step continuity errors : sum local = 1.75528e08, global = 7.27876e11, cumulative = 2.1857e10 Here are my relevant dictionaries: Code:
solvers { cellMotionU { solver GAMG; tolerance 1e6; relTol 0; minIter 3; maxIter 1000; smoother GaussSeidel; nPreSweeps 0; nPostSweeps 2; nFinestSweeps 2; scaleCorrection true; directSolveCoarsest false; cacheAgglomeration true; nCellsInCoarsestLevel 20; agglomerator faceAreaPair; mergeLevels 1; } "(UUFinal)" { solver PBiCG; preconditioner DILU; tolerance 1e08; relTol 0; minIter 3; } "(ppFinalpcorrpcorrFinal)" { solver GAMG; tolerance 1e06; relTol 0; minIter 3; maxIter 1000; smoother GaussSeidel; nPreSweeps 0; nPostSweeps 2; cacheAgglomeration true; nCellsInCoarsestLevel 700; agglomerator faceAreaPair; mergeLevels 1; } } PIMPLE { momentumPredictor yes; nOuterCorrectors 20; nCorrectors 3; nNonOrthogonalCorrectors 1; // residualControl // { // U // { // relTol 0; // tolerance 1e06; // } // p // { // relTol 0; // tolerance 1e03; // } // } } relaxationFactors { fields { p 0.5; } equations { U 0.7; } } Code:
ddtSchemes // 0: Euler, 1: CrankNicolson; a value of 0.9 is a good compromise between accuracy and robustness { default CrankNicolson 0.9; } gradSchemes // increase scalar with worse meshes (higher nonorthogonality) { default cellMDLimited Gauss linear 0.3; //grad(U) leastSquares; //cellMDLimited Gauss linear 0.5; //grad(magSqr(U)) leastSquares; //cellMDLimited Gauss linear 0.5; //grad(p) leastSquares; //cellMDLimited Gauss linear 0.5; //grad(nuEff) leastSquares; //cellMDLimited Gauss linear 0.5; } divSchemes { default none; div(phi,U) Gauss linearUpwind grad(U); //Gauss limitedLinear 1.0; Gauss upwind; div((nuEff*dev2(T(grad(U))))) Gauss linear; } laplacianSchemes // increase scalar with better meshes (lower nonorthogonality) { default Gauss linear limited 0.7; //laplacian(nuEff,U) Gauss limitedLinear phi 1.0 corrected; //laplacian(rAU,p) Gauss limitedLinear phi 1.0 corrected; } interpolationSchemes { default linear; } snGradSchemes // increase scalar with better meshes (lower nonorthogonality) { default limited 0.7; } 

August 13, 2021, 13:07 

#614 
Member
Mike Tree
Join Date: Feb 2016
Location: Charlotte, NC
Posts: 37
Rep Power: 10 
I was able to recreate the issue using the HronTurekFsi3/ras tutorlal.
If I modify the tutorial such that it uses the linearGeometry solidModel (instead of the unsNonLinearGeometryTotalLagrangian solidModel), I can make it so the log.solids4foam file does not show the velocity or mesh motion residuals. Of course, when I change the solidModel to linearGeometry I also have to change the mechanicalProperties type from neoHookeanElastic to linearElastic. Through testing I have observed a few things:


August 16, 2021, 09:14 

#615 
Super Moderator
Philip Cardiff
Join Date: Mar 2009
Location: Dublin, Ireland
Posts: 1,091
Rep Power: 34 
Hi Mike,
Can you attach an example log? Thanks, Philip 

August 16, 2021, 11:04 

#616 
Member
Mike Tree
Join Date: Feb 2016
Location: Charlotte, NC
Posts: 37
Rep Power: 10 
Of course! I should have done this from the beginning. My apologies. I can't seem to attach the whole log, so here are its first few iterations:
Code:
/**\  =========    \\ / F ield  OpenFOAM: The Open Source CFD Toolbox   \\ / O peration  Version: v1912   \\ / A nd  Website: www.openfoam.com   \\/ M anipulation   \**/ Build : v1912 OPENFOAM=1912 Arch : "LSB;label=32;scalar=64" Exec : solids4Foam Date : Aug 13 2021 Time : 10:17:03 Host : corvidpost5.corvidtec.com PID : 58292 I/O : uncollated Case : /beegfs/users/mtree/OpenFOAM/mtreev1912/run/solids4foam/tutorials/fluidSolidInteraction/HronTurekFsi3/ras nProcs : 1 trapFpe: Floating point exception trapping enabled (FOAM_SIGFPE). fileModificationChecking : Monitoring runtime modified files using timeStampMaster (fileModificationSkew 10) allowSystemOperations : Allowing usersupplied system call operations // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // Create time > FOAM Warning : From function static Foam::IOstreamOption::compressionType Foam::IOstreamOption::compressionEnum(const Foam::word&) in file db/IOstreams/IOstreams/IOstreamOption.C at line 88 Unknown compression specifier 'uncompressed', assuming no compression /**\  For further information on the solids4Foam toolbox implementations,   please see the following publications:     P. Cardiff, A Karac, P. De Jaeger, H. Jasak, J. Nagy, A. Ivankovic,   Z. Tukovic: An opensource finite volume toolbox for solid mechanics and   fluidsolid interaction simulations. arXiv:1808.10736v2, 2018, available   at https://arxiv.org/abs/1808.10736.     Z. Tukovic, A. Karac, P. Cardiff, H. Jasak, A. Ivankovic: OpenFOAM   finite volume solver for fluidsolid interaction. Transactions of   Famena, 42 (3), pp. 131, 2018, 10.21278/TOF.42301.  \**/ Selecting physicsModel fluidSolidInteraction Selecting fluidSolidInterface method IQNILS Selecting fluidModel pimpleFluid Selecting dynamicFvMesh dynamicMotionSolverFvMesh Selecting motion solver: velocityLaplacian Selecting motion diffusion: quadratic Selecting motion diffusion: inverseDistance Selecting patchDistMethod meshWave g field not found in constant directory: initialising to zero Selecting incompressible transport model Newtonian Selecting turbulence model type RAS Selecting RAS turbulence model kOmegaSST PIMPLE: max iterations = 5 field U : relTol 0, tolerance 1e06 Constructing face velocity Uf Selecting solidModel linearGeometry Selecting dynamicFvMesh staticFvMesh Creating solidTraction boundary condition limiter coefficient: 1 Creating fixedDisplacement boundary condition Creating solidTraction boundary condition limiter coefficient: 1 Creating fixedDisplacement boundary condition underrelaxation method: fixed Creating the mechanicalModel Selecting mechanical law linearElastic additionalMeshCorrection: false Selecting interfaceToInterfaceMapping RBF Creating pointDisp function object region = solid distance from specified point is 0.0075 > FOAM Warning : From function void Foam::timeControl::read(const Foam::dictionary&) in file db/functionObjects/timeControl/timeControl.C at line 127 Reading "/beegfs/users/mtree/OpenFOAM/mtreev1912/run/solids4foam/tutorials/fluidSolidInteraction/HronTurekFsi3/ras/system/controlDict.functions.forces" Using deprecated 'outputControl' Please use 'writeControl' with 'writeInterval' This outputControl is deemed to be 42 months old. > FOAM IOWarning : Found [v1612] 'functionObjectLibs' entry instead of 'libs' in dictionary "/beegfs/users/mtree/OpenFOAM/mtreev1912/run/solids4foam/tutorials/fluidSolidInteraction/HronTurekFsi3/ras/system/controlDict.functions.forces" This keyword is deemed to be 36 months old. forces forces: p: p U: U rho: rhoInf Freestream density (rhoInf) set to 100 Not including porosity effects Time = 0.001 Setting traction on solid interfaces Interpolating face values using RBF Create RBF interpolator from plate to plate face interpolation error: 6.96921e12 Total force on fluid interface 0: (0.0680452 2.09831e09 7.05957e24) Total force on solid interface 0: (0.0680233 2.10931e09 7.14464e24) Evolving solid solver Solving the momentum equation for DD setCellDisplacements: reading cellDisplacements Corr, res, relRes, matRes, iters Both residuals have converged 2, 0, 0, 0, 0 Interpolating point values using RBF Create RBF interpolator from plate to plate point interpolation error: 2.18637e11 Interpolating point values using RBF FSI relative residual1 norm for interface 0: 0 FSI residual2 norm for interface 0: 0 Time = 0.001, iteration: 1 Modes before cleanup (plate): 0, modes after cleanup (plate): 0 Current fsi underrelaxation factor (plate): 0.05 Maximal accumulated displacement of interface 0: 0 Evolving fluid model: pimpleFluid volume continuity errors : sum local = 0, global = 0 Courant Number mean: 0.0858922 max: 1.3495 velocity magnitude: 3.17842 PIMPLE: iteration 1 GAMG: Solving for p, Initial residual = 1, Final residual = 8.84293e07, No Iterations 60 time step continuity errors : sum local = 7.5779e10, global = 9.93387e11, cumulative = 9.93387e11 DILUPBiCG: Solving for omega, Initial residual = 0.00746969, Final residual = 1.1339e07, No Iterations 4 DILUPBiCG: Solving for k, Initial residual = 1, Final residual = 1.9442e07, No Iterations 6 PIMPLE: iteration 2 GAMG: Solving for p, Initial residual = 0.69127, Final residual = 8.58652e07, No Iterations 36 time step continuity errors : sum local = 3.53597e09, global = 1.48623e10, cumulative = 4.9284e11 DILUPBiCG: Solving for omega, Initial residual = 0.00317216, Final residual = 7.04253e07, No Iterations 2 DILUPBiCG: Solving for k, Initial residual = 0.0256635, Final residual = 5.57283e07, No Iterations 3 PIMPLE: iteration 3 GAMG: Solving for p, Initial residual = 0.553591, Final residual = 8.68691e07, No Iterations 33 time step continuity errors : sum local = 2.18761e09, global = 1.27332e10, cumulative = 7.80484e11 DILUPBiCG: Solving for omega, Initial residual = 0.00145954, Final residual = 5.553e07, No Iterations 2 DILUPBiCG: Solving for k, Initial residual = 0.00607154, Final residual = 1.21916e07, No Iterations 3 PIMPLE: iteration 4 GAMG: Solving for p, Initial residual = 0.354838, Final residual = 6.29328e07, No Iterations 31 time step continuity errors : sum local = 1.40039e09, global = 5.00682e11, cumulative = 2.79801e11 DILUPBiCG: Solving for omega, Initial residual = 0.000489358, Final residual = 7.22081e08, No Iterations 2 DILUPBiCG: Solving for k, Initial residual = 0.00292104, Final residual = 8.31175e08, No Iterations 3 PIMPLE: iteration 5 GAMG: Solving for p, Initial residual = 0.21348, Final residual = 8.30932e07, No Iterations 28 time step continuity errors : sum local = 1.67403e09, global = 8.97173e11, cumulative = 1.17697e10 DILUPBiCG: Solving for omega, Initial residual = 0.000218517, Final residual = 2.22571e07, No Iterations 2 DILUPBiCG: Solving for k, Initial residual = 0.000900964, Final residual = 3.65141e07, No Iterations 2 PIMPLE: not converged within 5 iterations Setting traction on solid interfaces Interpolating face values using RBF Total force on fluid interface 0: (13.1233 4.9976 6.35845e24) Total force on solid interface 0: (13.2806 4.99607 6.30936e24) Evolving solid solver Solving the momentum equation for DD Corr, res, relRes, matRes, iters Both residuals have converged 2, 0, 0, 0, 0 Interpolating point values using RBF Interpolating point values using RBF FSI relative residual1 norm for interface 0: 0 FSI residual2 norm for interface 0: 0 ExecutionTime = 0.71 s ClockTime = 1 s forces forces write: Sum of forces Total : (1.31233 0.49976 6.35845e25) Pressure : (1.30557 0.49976 0) Viscous : (0.00675602 4.63457e07 6.35845e25) Sum of moments Total : (0.0037482 0.00984245 0.0933525) Pressure : (0.0037482 0.00979178 0.0926768) Viscous : (3.47593e09 5.06702e05 0.000675656) Time = 0.002 Setting traction on solid interfaces Interpolating face values using RBF Total force on fluid interface 0: (13.1233 4.9976 6.35845e24) Total force on solid interface 0: (13.2806 4.99607 6.30936e24) Evolving solid solver Solving the momentum equation for DD Corr, res, relRes, matRes, iters Both residuals have converged 2, 0, 0, 0, 0 Interpolating point values using RBF Interpolating point values using RBF FSI relative residual1 norm for interface 0: 0 FSI residual2 norm for interface 0: 0 Time = 0.002, iteration: 1 Modes before cleanup (plate): 0, modes after cleanup (plate): 0 Current fsi underrelaxation factor (plate): 0.05 Maximal accumulated displacement of interface 0: 0 Evolving fluid model: pimpleFluid volume continuity errors : sum local = 0, global = 0 Courant Number mean: 0.0858303 max: 1.1739 velocity magnitude: 6.2833 PIMPLE: iteration 1 GAMG: Solving for p, Initial residual = 0.541293, Final residual = 7.79996e07, No Iterations 55 time step continuity errors : sum local = 1.13626e09, global = 1.16336e10, cumulative = 1.36125e12 DILUPBiCG: Solving for omega, Initial residual = 0.00288384, Final residual = 3.66312e07, No Iterations 2 DILUPBiCG: Solving for k, Initial residual = 0.145397, Final residual = 2.5092e07, No Iterations 3 PIMPLE: iteration 2 GAMG: Solving for p, Initial residual = 0.548259, Final residual = 8.18762e07, No Iterations 36 time step continuity errors : sum local = 1.00222e09, global = 4.06895e11, cumulative = 4.20508e11 DILUPBiCG: Solving for omega, Initial residual = 0.00051627, Final residual = 6.80607e08, No Iterations 2 DILUPBiCG: Solving for k, Initial residual = 0.00253334, Final residual = 2.04936e07, No Iterations 2 PIMPLE: iteration 3 GAMG: Solving for p, Initial residual = 0.301428, Final residual = 9.80541e07, No Iterations 37 time step continuity errors : sum local = 8.87878e10, global = 1.70477e10, cumulative = 1.28426e10 DILUPBiCG: Solving for omega, Initial residual = 0.000147071, Final residual = 2.64034e08, No Iterations 2 DILUPBiCG: Solving for k, Initial residual = 0.000755549, Final residual = 6.44334e09, No Iterations 3 PIMPLE: iteration 4 GAMG: Solving for p, Initial residual = 0.133918, Final residual = 7.73202e07, No Iterations 30 time step continuity errors : sum local = 5.95032e10, global = 6.64192e11, cumulative = 1.94845e10 DILUPBiCG: Solving for omega, Initial residual = 7.9708e05, Final residual = 2.34647e08, No Iterations 2 DILUPBiCG: Solving for k, Initial residual = 0.000156515, Final residual = 6.49238e07, No Iterations 1 PIMPLE: iteration 5 GAMG: Solving for p, Initial residual = 0.0557479, Final residual = 9.2336e07, No Iterations 21 time step continuity errors : sum local = 6.8105e10, global = 1.32359e10, cumulative = 6.24855e11 DILUPBiCG: Solving for omega, Initial residual = 4.42068e05, Final residual = 1.57016e08, No Iterations 2 DILUPBiCG: Solving for k, Initial residual = 7.48789e05, Final residual = 1.42411e08, No Iterations 2 PIMPLE: not converged within 5 iterations Setting traction on solid interfaces Interpolating face values using RBF Total force on fluid interface 0: (3.35572 2.47967 2.40853e24) Total force on solid interface 0: (3.39701 2.47888 2.49446e24) Evolving solid solver Solving the momentum equation for DD Corr, res, relRes, matRes, iters Both residuals have converged 2, 0, 0, 0, 0 

August 16, 2021, 19:42 
RobinFsi3dTube in foamextend4.0

#617 
Member
Mike Tree
Join Date: Feb 2016
Location: Charlotte, NC
Posts: 37
Rep Power: 10 
In response to the log file issue that showed up using solids4Foam and OFv1912, I decided to compile foamextend4.0 and try my luck at solids4Foam over there as well. In particular, I'm interested in the Robin boundary condition. My application is FSI of the common carotid bifurcation, so I have the classic added mass problem that arises when fluid and solid densities are relatively close in value. I successfully compiled foamextend 4.0 and solids4Foam. I successfully ran the RobinFsi3dTube tutorial. Then, I swapped out the tutorial mesh for my mesh and modified the boundary conditions to match my boundary names and account for the fact that I have a few more boundaries in play (1 inlet, 2 outlets instead of 1 inlet, 1 outlet).
Everything was going fine until the first iteration tried to actually solve the pressure equation. Then, along came a segmentation fault. So, I recompiled solids4Foam using some debug compiler flags (g and O0, GNU 5.4 compiler), and I ran the GNU debugger to find more info. Here's what I found: Code:
GNU gdb (GDB) Red Hat Enterprise Linux 7.6.1115.el7 Copyright (C) 2013 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64redhatlinuxgnu". For bug reporting instructions, please see: <http://www.gnu.org/software/gdb/bugs/>... Reading symbols from /beegfs/users/mtree/foam/mtree4.0/applications/bin/linux64GccDPOpt/solids4Foam...done. (gdb) run Starting program: /beegfs/users/mtree/foam/mtree4.0/applications/bin/linux64GccDPOpt/solids4Foam warning: File "/home/shelf1/Software/gcc/5.4.0/lib64/libstdc++.so.6.0.21gdb.py" autoloading has been declined by your `autoload safepath' set to "$debugdir:$datadir/autoload:/usr/bin/monogdb.py". To enable execution of this file add addautoloadsafepath /home/shelf1/Software/gcc/5.4.0/lib64/libstdc++.so.6.0.21gdb.py line to your configuration file "/beegfs/users/mtree/.gdbinit". To completely disable this security protection add set autoload safepath / line to your configuration file "/beegfs/users/mtree/.gdbinit". For more information about this security protection see the "Autoloading safe path" section in the GDB manual. E.g., run from the shell: info "(gdb)Autoloading safe path" [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib64/libthread_db.so.1". /**\  =========    \\ / F ield  foamextend: Open Source CFD   \\ / O peration  Version: 4.0   \\ / A nd  Web: http://www.foamextend.org   \\/ M anipulation  For copyright notice see file Copyright  \**/ Build : 4.0268bb07d15d8 Exec : /beegfs/users/mtree/foam/mtree4.0/applications/bin/linux64GccDPOpt/solids4Foam Date : Aug 16 2021 Time : 18:12:21 Host : corvidpost5.corvidtec.com PID : 49378 CtrlDict : "/beegfs/users/mtree/foam/mtree4.0/run/uncp/system/controlDict" Case : /beegfs/users/mtree/foam/mtree4.0/run/uncp nProcs : 1 SigFpe : Enabling floating point exception trapping (FOAM_SIGFPE). // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // Create time /**\  For further information on the solids4Foam toolbox implementations,   please see the following publications:     P. Cardiff, A Karac, P. De Jaeger, H. Jasak, J. Nagy, A. Ivankovic,   Z. Tukovic: An opensource finite volume toolbox for solid mechanics and   fluidsolid interaction simulations. arXiv:1808.10736v2, 2018, available   at https://arxiv.org/abs/1808.10736.     Z. Tukovic, A. Karac, P. Cardiff, H. Jasak, A. Ivankovic: OpenFOAM   finite volume solver for fluidsolid interaction. Transactions of   Famena, 42 (3), pp. 131, 2018, 10.21278/TOF.42301.  \**/ Selecting physicsModel fluidSolidInteraction Selecting fluidSolidInterface method Aitken Selecting fluidModel unsIcoFluid Selecting dynamicFvMesh dynamicMotionSolverFvMesh Selecting motion solver: velocityLaplacian Selecting motion diffusion: quadratic Selecting motion diffusion: inverseDistance g field not found in constant directory: initialising to zero Selecting solidModel nonLinearGeometryUpdatedLagrangian Selecting dynamicFvMesh staticFvMesh Creating fixedDisplacement boundary condition Creating solidTraction boundary condition limiter coefficient: 1 Creating solidTraction boundary condition limiter coefficient: 1 Creating fixedDisplacement boundary condition Creating fixedDisplacement boundary condition underrelaxation method: fixed Creating the mechanicalModel Selecting mechanical law StVenantKirchhoffElastic additionalMeshCorrection: false Selecting interfaceToInterfaceMapping GGI Time = 1e06 Setting traction on solid interfaces Interpolating face values using GGI Create GGI zonetozone interpolator interfacetointerface face error: 0.0195445 calcMasterPointAddressing() const Extended GGI, master point distance, max: 2.61897e05, avg: 1.0627e06, min: 3.06322e05 interfacetointerface point error: 3.06322e05 Number of uncovered master faces: 0 Number of uncovered slave faces: 0 Total force on fluid interface 0: (0 0 0) Total force on solid interface 0: (0 0 0) Evolving solid solver Solving the updated Lagrangian form of the momentum equation for DD setCellDisplacements: reading cellDisplacements Corr, res, relRes, matRes, iters Both residuals have converged 2, 0, 0, 0, 0 Interpolating point values using GGI Interpolating point values using GGI FSI relative residual1 norm for interface 0: 0 FSI residual2 norm for interface 0: 0 Time = 1e06, iteration: 1 Current fsi underrelaxation factor (fixed): 0.1 Setting acceleration at fluid side of the interface Interpolating face values using GGI Maximal accumulated displacement of interface 0: 0 GAMG: Solving for cellMotionUx, Initial residual = 0, Final residual = 0, No Iterations 1 GAMG: Solving for cellMotionUy, Initial residual = 0, Final residual = 0, No Iterations 1 GAMG: Solving for cellMotionUz, Initial residual = 0, Final residual = 0, No Iterations 1 GAMG: Solving for cellMotionUx, Initial residual = 0, Final residual = 0, No Iterations 1 GAMG: Solving for cellMotionUy, Initial residual = 0, Final residual = 0, No Iterations 1 GAMG: Solving for cellMotionUz, Initial residual = 0, Final residual = 0, No Iterations 1 Evolving fluid model with consistent strategy: unsIcoFluid Courant Number mean: 0 max: 0.00327424 velocity magnitude: 0.290041 PISO: Operating solver in PISO mode DILUPBiCG: Solving for Ux, Initial residual = 1, Final residual = 1.09066e15, No Iterations 2 DILUPBiCG: Solving for Uy, Initial residual = 1, Final residual = 2.68135e15, No Iterations 2 DILUPBiCG: Solving for Uz, Initial residual = 1, Final residual = 7.04321e16, No Iterations 2 Program received signal SIGSEGV, Segmentation fault. 0x00002aaaaad06730 in Foam::List<double>::List(Foam::List<double> const&) () from /home/shelf1/motorsports/software/OpenSourceCFD/source/OpenFOAM/foamextend4.0/lib/linux64GccDPOpt/libincompressibleTurbulenceModel.so Missing separate debuginfos, use: debuginfoinstall glibc2.17292.el7.x86_64 numactllibs2.0.123.el7_7.1.x86_64 sssdclient1.16.421.el7_7.3.x86_64 zlib1.2.718.el7.x86_64 (gdb) where #0 0x00002aaaaad06730 in Foam::List<double>::List(Foam::List<double> const&) () from /home/shelf1/motorsports/software/OpenSourceCFD/source/OpenFOAM/foamextend4.0/lib/linux64GccDPOpt/libincompressibleTurbulenceModel.so #1 0x00002aaaac4af6f7 in Foam::Field<double>::Field (this=0x7fffffff5c80, f=...) at /home/shelf1/motorsports/software/OpenSourceCFD/source/OpenFOAM/foamextend4.0/src/foam/lnInclude/Field.C:149 #2 0x00002aaaac7fc327 in Foam::elasticWallPressureFvPatchScalarField::updateCoeffs (this=0x6a3fd80) at fluidModels/fvPatchFields/elasticWallPressure/elasticWallPressureFvPatchScalarField.C:159 #3 0x00002aaaab034c7e in Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh>::GeometricBoundaryField::updateCoeffs() () from /home/shelf1/motorsports/software/OpenSourceCFD/source/OpenFOAM/foamextend4.0/lib/linux64GccDPOpt/libincompressibleRASModels.so #4 0x00002aaaab039196 in Foam::fvMatrix<double>::fvMatrix(Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> const&, Foam::dimensionSet const&) () from /home/shelf1/motorsports/software/OpenSourceCFD/source/OpenFOAM/foamextend4.0/lib/linux64GccDPOpt/libincompressibleRASModels.so #5 0x00002aaaae277db3 in Foam::fv::gaussLaplacianScheme<double, double>::fvmLaplacianUncorrected(Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh> const&, Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> const&) () from /home/shelf1/motorsports/software/OpenSourceCFD/source/OpenFOAM/foamextend4.0/lib/linux64GccDPOpt/libfiniteVolume.so #6 0x00002aaaae2714e5 in Foam::fv::gaussLaplacianScheme<double, double>::fvmLaplacian(Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh> const&, Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> const&) () from /home/shelf1/motorsports/software/OpenSourceCFD/source/OpenFOAM/foamextend4.0/lib/linux64GccDPOpt/libfiniteVolume.so #7 0x00002aaaac5354c8 in Foam::fvm::laplacian<double, double> (gamma=..., vf=..., name=...) at /home/shelf1/motorsports/software/OpenSourceCFD/source/OpenFOAM/foamextend4.0/src/finiteVolume/lnInclude/fvmLaplacian.C:282 #8 0x00002aaaac62de53 in Foam::fluidModels::unsIcoFluid::evolveConsistent (this=0x85caa0) at fluidModels/unsIcoFluid/unsIcoFluid.C:489 #9 0x00002aaaac630875 in Foam::fluidModels::unsIcoFluid::evolve (this=0x85caa0) at fluidModels/unsIcoFluid/unsIcoFluid.C:718 #10 0x00002aaaac687ca0 in Foam::fluidSolidInterfaces::AitkenCouplingInterface::evolve (this=0x84c070) at fluidSolidInterfaces/AitkenCouplingInterface/AitkenCouplingInterface.C:100 #11 0x0000000000403497 in main (argc=1, argv=0x7fffffff9418) at solids4Foam.C:62 I can't seem to attach my whole case directory, so here's a link to it: https://drive.google.com/file/d/1rZ2...ew?usp=sharing 

August 18, 2021, 19:16 
Fix for RobinFsi3dTube Issue

#618 
Member
Mike Tree
Join Date: Feb 2016
Location: Charlotte, NC
Posts: 37
Rep Power: 10 
I spent some more time learning C++ and the solids4Foam code, and I found the cause of the seg fault. I even have a fix for it....
The RobinFsi3dTube tutorial has 5 fluid boundary fields and the fluid interface boundary field (named "wall") is the last one. It's index is 4. There are 6 solid boundary fields and the solid interface boundary field (named "innerwall") is the 5th one. It's index when listed is ALSO 4! This is a very fortunate coincidence because the updateCoeffs() member function of the elasticWallPressureFvPatchScalarField class (src/solids4FoamModels/fluidModels/fvPatchFields/elasticWallPressure/elasticWallPressureFvPatchScalarField.C) creates a patchID label on line 149. That patchID is defined based on the index of the boundary field that uses the elasticWallPressure boundary condition type. This is defined on the fluid interface, but this index is then used to access the solid interface density and stiffness to compute the pwave propagation speed and virtual thickness. If the boundary field index of the fluid interface boundary is not the same as the boundary field index of the solid interface boundary then this results in potentially pulling the wrong material properties. In my case, because my mesh had more fluid boundaries than solid boundaries, it resulted in a request for index beyond the size of the list. This resulted in the seg fault. The solution is to redefine the patchID variable to actually be the soild boundary field interface index. I switched to this and it worked: Code:
label patchID = fsi.solidPatchIndices()[0]; 

August 19, 2021, 17:36 

#619  
Super Moderator
Philip Cardiff
Join Date: Mar 2009
Location: Dublin, Ireland
Posts: 1,091
Rep Power: 34 
Quote:


August 21, 2021, 02:04 
Installation os Solids4Foam on OpenFoam v2012

#620 
Member
Ashutosh
Join Date: Jul 2021
Location: India
Posts: 75
Rep Power: 5 
Hi everyone,
I was trying to install solids4Foam in Openfoam v2012 . When I executed Allwmake script it ask to replace certain files. I just want to ask that if i replace those will it break original Openfoam functionality. 

Thread Tools  Search this Thread 
Display Modes  


Similar Threads  
Thread  Thread Starter  Forum  Replies  Last Post 
GPU Linear Solvers for OpenFOAM  gocarts  OpenFOAM Announcements from Other Sources  37  August 17, 2022 15:22 
[Virtualization] OpenFOAM oriented tutorial on using VMware Player  support thread  wyldckat  OpenFOAM Installation  2  July 11, 2012 17:01 
New OpenFOAM Forum Structure  jola  OpenFOAM  2  October 19, 2011 07:55 
Crosscompiling OpenFOAM 1.7.0 on Linux for Windows 32 and 64bits with Mingww64  wyldckat  OpenFOAM Announcements from Other Sources  3  September 8, 2010 07:25 
OpenFOAM Debian packaging current status problems and TODOs  oseen  OpenFOAM Installation  9  August 26, 2007 14:50 