非構造格子の周期境界条件

1,515 views
Skip to first unread message

sonson

unread,
Dec 15, 2013, 7:43:46 PM12/15/13
to open...@googlegroups.com
こんにちは。 
openfoam初心者のものです。 

現在水流中のロープ周りの流れの解析を実施しようとしています。 
ソルバはsimpleFoamで乱流モデルはk-εの使用をしています。 

周期境界を使用したいのですが設定方法がわからず困っております。 
過去の書き込みを参考にしたのですが上手く設定できませんでした。 

現在の境界条件図と設定ファイルを載せさせて頂きます。 



OpenFOAM Ver 2.2.1 

ロープ横の2箇所(Cyclic1,Cyclic2)を周期境界条件として計算しようと考えています。

「boundary」ファイル
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

6
(
    Cyclic1
    {
        type cyclicAMI;
        nFaces 18707;
        startFace 5205035;
        matchTolerance  100; 
        neighbourPatch Cyclic2; 
    }
    Cyclic2
    {
        type cyclicAMI;
        nFaces 18735;
        startFace 5223742;
        matchTolerance  100; 
        neighbourPatch Cyclic1; 

    }
    Inlet
    {
        type patch;
        nFaces 2010;
        startFace 5242477;
    }
    Outlet
    {
        type patch;
        nFaces 2010;
        startFace 5244487;
    }
    Slip
    {
        type patch;
        nFaces 11696;
        startFace 5246497;
    }
    rope
    {
        type wall;
        nFaces 17325;
        startFace 5258193;
    }
)

// ************************************************************************* //



「0」ファイル
*******************epsilon*******************
dimensions      [0 2 -3 0 0 0 0];

internalField   uniform 4.483e-05;

boundaryField
{
    Cyclic1
    {
        type            cyclicAMI;
    }
    
    Cyclic2
    {
        type            cyclicAMI;
    }
    
    Inlet
    {
        type            fixedValue;
        value           uniform 4.483e-05;
    }
    
    Outlet
    {
        type            zeroGradient;
    }
    
    Slip
    {
        type            slip;
    }
    
    rope
    {
        type            epsilonWallFunction;
        value           uniform 4.483e-05;
    }
}
**********************************************

**********************k**********************
dimensions      [0 2 -2 0 0 0 0];

internalField   uniform 1.500e-04;

boundaryField
{
    Cyclic1
    {
        type            cyclicAMI;
    }
    Cyclic2
    {
        type            cyclicAMI;
    }
    Inlet
    {
        type            fixedValue;
        value           uniform 1.500e-04;
    }
    Outlet
    {
        type            zeroGradient;
    }
    Slip
    {
        type            slip;
    }
    rope
    {
type            kqRWallFunction;
value           uniform 1.500e-04;
    }
}
**********************************************

**********************nut**********************
dimensions      [0 2 -1 0 0 0 0];

internalField   uniform 0;

boundaryField
{
    Cyclic1
    {
        type            cyclicAMI;
    }
    
    Cyclic2
    {
        type            cyclicAMI;
    }
    Inlet
    {
        type            calculated;
        value           uniform 0;
    }
    Outlet
    {
        type            calculated;
        value           uniform 0;
    }
    Slip
    {
        type            calculated;
        value           uniform 0;
    }
    rope
    {
        type            nutkWallFunction;
        value           uniform 0;
    }
}
**********************************************

**********************p**********************
dimensions      [0 2 -2 0 0 0 0];

internalField   uniform 0;

boundaryField
{
    Cyclic1
    {
        type            cyclicAMI;
    }
    
    Cyclic2
    {
        type            cyclicAMI;
    }
    Inlet
    {
        type            zeroGradient;
    }
    Outlet
    {
        type            fixedValue;
        value           uniform 0;
    }
    Slip
    {
        type            slip;
    }
    rope
    {
        type            zeroGradient;
    }
}
**********************************************

**********************U**********************
dimensions      [0 1 -1 0 0 0 0];

internalField   uniform (1.0 0 0);

boundaryField
{
    Cyclic1
    {
        type            cyclicAMI;
    }
    
    Cyclic2
    {
        type            cyclicAMI;
    }
    Inlet
    {
        type            fixedValue;
        value           uniform (1.0 0 0);
    }
    Outlet
    {
        type            zeroGradient;
    }
    
    Slip
    {
        type            slip;
    }
    
    rope
    {
        type            fixedValue;
        value           uniform (0 0 0);
    }
}
**********************************************

