CFD Online Discussion Forums

CFD Online Discussion Forums (http://www.cfd-online.com/Forums/)
-   OpenFOAM Programming & Development (http://www.cfd-online.com/Forums/openfoam-programming-development/)
-   -   Moving mesh analysis Work-flow and options (http://www.cfd-online.com/Forums/openfoam-programming-development/119330-moving-mesh-analysis-work-flow-options.html)

pici June 14, 2013 12:10

Moving mesh analysis Work-flow and options
 
I discovered that openFOAM user manual (the official one) is very poor in term of explanations of various options, needed to perform an analysis.
Also is missing any example about work-flow suggested to prepare a case study. :confused:
Do you know if there exists some doc explaining ALL options needed by mesh moving solvers? or other options too.
I mean something showing dynamicMeshDict and dynamicFvMesh options.
thanks
Piero

p.s. I'm user of Code-Aster open-source software: it has a very large and detailed documentation of about ALL possible analysis. It is in French, but it is not a big problem, isn't? :cool:

fredo490 June 15, 2013 10:20

OpenFoam documentation is really bad and actually nonexistent when you talk about the mesh morphing/motion...

The "best" document you can find is this one: http://www.tfd.chalmers.se/~hani/kur..._Corrected.pdf

There are other documents from different workshops but it's most of the time on OF 1.6 Ext with very specific conditions.


Ps. how is Aster in practice ? Can it manage "strong" mesh morphing ?
I've often heard about it (being French) but I've never met anybody who really use it.

fredo490 June 15, 2013 12:36

You also have this one: http://www.personal.psu.edu/dab143/O...ney_slides.pdf

But most of the technics are not natively included in OpenFoam.

pici June 16, 2013 10:55

Reply to Thread: Moving mesh analysis Work-flow and options
 
""Ps. how is Aster in practice ? Can it manage "strong" mesh morphing ?
I've often heard about it (being French) but I've never met anybody who really use it.
""


Yes, it does. I did only some test, because very large displacements is not my field at present, but my feeling is very good: it seems to be a serious competitor of ABAQUS, ADINA and LS/DYNA.
Ciao
Piero

mturcios777 June 17, 2013 12:44

Quote:

Originally Posted by pici (Post 434043)
I discovered that openFOAM user manual (the official one) is very poor in term of explanations of various options, needed to perform an analysis.
Also is missing any example about work-flow suggested to prepare a case study. :confused:
Do you know if there exists some doc explaining ALL options needed by mesh moving solvers? or other options too.
I mean something showing dynamicMeshDict and dynamicFvMesh options.

The issue you face is that when making a moving mesh case, OpenFOAM does not assume there is a general moving/morphing mesh type. Instead it asks that the type of moving mesh be dpecifies. In dynamicMeshDict there is the keywork dynamicFvMesh that specifies the type of dynamic mesh you want to use for the simulation. You can find these classes in the $FOAM/SRC/dynamicFvMesh folder.

After that, the remaining keywords are dependant on the type of mesh specified. Have a look in the tutorials folder for solver that have DyM in the name (i.e, pimpleDyMFoam) to see example of this.

The upside to this approach is that you are free to create your own dynamic mesh classes if there is no exiting one that will meet your needs, and you can know exactly what is happening to your mesh. The downside is that there is no general way to work with dynamic meshes.

pici June 17, 2013 13:19

Reply to thread 'Moving mesh analysis Work-flow and options'
 
Quote:

Originally Posted by mturcios777 (Post 434478)
The issue you face is that when making a moving mesh case, OpenFOAM does not assume there is a general moving/morphing mesh type. Instead it asks that the type of moving mesh be dpecifies. In dynamicMeshDict there is the keywork dynamicFvMesh that specifies the type of dynamic mesh you want to use for the simulation. You can find these classes in the $FOAM/SRC/dynamicFvMesh folder.

After that, the remaining keywords are dependant on the type of mesh specified. Have a look in the tutorials folder for solver that have DyM in the name (i.e, pimpleDyMFoam) to see example of this.

The upside to this approach is that you are free to create your own dynamic mesh classes if there is no exiting one that will meet your needs, and you can know exactly what is happening to your mesh. The downside is that there is no general way to work with dynamic meshes.

--------------------------------------------------------
I have something to say, also because I'm working in an industrial environment:
- it is NEVER a good practice to read source code to understand how to use a software (think to learn to use Salomé, Code-Aster, CATIA, ProE, Nastran, etc.etc in this way: it is dramatic :eek: other then time consuming ); furthermore, a good CFD or FEM analyst isn't forced to be also a C++ programmer;
- examples are often focused on results, and next to never in general use of options;
- I understand the advantage of the 'upside', but, generally, before to proceed to personalize a software, it is a good practice to understand 'standard' behavior of important options.

The sense of my help question is just to know lists or tables of Dicts in OpenFOAM.

Thank you for your reply; to exchange opinions is very important.
Ciao
Piero

mturcios777 June 17, 2013 13:40

Hi Piero,

I understand what you are saying and where you are coming from. I would argue that there are different degrees of CFD/FEA analysis, and that for certain applications it is much more important to get reasonable results quickly and without having to resort to having a deep knowledge of programming languages, numerical algorithms, or computer science.

However, OpenFOAM addresses a need for those who need more control or customization than is usually encountered in monolithic numerical simulation packages, as well as being able to quickly develop solvers for problems for which there is no existing software (very valuable in academia and R&D). Remember that OpenFOAM is primarliy a collection of libraries for numerical simulation, from which have been created a host of solvers that you see included.

This is largely a philosophical difference, and one that not everyone can and will agree with (which is perfectly reasonable). OpenFOAM may or may not be the tool you need, and its better that everyone find the tool that is best suited to their particular needs. What kind of mesh motion are you interested in simulating? I could point you to a good example case similar to yours if you would like to use OpenFOAM, or suggest alternatives that might work better for your cases.

Regards,
Marco

pici June 18, 2013 06:57

Reply to thread 'Moving mesh analysis Work-flow and options'
 
Quote:

Originally Posted by mturcios777 (Post 434486)
Hi Piero,

I understand what you are saying and where you are coming from. I would argue that there are different degrees of CFD/FEA analysis, and that for certain applications it is much more important to get reasonable results quickly and without having to resort to having a deep knowledge of programming languages, numerical algorithms, or computer science.

However, OpenFOAM addresses a need for those who need more control or customization than is usually encountered in monolithic numerical simulation packages, as well as being able to quickly develop solvers for problems for which there is no existing software (very valuable in academia and R&D). Remember that OpenFOAM is primarliy a collection of libraries for numerical simulation, from which have been created a host of solvers that you see included.

This is largely a philosophical difference, and one that not everyone can and will agree with (which is perfectly reasonable). OpenFOAM may or may not be the tool you need, and its better that everyone find the tool that is best suited to their particular needs. What kind of mesh motion are you interested in simulating? I could point you to a good example case similar to yours if you would like to use OpenFOAM, or suggest alternatives that might work better for your cases.

Regards,
Marco

-----------------------------------
Hi Marco,
I understand your point of view too.
But my philosophy (I don't like in this word, because we are scientists and/or technicians, and I like to discuss about Karl Popper , Karl Marx, Aristotle, DesCartes etc. in other site) is professionalism, that means to give to my customers maximum in term of results, with the maximum productivity, at the right price.
Now, I think: why don't fuse together your and my ideas? I'm in accord that OpenFOAM is really fantastic, because it has a lot of capability, included the personalization with additional special techniques.
But I think that, like other very popular Open Source software, developers should think that their effort could be useful also for other kind of people: all they having a strong knowledge in technical practical problems (Design as well Structural Analysis as well as CFD) but minimal (means very poor, or none) knowledge in programming, so they should try to write some sample instruction how to use their job.

So, at the end, I will appreciate your help with some example about 'sloshing of liquids in moving tanks'.
Solver should be interDyMFoam and I would like to understand differences between already implemented Dict in solidBodyMotionFvMesh.

Thank you again
Piero

mturcios777 June 18, 2013 12:21

I know of a some companies that are creating GUIs/preprocessors for OpenFOAM to address the issues you speak of. Its also how OpenFOAM has decided to monetize their product (by doing trainings, etc). I do agree that moving meshes in particular could be better documented.

As far as liquids in tanks, I assume you have looked at the tutorials in $FOAM_TUTORIALS/multiphase/interDyMFoam and have seen the sloshingTank2D/3D/3/6Dof cases. The biggest difference is the use of SDA vs. tabulated6DoF motion function. SDA is Ship Design Analysis, so a lot of the motion parameters are specific to ship design, which I am not overly familiar with. If you read the $FOAM_SRC/dynamicFvMesh/solidBodyMotionFvMesh/solidBodyMotionFunctions/SDA/SDA.H you can find the names of the inputs required. The naming is always consistent in OF; any inputs required by a dict are shown first as private data, where the private variable has the same name as the input required, with an underscore [_] appended. From what I understand, Tp and heaveA would control how fast and how high the box oscillated sinusoidally in the z direction. If you know about ship design you are ahead of the game here.

The 3D6Dof case uses a tabulated function, which specifies the motion of the solid body in a table. The table is generated using the gen6Dof program (which is nothing special, you can get the same result creating the file in MATLAB or by hand) and specified the motion of the box by two vectors: the first specifies the translation and the second the rotation.

Hope this is helpful to you, let me know if you need more information. One tip I can give you is if you do need to read the code, use the online docs at: http://www.openfoam.org/docs/cpp/. They are searchable, making it easier to find what you need.

pici June 18, 2013 13:19

Quote:

Originally Posted by mturcios777 (Post 434697)
I know of a some companies that are creating GUIs/preprocessors for OpenFOAM to address the issues you speak of. Its also how OpenFOAM has decided to monetize their product (by doing trainings, etc). I do agree that moving meshes in particular could be better documented.

I'm trying to use someone of this sw, but often they are able to create only simple Case, that are really easy to do. Only one, HelyxOS by Engys, seams to be customizable: I'm looking for it.

Quote:

As far as liquids in tanks, I assume you have looked at the tutorials in $FOAM_TUTORIALS/multiphase/interDyMFoam and have seen the sloshingTank2D/3D/3/6Dof cases. The biggest difference is the use of SDA vs. tabulated6DoF motion function. SDA is Ship Design Analysis, so a lot of the motion parameters are specific to ship design, which I am not overly familiar with. If you read the $FOAM_SRC/dynamicFvMesh/solidBodyMotionFvMesh/solidBodyMotionFunctions/SDA/SDA.H you can find the names of the inputs required. The naming is always consistent in OF; any inputs required by a dict are shown first as private data, where the private variable has the same name as the input required, with an underscore [_] appended. From what I understand, Tp and heaveA would control how fast and how high the box oscillated sinusoidally in the z direction. If you know about ship design you are ahead of the game here.
Yes, I already read what you are suggesting; also in original OpenFOAM website. It was the original reason to ask help to this forum (and of my criticism :mad:).
About sloshing, my case is really a ship motion case, where the final customer did a long study with a number of trips in North See to statistically define, at the end, a sinusoidal law, so a simple 'solidBodyMotionFunction, oscillatingRotatingMotion' is enough for the 'standard' motion.

Quote:

The 3D6Dof case uses a tabulated function, which specifies the motion of the solid body in a table. The table is generated using the gen6Dof program (which is nothing special, you can get the same result creating the file in MATLAB or by hand) and specified the motion of the box by two vectors: the first specifies the translation and the second the rotation.

Hope this is helpful to you, let me know if you need more information. One tip I can give you is if you do need to read the code, use the online docs at: http://www.openfoam.org/docs/cpp/. They are searchable, making it easier to find what you need.
If I will conclude something with HelyxOS customization, I will send results to the Forum.
Thank you again.
Piero

p.s. Instead of Matlab (expensive!) try Scliab (made by INRIA and CERN) or Octave: they are both powerful and Open Source.


All times are GMT -4. The time now is 02:13.