Please refresh the page if equations are not rendered correctly.
---------------------------------------------------------------
在使用单胞模型计算渗透率时,需要用到周期性边界条件。在OpenFOAM中为cyclic
边界条件,其定义见OpenFOAM: User Guide: Cyclic.
假设模型如下:
其中back面($y_{min})为压力入口,front面为压力出口。其余面为周期性边界,相匹配的面为对应面。经过测试,需要在场文件中进行如下设置:
./0/p
文件
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: 8
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format binary;
class volScalarField;
location "0";
object p;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [ 0 2 -2 0 0 0 0 ];
internalField uniform 0;
boundaryField
{
back
{
type fixedValue;
value uniform 1;
}
front
{
type fixedValue;
value uniform 0;
}
bottom
{
type cyclic;
}
top
{
type cyclic;
}
left
{
type cyclic;
}
right
{
type cyclic;
}
}
// ************************************************************************* //
./0/U
文件
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: 8
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format binary;
class volVectorField;
location "0";
object U;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [ 0 1 -1 0 0 0 0 ];
internalField uniform ( 0 0 0 );
boundaryField
{
left
{
type cyclic;
}
right
{
type cyclic;
}
bottom
{
type cyclic;
}
top
{
type cyclic;
}
front
{
type inletOutlet;
value uniform (0 0 0);
inletValue uniform (0 0 0);
}
back
{
type zeroGradient;
}
}
// ************************************************************************* //
./0/F
文件
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: 8
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format binary;
class volTensorField;
location "0";
object F;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [ 0 -1 0 0 0 0 0 ];
internalField uniform ( 0 0 0 0 0 0 0 0 0 );
boundaryField
{
left
{
type cyclic;
}
right
{
type cyclic;
}
back
{
type fixedValue;
value uniform ( 0 0 0 0 0 0 0 0 0 );
}
front
{
type fixedValue;
value uniform ( 0 0 0 0 0 0 0 0 0 );
}
bottom
{
type cyclic;
}
top
{
type cyclic;
}
}
// ************************************************************************* //
./0/D
文件
./0/D
文件的边界条件部分设置如下:
boundaryField
{
top
{
type cyclic;
}
bottom
{
type cyclic;
}
left
{
type cyclic;
}
right
{
type cyclic;
}
back
{
type zeroGradient;
}
front
{
type zeroGradient;
}
}
网格文件中的边界类型设置
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\ / O peration | Website: https://openfoam.org
\ / A nd | Version: 8
\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class polyBoundaryMesh;
location "constant/polyMesh";
object boundary;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
6
(
left
{
type cyclic;
nFaces 48906;
startFace 23793593;
neighbourPatch right;
}
right
{
type cyclic;
nFaces 48906;
startFace 23842499;
neighbourPatch left;
}
back
{
type patch;
nFaces 32274;
startFace 23891405;
}
front
{
type patch;
nFaces 32274;
startFace 23923679;
}
bottom
{
type cyclic;
nFaces 40261;
startFace 23955953;
neighbourPatch top;
}
top
{
type cyclic;
nFaces 40261;
startFace 23996214;
neighbourPatch bottom;
}
)
// ************************************************************************* //
Comments NOTHING