Varying U BC not working for settlingFoam
Hi;
timeVaryingUniformFixedValue does not seem to work for settlingFoam! I'm triyng to use it in order to get a variable inlet velocity in the dahl case, following alberto's instructions (http://albertopassalacqua.com/?p=69), and I get the next error message: Starting time loop Time = 0.1 Courant Number mean: 0.0163852 max: 0.0883237 diagonal: Solving for rho, Initial residual = 0, Final residual = 0, No Iterations 0 #0 Foam::error::printStack(Foam::Ostream&) in "/opt/OpenFOAM/OpenFOAM-1.6.x/lib/linux64GccDPOpt/libOpenFOAM.so" #1 Foam::sigSegv::sigSegvHandler(int) in "/opt/OpenFOAM/OpenFOAM-1.6.x/lib/linux64GccDPOpt/libOpenFOAM.so" #2 ?? in "/lib/libc.so.6" #3 Foam::interpolationTable<Foam::Vector<double> >::operator()(double) const in "/opt/OpenFOAM/OpenFOAM-1.6.x/lib/linux64GccDPOpt/libfiniteVolume.so" #4 Foam::timeVaryingUniformFixedValueFvPatchField<Foa m::Vector<double> >::updateCoeffs() in "/opt/OpenFOAM/OpenFOAM-1.6.x/lib/linux64GccDPOpt/libfiniteVolume.so" #5 Foam::fvPatchField<Foam::Vector<double> >::evaluate(Foam::Pstream::commsTypes) in "/opt/OpenFOAM/OpenFOAM-1.6.x/applications/bin/linux64GccDPOpt/settlingFoam" #6 Foam::GeometricField<Foam::Vector<double>, Foam::fvPatchField, Foam::volMesh>::GeometricBoundaryField::evaluate() in "/opt/OpenFOAM/OpenFOAM-1.6.x/applications/bin/linux64GccDPOpt/settlingFoam" #7 main in "/opt/OpenFOAM/OpenFOAM-1.6.x/applications/bin/linux64GccDPOpt/settlingFoam" #8 __libc_start_main in "/lib/libc.so.6" #9 _start at /build/buildd/eglibc-2.10.1/csu/../sysdeps/x86_64/elf/start.S:116 Fallo de segmentación I tried the same procedure for the simpleFoam case, pitzDaily, and it worked perfectly, I use OF-1.6.x Any Ideas? |
Are you using the same file to define the BC in both the cases?
P.S. An unsteady BC in a steady solver (simpleFoam) does not seem correct :-) Best, |
Hi, thanks for the reply!
I am using the same file. Iīve tried also other settlingFoam cases and they didnīt work either. The cavity case (icoFoam) worked fine as well with the same file. There really seems to be some kind of bug in settlingFoam. pitzDaily never getīs to the steady solution. Velocity values show what I expected in the patch where the variable BC was setled, this means that te timeVaryingUniformFixedValue works!. But the case itself gives out crappy preassure results. I was just testing the variable velocity condition. |
Quote:
Vdj.correctBoundaryConditions(); in calcVdj.H. As a temporary fix, waiting for a reply from the developers (I'll open a bug report), considering Vdj is calculated explicitly, you can replace the declaration of Vdj with Code:
volVectorField Vdj I hope this helps. Best, |
Bug reported here: http://www.cfd-online.com/Forums/ope...tml#post255539
|
Excellent!! the fix you suggested worked perfectly. Thank you!
The bug also exists for alpha BC, since Alpha inherits the boundaryField from alpha. I tried a similar fix for this BC. Code:
volScalarField Alpha But I get the next error message when trying to run the case: Quote:
I've tried creating the Alpha BC in the 0 folder of the case, and reading that boundaryField instead of inheriting it from alpha: Code:
volScalarField Alpha Any ideas? |
Please add this to the bug report, so that developers can see it.
Best, |
Ok, I added it to the bug report. Thank you for your answer. :-)
Best, |
I found a "messy" solution for the alpha problem.
I've tried creating the Alpha BC in the 0 folder of the case, and reading that boundaryField instead of inheriting it from alpha: Code: volScalarField Alpha ( IOobject ( "Alpha", runTime.timeName(), mesh, IOobject::MUST_READ, IOobject::AUTO_WRITE ), mesh // alpha*rhod/rho //,alpha.boundaryField().types() ); I changed NO_READ for MUST_READ, and commented the line where it calculates Alpha for the first step. I also added the word mesh. It seems to work fine, but I had to manually calculate and create the Alpha bondaryField File in the 0 folder, and apply the timeVaryingUniformFixedValue to this BC instead of applying it to alpha. P.S.: Note the difference between alpha and Alpha. Alpha= alpha*rhod/rho |
That's OK. But indeed it's messy :-)
The boundaryField inheritance makes the fields automatically consistent but introduces the problem with the interpolationTable. To be safe, compare the results of the tutorial with and without the changes. Best, |
All times are GMT -4. The time now is 14:00. |