|
[Sponsors] |
February 3, 2015, 11:00 |
enthalpie error
|
#1 |
New Member
Join Date: Mar 2014
Posts: 11
Rep Power: 12 |
Hello,
currently I am trying to calculate the heat transfer in a bubble column with two phases. In order to do so I have to solve a couple of enthalpie equations. Unfortunately the calculation stops at the very beginning with the following report: fehler 8 #0 Foam::error:rintStack(Foam::Ostream&) in "/software/openfoam/2.2.2/OpenFOAM-2.2.2/platforms/linux64GccDPOpt/lib/libOpenFOAM.so" #1 Foam::sigFpe::sigHandler(int) in "/software/openfoam/2.2.2/OpenFOAM-2.2.2/platforms/linux64GccDPOpt/lib/libOpenFOAM.so" #2 at sigaction.c:0 #3 Foam:ICPreconditioner::calcReciprocalD(Foam::Fie ld<double>&, Foam::lduMatrix const&) in "/software/openfoam/2.2.2/OpenFOAM-2.2.2/platforms/linux64GccDPOpt/lib/libOpenFOAM.so" #4 Foam:ICSmoother:ICSmoother(Foam::word const&, Foam::lduMatrix const&, Foam::FieldField<Foam::Field, double> const&, Foam::FieldField<Foam::Field, double> const&, Foam::UPtrList<Foam::lduInterfaceField const> const&) in "/software/openfoam/2.2.2/OpenFOAM-2.2.2/platforms/linux64GccDPOpt/lib/libOpenFOAM.so" #5 Foam::lduMatrix::smoother::addsymMatrixConstructor ToTable<Foam:ICSmoother>::New(Foam::word const&, Foam::lduMatrix const&, Foam::FieldField<Foam::Field, double> const&, Foam::FieldField<Foam::Field, double> const&, Foam::UPtrList<Foam::lduInterfaceField const> const&) in "/software/openfoam/2.2.2/OpenFOAM-2.2.2/platforms/linux64GccDPOpt/lib/libOpenFOAM.so" #6 Foam::lduMatrix::smoother::New(Foam::word const&, Foam::lduMatrix const&, Foam::FieldField<Foam::Field, double> const&, Foam::FieldField<Foam::Field, double> const&, Foam::UPtrList<Foam::lduInterfaceField const> const&, Foam::dictionary const&) in "/software/openfoam/2.2.2/OpenFOAM-2.2.2/platforms/linux64GccDPOpt/lib/libOpenFOAM.so" #7 Foam::GAMGSolver::initVcycle(Foam::PtrList<Foam::F ield<double> >&, Foam::PtrList<Foam::Field<double> >&, Foam::PtrList<Foam::lduMatrix::smoother>&) const in "/software/openfoam/2.2.2/OpenFOAM-2.2.2/platforms/linux64GccDPOpt/lib/libOpenFOAM.so" #8 Foam::GAMGSolver::solve(Foam::Field<double>&, Foam::Field<double> const&, unsigned char) const in "/software/openfoam/2.2.2/OpenFOAM-2.2.2/platforms/linux64GccDPOpt/lib/libOpenFOAM.so" #9 Foam::fvMatrix<double>::solveSegregated(Foam::dict ionary const&) in "/software/openfoam/2.2.2/OpenFOAM-2.2.2/platforms/linux64GccDPOpt/lib/libfiniteVolume.so" #10 Foam::fvMatrix<double>::solve(Foam::dictionary const&) in "/home/rafii/OpenFOAM/rafii-2.2.2/platforms/linux64GccDPOpt/bin/multiphaseTempEulerFoam_CTM_enthalpy_zeroModel" #11 Foam::fvMatrix<double>::solve() in "/home/rafii/OpenFOAM/rafii-2.2.2/platforms/linux64GccDPOpt/bin/multiphaseTempEulerFoam_CTM_enthalpy_zeroModel" #12 in "/home/rafii/OpenFOAM/rafii-2.2.2/platforms/linux64GccDPOpt/bin/multiphaseTempEulerFoam_CTM_enthalpy_zeroModel" #13 __libc_start_main in "/lib64/libc.so.6" #14 in "/home/rafii/OpenFOAM/rafii-2.2.2/platforms/linux64GccDPOpt/bin/multiphaseTempEulerFoam_CTM_enthalpy_zeroModel" Floating point exception The first line saying "fehler 8" gives me the possibility to track the exact position of the problem. The piece of code which causes this problem is as follows: Info<< "fehler 7 " << nl << endl; volScalarField mut1 = nut*rho1; dimensionedScalar null("null",dimensionSet(1,-1,-3,0,0,0,0), scalar(0.0)); Qint1 = min((heatTransferCoeff*(T1-T2)),null);//änderung Info<< "fehler 8 " << nl << endl; solve ( fvm::laplacian((alpha1*mut1), he1_turb) ); Since there exists no possibility that a division by 0 occurs, I wonder where this problem may come from. Can you help me out ? Greatz P_P |
|
February 3, 2015, 11:18 |
|
#2 | |
Senior Member
|
Hi,
Quote:
Code:
void Foam::DICPreconditioner::calcReciprocalD ( scalarField& rD, const lduMatrix& matrix ) { scalar* __restrict__ rDPtr = rD.begin(); ... // Calculate the DIC diagonal register const label nFaces = matrix.upper().size(); for (register label face=0; face<nFaces; face++) { rDPtr[uPtr[face]] -= upperPtr[face]*upperPtr[face]/rDPtr[lPtr[face]]; } // Calculate the reciprocal of the preconditioned diagonal register const label nCells = rD.size(); for (register label cell=0; cell<nCells; cell++) { rDPtr[cell] = 1.0/rDPtr[cell]; } } |
||
February 3, 2015, 11:36 |
|
#3 |
New Member
Join Date: Mar 2014
Posts: 11
Rep Power: 12 |
Thank you very much for your reply,
do you have an idea how to solve this problem? How can i prevent infinity on the diagonal? If this is not possible would another preconditioner be the best solution? |
|
February 3, 2015, 11:47 |
|
#4 |
Senior Member
|
In general the error means diverging solution. Surely you can try to use GAMG (you can find syntax for it in tutorial cases) as preconditioner but the change in precoditioner will not remove inconsistency of initial and boundary conditions, will not correct the model etc.
|
|
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
[OpenFOAM.org] compile error in dynamicMesh and thermophysicalModels libraries | NickG | OpenFOAM Installation | 3 | December 30, 2019 01:21 |
[blockMesh] blockMesh with double grading. | spwater | OpenFOAM Meshing & Mesh Conversion | 92 | January 12, 2019 10:00 |
[swak4Foam] GroovyBC the dynamic cousin of funkySetFields that lives on the suburb of the mesh | gschaider | OpenFOAM Community Contributions | 300 | October 29, 2014 19:00 |
OpenFOAM without MPI | kokizzu | OpenFOAM Installation | 4 | May 26, 2014 10:17 |
DecomposePar links against liblamso0 with OpenMPI | jens_klostermann | OpenFOAM Bugs | 11 | June 28, 2007 18:51 |