|
[Sponsors] |
October 3, 2021, 21:40 |
|
#361 |
Senior Member
Pablo Higuera
Join Date: Jan 2011
Location: Auckland
Posts: 627
Rep Power: 19 |
Hi Erik,
isoAdvector ensures that the free surface is sharp without the need for dynamic mesh refinement. I don't remember if at that time the DyM solver version had been unified, but if that is the case it is highly likely that dynamic mesh refinement works on that version, which I am pretty sure is not compatible with 20xx. Nevertheless, isoAdvector has been integrated into OpenFOAM already, so if you need the olaFlow wave generation BCs and no porous media you can link them dynamically: https://openfoamwiki.net/index.php/C...ary_Conditions Hi Peter, Yes, there is a way to sample the function object gauges after completion. If the case is in parallel you should run postProcess in parallel too (mpirun ... -parallel). If that does not work, try to use the -postProcess flag of olaFlow: Code:
mpirun -np X olaFlow -postProcess -fields "(alpha1 U)" -func gaugesVOF -parallel Pablo |
|
October 4, 2021, 11:03 |
|
#362 | |
Member
Grivalszki Péter
Join Date: Mar 2019
Location: Budapest, Hungary
Posts: 39
Rep Power: 7 |
Quote:
Thank you but unfortunately none of them works. The former show its calculations like in the first picture, while the latter is the 2nd picture, but none of them writes the data, at least I do not find it anywhere. Any ideas? Thank you in advance, Peter |
||
October 4, 2021, 12:23 |
|
#363 |
Senior Member
Pablo Higuera
Join Date: Jan 2011
Location: Auckland
Posts: 627
Rep Power: 19 |
Hi Peter,
I have just tested using Code:
olaFlow -postProcess Before that you should check whether the gauges are actually inside your domain. It is easy to miss it and in that case OpenFOAM does not complain, but it does not produce any files either. Best, Pablo |
|
October 4, 2021, 13:08 |
|
#364 |
Member
Grivalszki Péter
Join Date: Mar 2019
Location: Budapest, Hungary
Posts: 39
Rep Power: 7 |
||
October 6, 2021, 00:06 |
|
#365 |
New Member
Erick D. Martinez
Join Date: Oct 2020
Location: Texas
Posts: 29
Rep Power: 6 |
Hi,
Is there any inherent difference between olaFlow and olaDyMFlow in their solvers? I am able to run cases with AMI using olaFlow despite the moving mesh, but I am wondering if there is more differences between ola and olaDyM other than letting you use moving meshes. Thanks, Erick |
|
October 6, 2021, 20:21 |
|
#366 |
Senior Member
Pablo Higuera
Join Date: Jan 2011
Location: Auckland
Posts: 627
Rep Power: 19 |
Hi Erick,
Since a couple of versions back when the DyM solvers were merged into the regular ones, olaDyMFlow is just a symbolic link to olaFlow. I did this to avoid breaking back compatibility with certain scripts. Best, Pablo |
|
October 22, 2021, 00:13 |
Questions for using kOmegaSSTStable turbulence model
|
#367 |
Member
Haoran Zhou
Join Date: Nov 2019
Posts: 51
Rep Power: 7 |
Hi Pablo,
Recently I adopted the buoyancy correction and the stabilised version of kOmegaSST turbulence model which you implemented in olaFlow to run cases and verify the grid independence. I found that these two versions actually work and the results obtained from stabilised version was better. Thus, I want to thank you again for implementing such useful turbulence models. Additionally, I have a few more questions about using kOmegaSSTStable turbulence model and I hope to get your advice: 1. Even though the wave height attenuation is solved, I found that the time history of wave height near the wave generation boundary has a rising trend. Besides, the wave height increases a little bit as well. For example, the preset wave height is 7m, after several periods, the height of wave crest and trough become 4.4m and -3.3m, respectively. I wonder if this is acceptable for wave-structure simulation? 2. It's a common sense that y+ plays an important role in determining the size of boundary layer mesh. Could we adopt a larger y+ value in the stablised version? (In general, it is suggested to have y+<5 or 30<y+<200) I used the calculator provided by CFD online(https://www.cfd-online.com/Tools/yplus.php) to calculate the thickness of first layer. My structure is a caisson breakwater with sloping revetment, as for the 'Freestream velocity' in this calculator, should I use the velocity on the sloping revetment or on the caisson? What about the 'Boundary layer length'? Do you have any comments? Thanks in advance. |
|
October 23, 2021, 08:07 |
|
#368 |
Member
philip lu
Join Date: Aug 2019
Posts: 87
Rep Power: 7 |
Hello, Phicau,
in irregular waves, what is the min. required field length, which won't results in an negative impact on ola's inlet, outlet BCs and high result-inaccuracy forgive my shallow code-insight in ola, thank you in advance for the advice, otherwise the computation task will be horribly large philip |
|
October 25, 2021, 12:57 |
|
#369 |
New Member
Join Date: Oct 2021
Posts: 1
Rep Power: 0 |
Hi Phicau,
Thank you very much for this great toolbox! I have been testing the olaFlow new wave absorption feature and everything has been working great. The past couple of days, however, I noticed that I can't run the simulation at a different startTime (or using latestTime) other than 0. I got the following errors and not sure if you are familiar with or have any insights as to what causes this issue. I'm using olaFlow with OpenFOAM-v2106. Thank you! Code:
Starting time loop Courant Number mean: 0.0121579 max: 0.34433 Interface Courant Number mean: 0 max: 0 deltaT = 0.005 Time = 32.005 PIMPLE: iteration 1 MULES: Solving for alpha.water alpha.water BC on patch inlet Phase-1 volume fraction = 0.500001 Min(alpha.water) = -1.34637e-32 Max(alpha.water) = 1 alpha.water BC on patch inlet MULES: Solving for alpha.water alpha.water BC on patch inlet Phase-1 volume fraction = 0.500002 Min(alpha.water) = -4.92693e-19 Max(alpha.water) = 1 alpha.water BC on patch inlet MULES: Solving for alpha.water alpha.water BC on patch inlet Phase-1 volume fraction = 0.500003 Min(alpha.water) = -9.85387e-19 Max(alpha.water) = 1 DICPCG: Solving for p_rgh, Initial residual = 0.993187, Final residual = 0.0884065, No Iterations 2 time step continuity errors : sum local = 0.0150299, global = 5.8382e-07, cumulative = 5.16745e-06 GAMG: Solving for p_rgh, Initial residual = 0.762835, Final residual = 6.49207e-08, No Iterations 20 Active wave absorption BC on patch outlet Selecting active wave absorption model extendedRangeAWA --> FOAM FATAL ERROR: (openfoam-2106) Not implemented From virtual Foam::Istream& Foam::ITstream::readRaw(char*, std::streamsize) in file db/IOstreams/Tstreams/ITstream.C at line 548. FOAM aborting #0 Foam::error::printStack(Foam::Ostream&) at ??:? #1 Foam::error::exitOrAbort(int, bool) at ??:? #2 Foam::ITstream::readRaw(char*, long) at ??:? #3 Foam::readRawScalar(Foam::Istream&, double*, unsigned long) at ??:? #4 Foam::List<double>::readList(Foam::Istream&) at ??:? #5 Foam::List<double> Foam::dictionary::getOrDefault<Foam::List<double> >(Foam::word const&, Foam::List<double> const&, Foam::keyType::option) const at ??:? #6 Foam::activeWaveAbsorptionModel::initialise() at ??:? #7 Foam::activeWaveAbsorptionModel::activeWaveAbsorptionModel(Foam::fvMesh const&, Foam::polyPatch const&, Foam::dictionary const&) at ??:? #8 Foam::activeWaveAbsorptionModels::extendedRangeAWA::extendedRangeAWA(Foam::fvMesh const&, Foam::polyPatch const&, Foam::dictionary const&) at ??:? #9 Foam::activeWaveAbsorptionModel::addpatchConstructorToTable<Foam::activeWaveAbsorptionModels::extendedRangeAWA>::New(Foam::fvMesh const&, Foam::polyPatch const&, Foam::dictionary const&) at ??:? #10 Foam::activeWaveAbsorptionModel::New(Foam::fvMesh const&, Foam::polyPatch const&, Foam::dictionary const&) at ??:? #11 Foam::activeWaveAbsorptionModel::lookupOrCreate(Foam::polyPatch const&, Foam::fvMesh const&, Foam::dictionary const&) at ??:? #12 Foam::waveAbsorptionVelocityFvPatchVectorField::updateCoeffs() at ??:? #13 Foam::fvPatchField<Foam::Vector<double> >::evaluate(Foam::UPstream::commsTypes) at ??:? #14 Foam::GeometricField<Foam::Vector<double>, Foam::fvPatchField, Foam::volMesh>::Boundary::evaluate() at ??:? #15 ? at ??:? #16 __libc_start_main in /lib64/libc.so.6 #17 ? at ??:? Aborted |
|
October 31, 2021, 20:22 |
|
#370 |
Senior Member
Pablo Higuera
Join Date: Jan 2011
Location: Auckland
Posts: 627
Rep Power: 19 |
Hi Stan,
- Perhaps you should consider the impact of the wave reflections on the structure to evaluate whether that wave height is reasonable. - It all comes down to assessing how important relatively turbulence is in your problem. I would suggest doing some 2D mesh sensitivity tests to test it. Hi Philip, - It all depends on how long your simulation is. I usually run simulations up to 1 h with 512 components, but you can always check how well your target time series is represented with the N highest energy components. Also check this paper out: https://eprints.hrwallingford.com/1355/1/HRPP776.pdf Hi Smiledon, Interesting, thanks for reporting. I will try to take a look in the next couple of weeks. Best, Pablo |
|
November 1, 2021, 06:38 |
|
#371 |
Member
philip lu
Join Date: Aug 2019
Posts: 87
Rep Power: 7 |
hello, Phicaum
thank you so much for the reply. No doubt, your advice is more theoretically correct. To compromise the possible TB-scale results, can I set field length to 2-3L? L: estimated by Tp using deepwater condi, i.e. such 2-3L affects ola-inlet,-outlet BC much? Btw. to save your time: if no your reply, means, 2-3L impact can be tolerated. thank you again. philip |
|
November 2, 2021, 10:42 |
|
#372 |
Member
Haoran Zhou
Join Date: Nov 2019
Posts: 51
Rep Power: 7 |
Hi Pablo,
Thanks for the suggestions. Recently I've been trying to generate N wave(https://www.sciencedirect.com/scienc...78383918302060) which is a kind of tsunami wave to my knowledge. I wonder whether olaFlow is able to do so? At first, I wanted to adopt the piston/flap wavemaker but didn't know how to set the parameters in the python script to get a N wave... Besides, is the wavemaker only suitable for regular waves? By the way, I know many colleagues adopted solitary waves to simulate tsunami waves and there have been some solitary wave theories implemented in olaFlow. However, AFAIK, N waves are quite different from solitary waves. Do you have any comments? |
|
November 3, 2021, 07:04 |
|
#373 |
Senior Member
Pablo Higuera
Join Date: Jan 2011
Location: Auckland
Posts: 627
Rep Power: 19 |
Hi Smiledon,
I have tried to replicate your problem but I have not been able. I tried restarting the baseWaveFlumeNewAbs tutorial after I stopped the computation and start renaming the 0 folder as 30, and I found no problems in doing so. I was using of2106. Can you prepare and send me a small example with which I can replicate the problem to investigate? Hi Philip, Yes, in principle 2-3L sounds reasonable. Hi Stan, There is no N-wave theory coded in olaFlow, but you can easily develop one. You can also use the moving wavemaker to generate N-waves, since this moving BC can produce any time series. You just need to provide the time and displacement (and free surface elevation at the wavemaker, if available). The input format is very easy to understand: https://github.com/phicau/olaFlow/bl...BSMovementDict Best, Pablo |
|
November 4, 2021, 03:52 |
|
#374 | |
Member
Haoran Zhou
Join Date: Nov 2019
Posts: 51
Rep Power: 7 |
Quote:
Thank you for your detailed reply. Yes, I've just seen the input format and it's very easy to understand. I'll adopt this wavemaker to start. Thanks again! |
||
November 4, 2021, 06:21 |
|
#375 |
Member
philip lu
Join Date: Aug 2019
Posts: 87
Rep Power: 7 |
hello Phicau,
many thanks, philip |
|
December 1, 2021, 04:07 |
func obj in ola
|
#376 |
Member
philip lu
Join Date: Aug 2019
Posts: 87
Rep Power: 7 |
hello Phicau,
I run a case of irregular waves, ola works pretty good. A strange but tiny issue: I used OF's run-time sample lines in controlDict, i.e. line1, 2, 3, e.g. line1 { type uniform; axis distance; start (60 0 0); end (60 0 11); nPoints 10000; } (all lines same, except line2, 3 at x=40, 20) line1 worked very good, but line 2, 3 gave only 2 sampled values instead of "10000" at each TS. do you know where i was wrong? thanks in advance, philip |
|
December 5, 2021, 04:46 |
FSI coupling in multiphase
|
#377 |
Member
Haoran Zhou
Join Date: Nov 2019
Posts: 51
Rep Power: 7 |
Hi Pablo,
I'm currently doing FSI coupling adopting our in-house solver (solid part) and olaFlow (fluid part). However, there is a question that's been bothering me: The case I want to simulate includes a porous media baffle, with water on the left side and no water on the right. I want to simulate the process that water on the left flows into the porous media and then flows into the right side. At present, I've got the displacement and the seepage velocity (calculated in our in-house solver) at the interface and passed to that boundary in OpenFOAM. I wonder whether OpenFOAM will automatically calculate the added water according to the boundary velocity I give at the interface? If not, how could I add the additional water due to the seepage velocity on the interface? (I guess it is similar to the process of making waves since there is more water due to the velocity on the wave generation boundary. However, I don't know the specific practice, could you please share some of your experience if you don't mind.) By the way, since the coupling tool I'm using only support x-y plane for 2D cases, I've changed the gravity acceleration to y direction and created the mesh on x-y plane. However, the case crashed once I run olaFlow. Is there anything else that I need to modify to make olaFlow work for x-y plane? Thanks in advance! Last edited by Stan Zhou; December 13, 2021 at 21:31. |
|
December 14, 2021, 04:01 |
Question regarding the wave length
|
#378 |
Member
Felix S.
Join Date: Feb 2021
Location: Germany, Braunschweig
Posts: 88
Rep Power: 6 |
Hello everyone,
so I have a question regarding the computation of the wave length of Stokes-I-waves (sorry, if this topic came up, but I did not find anything by searching the thread). As far as I have understood, the wave length will be initially calculated with the dispersion relation: To solve this equation, iteration is needed. I just found the code implemented in OpenFOAM for interFoam which seems to give the same result as in olaFlow, it reads: 83 for (int i=1; i<=100; i++) 84 { 85 L = L0*tanh(2.0*pi*h/L); 86 } 87 88 return L; 89 } Source: https://www.openfoam.com/documentati...8C_source.html So my problem is that I wanted to try out a really long shallow wave with 60 s in shallow water with 0.31 m and 0.04 m, which leads to a wave length of 104.63 m. The issue I encountered was, that the wave length is calculated to be 954.26384 m, which results from the 100 iteration steps (found in the log file of the solver of either interFoam or olaFlow). Since I am not too familiar with digging into the source-code, I just wanted to ask whether this is actually an issue for calculation or just a visual representation problem and the actual applied wave length is much shorter. Either way, I would find it less confusing, if the wave length would be actually calculated with a while-loop and some stopping criteria, to actually display the right wave length even for really long waves! If I did something wrong, I would also be happy to be corrected by anyone . Thanks for your help in advance! |
|
December 14, 2021, 12:43 |
|
#379 |
Senior Member
Niels Gjoel Jacobsen
Join Date: Mar 2009
Location: Copenhagen, Denmark
Posts: 1,903
Rep Power: 37 |
Hi Felix,
I tried your problem in Matlab and the result is easy to recreate and you will find that the simulation jumps between a small and a big value and converges slowly to the solution. Even after 10,000 iterations, the solution had not converged. I would propose to another solution procedure such as bisection (simple to implement) or non-linear root-finders as e.g. implemented in GNU Scientific Library. An example of the bi-section approach to the linear wave number can be found here for OpenFoam: http://svn.code.sf.net/p/openfoam-ex...stProperties.C Kind regards Niels
__________________
Please note that I do not use the Friend-feature, so do not be offended, if I do not accept a request. |
|
December 21, 2021, 12:55 |
|
#380 |
Member
Felix S.
Join Date: Feb 2021
Location: Germany, Braunschweig
Posts: 88
Rep Power: 6 |
Hey Niels,
thanks for the response! I understand, that the dispersion relation converges quite slowly (I think 25000 iterations or so are needed for my problem). It is also obvious that my problem can be solved by means of coding (I am no pro in that, just learning OpenFoam for fun, which means it takes some time). But increasing the number of iterations was no problem for me. I think the point of my question is: If one uses the approaches which are now implemented in Openfoam or olaFlow with boundaries such as mine, will the solution be wrong? As far as I understand, is the applied wave length calculated incorrectly. But as one does not need the wave length for the application of shallow water waves (wave period is enough), I do not know whether this is an issue, but it looks like one in my simulation. My guess, after I looked into the documentation is, that the general equation for linear waves is used and no simplification. Therefore, wave length has an influence on the applied boundary condition and an additional boundary condition has to be coded by me or someone else for this application. Happy holidays Niels and everyone else Last edited by Felix_Sp; December 28, 2021 at 05:15. |
|
Tags |
olaflow, waves |
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Divergence detected in AMG solver: k when udf loaded | google9002 | Fluent UDF and Scheme Programming | 3 | November 8, 2019 00:34 |
udf problem | jane | Fluent UDF and Scheme Programming | 37 | February 20, 2018 05:17 |
UDF velocity profile | willroca | Fluent UDF and Scheme Programming | 2 | January 10, 2016 04:13 |
Error messages | atg | enGrid | 7 | August 30, 2013 12:16 |
Phase locked average in run time | panara | OpenFOAM | 2 | February 20, 2008 15:37 |