この条件で計算をまわそうとしてdecomposeParを実行すると以下のエラーが出て計算がとまってしまいます。
Number of processor faces = 23452
Max number of cells = 686619 (4.99536% above average 653952)
Max number of processor patches = 3 (50% above average 2)
Max number of faces between processors = 16637 (41.8813% above average 11726)

Time = 0
AMI: Creating addressing and weights between 18707 source faces and 18735 target faces
--> FOAM Warning : 
    From function AMIInterpolation<SourcePatch, TargetPatch>::checkPatches(const primitivePatch&, const primitivePatch&)
    in file lnInclude/AMIInterpolation.C at line 146
    Source and target patch bounding boxes are not similar
    source box span     : (0.332 0.1162 8.624e-10)
    target box span     : (0.332 0.1162 7.62312e-10)
    source box          : (-0.166 -0.0581 0.077) (0.166 0.0581 0.077)
    target box          : (-0.166 -0.0581 -6.77547e-10) (0.166 0.0581 8.47649e-11)
    inflated target box : (-0.183587 -0.0756874 -0.0175874) (0.183587 0.0756874 0.0175874)


--> FOAM FATAL ERROR: 
Unable to find initial target face

    From function void Foam::AMIInterpolation<SourcePatch, TargetPatch>::calcAddressing(const primitivePatch&, const primitivePatch&, label, label)
    in file lnInclude/AMIInterpolation.C at line 1009.

FOAM aborting

#0  Foam::error::printStack(Foam::Ostream&) in "/opt/openfoam211/platforms/linuxGccDPOpt/lib/libOpenFOAM.so"
#1  Foam::error::abort() in "/opt/openfoam211/platforms/linuxGccDPOpt/lib/libOpenFOAM.so"
#2  Foam::AMIInterpolation<Foam::PrimitivePatch<Foam::face, Foam::SubList, Foam::Field<Foam::Vector<double> > const&, Foam::Vector<double> >, Foam::PrimitivePatch<Foam::face, Foam::SubList, Foam::Field<Foam::Vector<double> > const&, Foam::Vector<double> > >::calcAddressing(Foam::PrimitivePatch<Foam::face, Foam::SubList, Foam::Field<Foam::Vector<double> > const&, Foam::Vector<double> > const&, Foam::PrimitivePatch<Foam::face, Foam::SubList, Foam::Field<Foam::Vector<double> > const&, Foam::Vector<double> > const&, int, int) in "/opt/openfoam211/platforms/linuxGccDPOpt/lib/libmeshTools.so"
#3  Foam::AMIInterpolation<Foam::PrimitivePatch<Foam::face, Foam::SubList, Foam::Field<Foam::Vector<double> > const&, Foam::Vector<double> >, Foam::PrimitivePatch<Foam::face, Foam::SubList, Foam::Field<Foam::Vector<double> > const&, Foam::Vector<double> > >::update(Foam::PrimitivePatch<Foam::face, Foam::SubList, Foam::Field<Foam::Vector<double> > const&, Foam::Vector<double> > const&, Foam::PrimitivePatch<Foam::face, Foam::SubList, Foam::Field<Foam::Vector<double> > const&, Foam::Vector<double> > const&) in "/opt/openfoam211/platforms/linuxGccDPOpt/lib/libmeshTools.so"
#4  Foam::AMIInterpolation<Foam::PrimitivePatch<Foam::face, Foam::SubList, Foam::Field<Foam::Vector<double> > const&, Foam::Vector<double> >, Foam::PrimitivePatch<Foam::face, Foam::SubList, Foam::Field<Foam::Vector<double> > const&, Foam::Vector<double> > >::AMIInterpolation(Foam::PrimitivePatch<Foam::face, Foam::SubList, Foam::Field<Foam::Vector<double> > const&, Foam::Vector<double> > const&, Foam::PrimitivePatch<Foam::face, Foam::SubList, Foam::Field<Foam::Vector<double> > const&, Foam::Vector<double> > const&, Foam::autoPtr<Foam::searchableSurface> const&, Foam::faceAreaIntersect::triangulationMode const&, bool) in "/opt/openfoam211/platforms/linuxGccDPOpt/lib/libmeshTools.so"
#5  Foam::cyclicAMIPolyPatch::resetAMI() const in "/opt/openfoam211/platforms/linuxGccDPOpt/lib/libmeshTools.so"
#6  Foam::cyclicAMIPolyPatch::AMI() const in "/opt/openfoam211/platforms/linuxGccDPOpt/lib/libmeshTools.so"
#7   at cyclicAMIFvPatchFields.C:0
#8  Foam::cyclicAMIFvPatchField<double>::patchNeighbourField() const in "/opt/openfoam211/platforms/linuxGccDPOpt/lib/libfiniteVolume.so"
#9  Foam::coupledFvPatchField<double>::evaluate(Foam::UPstream::commsTypes) in "/opt/openfoam211/platforms/linuxGccDPOpt/bin/decomposePar"
#10  Foam::cyclicAMIFvPatchField<double>::cyclicAMIFvPatchField(Foam::fvPatch const&, Foam::DimensionedField<double, Foam::volMesh> const&, Foam::dictionary const&) in "/opt/openfoam211/platforms/linuxGccDPOpt/lib/libfiniteVolume.so"
#11  Foam::fvPatchField<double>::adddictionaryConstructorToTable<Foam::cyclicAMIFvPatchField<double> >::New(Foam::fvPatch const&, Foam::DimensionedField<double, Foam::volMesh> const&, Foam::dictionary const&) in "/opt/openfoam211/platforms/linuxGccDPOpt/lib/libfiniteVolume.so"
#12  Foam::fvPatchField<double>::New(Foam::fvPatch const&, Foam::DimensionedField<double, Foam::volMesh> const&, Foam::dictionary const&) in "/opt/openfoam211/platforms/linuxGccDPOpt/bin/decomposePar"
#13  Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh>::GeometricBoundaryField::GeometricBoundaryField(Foam::fvBoundaryMesh const&, Foam::DimensionedField<double, Foam::volMesh> const&, Foam::dictionary const&) in "/opt/openfoam211/platforms/linuxGccDPOpt/bin/decomposePar"
#14  Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh>::readField(Foam::dictionary const&) in "/opt/openfoam211/platforms/linuxGccDPOpt/bin/decomposePar"
#15  Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh>::readField(Foam::Istream&) in "/opt/openfoam211/platforms/linuxGccDPOpt/bin/decomposePar"
#16  Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh>::GeometricField(Foam::IOobject const&, Foam::fvMesh const&) in "/opt/openfoam211/platforms/linuxGccDPOpt/bin/decomposePar"
#17  
 in "/opt/openfoam211/platforms/linuxGccDPOpt/bin/decomposePar"
