CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM Community Contributions (https://www.cfd-online.com/Forums/openfoam-community-contributions/)
-   -   [swak4Foam] groovyBC floating exception (https://www.cfd-online.com/Forums/openfoam-community-contributions/187697-groovybc-floating-exception.html)

xuegy May 12, 2017 23:07

groovyBC floating exception
 
Hello all,

I'm using OpenFOAM to simulate a microchannel. And I have to use groovyBC for a boundary condition. I compiled swak4Foam with OpenFOAM 4.1.

Now the minimum mesh size is around 2.5e-06, and when I'm using decomposePar, I will see a floating exception. It seems like the function 'delta()' in groovyBC is not working. If I use a coarse mesh with a minimum size of 5e-06 there won't be any problem.

My boundary condition (a Robin B.C.) is:
Code:

    bottom
    {
            type groovyBC;
            variables "GT=snGrad(T);DT=7.92e-13;DC=4.4e-12;";
        valueExpression "0";
        gradientExpression "0";
        fractionExpression "1/(1+DC/(DT*GT*mag(delta())))";
    }

And the error message:
Code:

--> FOAM Warning :
    From function groovyBCFvPatchField<Type>::groovyBCFvPatchField(const fvPatch& p,const DimensionedField<Type, volMesh>& iF,const dictionary& dict)
    in file groovyBCFvPatchField.C at line 131
    No value defined for C on bottom therefore using the internal field next to the patch
#0  Foam::error::printStack(Foam::Ostream&) at ??:?
#1  Foam::sigFpe::sigHandler(int) at ??:?
#2  ? in "/lib/x86_64-linux-gnu/libc.so.6"
#3  Foam::divide(Foam::Field<double>&, double const&, Foam::UList<double> const&) at ??:?
#4  Foam::operator/(double const&, Foam::tmp<Foam::Field<double> > const&) at ??:?
#5  Foam::surfaceInterpolation::makeDeltaCoeffs() const at ??:?
#6  Foam::surfaceInterpolation::deltaCoeffs() const at ??:?
#7  Foam::fvPatch::deltaCoeffs() const at ??:?
#8  Foam::groovyBCFvPatchField<double>::groovyBCFvPatchField(Foam::fvPatch const&, Foam::DimensionedField<double, Foam::volMesh> const&, Foam::dictionary const&) at ??:?
#9  Foam::fvPatchField<double>::adddictionaryConstructorToTable<Foam::groovyBCFvPatchField<double> >::New(Foam::fvPatch const&, Foam::DimensionedField<double, Foam::volMesh> const&, Foam::dictionary const&) at ??:?
#10  Foam::fvPatchField<double>::New(Foam::fvPatch const&, Foam::DimensionedField<double, Foam::volMesh> const&, Foam::dictionary const&) at ??:?
#11  Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh>::Boundary::readField(Foam::DimensionedField<double, Foam::volMesh> const&, Foam::dictionary const&) at ??:?
#12  Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh>::readFields(Foam::dictionary const&) at ??:?
#13  Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh>::readFields() at ??:?
#14  Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh>::GeometricField(Foam::IOobject const&, Foam::fvMesh const&) at ??:?
#15  ? at ??:?
#16  ? at ??:?
#17  __libc_start_main in "/lib/x86_64-linux-gnu/libc.so.6"
#18  ? at ??:?
Floating point exception (core dumped)

So how can I fix that? Can I change the length unit in OpenFOAM? Or is there any hidden tolerance settings?

Thanks!

xuegy May 14, 2017 21:04

OK so I have solved this issue by myself. It turned out to be a meshing problem.
I used a faulty STL which is not closed and snappyHexMesh generated a bad mesh without any warning and error. After fixing the STL file it's working properly.


All times are GMT -4. The time now is 17:46.