chtIcoMultiRegionFoam - Incompressible version of chtMultiRegionFoam.
1 Attachment(s)
Hi all,
I have been working with some modified chtMultiRegion codes for some time.. This version is the same I have send to Hrvoje Jasak for inclusion on the next version OpenFOAM-1.6-ext To complie just enter the folder and type "wmake". The solver was tested without turbulence, I will add an test case to this thread as soon as I have time to setup an easy to understand.. Please, keep the references in the source-code.. If you like to reference this solver you can: CANESIN, F. C. : chtIcoMultiRegionFoam, incompressible multi-region fully segregated conjugated heat transfer - http://www.canesin.com/software I hope to see good use of the code, I'm working in an fully coupled version and in some addons and a test case for my undergraduate thesis .. but don't hope for it so soon. Best regards, Fábio C. Canesin |
Hi Fabio,
I have been working on the exact same thing. It is on the shelf for now but beginning next year I will do some work with my solver. Probably I will start with validating against work done by Tiselj (Conjugate heat transfer in channel flow) since I will do fully turbulent DNS. What are you working on? Regards, Steven |
Hi Steven,
I have been working with geometric optimization for active magnetic regenerators .. it is an setup for magnetic cooling. |
Does it works for unstructured meshes?
Hi Fábio,
I've using chtMultiReginFoam, from 1.6.x, for some weeks. Apparently there is an issue with unstructured meshes, or I'm missing something . If you set up a case with uniform temperatures, spurious velocities arises. Have you tried using unstructured meshes? Best regards, Pablo |
Hi Pablo,
I have not.. but, I know that in my solver will not have this issue, because it is a fully segregated approach, it solves velocity and them uses it to transport temperature.. The case in chtMultiRegionFoam cam be from the Boussinesq aproximation, where the temperature field is diverging the pressure.. or maybe some wrong boundary condition.. Best regards, Fábio C. Canesin |
Hi, Canesin,
I will try to see if I can modify the tutorial case in OF-1.7.x to run with your chtIcoMultiRegionFoam solver. Any suggestion before I start? What is the reason of developing the chtIcoMultiRegionFoam over chtMultiRegionFoam (which uses compressible solver for fluid I believe)? Pei |
Quote:
Quote:
|
Hi, Fábio,
Is there any reason why K is required for the fluid region? What value should I use for K if fluid is water? Thanks! Pei |
Quote:
A tipical value for water is 0.6 W/m*k Best regards, Fábio C. Canesin |
Hi, Fábio,
Thanks for the explanation. This is more involved that what I originally expected. I basically used the fluid properties from buoyantBoussinesqPimpleFoam case and also made some changes to the fvSchemes and fvSolution. But, I am getting strange error messages. I will have to look into your code in more detail. Pei -------------------- Solving for fluid region bottomAir DILUPBiCG: Solving for T, Initial residual = 1, Final residual = 4.8181319e-05, No Iterations 1 max(T) [0 0 0 1 0 0 0] 304.7137 --> FOAM FATAL ERROR: request for uniformDimensionedVectorField g from objectRegistry bottomAir failed available objects of type uniformDimensionedVectorField are 0 ( ) From function objectRegistry::lookupObject<Type>(const word&) const in file /home/phsieh/OpenFOAM/OpenFOAM-1.7.x/src/OpenFOAM/lnInclude/objectRegistryTemplates.C at line 139. FOAM aborting #0 Foam::error::printStack(Foam::Ostream&) in "/home/phsieh/OpenFOAM/OpenFOAM-1.7.x/lib/linux64GccDPOpt/libOpenFOAM.so" #1 Foam::error::abort() in "/home/phsieh/OpenFOAM/OpenFOAM-1.7.x/lib/linux64GccDPOpt/libOpenFOAM.so" #2 Foam::UniformDimensionedField<Foam::Vector<double> > const& Foam::objectRegistry::lookupObject<Foam::UniformDi mensionedField<Foam::Vector<double> > >(Foam::word const&) const in "/home/phsieh/OpenFOAM/OpenFOAM-1.7.x/lib/linux64GccDPOpt/libfiniteVolume.so" #3 Foam::buoyantPressureFvPatchScalarField::updateCoe ffs() in "/home/phsieh/OpenFOAM/OpenFOAM-1.7.x/lib/linux64GccDPOpt/libfiniteVolume.so" #4 Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh>::GeometricBoundaryField::updateCoef fs() in "/home/phsieh/OpenFOAM/OpenFOAM-1.7.x/lib/linux64GccDPOpt/libincompressibleRASModels.so" #5 Foam::adjustPhi(Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh>&, Foam::GeometricField<Foam::Vector<double>, Foam::fvPatchField, Foam::volMesh> const&, Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh>&) in "/home/phsieh/OpenFOAM/OpenFOAM-1.7.x/lib/linux64GccDPOpt/libfiniteVolume.so" #6 in "/home/phsieh/OpenFOAM/phsieh-1.7.x/applications/bin/linux64GccDPOpt/chtIcoMultiRegionFoam" #7 __libc_start_main in "/lib64/libc.so.6" #8 at /usr/src/packages/BUILD/glibc-2.11.2/csu/../sysdeps/x86_64/elf/start.S:116 Aborted phsieh@rutgers:~/OpenFOAM/phsieh-1.7.x/run/snappyIcoMultiRegionHeater> |
Hi, Fábio,
Sorry to bother you again. I am wondering which fluid solver your chtIcoMultiRegionFoam was based on? PimpleFoam? buoyantBoyssinesqPimpleFoam? At a quick glance, I did not find the location in the code that g is given. Also, I compiled your chtIcoMultiRegionFoam on OpenFOAM-1.7.x. I am wondering if this makes any difference. However, compilation was successful. Are you planning to write any paper or thesis on your work? Maybe I can read your thesis/paper to figure it out? Pei |
The fluid is based in pimpleFoam .. ... this is not the solver for my work, this is a first generation, as the final version needs the not-released block-matrix solver for do pressure coupling and become fully implicit ..
It should not as for g in the solver .. in the controlDict you have changed the solver ??? O.o .. If you can hold until the weekend I can setup a very basic case for it, and you can them use it to make your case work.. sorry, but I'm doing 53hours/week.. Best regards, Fábio C. Canesin |
Hi, Fábio,
I made some more changes. Now the case is running. This is the same case in the OF-1.7.x/snappyMultiRegionHeater. I will check if the results are reasonable when the run completes. So, this solver does not handle natural convection? Is there any reason why you did not pick buoyantBousinessqPimpleFoam as fluid solver? Pei |
Quote:
|
Quote:
You can see the release notes for OF http://www.openfoam.com/archive/1.7....ease-notes.php Quote:
Regards Pablo |
Hi Fabio,
and thanks for sharing your solver! Incompressible & forced convection & unstructured mesh: this is what I was looking for! Have you made any tests with the turbulence on? I need it in my case. Can you tell me something about that? Regards mad |
I have not done many tests in the turbulence settings.. But it is "FOAM way" of doing turbulence.. If you look at the source code you will see that turbulence is added as an term in the equations using turbulent prandtl and nu ..
You should be able to use any turbulence model from OpenFOAM, but it will be tied with your study case. |
Quote:
One more question, open to everybody: is there anyone that has a steady state version of this incompressible multiregion cht solver? Thank you mad |
Hi all,
does somebody have a simple tutorial for this solver? I have been trying to create a case myself but it keeps generating errors, I guess I am making a mistake somewhere in setting up the case. It would be great if one of you guys could share a simple case you have performed with this solver. Thanks in advance. Kind regards, Steven |
Quote:
I do not have a steady state version because my problem do not have steady state solution. But, you could use larger times steps.. Run fist the potentialFoam to have good fluids fields... tham use something like GAMG to make it more tolerant to instabilities. |
Hi all,
I have set up my mesh as follows: Code:
Fluid_to_Solid Code:
Fluid_to_Solid Any help will be appreciated. Regards, Steven |
Changed the initial condition for T to:
Code:
Fluid_to_Solid |
compressible::turbulentTemperatureCoupledBaffle;
This turbulent BC is not used in the solver.. if you look at the code it use other turbulent library... The solver was developed for laminar cases, turbulence was added for public release, but no correct treatment of the conjugated heat transfer is present in OpenFOAM turbulence libraries, so using the one that you used (the mixedtemperaturecoupled) is the right way to do coupling, also having an fine mesh around the solid surfaces helps a lot in increasing the quality of the simulation |
Thanks for you reply. Now I am sure about the coupling.
I am going to do DNS so I am not bothered with turbulence modelling or wall functions. Thanks again for sharing your work. |
Quote:
What change did you make to resolve Code:
--> FOAM FATAL ERROR: Is there something to do with the code (hopefully not...) or is it located in the directories? Thanks Have a nice day/evening/night (depending on where you are :D) |
Hi all
Your solver is very usefull. Have you a test case? To see necessary dict? Also a simple case. Thanks |
Hi
In my test case I have this error: Create time Create fluid mesh for region Fluido for time = 0 Create solid mesh for region Solido for time = 0 *** Reading fluid mesh thermophysical properties for region Fluido Adding to KFluid Adding to TFluid Adding to pFluid Adding to UFluid Adding to phiFluid Adding to thermoFluid Selecting incompressible transport model Newtonian Adding to turbulence Selecting turbulence model type laminar *** Reading solid mesh thermophysical properties for region Solido Adding to rhos Adding to cps Adding to Ks Adding to Ts Region: Fluido Courant Number mean: 0 max: 2.00134 Region: Solido Diffusion Number mean: 1.528169e-05 max: 3.332232e-05 deltaT = 0.2498326 Region: Fluido Courant Number mean: 0 max: 5 Region: Solido Diffusion Number mean: 3.817864e-05 max: 8.325001e-05 deltaT = 0.2498326 Time = 0.249833 Solving for fluid region Fluido --> FOAM FATAL ERROR: incompatible dimensions for operation [U[0 1 -2 0 0 0 0] ] == [-grad(p)[1 -2 -2 0 0 0 0] ] From function checkMethod(const fvMatrix<Type>&, const GeometricField<Type, fvPatchField, volMesh>&) in file /home/acconcia/OpenFOAM/OpenFOAM-1.6.x/src/finiteVolume/lnInclude/fvMatrix.C at line 1219. FOAM aborting #0 Foam::error::printStack(Foam::Ostream&) in "/home/acconcia/OpenFOAM/OpenFOAM-1.6.x/lib/linuxGccDPOpt/libOpenFOAM.so" #1 Foam::error::abort() in "/home/acconcia/OpenFOAM/OpenFOAM-1.6.x/lib/linuxGccDPOpt/libOpenFOAM.so" #2 void Foam::checkMethod<Foam::Vector<double> >(Foam::fvMatrix<Foam::Vector<double> > const&, Foam::DimensionedField<Foam::Vector<double>, Foam::volMesh> const&, char const*) in "/home/acconcia/OpenFOAM/acconcia-1.6.x/applications/bin/linuxGccDPOpt/chtIcoMultiRegionFoam" #3 in "/home/acconcia/OpenFOAM/acconcia-1.6.x/applications/bin/linuxGccDPOpt/chtIcoMultiRegionFoam" #4 in "/home/acconcia/OpenFOAM/acconcia-1.6.x/applications/bin/linuxGccDPOpt/chtIcoMultiRegionFoam" #5 __libc_start_main in "/lib/tls/i686/cmov/libc.so.6" #6 in "/home/acconcia/OpenFOAM/acconcia-1.6.x/applications/bin/linuxGccDPOpt/chtIcoMultiRegionFoam" How can I solve it? Thanks |
Ciao Daniele,
you have to check your pEqn.H because it looks like you have added a new term that does not have the right dimension! You have something with kg/m that is not coherent with the dimensions of the momentum eq. Hope it helps, |
Yes my previus post is wrong my error is this sorry :)
Create time Create fluid mesh for region Fluido for time = 0 Create solid mesh for region Solido for time = 0 *** Reading fluid mesh thermophysical properties for region Fluido Adding to KFluid Adding to TFluid Adding to pFluid Adding to UFluid Adding to phiFluid Adding to thermoFluid Selecting incompressible transport model Newtonian Adding to turbulence Selecting turbulence model type laminar *** Reading solid mesh thermophysical properties for region Solido Adding to rhos Adding to cps Adding to Ks Adding to Ts Region: Fluido Courant Number mean: 0 max: 2.00134 Region: Solido Diffusion Number mean: 1.528169e-05 max: 3.332232e-05 deltaT = 0.2498326 Region: Fluido Courant Number mean: 0 max: 5 Region: Solido Diffusion Number mean: 3.817864e-05 max: 8.325001e-05 deltaT = 0.2498326 Time = 0.249833 Solving for fluid region Fluido DILUPBiCG: Solving for Ux, Initial residual = 1, Final residual = 4.067041e-06, No Iterations 1 DILUPBiCG: Solving for Uy, Initial residual = 1, Final residual = 3.773002e-06, No Iterations 1 DILUPBiCG: Solving for Uz, Initial residual = 1, Final residual = 5.093329e-07, No Iterations 1 DILUPBiCG: Solving for T, Initial residual = 1, Final residual = 3.398608e-07, No Iterations 1 max(T) [0 0 0 1 0 0 0] 955.9357 --> FOAM FATAL ERROR: request for uniformDimensionedVectorField g from objectRegistry Fluido failed available objects of type uniformDimensionedVectorField are 0 ( ) From function objectRegistry::lookupObject<Type>(const word&) const in file /home/acconcia/OpenFOAM/OpenFOAM-1.6.x/src/OpenFOAM/lnInclude/objectRegistryTemplates.C at line 140. FOAM aborting #0 Foam::error::printStack(Foam::Ostream&) in "/home/acconcia/OpenFOAM/OpenFOAM-1.6.x/lib/linuxGccDPOpt/libOpenFOAM.so" #1 Foam::error::abort() in "/home/acconcia/OpenFOAM/OpenFOAM-1.6.x/lib/linuxGccDPOpt/libOpenFOAM.so" #2 Foam::Ostream& Foam::operator<< <Foam::error>(Foam::Ostream&, Foam::errorManip<Foam::error>) in "/home/acconcia/OpenFOAM/acconcia-1.6.x/applications/bin/linuxGccDPOpt/chtIcoMultiRegionFoam" #3 Foam::UniformDimensionedField<Foam::Vector<double> > const& Foam::objectRegistry::lookupObject<Foam::UniformDi mensionedField<Foam::Vector<double> > >(Foam::word const&) const in "/home/acconcia/OpenFOAM/OpenFOAM-1.6.x/lib/linuxGccDPOpt/libfiniteVolume.so" #4 Foam::buoyantPressureFvPatchScalarField::updateCoe ffs() in "/home/acconcia/OpenFOAM/OpenFOAM-1.6.x/lib/linuxGccDPOpt/libfiniteVolume.so" #5 Foam::fvMatrix<double>::fvMatrix(Foam::GeometricFi eld<double, Foam::fvPatchField, Foam::volMesh>&, Foam::dimensionSet const&) in "/home/acconcia/OpenFOAM/OpenFOAM-1.6.x/lib/linuxGccDPOpt/libincompressibleRASModels.so" #6 Foam::fv::gaussLaplacianScheme<double, double>::fvmLaplacianUncorrected(Foam::GeometricFi eld<double, Foam::fvsPatchField, Foam::surfaceMesh> const&, Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh>&) in "/home/acconcia/OpenFOAM/OpenFOAM-1.6.x/lib/linuxGccDPOpt/libfiniteVolume.so" #7 Foam::fv::gaussLaplacianScheme<double, double>::fvmLaplacian(Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh> const&, Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh>&) in "/home/acconcia/OpenFOAM/OpenFOAM-1.6.x/lib/linuxGccDPOpt/libfiniteVolume.so" #8 Foam::fv::laplacianScheme<double, double>::fvmLaplacian(Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> const&, Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh>&) in "/home/acconcia/OpenFOAM/OpenFOAM-1.6.x/lib/linuxGccDPOpt/libfiniteVolume.so" #9 Foam::tmp<Foam::fvMatrix<double> > Foam::fvm::laplacian<double, double>(Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> const&, Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh>&, Foam::word const&) in "/home/acconcia/OpenFOAM/acconcia-1.6.x/applications/bin/linuxGccDPOpt/chtIcoMultiRegionFoam" #10 Foam::tmp<Foam::fvMatrix<double> > Foam::fvm::laplacian<double, double>(Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> const&, Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh>&) in "/home/acconcia/OpenFOAM/acconcia-1.6.x/applications/bin/linuxGccDPOpt/chtIcoMultiRegionFoam" #11 in "/home/acconcia/OpenFOAM/acconcia-1.6.x/applications/bin/linuxGccDPOpt/chtIcoMultiRegionFoam" #12 __libc_start_main in "/lib/tls/i686/cmov/libc.so.6" #13 in "/home/acconcia/OpenFOAM/acconcia-1.6.x/applications/bin/linuxGccDPOpt/chtIcoMultiRegionFoam" |
Hi
How can I resolve this problem: FOAM FATAL ERROR request for uniformDimensionedVectorField g from objectRegistry Fluido failed available objects of type uniformDimensionedVectorField are ????????????????? Thanks |
Hi Daniele,
I had exactly the same problem (with icoFoam but anyway, still). I just managed to solve it. In my case, the BC were the problems. For, p I had buoyantPressure BC for a wall and it wasn't fitted for icoFoam (with a zeroGradient, it's fine). I will suggest to have a look at your BC, carefully! Hope that can help you |
Me again!
Has anyone created a tutorial or have a running case with chtIcoMultiRegionFoam? Something must be wrong with the case I try to run. All I've got is: Code:
Region: v_fluid Courant Number mean: 0 max: 925.786412 Any hints where it can come from? (I don't join my case but if necessary I will) |
Hi,
(already wrote it in an another post but maybe someone is also interested here) I had a problem with chtIcoMultiRegionFoam compilation with 1.7.x In the file: chtIcoMultiRegionFoam/derivedFvPatchFields/solidWallMixedTemperatureCoupled/solidWallMixedTemperatureCoupledFvPatchScalarField .C just add #include "mapDistribute.H" like this: #include "solidWallMixedTemperatureCoupledFvPatchScalar Fiel d.H" #include "addToRunTimeSelectionTable.H" #include "fvPatchFieldMapper.H" #include "volFields.H" #include "directMappedPatchBase.H" #include "mapDistribute.H" #include "regionProperties.H" maybe could help someone. Jean |
Hi,
Thank you for sharing this solver. Unfortunately, I'm not able to set up my case using it: I've copied the chtMultiRegionFoam tutorial and changed the mesh and the BCs. But it seems I've missed something. Has anybody got a simple running case, so that I'll see how to do? Best regards, Nicolas. |
1 Attachment(s)
Quote:
I recently generated a few elementary test cases with this solver. I include them in the attaced file. I welcome suggestions, corrections, ... Mirko |
Hi Mirko,
thank you very much for these cases. I still have to work on this solver since I'm not able to set up a steadyState case including 1 fluid and 2 solids. But maybe it's quite normal see that the two cases with fluids you shared are transient. Am I mistaking? And once again, thanks for the work. Nicolas |
Quote:
I set-up the fluid/fluid to model a heat exchanger. I have not tried setting up a steady-state case. That is something I need to get familiar with. I would suggest that you make sure you know how to solve steady state case of a pure incompressible solver (i.e., single region problem), before trying it with this one. As for fluid/solid, I should have included that too. It should not be difficult. The same temperature conditions should apply, just decleare one of the regions as solid, and assign appropriate properties. Do it first as transient, and then try steady state. I'm traveling next 2.5 weeks, so I will not be able to work on this. On the other hand, I will attend the OF workshop at Penn State, so hopefully I learn useful stuff for multi-region solvers :-) Mirko |
Ok, I'm going to work following your suggestions.
Have a good workshop! |
Steady state version?
Hello,
nicolasB, Mirco, have you succeeded in creating a steady state version of chtIcoMultiRegionFoam? mad |
1 Attachment(s)
Hi,
I've set up a case with both a solid and a fluid. It seems to run correctly in transient, but I've got something weird with the temperature on steady. I join an archive with these cases (just use the "Allrun" scripts). What I don't understand is why we have to run this solver on transient mode for fluids while it works on steady for solids... Regards, Nicolas |
All times are GMT -4. The time now is 02:30. |