#18  
 in "/opt/openfoam211/platforms/linuxGccDPOpt/bin/decomposePar"
#19  __libc_start_main in "/lib/i386-linux-gnu/libc.so.6"
#20  
 in "/opt/openfoam211/platforms/linuxGccDPOpt/bin/decomposePar"
中止 (コアダンプ)

BlockMeshは非構造格子なのでそれが原因かとも思うのですが、周期境界条件で計算が可能であればそちらを試していきたいと思っています。ご存知の方、どうか御教授頂けないでしょうか。宜しくお願い致します。

ohbuchi

unread,
Dec 15, 2013, 8:51:19 PM12/15/13
to open...@googlegroups.com
こんにちは。
boundaryファイルの記述に問題がある様です。
transformをtranslationalに指定し、パッチ間の相対ベクトルをseparationVectorで指定します。


   Cyclic1
    {
        type cyclicAMI;
        nFaces 18707;
        startFace 5205035;
        matchTolerance  0.001;                <- 小さい値にする
        neighbourPatch Cyclic2;
        transform   translational;            <- 平行移動
        separationVector   (0  dy  0);        <- パッチ間の相対ベクトル、向きに注意
    }
    Cyclic2
    {
        type cyclicAMI;
        nFaces 18735;
        startFace 5223742;
        matchTolerance  0.001;                <- 小さい値にする
        neighbourPatch Cyclic1; 
        transform   translational;            <- 平行移動
        separationVector   (0  -dy  0);       <- パッチ間の相対ベクトル、向きに注意
    }

以上、ご参考まで。


2013年12月16日月曜日 9時43分46秒 UTC+9 sonson:

sonson

unread,
Dec 15, 2013, 10:52:38 PM12/15/13
to open...@googlegroups.com
ohbuchi様、早速の回答ありがとうございます。

ご指摘にあったようにboundaryファイルの中でパッチ間の相対ベクトルを指定しました。
その結果decomposeParの実行は上手くいきました。しかし、その後並列計算をまわしてみたところ、以下のようなエラーが出てきてしまいました。

Time = 0.0018

