关于k-w SST湍流模型边界条件设置的疑惑
-
-
谢谢李老师解答疑惑,我换用了层流和kEpsilon模型,但是仍然出现计算发散的问题,使用kEpsilon模型时也出现边界值过大的问题,我怀疑可能是由于设置物性变化过于剧烈的问题。
-
请问,你是在做变物性吗?我最近算的层流也遇见发散的问题,希望能多交流
-
@王慧博 看样子你是在计算超临界水方面的。请问这个问题您是如何解决的?我在计算圆管等热流加热算例,采用kwSST和kEpsilon模型,尝试了buoyantSimpleFoam和rhoSipleFoam都发散,下面是我用rhoSimpleFoam计算kEpsilon的错误信息,不太明白是什么导致的发散或错误。
#0 Foam::error::printStack(Foam::Ostream&)[40] #0 Foam::error::printStack(Foam::Ostream&)[39] #0 Foam::error::printStack(Foam::Ostream&)[38] #0 Foam: :error::printStack(Foam::Ostream&)[37] #0 Foam::error::printStack(Foam::Ostream&)[36] #0 Foam::error::printStack(Foam::Ostream&)[35] #0 Foam::error::printS tack(Foam::Ostream&)[34] #0 Foam::error::printStack(Foam::Ostream&)[33] #0 Foam::error::printStack(Foam::Ostream&)[32] #0 Foam::error::printStack(Foam::Ost ream&)[31] #0 Foam::error::printStack(Foam::Ostream&)[30] #0 [11] #0 Foam::error::printStack(Foam::Ostream&)Foam::error::printStack(Foam::Ostream&)[12] #0 Foam::error::printStack(Foam::Ostream&)[29] #0 [13] #0 Foam::error::printStack(Foam::Ostream&)Foam::error::printStack(Foam::Ostream&)[14] #0 Foam::error:: printStack(Foam::Ostream&)[28] #0 [15] #Foam::error::printStack(Foam::Ostream&)0 Foam::error::printStack(Foam::Ostream&)[16] #0 Foam::error::printStack(Foa m::Ostream&)[27] #0 Foam::error::printStack(Foam::Ostream&)[25] #0 [17] #0 Foam::error::printStack(Foam::Ostream&)Foam::error::printStack(Foam::Ostream&)[2 6] #0 Foam::error::printStack(Foam::Ostream&)[18] #0 Foam::error::printStack(Foam::Ostream&)[21] #0 Foam::error::printStack(Foam::Ostream&)[23] #0 Foam::e rror::printStack(Foam::Ostream&)[24] #0 Foam::error::printStack(Foam::Ostream&)[19] #0 Foam::error::printStack(Foam::Ostream&)[20] #0 Foam::error::printSta ck(Foam::Ostream&)[22] #0 Foam::error::printStack(Foam::Ostream&) at ??:? [36] #1 Foam::sigFpe::sigHandler(int) at ??:? [41] #1 Foam::sigFpe::sigHandler(int) at ??:? #2 ? in "/lib64/libpthread.so.0" [29] #3 Foam::multiply(Foam::Field<double>&, Foam::UList<double> const&, Foam::UList<double> const&) in "/lib64/libpthread.so.0" [28] #3 Foam::multiply(Foam::Field<double>&, Foam::UList<double> const&, Foam::UList<double> const&) at ??:? [37] #4 Foam::tmp<Foam::DimensionedField<double, Foam::volMesh> > Foam::operator*<Foam::volMesh>(Foam::tmp<Foam::DimensionedField<double, Foam::volMesh> > co nst&, Foam::DimensionedField<double, Foam::volMesh> const&) at ??:? [36] #4 Foam::tmp<Foam::DimensionedField<double, Foam::volMesh> > Foam::operator*<Foam::volMesh>(Foam::tmp<Foam::DimensionedField<double, Foam::volMesh> > co nst&, Foam::DimensionedField<double, Foam::volMesh> const&) at ??:? [35] #4 Foam::tmp<Foam::DimensionedField<double, Foam::volMesh> > Foam::operator*<Foam::volMesh>(Foam::tmp<Foam::DimensionedField<double, Foam::volMesh> > co nst&, Foam::DimensionedField<double, Foam::volMesh> const&) at ??:? [36] #5 Foam::RASModels::kEpsilon<Foam::EddyDiffusivity<Foam::ThermalDiffusivity<Foam::CompressibleTurbulenceModel<Foam::fluidThermo> > > >::correct() at ??: ? [37] #5 Foam::RASModels::kEpsilon<Foam::EddyDiffusivity<Foam::ThermalDiffusivity<Foam::CompressibleTurbulenceModel<Foam::fluidThermo> > > >::correct() at ??: ? 5 Foam::RASModels::kEpsilon<Foam::EddyDiffusivity<Foam::ThermalDiffusivity<Foam::CompressibleTurbulenceModel<Foam::fluidThermo> > > >::correct()Foam::RASMode ls::kEpsilon<Foam::EddyDiffusivity<Foam::ThermalDiffusivity<Foam::CompressibleTurbulenceModel<Foam::fluidThermo> > > >::correct()[41] #5 Foam::RASModels::kEp silon<Foam::EddyDiffusivity<Foam::ThermalDiffusivity<Foam::CompressibleTurbulenceModel<Foam::fluidThermo> > > >::correct() at ??:? [30] #5 Foam::RASModels::kEpsilon<Foam::EddyDiffusivity<Foam::ThermalDiffusivity<Foam::CompressibleTurbulenceModel<Foam::fluidThermo> > > >::correct() at ??: ?
这里第一个错误应该是除数错误,下面的模型错误是什么导致,如果边界有问题的话也不会影响湍流模型?以及tmp(DimensionedField)是什么错误,也是边界错误吗?求助
-
//k rho_*epsilon_/k_ //epsilon rho_*Cmu_*sqr(k_)/epsilon_ 为k_和epsilon_接近0,导致除法崩溃,所以使用bound()
可以试试增大epsilon 减小k;连续性残差也偏大,可以试试fvSchemes散度项二阶换一阶。
2019年7月10日 14:09
8/8
2024年8月27日 02:44