|
[Sponsors] |
April 13, 2016, 09:11 |
Index out of range fatal error
|
#1 |
New Member
Rahand
Join Date: Mar 2016
Posts: 10
Rep Power: 10 |
Hello everyone,
I am trying to implement a new scalar (Bt) in ReactingParcelIO.C in OF 2.4.0 to write and read. The compiling works, but when I run the solver it crushes as soon as the variable should be written with this message: Code:
--> FOAM FATAL ERROR: index 1 out of range 0 ... 0 From function UList<T>::checkIndex(const label) in file /home/user/OpenFOAM/OpenFOAM-2.4.0/src/OpenFOAM/lnInclude/UListI.H at line 109. FOAM aborting #0 Foam::error::printStack(Foam::Ostream&) at ~/OpenFOAM/OpenFOAM-2.4.0/src/OSspecific/POSIX/printStack.C:219 #1 Foam::error::abort() at ~/OpenFOAM/OpenFOAM-2.4.0/src/OpenFOAM/lnInclude/error.C:249 #2 Foam::Ostream& Foam::operator<< <Foam::error>(Foam::Ostream&, Foam::errorManip<Foam::error>) at ~/OpenFOAM/OpenFOAM-2.4.0/src/OpenFOAM/lnInclude/errorManip.H:85 (discriminator 3) #3 Foam::UList<double>::checkIndex(int) const at ~/OpenFOAM/OpenFOAM-2.4.0/src/OpenFOAM/lnInclude/UListI.H:113 #4 Foam::UList<double>::operator[](int) at ~/OpenFOAM/OpenFOAM-2.4.0/src/OpenFOAM/lnInclude/UListI.H:168 #5 ? at ~/OpenFOAM/user-2.4.0/src/mylagrangian/myintermediate/lnInclude/ReactingParcelIO.C:209 (discriminator 1) #6 ? at ~/OpenFOAM/user-2.4.0/src/mylagrangian/myspray/lnInclude/SprayParcelIO.C:249 #7 ? at ~/OpenFOAM/user-2.4.0/src/mylagrangian/myintermediate/lnInclude/ReactingCloud.C:368 #8 ? at ~/OpenFOAM/OpenFOAM-2.4.0/src/lagrangian/basic/lnInclude/CloudIO.C:287 #9 Foam::objectRegistry::writeObject(Foam::IOstream::streamFormat, Foam::IOstream::versionNumber, Foam::IOstream::compressionType) const at ~/OpenFOAM/OpenFOAM-2.4.0/src/OpenFOAM/db/objectRegistry/objectRegistry.C:364 #10 Foam::objectRegistry::writeObject(Foam::IOstream::streamFormat, Foam::IOstream::versionNumber, Foam::IOstream::compressionType) const at ~/OpenFOAM/OpenFOAM-2.4.0/src/OpenFOAM/db/objectRegistry/objectRegistry.C:364 #11 Foam::Time::writeObject(Foam::IOstream::streamFormat, Foam::IOstream::versionNumber, Foam::IOstream::compressionType) const at ~/OpenFOAM/OpenFOAM-2.4.0/src/OpenFOAM/db/Time/TimeIO.C:518 #12 Foam::regIOobject::write() const at ~/OpenFOAM/OpenFOAM-2.4.0/src/OpenFOAM/db/regIOobject/regIOobjectWrite.C:134 #13 ? at ~/OpenFOAM/user-2.4.0/applications/solvers/mysprayFoam/mysprayFoam.C:101 (discriminator 2) #14 __libc_start_main in "/lib64/libc.so.6" #15 ? at /home/abuild/rpmbuild/BUILD/glibc-2.19/csu/../sysdeps/x86_64/start.S:125 Code:
// Check index i is within valid range (0 ... size-1). template<class T> inline void Foam::UList<T>::checkIndex(const label i) const { if (!size_) { FatalErrorIn("UList<T>::checkIndex(const label)") << "attempt to access element from zero sized list" << abort(FatalError); } else if (i<0 || i>=size_) { FatalErrorIn("UList<T>::checkIndex(const label)") << "index " << i << " out of range 0 ... " << size_-1 << abort(FatalError); } } This is the lines where the solver fails. I added Bt there and at some other places to it: Code:
IOField<scalar> mass0(c.fieldIOobject("mass0", IOobject::NO_READ), np); IOField<scalar> Bt(c.fieldIOobject("Bt", IOobject::NO_READ), np); label i = 0; forAllConstIter(typename Cloud<ReactingParcel<ParcelType> >, c, iter) { const ReactingParcel<ParcelType>& p = iter(); mass0[i++] = p.mass0_; Bt[i++] = p.Bt_; } mass0.write(); Bt.write(); Does anyone know a solution? I'll appreciate any help. Thanks! |
|
April 13, 2016, 14:35 |
Solved!
|
#2 |
New Member
Rahand
Join Date: Mar 2016
Posts: 10
Rep Power: 10 |
I solved the problem. It was an array mistake. Changed and works:
Code:
label i = 0; forAllIter(typename Cloud<ReactingParcel<ParcelType> >, c, iter) { ReactingParcel<ParcelType>& p = iter(); p.mass0_ = mass0[i]; p.Bt_ = Bt[i]; i++; } |
|
|
|
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 |
Undeclared Identifier Errof UDF | SteveGoat | Fluent UDF and Scheme Programming | 7 | October 15, 2014 08:11 |
Errors in UDF | shashank312 | Fluent UDF and Scheme Programming | 6 | May 30, 2013 21:30 |
[swak4Foam] groovyBC: problems compiling: "flex: not found" and "undefined reference to ..." | sega | OpenFOAM Community Contributions | 12 | February 17, 2010 10:30 |
Version 15 on Mac OS X | gschaider | OpenFOAM Installation | 113 | December 2, 2009 11:23 |