DILUPBiCG:  Solving for Ux, Initial residual = 0.394065, Final residual = 0.00260052, No Iterations 1
DILUPBiCG:  Solving for Uy, Initial residual = 0.497091, Final residual = 0.0011477, No Iterations 1
DILUPBiCG:  Solving for Uz, Initial residual = 0.542131, Final residual = 0.00235056, No Iterations 1
DICPCG:  Solving for p, Initial residual = 5.6704e-26, Final residual = 5.6704e-26, No Iterations 0
time step continuity errors : sum local = 9.25213e+61, global = 1.48833e+51, cumulative = 1.48833e+51
[3] #0  Foam::error::printStack(Foam::Ostream&) in "/opt/openfoam211/platforms/linuxGccDPOpt/lib/libOpenFOAM.so"
[3] #1  Foam::sigFpe::sigHandler(int) in "/opt/openfoam211/platforms/linuxGccDPOpt/lib/libOpenFOAM.so"
[3] #2  Uninterpreted: 
[3] #3  Foam::multiply(Foam::Field<double>&, Foam::UList<double> const&, Foam::UList<double> const&) in "/opt/openfoam211/platforms/linuxGccDPOpt/lib/libOpenFOAM.so"
[3] #4  void Foam::multiply<Foam::fvsPatchField, Foam::surfaceMesh>(Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh>&, Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh> const&, Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh> const&) in "/opt/openfoam211/platforms/linuxGccDPOpt/lib/libincompressibleTransportModels.so"
[3] #5   at gaussLaplacianSchemes.C:0
[3] #6  Foam::fv::gaussLaplacianScheme<double, double>::fvmLaplacian(Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh> const&, Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> const&) in "/opt/openfoam211/platforms/linuxGccDPOpt/lib/libfiniteVolume.so"
[3] #7  Foam::fv::laplacianScheme<double, double>::fvmLaplacian(Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> const&, Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> const&) in "/opt/openfoam211/platforms/linuxGccDPOpt/lib/libfiniteVolume.so"
[3] #8  Foam::tmp<Foam::fvMatrix<double> > Foam::fvm::laplacian<double, double>(Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> const&, Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> const&) in "/opt/openfoam211/platforms/linuxGccDPOpt/lib/libincompressibleRASModels.so"
[3] #9  Foam::incompressible::RASModels::kEpsilon::correct() in "/opt/openfoam211/platforms/linuxGccDPOpt/lib/libincompressibleRASModels.so"
[3] #10  
[3]  in "/opt/openfoam211/platforms/linuxGccDPOpt/bin/simpleFoam"
[3] #11  __libc_start_main in "/lib/i386-linux-gnu/libc.so.6"
[3] #12  
[3]  in "/opt/openfoam211/platforms/linuxGccDPOpt/bin/simpleFoam"
[yato-X8100:19249] *** Process received signal ***
[yato-X8100:19249] Signal: Floating point exception (8)
[yato-X8100:19249] Signal code:  (-6)
[yato-X8100:19249] Failing at address: 0x4b31
[yato-X8100:19249] [ 0] [0xb77a440c]
[yato-X8100:19249] [ 1] [0xb77a4424]
[yato-X8100:19249] [ 2] /lib/i386-linux-gnu/libc.so.6(gsignal+0x4f) [0xb5a961df]
[yato-X8100:19249] [ 3] /opt/openfoam211/platforms/linuxGccDPOpt/lib/libOpenFOAM.so(_ZN4Foam6sigFpe10sigHandlerEi+0x60) [0xb61775b0]
[yato-X8100:19249] [ 4] [0xb77a4400]
[yato-X8100:19249] [ 5] /opt/openfoam211/platforms/linuxGccDPOpt/lib/libOpenFOAM.so(_ZN4Foam8multiplyERNS_5FieldIdEERKNS_5UListIdEES6_+0x20) [0xb60b6010]
[yato-X8100:19249] [ 6] /opt/openfoam211/platforms/linuxGccDPOpt/lib/libincompressibleTransportModels.so(_ZN4Foam8multiplyINS_13fvsPatchFieldENS_11surfaceMeshEEEvRNS_14GeometricFieldIdT_T0_EERKS6_S9_+0x4f) [0xb746aedf]
[yato-X8100:19249] [ 7] /opt/openfoam211/platforms/linuxGccDPOpt/lib/libfiniteVolume.so(+0xb69407) [0xb7039407]
[yato-X8100:19249] [ 8] /opt/openfoam211/platforms/linuxGccDPOpt/lib/libfiniteVolume.so(_ZN4Foam2fv20gaussLaplacianSchemeIddE12fvmLaplacianERKNS_14GeometricFieldIdNS_13fvsPatchFieldENS_11surfaceMeshEEERKNS3_IdNS_12fvPatchFieldENS_7volMeshEEE+0x2b0) [0xb703f850]
[yato-X8100:19249] [ 9] /opt/openfoam211/platforms/linuxGccDPOpt/lib/libfiniteVolume.so(_ZN4Foam2fv15laplacianSchemeIddE12fvmLaplacianERKNS_14GeometricFieldIdNS_12fvPatchFieldENS_7volMeshEEES8_+0x7e) [0xb7047e8e]
[yato-X8100:19249] [10] /opt/openfoam211/platforms/linuxGccDPOpt/lib/libincompressibleRASModels.so(_ZN4Foam3fvm9laplacianIddEENS_3tmpINS_8fvMatrixIT_EEEERKNS_14GeometricFieldIT0_NS_12fvPatchFieldENS_7volMeshEEERKNS7_IS4_S9_SA_EE+0x16d) [0xb75409cd]
[yato-X8100:19249] [11] /opt/openfoam211/platforms/linuxGccDPOpt/lib/libincompressibleRASModels.so(_ZN4Foam14incompressible9RASModels8kEpsilon7correctEv+0x350) [0xb75318e0]
[yato-X8100:19249] [12] simpleFoam() [0x805d30d]
[yato-X8100:19249] [13] /lib/i386-linux-gnu/libc.so.6(__libc_start_main+0xf3) [0xb5a814d3]
[yato-X8100:19249] [14] simpleFoam() [0x805e271]
[yato-X8100:19249] *** End of error message ***
--------------------------------------------------------------------------
mpirun noticed that process rank 3 with PID 19249 on node yato-X8100 exited on signal 8 (Floating point exception).
--------------------------------------------------------------------------

