diff --git a/ReleaseNotes-dev b/ReleaseNotes-dev index 8daf5ef6f457d65afab4186c1e88699dd6a06243..aa3c87699df9b1f9068507eaa41f570a456dee8a 100644 --- a/ReleaseNotes-dev +++ b/ReleaseNotes-dev @@ -105,7 +105,15 @@ + Additional wall functions for primary region momentum and temperature taking film into account + Parallel aware -*** *New* ptscotch decomposition method +*** *New* ptscotch decomposition method. +*** *New* multiLevel decomposition method. + Decomposes in levels, e.g. first decompose onto number of nodes and + then onto number of cores per node. This will minimise off-node + communication. Each level can use any of the other decomposition methods +*** *New* structured decomposition method. + Does a 2D decomposition of a mesh. Valid only for an 'extruded' mesh, i.e. + columns of cells originating from a patch. Bases decomposition on this + patch and assigns the cells according to the patch decomposition. *** *Updated* scotch decomposition method to run in parallel by doing decomposition on the master. Unfortunately scotch and ptscotch cannot be linked in to the same executable. @@ -229,7 +237,8 @@ (nonuniformTransform)cyclic <zoneA>_<zoneB> + extrudes into master direction (i.e. away from the owner cell if flipMap is false) - + =topoSet=: replacement of cellSet,faceSet,pointSet utilities. + + =topoSet=: replacement of cellSet,faceSet,pointSet utilities. Multiple + commands operating on different sets. Comparable to a dictionary driven =setSet= utility. *** Updated utilities + =setFields=: optionally use faceSets to set patch values (see diff --git a/applications/solvers/heatTransfer/buoyantBaffleSimpleFoam/Make/files b/applications/solvers/heatTransfer/buoyantBaffleSimpleFoam/Make/files new file mode 100644 index 0000000000000000000000000000000000000000..cd3553a3027dc21ead56f619b6615465267c60aa --- /dev/null +++ b/applications/solvers/heatTransfer/buoyantBaffleSimpleFoam/Make/files @@ -0,0 +1,3 @@ +buoyantBaffleSimpleFoam.C + +EXE = $(FOAM_APPBIN)/buoyantBaffleSimpleFoam diff --git a/applications/solvers/heatTransfer/buoyantBaffleSimpleFoam/Make/options b/applications/solvers/heatTransfer/buoyantBaffleSimpleFoam/Make/options new file mode 100644 index 0000000000000000000000000000000000000000..08bd50dbe804c1d80242e1a6fed5c199c100035b --- /dev/null +++ b/applications/solvers/heatTransfer/buoyantBaffleSimpleFoam/Make/options @@ -0,0 +1,19 @@ +EXE_INC = \ + -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \ + -I$(LIB_SRC)/meshTools/lnInclude \ + -I$(LIB_SRC)/turbulenceModels \ + -I$(LIB_SRC)/turbulenceModels/compressible/RAS/lnInclude \ + -I$(LIB_SRC)/finiteVolume/cfdTools \ + -I$(LIB_SRC)/finiteVolume/lnInclude \ + -I$(LIB_SRC)/regionModels/regionModel/lnInclude \ + -I$(LIB_SRC)/regionModels/thermoBaffleModels/lnInclude + +EXE_LIBS = \ + -lmeshTools \ + -lbasicThermophysicalModels \ + -lspecie \ + -lcompressibleTurbulenceModel \ + -lcompressibleRASModels \ + -lfiniteVolume \ + -lmeshTools \ + -lthermoBaffleModels diff --git a/applications/solvers/heatTransfer/buoyantBaffleSimpleFoam/UEqn.H b/applications/solvers/heatTransfer/buoyantBaffleSimpleFoam/UEqn.H new file mode 100644 index 0000000000000000000000000000000000000000..ca28910aaf3c51186663b2fb5919104d4fd07398 --- /dev/null +++ b/applications/solvers/heatTransfer/buoyantBaffleSimpleFoam/UEqn.H @@ -0,0 +1,25 @@ + // Solve the Momentum equation + + tmp<fvVectorMatrix> UEqn + ( + fvm::div(phi, U) + + turbulence->divDevRhoReff(U) + ); + + UEqn().relax(); + + if (simple.momentumPredictor()) + { + solve + ( + UEqn() + == + fvc::reconstruct + ( + ( + - ghf*fvc::snGrad(rho) + - fvc::snGrad(p_rgh) + )*mesh.magSf() + ) + ); + } diff --git a/applications/solvers/heatTransfer/buoyantBaffleSimpleFoam/buoyantBaffleSimpleFoam.C b/applications/solvers/heatTransfer/buoyantBaffleSimpleFoam/buoyantBaffleSimpleFoam.C new file mode 100644 index 0000000000000000000000000000000000000000..6a31904e78dc3f8151f60a39ee63862c71a215b6 --- /dev/null +++ b/applications/solvers/heatTransfer/buoyantBaffleSimpleFoam/buoyantBaffleSimpleFoam.C @@ -0,0 +1,86 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2011-2011 OpenCFD Ltd. + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. + +Application + buoyantBaffleSimpleFoam + +Description + Steady-state solver for buoyant, turbulent flow of compressible fluids + using thermal baffles + +\*---------------------------------------------------------------------------*/ + +#include "fvCFD.H" +#include "basicPsiThermo.H" +#include "RASModel.H" +#include "fixedGradientFvPatchFields.H" +#include "simpleControl.H" +#include "thermoBaffleModel.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +int main(int argc, char *argv[]) +{ + #include "setRootCase.H" + #include "createTime.H" + #include "createMesh.H" + #include "readGravitationalAcceleration.H" + #include "createFields.H" + #include "initContinuityErrs.H" + + simpleControl simple(mesh); + + // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + + Info<< "\nStarting time loop\n" << endl; + + while (simple.loop()) + { + Info<< "Time = " << runTime.timeName() << nl << endl; + + p_rgh.storePrevIter(); + rho.storePrevIter(); + + // Pressure-velocity SIMPLE corrector + { + #include "UEqn.H" + #include "hEqn.H" + #include "pEqn.H" + } + + turbulence->correct(); + + runTime.write(); + + Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s" + << " ClockTime = " << runTime.elapsedClockTime() << " s" + << nl << endl; + } + + Info<< "End\n" << endl; + + return 0; +} + + +// ************************************************************************* // diff --git a/applications/solvers/heatTransfer/buoyantBaffleSimpleFoam/createFields.H b/applications/solvers/heatTransfer/buoyantBaffleSimpleFoam/createFields.H new file mode 100644 index 0000000000000000000000000000000000000000..7adb8e41e712d34bfde5fae5152a1567cc26bb42 --- /dev/null +++ b/applications/solvers/heatTransfer/buoyantBaffleSimpleFoam/createFields.H @@ -0,0 +1,94 @@ + Info<< "Reading thermophysical properties\n" << endl; + + autoPtr<basicPsiThermo> pThermo + ( + basicPsiThermo::New(mesh) + ); + basicPsiThermo& thermo = pThermo(); + + volScalarField rho + ( + IOobject + ( + "rho", + runTime.timeName(), + mesh, + IOobject::NO_READ, + IOobject::NO_WRITE + ), + thermo.rho() + ); + + volScalarField& p = thermo.p(); + volScalarField& h = thermo.h(); + const volScalarField& psi = thermo.psi(); + + Info<< "Reading field U\n" << endl; + volVectorField U + ( + IOobject + ( + "U", + runTime.timeName(), + mesh, + IOobject::MUST_READ, + IOobject::AUTO_WRITE + ), + mesh + ); + + #include "compressibleCreatePhi.H" + + Info<< "Creating turbulence model\n" << endl; + autoPtr<compressible::RASModel> turbulence + ( + compressible::RASModel::New + ( + rho, + U, + phi, + thermo + ) + ); + + + Info<< "Calculating field g.h\n" << endl; + volScalarField gh("gh", g & mesh.C()); + surfaceScalarField ghf("ghf", g & mesh.Cf()); + + Info<< "Reading field p_rgh\n" << endl; + volScalarField p_rgh + ( + IOobject + ( + "p_rgh", + runTime.timeName(), + mesh, + IOobject::MUST_READ, + IOobject::AUTO_WRITE + ), + mesh + ); + + // Force p_rgh to be consistent with p + p_rgh = p - rho*gh; + + + label pRefCell = 0; + scalar pRefValue = 0.0; + setRefCell + ( + p, + p_rgh, + mesh.solutionDict().subDict("SIMPLE"), + pRefCell, + pRefValue + ); + + autoPtr<regionModels::thermoBaffleModels::thermoBaffleModel> baffles + ( + regionModels::thermoBaffleModels::thermoBaffleModel::New(mesh) + ); + + dimensionedScalar initialMass = fvc::domainIntegrate(rho); + dimensionedScalar totalVolume = sum(mesh.V()); diff --git a/applications/solvers/heatTransfer/buoyantBaffleSimpleFoam/hEqn.H b/applications/solvers/heatTransfer/buoyantBaffleSimpleFoam/hEqn.H new file mode 100644 index 0000000000000000000000000000000000000000..23313b56cf10d7819fe0cd0f69cae76341941cc9 --- /dev/null +++ b/applications/solvers/heatTransfer/buoyantBaffleSimpleFoam/hEqn.H @@ -0,0 +1,17 @@ +{ + fvScalarMatrix hEqn + ( + fvm::div(phi, h) + - fvm::Sp(fvc::div(phi), h) + - fvm::laplacian(turbulence->alphaEff(), h) + == + fvc::div(phi/fvc::interpolate(rho)*fvc::interpolate(p)) + - p*fvc::div(phi/fvc::interpolate(rho)) + ); + + hEqn.relax(); + hEqn.solve(); + + baffles->evolve(); + thermo.correct(); +} diff --git a/applications/solvers/heatTransfer/buoyantBaffleSimpleFoam/pEqn.H b/applications/solvers/heatTransfer/buoyantBaffleSimpleFoam/pEqn.H new file mode 100644 index 0000000000000000000000000000000000000000..17bf590f2958c9df5fb4aac55953e441a830d497 --- /dev/null +++ b/applications/solvers/heatTransfer/buoyantBaffleSimpleFoam/pEqn.H @@ -0,0 +1,59 @@ +{ + rho = thermo.rho(); + rho.relax(); + + volScalarField rAU(1.0/UEqn().A()); + surfaceScalarField rhorAUf("(rho*(1|A(U)))", fvc::interpolate(rho*rAU)); + + U = rAU*UEqn().H(); + UEqn.clear(); + + phi = fvc::interpolate(rho)*(fvc::interpolate(U) & mesh.Sf()); + bool closedVolume = adjustPhi(phi, U, p_rgh); + + surfaceScalarField buoyancyPhi(rhorAUf*ghf*fvc::snGrad(rho)*mesh.magSf()); + phi -= buoyancyPhi; + + for (int nonOrth=0; nonOrth<=simple.nNonOrthCorr(); nonOrth++) + { + fvScalarMatrix p_rghEqn + ( + fvm::laplacian(rhorAUf, p_rgh) == fvc::div(phi) + ); + + p_rghEqn.setReference(pRefCell, getRefCellValue(p_rgh, pRefCell)); + p_rghEqn.solve(); + + if (nonOrth == simple.nNonOrthCorr()) + { + // Calculate the conservative fluxes + phi -= p_rghEqn.flux(); + + // Explicitly relax pressure for momentum corrector + p_rgh.relax(); + + // Correct the momentum source with the pressure gradient flux + // calculated from the relaxed pressure + U -= rAU*fvc::reconstruct((buoyancyPhi + p_rghEqn.flux())/rhorAUf); + U.correctBoundaryConditions(); + } + } + + #include "continuityErrs.H" + + p = p_rgh + rho*gh; + + // For closed-volume cases adjust the pressure level + // to obey overall mass continuity + if (closedVolume) + { + p += (initialMass - fvc::domainIntegrate(psi*p)) + /fvc::domainIntegrate(psi); + p_rgh = p - rho*gh; + } + + rho = thermo.rho(); + rho.relax(); + Info<< "rho max/min : " << max(rho).value() << " " << min(rho).value() + << endl; +} diff --git a/applications/utilities/parallelProcessing/decomposePar/decomposeParDict b/applications/utilities/parallelProcessing/decomposePar/decomposeParDict index 26283baa2ede28469c0e4dc8dd6603c10c6107e3..94a3b75c1f902cfa10be5e513013749ba8be43bb 100644 --- a/applications/utilities/parallelProcessing/decomposePar/decomposeParDict +++ b/applications/utilities/parallelProcessing/decomposePar/decomposeParDict @@ -37,6 +37,7 @@ method scotch; // method metis; // method manual; // method multiLevel; +// method structured; // does 2D decomposition of structured mesh multiLevelCoeffs { @@ -108,6 +109,15 @@ manualCoeffs } +structuredCoeffs +{ + // Patches to do 2D decomposition on. Structured mesh only; cells have + // to be in 'columns' on top of patches. + patches (bottomPatch); +} + + + //// Is the case distributed //distributed yes; //// Per slave (so nProcs-1 entries) the directory above the case. diff --git a/applications/utilities/parallelProcessing/decomposePar/domainDecomposition.C b/applications/utilities/parallelProcessing/decomposePar/domainDecomposition.C index 4882c118a0bded103994f2264c9ff2169acdc4e1..36a6ad2eb4c10fe1ff21a4dc5f2c6af8a3465034 100644 --- a/applications/utilities/parallelProcessing/decomposePar/domainDecomposition.C +++ b/applications/utilities/parallelProcessing/decomposePar/domainDecomposition.C @@ -860,6 +860,16 @@ bool Foam::domainDecomposition::writeDecomposition() scalar avgProcPatches = scalar(totProcPatches)/nProcs_; scalar avgProcFaces = scalar(totProcFaces)/nProcs_; + // In case of all faces on one processor. Just to avoid division by 0. + if (totProcPatches == 0) + { + avgProcPatches = 1; + } + if (totProcFaces == 0) + { + avgProcFaces = 1; + } + Info<< nl << "Number of processor faces = " << totProcFaces/2 << nl << "Max number of cells = " << maxProcCells diff --git a/applications/utilities/parallelProcessing/redistributeMeshPar/redistributeMeshPar.C b/applications/utilities/parallelProcessing/redistributeMeshPar/redistributeMeshPar.C index 8812e78e64e9db58f617bf180807feeba3807b81..509bff88986f1cb87e2742980a013bd24414bd19 100644 --- a/applications/utilities/parallelProcessing/redistributeMeshPar/redistributeMeshPar.C +++ b/applications/utilities/parallelProcessing/redistributeMeshPar/redistributeMeshPar.C @@ -475,6 +475,16 @@ void printMeshData(const polyMesh& mesh) scalar avgProcPatches = scalar(totProcPatches)/Pstream::nProcs(); scalar avgProcFaces = scalar(totProcFaces)/Pstream::nProcs(); + // In case of all faces on one processor. Just to avoid division by 0. + if (totProcPatches == 0) + { + avgProcPatches = 1; + } + if (totProcFaces == 0) + { + avgProcFaces = 1; + } + Info<< nl << "Number of processor faces = " << totProcFaces/2 << nl << "Max number of cells = " << maxProcCells diff --git a/applications/utilities/surface/surfaceSubset/surfaceSubset.C b/applications/utilities/surface/surfaceSubset/surfaceSubset.C index fb41623074d1eaba2993cd6c3b14379f0a5ec8c9..0fb1feed703b5d85e99bc874ab1c3e853f98a99e 100644 --- a/applications/utilities/surface/surfaceSubset/surfaceSubset.C +++ b/applications/utilities/surface/surfaceSubset/surfaceSubset.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd. + \\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd. \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -249,7 +249,11 @@ int main(int argc, char *argv[]) // search engine indexedOctree<treeDataTriSurface> selectTree ( - treeDataTriSurface(selectSurf), + treeDataTriSurface + ( + selectSurf, + indexedOctree<treeDataTriSurface>::perturbTol() + ), bb.extend(rndGen, 1E-4), // slightly randomize bb 8, // maxLevel 10, // leafsize diff --git a/src/OpenFOAM/algorithms/indexedOctree/indexedOctree.C b/src/OpenFOAM/algorithms/indexedOctree/indexedOctree.C index 10cb44fa272e2d7581a50d0a6083019745358525..a35b62474b93a655c98c0964ffecb999fafe0e43 100644 --- a/src/OpenFOAM/algorithms/indexedOctree/indexedOctree.C +++ b/src/OpenFOAM/algorithms/indexedOctree/indexedOctree.C @@ -714,7 +714,7 @@ Foam::point Foam::indexedOctree<Type>::pushPoint ) { // Get local length scale. - const vector perturbVec = perturbTol_*(bb.span()); + const vector perturbVec = perturbTol_*bb.span(); point perturbedPt(pt); diff --git a/src/meshTools/indexedOctree/treeDataTriSurface.C b/src/meshTools/indexedOctree/treeDataTriSurface.C index 63c76de4825b465120f21a8f8c4c0b5c274e99c6..3ce85caa795a70f1078c4aa8a53723a962ec5aba 100644 --- a/src/meshTools/indexedOctree/treeDataTriSurface.C +++ b/src/meshTools/indexedOctree/treeDataTriSurface.C @@ -179,9 +179,14 @@ defineTypeNameAndDebug(Foam::treeDataTriSurface, 0); // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // // Construct from components -Foam::treeDataTriSurface::treeDataTriSurface(const triSurface& surface) +Foam::treeDataTriSurface::treeDataTriSurface +( + const triSurface& surface, + const scalar planarTol +) : - surface_(surface) + surface_(surface), + planarTol_(planarTol) {} @@ -437,7 +442,7 @@ bool Foam::treeDataTriSurface::intersects dir, points, intersection::HALF_RAY, - indexedOctree<treeDataTriSurface>::perturbTol() + planarTol_ ); if (inter.hit() && inter.distance() <= 1) diff --git a/src/meshTools/indexedOctree/treeDataTriSurface.H b/src/meshTools/indexedOctree/treeDataTriSurface.H index 47778c61c598c348c0a523546e799ad92ac2ee69..4029b507ff29307b45a44f7d514ace1d5a1265a4 100644 --- a/src/meshTools/indexedOctree/treeDataTriSurface.H +++ b/src/meshTools/indexedOctree/treeDataTriSurface.H @@ -55,8 +55,11 @@ class treeDataTriSurface { // Private data + //- Reference to triSurface const triSurface& surface_; + //- Tolerance to use for intersection tests + const scalar planarTol_; // Private Member Functions @@ -83,8 +86,9 @@ public: // Constructors - //- Construct from triSurface. Holds reference. - treeDataTriSurface(const triSurface&); + //- Construct from triSurface and tolerance for intersection + // tests. Holds reference. + treeDataTriSurface(const triSurface&, const scalar planarTol); // Member Functions diff --git a/src/meshTools/searchableSurface/triSurfaceMesh.C b/src/meshTools/searchableSurface/triSurfaceMesh.C index c3c7c69b34b679fabae31596f057431daef1c72c..c532ac3d399754382004951df214177767d82208 100644 --- a/src/meshTools/searchableSurface/triSurfaceMesh.C +++ b/src/meshTools/searchableSurface/triSurfaceMesh.C @@ -492,7 +492,7 @@ void Foam::triSurfaceMesh::movePoints(const pointField& newPoints) const Foam::indexedOctree<Foam::treeDataTriSurface>& - Foam::triSurfaceMesh::tree() const +Foam::triSurfaceMesh::tree() const { if (tree_.empty()) { @@ -528,7 +528,7 @@ const Foam::indexedOctree<Foam::treeDataTriSurface>& ( new indexedOctree<treeDataTriSurface> ( - treeDataTriSurface(*this), + treeDataTriSurface(*this, tolerance_), bb, maxTreeDepth_, // maxLevel 10, // leafsize @@ -544,7 +544,7 @@ const Foam::indexedOctree<Foam::treeDataTriSurface>& const Foam::indexedOctree<Foam::treeDataEdge>& - Foam::triSurfaceMesh::edgeTree() const +Foam::triSurfaceMesh::edgeTree() const { if (edgeTree_.empty()) { diff --git a/src/meshTools/triSurface/triSurfaceSearch/triSurfaceSearch.C b/src/meshTools/triSurface/triSurfaceSearch/triSurfaceSearch.C index 19a3e4953cc6b0abb8ddf42feea3b006b96c9049..92d8f8ad6dbb9d2d9dcfd280352499f83978f76a 100644 --- a/src/meshTools/triSurface/triSurfaceSearch/triSurfaceSearch.C +++ b/src/meshTools/triSurface/triSurfaceSearch/triSurfaceSearch.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd. + \\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd. \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -64,7 +64,11 @@ Foam::triSurfaceSearch::triSurfaceSearch(const triSurface& surface) ( new indexedOctree<treeDataTriSurface> ( - treeDataTriSurface(surface_), + treeDataTriSurface + ( + surface_, + indexedOctree<treeDataTriSurface>::perturbTol() + ), treeBb, 8, // maxLevel 10, // leafsize diff --git a/src/parallel/decompose/decompositionMethods/decompositionMethod/decompositionMethod.C b/src/parallel/decompose/decompositionMethods/decompositionMethod/decompositionMethod.C index 1cfb22887b7c795b97956e4b1336a75eaab9a84c..44d3cc027b778033ed40815d4c244e4288acbd30 100644 --- a/src/parallel/decompose/decompositionMethods/decompositionMethod/decompositionMethod.C +++ b/src/parallel/decompose/decompositionMethods/decompositionMethod/decompositionMethod.C @@ -448,8 +448,8 @@ void Foam::decompositionMethod::calcCellCells // Count number of faces (internal + coupled) // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - // Number of faces per cell - labelList nFacesPerCell(mesh.nCells(), 0); + // Number of faces per coarse cell + labelList nFacesPerCell(nCoarse, 0); for (label faceI = 0; faceI < mesh.nInternalFaces(); faceI++) { @@ -481,7 +481,11 @@ void Foam::decompositionMethod::calcCellCells { label own = agglom[faceOwner[faceI]]; label globalNei = globalNeighbour[bFaceI]; - if (cellPair.insert(labelPair(own, globalNei))) + if + ( + globalAgglom.toGlobal(own) != globalNei + && cellPair.insert(labelPair(own, globalNei)) + ) { nFacesPerCell[own]++; } diff --git a/src/turbulenceModels/compressible/turbulenceModel/derivedFvPatchFields/temperatureThermoBaffle1D/temperatureThermoBaffle1DFvPatchScalarField.H b/src/turbulenceModels/compressible/turbulenceModel/derivedFvPatchFields/temperatureThermoBaffle1D/temperatureThermoBaffle1DFvPatchScalarField.H index 5c7c998c6a43d01d09cfa60a192a891ae83063f4..ef341ee0d78a8143d30fd42f17a7fe72d79c879a 100644 --- a/src/turbulenceModels/compressible/turbulenceModel/derivedFvPatchFields/temperatureThermoBaffle1D/temperatureThermoBaffle1DFvPatchScalarField.H +++ b/src/turbulenceModels/compressible/turbulenceModel/derivedFvPatchFields/temperatureThermoBaffle1D/temperatureThermoBaffle1DFvPatchScalarField.H @@ -76,10 +76,10 @@ class temperatureThermoBaffle1DFvPatchScalarField solidThermoData(const dictionary& dict) : solidPtr_(new solidType(dict)), - transportDict_(dict.subDict("transportProperties")), - radiationDict_(dict.subDict("radiativeProperties")), - thermoDict_(dict.subDict("thermoProperties")), - densityDict_(dict.subDict("densityProperties")) + transportDict_(dict.subDict("transport")), + radiationDict_(dict.subDict("radiation")), + thermoDict_(dict.subDict("thermodynamics")), + densityDict_(dict.subDict("density")) {} @@ -103,13 +103,13 @@ class temperatureThermoBaffle1DFvPatchScalarField void write(Ostream& os) const { - os.writeKeyword("transportProperties"); + os.writeKeyword("transport"); os << transportDict_ << nl; - os.writeKeyword("radiativeProperties"); + os.writeKeyword("radiation"); os << radiationDict_ << nl; - os.writeKeyword("thermoProperties"); + os.writeKeyword("thermodynamics"); os << thermoDict_ << nl; - os.writeKeyword("densityProperties"); + os.writeKeyword("density"); os << densityDict_ << nl; } diff --git a/tutorials/heatTransfer/buoyantBaffleSimpleFoam/circuitBoardCooling/0.org/T b/tutorials/heatTransfer/buoyantBaffleSimpleFoam/circuitBoardCooling/0.org/T new file mode 100644 index 0000000000000000000000000000000000000000..2e95cadde53bf34216f66d1efd813ae628a04bf8 --- /dev/null +++ b/tutorials/heatTransfer/buoyantBaffleSimpleFoam/circuitBoardCooling/0.org/T @@ -0,0 +1,50 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object T; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [ 0 0 0 1 0 0 0 ]; + +internalField uniform 300; + +boundaryField +{ + floor + { + type zeroGradient; + } + ceiling + { + type zeroGradient; + } + inlet + { + type fixedValue; + value uniform 300; + } + outlet + { + type inletOutlet; + inletValue uniform 300; + value uniform 300; + } + fixedWalls + { + type empty; + } +} + + +// ************************************************************************* // diff --git a/tutorials/heatTransfer/buoyantBaffleSimpleFoam/circuitBoardCooling/0.org/U b/tutorials/heatTransfer/buoyantBaffleSimpleFoam/circuitBoardCooling/0.org/U new file mode 100644 index 0000000000000000000000000000000000000000..f570788abe86c7415131edbddf22b305b9b09248 --- /dev/null +++ b/tutorials/heatTransfer/buoyantBaffleSimpleFoam/circuitBoardCooling/0.org/U @@ -0,0 +1,52 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volVectorField; + location "0"; + object U; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [ 0 1 -1 0 0 0 0 ]; + +internalField uniform ( 0.1 0 0 ); + +boundaryField +{ + floor + { + type fixedValue; + value uniform ( 0 0 0 ); + } + ceiling + { + type fixedValue; + value uniform ( 0 0 0 ); + } + inlet + { + type fixedValue; + value uniform ( 0.1 0 0 ); + } + outlet + { + type inletOutlet; + inletValue uniform ( 0 0 0 ); + value uniform ( 0 0 0 ); + } + fixedWalls + { + type empty; + } +} + + +// ************************************************************************* // diff --git a/tutorials/heatTransfer/buoyantBaffleSimpleFoam/circuitBoardCooling/0.org/alphat b/tutorials/heatTransfer/buoyantBaffleSimpleFoam/circuitBoardCooling/0.org/alphat new file mode 100644 index 0000000000000000000000000000000000000000..0f9fd90151f0ccf5c77489004530ddd50c8b507d --- /dev/null +++ b/tutorials/heatTransfer/buoyantBaffleSimpleFoam/circuitBoardCooling/0.org/alphat @@ -0,0 +1,51 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object alphat; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [ 1 -1 -1 0 0 0 0 ]; + +internalField uniform 0; + +boundaryField +{ + floor + { + type alphatWallFunction; + value uniform 0; + } + ceiling + { + type alphatWallFunction; + value uniform 0; + } + inlet + { + type calculated; + value uniform 0; + } + outlet + { + type calculated; + value uniform 0; + } + fixedWalls + { + type empty; + } +} + + +// ************************************************************************* // diff --git a/tutorials/heatTransfer/buoyantBaffleSimpleFoam/circuitBoardCooling/0.org/epsilon b/tutorials/heatTransfer/buoyantBaffleSimpleFoam/circuitBoardCooling/0.org/epsilon new file mode 100644 index 0000000000000000000000000000000000000000..1062586afe1aa0f7f78eee82ea6f60d1cf4956fc --- /dev/null +++ b/tutorials/heatTransfer/buoyantBaffleSimpleFoam/circuitBoardCooling/0.org/epsilon @@ -0,0 +1,50 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object epsilon; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [ 0 2 -3 0 0 0 0 ]; + +internalField uniform 0.01; + +boundaryField +{ + floor + { + type compressible::epsilonWallFunction; + value uniform 0.01; + } + ceiling + { + type compressible::epsilonWallFunction; + value uniform 0.01; + } + inlet + { + type fixedValue; + value uniform 0.01; + } + outlet + { + type zeroGradient; + } + fixedWalls + { + type empty; + } +} + + +// ************************************************************************* // diff --git a/tutorials/heatTransfer/buoyantBaffleSimpleFoam/circuitBoardCooling/0.org/k b/tutorials/heatTransfer/buoyantBaffleSimpleFoam/circuitBoardCooling/0.org/k new file mode 100644 index 0000000000000000000000000000000000000000..a4a67f33565d051889ddb5a9e3afb744706e6f00 --- /dev/null +++ b/tutorials/heatTransfer/buoyantBaffleSimpleFoam/circuitBoardCooling/0.org/k @@ -0,0 +1,50 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object k; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [ 0 2 -2 0 0 0 0 ]; + +internalField uniform 0.1; + +boundaryField +{ + floor + { + type compressible::kqRWallFunction; + value uniform 0.1; + } + ceiling + { + type compressible::kqRWallFunction; + value uniform 0.1; + } + inlet + { + type fixedValue; + value uniform 0.1; + } + outlet + { + type zeroGradient; + } + fixedWalls + { + type empty; + } +} + + +// ************************************************************************* // diff --git a/tutorials/heatTransfer/buoyantBaffleSimpleFoam/circuitBoardCooling/0.org/mut b/tutorials/heatTransfer/buoyantBaffleSimpleFoam/circuitBoardCooling/0.org/mut new file mode 100644 index 0000000000000000000000000000000000000000..d67e74eec44139d80becedd5c53bf0b6c39ec452 --- /dev/null +++ b/tutorials/heatTransfer/buoyantBaffleSimpleFoam/circuitBoardCooling/0.org/mut @@ -0,0 +1,51 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object mut; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [ 1 -1 -1 0 0 0 0 ]; + +internalField uniform 0; + +boundaryField +{ + floor + { + type mutkWallFunction; + value uniform 0; + } + ceiling + { + type mutkWallFunction; + value uniform 0; + } + inlet + { + type calculated; + value uniform 0; + } + outlet + { + type calculated; + value uniform 0; + } + fixedWalls + { + type empty; + } +} + + +// ************************************************************************* // diff --git a/tutorials/heatTransfer/buoyantBaffleSimpleFoam/circuitBoardCooling/0.org/p b/tutorials/heatTransfer/buoyantBaffleSimpleFoam/circuitBoardCooling/0.org/p new file mode 100644 index 0000000000000000000000000000000000000000..729596084bcbc44d38551336f65d3f0af9be7194 --- /dev/null +++ b/tutorials/heatTransfer/buoyantBaffleSimpleFoam/circuitBoardCooling/0.org/p @@ -0,0 +1,51 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object p; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [ 1 -1 -2 0 0 0 0 ]; + +internalField uniform 101325; + +boundaryField +{ + floor + { + type calculated; + value uniform 101325; + } + ceiling + { + type calculated; + value uniform 101325; + } + inlet + { + type calculated; + value uniform 101325; + } + outlet + { + type calculated; + value uniform 101325; + } + fixedWalls + { + type empty; + } +} + + +// ************************************************************************* // diff --git a/tutorials/heatTransfer/buoyantBaffleSimpleFoam/circuitBoardCooling/0.org/p_rgh b/tutorials/heatTransfer/buoyantBaffleSimpleFoam/circuitBoardCooling/0.org/p_rgh new file mode 100644 index 0000000000000000000000000000000000000000..b98d4ba3d615feb77b634bcc3fd0b48bfa74f185 --- /dev/null +++ b/tutorials/heatTransfer/buoyantBaffleSimpleFoam/circuitBoardCooling/0.org/p_rgh @@ -0,0 +1,55 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object p_rgh; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [ 1 -1 -2 0 0 0 0 ]; + +internalField uniform 0; + +boundaryField +{ + floor + { + type buoyantPressure; + gradient uniform 0; + value uniform 0; + } + ceiling + { + type buoyantPressure; + gradient uniform 0; + value uniform 0; + } + inlet + { + type buoyantPressure; + gradient uniform 0; + value uniform 0; + } + outlet + { + type buoyantPressure; + gradient uniform 0; + value uniform 0; + } + fixedWalls + { + type empty; + } +} + + +// ************************************************************************* // diff --git a/tutorials/heatTransfer/buoyantBaffleSimpleFoam/circuitBoardCooling/Allclean b/tutorials/heatTransfer/buoyantBaffleSimpleFoam/circuitBoardCooling/Allclean new file mode 100755 index 0000000000000000000000000000000000000000..bbb2246df08410f7bb8f06844669078600886730 --- /dev/null +++ b/tutorials/heatTransfer/buoyantBaffleSimpleFoam/circuitBoardCooling/Allclean @@ -0,0 +1,10 @@ +#!/bin/sh +cd ${0%/*} || exit 1 # run from this directory + +# Source tutorial clean functions +. $WM_PROJECT_DIR/bin/tools/CleanFunctions + +cleanCase +rm -rf sets 0 + +# ----------------------------------------------------------------- end-of-file diff --git a/tutorials/heatTransfer/buoyantBaffleSimpleFoam/circuitBoardCooling/Allrun b/tutorials/heatTransfer/buoyantBaffleSimpleFoam/circuitBoardCooling/Allrun new file mode 100755 index 0000000000000000000000000000000000000000..ef3b6603482809bcb0987a0e11c4a37df13b78e2 --- /dev/null +++ b/tutorials/heatTransfer/buoyantBaffleSimpleFoam/circuitBoardCooling/Allrun @@ -0,0 +1,27 @@ +#!/bin/sh +. $WM_PROJECT_DIR/bin/tools/RunFunctions + +# Get application name +application=`getApplication` + +cp -r 0.org 0 +runApplication blockMesh + +runApplication setSet -batch baffle.setSet + +unset FOAM_SETNAN +unset FOAM_SIGFPE + +# Add the patches for the baffles +runApplication changeDictionary -literalRE +rm log.changeDictionary + +# Create first baffle +createBaffles baffleFaces '(baffle1Wall_0 baffle1Wall_1)' -overwrite > log.createBaffles 2>&1 +# Create second baffle +createBaffles baffleFaces2 '(baffle2Wall_0 baffle2Wall_1)' -overwrite > log.createBaffles 2>&1 + +# Reset proper values at the baffles +runApplication changeDictionary + +runApplication $application diff --git a/tutorials/heatTransfer/buoyantBaffleSimpleFoam/circuitBoardCooling/baffle.setSet b/tutorials/heatTransfer/buoyantBaffleSimpleFoam/circuitBoardCooling/baffle.setSet new file mode 100644 index 0000000000000000000000000000000000000000..89be31e65e3839d150cf49aad44b84408862fca3 --- /dev/null +++ b/tutorials/heatTransfer/buoyantBaffleSimpleFoam/circuitBoardCooling/baffle.setSet @@ -0,0 +1,6 @@ +# Create face set +faceSet baffleFaces new boxToFace (0.29 0 0) (0.31 0.18 2) +faceZoneSet baffleFaces new setToFaceZone baffleFaces + +faceSet baffleFaces2 new boxToFace (0.59 0.0 0.0)(0.61 0.18 2.0) +faceZoneSet baffleFaces2 new setToFaceZone baffleFaces2 diff --git a/tutorials/heatTransfer/buoyantBaffleSimpleFoam/circuitBoardCooling/constant/RASProperties b/tutorials/heatTransfer/buoyantBaffleSimpleFoam/circuitBoardCooling/constant/RASProperties new file mode 100644 index 0000000000000000000000000000000000000000..70cbcdec448f1a05590a31bbdc7fd78fb1581fff --- /dev/null +++ b/tutorials/heatTransfer/buoyantBaffleSimpleFoam/circuitBoardCooling/constant/RASProperties @@ -0,0 +1,23 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object RASProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +RASModel kEpsilon; + +turbulence on; + +printCoeffs on; + +// ************************************************************************* // diff --git a/tutorials/heatTransfer/buoyantBaffleSimpleFoam/circuitBoardCooling/constant/g b/tutorials/heatTransfer/buoyantBaffleSimpleFoam/circuitBoardCooling/constant/g new file mode 100644 index 0000000000000000000000000000000000000000..4fea433a003518e15418a7270bcf4842db7b2126 --- /dev/null +++ b/tutorials/heatTransfer/buoyantBaffleSimpleFoam/circuitBoardCooling/constant/g @@ -0,0 +1,22 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class uniformDimensionedVectorField; + location "constant"; + object g; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 1 -2 0 0 0 0]; +value ( 0 -9.81 0 ); + + +// ************************************************************************* // diff --git a/tutorials/heatTransfer/buoyantBaffleSimpleFoam/circuitBoardCooling/constant/polyMesh/blockMeshDict b/tutorials/heatTransfer/buoyantBaffleSimpleFoam/circuitBoardCooling/constant/polyMesh/blockMeshDict new file mode 100644 index 0000000000000000000000000000000000000000..2e040b855b03020b347c81e11c8f94a8cb639762 --- /dev/null +++ b/tutorials/heatTransfer/buoyantBaffleSimpleFoam/circuitBoardCooling/constant/polyMesh/blockMeshDict @@ -0,0 +1,137 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object blockMeshDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +convertToMeters 0.1; + +vertices +( + (0 0 0) + (10 0 0) + (10 5 0) + (0 5 0) + (0 0 10) + (10 0 10) + (10 5 10) + (0 5 10) +); + +blocks +( + hex (0 1 2 3 4 5 6 7) (40 20 1) simpleGrading (1 1 1) +); + +edges +( +); + +boundary +( + floor + { + type wall; + faces + ( + (1 5 4 0) + ); + } + + ceiling + { + type wall; + faces + ( + (2 6 7 3) + ); + } + + inlet + { + type patch; + faces + ( + (0 4 7 3) + ); + } + + outlet + { + type patch; + faces + ( + (1 5 6 2) + ); + } + + fixedWalls + { + type empty; + faces + ( + (0 3 2 1) + (4 5 6 7) + ); + } + + baffle1Wall_0 + { + type directMappedWall; + sampleMode nearestPatchFace; + sampleRegion region0; + samplePatch baffle1Wall_1; + offsetMode uniform; + offset (0 0 0); + faces (); + } + + baffle1Wall_1 + { + type directMappedWall; + sampleMode nearestPatchFace; + sampleRegion region0; + samplePatch baffle1Wall_0; + offsetMode uniform; + offset (0 0 0); + faces (); + } + + baffle2Wall_0 + { + type directMappedWall; + sampleMode nearestPatchFace; + sampleRegion region0; + samplePatch baffle2Wall_1; + offsetMode uniform; + offset (0 0 0); + faces (); + } + + baffle2Wall_1 + { + type directMappedWall; + sampleMode nearestPatchFace; + sampleRegion region0; + samplePatch baffle2Wall_0; + offsetMode uniform; + offset (0 0 0); + faces (); + } +); + +mergePatchPairs +( +); + +// ************************************************************************* // diff --git a/tutorials/heatTransfer/buoyantBaffleSimpleFoam/circuitBoardCooling/constant/polyMesh/boundary b/tutorials/heatTransfer/buoyantBaffleSimpleFoam/circuitBoardCooling/constant/polyMesh/boundary new file mode 100644 index 0000000000000000000000000000000000000000..d848038c6ec78799c3438d87297eff11d1830d8d --- /dev/null +++ b/tutorials/heatTransfer/buoyantBaffleSimpleFoam/circuitBoardCooling/constant/polyMesh/boundary @@ -0,0 +1,96 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class polyBoundaryMesh; + location "constant/polyMesh"; + object boundary; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +9 +( + floor + { + type wall; + nFaces 40; + startFace 1526; + } + ceiling + { + type wall; + nFaces 40; + startFace 1566; + } + inlet + { + type patch; + nFaces 20; + startFace 1606; + } + outlet + { + type patch; + nFaces 20; + startFace 1626; + } + fixedWalls + { + type empty; + nFaces 1600; + startFace 1646; + } + baffle1Wall_0 + { + type directMappedWall; + nFaces 7; + startFace 3246; + sampleMode nearestPatchFace; + sampleRegion region0; + samplePatch baffle1Wall_1; + offsetMode uniform; + offset (0 0 0); + } + baffle1Wall_1 + { + type directMappedWall; + nFaces 7; + startFace 3253; + sampleMode nearestPatchFace; + sampleRegion region0; + samplePatch baffle1Wall_0; + offsetMode uniform; + offset (0 0 0); + } + baffle2Wall_0 + { + type directMappedWall; + nFaces 7; + startFace 3260; + sampleMode nearestPatchFace; + sampleRegion region0; + samplePatch baffle2Wall_1; + offsetMode uniform; + offset (0 0 0); + } + baffle2Wall_1 + { + type directMappedWall; + nFaces 7; + startFace 3267; + sampleMode nearestPatchFace; + sampleRegion region0; + samplePatch baffle2Wall_0; + offsetMode uniform; + offset (0 0 0); + } +) + +// ************************************************************************* // diff --git a/tutorials/heatTransfer/buoyantBaffleSimpleFoam/circuitBoardCooling/constant/thermoBaffleProperties b/tutorials/heatTransfer/buoyantBaffleSimpleFoam/circuitBoardCooling/constant/thermoBaffleProperties new file mode 100644 index 0000000000000000000000000000000000000000..d734e603cd36bd01be3e48b6359c461d2f9476bf --- /dev/null +++ b/tutorials/heatTransfer/buoyantBaffleSimpleFoam/circuitBoardCooling/constant/thermoBaffleProperties @@ -0,0 +1,31 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object thermoBaffleProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +thermoBaffleModel none; + +active no; + +regionName none; + +thermoBaffle2DCoeffs +{ +} + +noThermoCoeffs +{ +} +// ************************************************************************* // diff --git a/tutorials/heatTransfer/buoyantBaffleSimpleFoam/circuitBoardCooling/constant/thermophysicalProperties b/tutorials/heatTransfer/buoyantBaffleSimpleFoam/circuitBoardCooling/constant/thermophysicalProperties new file mode 100644 index 0000000000000000000000000000000000000000..83df353395ec7a0b203364f44d9e7a530cd4dac5 --- /dev/null +++ b/tutorials/heatTransfer/buoyantBaffleSimpleFoam/circuitBoardCooling/constant/thermophysicalProperties @@ -0,0 +1,40 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object thermophysicalProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +thermoType hPsiThermo<pureMixture<constTransport<specieThermo<hConstThermo<perfectGas>>>>>; + +mixture +{ + specie + { + nMoles 1; + molWeight 28.96; + } + thermodynamics + { + Cp 1004.4; + Hf 0; + } + transport + { + mu 1.831e-05; + Pr 0.705; + } +} + + +// ************************************************************************* // diff --git a/tutorials/heatTransfer/buoyantBaffleSimpleFoam/circuitBoardCooling/system/changeDictionaryDict b/tutorials/heatTransfer/buoyantBaffleSimpleFoam/circuitBoardCooling/system/changeDictionaryDict new file mode 100644 index 0000000000000000000000000000000000000000..4f2dbc3f76ade575164461c31ca03a5ae37837bd --- /dev/null +++ b/tutorials/heatTransfer/buoyantBaffleSimpleFoam/circuitBoardCooling/system/changeDictionaryDict @@ -0,0 +1,131 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object changeDictionaryDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dictionaryReplacement +{ + alphat + { + boundaryField + { + "baffle.*" + { + type alphatWallFunction; + value uniform 0; + } + } + } + epsilon + { + boundaryField + { + "baffle.*" + { + type compressible::epsilonWallFunction; + value uniform 0.01; + } + } + } + k + { + boundaryField + { + "baffle.*" + { + type compressible::kqRWallFunction; + value uniform 0.01; + } + } + } + mut + { + boundaryField + { + "baffle.*" + { + type mutkWallFunction; + value uniform 0.0; + } + } + } + p + { + boundaryField + { + "baffle.*" + { + type calculated; + value uniform 101325; + } + } + } + p_rgh + { + boundaryField + { + "baffle.*" + { + type buoyantPressure; + value uniform 0; + } + } + } + T + { + boundaryField + { + "baffle.*" + { + type compressible::temperatureThermoBaffle1D<constSolidThermoPhysics>; + baffleActivated yes; + thickness uniform 0.005; // thickness [m] + Qs uniform 100; // heat flux [W/m2] + transport + { + K 1.0; + } + radiation + { + sigmaS 0; + kappa 0; + emissivity 0; + } + thermodynamics + { + Hf 0; + Cp 0; + } + density + { + rho 0; + } + value uniform 300; + } + } + } + U + { + boundaryField + { + "baffle.*" + { + type fixedValue; + value uniform (0 0 0); + } + } + } +} + +// ************************************************************************* // diff --git a/tutorials/heatTransfer/buoyantBaffleSimpleFoam/circuitBoardCooling/system/controlDict b/tutorials/heatTransfer/buoyantBaffleSimpleFoam/circuitBoardCooling/system/controlDict new file mode 100644 index 0000000000000000000000000000000000000000..43d2a5ea7232a0361bb65872ceba49940f1d23fe --- /dev/null +++ b/tutorials/heatTransfer/buoyantBaffleSimpleFoam/circuitBoardCooling/system/controlDict @@ -0,0 +1,48 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object controlDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +application buoyantBaffleSimpleFoam; + +startFrom latestTime; + +startTime 0; + +stopAt endTime; + +endTime 2500; + +deltaT 1; + +writeControl timeStep; + +writeInterval 50; + +purgeWrite 3; + +writeFormat ascii; + +writePrecision 6; + +writeCompression off; + +timeFormat general; + +timePrecision 6; + +runTimeModifiable true; + + +// ************************************************************************* // diff --git a/tutorials/heatTransfer/buoyantBaffleSimpleFoam/circuitBoardCooling/system/fvSchemes b/tutorials/heatTransfer/buoyantBaffleSimpleFoam/circuitBoardCooling/system/fvSchemes new file mode 100644 index 0000000000000000000000000000000000000000..3e67c328bdf7dd05102ce1d75d29da5240696c28 --- /dev/null +++ b/tutorials/heatTransfer/buoyantBaffleSimpleFoam/circuitBoardCooling/system/fvSchemes @@ -0,0 +1,66 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object fvSchemes; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +ddtSchemes +{ + default steadyState; +} + +gradSchemes +{ + default Gauss linear; +} + +divSchemes +{ + default none; + div(phi,U) Gauss limitedLinear 0.2; + div(phi,h) Gauss limitedLinear 0.2; + div(phi,k) Gauss limitedLinear 0.2; + div(phi,epsilon) Gauss limitedLinear 0.2; + div(phi,omega) Gauss limitedLinear 0.2; + div((muEff*dev2(T(grad(U))))) Gauss linear; +} + +laplacianSchemes +{ + default none; + laplacian(muEff,U) Gauss linear uncorrected; + laplacian((rho*(1|A(U))),p_rgh) Gauss linear uncorrected; + laplacian(alphaEff,h) Gauss linear uncorrected; + laplacian(DkEff,k) Gauss linear uncorrected; + laplacian(DepsilonEff,epsilon) Gauss linear uncorrected; + laplacian(DomegaEff,omega) Gauss linear uncorrected; +} + +interpolationSchemes +{ + default linear; +} + +snGradSchemes +{ + default uncorrected; +} + +fluxRequired +{ + default no; + p_rgh; +} + + +// ************************************************************************* // diff --git a/tutorials/heatTransfer/buoyantBaffleSimpleFoam/circuitBoardCooling/system/fvSolution b/tutorials/heatTransfer/buoyantBaffleSimpleFoam/circuitBoardCooling/system/fvSolution new file mode 100644 index 0000000000000000000000000000000000000000..271f262f8e19ed07d7895e81ffdd7defc41b3e16 --- /dev/null +++ b/tutorials/heatTransfer/buoyantBaffleSimpleFoam/circuitBoardCooling/system/fvSolution @@ -0,0 +1,71 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object fvSolution; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +solvers +{ + p_rgh + { + solver GAMG; + tolerance 1e-7; + relTol 0.01; + + smoother DICGaussSeidel; + + cacheAgglomeration true; + nCellsInCoarsestLevel 10; + agglomerator faceAreaPair; + mergeLevels 1; + } + + "(U|h|k|epsilon|omega)" + { + solver PBiCG; + preconditioner DILU; + tolerance 1e-8; + relTol 0.1; + } +} + +SIMPLE +{ + momentumPredictor yes; + nNonOrthogonalCorrectors 0; + pRefCell 0; + pRefValue 0; + + residualControl + { + p_rgh 1e-2; + U 1e-3; + h 1e-3; + + // possibly check turbulence fields + "(k|epsilon|omega)" 1e-3; + } +} + +relaxationFactors +{ + rho 1.0; + p_rgh 0.7; + U 0.3; + h 0.3; + "(k|epsilon|omega)" 0.7; +} + + +// ************************************************************************* //