mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
git pushMerge branch 'master' of /home/dm4/OpenFOAM/OpenFOAM-dev
This commit is contained in:
@ -1,5 +1,8 @@
|
||||
EXE_INC = \
|
||||
-I../buoyantBoussinesqSimpleFoam \
|
||||
-I$(LIB_SRC)/sampling/lnInclude \
|
||||
-I$(LIB_SRC)/meshTools/lnInclude \
|
||||
-I$(LIB_SRC)/fvOptions/lnInclude \
|
||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||
-I$(LIB_SRC)/turbulenceModels \
|
||||
-I$(LIB_SRC)/turbulenceModels/incompressible/RAS/lnInclude \
|
||||
@ -9,6 +12,8 @@ EXE_INC = \
|
||||
|
||||
EXE_LIBS = \
|
||||
-lfiniteVolume \
|
||||
-lfvOptions \
|
||||
-lsampling \
|
||||
-lmeshTools \
|
||||
-lincompressibleTurbulenceModel \
|
||||
-lincompressibleRASModels \
|
||||
|
||||
@ -11,12 +11,18 @@
|
||||
- fvm::laplacian(alphaEff, T)
|
||||
==
|
||||
radiation->ST(rhoCpRef, T)
|
||||
+ fvOptions(T)
|
||||
);
|
||||
|
||||
TEqn.relax();
|
||||
|
||||
fvOptions.constrain(TEqn);
|
||||
|
||||
TEqn.solve();
|
||||
|
||||
radiation->correct();
|
||||
|
||||
fvOptions.correct(T);
|
||||
|
||||
rhok = 1.0 - beta*(T - TRef);
|
||||
}
|
||||
|
||||
@ -5,10 +5,14 @@
|
||||
fvm::ddt(U)
|
||||
+ fvm::div(phi, U)
|
||||
+ turbulence->divDevReff(U)
|
||||
==
|
||||
fvOptions(U)
|
||||
);
|
||||
|
||||
UEqn.relax();
|
||||
|
||||
fvOptions.constrain(UEqn);
|
||||
|
||||
if (pimple.momentumPredictor())
|
||||
{
|
||||
solve
|
||||
@ -23,4 +27,6 @@
|
||||
)*mesh.magSf()
|
||||
)
|
||||
);
|
||||
|
||||
fvOptions.correct(U);
|
||||
}
|
||||
|
||||
@ -48,8 +48,9 @@ Description
|
||||
#include "fvCFD.H"
|
||||
#include "singlePhaseTransportModel.H"
|
||||
#include "RASModel.H"
|
||||
#include "pimpleControl.H"
|
||||
#include "radiationModel.H"
|
||||
#include "fvIOoptionList.H"
|
||||
#include "pimpleControl.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
@ -61,6 +62,7 @@ int main(int argc, char *argv[])
|
||||
#include "readGravitationalAcceleration.H"
|
||||
#include "createFields.H"
|
||||
#include "createIncompressibleRadiationModel.H"
|
||||
#include "createFvOptions.H"
|
||||
#include "initContinuityErrs.H"
|
||||
#include "readTimeControls.H"
|
||||
#include "CourantNo.H"
|
||||
|
||||
@ -1,5 +1,8 @@
|
||||
EXE_INC = \
|
||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||
-I$(LIB_SRC)/sampling/lnInclude \
|
||||
-I$(LIB_SRC)/meshTools/lnInclude \
|
||||
-I$(LIB_SRC)/fvOptions/lnInclude \
|
||||
-I$(LIB_SRC)/turbulenceModels \
|
||||
-I$(LIB_SRC)/turbulenceModels/incompressible/RAS/lnInclude \
|
||||
-I$(LIB_SRC)/transportModels \
|
||||
@ -7,7 +10,9 @@ EXE_INC = \
|
||||
|
||||
EXE_LIBS = \
|
||||
-lfiniteVolume \
|
||||
-lsampling \
|
||||
-lmeshTools \
|
||||
-lfvOptions \
|
||||
-lincompressibleTurbulenceModel \
|
||||
-lincompressibleRASModels \
|
||||
-lincompressibleTransportModels
|
||||
|
||||
@ -8,10 +8,17 @@
|
||||
(
|
||||
fvm::div(phi, T)
|
||||
- fvm::laplacian(alphaEff, T)
|
||||
==
|
||||
fvOptions(T)
|
||||
);
|
||||
|
||||
TEqn.relax();
|
||||
|
||||
fvOptions.constrain(TEqn);
|
||||
|
||||
TEqn.solve();
|
||||
|
||||
fvOptions.correct(T);
|
||||
|
||||
rhok = 1.0 - beta*(T - TRef);
|
||||
}
|
||||
|
||||
@ -4,16 +4,20 @@
|
||||
(
|
||||
fvm::div(phi, U)
|
||||
+ turbulence->divDevReff(U)
|
||||
==
|
||||
fvOptions(U)
|
||||
);
|
||||
|
||||
UEqn().relax();
|
||||
|
||||
fvOptions.constrain(UEqn());
|
||||
|
||||
if (simple.momentumPredictor())
|
||||
{
|
||||
solve
|
||||
(
|
||||
UEqn()
|
||||
==
|
||||
==
|
||||
fvc::reconstruct
|
||||
(
|
||||
(
|
||||
@ -22,4 +26,6 @@
|
||||
)*mesh.magSf()
|
||||
)
|
||||
);
|
||||
|
||||
fvOptions.correct(U);
|
||||
}
|
||||
|
||||
@ -48,6 +48,7 @@ Description
|
||||
#include "fvCFD.H"
|
||||
#include "singlePhaseTransportModel.H"
|
||||
#include "RASModel.H"
|
||||
#include "fvIOoptionList.H"
|
||||
#include "simpleControl.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
@ -59,6 +60,7 @@ int main(int argc, char *argv[])
|
||||
#include "createMesh.H"
|
||||
#include "readGravitationalAcceleration.H"
|
||||
#include "createFields.H"
|
||||
#include "createFvOptions.H"
|
||||
#include "initContinuityErrs.H"
|
||||
|
||||
simpleControl simple(mesh);
|
||||
|
||||
@ -26,21 +26,18 @@ Application
|
||||
|
||||
Description
|
||||
Combination of heatConductionFoam and buoyantFoam for conjugate heat
|
||||
transfer between a solid region and fluid region. It includes
|
||||
porous media in the primary fluid region treated explicitly.
|
||||
transfer between solid regions and fluid regions. Both regions include
|
||||
the fvOptions framework.
|
||||
|
||||
It handles secondary fluid or solid circuits which can be coupled
|
||||
thermally with the main fluid region. i.e radiators, etc.
|
||||
|
||||
The secondary fluid region is
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#include "fvCFD.H"
|
||||
#include "rhoThermo.H"
|
||||
#include "turbulenceModel.H"
|
||||
#include "fixedGradientFvPatchFields.H"
|
||||
#include "zeroGradientFvPatchFields.H"
|
||||
#include "regionProperties.H"
|
||||
#include "compressibleCourantNo.H"
|
||||
#include "solidRegionDiffNo.H"
|
||||
|
||||
@ -30,7 +30,7 @@ Description
|
||||
|
||||
Sub-models include:
|
||||
- turbulence modelling, i.e. laminar, RAS or LES
|
||||
- run-time selectable finitie volume options, e.g. MRF, explicit porosity
|
||||
- run-time selectable finite volume options, e.g. MRF, explicit porosity
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
|
||||
@ -130,7 +130,7 @@ void Foam::calc(const argList& args, const Time& runTime, const fvMesh& mesh)
|
||||
mesh.magSf()
|
||||
* mesh.surfaceInterpolation::deltaCoeffs()
|
||||
* fvc::interpolate(RASModel->nuEff())
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
@ -192,8 +192,12 @@ void Foam::calc(const argList& args, const Time& runTime, const fvMesh& mesh)
|
||||
mesh,
|
||||
IOobject::NO_READ
|
||||
),
|
||||
mesh.surfaceInterpolation::deltaCoeffs()
|
||||
* (mag(phi)/mesh.magSf())*(runTime.deltaT()/nu)
|
||||
mag(phi)
|
||||
/(
|
||||
mesh.magSf()
|
||||
* mesh.surfaceInterpolation::deltaCoeffs()
|
||||
* nu
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
@ -317,8 +321,12 @@ void Foam::calc(const argList& args, const Time& runTime, const fvMesh& mesh)
|
||||
mesh,
|
||||
IOobject::NO_READ
|
||||
),
|
||||
mesh.surfaceInterpolation::deltaCoeffs()
|
||||
* (mag(phi)/(mesh.magSf()))*(runTime.deltaT()/mu)
|
||||
mag(phi)
|
||||
/(
|
||||
mesh.magSf()
|
||||
* mesh.surfaceInterpolation::deltaCoeffs()
|
||||
* mu
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
@ -330,26 +338,6 @@ void Foam::calc(const argList& args, const Time& runTime, const fvMesh& mesh)
|
||||
<< abort(FatalError);
|
||||
}
|
||||
|
||||
|
||||
// can also check how many cells exceed a particular Pe limit
|
||||
/*
|
||||
{
|
||||
label count = 0;
|
||||
label PeLimit = 200;
|
||||
forAll(PePtr(), i)
|
||||
{
|
||||
if (PePtr()[i] > PeLimit)
|
||||
{
|
||||
count++;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Info<< "Fraction > " << PeLimit << " = "
|
||||
<< scalar(count)/Pe.size() << endl;
|
||||
}
|
||||
*/
|
||||
|
||||
Info<< "Pe max : " << max(PePtr()).value() << endl;
|
||||
|
||||
if (writeResults)
|
||||
|
||||
@ -653,6 +653,36 @@ int main(int argc, char *argv[])
|
||||
Info<< "Checking self-intersection." << endl;
|
||||
|
||||
triSurfaceSearch querySurf(surf);
|
||||
|
||||
//{
|
||||
// OBJstream intStream("selfInter2.obj");
|
||||
// const indexedOctree<treeDataTriSurface>& tree = querySurf.tree();
|
||||
// forAll(surf.edges(), edgeI)
|
||||
// {
|
||||
// const edge& e = surf.edges()[edgeI];
|
||||
//
|
||||
// pointIndexHit hitInfo
|
||||
// (
|
||||
// tree.findLine
|
||||
// (
|
||||
// surf.points()[surf.meshPoints()[e[0]]],
|
||||
// surf.points()[surf.meshPoints()[e[1]]],
|
||||
// treeDataTriSurface::findSelfIntersectOp
|
||||
// (
|
||||
// tree,
|
||||
// edgeI
|
||||
// )
|
||||
// )
|
||||
// );
|
||||
//
|
||||
// if (hitInfo.hit())
|
||||
// {
|
||||
// Pout<< "Found hit:" << hitInfo.hitPoint() << endl;
|
||||
// intStream.write(hitInfo.hitPoint());
|
||||
// }
|
||||
// }
|
||||
//}
|
||||
|
||||
surfaceIntersection inter(querySurf);
|
||||
|
||||
if (inter.cutEdges().empty() && inter.cutPoints().empty())
|
||||
|
||||
Reference in New Issue
Block a user