![]() |
Probe for Solid Region
How can one be sure that the probe actually is located in the solid region? If the probe is defined in controlDict of the solid folder, it does not work during run because the code is running from the fluid folder. On the other hand if the probe is defined in the fluid folder, it cannot recognize the solid displacement; it recognizes only the pressure and velocity. Could you present a sample probe for solid region, please?
|
Quote:
Maybe you have to run the probe utility with explicit specification of the region (probeLocations -region ...) or run it in both regions seperatly and join that afterwards. |
Quadratic Displacement
Hi,
I would like to know how a quadratic displacement can be used in Eq. (10) of the following paper, please. Do you know any similar work? How well can it improve the displacement and stress results? http://powerlab.fsb.hr/ped/kturbo/Op...tressPaper.pdf Thanks. |
complex eigenvalues detected for tensor
Hi, Phillip, and all,
Thanks for the support of the icoNonlinear large displacement solver. I recently test a case for a cylinder with the icoFsiNonLinear solver, but the soveSolid part crashed after 3 inner loops during the first time step of the analysis. The details are below, and I have put some debugging icons in the solid solution part Quote:
Quote:
I notice in a previous post some guy came into similar problem in #208, but my problem arise in the first time step. will you give some hint on what might cause the problem so I can move on to debug. Thank you in advance:) |
Hi, big Phillip, I have checked the error message, I think the eigen value error in the above post might happen due to the following large interpolate errors:
Quote:
So can you give me some hint on what probable wrong I have made to make such large interpolation error? Thanks.:) /Allen Quote:
|
Dear all,
am currently learning and testing the capabilities of elastiSolidFoam by analysing a simply bending beam clapmed on one side. I read in a previous post that the segregated nature of the solver makes the convergence slow for such a problem. I can confirm that! Furthermore, I observed much faster convergence in case I do not use aitkenRelaxation (set to "no" in the fvSolution dictionary). Now I would like to know why this is the case since Aitken relaxation should normally speed up convergence, isn't it? Appreciate your comments! Cheers, Aram |
Support thread for "Solid Mechanics Solvers added to OpenFOAM Extend"
Hi all,
I write because I would like to ask you for ideas. So I try to write my problem in short. First, I have an object, like a cylindrical plastic flower pot (a smaller one). The object has thickness. I want to place in the ground (the bottom side), and I want to crush with continuous force from the upper side. The force has only Z (vertical) component eg.: (0 0 10000) [Pa]. I tried some boundary conditions, but none was work properly. In all case appear shear stresses in the boundaries. I include an image with the schematic representation of the object's profile.The horizontal green lines show the surface with the force (A) (upper side of the object) and the horizontal red lines show the surfaces which are standing on the ground (B). The ground is theoretically. http://postimg.org/image/n1v2y0267/ http://postimg.org/image/n1v2y0267/ The boundary conditions were: A = force or displacement, B = force or displacement or zero displacement. The surfaces with black lines, always "walls". The red arrows show the problems, the shear stresses. The cases were opposedForces_elasticSolidFoam, the solver was PCG, the preconditioner was DIC. I also tried the following option: I made two boards for the surfaces. Like I compressing it between my palms (my palms are equal the boards in OpenFOAM). But this is very slow method (because is friction etc), I looking for a relatively fast method. So, have anybody any idea, how can I eliminate the shear stresses? Or is there a model in OpenFOAM that can deal with this problem? Thank you in advance! |
Quote:
Also I think you have to use a contact model in order to avoid penetration of pot and ground. |
compression test by two contacting surfaces
1 Attachment(s)
Hello,
I am trying to simulate a compression problem by squeezing an object sandwiched between two surfaces. See the attached schematic. Here are the BC's: load_down: fixed disp. (0 0 -1E-8) load_up: fixed disp (0 0 -1E-8) all other sides of the red surface: same fixed disp downwards obj_up: contact with load_up slave obj_down: contact with gnd_up slave all other sides of obj: solidTractionFree gnd_down: fixed disp. (0 0 0) all other sides of gnd: same fixed disp. So 'obj' is the geometry compressed by the two plates 'load' and 'gnd'. I try to solve the problem with elasticSolidFoam following the frictionBall example. The problem is that there seems to be no contact between load and obj - load moves down, but the rest doesn't do anything. I uploaded the case here: https://drive.google.com/file/d/0B_V...ew?usp=sharing What am I doing wrong? Is it the BC's? The solver settings? Or the problem formulation itself? Many thanks! Attachment 38854 |
I have tried the elasticNonLinULSolidFoam with a (somehow) similar setup. Have a look:
https://github.com/jmozmoz/foamRingCompressionTest |
Quote:
I have got the same mistake.. I try to solve it since hours but I don't find any solution. Might anyone explain how I can solve it? I'm quit new in OpenFoam.. Thank you so much, best regards, Stephie |
You have to create your links properly,
here is some example how this can be done: Code:
#!/bin/bash |
Dear Philip,
I'm a young student from Germany and I work just a few weeks with foam-ext. I tried the HronTurek Tutorial. I run the case in parallel (2 processors) and it worked. After the case finished, I tried to reconstruct it. If I run reconstructPar only the fluid data are reconstructed and the solid part is irgnored. Might you have an idea how I can solve this problem? I had a look in the Forum and there are some people with the same problem.. but without any solution. I wouls be really grateful if you might help my with this problem. Thank you so much and best regards, Stephie |
Hey Stephie,
This small bash skript could help you Code:
#!/bin/sh Or in SHORT if you want to use the OF functions! Code:
#!/bin/sh |
Hey,
thank you so much for your answer. I tried both of your scripts. If I use the first one, there is an error: sed1,/constant/d was not found, as well foamInfoExec-time was not found and if I take the second one, time files where create in the solid folder but there aren't correct. There I got the following error message: The link of (time file f.e. 0.1) is faulty. The link can not used, cos your target >>../fluid/0.1/solid<< does not exist. Do you know, where the mistake might be? I would be grateful if you might help me again. Thank you so much! Best regards, Stephie |
FSI Links
Hi
You really used the runTime Functions in the dictionary before the fluid and solid folder? |
yes, I did. And it would work, but one Link is missing. When I compare my case with the case which run on an other computer the solid file in the time files is missing. That is why the error appeared: The link can not used, cos your target >>../fluid/0.1/solid<< does not exist.
So is it possible to create this missing link? (The first mistake ...not found was my mistake.. I forgot some space between the capitals, I correct it) |
I had a look on older cases...everytime I try to run the case in parallel this file is missing. I reconstructed it with reconstructPar and when I have a look into the reconstrecuted time file there are just the polymesh and the uniform folder. In comparison to the file, where I run the case with just on processor - there, the solid file exist next to the polymesh and the uniform file.
But why? is there a mistake with reconstructPar? |
Hey,
it's me again. I am grateful of the help of Daniel Duque, who send me a script to create the missing solid folders and to reconstruct the case. Here is his code: #!/bin/bash echo creating processor links mkdir tmp cd fluid #reconstructPar for proc in processor*; do mkdir ../tmp/$proc for time in $proc/*; do mkdir ../tmp/$time ln -s $time/solid/* ../tmp/$time done done ln -s ../solid/system ../tmp/system ln -s ../solid/constant ../tmp/constant ln -s ../solid/0 ../tmp/0 cd ../tmp reconstructPar Unfortunately I got the problem, that there is no movement of the solid and I can't see the vortexes. Do anyone have the same problem or a solution? With his bash file it was possible to reconstruct both parts, the solid and the fluid. Up to this, we have to open up two paraFoam file - one for the solid and one for the fluid and combine them by overlapping. This not the best solution. Are there any other ways to combine the fluid and the solid part? Thank you for your support. Best regards, Stephie |
okay.. I find my mistake... I took the wrong density, this was the reason why I couldn't see any movement.
|
I'm trying to make FSI simulation of elastic pipe. icoFsiElasticNonLinULSolidFoam is used for this. When I use default values for material my simulation works OK. But when I try to change them to actual (increase fluid density from 1 to 1141), my simulation crashes on second FSI iteration with
--> FOAM FATAL ERROR: zero and complex eigenvalues in tensor: (1.67727e+31 -3.07921e+31 -1.86008e+29 -2.51065e+31 4.60916e+31 2.78429e+29 -4.70076e+31 -3.74209e+31 6.17348e+31) From function eigenValues(const tensor&) in file primitives/Tensor/tensor/tensor.C at line 129. The test case and log file are here: https://yadi.sk/d/OAfhaP7egdTHG Can some one help me ? Thanks. |
Hello Svensen,
I also have the same problem. I use the icoFsiElasticNonLinULFoam Solver to run the HronTurekFsi Case. Unfortunately I allways get this mistake. Did you find a solution? I would be very grateful for anyone's help, thank you and best regards, Stephie |
I can only guess where the problem exists. As you know, in all classical OpenFOAM cases you never write the fluid density value. Here (in FSI cases) we need to define it explicitly. I've searched the code of icoFsiElastic...Foam solver and find only one line where this density value is used. It is used for calculation of the force action by fluid on the solid and formula looks like nu*rho. All looks fine, but in the HronTurek case you can see that the nu value is 1e-3 and rho is only 1 (ONE !!) it's very low ! So, using the formula we have 1e-3 *1 = 1e-3. But when I put my actual data into the fluid parameters, using this formula (nu*rho) I've got something like 6.5e-3. I only can guess that this value is to big for this solver or the discretization schemes which it used by default. So it's become unstable and crashes.
It's only the suggestion... If you will find the solution please let me know ! I need it very very much !! |
Hey, yes you might be right. I am running the case with a density of 1000 (water) which is really high in comparison.
Today I tried the hint of Philip Cardiff some posts before (#209). I changed in the rotateSolidFields.H rho = rho/J into //rho = rho/J My case run around 0.476 s, after it become struggeling and stops, because of floating point except. Time = 0.476, iteration: 34 Current fsi under-relaxation factor (Aitken): 3.47732e-08 Maximal accumulated displacement of interface points: 0.00970624 DILUPBiCG: Solving for Ux, Initial residual = 0.00112037, Final residual = 2.90452e-07, No Iterations 3 DILUPBiCG: Solving for Uy, Initial residual = 0.0060397, Final residual = 4.07335e-07, No Iterations 4 GAMG: Solving for p, Initial residual = 0.490316, Final residual = 0.00244083, No Iterations 6 time step continuity errors : sum local = 1.51006e-06, global = 5.84117e-09, cumulative = -0.000922631 Moving mesh time step continuity errors : sum local = 1.51006e-06, global = 5.84117e-09, cumulative = -0.000922625 Setting traction on solid patch Total traction force = (-18.9099 -18.0944 3.34335e-17) Solving for DU, Initial residual = 0.0130961, Final residual = 9.65723e-07, No outer iterations 142 Current fsi residual norm: 0.172987 Time = 0.476, iteration: 35 Current fsi under-relaxation factor (Aitken): 1.73919e-08 Maximal accumulated displacement of interface points: 0.00970624 DILUPBiCG: Solving for Ux, Initial residual = 0.00119781, Final residual = 4.88617e-07, No Iterations 4 DILUPBiCG: Solving for Uy, Initial residual = 0.0070903, Final residual = 1.57914e-07, No Iterations 5 Floating point exception If I irgnore this error, the case stops again, but again because of "Floating point exception". The last time this was the point where I got the error of complex eigenvalues. I am not sure if it helps to comment this line out for stopping the mistake of complex eigenvalues or if it is luck. I will further searching.. maybe there will be a better solution and the case will run. Did you try HronTurekFsi3 from extend-bazaar? It is amazing. It run really fast and it has already a density of 1000 included. Maybe this might be an other possibility for you. |
"Did you try HronTurekFsi3 from extend-bazaar? It is amazing. It run really fast and it has already a density of 1000 included. Maybe this might be an other possibility for you"
I've tried it today. Yes it is very fast, but when I've applyied my geometry and parameters to the test case there were no coupling. The solid domain didn't deformed... but in the old HronTurek case it works ! Very strange... |
Quote:
Yep, the new FSI framework (currently located in foam-extend-3.1/extend-bazaar) supersedes the icoFsiElasticNonLinULSolidFoam solver. Željko presented this framework at the OpenFOAM Workshop 2014 in Zagreb: abstract and slides. The major improvement with regard to FSI coupling is the implementation of the IQN-ILS algorithm: this seems much better than Aitken's/fixed under-relaxation. Also, the plugin approach used for the solid and fluid solvers should allow easier extension to other fluid/solid models e.g. multi-phase, compressible, plasticity, etc. Best, Philip |
Quote:
I think that we are working in the similar field, so we have the same issues with simulation.. |
Hey,
first, thank you Philip for the links to tha abstract and the slides :) I am sorry, but I didn't find a solution up to now. At the moment I try to figure out where the problem might be. The last days I tried to run the new solver of my tutor with the old HronTurek case. But it allways crashes after around 0.4 seconds. Yesterday, I turnd off the FSI to see if the fluid or the solid part might be the problem. With out coupling the case run, I can see the current. Than I tried to use the density and Emodul which is given be the case (density of 1 kg/m³ and E=1.4e6) and the case is still running ( at the moment 2.6sec). At home I startet the normal case with the icoFsiElsaticNon... and an adjusted density of 1000kg/m³. After 5 seconds the case stops because of complex eigenvalues. I am not sure if it works to commend "rho = rho/J" out..there is allways the same mistake with floating point and complex eigenvalues. I think the density might be the problem, but I don't know how to solve it... It would be wonderful if anyone had a solution. I really would like to use the old version to test the new solver of my tutor..it is the same structure. |
Some months ago I had similar problems with FSI calculation. But it was related to mesh displacement. Mesh quality became very poor and floating point exeption was raised.
Better mesh, and my problem disapeared. |
Quote:
Does the new solver work for you with the new cases? The Hron-Turek-FSI-2 and Hron-Turek-FSI-3 are both provided as tutorials and should just work. If your current case has convergence problems, I would closely compare the settings in the new tutorial cases to check if you have appropriate settings. There are some small but important changes in the new code, for example, in the Hron-Turek cases a function object is used to enable FSI coupling once the flow has developed; this overcomes problems at the start with the flag bouncing around before the flow has developed. Philip |
Hello Philip,
I couldn't use our new solver for the new case up to now. Unfortunately there are some differences with some terms. Maybe we will find a way and change this, so that we could run the solver with HronTurekFSI3. While the last days I run HronTurekFSI2 with our solver with a density of 1 für the fluid and a density of 10 for the solid, and an Emodule of 1,4e6. And it works...the simulation ist still running. I don't understand where the problem might be, when I increase the density of the fluid to 1000 and the solid to 10000. The case interrupts allways at 0.476s iteration 35. I tried many things, but it allways stops at this one point. I also tried to turn off the coupling and start with developping the fluid and later join the coupling, but it also didn't work. The fluid part runs without any problems. But together withe the solid part it allways stops. best regards, Stephie |
Hello everyone,
I am also enjoying the new FSI library, but I would like to run the FSI solvers from a different start point (like stopping the solver and then starting it up again), and I don't think that functionality is implemented. If I run the HronTureckFsi3 tutorial (in controlDict I set the startFrom to latestTime) for a few recorded timesteps and then stop it, I can't resume it with fsiFoam, the error that comes up is: Code:
--> FOAM FATAL IO ERROR: Also, when I try and do this in parallel I get this kind of error: Code:
[2]
Any help at all is appreciated. |
Quote:
Yep, having comparable fluid and solid densities is a difficult FSI problem; using a small fixed under-relaxation factor or the new IQN-ILS procedure should help to overcome the convergence problems. Philip |
Quote:
In theory it should not be a problem to restart, we just have to make sure all the relevant fields are written out (something seems to want to old cell volumes V0, and also the golbalFaceZone field in parallel). I will let you know if I get time to look at it. In short to answer your questions, yep it would be intended to include such functionality. Philip |
Stephie, I've found the way how to make FSI simulations stable, but I'm not sure that this way is totally correct. I've tried to analyse the log and I've found that at some value of interface displacement my simulations crashes. After searching the source code I've found the following patter:
Info << "Maximal accumulated displacement of interface points: " << delta << endl; if(delta < interfaceDeformationLimit) { // Move only interface points ... } else { // Move whole fluid mesh ... } When I changed the interfaceDeformationLimit value in the settings file, I've got a stable solution. But the problem is: at the beginning of simulation my elastic pipe deforms very well, but after some period of time the amplitude becomes slower and slower.. and have a value about 1*10^-9 m. I don't know is it a result of my trick or not, but it looks unrealistic for my case. Maybe you will try to make the same thing (increase value interfaceDeformationLimit to 10^6) and run your simulation. I think that together we can solve this problem (with FSI convergence and stability) much faster. Maybe Philipp Cardiff also will give some help to us... |
Hey Svensen,
today I tested your proposal -interfaceDeformationLimit 1e6 and the computation stops after 0.288 because of floating point exception..the displacement goes up to over 150 First I did a mistake and wrote 10e6..the simulation chrashes after 0.288 with a displacement of around 170.... I also tried to changed the number just a litte bit, I took 0.1, but it also stops after 0.216 seconds because of complexe eigenvalues. I am not sure if it is a goog idea to change this value.. the results seem to be unrealistic. I also tried the hint of Philip and changed the fixed under-relaxation factor and used the new IQN-ILS procedur.. but I didn't get better results. I will try further.. we will hopefully find a solution. |
1 Attachment(s)
Dear Cardiff and others,
HronTurekFsi3 in extend-bazaar was working fine, and then I tried to implement the similar case given in http://www.sciencedirect.com/science/article/pii/S0045782505005177 p. 5768 but unfortunately it gives me error I think that error belongs to blockMeshDict file. I went through that case many times but I couldn't notice the error. If any one could go through my attached case and let me know what is the problem, I will be really appreciated. Lots of thanks in advanced. Maimouna |
Hey guys,
Since I have been working on my master thesis with fsiFoam these past few months and since I had lots of problems that other people in these thread had that remain unanswered up at this point, I thought I would shed some light on these that I managed to solve (or temporarily bypass) and throw out a new issue I have encountered hoping that someone may shed some light. Also I want to thank the developers of this package and the continued support for the software and the community. First, to address the globalFaceZones issue during decomposition, there is a simple explanation. After some searching through the source code I realized that there exists a different utility called decomposeParFsi compiled along with the rest of the FluidStructureInteraction package of the extend-bazaar. This works like a charm for decomposing a parallel case, just make sure to setup the face zones of the interface between the 2 meshes properly. Took some search to find, maybe there should be some documentation included along with the solver in some of the tutorials for parallel decomposition, in my opinion at least (maybe an Allrun script for parallel? Shouldn't be that hard to make!) Also, for the restarting issue, I found that the problem lies with the backward d2dt2 scheme for the solid, when the solver can't find the old cell volume file for the solid, it should automatically switch to an Euler scheme (normally) but it doesn't. I haven't messed with the code to fix this, but I found a simple solution to bypass this. You simply need to delete the uniform folder, along with all the "old" values files (like D_0, D_0_0, V0 for the fluid mesh, U_0 and so on) for the time you want to restart from along with using an Euler d2dt2 scheme for the solid mesh and you should be fine restarting your case. Now for a new issue I haven't seen addressed by anyone else yet. I have been trying to use the updated Lagrangian stress model for my simulation since I am working on an HPC model and resources are not really an issue (while simulation time is). I take it that the unsIncrTotalLagrangian stress model implemented along with the solver is the equivalent to an updated Lagrangian stress model from the old icoFsi...SolidFoam solver from the solid Mechanics branch of foam-extend-3.1. I seem to get a segmentation fault as soon as I reach the point in the simulation that the stress modelling happens and I haven't been able to figure out why this happens when I use the unsIncrTotalLagrangian model, while the simple unsTotalLagrangian works just fine. Also I tried using similar settings with my simulation in one of the tutorial cases (the 3dTube) and the unsIncrTotalLagrangian stress model and it seems to run perfectly. I have also enable the built-in debug flag in the stressProperties file, it doesn't print anything out so I guess it doesn't get very far before it crashes. Here is the log file from before my case crashes: Code:
Create time Best regards, Vasilis |
Seeking literature for large strain solid dynamics in OpenFOAM
Dear All,
I am currently in the process of publishing my research on large strain solid dynamics implemented in OpenFOAM. The method we employ (visit my website for more details) is based on a mixed formulation which eliminates the shortcomings posed by the conventional displacement based formulations. As part of the literature review, I am looking for literature (journal publications only) that anyone of you has published regarding large strain solid dynamics in OpenFOAM. After a quick search, I only found one article detailed as follows: @Article{cardiff2014, Title = {A large strain finite volume method for orthotropic bodies with general material orientations}, Author = {Cardiff, Philip and Kara{\v{c}}, A and Ivankovi{\'c}, A}, Journal = {Computer Methods in Applied Mechanics and Engineering}, Year = {2014}, Pages = {318--335}, Volume = {268}, Publisher = {Elsevier}, } I would be pleased to know if there are more articles already published or in the process of publication on this topic. Thanks. |
Quote:
I had a look at the presentation on your website, your approach looks very interesting. I would be very interested in seeing more details on your discretisation and solution methodology. By "mixed", do you mean that your primary variables are displacement/velocity and pressure? As regards publication of large strain solid dynamics in OpenFOAM, I am not aware of another journal paper but there are a few conference papers, such as:
Best regards, Philip |
All times are GMT -4. The time now is 14:04. |