Floating point exceptionとあるのですが、これは何かが原因で発散してしまっているということでしょうか。この改善策として何かありましたらお教え頂けませんでしょうか。


ohbuchi

unread,
Dec 15, 2013, 11:22:19 PM12/15/13
to open...@googlegroups.com
乱流モデルのラプラシアンスキームの計算でゼロ割が生じている様です。
時刻T=0.0018は、計算初期でしょうか?
圧力の式の反復がなく、連続の式の残差が大きすぎるのが気になります。メッシュはちゃんと連結された領域に
なっていますか?checkMeshの結果はどうでしょうか?



2013年12月16日月曜日 12時52分38秒 UTC+9 sonson:

sonson

unread,
Dec 18, 2013, 12:49:20 PM12/18/13
to open...@googlegroups.com
ohbushi様

deltT=0.0001なので時刻T=0.0018は初期の段階です。
fvSolutionの中のnNonOrthogonalCorrectorsを3回にしてみたところこのケースは上手く計算が進みました。ありがとうございます。

 しかし、別のケースでロープの長さを変えた計算を同様にしようとすると、またdecomposeParで以下のようなエラーを出してしまいます。
私のOpenFoamの勉強不足ではあるのですが、このエラーの原因が何であるのかわかりません。何か原因の可能性のあることを教えてください。宜しくお願い致します。

Processor 3
    Number of cells = 1165552
    Number of faces shared with processor 0 = 6966
    Number of faces shared with processor 1 = 97
    Number of faces shared with processor 2 = 8417
    Number of processor patches = 3
    Number of processor faces = 15480
    Number of boundary faces = 22818

Number of processor faces = 31414
Max number of cells = 1165552 (4.96152% above average 1.11046e+06)
Max number of processor patches = 3 (0% above average 3)
Max number of faces between processors = 16201 (3.14509% above average 15707)

Time = 0


--> FOAM FATAL ERROR: 
Attempt to cast type genericPatch to type lduInterface

    From function refCast<To>(From&)
    in file /home/opencfd/OpenFOAM/OpenFOAM-2.1.1/src/OpenFOAM/lnInclude/typeInfo.H at line 114.

FOAM aborting

