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!
|