kEpsilon和kOmegaSST仍未解决
-
等热流加热圆管流采用kOmegaSST模型在buoyantSimple和rhoSimple均进行了尝试,发散,虽然有类似贴,但仍未解决该问题。采用kEpsilon求解仍然发散,k,epsilon以及omega都采用公式进行估算,但仍然发散,请大家帮忙查看是否是边界问题:
alphat:copy自带算例,湍流prt默认,该如何改?有公式吗?object alphat; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // dimensions [1 -1 -1 0 0 0 0]; internalField uniform 0; boundaryField { heatflux { type compressible::alphatWallFunction; Prt 0.85; value uniform 0; } outlet { type calculated; value $internalField; } inlet { type calculated; value $internalField; }
k
heatflux { type kqRWallFunction; value uniform 0; } outlet { type zeroGradient; } inlet { type fixedValue; value uniform 2.5e-3; }
nut:查看资料显示对于不可压缩使用nut,对于可压缩则使用mut,但是使用mut系统报错,{查不到nut},不太清楚原因,求各位老师指导。
heatflux { type nutUWallFunction; value uniform 0; } outlet { type calculated; value uniform 0; } inlet { type calculated; value uniform 0; }
omega
heatflux { type omegaWallFunction; value uniform 0.12; } outlet { type zeroGradient; } inlet { type fixedValue; value uniform 0.12; }
p:这里给的是rhoSimple算例
heatflux { type fixedFluxPressure; } outlet { type fixedValue; value uniform 8.8e6; } inlet { type zeroGradient; }
T:这个地方有个Ta,一般出现在热辐射中,但是不给Ta就会报错,就给了个常温
heatflux { type externalWallHeatFluxTemperature; mode flux; q uniform 6000; Ta constant 300; kappaMethod fluidThermo; value $internalField; } outlet { type zeroGradient; } inlet { type fixedValue; value uniform 298.15; }
U
heatflux { type noSlip; } outlet { type zeroGradient; } inlet { type flowRateInletVelocity;; massFlowRate 0.001; extrapolateProfile yes; rho rho; rhoInlet 795.55; }
此外,还计算了kEpsilon模型,下面给出epsilon
heatflux { type epsilonWallFunction; value uniform 4e-06; } inlet { type fixedValue; value $internalField; } outlet { type zeroGradient; }
根据错误log文件,不太确定是否为离散格式存在的问题,下面贴出fvScheme和矩阵求解器
gradSchemes { default Gauss linear; } { default none; div(phi,e) bounded Gauss upwind; div(sigma) Gauss linear; div((nu*dev2(T(grad(U))))) Gauss linear; div((nuM*grad(U))) Gauss linear; div(phid,p) Gauss upwind; div(phi,Ekp) bounded Gauss upwind; div(phi,U) Gauss limitedLinear 1; div(phi,K) Gauss limitedLinear 1; div(phi,h) Gauss limitedLinear 1; div(phi,k) Gauss limitedLinear 1; div(phi,epsilon) Gauss limitedLinear 1; div(phi,omega) bounded Gauss limitedLinear 0.2; div((phi|interpolate(rho)),p) Gauss limitedLinear 1; div(((rho*nuEff)*dev2(T(grad(U))))) Gauss linear; } laplacianSchemes { default Gauss linear corrected; } interpolationSchemes { default linear; } snGradSchemes { default corrected; } wallDist { method meshWave; }
-
@东岳 感谢老师回复,这套网格可能稍微大一些,算例中还加有其他的库。我使用相同的设置对二维的平板也进行了计算,除了说除数为0外,下面的原因和求解器有关吗?
5] #0 [7] #0 [8] #0 [9] #0 [10] #0 [11] #0 [12] #0 [13] #0 [14] #0 [15] #0 [17] #0 [18] #0 [19] #0 [20] #0 [22] #0 [23] #0 Foam::error::printStack(Foam::Ostream&)Foam::error::printStack(Foam::Ostream&)Foam::error::printStack(Foam::Ostream&)Foam::error::printStack(Foam::Ostream&)Foam::error::printStack(Foam::Ostream&)Foam::error::printStack(Foam::Ostream&)Foam::error::printStack(Foam::Ostream&)Foam::error::printStack(Foam::Ostream&)Foam::error::printStack(Foam::Ostream&)Foam::error::printStack(Foam::Ostream&)Foam::error::printStack(Foam::Ostream&)Foam::error::printStack(Foam::Ostream&)Foam::error::printStack(Foam::Ostream&)Foam::error::printStack(Foam::Ostream&)Foam::error::printStack(Foam::Ostream&)Foam::error::printStack(Foam::Ostream&) at ??:? [5] #1 Foam::sigFpe::sigHandler(int) at ??:? [7] #1 Foam::sigFpe::sigHandler(int) at ??:? [8] #1 Foam::sigFpe::sigHandler(int) at ??:? [9] #1 Foam::sigFpe::sigHandler(int) at ??:? [10] #1 Foam::sigFpe::sigHandler(int) at ??:? [11] #1 Foam::sigFpe::sigHandler(int) at ??:? [5] #2 ? at ??:? [7] #2 ? at ??:? [8] #2 ? at ??:? [9] #2 ? at ??:? [10] #2 ? at ??:? [11] #2 ? in "/lib64/libpthread.so.0" [5] #3 Foam::GaussSeidelSmoother::smooth(Foam::word const&, Foam::Field<double>&, Foam::lduMatrix const&, Foam::Field<double> const&, Foam::FieldField<Foam::Field, double> const&, Foam::UPtrList<Foam::lduInterfaceField const> const&, unsigned char, int) in "/lib64/libpthread.so.0" [7] #3 Foam::GaussSeidelSmoother::smooth(Foam::word const&, Foam::Field<double>&, Foam::lduMatrix const&, Foam::Field<double> const&, Foam::FieldField<Foam::Field, double> const&, Foam::UPtrList<Foam::lduInterfaceField const> const&, unsigned char, int) in "/lib64/libpthread.so.0" [8] #3 Foam::GaussSeidelSmoother::smooth(Foam::word const&, Foam::Field<double>&, Foam::lduMatrix const&, Foam::Field<double> const&, Foam::FieldField<Foam::Field, double> const&, Foam::UPtrList<Foam::lduInterfaceField const> const&, unsigned char, int) in "/lib64/libpthread.so.0" [9] #3 Foam::GaussSeidelSmoother::smooth(Foam::word const&, Foam::Field<double>&, Foam::lduMatrix const&, Foam::Field<double> const&, Foam::FieldField<Foam::Field, double> const&, Foam::UPtrList<Foam::lduInterfaceField const> const&, unsigned char, int) in "/lib64/libpthread.so.0" [10] #3 Foam::GaussSeidelSmoother::smooth(Foam::word const&, Foam::Field<double>&, Foam::lduMatrix const&, Foam::Field<double> const&, Foam::FieldField<Foam::Field, double> const&, Foam::UPtrList<Foam::lduInterfaceField const> const&, unsigned char, int) in "/lib64/libpthread.so.0" [11] #3 Foam::GaussSeidelSmoother::smooth(Foam::word const&, Foam::Field<double>&, Foam::lduMatrix const&, Foam::Field<double> const&, Foam::FieldField<Foam::Field, double> const&, Foam::UPtrList<Foam::lduInterfaceField const> const&, unsigned char, int) at ??:? [12] #1 Foam::sigFpe::sigHandler(int) at ??:? [13] #1 Foam::sigFpe::sigHandler(int) at ??:? [14] #1 Foam::sigFpe::sigHandler(int) at ??:? [15] #1 Foam::sigFpe::sigHandler(int) at ??:? [17] #1 Foam::sigFpe::sigHandler(int) at ??:? [18] #1 Foam::sigFpe::sigHandler(int) at ??:? [19] #1 Foam::sigFpe::sigHandler(int) at ??:? [20] #1 Foam::sigFpe::sigHandler(int) at ??:? [22] #1 Foam::sigFpe::sigHandler(int) at ??:? [23] #1 Foam::sigFpe::sigHandler(int) at ??:? [5] #4 Foam::GaussSeidelSmoother::smooth(Foam::Field<double>&, Foam::Field<double> const&, unsigned char, int) const at ??:? [7] #4 Foam::GaussSeidelSmoother::smooth(Foam::Field<double>&, Foam::Field<double> const&, unsigned char, int) const at ??:? [8] #4 Foam::GaussSeidelSmoother::smooth(Foam::Field<double>&, Foam::Field<double> const&, unsigned char, int) const at ??:? [9] #4 Foam::GaussSeidelSmoother::smooth(Foam::Field<double>&, Foam::Field<double> const&, unsigned char, int) const at ??:? [10] #4 Foam::GaussSeidelSmoother::smooth(Foam::Field<double>&, Foam::Field<double> const&, unsigned char, int) const at ??:? [11] #4 Foam::GaussSeidelSmoother::smooth(Foam::Field<double>&, Foam::Field<double> const&, unsigned char, int) const at ??:? [5] #5 Foam::GAMGSolver::Vcycle(Foam::PtrList<Foam::lduMatrix::smoother> const&, Foam::Field<double>&, Foam::Field<double> const&, Foam::Field<double>&, Foam::Field<double>&, Foam::Field<double>&, Foam::Field<double>&, Foam::Field<double>&, Foam::PtrList<Foam::Field<double> >&, Foam::PtrList<Foam::Field<double> >&, unsigned char) const at ??:? [7] #5 Foam::GAMGSolver::Vcycle(Foam::PtrList<Foam::lduMatrix::smoother> const&, Foam::Field<double>&, Foam::Field<double> const&, Foam::Field<double>&, Foam::Field<double>&, Foam::Field<double>&, Foam::Field<double>&, Foam::Field<double>&, Foam::PtrList<Foam::Field<double> >&, Foam::PtrList<Foam::Field<double> >&, unsigned char) const at ??:? [8] #5 Foam::GAMGSolver::Vcycle(Foam::PtrList<Foam::lduMatrix::smoother> const&, Foam::Field<double>&, Foam::Field<double> const&, Foam::Field<double>&, Foam::Field<double>&, Foam::Field<double>&, Foam::Field<double>&, Foam::Field<double>&, Foam::PtrList<Foam::Field<double> >&, Foam::PtrList<Foam::Field<double> >&, unsigned char) const at ??:? [9] #5 Foam::GAMGSolver::Vcycle(Foam::PtrList<Foam::lduMatrix::smoother> const&, Foam::Field<double>&, Foam::Field<double> const&, Foam::Field<double>&, Foam::Field<double>&, Foam::Field<double>&, Foam::Field<double>&, Foam::Field<double>&, Foam::PtrList<Foam::Field<double> >&, Foam::PtrList<Foam::Field<double> >&, unsigned char) const at ??:? [10] #5 Foam::GAMGSolver::Vcycle(Foam::PtrList<Foam::lduMatrix::smoother> const&, Foam::Field<double>&, Foam::Field<double> const&, Foam::Field<double>&, Foam::Field<double>&, Foam::Field<double>&, Foam::Field<double>&, Foam::Field<double>&, Foam::PtrList<Foam::Field<double> >&, Foam::PtrList<Foam::Field<double> >&, unsigned char) const at ??:? [11] #5 Foam::GAMGSolver::Vcycle(Foam::PtrList<Foam::lduMatrix::smoother> const&, Foam::Field<double>&, Foam::Field<double> const&, Foam::Field<double>&, Foam::Field<double>&, Foam::Field<double>&, Foam::Field<double>&, Foam::Field<double>&, Foam::PtrList<Foam::Field<double> >&, Foam::PtrList<Foam::Field<double> >&, unsigned char) const at ??:? [7] #6 Foam::GAMGSolver::solve(Foam::Field<double>&, Foam::Field<double> const&, unsigned char) const at ??:? [8] #6 Foam::GAMGSolver::solve(Foam::Field<double>&, Foam::Field<double> const&, unsigned char) const at ??:? [9] #6 Foam::GAMGSolver::solve(Foam::Field<double>&, Foam::Field<double> const&, un[11] #2 ? in "/lib64/libpthread.so.0" [5] #3 Foam::GaussSeidelSmoother::smooth(Foam::word const&, Foam::Field<double>&, Foam::lduMatrix const&, Foam::Field<double> const&, Foam::FieldField<Foam::Field, double> const&, Foam::UPtrList<Foam::lduInterfaceField const> const&, unsigned char, int) in "/lib64/libpthread.so.0" [7] #3 Foam::GaussSeidelSmoother::smooth(Foam::word const&, Foam::Field<double>&, Foam::lduMatrix const&, Foam::Field<double> const&, Foam::FieldField<Foam::Field, double> const&, Foam::UPtrList<Foam::lduInterfaceField const> const&, unsigned char, int) in "/lib64/libpthread.so.0" [8] #3 Foam::GaussSeidelSmoother::smooth(Foam::word const&, Foam::Field<double>&, Foam::lduMatrix const&, Foam::Field<double> const&, Foam::FieldField<Foam::Field, double> const&, Foam::UPtrList<Foam::lduInterfaceField const> const&, unsigned char, int) in "/lib64/libpthread.so.0" [9] #3 Foam::GaussSeidelSmoother::smooth(Foam::word const&, Foam::Field<double>&, Foam::lduMatrix const&, Foam::Field<double> const&, Foam::FieldField<Foam::Field, double> const&, Foam::UPtrList<Foam::lduInterfaceField const> const&, unsigned char, int) in "/lib64/libpthread.so.0" [10] #3 Foam::GaussSeidelSmoother::smooth(Foam::word const&, Foam::Field<double>&, Foam::lduMatrix const&, Foam::Field<double> const&, Foam::FieldField<Foam::Field, double> const&, Foam::UPtrList<Foam::lduInterfaceField const> const&, unsigned char, int) in "/lib64/libpthread.so.0" [11] #3 Foam::GaussSeidelSmoother::smooth(Foam::word const&, Foam::Field<double>&, Foam::lduMatrix const&, Foam::Field<double> const&, Foam::FieldField<Foam::Field, double> const&, Foam::UPtrList<Foam::lduInterfaceField const> const&, unsigned char, int) at ??:? [12] #1 Foam::sigFpe::sigHandler(int) at ??:? [13] #1 Foam::sigFpe::sigHandler(int) at ??:? [14] #1 Foam::sigFpe::sigHandler(int) at ??:? signed char) const at ??:?
-
@cccrrryyy 感谢.下面是我的checkMesh和输出log文件,稍后贴出完整e.log文件
Patch Faces Points Surface topology frontAndBack 80000 82082 ok (non-closed singly connected) top 1000 2002 ok (non-closed singly connected) bottom 1000 2002 ok (non-closed singly connected) inlet 40 82 ok (non-closed singly connected) outlet 40 82 ok (non-closed singly connected) Checking geometry... Overall domain bounding box (0 0 0) (0.1 0.004 0.001) Mesh has 2 geometric (non-empty/wedge) directions (1 1 0) Mesh has 2 solution (non-empty) directions (1 1 0) All edges aligned with or perpendicular to non-empty directions. Boundary openness (-2.78353e-18 -1.04095e-15 -1.31454e-15) OK. Max cell openness = 1.65436e-16 OK. Max aspect ratio = 1 OK. Minimum face area = 1e-08. Maximum face area = 1e-07. Face area magnitudes OK. Min volume = 1e-11. Max volume = 1e-11. Total volume = 4e-07. Cell volumes OK. Mesh non-orthogonality Max: 0 average: 0 Non-orthogonality check OK. Face pyramids OK. Max skewness = 9.29949e-13 OK. Coupled point location match (average 0) OK. Mesh OK. End
输出log文件
Starting time loop Time = 1 GAMG: Solving for Ux, Initial residual = 1, Final residual = 0.0680002, No Iterations 1 GAMG: Solving for Uy, Initial residual = 1, Final residual = 0.0275716, No Iterations 2 GAMG: Solving for e, Initial residual = 1, Final residual = 0.0497346, No Iterations 1 GAMG: Solving for p, Initial residual = 1, Final residual = 0.0902438, No Iterations 32 time step continuity errors : sum local = 1340.36, global = -1154.13, cumulative = -1154.13 GAMG: Solving for omega, Initial residual = 0.150676, Final residual = 0.0121053, No Iterations 4 GAMG: Solving for k, Initial residual = 1, Final residual = 0.0852085, No Iterations 1 ExecutionTime = 0.29 s ClockTime = 1 s Time = 2 GAMG: Solving for Ux, Initial residual = 0.998917, Final residual = 0.01403, No Iterations 1 GAMG: Solving for Uy, Initial residual = 0.951893, Final residual = 0.0298228, No Iterations 1 GAMG: Solving for e, Initial residual = 0.97607, Final residual = 0.00132126, No Iterations 1 GAMG: Solving for p, Initial residual = 0.00465283, Final residual = 0.000414147, No Iterations 2 time step continuity errors : sum local = 555474, global = 91950.9, cumulative = 90796.8 =================================================================================== = BAD TERMINATION OF ONE OF YOUR APPLICATION PROCESSES = PID 7683 RUNNING AT node295 = EXIT CODE: 8 = CLEANING UP REMAINING PROCESSES = YOU CAN IGNORE THE BELOW CLEANUP MESSAGES
-
错误log,稍微删减了一点
[2] #0 [4] #0 [6] #0 [9] #0 [11] #0 [7] #0 [12] #[14] #0 [17] #0 [15] 0 [21] [22] [23] #0 [19] #[20] #0 #0 #0 0 #0 Foam::error::printStack(Foam::Ostream&)Foam::error::printStack(Foam::Ostream&)Foam::error::printStack(Foam::Ostream&)Foam::error::printStack(Foam::Ostream&)Foam::error::printStack(Foam::Ostream&)[10] #0 Foam::error::printStack(Foam::Ostream&)Foam::error::printStack(Foam::Ostream&)Foam::error::printStack(Foam::Ostream&)Foam::error::printStack(Foam::Ostream&)Foam::error::printStack(Foam::Ostream&)Foam::error::printStack(Foam::Ostream&)Foam::error::printStack(Foam::Ostream&)Foam::error::printStack(Foam::Ostream&)Foam::error::printStack(Foam::Ostream&)Foam::error::printStack(Foam::Ostream&)Foam::error::printStack(Foam::Ostream&) at ??:? [2] #1 Foam::sigFpe::sigHandler(int) at ??:? [4] #1 Foam::sigFpe::sigHandler(int) at ??:? [6] #1 Foam::sigFpe::sigHandler(int) at ??:? [7] #1 Foam::sigFpe::sigHandler(int) at ??:? [9] #1 Foam::sigFpe::sigHandler(int) at ??:? [10] #1 Foam::sigFpe::sigHandler(int) at ??:? [11] #1 Foam::sigFpe::sigHandler(int) at ??:? [2] #2 ? at ??:? [4] #2 ? at ??:? [6] #2 ? at ??:? [7] #2 ? at ??:? [9] #2 ? at ??:? [10] #2 ? at ??:? [11] #2 ? at ??:? at ??:? at ??:? [12] #1 at ??:? [23] #1 [19] #1 Foam::sigFpe::sigHandler(int) at ??:? at ??:? [17] #1 Foam::sigFpe::sigHandler(int)Foam::sigFpe::sigHandler(int) at ??:? [20] #1 Foam::sigFpe::sigHandler(int) at ??:? [21] #1 Foam::sigFpe::sigHandler(int) at ??:? [22] #1 Foam::sigFpe::sigHandler(int)Foam::sigFpe::sigHandler(int)[14] #1 Foam::sigFpe::sigHandler(int)[15] #1 Foam::sigFpe::sigHandler(int) in "/lib64/libpthread.so.0" in "/lib64/libpthread.so.0" in "/lib64/libpthread.so.0" in "/lib64/libpt in "/lib64/libpthread.so.0" in "/lib64/libpthread.so.0" hread.so.0" in "/lib64/libpthread.so.0" [11] #3 [10] #3 [4] #3 Foam::GaussSeidelSmoother::smooth(Foam::word const&, Foam::Field<double>&, Foam::lduMatrix const&, Foam::Field<double> const&, Foam::FieldField<Foam::Field, double> const&, Foam::UPtrList<Foam::lduInterfaceField const> const&, unsigned char, int)Foam::GaussSeidelSmoother::smooth(Foam::word const&, Foam::Field<double>&, Foam::lduMatrix const&, Foam::Field<double> const&, Foam::FieldField<Foam::Field, double> const&, Foam::UPtrList<Foam::lduInterfaceField const> const&, unsigned char, int)[2] #3 Foam::GaussSeidelSmoother::smooth(Foam::word const&, Foam::Field<double>&, Foam::lduMatrix const&, Foam::Field<double> const&, Foam::FieldField<Foam::Field, double> const&, Foam::UPtrList<Foam::lduInterfaceField const> const&, unsigned char, int)[6] #3 Foam::GaussSeidelSmoother::smooth(Foam::word const&, Foam::Field<double>&, Foam::lduMatrix const&, Foam::Field<double> const&, Foam::FieldField<Foam::Field, double> const&, Foam::UPtrList<Foam::lduInterfaceField const> const&, unsigned char, int)[7] #3 Foam::GaussSeidelSmoother::smooth(Foam::word const&, Foam::Field<double>&, Foam::lduMatrix const&, Foam::Field<double> const&, Foam::FieldField<Foam::Field, double> const&, Foam::UPtrList<Foam::lduInterfaceField const> const&, unsigned char, int)Foam::GaussSeidelSmoother::smooth(Foam::word const&, Foam::Field<double>&, Foam::lduMatrix const&, Foam::Field<double> const&, Foam::FieldField<Foam::Field, double> const&, Foam::UPtrList<Foam::lduInterfaceField const> const&, unsigned char, int)[9] #3 Foam::GaussSeidelSmoother::smooth(Foam::word const&, Foam::Field<double>&, Foam::lduMatrix const&, Foam::Field<double> const&, Foam::FieldField<Foam::Field, double> const&, Foam::UPtrList<Foam::lduInterfaceField const> const&, unsigned char, int) at ??:? at ??:? at ??:? [9] #4 Foam::GaussSeidelSmoother::smooth(Foam::Field<double>&, Foam::Field<double> const&, unsigned char, int) const at ??:? [10] #4 Foam::GaussSeidelSmoother::smooth(Foam::Field<double>&, Foam::Field<double> const&, unsigned char, int) const at ??:? [11] #4 Foam::GaussSeidelSmoother::smooth(Foam::Field<double>&, Foam::Field<double> const&, unsigned char, int) const at ??:? [7] #4 Foam::GaussSeidelSmoother::smooth(Foam::Field<double>&, Foam::Field<double> const&, unsigned char, int) const[2] #4 Foam::GaussSeidelSmoother::smooth(Foam::Field<double>&, Foam::Field<double> const&, unsigned char, int) const at ??:? [4] #4 Foam::GaussSeidelSmoother::smooth(Foam::Field<double>&, Foam::Field<double> const&, unsigned char, int) const[6] #4 Foam::GaussSeidelSmoother::smooth(Foam::Field<double>&, Foam::Field<double> const&, unsigned char, int) const at ??:? [2] #5 Foam::GAMGSolver::Vcycle(Foam::PtrList<Foam::lduMatrix::smoother> const&, Foam::Field<double>&, Foam::Field<double> const&, Foam::Field<double>&, Foam::Field<double>&, Foam::Field<double>&, Foam::Field<double>&, Foam::Field<double>&, Foam::PtrList<Foam::Field<double> >&, Foam::PtrList<Foam::Field<double> >&, unsigned char) const at ??:? [4] #5 Foam::GAMGSolver::Vcycle(Foam::PtrList<Foam::lduMatrix::smoother> const&, Foam::Field<double>&, Foam::Field<double> const&, Foam::Field<double>&, Foam::Field<double>&, Foam::Field<double>&, Foam::Field<double>&, Foam::Field<double>&, Foam::PtrList<Foam::Field<double> >&, Foam::PtrList<Foam::Field<double> >&, unsigned char) const at ??:? [6] #5 Foam::GAMGSolver::Vcycle(Foam::PtrList<Foam::lduMatrix::smoother> const&, Foam::Field<double>&, Foam::Field<double> const&, Foam::Field<double>&, Foam::Field<double>&, Foam::Field<double>&, Foam::Field<double>&, Foam::Field<double>&, Foam::PtrList<Foam::Field<double> >&, Foam::PtrList<Foam::Field<double> >&, unsigned char) const at ??:? [7] #5 Foam::GAMGSolver::Vcycle(Foam::PtrList<Foam::lduMatrix::smoother> const&, Foam::Field<double>&, Foam::Field<double> const&, Foam::Field<double>&, Foam::Field<double>&, Foam::Field<double>&, Foam::Field<double>&, Foam::Field<double>&, Foam::PtrList<Foam::Field<double> >&, Foam::PtrList<Foam::Field<double> >&, unsigned char) const at ??:? [9] #5 Foam::GAMGSolver::Vcycle(Foam::PtrList<Foam::lduMatrix::smoother> const&, Foam::Field<double>&, Foam::Field<double> const&, Foam::Field<double>&, Foam::Field<double>&, Foam::Field<double>&, Foam::Field<double>&, Foam::Field<double>&, Foam::PtrList<Foam::Field<double> >&, Foam::PtrList<Foam::Field<double> >&, unsigned char) const at ??:? [10] #5 Foam::GAMGSolver::Vcycle(Foam::PtrList<Foam::lduMatrix::smoother> const&, Foam::Field<double>&, Foam::Field<double> const&, Foam::Field<double>&, Foam::Field<double>&, Foam::Field<double>&, Foam::Field<double>&, Foam::Field<double>&, Foam::PtrList<Foam::Field<double> >&, Foam::PtrList<Foam::Field<double> >&, unsigned char) const at ??:? [11] #5 Foam::GAMGSolver::Vcycle(Foam::PtrList<Foam::lduMatrix::smoother> const&, Foam::Field<double>&, Foam::Field<double> const&, Foam::Field<double>&, Foam::Field<double>&, Foam::Field<double>&, Foam::Field<double>&, Foam::Field<double>&, Foam::PtrList<Foam::Field<double> >&, Foam::PtrList<Foam::Field<double> >&, unsigned char) const at ??:? [2] #6 Foam::GAMGSolver::solve(Foam::Field<double>&, Foam::Field<double> const&, unsigned char) const at ??:? [4] #6 Foam::GAMGSolver::solve(Foam::Field<double>&, Foam::Field<double> const&, unsigned char) const at ??:? [6] #6 Foam::GAMGSolver::solve(Foam::Field<double>&, Foam::Field<double> const&, unsigned char) const at ??:? [7] #6 Foam::GAMGSolver::solve(Foam::Field<double>&, Foam::Field<double> const&, unsigned char) const at ??:? [9] #6 Foam::GAMGSolver::solve(Foam::Field<double>&, Foam::Field<double> const&, unsigned char) const at ??:? [10] #6 Foam::GAMGSolver::solve(Foam::Field<double>&, Foam::Field<double> const&, unsigned char) const at ??:? [11] #6 Foam::GAMGSolver::solve(Foam::Field<double>&, Foam::Field<double> const&, unsigned char) const at ??:? [12] #2 ? at ??:? [14] #2 ? at ??:? [15] #2 ? at ??:? [17] #2 ? at ??:? [19] #2 ? at ??:? [20] #2 ? at ??:? [21] #2 ? at ??:? [22] #2 ? at ??:? [23] #2 ? at ??:? at ??:? at ??:? at ??:? at ??:? at ??:? at ??:? [2] #7 [4] #7 Foam::fvMatrix<double>::solveSegregated(Foam::dictionary const&)[6] #7 [7] #7 Foam::fvMatrix<double>::solveSegregated(Foam::dictionary const&)[9] #7 Foam::fvMatrix<double>::solveSegregated(Foam::dictionary const&)[10] #7 Foam::fvMatrix<double>::solveSegregated(Foam::dictionary const&)[11] #7 Foam::fvMatrix<double>::solveSegregated(Foam::dictionary const&)Foam::fvMatrix<double>::solveSegregated(Foam::dictionary const&)Foam::fvMatrix<double>::solveSegregated(Foam::dictionary const&) in "/lib64/libpthread.so.0" [12] #3 Foam::GaussSeidelSmoother::smooth(Foam::word const&, Foam::Field<double>&, Foam::lduMatrix const&, Foam::Field<double> const&, Foam::FieldField<Foam::Field, double> const&, Foam::UPtrList<Foam::lduInterfaceField const> const&, unsigned char, int) in "/lib64/libpthread.so.0" [14] #3 Foam::GaussSeidelSmoother::smooth(Foam::word const&, Foam::Field<double>&, Foam::lduMatrix const&, Foam::Field<double> const&, Foam::FieldField<Foam::Field, double> const&, Foam::UPtrList<Foam::lduInterfaceField const> const&, unsigned char, int) in "/lib64/libpthread.so.0" in "/lib64/libpthread.so.0" [17] #3 Foam::GaussSeidelSmoother::smooth(Foam::word const&, Foam::Field<double>&, Foam::lduMatrix const&, Foam::Field<double> const&, Foam::FieldField<Foam::Field, double> const&, Foam::UPtrList<Foam::lduInterfaceField const> const&, unsigned char, int) in "/lib64/libpthread.so.0" [19] #3 Foam::GaussSeidelSmoother::smooth(Foam::word const&, Foam::Field<double>&, Foam::lduMatrix const&, Foam::Field<double> const&, Foam::FieldField<Foam::Field, double> const&, Foam::UPtrList<Foam::lduInterfaceField const> const&, unsigned char, int) in "/lib64/libpthread.so.0" [20] #3 Foam::GaussSeidelSmoother::smooth(Foam::word const&, Foam::Field<double>&, Foam::lduMatrix const&, Foam::Field<double> const&, Foam::FieldField<Foam::Field, double> const&, Foam::UPtrList<Foam::lduInterfaceField const> const&, unsigned char, int) in "/lib64/libpthread.so.0" [21] #3 Foam::GaussSeidelSmoother::smooth(Foam::word const&, Foam::Field<double>&, Foam::lduMatrix const&, Foam::Field<double> const&, Foam::FieldField<Foam::Field, double> const&, Foam::UPtrList<Foam::lduInterfaceField const> const&, unsigned char, int) in "/lib64/libpthread.so.0" [22] #3 Foam::GaussSeidelSmoother::smooth(Foam::word const&, Foam::Field<double>&, Foam::lduMatrix const&, Foam::Field<double> const&, Foam::FieldField<Foam::Field, double> const&, Foam::UPtrList<Foam::lduInterfaceField const> const&, unsigned char, int) in "/lib64/libpthread.so.0" [23] #3 Foam::GaussSeidelSmoother::smooth(Foam::word const&, Foam::Field<double>&, Foam::lduMatrix const&, Foam::Field<double> const&, Foam::FieldField<Foam::Field, double> const&, Foam::UPtrList<Foam::lduInterfaceField const> const&, unsigned char, int)[15] #3 Foam::GaussSeidelSmoother::smooth(Foam::word const&, Foam::Field<double>&, Foam::lduMatrix const&, Foam::Field<double> const&, Foam::FieldField<Foam::Field, double> const&, Foam::UPtrList<Foam::lduInterfaceField const> const&, unsigned char, int) at ??:? [2] #8 at ??:? [4] #8 at ??:? [6] #8 at ??:? [7] #8 at ??:? [9] #8 at ??:? [10] #8 at ??:? [11] #8 Foam::fvMatrix<double>::solve(Foam::dictionary const&)Foam::fvMatrix<double>::solve(Foam::dictionary const&)Foam::fvMatrix<double>::solve(Foam::dictionary const&)Foam::fvMatrix<double>::solve(Foam::dictionary const&)Foam::fvMatrix<double>::solve(Foam::dictionary const&)Foam::fvMatrix<double>::solve(Foam::dictionary const&)Foam::fvMatrix<double>::solve(Foam::dictionary const&) at ??:? [2] #9 at ??:? [4] #9 at ??:? [6] #9 at ??:? [7] #9 at ??:? [9] #9 at ??:? [10] #9 at ??:? [11] #9 Foam::fvMatrix<double>::solve()Foam::fvMatrix<double>::solve()Foam::fvMatrix<double>::solve()Foam::fvMatrix<double>::solve()Foam::fvMatrix<double>::solve()Foam::fvMatrix<double>::solve()Foam::fvMatrix<double>::solve() at ??:? [2] #10 Foam::SolverPerformance<double> Foam::solve<double>(Foam::tmp<Foam::fvMatrix<double> > const&) at ??:? [4] #10 Foam::SolverPerformance<double> Foam::solve<double>(Foam::tmp<Foam::fvMatrix<double> > const&) at ??:? [6] #10 Foam::SolverPerformance<double> Foam::solve<double>(Foam::tmp<Foam::fvMatrix<double> > const&) at ??:? [7] #10 Foam::SolverPerformance<double> Foam::solve<double>(Foam::tmp<Foam::fvMatrix<double> > const&) at ??:? [9] #10 Foam::SolverPerformance<double> Foam::solve<double>(Foam::tmp<Foam::fvMatrix<double> > const&) at ??:? [10] #10 Foam::SolverPerformance<double> Foam::solve<double>(Foam::tmp<Foam::fvMatrix<double> > const&) at ??:? [11] #10 Foam::SolverPerformance<double> Foam::solve<double>(Foam::tmp<Foam::fvMatrix<double> > const&) at ??:? [12] #4 Foam::GaussSeidelSmoother::smooth(Foam::Field<double>&, Foam::Field<double> const&, unsigned char, int) const at ??:? [14] #4 Foam::GaussSeidelSmoother::smooth(Foam::Field<double>&, Foam::Field<double> const&, unsigned char, int) const at ??:? [15] #4 Foam::GaussSeidelSmoother::smooth(Foam::Field<double>&, Foam::Field<double> const&, unsigned char, int) const at ??:? [17] #4 Foam::GaussSeidelSmoother::smooth(Foam::Field<double>&, Foam::Field<double> const&, unsigned char, int) const at ??:? [19] #4 Foam::GaussSeidelSmoother::smooth(Foam::Field<double>&, Foam::Field<double> const&, unsigned char, int) const at ??:? [20] #4 Foam::GaussSeidelSmoother::smooth(Foam::Field<double>&, Foam::Field<double> const&, unsigned char, int) const at ??:? [21] #4 Foam::GaussSeidelSmoother::smooth(Foam::Field<double>&, Foam::Field<double> const&, unsigned char, int) const at ??:? [22] #4 Foam::GaussSeidelSmoother::smooth(Foam::Field<double>&, Foam::Field<double> const&, unsigned char, int) const at ??:? [23] #4 Foam::GaussSeidelSmoother::smooth(Foam::Field<double>&, Foam::Field<double> const&, unsigned char, int) const at ??:? [2] #11 Foam::kOmegaSST<Foam::eddyViscosity<Foam::RASModel<Foam::EddyDiffusivity<Foam::ThermalDiffusivity<Foam::CompressibleTurbulenceModel<Foam::fluidThermo> > > > >, Foam::EddyDiffusivity<Foam::ThermalDiffusivity<Foam::CompressibleTurbulenceModel<Foam::fluidThermo> > > >::correct() at ??:? [4] #11 Foam::kOmegaSST<Foam::eddyViscosity<Foam::RASModel<Foam::EddyDiffusivity<Foam::ThermalDiffusivity<Foam::CompressibleTurbulenceModel<Foam::fluidThermo> > > > >, Foam::EddyDiffusivity<Foam::ThermalDiffusivity<Foam::CompressibleTurbulenceModel<Foam::fluidThermo> > > >::correct() at ??:? [6] #11 Foam::kOmegaSST<Foam::eddyViscosity<Foam::RASModel<Foam::EddyDiffusivity<Foam::ThermalDiffusivity<Foam::CompressibleTurbulenceModel<Foam::fluidThermo> > > > >, Foam::EddyDiffusivity<Foam::ThermalDiffusivity<Foam::CompressibleTurbulenceModel<Foam::fluidThermo> > > >::correct() at ??:? [7] #11 Foam::kOmegaSST<Foam::eddyViscosity<Foam::RASModel<Foam::EddyDiffusivity<Foam::ThermalDiffusivity<Foam::CompressibleTurbulenceModel<Foam::fluidThermo> > > > >, Foam::EddyDiffusivity<Foam::ThermalDiffusivity<Foam::CompressibleTurbulenceModel<Foam::fluidThermo> > > >::correct() at ??:? [9] #11 Foam::kOmegaSST<Foam::eddyViscosity<Foam::RASModel<Foam::EddyDiffusivity<Foam::ThermalDiffusivity<Foam::CompressibleTurbulenceModel<Foam::fluidThermo> > > > >, Foam::EddyDiffusivity<Foam::ThermalDiffusivity<Foam::CompressibleTurbulenceModel<Foam::fluidThermo> > > >::correct() at ??:? [10] #11 Foam::kOmegaSST<Foam::eddyViscosity<Foam::RASModel<Foam::EddyDiffusivity<Foam::ThermalDiffusivity<Foam::CompressibleTurbulenceModel<Foam::fluidThermo> > > > >, Foam::EddyDiffusivity<Foam::ThermalDiffusivity<Foam::CompressibleTurbulenceModel<Foam::fluidThermo> > > >::correct() at ??:? [11] #11 Foam::kOmegaSST<Foam::eddyViscosity<Foam::RASModel<Foam::EddyDiffusivity<Foam::ThermalDiffusivity<Foam::CompressibleTurbulenceModel<Foam::fluidThermo> > > > >, Foam::EddyDiffusivity<Foam::ThermalDiffusivity<Foam::CompressibleTurbulenceModel<Foam::fluidThermo> > > >::correct() at ??:? [2] #12 at ??:? [4] #12 at ??:? [6] #12 at ??:? [7] #12 at ??:? [9] #12 at ??:? [10] #12 at ??:? [11] #12 ??????? at ??:? [2] #13 __libc_start_main at ??:? [4] #13 __libc_start_main at ??:? [6] #13 __libc_start_main at ??:? [7] #13 __libc_start_main at ??:? [9] #13 __libc_start_main at ??:? [10] #13 __libc_start_main at ??:? [11] #13 __libc_start_main in "/lib64/libc.so.6" [2] #14 in "/lib64/libc.so.6" [4] #14 in "/lib64/libc.so.6" [6] #14 in "/lib64/libc.so.6" [7] #14 in "/lib64/libc.so.6" [9] #14 in "/lib64/libc.so.6" [10] #14 in "/lib64/libc.so.6" [11] #14 ??????? at ??:? at ??:? at ??:? at ??:? at ??:? at ??:? at ??:? at ??:? [17] #5 Foam::GAMGSolver::Vcycle(Foam::PtrList<Foam::lduMatrix::smoother> const&, Foam::Field<double>&, Foam::Field<double> const&, Foam::Field<double>&, Foam::Field<double>&, Foam::Field<double>&, Foam::Field<double>&, Foam::Field<double>&, Foam::PtrList<Foam::Field<double> >&, Foam::PtrList<Foam::Field<double> >&, unsigned char) const at ??:? at ??:? at ??:? at ??:? at ??:? [14] [19] ##[22] #5 5 5 Foam::GAMGSolver::Vcycle(Foam::PtrList<Foam::lduMatrix::smoother> const&, Foam::Field<double>&, Foam::Field<double> const&, Foam::Field<double>&, Foam::Field<double>&, Foam::Field<double>&, Foam::Field<double>&, Foam::Field<double>&, Foam::PtrList<Foam::Field<double> >&, Foam::PtrList<Foam::Field<double> >&, unsigned char) constFoam::GAMGSolver::Vcycle(Foam::PtrList<Foam::lduMatrix::smoother> const&, Foam::Field<double>&, Foam::Field<double> const&, Foam::Field<double>&, Foam::Field<double>&, Foam::Field<double>&, Foam::Field<double>&, Foam::Field<double>&, Foam::PtrList<Foam::Field<double> >&, Foam::PtrList<Foam::Field<double> >&, unsigned char) constFoam::GAMGSolver::Vcycle(Foam::PtrList<Foam::lduMatrix::smoother> const&, Foam::Field<double>&, Foam::Field<double> const&, Foam::Field<double>&, Foam::Field<double>&, Foam::Field<double>&, Foam::Field<double>&, Foam::Field<double>&, Foam::PtrList<Foam::Field<double> >&, Foam::PtrList<Foam::Field<double> >&, unsigned char) const[23] #5 [15] #5 Foam::GAMGSolver::Vcycle(Foam::PtrList<Foam::lduMatrix::smoother> const&, Foam::Field<double>&, Foam::Field<double> const&, Foam::Field<double>&, Foam::Field<double>&, Foam::Field<double>&, Foam::Field<double>&, Foam::Field<double>&, Foam::PtrList<Foam::Field<double> >&, Foam::PtrList<Foam::Field<double> >&, unsigned char) constFoam::GAMGSolver::Vcycle(Foam::PtrList<Foam::lduMatrix::smoother> const&, Foam::Field<double>&, Foam::Field<double> const&, Foam::Field<double>&, Foam::Field<double>&, Foam::Field<double>&, Foam::Field<double>&, Foam::Field<double>&, Foam::PtrList<Foam::Field<double> >&, Foam::PtrList<Foam::Field<double> >&, unsigned char) const at ??:? [20] # at ??:?5 Foam::GAMGSolver::Vcycle(Foam::PtrList<Foam::lduMatrix::smoother> const&, Foam::Field<double>&, Foam::Field<double> const&, Foam::Field<double>&, Foam::Field<double>&, Foam::Field<double>&, Foam::Field<double>&, Foam::Field<double>&, Foam::PtrList<Foam::Field<double> >&, Foam::PtrList<Foam::Field<double> >&, unsigned char) const[21] #5 Foam::GAMGSolver::Vcycle(Foam::PtrList<Foam::lduMatrix::smoother> const&, Foam::Field<double>&, Foam::Field<double> const&, Foam::Field<double>&, Foam::Field<double>&, Foam::Field<double>&, Foam::Field<double>&, Foam::Field<double>&, Foam::PtrList<Foam::Field<double> >&, Foam::PtrList<Foam::Field<double> >&, unsigned char) const at ??:? [12] #5 Foam::GAMGSolver::Vcycle(Foam::PtrList<Foam::lduMatrix::smoother> const&, Foam::Field<double>&, Foam::Field<double> const&, Foam::Field<double>&, Foam::Field<double>&, Foam::Field<double>&, Foam::Field<double>&, Foam::Field<double>&, Foam::PtrList<Foam::Field<double> >&, Foam::PtrList<Foam::Field<double> >&, unsigned char) const
-
@cccrrryyy 热物性库修改过,湍流未做修改,热物性库做过层流验证是可以的。因为是在超算计算,所以错误信息和输出信息是分开的
SIMPLE: convergence criteria field p tolerance 0.001 field U tolerance 0.0001 field e tolerance 0.001 field "(k|epsilon|omega)" tolerance 0.001 Reading thermophysical properties Selecting thermodynamics package { type heTabularThermo; mixture pureMixture; transport tabular; thermo hTabular; equationOfState tabularEOS; specie specie; energy sensibleInternalEnergy; } Reading field T Reading field U Reading/calculating face flux field phi pressureControl pMax 1.76e+07 pMin 880000 Creating turbulence model Selecting turbulence model type RAS Selecting RAS turbulence model kOmegaSST Selecting patchDistMethod meshWave RAS { RASModel kOmegaSST; turbulence on; printCoeffs on; alphaK1 0.85; alphaK2 1; alphaOmega1 0.5; alphaOmega2 0.856; gamma1 0.555556; gamma2 0.44; beta1 0.075; beta2 0.0828; betaStar 0.09; a1 0.31; b1 1; c1 10; F3 false; } No MRF models present No finite volume options present Starting time loop Time = 1 GAMG: Solving for Ux, Initial residual = 1, Final residual = 0.0680002, No Iterations 1 GAMG: Solving for Uy, Initial residual = 1, Final residual = 0.0275716, No Iterations 2 GAMG: Solving for e, Initial residual = 1, Final residual = 0.0497346, No Iterations 1 GAMG: Solving for p, Initial residual = 1, Final residual = 0.0902438, No Iterations 32 time step continuity errors : sum local = 1340.36, global = -1154.13, cumulative = -1154.13 GAMG: Solving for omega, Initial residual = 0.150676, Final residual = 0.0121053, No Iterations 4 GAMG: Solving for k, Initial residual = 1, Final residual = 0.0852085, No Iterations 1 ExecutionTime = 0.29 s ClockTime = 1 s Time = 2 GAMG: Solving for Ux, Initial residual = 0.998917, Final residual = 0.01403, No Iterations 1 GAMG: Solving for Uy, Initial residual = 0.951893, Final residual = 0.0298228, No Iterations 1 GAMG: Solving for e, Initial residual = 0.97607, Final residual = 0.00132126, No Iterations 1 GAMG: Solving for p, Initial residual = 0.00465283, Final residual = 0.000414147, No Iterations 2 time step continuity errors : sum local = 555474, global = 91950.9, cumulative = 90796.8 =================================================================================== = BAD TERMINATION OF ONE OF YOUR APPLICATION PROCESSES = PID 7683 RUNNING AT node295 = EXIT CODE: 8 = CLEANING UP REMAINING PROCESSES = YOU CAN IGNORE THE BELOW CLEANUP MESSAGES
-
@cccrrryyy
第82行有个浮点溢出Pstream initialized with: 78 floatTransfer : 0 79 nProcsSimpleSum : 0 80 commsType : nonBlocking 81 polling iterations : 0 82 sigFpe : Enabling floating point exception trapping (FOAM_SIGFPE). 83 fileModificationChecking : Monitoring run-time modified files using timeStampMaster (fileModificationSkew 10) 84 allowSystemOperations : Allowing user-supplied system call operations 85 86 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // 87 Create time
-
插值从表格里面做热物性吧?那估计是超临界啥的。算例本身算起来可能是会有点不好收敛。你层流验证的时候好收敛么,还是也很难收敛?如果层流很好收敛但湍流不收敛,那大概率是湍流的边界问题;如果层流本身也很难收敛,那就可以去找别的原因了。其实你可以试试,同样的设置下把热物性换成普通的(理想气体之类的)看看能不能算,这样也能排除一些问题。
单看log文件有两点我觉得值得考虑。1、你设置了pressureControl,限定了压力的最大最小值,你本身的工况是在这个压力范围之内么? 2、这个可能性比较低。你可以把SIMPLE的convergence criteria调小一些,看起来你的速度方程解了1步就收敛了,对线性求解器来说好像太容易了点。