dieselFoam with spray bug
When I use dieselFoam to simulate spray with
collisionModel ORourke()ORourkeCoeffs{ coalescence on;} , I found an error following: Evolving Spray #0 Foam::error::printStack(Foam::Ostream&) in "/root/OpenFOAM/OpenFOAM-1.5/lib/linuxGccDPOpt/libOpenFOAM.so" #1 Foam::sigFpe::sigFpeHandler(int) in "/root/OpenFOAM/OpenFOAM-1.5/lib/linuxGccDPOpt/libOpenFOAM.so" #2 Uninterpreted: [0xb7f7d420] #3 Foam::C7H16::pv(double, double) const in "/root/OpenFOAM/OpenFOAM-1.5/lib/linuxGccDPOpt/libliquids.so" #4 Foam::liquidMixture::pv(double, double, Foam::Field<double> const&) const in "/root/OpenFOAM/OpenFOAM-1.5/lib/linuxGccDPOpt/libliquidMixture.so" #5 Foam::parcel::setRelaxationTimes(int, double&, Foam::Field<double>&, double&, Foam::Field<double>&, Foam::spray const&, double, Foam::Vector<double> const&, double, double, Foam::Field<double> const&, Foam::Field<double> const&, double) in "/root/OpenFOAM/OpenFOAM-1.5/lib/linuxGccDPOpt/libdieselSpray.so" #6 Foam::parcel::move(Foam::spray&) in "/root/OpenFOAM/OpenFOAM-1.5/lib/linuxGccDPOpt/libdieselSpray.so" #7 void Foam::Cloud<Foam::parcel>::move<Foam::spray>(Foam: :spray&) in "/root/OpenFOAM/OpenFOAM-1.5/lib/linuxGccDPOpt/libdieselSpray.so" #8 Foam::spray::move() in "/root/OpenFOAM/OpenFOAM-1.5/lib/linuxGccDPOpt/libdieselSpray.so" #9 Foam::spray::evolve() in "/root/OpenFOAM/OpenFOAM-1.5/lib/linuxGccDPOpt/libdieselSpray.so" #10 main in "/root/OpenFOAM/OpenFOAM-1.5/applications/bin/linuxGccDPOpt/dieselFoam" #11 __libc_start_main in "/lib/libc.so.6" #12 Foam::regIOobject::writeObject(Foam::IOstream::str eamFormat, Foam::IOstream::versionNumber, Foam::IOstream::compressionType) const in "/root/OpenFOAM/OpenFOAM-1.5/applications/bin/linuxGccDPOpt/dieselFoam" Floating point exception |
What is the setup?
is it reproducable? |
When I use collisionModel trajectory, the problem also happened.
So I debug the scource code trajectoryCM.H, I found the error in this file. scalar vAlign = vRel & (p/dist); When dist=0.0,the floating error is appear.On the collision model this means two droplets at the same position.So I force the value of dist not zero,everything goes well.But on collision theory it is correct? |
Quote:
dist is just a normalization so limiting it to SMALL ,or adding SMALL, is a good change. scalar vAlign = vRel & (p/(dist + SMALL)); I should have realized that 2 parcels will someday occupy the same position :rolleyes: |
All times are GMT -4. The time now is 02:15. |