#0  Foam::error::printStack(Foam::Ostream&) in "/opt/openfoam211/platforms/linuxGccDPOpt/lib/libOpenFOAM.so"
#1  Foam::error::abort() in "/opt/openfoam211/platforms/linuxGccDPOpt/lib/libOpenFOAM.so"
#2  Foam::lduInterface const& Foam::refCast<Foam::lduInterface const, Foam::fvPatch const>(Foam::fvPatch const&) in "/opt/openfoam211/platforms/linuxGccDPOpt/lib/libfiniteVolume.so"
#3  Foam::cyclicAMIFvPatchField<double>::cyclicAMIFvPatchField(Foam::fvPatch const&, Foam::DimensionedField<double, Foam::volMesh> const&, Foam::dictionary const&) in "/opt/openfoam211/platforms/linuxGccDPOpt/lib/libfiniteVolume.so"
#4  Foam::fvPatchField<double>::adddictionaryConstructorToTable<Foam::cyclicAMIFvPatchField<double> >::New(Foam::fvPatch const&, Foam::DimensionedField<double, Foam::volMesh> const&, Foam::dictionary const&) in "/opt/openfoam211/platforms/linuxGccDPOpt/lib/libfiniteVolume.so"
#5  Foam::fvPatchField<double>::New(Foam::fvPatch const&, Foam::DimensionedField<double, Foam::volMesh> const&, Foam::dictionary const&) in "/opt/openfoam211/platforms/linuxGccDPOpt/bin/decomposePar"
#6  Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh>::GeometricBoundaryField::GeometricBoundaryField(Foam::fvBoundaryMesh const&, Foam::DimensionedField<double, Foam::volMesh> const&, Foam::dictionary const&) in "/opt/openfoam211/platforms/linuxGccDPOpt/bin/decomposePar"
#7  Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh>::readField(Foam::dictionary const&) in "/opt/openfoam211/platforms/linuxGccDPOpt/bin/decomposePar"
#8  Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh>::readField(Foam::Istream&) in "/opt/openfoam211/platforms/linuxGccDPOpt/bin/decomposePar"
#9  Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh>::GeometricField(Foam::IOobject const&, Foam::fvMesh const&) in "/opt/openfoam211/platforms/linuxGccDPOpt/bin/decomposePar"
#10  
 in "/opt/openfoam211/platforms/linuxGccDPOpt/bin/decomposePar"
#11  
 in "/opt/openfoam211/platforms/linuxGccDPOpt/bin/decomposePar"
#12  __libc_start_main in "/lib/i386-linux-gnu/libc.so.6"
#13  
 in "/opt/openfoam211/platforms/linuxGccDPOpt/bin/decomposePar"
中止 (コアダンプ)




ohbuchi

unread,
Dec 18, 2013, 6:56:48 PM12/18/13
to open...@googlegroups.com
こんにちは。これは領域分割をする過程でパッチタイプの変換をしようとしてエラーになっている様です。
怪しいのはcyclicAMIだと思いますので、下記を試すと良いかも知れません。
decomposeParDictに、
globalFaceZones ( Cyclic1 Cyclic2 )
を加える。これをするとAMIパッチは領域分割されません。並列効率は悪化するかも知れませんが。
もしかしたら、AMIパッチの品質に問題があるのかも知れません。
この場合、仮に領域分割に成功しても計算が収束しにくかったり発散したりする可能性があります。

以上、ご参考まで。



2013年12月19日木曜日 2時49分20秒 UTC+9 sonson:

sonson

unread,
Dec 19, 2013, 10:36:05 AM12/19/13
to open...@googlegroups.com
ohbuchi様

ご回答ありがとうございます。
ご提示にあったとおり、decomposeParDictにglobalFaceZonesを加えてみました。
しかし、同じようなエラーを出してとまってしまいました。どうやらAMIパッチの品質に問題があるようなので、メッシュをもう一度作成しなおしてみます。
ありがとうございました。また、何か問題がありましたら、そのときはどうかよろしくお願いいたします。

sonson

unread,
Dec 19, 2013, 11:30:03 PM12/19/13
to open...@googlegroups.com
こんにちは。お世話になっております。
メッシュをなおして計算をし直してみたところ計算は無事まわり、終了までいくことができました。
しかし、そのあとにreconstructParをしようとすると以下のエラーが出てきてしまうのですが、これは計算がうまくいっていないということでしょうか?
どうかご教授お願いいたします。
 
Create time
Create mesh for time = 0
Time = 0.001
Reconstructing FV fields
    Reconstructing volScalarFields
        p
        nut
        k
        epsilon
    Reconstructing volVectorFields
        U
new cannot satisfy memory request.
This does not necessarily mean you have run out of virtual memory.
It could be due to a stack violation caused by e.g. bad use of pointers or an out of date shared library
中止 (コアダンプ)
 
 

ohbuchi

unread,
Dec 20, 2013, 2:09:00 AM12/20/13
to open...@googlegroups.com
エラーメッセージはreconstructするときにメモリ不足になっているという意味です。
不要なプロセスを終了させたり、swapを増やしたりして試してみるしかなさそうです。


2013年12月20日金曜日 13時30分03秒 UTC+9 sonson:

