我试图用更真实的边界条件来修改sonicFoam forwardStep示例。
在0/p中:
//internalField uniform 1;
internalField uniform 100000;
boundaryField
{
inlet
{
type fixedValue;
//value uniform 1;
value uniform 100000;
}在0/p中
//internalField uniform 1;
internalField uniform 300;
boundaryField
{
inlet
{
type fixedValue;
//value uniform 1;
value uniform 300;
}但这会导致一个strang错误:
时间= 0.002 求和数平均值: 0.24881 max: 0.25对角线:求解rho,初始残差= 0,最终残差= 0,不迭代0 smoothSolver:迭代1 smoothSolver:解Ux,初始残差= 1,最终残差=9.33263 e-16,不迭代1 smoothSolver:求解Uy,初始残差= 1,最终残差= 6.21609e-17,不迭代1 smoothSolver:求解e,初始残差= 1,最终残差= 2.96112e-06,不迭代3 smoothSolver:解p,初始残差= 1,最终残差= 9.16163e-07,不迭代22对角:求解rho,初始残差= 0,最终残差= 0,不迭代0时间步长连续误差:和局部= 0.000363585,全局= 0.000346824,累积= 0.000346824点:迭代2 smoothSolver:求解Ux,初始残差= 0.0109637,最终残差=3.46971 e-14,不迭代1 smoothSolver: Uy求解,初始残差= 0.0462988,最终残差= 1.90246e-17,smoothSolver:迭代1次,初始残差= 0.999979,最终残余= 1.12177e-06,无迭代3 0泡沫::错误::printStack(泡沫::Ostream&)在?:1泡沫::sigFpe::sigHandler(Int) at?:2?在“/lib64 64/libc.so.6”中,3种泡沫::sqrt(泡沫::Field&,Foam::waveTransmissiveFvPatchField::advectionSpeed()::UList const& ) at?:??4泡沫::sqrt(泡沫::tmp> const&) at?:??5 Foam::GeometricField::Boundary::updateCoeffs() const at?:?:??6泡沫::advectiveFvPatchField::updateCoeffs() at?:?:??7 Foam::GeometricField::Boundary::updateCoeffs() at?::fvMatrix::fvMatrix(泡沫::GeometricField&)泡沫::维数集?:?:9泡沫::tmp> Foam::fv::optionList::operator()(Foam::GeometricField const&,泡沫::几何场&,泡沫::word const&) at?:10??:?11 __libc_start_main in“/lib64 64/libc.so.6”12?在??:?浮点异常
如果你能帮我知道出了什么问题以及我如何解决这个问题,我将不胜感激。
关键词: Floating point exception,__libc_start_main,Foam::error::printStack(Foam::Ostream&),
发布于 2018-08-27 12:54:08
有十几个不同的问题会导致这样的错误。不幸的是,OpenFOAM错误消息不是很具体,也没有多少文档显示如何系统地解决这些错误消息。
在这种特殊情况下,由于修正后的初始压力值和入口压力值与原始出口值之间的巨大差异,产生了误差,而我忘记了相应的修改。修改:
outlet
{
type waveTransmissive;
field p;
psi thermo:psi;
gamma 1.4;
fieldInf 1;
lInf 3;
value uniform 1;
}至
outlet
{
type waveTransmissive;
field p;
psi thermo:psi;
gamma 1.4;
fieldInf 100000;
lInf 3;
value uniform 100000;
}或者简单的
outlet
{
type fixedValue;
value uniform 100000;
}解决了问题,求解器成功地收敛。根据经验法则调整边界条件,最小化deltaT文件中的controlDict文件可以减少此问题发生的可能性。
https://stackoverflow.com/questions/52038985
复制相似问题