FGM combustion model
Dear all,
Im looking to implement a combustion model (flamelet generated manifold) into OpenFOAM. My question is whether anyone could point me in the right direction as to where I can link a subroutine to an existing solver or where I can add an extra transport equation. Any help is greatly appreciated, Pieter |
Hello,
I have already implemented this. The whole code is here: http://janus.fms.uni-rostock.de/view...ompositionPdf/ Best regards, Hannes |
Wow, that would seriously save me a huge amount of time. Thanks so much!
If I were to use it, is there any article by your hand I can give reference to? You just made my day, Pieter |
Hello Pieter,
I have presented some details of the implementation and validation results on the OpenFOAM workshop in Milan some time ago: http://www.openfoamworkshop.org/08/p...nesKroeger.pdf You might also have a look at this article: http://dx.doi.org/doi:10.1007/s10494-009-9242-y Hope this helps so far... Best regards, Hannes |
Dear Hannes,
I read the articles and the main part of the code and this is in fact exactly what Im looking for! Any chance you can send me a zipfile with the code, and give a hint where to add/compile it to OpenFOAM? Ill start building you a statue here in Eindhoven, or maybe buy you a beer if ever you are closeby. Best regards, Pieter |
Hi Pieter,
the code is written and tested for OpenFOAM-1.5. You can get the code via subversion. Just change to the $FOAM_SRC directory and checkout by executing the following commands: > src > svn co https://janus.fms.uni-rostock.de/svn...tockExtensions --username=gast When asked for the password just hit the return key. This will create a directory "LTTRostockExtensions" with the code for a library "libLTTRostockExtensions", for a number of solvers and utilities and some thirdparty programs (cantera and Cuba). The directory also contains a "bashrc" file. This file sets some environment variables that will be needed during the build process. It is intended to be sourced in your "~/.bashrc" just after the OF-bashrc file. To do so, just add the following line at the end of your ~/.bashrc: source $FOAM_SRC/LTTRostockExtensions/bashrc Before compiling, you need to make some changes to the LESModel-classes. The changes are in the *.diff files in the "patches" subdirectory. The "ApplyPatches"- script was intended for applying the patches, but I'm not sure if the diff-files are up-to-date and readily applicable to the current OF-1.5-dev files. Just try it. Once this is done, recompile the OF-LESModels and then execute the Allwmake script in the "LTTRostockExtensions"-directory. This should compile the thirdparty stuff, the library and the applications. Maybe, some applications will fail to compile because of errors. You can ignore the errors, provided that your relevant applications are not affected. You need Cantera and Cuba (only the libraries), the libLTTRostockExtensions.so and the solver "pdfOodles" (eventually simplePdfOodles for large timesteps) and "generateILDM" for generating the FGM tables. Maybe you are also interested in the solver thickenedFlameOodles which models combustion using the Artificially Thickened Flame Approach. This is the general outline of the build process. I'm not sure if everything will work out of the box, because I haven't touched the code for over a year (I'm not working in the combustion field any more, I'm now doing propellers). So if you encounter problems, just drop me a mail: hannes dot kr at gmx dot de. Furthermore, I will see if I can clean up some sample cases and add them to the repository. Best regards, Hannes |
This is awesome! Are there any tutorial cases (for FGM solver) available as well ??
Thanks so much, gk |
Hi
I am trying to compile the packages on OpenFOAM-1.5.x Even though I was able to build the library libLTTRostockExtensions.so, I keep getting the same error when buiding the source for pdfOodles, for example. The error is Code:
/home/jrodrig/OpenFOAM-1.5.x/lib/linux64GccDPOpt/libLTTRostockExtensions.so: undefined reference to `Foam::incompressible::LESModel::Deff(Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> const&) const' Regards Jose |
Hi,
Finally, I was able to compile pdfOodles solver. However, now I am struggling with the generateILDM and generateFGM applications. A) First I wanna ask which of these 2 apps is suitable to use with pdfOodles to build the flamelet tables. B) Second, when I compile the source for either app, I keep receiving errors like, Code:
Make/linux64GccDPOpt/ChemicalSystem.o: In function `ChemicalSystem': Also, I could not find the library -lcantera. I am using cantera-1.8 which was compiled with the BLAS and LAPACK libraries installed on my machine (so I use -llapack and -lblas instead of -lctlapack and -lctblas). Any thoughts on this? Somebody that was able to compile this source could give my a hand? I want to use this solver to test it in a case of Flameless combustion. I would really appreciate some help at this stage since I am doing this work for my thesis and time is running low. |
Hi Jose,
A) yes, these two apps generate the chemistry tables. generateFGM was the first approach and generateILDM contains some more methods for chemistry table generation (ILDM, REDIM and FGM). I have only used FGM in my works, the other methods are still construction sites. As far as I remember, you should only need generateILDM. The table generation with FGM may become a bit cumbersome with varying mixture fraction when the flamelet computations cease to converge. You may need to play with setup parameters and restart generateILDM. Constant enthalpy and constant mixture fraction problems should be no problem. The PDF integration is then done, when pdfOodles is started (and the resulting higher dimensional table is cached in a file). When you start pdfOodles in parallel, the integration is also done parallelized. B) I have used cantera-1.7, it is in the "3rdparty" directory. I remember, there were some problems with 1.8 but I'm not sure about the differences. Best regards, Hannes |
Hi, Hannes
Thanks for your great contribution to OpenFOAM and now, also to me. I tried to workaround this compilation problem but with no success. The last error message (bellow) seams to point the error to the cantera installation, rather then to your code. Part of the error message looks like this: Code:
/home/jrodrig/OpenFOAM-1.5.x/src/LTTRostockExtensions/3rdparty/cantera-1.7.0-cvs/platforms/linux64GccDPOpt/lib/libtransport.a(LiquidTransport.o): In function `Cantera::LiquidTransport::init(Cantera::LiquidTransportParams&)': A) Maybe I did a mistake when building cantera. Should I add something more to the preconfig file? Can you provide your preconfig file? B) Am I supposed to have a libcantera.a (-lcantera) on my $CANTERA_INST_DIR/lib folder? C) Is there any chance that you had used a slight different version of cantera? I am using OpenFOAM-1.5.x and cantera-1.7.0-cvs (the one provided in your repository) Regards Jose |
Hi
Ok, I was able to compile finally both generateFGM and generateILDM. However, when I run either I get the message: Code:
jrodrig@pup:~/OpenFOAM-1.5.x/src/LTTRostockExtensions/applications/generateILDM/GRI1.2$ generateILDM How do I use generateILDM?? Regards Jose |
Ok,
Last problem also solved. I just corrected the input arguments code in main.C. Now I Get this: Code:
jrodrig@pup:~/OpenFOAM-1.5.x/src/LTTRostockExtensions/applications/generateILDM/GRI1.2$ generateILDM /*---------------------------------------------------------------------------*\ Jose |
Hi Jose,
I've just started looking into this code, and got a similar error: "undefined reference to `Cantera::Phase:: etc" How did you get rid of this? Thanks, gk |
Hi Rodrigo,
if I remember correctly this error is due to the missing input file. Cantera usually stores all relevant data (reaction mech, thermo data, transport data) in a cti file. But during execution it expects an xml file which sometimes is created automatically. Create your (xml)-input data manually I think the command should be "ct2ctml *.cti" it is situated in the bin directory of your installation. Next the xml needs to be found by the solver usually this works if you put it into the root dir of your case. Please keep us posted how it worked and maybe you can put a small docu here. Markus |
Hi gk,
This problem is happening because there are some libraries missing. The "ultimate" way to do this (for me at least) was to add the same compiler options used to build Cantera to the Make/options file, in the generateILDM folder. Depending on your configuration, the Make/options would look something like this: Code:
EXE_INC = \ Regards Jose |
Hey Markus,
Thx for your help! I only had the time to rerun it now. Turns out the problem was that the gasId was mismatched with the .cti file and the generateILDMdict. Now it runs.... ....till it crashes again. Again, I might be setting up something badly correctly or somethings are missing. So, I run generateILDM in a case directory and after it calculates the tables, it gives the following error message: Code:
Take 40 timesteps 0.0001629 5.132 Code:
/// Number of grid points in this domain. The generateILDMdict is the following: Code:
inputFile "smooke46.cti"; Jose |
Hello Hannes,
unfortunately the svn link isn't working anymore. Is there another way, I can get the files? Thanks, Simon |
Quote:
the link is not avaible now, have you got these files? It will be highly apprieciated if somebody give me hint... thanks. Oliver |
Quote:
thanks |
Hello guys,
the server at the university where I formerly worked at (janus) is out of service now. The repository has moved to another location which I don't know. And I also do not know about the access rules of this server (whether public access is possible). I think Matthias Walter could clarify this. Matthias? For now, I have packed up my latest working copy and put it here for download: http://www.kroegeronline.net/exchang...Extensions.tgz I don't know what the university has planned with the FGM code. I suppose currently nothing. I like the idea to put it in a sourceforge repository with write access for anyone interested and port it to OF 1.6-ext (which I currently use). Hope that helps so far, Hannes |
Hello,
for those who are interested: I have created a git repository for the presumed-PDF, FGM and thickened-Flame combustion stuff at sourceforge. You can clone it like this: > cd $WM_PROJECT_INST_DIR > git clone git://git.code.sf.net/p/ofca/code CombustionAddons The repository contains the code modified to work with OF 1.6-ext. Up to now I have included the library and the solvers. It compiles but I have not tested anything yet. During the next time, I will add the chemistry table generation program and some examples for the solvers. Regards, Hannes |
Thank you very much for your contribution Hannes. Any additional examples are also very welcome.
Regards, Georgios |
flame let
hello
thank you ,Hannes, because of your best code in OF(LTTRostockExtensions). would you please help me how do complie and install it in detail in openfoam 2.0.0 on ubuntu 10.10. i am looking forward to hear from u. best wishes |
equilibrate gives floating point exception
...
reposted as separate thread. ... |
Hello Nichkoohi,
did you succeed using the LTTRostockExtensions in OF 2 ? It worked in OF 1.7. Using OF 2.2 I especially miss the dynamicMixedModel SGS for LES and the simpleGridFilter. |
Hello,
I have not yet tried to port the stuff to anything above OF1.6-ext yet. The former LTTRostockExtensions code is now maintained by Prof. Kornev's group at the modeling and simulation chair (LEMOS). They have started to move the LES stuff to OF2.1. You can find the link to their repository here: http://www.lemos.uni-rostock.de/en/cfd-software/ Hope that helps.. Regards, Hannes |
hi von
thanks for your reply. I could not install and compile that code on OF 2.0.0. however do u have any suggestion for analysis of reacting flow with flamelet/LES modeling for diffusion flame? thanks in advance |
Hi Hannes,
Yes that helped, although I could not run it on Ubuntu 64bit and will try out on 32bit. I try to figure out the advantages of the lagrangian averaging at his thread: http://www.cfd-online.com/Forums/mai...tml#post396621 |
flamelet
hi von
i see the LTTRostockExtensions source code. i think it is same as libopensmoke. did u see it? if yes what is your idea about it? i am going to convert the RAS on opensmoke to LES would u help me? thank u in advance Nichkoohi@yahoo.com |
Hi nichkoohi,
I am afraid I can't help. I implemented LES into interDyMFoam some five or six years ago, when it was not part of the standard OF, and that worked quite well, I could reuse most of the code from lesInterFoam. But for libopensmoke I think you need to implement the whole filtering... |
flamelet
thank u sir
|
flamelet
hi graham
is the lttrostoke same as cuoci libopensmoke code? are u mean the lttrostoke can use the les/flamelet approaches .thanks |
Hi, Does anyone have made any progress in the compilation for 2.X OpenFOAM versions?
The work is hard but the benefits of these extensions worth works on this. |
Hi, I having some problems with the pdfOodles compilling. Someone have compilled the libCombustionAddons for 1.6-extended and have tested the pdfOodles?
My interest is use this code with sprays. Thanks. |
Hello Guilherme,
which problem do you have? Can you post some output or log? Regards, Hannes |
Quote:
I have uploaded the stderr file: http://www.fileswap.com/dl/ZtDXrcgmz/ Is this enough? Thanks! |
Hello Guilherme,
looks like everything compiles but you get linker errors. There is an "undefined reference to 'main'". Is it possible that you built the library via "wmake" instead of "wmake libso"? Regards, Hannes |
who can send me the code LTTRostockExtensions
Hi, all
Is there any one using this code? The links of LTTRostockExtensions above seem invalid now...:( I'm intrested in FMG model, and want to get the code mentioned above. Hope some one can help me. yangdongchao@gmail.com Best Regards Dongchao |
Hi Foamers,
Has anyone succeed in compiling the FGM models in OF 2.3? I tried to do this, but there are some errors: In file included from lnInclude/SIJPDFthermo.H:314, from thermophysicalModels/compositionPdf/abstractProgressVariableThermo/abstractProgressVariableThermo.C:31: lnInclude/SIJPDFthermo.C: In member function 'virtual void Foam::SIJPDFthermo<IndexDriver>::correct()': lnInclude/SIJPDFthermo.C:1170: error: 'psi_' was not declared in this scope lnInclude/SIJPDFthermo.C:1206: error: 'mu_' was not declared in this scope lnInclude/SIJPDFthermo.C:1247: error: 'mu_' was not declared in this scope lnInclude/SIJPDFthermo.C: In member function 'bool Foam::SIJPDFthermo<IndexDriver>::readPreIntegrated TableFromCache()': lnInclude/SIJPDFthermo.C:1446: error: 'psi_' was not declared in this scope lnInclude/SIJPDFthermo.C: In member function 'void Foam::SIJPDFthermo<IndexDriver>::writeCache() const': lnInclude/SIJPDFthermo.C:1492: error: 'psi_' was not declared in this scope can anybody help? Where are these errors come from? Is it because of the different OF version, because this CombustionAddons was previously using in OF1.7. Many thanks in advance! Cheers, Likun |
All times are GMT -4. The time now is 18:15. |