sonson

unread,
Jan 26, 2014, 3:28:42 AM1/26/14
to open...@googlegroups.com
こんにちは。お世話になっております。
久しぶりの投稿になるのですが、現在以下のようなエラーが出て困っております。これはメッシュが悪いことが原因でるエラーなのでしょうか。ご教授お願いいたします。



Create time

Create mesh for time = 0

Reading field p

Reading field U

Reading/calculating face flux field phi

AMI: Creating addressing and weights between 21122 source faces and 21114 target faces
AMI: Patch source weights min/max/average = 1.95759e-13, 1, 0.999762
AMI: Patch target weights min/max/average = 0, 1, 0.99976
Selecting incompressible transport model Newtonian
Selecting RAS turbulence model kEpsilon
bounding k, min: 0 max: 0.00015 average: 0.00015
[0] #0  Foam::error::printStack(Foam::Ostream&) in "/opt/openfoam211/platforms/linuxGccDPOpt/lib/libOpenFOAM.so"
[0] #1  Foam::sigFpe::sigHandler(int) in "/opt/openfoam211/platforms/linuxGccDPOpt/lib/libOpenFOAM.so"
[0] #2  Uninterpreted: 
[0] #3  Foam::divide(Foam::Field<double>&, Foam::UList<double> const&, Foam::UList<double> const&) in "/opt/openfoam211/platforms/linuxGccDPOpt/lib/libOpenFOAM.so"
[0] #4  void Foam::divide<Foam::fvPatchField, Foam::volMesh>(Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh>&, Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> const&, Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> const&) in "/opt/openfoam211/platforms/linuxGccDPOpt/lib/libincompressibleRASModels.so"
[0] #5  Foam::tmp<Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> > Foam::operator/<Foam::fvPatchField, Foam::volMesh>(Foam::tmp<Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> > const&, Foam::tmp<Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> > const&) in "/opt/openfoam211/platforms/linuxGccDPOpt/lib/libincompressibleRASModels.so"
[0] #6  Foam::tmp<Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> > Foam::fvc::average<double>(Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh> const&) in "/opt/openfoam211/platforms/linuxGccDPOpt/lib/libfiniteVolume.so"
[0] #7  Foam::tmp<Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> > Foam::fvc::average<double>(Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> const&) in "/opt/openfoam211/platforms/linuxGccDPOpt/lib/libfiniteVolume.so"
[0] #8  Foam::bound(Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh>&, Foam::dimensioned<double> const&) in "/opt/openfoam211/platforms/linuxGccDPOpt/lib/libfiniteVolume.so"
[0] #9  Foam::incompressible::RASModels::kEpsilon::kEpsilon(Foam::GeometricField<Foam::Vector<double>, Foam::fvPatchField, Foam::volMesh> const&, Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh> const&, Foam::transportModel&, Foam::word const&, Foam::word const&) in "/opt/openfoam211/platforms/linuxGccDPOpt/lib/libincompressibleRASModels.so"
[0] #10  Foam::incompressible::RASModel::adddictionaryConstructorToTable<Foam::incompressible::RASModels::kEpsilon>::New(Foam::GeometricField<Foam::Vector<double>, Foam::fvPatchField, Foam::volMesh> const&, Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh> const&, Foam::transportModel&, Foam::word const&) in "/opt/openfoam211/platforms/linuxGccDPOpt/lib/libincompressibleRASModels.so"
[0] #11  Foam::incompressible::RASModel::New(Foam::GeometricField<Foam::Vector<double>, Foam::fvPatchField, Foam::volMesh> const&, Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh> const&, Foam::transportModel&, Foam::word const&) in "/opt/openfoam211/platforms/linuxGccDPOpt/lib/libincompressibleRASModels.so"
[0] #12  
[0]  in "/opt/openfoam211/platforms/linuxGccDPOpt/bin/simpleFoam"
[0] #13  __libc_start_main in "/lib/i386-linux-gnu/libc.so.6"
[0] #14  
[0]  in "/opt/openfoam211/platforms/linuxGccDPOpt/bin/simpleFoam"
[yato-X8100:04825] *** Process received signal ***
[yato-X8100:04825] Signal: Floating point exception (8)
[yato-X8100:04825] Signal code:  (-6)
[yato-X8100:04825] Failing at address: 0x12d9
[yato-X8100:04825] [ 0] [0xb76ee40c]
[yato-X8100:04825] [ 1] [0xb76ee424]
[yato-X8100:04825] [ 2] /lib/i386-linux-gnu/libc.so.6(gsignal+0x4f) [0xb59e01df]
[yato-X8100:04825] [ 3] /opt/openfoam211/platforms/linuxGccDPOpt/lib/libOpenFOAM.so(_ZN4Foam6sigFpe10sigHandlerEi+0x60) [0xb60c15b0]
[yato-X8100:04825] [ 4] [0xb76ee400]
[yato-X8100:04825] [ 5] /opt/openfoam211/platforms/linuxGccDPOpt/lib/libOpenFOAM.so(_ZN4Foam6divideERNS_5FieldIdEERKNS_5UListIdEES6_+0x26) [0xb6000056]
[yato-X8100:04825] [ 6] /opt/openfoam211/platforms/linuxGccDPOpt/lib/libincompressibleRASModels.so(_ZN4Foam6divideINS_12fvPatchFieldENS_7volMeshEEEvRNS_14GeometricFieldIdT_T0_EERKS6_S9_+0xcf) [0xb74853cf]
[yato-X8100:04825] [ 7] /opt/openfoam211/platforms/linuxGccDPOpt/lib/libincompressibleRASModels.so(_ZN4FoamdvINS_12fvPatchFieldENS_7volMeshEEENS_3tmpINS_14GeometricFieldIdT_T0_EEEERKS8_SA_+0x2df) [0xb74a32bf]
[yato-X8100:04825] [ 8] /opt/openfoam211/platforms/linuxGccDPOpt/lib/libfiniteVolume.so(_ZN4Foam3fvc7averageIdEENS_3tmpINS_14GeometricFieldIT_NS_12fvPatchFieldENS_7volMeshEEEEERKNS3_IS4_NS_13fvsPatchFieldENS_11surfaceMeshEEE+0x254) [0xb6fcfbf4]
[yato-X8100:04825] [ 9] /opt/openfoam211/platforms/linuxGccDPOpt/lib/libfiniteVolume.so(_ZN4Foam3fvc7averageIdEENS_3tmpINS_14GeometricFieldIT_NS_12fvPatchFieldENS_7volMeshEEEEERKS7_+0x9a) [0xb6fd01da]
[yato-X8100:04825] [10] /opt/openfoam211/platforms/linuxGccDPOpt/lib/libfiniteVolume.so(_ZN4Foam5boundERNS_14GeometricFieldIdNS_12fvPatchFieldENS_7volMeshEEERKNS_11dimensionedIdEE+0x1d0) [0xb6fcca90]
[yato-X8100:04825] [11] /opt/openfoam211/platforms/linuxGccDPOpt/lib/libincompressibleRASModels.so(_ZN4Foam14incompressible9RASModels8kEpsilonC2ERKNS_14GeometricFieldINS_6VectorIdEENS_12fvPatchFieldENS_7volMeshEEERKNS3_IdNS_13fvsPatchFieldENS_11surfaceMeshEEERNS_14transportModelERKNS_4wordESK_+0x5f3) [0xb7479453]
[yato-X8100:04825] [12] /opt/openfoam211/platforms/linuxGccDPOpt/lib/libincompressibleRASModels.so(_ZN4Foam14incompressible8RASModel31adddictionaryConstructorToTableINS0_9RASModels8kEpsilonEE3NewERKNS_14GeometricFieldINS_6VectorIdEENS_12fvPatchFieldENS_7volMeshEEERKNS6_IdNS_13fvsPatchFieldENS_11surfaceMeshEEERNS_14transportModelERKNS_4wordE+0x5e) [0xb748e10e]
[yato-X8100:04825] [13] /opt/openfoam211/platforms/linuxGccDPOpt/lib/libincompressibleRASModels.so(_ZN4Foam14incompressible8RASModel3NewERKNS_14GeometricFieldINS_6VectorIdEENS_12fvPatchFieldENS_7volMeshEEERKNS2_IdNS_13fvsPatchFieldENS_11surfaceMeshEEERNS_14transportModelERKNS_4wordE+0x363) [0xb744a6a3]
[yato-X8100:04825] [14] simpleFoam() [0x805bda9]
[yato-X8100:04825] [15] /lib/i386-linux-gnu/libc.so.6(__libc_start_main+0xf3) [0xb59cb4d3]
[yato-X8100:04825] [16] simpleFoam() [0x805e271]
[yato-X8100:04825] *** End of error message ***
--------------------------------------------------------------------------
mpirun noticed that process rank 0 with PID 4825 on node yato-X8100 exited on signal 8 (Floating point exception).
--------------------------------------------------------------------------

Reply all
Reply to author
Forward
0 new messages