CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > Software User Forums > OpenFOAM > OpenFOAM Programming & Development

Adding non-newtonian treatment to reactingTwoPhaseEulerFoam

Register Blogs Community New Posts Updated Threads Search

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   July 11, 2024, 15:21
Default Adding non-newtonian treatment to reactingTwoPhaseEulerFoam
  #1
Senior Member
 
Julio Pieri
Join Date: Sep 2017
Posts: 105
Rep Power: 8
JulioPieri is on a distinguished road
Hi all,

I'm using ESI's OF2212 and I found that there is no non-newtonian treatment in the reactingTwoPhaseEulerFoam. This problem was solved in Foundation's OF11, by the introduction of the laminar turbulence model "generaliSedNewtonian", which deals with shear-viscosity relations.

This functionality has been ported to OF2212 by the name of "generaliZedNewtonian", but it hasn't been implemented for all solvers. The files are there, though.

I tried to simply add this generalizedNewtonian model to the file:
Code:
src/phaseSystemModels/reactingEuler/twoPhaseCompressibleTurbulenceModels/twoPhaseCompressibleTurbulenceModels.C
, which lists and adds turbulence models to the basic construction of the phaseSystem. In a similar fashion as for the RAS models listed, I simply added under "//Laminar Models":

Code:
#include "generalizedNewtonian.H"
makeLaminarModel(generalizedNewtonian);
I managed to compile a "myTwoPhase...." lib and add it to the controlDict. The phaseSystem seems to understand the new turbulence model, but it exits with with a huge error:

