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

getting error while running compressibleInterFoam solver in parallel

Register Blogs Community New Posts Updated Threads Search

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   May 7, 2015, 01:28
Default getting error while running compressibleInterFoam solver in parallel
  #1
New Member
 
mohammed musthafa
Join Date: Dec 2014
Location: India
Posts: 5
Rep Power: 11
muth is on a distinguished road
Am running a case with compressibleInterFoam solver in parallel and am getting this error. can any =one help me to sort out with this error. Thanks in advance

[0]
[0]
[0] --> FOAM FATAL ERROR:
[0] Maximum number of iterations exceeded
[0]
[0] From function thermo<Thermo, Type>::T(scalar f, scalar T0, scalar (thermo<Thermo, Type>::*F)(const scalar) const, scalar (thermo<Thermo, Type>::*dFdT)(const scalar) const, scalar (thermo<Thermo, Type>::*limit)(const scalar) const) const
[0] in file /root/openfoam/OpenFOAM-2.2.2/src/thermophysicalModels/specie/lnInclude/thermoI.H at line 76.
[0]
FOAM parallel run aborting
[0]
[0] #0 Foam::error:rintStack(Foam::Ostream&) in "/usr/local/apps/openfoam/OpenFOAM-2.2.2/platforms/linux64IccDPOpt/lib/libOpenFOAM.so"
[0] #1 Foam::error::abort() in "/usr/local/apps/openfoam/OpenFOAM-2.2.2/platforms/linux64IccDPOpt/lib/libOpenFOAM.so"
[0] #2 Foam::heRhoThermo<Foam::rhoThermo, Foam:ureMixture<Foam::constTransport<Foam::speci es::thermo<Foam::hConstThermo<Foam:erfectFluid<F oam::specie> >, Foam::sensibleInternalEnergy> > > >::calculate() in "/usr/local/apps/openfoam/OpenFOAM-2.2.2/platforms/linux64IccDPOpt/lib/libfluidThermophysicalModels.so"
[0] #3 Foam::heRhoThermo<Foam::rhoThermo, Foam:ureMixture<Foam::constTransport<Foam::speci es::thermo<Foam::hConstThermo<Foam:erfectFluid<F oam::specie> >, Foam::sensibleInternalEnergy> > > >::correct() in "/usr/local/apps/openfoam/OpenFOAM-2.2.2/platforms/linux64IccDPOpt/lib/libfluidThermophysicalModels.so"
[0] #4 Foam::twoPhaseMixtureThermo::correct() in "/usr/local/apps/openfoam/OpenFOAM-2.2.2/platforms/linux64IccDPOpt/lib/libtwoPhaseMixtureThermo.so"
[0] #5
[0] in "/usr/local/apps/openfoam/OpenFOAM-2.2.2/platforms/linux64IccDPOpt/bin/compressibleInterFoam"
[0] #6 __libc_start_main in "/lib64/libc.so.6"
[0] #7
--------------------------------------------------------------------------
MPI_ABORT was invoked on rank 0 in communicator MPI_COMM_WORLD
with errorcode 1.

NOTE: invoking MPI_ABORT causes Open MPI to kill all MPI processes.
You may or may not see output from other processes, depending on
exactly when Open MPI kills them.
--------------------------------------------------------------------------
[0] in "/usr/local/apps/openfoam/OpenFOAM-2.2.2/platforms/linux64IccDPOpt/bin/compressibleInterFoam"
muth is offline   Reply With Quote

Old   September 6, 2017, 08:27
Default
  #2
Member
 
Kristjan
Join Date: Apr 2017
Location: Slovenia
Posts: 36
Rep Power: 9
krikre is on a distinguished road
This is an old thread but and has no replies so I'll post what I know and hope that someone can improve my answer. I'm struggling with this as well.

As far as I can tell, this happens in compressibleInterFoam when temperature is being calculated from internal energy. I don't think it has anything to do with parallelization.

My traceback:
file compressibleInterFoam.C
Code:
#include "TEqn.H"
file TEqn.H
Code:
mixture.correct();
file twoPhaseMixtureThermo.C
Code:
void Foam::twoPhaseMixtureThermo::correct()
thermo1_->correct();
thermo2_->correct();
file heRhoThermo.C
Code:
template<class BasicPsiThermo, class MixtureType> void Foam::heRhoThermo<BasicPsiThermo, MixtureType>::correct()
calculate();
Code:
template<class BasicPsiThermo, class MixtureType> void Foam::heRhoThermo<BasicPsiThermo, MixtureType>::calculate()
TCells[celli] = mixture_.THE(hCells[celli],pCells[celli],TCells[celli]);
file thermoI.H
Code:
template<class Thermo, template<class> class Type> inline Foam::scalar Foam::species::thermodbg<Thermo, Type>::THE 
...
return Type<thermodbg<Thermo, Type> >::THE(*this, he, p, T0);

template<class Thermo, template<class> class Type> inline Foam::scalar Foam::species::thermodbg<Thermo, Type>::TEs

return T(es,        p,        T0,        &thermodbg<Thermo, Type>::Es,       &thermodbg<Thermo, Type>::Cv,        &thermodbg<Thermo, Type>::limit    );
This last call reaches the Newton method for solving T from Es (internal energy: hs - p/rho), where Cv (specific heat at constant voulume: cp - cpMcv) is the derivative in temperature. In my case the equation of state isn't smooth (differentiable) which causes problems for the Newton method. I modified the T function to return the problematic conditions:
Code:
    do
    {
        Test = Tnew;
        Tnew =
            (this->*limit)
            (Test - ((this->*F)(p, Test) - f)/(this->*dFdT)(p, Test));

        if (iter > maxIter_/2)
        {
            Info << "f= " << f << " p= " << p << " *F=" << (this->*F)(p, Test) << " Tnew=" << Tnew << " *dFdT=" << (this->*dFdT)(p, Test) << endl;
        }

        if (iter++ > maxIter_)
        {
            FatalErrorInFunction
                << "Maximum number of iterations exceeded"
                << abort(FatalError);
        }

    } while (mag(Tnew - Test) > Ttol);
This is all I know. I thought of switching from sensibleInternalEnergy to sensibleEnthalpy but
Code:
    thermo1_->validate(phase1Name(), "e");
fails in file twoPhaseMixtureThermo.C. The class (or the whole solver?) appears to be coded for sensibleInternalEnergy only. So if anyone knows how to switch to sensibleEnthalpy, I'll be grateful.

I also don't understand why is temeprature calculated from internal energy or enthalpy? Shouldn't it be enought to solve TEqn.H?
krikre is offline   Reply With Quote

Reply


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
OF 2.0.1 parallel running problems moser_r OpenFOAM Running, Solving & CFD 9 July 27, 2022 03:15
[ANSYS Meshing] Help with element size sandri_92 ANSYS Meshing & Geometry 14 November 14, 2018 07:54
Statically Compiling OpenFOAM Issues herzfeldd OpenFOAM Installation 21 January 6, 2009 09:38
Kubuntu uses dash breaks All scripts in tutorials platopus OpenFOAM Bugs 8 April 15, 2008 07:52
Coupled problem running in parallel liu OpenFOAM Running, Solving & CFD 1 June 24, 2005 05:57


All times are GMT -4. The time now is 10:47.