我运行 openFoam 4.1,在我的 k-eps 模拟中提取湍流应力张量 R 时遇到问题。我 4 天前在 cfd-online.com 上问了同样的问题,但没有收到回复,所以我现在希望也许有人可以在这里帮助我。
为了提取 R,我只修改了 controlDict,如下所示:
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 4.0 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object controlDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
application simpleFoam;
startTime 0;
stopAt endTime;
endTime 5000;
deltaT 1;
writeControl timeStep;
writeInterval 100;
purgeWrite 2;
writeFormat ascii;
writePrecision 8;
writeCompression uncompressed;
timeFormat general;
timePrecision 6;
runTimeModifiable yes;
functions
{
#includeFunc residuals
turbulenceFields1
{
type turbulenceFields;
libs ("libfieldFunctionObjects.so");
field R;
}
}
// ************************************************************************* //
当我尝试使用上述 controlDict 解决时,我得到以下信息:
/*---------------------------------------------------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 4.1 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
Build : 4.1
Exec : simpleFoam
Date : May 18 2017
Time : 07:08:01
Host : "..."
PID : 11073
Case : /home...
nProcs : 1
sigFpe : Enabling floating point exception trapping (FOAM_SIGFPE).
fileModificationChecking : Monitoring run-time modified files using timeStampMaster
allowSystemOperations : Allowing user-supplied system call operations
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Create time
Create mesh for time = 0
SIMPLE: convergence criteria
field p tolerance 0.001
field U tolerance 0.001
field "(k|epsilon|omega|f|v2)" tolerance 0.001
Reading field p
Reading field U
Reading/calculating face flux field phi
Selecting incompressible transport model Newtonian
Selecting turbulence model type RAS
Selecting RAS turbulence model kEpsilon
kEpsilonCoeffs
{
Cmu 0.09;
C1 1.44;
C2 1.92;
C3 -0.33;
sigmak 1;
sigmaEps 1.3;
}
No MRF models present
No finite volume options present
Starting time loop
turbulenceFields turbulenceFields1: storing fields:
turbulenceProperties:R
Time = 1
smoothSolver: Solving for Ux, Initial residual = 1, Final residual = 0.068919891, No Iterations 6
smoothSolver: Solving for Uy, Initial residual = 1, Final residual = 0.094423261, No Iterations 4
smoothSolver: Solving for Uz, Initial residual = 1, Final residual = 0.065365879, No Iterations 6
GAMG: Solving for p, Initial residual = 1, Final residual = 0.0086113464, No Iterations 26
time step continuity errors : sum local = 0.51812432, global = -0.07783965, cumulative = -0.07783965
smoothSolver: Solving for epsilon, Initial residual = 0.59675441, Final residual = 0.051409907, No Iterations 3
smoothSolver: Solving for k, Initial residual = 1, Final residual = 0.092548244, No Iterations 2
ExecutionTime = 0.81 s ClockTime = 1 s
--> FOAM FATAL ERROR:
object of type N4Foam9Function1INS_10SymmTensorIdEEEE is not allocated
From function T* Foam::autoPtr<T>::operator->() [with T = Foam::Function1<Foam::SymmTensor<double> >]
in file /home/ubuntu/OpenFOAM/OpenFOAM-4.1/src/OpenFOAM/lnInclude/autoPtrI.H at line 176.
FOAM aborting
#0 Foam::error::printStack(Foam::Ostream&) at ??:?
#1 Foam::error::abort() at ??:?
#2 Foam::timeVaryingMappedFixedValueFvPatchField<Foam::SymmTensor<double> >::write(Foam::Ostream&) const at ??:?
#3 Foam::GeometricField<Foam::SymmTensor<double>, Foam::fvPatchField, Foam::volMesh>::Boundary::writeEntry(Foam::word const&, Foam::Ostream&) const at ??:?
#4 Foam::GeometricField<Foam::SymmTensor<double>, Foam::fvPatchField, Foam::volMesh>::writeData(Foam::Ostream&) const at ??:?
#5 Foam::regIOobject::writeObject(Foam::IOstream::streamFormat, Foam::IOstream::versionNumber, Foam::IOstream::compressionType) const at ??:?
#6 Foam::functionObjects::regionFunctionObject::writeObject(Foam::word const&) at ??:?
#7 Foam::functionObjects::turbulenceFields::write() at ??:?
#8 Foam::functionObjectList::execute() at ??:?
#9 Foam::Time::loop() at ??:?
#10 Foam::simpleControl::loop() at ??:?
#11 ? at ??:?
#12 __libc_start_main in "/lib/x86_64-linux-gnu/libc.so.6"
#13 ? at ??:?
Aborted (core dumped)
从上面看,openFoam 似乎解决了第一个步骤,然后出现了问题。在目录“1”中,现在只有一个文件“turbulenceProperties:R”,其中包含每个点的应力张量的 6 个元素。
有人知道如何解决这个问题吗?