Code:
Calculating face flux field phi.water
Selecting turbulence model type laminar
Selecting laminar stress model generalizedNewtonian
Selecting generalized Newtonian model powerLaw
#0  Foam::error::printStack(Foam::Ostream&) in /usr/lib/openfoam/openfoam2212/platforms/linux64GccDPInt32Opt/lib/libOpenFOAM.so
#1  Foam::sigSegv::sigHandler(int) in /usr/lib/openfoam/openfoam2212/platforms/linux64GccDPInt32Opt/lib/libOpenFOAM.so
#2  ? in /lib/x86_64-linux-gnu/libc.so.6
#3  Foam::phaseModel::correct() in /usr/lib/openfoam/openfoam2212/platforms/linux64GccDPInt32Opt/lib/libreactingMultiphaseSystem.so
#4  ? in /usr/lib/openfoam/openfoam2212/platforms/linux64GccDPInt32Opt/lib/libreactingMultiphaseSystem.so
#5  Foam::laminarModels::generalizedNewtonian<Foam::ThermalDiffusivity<Foam::PhaseCompressibleTurbulenceModel<Foam::phaseModel> > >::generalizedNewtonian(Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> const&, Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> const&, Foam::GeometricField<Foam::Vector<double>, Foam::fvPatchField, Foam::volMesh> const&, Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh> const&, Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh> const&, Foam::phaseModel const&, Foam::word const&) in ~/OpenFOAM/jpieri-v2212/platforms/linux64GccDPInt32Opt/lib/libmyTwoPhaseReactingTurbulenceModels.so
#6  Foam::laminarModel<Foam::ThermalDiffusivity<Foam::PhaseCompressibleTurbulenceModel<Foam::phaseModel> > >::adddictionaryConstructorToTable<Foam::laminarModels::generalizedNewtonian<Foam::ThermalDiffusivity<Foam::PhaseCompressibleTurbulenceModel<Foam::phaseModel> > > >::New(Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> const&, Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> const&, Foam::GeometricField<Foam::Vector<double>, Foam::fvPatchField, Foam::volMesh> const&, Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh> const&, Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh> const&, Foam::phaseModel const&, Foam::word const&) in ~/OpenFOAM/jpieri-v2212/platforms/linux64GccDPInt32Opt/lib/libmyTwoPhaseReactingTurbulenceModels.so
#7  ? in /usr/lib/openfoam/openfoam2212/platforms/linux64GccDPInt32Opt/lib/libreactingMultiphaseSystem.so
#8  Foam::TurbulenceModel<Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh>, Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh>, Foam::compressibleTurbulenceModel, Foam::phaseModel>::adddictionaryConstructorToTable<Foam::laminarModel<Foam::ThermalDiffusivity<Foam::PhaseCompressibleTurbulenceModel<Foam::phaseModel> > > >::NewTurbulenceModel(Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> const&, Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> const&, Foam::GeometricField<Foam::Vector<double>, Foam::fvPatchField, Foam::volMesh> const&, Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh> const&, Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh> const&, Foam::phaseModel const&, Foam::word const&) in /usr/lib/openfoam/openfoam2212/platforms/linux64GccDPInt32Opt/lib/libreactingMultiphaseSystem.so
#9  ? in /usr/lib/openfoam/openfoam2212/platforms/linux64GccDPInt32Opt/lib/libreactingMultiphaseSystem.so
#10  ? in /usr/lib/openfoam/openfoam2212/platforms/linux64GccDPInt32Opt/lib/libreactingMultiphaseSystem.so
#11  Foam::phaseModel::addphaseSystemConstructorToTable<Foam::AnisothermalPhaseModel<Foam::PurePhaseModel<Foam::InertPhaseModel<Foam::MovingPhaseModel<Foam::ThermoPhaseModel<Foam::phaseModel, Foam::rhoThermo> > > > > >::New(Foam::phaseSystem const&, Foam::word const&, int) in /usr/lib/openfoam/openfoam2212/platforms/linux64GccDPInt32Opt/lib/libreactingMultiphaseSystem.so
#12  Foam::phaseModel::New(Foam::phaseSystem const&, Foam::word const&, int) in /usr/lib/openfoam/openfoam2212/platforms/linux64GccDPInt32Opt/lib/libreactingMultiphaseSystem.so
#13  Foam::phaseSystem::phaseSystem(Foam::fvMesh const&) in /usr/lib/openfoam/openfoam2212/platforms/linux64GccDPInt32Opt/lib/libreactingMultiphaseSystem.so
#14  Foam::twoPhaseSystem::twoPhaseSystem(Foam::fvMesh const&) in /usr/lib/openfoam/openfoam2212/platforms/linux64GccDPInt32Opt/lib/libreactingTwoPhaseSystem.so
#15  ? in /usr/lib/openfoam/openfoam2212/platforms/linux64GccDPInt32Opt/lib/libreactingTwoPhaseSystem.so
#16  ? in /usr/lib/openfoam/openfoam2212/platforms/linux64GccDPInt32Opt/lib/libreactingTwoPhaseSystem.so
#17  ? in /usr/lib/openfoam/openfoam2212/platforms/linux64GccDPInt32Opt/lib/libreactingTwoPhaseSystem.so
#18  Foam::twoPhaseSystem::adddictionaryConstructorToTable<Foam::PopulationBalancePhaseSystem<Foam::PhaseTransferPhaseSystem<Foam::OneResistanceHeatTransferPhaseSystem<Foam::MomentumTransferPhaseSystem<Foam::twoPhaseSystem> > > > >::New(Foam::fvMesh const&) in /usr/lib/openfoam/openfoam2212/platforms/linux64GccDPInt32Opt/lib/libreactingTwoPhaseSystem.so
#19  Foam::twoPhaseSystem::New(Foam::fvMesh const&) in /usr/lib/openfoam/openfoam2212/platforms/linux64GccDPInt32Opt/lib/libreactingTwoPhaseSystem.so
#20  ? in /usr/lib/openfoam/openfoam2212/platforms/linux64GccDPInt32Opt/bin/reactingTwoPhaseEulerFoam
#21  ? in /lib/x86_64-linux-gnu/libc.so.6
#22  __libc_start_main in /lib/x86_64-linux-gnu/libc.so.6
#23  ? in /usr/lib/openfoam/openfoam2212/platforms/linux64GccDPInt32Opt/bin/reactingTwoPhaseEulerFoam
Segmentation fault
I haven't changed anything else in any file.

First question: did anyone used this laminar model in ESI OpenFOAM, in any solver?
Second question: can this error be a compiling-link (Make/options) error?
Third question: or maybe the portability of this turbulence model was not yet completed, thus leading to untraceable errors?
Fourth question: any suggestion on how to consider a non-newtonian fluid in a twoPhaseEuler simulation?

Note that I converted this same case to OF Foundation. It does run with this generalisedNewtonian model, but I faced many other compatibility errors that are taking me more time to solve than I wanted.

Thank you!
JulioPieri is offline   Reply With Quote

Reply

Tags
generalizednewtonian, non-newtonian, reactingtwophaseeulerfoam


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
chtMultiRegionFoam solver stops without any error amol_patel OpenFOAM Running, Solving & CFD 4 July 5, 2024 01:41
chtmultiRegion case is not generating sets folder in postprocessing boffin5 OpenFOAM Running, Solving & CFD 14 April 19, 2024 17:40
2 ways to mesh a multiRegion case - one works, the other fails boffin5 OpenFOAM Running, Solving & CFD 16 March 27, 2023 12:58
multiRegionHeater error ordinary OpenFOAM Running, Solving & CFD 2 June 9, 2020 17:43
conjugateHeatFoam + interFoam farhagim OpenFOAM Programming & Development 15 July 19, 2016 07:55


All times are GMT -4. The time now is 22:03.