diff --git a/applications/solvers/basic/potentialFoam/overPotentialFoam/Make/files b/applications/solvers/basic/potentialFoam/overPotentialFoam/Make/files new file mode 100644 index 0000000000000000000000000000000000000000..511066afa513b05539b0f710f11a3d96e4251d97 --- /dev/null +++ b/applications/solvers/basic/potentialFoam/overPotentialFoam/Make/files @@ -0,0 +1,3 @@ +potentialFoam.C + +EXE = $(FOAM_APPBIN)/overPotentialFoam diff --git a/applications/solvers/basic/potentialFoam/overPotentialFoam/Make/options b/applications/solvers/basic/potentialFoam/overPotentialFoam/Make/options new file mode 100644 index 0000000000000000000000000000000000000000..155894029a879400d586b83e5b53191cd9952837 --- /dev/null +++ b/applications/solvers/basic/potentialFoam/overPotentialFoam/Make/options @@ -0,0 +1,12 @@ +EXE_INC = \ + -I$(LIB_SRC)/finiteVolume/lnInclude \ + -I$(LIB_SRC)/dynamicFvMesh/lnInclude \ + -I$(LIB_SRC)/overset/lnInclude \ + -I$(LIB_SRC)/meshTools/lnInclude \ + -I$(LIB_SRC)/sampling/lnInclude + +EXE_LIBS = \ + -lfiniteVolume \ + -lmeshTools \ + -lsampling \ + -loverset diff --git a/applications/solvers/basic/potentialFoam/overPotentialFoam/createControls.H b/applications/solvers/basic/potentialFoam/overPotentialFoam/createControls.H new file mode 100644 index 0000000000000000000000000000000000000000..7015cae02e8c7400d4c59a211637015c558d6b63 --- /dev/null +++ b/applications/solvers/basic/potentialFoam/overPotentialFoam/createControls.H @@ -0,0 +1,9 @@ +const dictionary& potentialFlow +( + mesh.solutionDict().subDict("potentialFlow") +); + +const int nNonOrthCorr +( + potentialFlow.lookupOrDefault<int>("nNonOrthogonalCorrectors", 0) +); diff --git a/applications/solvers/basic/potentialFoam/overPotentialFoam/createFields.H b/applications/solvers/basic/potentialFoam/overPotentialFoam/createFields.H new file mode 100644 index 0000000000000000000000000000000000000000..b7daa4fe47f7a0fb30fe11a3fa3a03f17c3d83af --- /dev/null +++ b/applications/solvers/basic/potentialFoam/overPotentialFoam/createFields.H @@ -0,0 +1,146 @@ +Info<< "Reading velocity field U\n" << endl; +volVectorField U +( + IOobject + ( + "U", + runTime.timeName(), + mesh, + IOobject::MUST_READ, + IOobject::AUTO_WRITE + ), + mesh +); + +// Initialise the velocity internal field to zero +U = dimensionedVector("0", U.dimensions(), Zero); + +surfaceScalarField phi +( + IOobject + ( + "phi", + runTime.timeName(), + mesh, + IOobject::NO_READ, + IOobject::AUTO_WRITE + ), + fvc::flux(U) +); + +if (args.optionFound("initialiseUBCs")) +{ + U.correctBoundaryConditions(); + phi = fvc::flux(U); +} + + +// Construct a pressure field +// If it is available read it otherwise construct from the velocity BCs +// converting fixed-value BCs to zero-gradient and vice versa. +word pName("p"); + +// Update name of the pressure field from the command-line option +args.optionReadIfPresent("pName", pName); + +// Infer the pressure BCs from the velocity +wordList pBCTypes +( + U.boundaryField().size(), + fixedValueFvPatchScalarField::typeName +); + +forAll(U.boundaryField(), patchi) +{ + if (U.boundaryField()[patchi].fixesValue()) + { + pBCTypes[patchi] = zeroGradientFvPatchScalarField::typeName; + } +} + +// Note that registerObject is false for the pressure field. The pressure +// field in this solver doesn't have a physical value during the solution. +// It shouldn't be looked up and used by sub models or boundary conditions. +Info<< "Constructing pressure field " << pName << nl << endl; +volScalarField p +( + IOobject + ( + pName, + runTime.timeName(), + mesh, + IOobject::READ_IF_PRESENT, + IOobject::NO_WRITE, + false + ), + mesh, + dimensionedScalar(pName, sqr(dimVelocity), 0), + pBCTypes +); + +// Infer the velocity potential BCs from the pressure +wordList PhiBCTypes +( + p.boundaryField().size(), + zeroGradientFvPatchScalarField::typeName +); + +forAll(p.boundaryField(), patchi) +{ + if (p.boundaryField()[patchi].fixesValue()) + { + PhiBCTypes[patchi] = fixedValueFvPatchScalarField::typeName; + } +} + +Info<< "Constructing velocity potential field Phi\n" << endl; +volScalarField Phi +( + IOobject + ( + "Phi", + runTime.timeName(), + mesh, + IOobject::READ_IF_PRESENT, + IOobject::NO_WRITE + ), + mesh, + dimensionedScalar("Phi", dimLength*dimVelocity, 0), + PhiBCTypes +); + +label PhiRefCell = 0; +scalar PhiRefValue = 0; +setRefCell +( + Phi, + potentialFlow.dict(), + PhiRefCell, + PhiRefValue +); +mesh.setFluxRequired(Phi.name()); + +#include "createMRF.H" + +// Add overset specific interpolations +{ + dictionary oversetDict; + oversetDict.add("Phi", true); + oversetDict.add("U", true); + + const_cast<dictionary&> + ( + mesh.schemesDict() + ).add + ( + "oversetInterpolationRequired", + oversetDict, + true + ); +} + +// Mask field for zeroing out contributions on hole cells +#include "createCellMask.H" + +// Create bool field with interpolated cells +#include "createInterpolatedCells.H" diff --git a/applications/solvers/basic/potentialFoam/overPotentialFoam/potentialFoam.C b/applications/solvers/basic/potentialFoam/overPotentialFoam/potentialFoam.C new file mode 100644 index 0000000000000000000000000000000000000000..7d340fbc3691c5f6084d47e1b67fe32069fb3aaf --- /dev/null +++ b/applications/solvers/basic/potentialFoam/overPotentialFoam/potentialFoam.C @@ -0,0 +1,260 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2017 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 + potentialFoam + +Group + grpBasicSolvers + +Description + Potential flow solver which solves for the velocity potential, to + calculate the flux-field, from which the velocity field is obtained by + reconstructing the flux. + + \heading Solver details + The potential flow solution is typically employed to generate initial fields + for full Navier-Stokes codes. The flow is evolved using the equation: + + \f[ + \laplacian \Phi = \div(\vec{U}) + \f] + + Where: + \vartable + \Phi | Velocity potential [m2/s] + \vec{U} | Velocity [m/s] + \endvartable + + The corresponding pressure field could be calculated from the divergence + of the Euler equation: + + \f[ + \laplacian p + \div(\div(\vec{U}\otimes\vec{U})) = 0 + \f] + + but this generates excessive pressure variation in regions of large + velocity gradient normal to the flow direction. A better option is to + calculate the pressure field corresponding to velocity variation along the + stream-lines: + + \f[ + \laplacian p + \div(\vec{F}\cdot\div(\vec{U}\otimes\vec{U})) = 0 + \f] + where the flow direction tensor \f$\vec{F}\f$ is obtained from + \f[ + \vec{F} = \hat{\vec{U}}\otimes\hat{\vec{U}} + \f] + + \heading Required fields + \plaintable + U | Velocity [m/s] + \endplaintable + + \heading Optional fields + \plaintable + p | Kinematic pressure [m2/s2] + Phi | Velocity potential [m2/s] + | Generated from p (if present) or U if not present + \endplaintable + + \heading Options + \plaintable + -writep | write the Euler pressure + -writePhi | Write the final velocity potential + -initialiseUBCs | Update the velocity boundaries before solving for Phi + \endplaintable + +\*---------------------------------------------------------------------------*/ + +#include "fvCFD.H" +#include "pisoControl.H" +#include "dynamicFvMesh.H" +#include "cellCellStencilObject.H" +#include "localMin.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +int main(int argc, char *argv[]) +{ + argList::addOption + ( + "pName", + "pName", + "Name of the pressure field" + ); + + argList::addBoolOption + ( + "initialiseUBCs", + "Initialise U boundary conditions" + ); + + argList::addBoolOption + ( + "writePhi", + "Write the final velocity potential field" + ); + + argList::addBoolOption + ( + "writep", + "Calculate and write the Euler pressure field" + ); + + argList::addBoolOption + ( + "withFunctionObjects", + "execute functionObjects" + ); + + #include "setRootCase.H" + #include "createTime.H" + #include "createNamedDynamicFvMesh.H" + + pisoControl potentialFlow(mesh, "potentialFlow"); + + #include "createFields.H" + + // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + + Info<< nl << "Calculating potential flow" << endl; + + mesh.update(); + + surfaceScalarField faceMask(localMin<scalar>(mesh).interpolate(cellMask)); + + // Since solver contains no time loop it would never execute + // function objects so do it ourselves + runTime.functionObjects().start(); + + MRF.makeRelative(phi); + adjustPhi(phi, U, p); + + // Non-orthogonal velocity potential corrector loop + while (potentialFlow.correct()) + { + phi = fvc::flux(U); + + while (potentialFlow.correctNonOrthogonal()) + { + fvScalarMatrix PhiEqn + ( + fvm::laplacian(faceMask, Phi) + == + fvc::div(phi) + ); + + PhiEqn.setReference(PhiRefCell, PhiRefValue); + PhiEqn.solve(); + + if (potentialFlow.finalNonOrthogonalIter()) + { + phi -= PhiEqn.flux(); + } + } + + MRF.makeAbsolute(phi); + + Info<< "Continuity error = " + << mag(fvc::div(phi))().weightedAverage(mesh.V()).value() + << endl; + + U = fvc::reconstruct(phi); + U.correctBoundaryConditions(); + + Info<< "Interpolated velocity error = " + << (sqrt(sum(sqr(fvc::flux(U) - phi)))/sum(mesh.magSf())).value() + << endl; + } + + // Write U and phi + U.write(); + phi.write(); + + // Optionally write Phi + if (args.optionFound("writePhi")) + { + Phi.write(); + } + + // Calculate the pressure field from the Euler equation + if (args.optionFound("writep")) + { + Info<< nl << "Calculating approximate pressure field" << endl; + + label pRefCell = 0; + scalar pRefValue = 0.0; + setRefCell + ( + p, + potentialFlow.dict(), + pRefCell, + pRefValue + ); + + // Calculate the flow-direction filter tensor + volScalarField magSqrU(magSqr(U)); + volSymmTensorField F(sqr(U)/(magSqrU + SMALL*average(magSqrU))); + + // Calculate the divergence of the flow-direction filtered div(U*U) + // Filtering with the flow-direction generates a more reasonable + // pressure distribution in regions of high velocity gradient in the + // direction of the flow + volScalarField divDivUU + ( + fvc::div + ( + F & fvc::div(phi, U), + "div(div(phi,U))" + ) + ); + + // Solve a Poisson equation for the approximate pressure + while (potentialFlow.correctNonOrthogonal()) + { + fvScalarMatrix pEqn + ( + fvm::laplacian(p) + divDivUU + ); + + pEqn.setReference(pRefCell, pRefValue); + pEqn.solve(); + } + + p.write(); + } + + runTime.functionObjects().end(); + + Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s" + << " ClockTime = " << runTime.elapsedClockTime() << " s" + << nl << endl; + + Info<< "End\n" << endl; + + return 0; +} + + +// ************************************************************************* // diff --git a/applications/solvers/compressible/rhoSimpleFoam/overRhoSimpleFoam/Make/files b/applications/solvers/compressible/rhoSimpleFoam/overRhoSimpleFoam/Make/files new file mode 100644 index 0000000000000000000000000000000000000000..0519e8b96109424958d9ea6c33ee0c759c8cd73d --- /dev/null +++ b/applications/solvers/compressible/rhoSimpleFoam/overRhoSimpleFoam/Make/files @@ -0,0 +1,3 @@ +rhoSimpleFoam.C + +EXE = $(FOAM_APPBIN)/overRhoSimpleFoam diff --git a/applications/solvers/compressible/rhoSimpleFoam/overRhoSimpleFoam/Make/options b/applications/solvers/compressible/rhoSimpleFoam/overRhoSimpleFoam/Make/options new file mode 100644 index 0000000000000000000000000000000000000000..e027221b0cf327ec4f7f34a67420aa122725a2ac --- /dev/null +++ b/applications/solvers/compressible/rhoSimpleFoam/overRhoSimpleFoam/Make/options @@ -0,0 +1,27 @@ +EXE_INC = \ + -I.. \ + -I$(LIB_SRC)/transportModels/compressible/lnInclude \ + -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \ + -I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \ + -I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude \ + -I$(LIB_SRC)/finiteVolume/cfdTools \ + -I$(LIB_SRC)/finiteVolume/lnInclude \ + -I$(LIB_SRC)/sampling/lnInclude \ + -I$(LIB_SRC)/dynamicFvMesh/lnInclude \ + -I$(LIB_SRC)/dynamicMesh/lnInclude \ + -I$(LIB_SRC)/meshTools/lnInclude \ + -I$(LIB_SRC)/overset/lnInclude + +EXE_LIBS = \ + -lcompressibleTransportModels \ + -lfluidThermophysicalModels \ + -lspecie \ + -lturbulenceModels \ + -lcompressibleTurbulenceModels \ + -lfiniteVolume \ + -lsampling \ + -lmeshTools \ + -lfvOptions \ + -loverset \ + -ldynamicFvMesh \ + -ltopoChangerFvMesh diff --git a/applications/solvers/compressible/rhoSimpleFoam/overRhoSimpleFoam/UEqn.H b/applications/solvers/compressible/rhoSimpleFoam/overRhoSimpleFoam/UEqn.H new file mode 100644 index 0000000000000000000000000000000000000000..9d4afec58e84934a916cb4c8308a0e56f6a4351a --- /dev/null +++ b/applications/solvers/compressible/rhoSimpleFoam/overRhoSimpleFoam/UEqn.H @@ -0,0 +1,23 @@ + // Solve the Momentum equation + MRF.correctBoundaryVelocity(U); + + tmp<fvVectorMatrix> tUEqn + ( + fvm::div(phi, U) + + MRF.DDt(rho, U) + + turbulence->divDevRhoReff(U) + == + fvOptions(rho, U) + ); + fvVectorMatrix& UEqn = tUEqn.ref(); + + UEqn.relax(); + + fvOptions.constrain(UEqn); + + if (simple.momentumPredictor()) + { + solve(UEqn == -cellMask*fvc::grad(p)); + } + + fvOptions.correct(U); diff --git a/applications/solvers/compressible/rhoSimpleFoam/overRhoSimpleFoam/createFieldRefs.H b/applications/solvers/compressible/rhoSimpleFoam/overRhoSimpleFoam/createFieldRefs.H new file mode 100644 index 0000000000000000000000000000000000000000..502b3b423007919fa7a75206ecafe324f3ac8ed5 --- /dev/null +++ b/applications/solvers/compressible/rhoSimpleFoam/overRhoSimpleFoam/createFieldRefs.H @@ -0,0 +1 @@ +const volScalarField& psi = thermo.psi(); diff --git a/applications/solvers/compressible/rhoSimpleFoam/overRhoSimpleFoam/createFields.H b/applications/solvers/compressible/rhoSimpleFoam/overRhoSimpleFoam/createFields.H new file mode 100644 index 0000000000000000000000000000000000000000..2544f3e5598dd791587fd80ebc99d70c0a426d7a --- /dev/null +++ b/applications/solvers/compressible/rhoSimpleFoam/overRhoSimpleFoam/createFields.H @@ -0,0 +1,91 @@ +Info<< "Reading thermophysical properties\n" << endl; + +autoPtr<fluidThermo> pThermo +( + fluidThermo::New(mesh) +); +fluidThermo& thermo = pThermo(); +thermo.validate(args.executable(), "h", "e"); + +volScalarField& p = thermo.p(); + +volScalarField rho +( + IOobject + ( + "rho", + runTime.timeName(), + mesh, + IOobject::READ_IF_PRESENT, + IOobject::AUTO_WRITE + ), + thermo.rho() +); + +Info<< "Reading field U\n" << endl; +volVectorField U +( + IOobject + ( + "U", + runTime.timeName(), + mesh, + IOobject::MUST_READ, + IOobject::AUTO_WRITE + ), + mesh +); + +#include "compressibleCreatePhi.H" + +pressureControl pressureControl(p, rho, simple.dict()); + +mesh.setFluxRequired(p.name()); + +Info<< "Creating turbulence model\n" << endl; +autoPtr<compressible::turbulenceModel> turbulence +( + compressible::turbulenceModel::New + ( + rho, + U, + phi, + thermo + ) +); + +dimensionedScalar initialMass = fvc::domainIntegrate(rho); + +#include "createMRF.H" + +//- Overset specific + +// Add solver-specific interpolations +{ + dictionary oversetDict; + oversetDict.add("U", true); + oversetDict.add("p", true); + oversetDict.add("HbyA", true); + oversetDict.add("grad(p)", true); + oversetDict.add("rho", true); + + const_cast<dictionary&> + ( + mesh.schemesDict() + ).add + ( + "oversetInterpolationRequired", + oversetDict, + true + ); +} + +// Mask field for zeroing out contributions on hole cells +#include "createCellMask.H" + +#include "createInterpolatedCells.H" + +bool adjustFringe +( + simple.dict().lookupOrDefault("oversetAdjustPhi", false) +); diff --git a/applications/solvers/compressible/rhoSimpleFoam/overRhoSimpleFoam/createUpdatedDynamicFvMesh.H b/applications/solvers/compressible/rhoSimpleFoam/overRhoSimpleFoam/createUpdatedDynamicFvMesh.H new file mode 100644 index 0000000000000000000000000000000000000000..db58f9082809154eab78216183bc7d1f57120b0e --- /dev/null +++ b/applications/solvers/compressible/rhoSimpleFoam/overRhoSimpleFoam/createUpdatedDynamicFvMesh.H @@ -0,0 +1,22 @@ + Info<< "Create dynamic mesh for time = " + << runTime.timeName() << nl << endl; + + autoPtr<dynamicFvMesh> meshPtr + ( + dynamicFvMesh::New + ( + IOobject + ( + dynamicFvMesh::defaultRegion, + runTime.timeName(), + runTime, + IOobject::MUST_READ + ) + ) + ); + + dynamicFvMesh& mesh = meshPtr(); + + // Calculate initial mesh-to-mesh mapping. Note that this should be + // done under the hood, e.g. as a MeshObject + mesh.update(); diff --git a/applications/solvers/compressible/rhoSimpleFoam/overRhoSimpleFoam/pEqn.H b/applications/solvers/compressible/rhoSimpleFoam/overRhoSimpleFoam/pEqn.H new file mode 100644 index 0000000000000000000000000000000000000000..b4e670bee75fa66db1c828f2ca75186cdde95449 --- /dev/null +++ b/applications/solvers/compressible/rhoSimpleFoam/overRhoSimpleFoam/pEqn.H @@ -0,0 +1,123 @@ +{ + surfaceScalarField faceMask(localMin<scalar>(mesh).interpolate(cellMask)); + + volScalarField rAU(1.0/UEqn.A()); + surfaceScalarField rhorAUf("rhorAUf", faceMask*fvc::interpolate(rho*rAU)); + volVectorField HbyA("HbyA", U); + HbyA = constrainHbyA(cellMask*rAU*UEqn.H(), U, p); + tUEqn.clear(); + + bool closedVolume = false; + + surfaceScalarField phiHbyA("phiHbyA", fvc::interpolate(rho)*fvc::flux(HbyA)); + MRF.makeRelative(fvc::interpolate(rho), phiHbyA); + + // Update the pressure BCs to ensure flux consistency + constrainPressure(p, rho, U, phiHbyA, rhorAUf, MRF); + + if (simple.transonic()) + { + surfaceScalarField phid + ( + "phid", + (fvc::interpolate(psi)/fvc::interpolate(rho))*phiHbyA + ); + + phiHbyA -= fvc::interpolate(psi*p)*phiHbyA/fvc::interpolate(rho); + + while (simple.correctNonOrthogonal()) + { + fvScalarMatrix pEqn + ( + fvc::div(phiHbyA) + + fvm::div(phid, p) + - fvm::laplacian(rhorAUf, p) + == + fvOptions(psi, p, rho.name()) + ); + + // Relax the pressure equation to ensure diagonal-dominance + pEqn.relax(); + + pEqn.setReference + ( + pressureControl.refCell(), + pressureControl.refValue() + ); + + pEqn.solve(); + + if (simple.finalNonOrthogonalIter()) + { + phi = phiHbyA + pEqn.flux(); + } + } + } + else + { + closedVolume = adjustPhi(phiHbyA, U, p); + + if (adjustFringe) + { + oversetAdjustPhi(phiHbyA, U); + } + + while (simple.correctNonOrthogonal()) + { + fvScalarMatrix pEqn + ( + fvc::div(phiHbyA) + - fvm::laplacian(rhorAUf, p) + == + fvOptions(psi, p, rho.name()) + ); + + pEqn.setReference + ( + pressureControl.refCell(), + pressureControl.refValue() + ); + + pEqn.solve(); + + if (simple.finalNonOrthogonalIter()) + { + phi = phiHbyA + pEqn.flux(); + } + } + } + + #include "incompressible/continuityErrs.H" + + // Explicitly relax pressure for momentum corrector + p.relax(); + + volVectorField gradP(fvc::grad(p)); + + U = HbyA - rAU*cellMask*gradP; + U.correctBoundaryConditions(); + fvOptions.correct(U); + + + bool pLimited = pressureControl.limit(p); + + // For closed-volume cases adjust the pressure and density levels + // to obey overall mass continuity + if (closedVolume) + { + p += (initialMass - fvc::domainIntegrate(psi*p)) + /fvc::domainIntegrate(psi); + } + + if (pLimited || closedVolume) + { + p.correctBoundaryConditions(); + } + + rho = thermo.rho(); + + if (!simple.transonic()) + { + rho.relax(); + } +} diff --git a/applications/solvers/compressible/rhoSimpleFoam/overRhoSimpleFoam/rhoSimpleFoam.C b/applications/solvers/compressible/rhoSimpleFoam/overRhoSimpleFoam/rhoSimpleFoam.C new file mode 100644 index 0000000000000000000000000000000000000000..d2aced63758c73a662c69f5ea2126f9e6d20ac9b --- /dev/null +++ b/applications/solvers/compressible/rhoSimpleFoam/overRhoSimpleFoam/rhoSimpleFoam.C @@ -0,0 +1,92 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2017 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 + overRhoSimpleFoam + +Group + grpCompressibleSolvers + +Description + Overset steady-state solver for turbulent flow of compressible fluids. + +\*---------------------------------------------------------------------------*/ + +#include "fvCFD.H" +#include "dynamicFvMesh.H" +#include "fluidThermo.H" +#include "turbulentFluidThermoModel.H" +#include "simpleControl.H" +#include "pressureControl.H" +#include "fvOptions.H" +#include "cellCellStencilObject.H" +#include "localMin.H" +#include "oversetAdjustPhi.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +int main(int argc, char *argv[]) +{ + #define CREATE_MESH createUpdatedDynamicFvMesh.H + #include "postProcess.H" + + #include "setRootCase.H" + #include "createTime.H" + #include "createUpdatedDynamicFvMesh.H" + #include "createControl.H" + #include "createFields.H" + #include "createFieldRefs.H" + #include "createFvOptions.H" + #include "initContinuityErrs.H" + + turbulence->validate(); + + // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + + Info<< "\nStarting time loop\n" << endl; + + while (simple.loop()) + { + Info<< "Time = " << runTime.timeName() << nl << endl; + + // Pressure-velocity SIMPLE corrector + #include "UEqn.H" + #include "EEqn.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/tutorials/basic/overPotentialFoam/cylinder/Allclean b/tutorials/basic/overPotentialFoam/cylinder/Allclean new file mode 100755 index 0000000000000000000000000000000000000000..02381632b7dfb61c87536f5f4311d7c0a31adf69 --- /dev/null +++ b/tutorials/basic/overPotentialFoam/cylinder/Allclean @@ -0,0 +1,11 @@ +#!/bin/sh +cd ${0%/*} || exit 1 # run from this directory +. $WM_PROJECT_DIR/bin/tools/CleanFunctions + +# Extrude mesh around cylinder +(cd cylinderAndBackground && ./Allclean) + +# Add background mesh +(cd cylinderMesh && foamCleanTutorials) + +# ----------------------------------------------------------------- end-of-file diff --git a/tutorials/basic/overPotentialFoam/cylinder/Allrun b/tutorials/basic/overPotentialFoam/cylinder/Allrun new file mode 100755 index 0000000000000000000000000000000000000000..7604f9ad35a006852330ed91538222f0bd42f49b --- /dev/null +++ b/tutorials/basic/overPotentialFoam/cylinder/Allrun @@ -0,0 +1,8 @@ +#!/bin/sh +. $WM_PROJECT_DIR/bin/tools/RunFunctions + +# Extrude mesh around cylinder +(cd cylinderMesh && ./Allrun.pre) + +# Add background mesh +(cd cylinderAndBackground && ./Allrun) diff --git a/tutorials/basic/overPotentialFoam/cylinder/Allrun.pre b/tutorials/basic/overPotentialFoam/cylinder/Allrun.pre new file mode 100755 index 0000000000000000000000000000000000000000..788e9474864bfb14f862151162d52c799047bfb7 --- /dev/null +++ b/tutorials/basic/overPotentialFoam/cylinder/Allrun.pre @@ -0,0 +1,8 @@ +#!/bin/sh +. $WM_PROJECT_DIR/bin/tools/RunFunctions + +# Extrude mesh around cylinder +(cd cylinderMesh && ./Allrun.pre) + +# Add background mesh +(cd cylinderAndBackground && ./Allrun.pre) diff --git a/tutorials/basic/overPotentialFoam/cylinder/cylinderAndBackground/0.orig/U b/tutorials/basic/overPotentialFoam/cylinder/cylinderAndBackground/0.orig/U new file mode 100644 index 0000000000000000000000000000000000000000..1f740ae49d61487a3d4a6c9e82664aefbe8e1ba1 --- /dev/null +++ b/tutorials/basic/overPotentialFoam/cylinder/cylinderAndBackground/0.orig/U @@ -0,0 +1,57 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volVectorField; + object U; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#include "include/initialConditions" + +dimensions [0 1 -1 0 0 0 0]; + +internalField uniform $flowVelocity; + +boundaryField +{ + #includeEtc "caseDicts/setConstraintTypes" + + overset + { + type overset; + } + + walls + { + type movingWallVelocity; + value uniform (0 0 0); + } + + inlet + { + type fixedValue; + value $internalField; + } + + outlet + { + type inletOutlet; + inletValue uniform (0 0 0); + value $internalField; + } + + topAndBottom + { + type zeroGradient; + } +} + +// ************************************************************************* // diff --git a/tutorials/basic/overPotentialFoam/cylinder/cylinderAndBackground/0.orig/include/fixedInlet b/tutorials/basic/overPotentialFoam/cylinder/cylinderAndBackground/0.orig/include/fixedInlet new file mode 100644 index 0000000000000000000000000000000000000000..d69bf4f580dc80f23e30f89d8624f25b85d51c66 --- /dev/null +++ b/tutorials/basic/overPotentialFoam/cylinder/cylinderAndBackground/0.orig/include/fixedInlet @@ -0,0 +1,15 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ + +inlet +{ + type fixedValue; + value $internalField; +} + +// ************************************************************************* // diff --git a/tutorials/basic/overPotentialFoam/cylinder/cylinderAndBackground/0.orig/include/initialConditions b/tutorials/basic/overPotentialFoam/cylinder/cylinderAndBackground/0.orig/include/initialConditions new file mode 100644 index 0000000000000000000000000000000000000000..68dc901ede2fe34915f74c7044b866285626d909 --- /dev/null +++ b/tutorials/basic/overPotentialFoam/cylinder/cylinderAndBackground/0.orig/include/initialConditions @@ -0,0 +1,13 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ + +flowVelocity (1 0 0); +pressure 0; +#inputMode merge + +// ************************************************************************* // diff --git a/tutorials/basic/overPotentialFoam/cylinder/cylinderAndBackground/0.orig/p b/tutorials/basic/overPotentialFoam/cylinder/cylinderAndBackground/0.orig/p new file mode 100644 index 0000000000000000000000000000000000000000..e0d247b2fdd8889aba3faaad13f43353c58e2adc --- /dev/null +++ b/tutorials/basic/overPotentialFoam/cylinder/cylinderAndBackground/0.orig/p @@ -0,0 +1,54 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + object p; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#include "include/initialConditions" + +dimensions [0 2 -2 0 0 0 0]; + +internalField uniform $pressure; + +boundaryField +{ + #includeEtc "caseDicts/setConstraintTypes" + + overset + { + type overset; + } + + wall + { + type zeroGradient; + } + + inlet + { + type zeroGradient; + } + + outlet + { + type fixedValue; //calculated; + value $internalField; + } + + ".*" + { + type zeroGradient; + } +} + +// ************************************************************************* // diff --git a/tutorials/basic/overPotentialFoam/cylinder/cylinderAndBackground/0.orig/pointDisplacement b/tutorials/basic/overPotentialFoam/cylinder/cylinderAndBackground/0.orig/pointDisplacement new file mode 100644 index 0000000000000000000000000000000000000000..14d636e12264c2061d0ee163804ea4e297d09e67 --- /dev/null +++ b/tutorials/basic/overPotentialFoam/cylinder/cylinderAndBackground/0.orig/pointDisplacement @@ -0,0 +1,42 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class pointVectorField; + object pointDisplacement; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 1 0 0 0 0 0]; + +internalField uniform (0 0 0); + +boundaryField +{ + overset + { + patchType overset; + type zeroGradient; + } + + walls + { + type uniformFixedValue; + uniformValue (0 0 0); + } + + ".*" + { + type uniformFixedValue; + uniformValue (0 0 0); + } +} + +// ************************************************************************* // diff --git a/tutorials/basic/overPotentialFoam/cylinder/cylinderAndBackground/0.orig/zoneID b/tutorials/basic/overPotentialFoam/cylinder/cylinderAndBackground/0.orig/zoneID new file mode 100644 index 0000000000000000000000000000000000000000..1a0b8c3b47f3e98d48d6f5f7f16d3a2f1db7cad3 --- /dev/null +++ b/tutorials/basic/overPotentialFoam/cylinder/cylinderAndBackground/0.orig/zoneID @@ -0,0 +1,36 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + object zoneID; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + #includeEtc "caseDicts/setConstraintTypes" + + overset + { + type overset; + } + + ".*" + { + type zeroGradient; + } +} + +// ************************************************************************* // diff --git a/tutorials/basic/overPotentialFoam/cylinder/cylinderAndBackground/Allclean b/tutorials/basic/overPotentialFoam/cylinder/cylinderAndBackground/Allclean new file mode 100755 index 0000000000000000000000000000000000000000..6be736ea3ca30d45035f84d87f0514b7dcca76f2 --- /dev/null +++ b/tutorials/basic/overPotentialFoam/cylinder/cylinderAndBackground/Allclean @@ -0,0 +1,12 @@ +#!/bin/sh +cd ${0%/*} || exit 1 # Run from this directory +. $WM_PROJECT_DIR/bin/tools/CleanFunctions + +cleanCase +rm -f constant/polyMesh/boundary +rm -f constant/polyMesh/zoneID +rm -f constant/cellInterpolationWeight + +rm -rf 0 + +#------------------------------------------------------------------------------ diff --git a/tutorials/basic/overPotentialFoam/cylinder/cylinderAndBackground/Allrun b/tutorials/basic/overPotentialFoam/cylinder/cylinderAndBackground/Allrun new file mode 100755 index 0000000000000000000000000000000000000000..50626eed68377d9c8266c8d16ed8cd788c111771 --- /dev/null +++ b/tutorials/basic/overPotentialFoam/cylinder/cylinderAndBackground/Allrun @@ -0,0 +1,10 @@ +#!/bin/sh +cd ${0%/*} || exit 1 # Run from this directory +. $WM_PROJECT_DIR/bin/tools/RunFunctions + +./Allrun.pre + +# Run it for a bit +runApplication $(getApplication) + +#------------------------------------------------------------------------------ diff --git a/tutorials/basic/overPotentialFoam/cylinder/cylinderAndBackground/Allrun.pre b/tutorials/basic/overPotentialFoam/cylinder/cylinderAndBackground/Allrun.pre new file mode 100755 index 0000000000000000000000000000000000000000..f4910d875d6b93d1b10ce3ee5439ba32e55b4fe5 --- /dev/null +++ b/tutorials/basic/overPotentialFoam/cylinder/cylinderAndBackground/Allrun.pre @@ -0,0 +1,22 @@ +#!/bin/sh +cd ${0%/*} || exit 1 # Run from this directory +. $WM_PROJECT_DIR/bin/tools/RunFunctions + +# Create background mesh +runApplication blockMesh + +# Add the cylinder mesh +runApplication mergeMeshes . ../cylinderMesh -overwrite + +## Make it a bit smaller to keep it laminar +#runApplication transformPoints -scale '(0.001 0.001 0.001)' + +# Select cellSets for the different zones +runApplication topoSet + +restore0Dir + +# Use cellSets to write zoneID +runApplication setFields + +#------------------------------------------------------------------------------ diff --git a/tutorials/basic/overPotentialFoam/cylinder/cylinderAndBackground/constant/dynamicMeshDict b/tutorials/basic/overPotentialFoam/cylinder/cylinderAndBackground/constant/dynamicMeshDict new file mode 100644 index 0000000000000000000000000000000000000000..9f766ac272528f245b086c89fda9a36c82c09d6f --- /dev/null +++ b/tutorials/basic/overPotentialFoam/cylinder/cylinderAndBackground/constant/dynamicMeshDict @@ -0,0 +1,33 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object dynamicMeshDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +motionSolverLibs ( "libfvMotionSolvers.so" ); + +solver displacementLaplacian; + +displacementLaplacianCoeffs +{ + diffusivity uniform 1; +} + +dynamicFvMesh dynamicOversetFvMesh; + +dynamicOversetFvMeshCoeffs +{ +// layerRelax 0.3; +} + +// ************************************************************************* // diff --git a/tutorials/basic/overPotentialFoam/cylinder/cylinderAndBackground/system/blockMeshDict b/tutorials/basic/overPotentialFoam/cylinder/cylinderAndBackground/system/blockMeshDict new file mode 100644 index 0000000000000000000000000000000000000000..2f7bf0096c3255478b82b7b9016965595c9032b2 --- /dev/null +++ b/tutorials/basic/overPotentialFoam/cylinder/cylinderAndBackground/system/blockMeshDict @@ -0,0 +1,83 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object blockMeshDict; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +convertToMeters 1; + +vertices +( + (-2 -0.05 -2.0) + ( 2 -0.05 -2.0) + ( 2 0.05 -2.0) + (-2 0.05 -2.0) + (-2 -0.05 2.0) + ( 2 -0.05 2.0) + ( 2 0.05 2.0) + (-2 0.05 2.0) +); + +blocks +( + hex (0 1 2 3 4 5 6 7) (80 1 60) simpleGrading (1 1 1) +); + +edges +( +); + +boundary +( + topAndBottom + { + type patch; + faces + ( + (4 5 6 7) + (0 3 2 1) + ); + } + + inlet + { + type patch; + faces + ( + (0 4 7 3) + ); + } + + outlet + { + type patch; + faces + ( + (2 6 5 1) + ); + } + + frontAndBack + { + type empty; + faces + ( + (3 7 6 2) + (1 5 4 0) + ); + } +); + + +// ************************************************************************* // diff --git a/tutorials/basic/overPotentialFoam/cylinder/cylinderAndBackground/system/controlDict b/tutorials/basic/overPotentialFoam/cylinder/cylinderAndBackground/system/controlDict new file mode 100644 index 0000000000000000000000000000000000000000..2e23f2c1d61b43ce33f5a613169696831542fc26 --- /dev/null +++ b/tutorials/basic/overPotentialFoam/cylinder/cylinderAndBackground/system/controlDict @@ -0,0 +1,51 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object controlDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +// Make sure all preprocessing tools know about the 'overset' bc +libs ("liboverset.so"); + +application overPotentialFoam; + +startFrom startTime; + +startTime 0; + +stopAt nextWrite; + +endTime 2; + +deltaT 1; + +writeControl timeStep; + +writeInterval 2; + +purgeWrite 0; + +writeFormat ascii; + +writePrecision 6; + +writeCompression off; + +timeFormat general; + +timePrecision 6; + +runTimeModifiable true; + +// ************************************************************************* // diff --git a/tutorials/basic/overPotentialFoam/cylinder/cylinderAndBackground/system/fvSchemes b/tutorials/basic/overPotentialFoam/cylinder/cylinderAndBackground/system/fvSchemes new file mode 100644 index 0000000000000000000000000000000000000000..736c25670cca3d89bb2c7723ead109ad9f5b6458 --- /dev/null +++ b/tutorials/basic/overPotentialFoam/cylinder/cylinderAndBackground/system/fvSchemes @@ -0,0 +1,57 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object fvSchemes; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +ddtSchemes +{ + default steadyState; +} + +gradSchemes +{ + default leastSquares; +} + +divSchemes +{ + default none; + div(phi,U) bounded Gauss linear; + div(div(phi,U)) Gauss linear; +} + +laplacianSchemes +{ + default Gauss linear corrected; +} + +interpolationSchemes +{ + default linear; +} + +snGradSchemes +{ + default corrected; +} + +oversetInterpolation +{ + method leastSquares;//inverseDistanc; +} + + + +// ************************************************************************* // diff --git a/tutorials/basic/overPotentialFoam/cylinder/cylinderAndBackground/system/fvSolution b/tutorials/basic/overPotentialFoam/cylinder/cylinderAndBackground/system/fvSolution new file mode 100644 index 0000000000000000000000000000000000000000..490952835a5b90391707748b65a5fa1e42b40e5f --- /dev/null +++ b/tutorials/basic/overPotentialFoam/cylinder/cylinderAndBackground/system/fvSolution @@ -0,0 +1,54 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object fvSolution; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +solvers +{ + cellDisplacement + { + solver PCG; + preconditioner DIC; + + tolerance 1e-06; + relTol 0; + maxIter 100; + } + + Phi + { + solver PBiCGStab; + preconditioner DILU; + tolerance 1e-6; + relTol 0.01; + } + + p + { + $Phi; + } + +} + + +potentialFlow +{ + nNonOrthogonalCorrectors 3; + nCorrectors 3; +} + + + +// ************************************************************************* // diff --git a/tutorials/basic/overPotentialFoam/cylinder/cylinderAndBackground/system/setFieldsDict b/tutorials/basic/overPotentialFoam/cylinder/cylinderAndBackground/system/setFieldsDict new file mode 100644 index 0000000000000000000000000000000000000000..8efb92d61024b852440bc0491e5e1005ffc411f9 --- /dev/null +++ b/tutorials/basic/overPotentialFoam/cylinder/cylinderAndBackground/system/setFieldsDict @@ -0,0 +1,48 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object setFieldsDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +defaultFieldValues +( + volScalarFieldValue zoneID 123 +); + +regions +( + // Set cell values + // (does zerogradient on boundaries) + cellToCell + { + set c0; + + fieldValues + ( + volScalarFieldValue zoneID 0 + ); + } + + cellToCell + { + set c1; + + fieldValues + ( + volScalarFieldValue zoneID 1 + ); + } + +); + +// ************************************************************************* // diff --git a/tutorials/basic/overPotentialFoam/cylinder/cylinderAndBackground/system/topoSetDict b/tutorials/basic/overPotentialFoam/cylinder/cylinderAndBackground/system/topoSetDict new file mode 100644 index 0000000000000000000000000000000000000000..81f172e41acbf234a09be2fbedf0b0469ecc34fb --- /dev/null +++ b/tutorials/basic/overPotentialFoam/cylinder/cylinderAndBackground/system/topoSetDict @@ -0,0 +1,48 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object topoSetDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +actions +( + { + name c0; + type cellSet; + action new; + source regionToCell; + sourceInfo + { + insidePoints ((-1.999 0 -1.999)); + } + } + + { + name c1; + type cellSet; + action new; + source cellToCell; + sourceInfo + { + set c0; + } + } + + { + name c1; + type cellSet; + action invert; + } +); + +// ************************************************************************* // diff --git a/tutorials/basic/overPotentialFoam/cylinder/cylinderMesh/Allrun.pre b/tutorials/basic/overPotentialFoam/cylinder/cylinderMesh/Allrun.pre new file mode 100755 index 0000000000000000000000000000000000000000..ad0801bbb900fe1a425cb5941eb3778df1ec2056 --- /dev/null +++ b/tutorials/basic/overPotentialFoam/cylinder/cylinderMesh/Allrun.pre @@ -0,0 +1,8 @@ +#!/bin/sh +. $WM_PROJECT_DIR/bin/tools/RunFunctions + +# Generate mesh from surface (in constant/triSurface) +runApplication extrudeMesh + +# Make front and back type empty +runApplication createPatch -overwrite diff --git a/tutorials/basic/overPotentialFoam/cylinder/cylinderMesh/constant/triSurface/cylinder.vtk b/tutorials/basic/overPotentialFoam/cylinder/cylinderMesh/constant/triSurface/cylinder.vtk new file mode 100644 index 0000000000000000000000000000000000000000..6a99fb9b6fa70d14ce544bacd1b185247667cc9c --- /dev/null +++ b/tutorials/basic/overPotentialFoam/cylinder/cylinderMesh/constant/triSurface/cylinder.vtk @@ -0,0 +1,221 @@ +# vtk DataFile Version 4.0 +vtk output +ASCII +DATASET POLYDATA +POINTS 150 float +0.5 0.05 0 0.5 -0.05 0 0.498246 0.05 -0.0418389 +0.498246 -0.05 -0.0418389 0.492998 0.05 -0.0833844 0.492998 -0.05 -0.0833844 +0.484292 0.05 -0.124345 0.484292 -0.05 -0.124345 0.472188 0.05 -0.164433 +0.472188 -0.05 -0.164433 0.456773 0.05 -0.203368 0.456773 -0.05 -0.203368 +0.438153 0.05 -0.240877 0.438153 -0.05 -0.240877 0.416461 0.05 -0.276696 +0.416461 -0.05 -0.276696 0.391847 0.05 -0.310574 0.391847 -0.05 -0.310574 +0.364484 0.05 -0.342274 0.364484 -0.05 -0.342274 0.334565 0.05 -0.371572 +0.334565 -0.05 -0.371572 0.3023 0.05 -0.398265 0.3023 -0.05 -0.398265 +0.267913 0.05 -0.422164 0.267913 -0.05 -0.422164 0.231648 0.05 -0.443102 +0.231648 -0.05 -0.443102 0.193758 0.05 -0.460932 0.193758 -0.05 -0.460932 +0.154509 0.05 -0.475528 0.154509 -0.05 -0.475528 0.114175 0.05 -0.486789 +0.114175 -0.05 -0.486789 0.0730415 0.05 -0.494636 0.0730415 -0.05 -0.494636 +0.0313953 0.05 -0.499013 0.0313953 -0.05 -0.499013 -0.0104712 0.05 -0.49989 +-0.0104712 -0.05 -0.49989 -0.0522642 0.05 -0.497261 -0.0522642 -0.05 -0.497261 +-0.0936907 0.05 -0.491144 -0.0936907 -0.05 -0.491144 -0.13446 0.05 -0.481581 +-0.13446 -0.05 -0.481581 -0.174286 0.05 -0.468641 -0.174286 -0.05 -0.468641 +-0.21289 0.05 -0.452414 -0.21289 -0.05 -0.452414 -0.25 0.05 -0.433013 +-0.25 -0.05 -0.433013 -0.285357 0.05 -0.410575 -0.285357 -0.05 -0.410575 +-0.318712 0.05 -0.385257 -0.318712 -0.05 -0.385257 -0.349832 0.05 -0.357236 +-0.349832 -0.05 -0.357236 -0.378498 0.05 -0.32671 -0.378498 -0.05 -0.32671 +-0.404509 0.05 -0.293893 -0.404509 -0.05 -0.293893 -0.427682 0.05 -0.259014 +-0.427682 -0.05 -0.259014 -0.447856 0.05 -0.222318 -0.447856 -0.05 -0.222318 +-0.464888 0.05 -0.184062 -0.464888 -0.05 -0.184062 -0.47866 0.05 -0.144516 +-0.47866 -0.05 -0.144516 -0.489074 0.05 -0.103956 -0.489074 -0.05 -0.103956 +-0.496057 0.05 -0.0626666 -0.496057 -0.05 -0.0626666 -0.499561 0.05 -0.0209378 +-0.499561 -0.05 -0.0209378 -0.499561 0.05 0.0209378 -0.499561 -0.05 0.0209378 +-0.496057 0.05 0.0626666 -0.496057 -0.05 0.0626666 -0.489074 0.05 0.103956 +-0.489074 -0.05 0.103956 -0.47866 0.05 0.144516 -0.47866 -0.05 0.144516 +-0.464888 0.05 0.184062 -0.464888 -0.05 0.184062 -0.447856 0.05 0.222318 +-0.447856 -0.05 0.222318 -0.427682 0.05 0.259014 -0.427682 -0.05 0.259014 +-0.404509 0.05 0.293893 -0.404509 -0.05 0.293893 -0.378498 0.05 0.32671 +-0.378498 -0.05 0.32671 -0.349832 0.05 0.357236 -0.349832 -0.05 0.357236 +-0.318712 0.05 0.385257 -0.318712 -0.05 0.385257 -0.285357 0.05 0.410575 +-0.285357 -0.05 0.410575 -0.25 0.05 0.433013 -0.25 -0.05 0.433013 +-0.21289 0.05 0.452414 -0.21289 -0.05 0.452414 -0.174286 0.05 0.468641 +-0.174286 -0.05 0.468641 -0.13446 0.05 0.481581 -0.13446 -0.05 0.481581 +-0.0936907 0.05 0.491144 -0.0936907 -0.05 0.491144 -0.0522642 0.05 0.497261 +-0.0522642 -0.05 0.497261 -0.0104712 0.05 0.49989 -0.0104712 -0.05 0.49989 +0.0313953 0.05 0.499013 0.0313953 -0.05 0.499013 0.0730415 0.05 0.494636 +0.0730415 -0.05 0.494636 0.114175 0.05 0.486789 0.114175 -0.05 0.486789 +0.154509 0.05 0.475528 0.154509 -0.05 0.475528 0.193758 0.05 0.460932 +0.193758 -0.05 0.460932 0.231648 0.05 0.443102 0.231648 -0.05 0.443102 +0.267913 0.05 0.422164 0.267913 -0.05 0.422164 0.3023 0.05 0.398265 +0.3023 -0.05 0.398265 0.334565 0.05 0.371572 0.334565 -0.05 0.371572 +0.364484 0.05 0.342274 0.364484 -0.05 0.342274 0.391847 0.05 0.310574 +0.391847 -0.05 0.310574 0.416461 0.05 0.276696 0.416461 -0.05 0.276696 +0.438153 0.05 0.240877 0.438153 -0.05 0.240877 0.456773 0.05 0.203368 +0.456773 -0.05 0.203368 0.472188 0.05 0.164433 0.472188 -0.05 0.164433 +0.484292 0.05 0.124345 0.484292 -0.05 0.124345 0.492998 0.05 0.0833844 +0.492998 -0.05 0.0833844 0.498246 0.05 0.0418389 0.498246 -0.05 0.0418389 + +POLYGONS 75 375 +4 0 1 3 2 +4 2 3 5 4 +4 4 5 7 6 +4 6 7 9 8 +4 8 9 11 10 +4 10 11 13 12 +4 12 13 15 14 +4 14 15 17 16 +4 16 17 19 18 +4 18 19 21 20 +4 20 21 23 22 +4 22 23 25 24 +4 24 25 27 26 +4 26 27 29 28 +4 28 29 31 30 +4 30 31 33 32 +4 32 33 35 34 +4 34 35 37 36 +4 36 37 39 38 +4 38 39 41 40 +4 40 41 43 42 +4 42 43 45 44 +4 44 45 47 46 +4 46 47 49 48 +4 48 49 51 50 +4 50 51 53 52 +4 52 53 55 54 +4 54 55 57 56 +4 56 57 59 58 +4 58 59 61 60 +4 60 61 63 62 +4 62 63 65 64 +4 64 65 67 66 +4 66 67 69 68 +4 68 69 71 70 +4 70 71 73 72 +4 72 73 75 74 +4 74 75 77 76 +4 76 77 79 78 +4 78 79 81 80 +4 80 81 83 82 +4 82 83 85 84 +4 84 85 87 86 +4 86 87 89 88 +4 88 89 91 90 +4 90 91 93 92 +4 92 93 95 94 +4 94 95 97 96 +4 96 97 99 98 +4 98 99 101 100 +4 100 101 103 102 +4 102 103 105 104 +4 104 105 107 106 +4 106 107 109 108 +4 108 109 111 110 +4 110 111 113 112 +4 112 113 115 114 +4 114 115 117 116 +4 116 117 119 118 +4 118 119 121 120 +4 120 121 123 122 +4 122 123 125 124 +4 124 125 127 126 +4 126 127 129 128 +4 128 129 131 130 +4 130 131 133 132 +4 132 133 135 134 +4 134 135 137 136 +4 136 137 139 138 +4 138 139 141 140 +4 140 141 143 142 +4 142 143 145 144 +4 144 145 147 146 +4 146 147 149 148 +4 148 149 1 0 + +POINT_DATA 150 +NORMALS Normals float +1 0 -0 1 0 -0 0.996493 0 -0.0836778 +0.996493 0 -0.0836778 0.985996 0 -0.166769 0.985996 0 -0.166769 +0.968583 0 -0.24869 0.968583 0 -0.24869 0.944376 0 -0.328867 +0.944376 0 -0.328867 0.913545 0 -0.406737 0.913545 0 -0.406737 +0.876307 0 -0.481754 0.876307 0 -0.481754 0.832921 0 -0.553392 +0.832921 0 -0.553392 0.783693 0 -0.621148 0.783693 0 -0.621148 +0.728969 0 -0.684547 0.728969 0 -0.684547 0.669131 0 -0.743145 +0.669131 0 -0.743145 0.604599 0 -0.79653 0.604599 0 -0.79653 +0.535827 0 -0.844328 0.535827 0 -0.844328 0.463296 0 -0.886204 +0.463296 0 -0.886204 0.387516 0 -0.921863 0.387516 0 -0.921863 +0.309017 0 -0.951057 0.309017 0 -0.951057 0.228351 0 -0.973579 +0.228351 0 -0.973579 0.146083 0 -0.989272 0.146083 0 -0.989272 +0.0627905 0 -0.998027 0.0627905 0 -0.998027 -0.0209424 0 -0.999781 +-0.0209424 0 -0.999781 -0.104528 0 -0.994522 -0.104528 0 -0.994522 +-0.187381 0 -0.982287 -0.187381 0 -0.982287 -0.26892 0 -0.963163 +-0.26892 0 -0.963163 -0.348572 0 -0.937282 -0.348572 0 -0.937282 +-0.425779 0 -0.904827 -0.425779 0 -0.904827 -0.5 0 -0.866025 +-0.5 0 -0.866025 -0.570714 0 -0.821149 -0.570714 0 -0.821149 +-0.637424 0 -0.770513 -0.637424 0 -0.770513 -0.699663 0 -0.714473 +-0.699663 0 -0.714473 -0.756995 0 -0.653421 -0.756995 0 -0.653421 +-0.809017 0 -0.587785 -0.809017 0 -0.587785 -0.855364 0 -0.518027 +-0.855364 0 -0.518027 -0.895712 0 -0.444635 -0.895712 0 -0.444635 +-0.929776 0 -0.368125 -0.929776 0 -0.368125 -0.957319 0 -0.289032 +-0.957319 0 -0.289032 -0.978148 0 -0.207912 -0.978148 0 -0.207912 +-0.992115 0 -0.125333 -0.992115 0 -0.125333 -0.999123 0 -0.0418757 +-0.999123 0 -0.0418757 -0.999123 0 0.0418757 -0.999123 0 0.0418757 +-0.992115 0 0.125333 -0.992115 0 0.125333 -0.978148 0 0.207912 +-0.978148 0 0.207912 -0.957319 0 0.289032 -0.957319 0 0.289032 +-0.929776 0 0.368125 -0.929776 0 0.368125 -0.895712 0 0.444635 +-0.895712 0 0.444635 -0.855364 0 0.518027 -0.855364 0 0.518027 +-0.809017 0 0.587785 -0.809017 0 0.587785 -0.756995 0 0.653421 +-0.756995 0 0.653421 -0.699663 0 0.714473 -0.699663 0 0.714473 +-0.637424 0 0.770513 -0.637424 0 0.770513 -0.570714 0 0.821149 +-0.570714 0 0.821149 -0.5 0 0.866025 -0.5 0 0.866025 +-0.425779 0 0.904827 -0.425779 0 0.904827 -0.348572 0 0.937282 +-0.348572 0 0.937282 -0.26892 0 0.963163 -0.26892 0 0.963163 +-0.187381 0 0.982287 -0.187381 0 0.982287 -0.104528 0 0.994522 +-0.104528 0 0.994522 -0.0209424 0 0.999781 -0.0209424 0 0.999781 +0.0627905 0 0.998027 0.0627905 0 0.998027 0.146083 0 0.989272 +0.146083 0 0.989272 0.228351 0 0.973579 0.228351 0 0.973579 +0.309017 0 0.951057 0.309017 0 0.951057 0.387516 0 0.921863 +0.387516 0 0.921863 0.463296 0 0.886204 0.463296 0 0.886204 +0.535827 0 0.844328 0.535827 0 0.844328 0.604599 0 0.79653 +0.604599 0 0.79653 0.669131 0 0.743145 0.669131 0 0.743145 +0.728969 0 0.684547 0.728969 0 0.684547 0.783693 0 0.621148 +0.783693 0 0.621148 0.832921 0 0.553392 0.832921 0 0.553392 +0.876307 0 0.481754 0.876307 0 0.481754 0.913545 0 0.406737 +0.913545 0 0.406737 0.944376 0 0.328867 0.944376 0 0.328867 +0.968583 0 0.24869 0.968583 0 0.24869 0.985996 0 0.166769 +0.985996 0 0.166769 0.996493 0 0.0836778 0.996493 0 0.0836778 + +TEXTURE_COORDINATES TCoords 2 float +1 0 1 1 0.973333 0 0.973333 1 0.946667 +0 0.946667 1 0.92 0 0.92 1 0.893333 0 +0.893333 1 0.866667 0 0.866667 1 0.84 0 0.84 +1 0.813333 0 0.813333 1 0.786667 0 0.786667 1 +0.76 0 0.76 1 0.733333 0 0.733333 1 0.706667 +0 0.706667 1 0.68 0 0.68 1 0.653333 0 +0.653333 1 0.626667 0 0.626667 1 0.6 0 0.6 +1 0.573333 0 0.573333 1 0.546667 0 0.546667 1 +0.52 0 0.52 1 0.493333 0 0.493333 1 0.466667 +0 0.466667 1 0.44 0 0.44 1 0.413333 0 +0.413333 1 0.386667 0 0.386667 1 0.36 0 0.36 +1 0.333333 0 0.333333 1 0.306667 0 0.306667 1 +0.28 0 0.28 1 0.253333 0 0.253333 1 0.226667 +0 0.226667 1 0.2 0 0.2 1 0.173333 0 +0.173333 1 0.146667 0 0.146667 1 0.12 0 0.12 +1 0.0933333 0 0.0933333 1 0.0666667 0 0.0666667 1 +0.04 0 0.04 1 0.0133333 0 0.0133333 1 0.0133333 +0 0.0133333 1 0.04 0 0.04 1 0.0666667 0 +0.0666667 1 0.0933333 0 0.0933333 1 0.12 0 0.12 +1 0.146667 0 0.146667 1 0.173333 0 0.173333 1 +0.2 0 0.2 1 0.226667 0 0.226667 1 0.253333 +0 0.253333 1 0.28 0 0.28 1 0.306667 0 +0.306667 1 0.333333 0 0.333333 1 0.36 0 0.36 +1 0.386667 0 0.386667 1 0.413333 0 0.413333 1 +0.44 0 0.44 1 0.466667 0 0.466667 1 0.493333 +0 0.493333 1 0.52 0 0.52 1 0.546667 0 +0.546667 1 0.573333 0 0.573333 1 0.6 0 0.6 +1 0.626667 0 0.626667 1 0.653333 0 0.653333 1 +0.68 0 0.68 1 0.706667 0 0.706667 1 0.733333 +0 0.733333 1 0.76 0 0.76 1 0.786667 0 +0.786667 1 0.813333 0 0.813333 1 0.84 0 0.84 +1 0.866667 0 0.866667 1 0.893333 0 0.893333 1 +0.92 0 0.92 1 0.946667 0 0.946667 1 0.973333 +0 0.973333 1 diff --git a/tutorials/basic/overPotentialFoam/cylinder/cylinderMesh/system/controlDict b/tutorials/basic/overPotentialFoam/cylinder/cylinderMesh/system/controlDict new file mode 100644 index 0000000000000000000000000000000000000000..52dc7243d35fc63309143d604a1e97c58db9c042 --- /dev/null +++ b/tutorials/basic/overPotentialFoam/cylinder/cylinderMesh/system/controlDict @@ -0,0 +1,50 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object controlDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +application snappyHexMesh; + +startFrom latestTime; + +startTime 0; + +stopAt endTime; + +endTime 100; + +deltaT 1; + +writeControl runTime; + +writeInterval 1; + +purgeWrite 0; + +writeFormat ascii; + +writePrecision 6; + +writeCompression off; + +timeFormat general; + +timePrecision 6; + +runTimeModifiable true; + +} + +// ************************************************************************* // diff --git a/tutorials/basic/overPotentialFoam/cylinder/cylinderMesh/system/createPatchDict b/tutorials/basic/overPotentialFoam/cylinder/cylinderMesh/system/createPatchDict new file mode 100644 index 0000000000000000000000000000000000000000..162e6f98a09f469d860a3a252de4e4fa7cff94fe --- /dev/null +++ b/tutorials/basic/overPotentialFoam/cylinder/cylinderMesh/system/createPatchDict @@ -0,0 +1,84 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object createPatchDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +pointSync false; + +// Patches to create. +patches +( + { + // Name of new patch + name oversetPatch; + + // Dictionary to construct new patch from + patchInfo + { + type overset; + } + + // How to construct: either from 'patches' or 'set' + constructFrom patches; + + // If constructFrom = patches : names of patches. Wildcards allowed. + patches (otherSide); + + // If constructFrom = set : name of faceSet + set f0; + } + + { + // Name of new patch + name walls; + + // Dictionary to construct new patch from + patchInfo + { + type wall; + } + + // How to construct: either from 'patches' or 'set' + constructFrom patches; + + // If constructFrom = patches : names of patches. Wildcards allowed. + patches (originalPatch); + + // If constructFrom = set : name of faceSet + set f0; + } + + { + // Name of new patch + name frontAndBack; + + // Dictionary to construct new patch from + patchInfo + { + type empty; + } + + // How to construct: either from 'patches' or 'set' + constructFrom patches; + + // If constructFrom = patches : names of patches. Wildcards allowed. + patches (sides); + + // If constructFrom = set : name of faceSet + set f0; + } + +); + +// ************************************************************************* // diff --git a/tutorials/basic/overPotentialFoam/cylinder/cylinderMesh/system/extrudeMeshDict b/tutorials/basic/overPotentialFoam/cylinder/cylinderMesh/system/extrudeMeshDict new file mode 100644 index 0000000000000000000000000000000000000000..594cab72540a6e1f67d21e0b59ef9e95e37ad6fa --- /dev/null +++ b/tutorials/basic/overPotentialFoam/cylinder/cylinderMesh/system/extrudeMeshDict @@ -0,0 +1,136 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object extrudeMeshDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +// What to extrude: +// patch : from patch of another case ('sourceCase') +// mesh : as above but with original case included +// surface : from externally read surface + +//constructFrom mesh; +//constructFrom patch; +constructFrom surface; + +// If construct from patch/mesh: +sourceCase "../cavity"; +sourcePatches (movingWall); + +// If construct from patch: patch to use for back (can be same as sourcePatch) +exposedPatchName movingWall; + +// If construct from surface: +surface "constant/triSurface/cylinder.vtk"; + +// Flip surface normals before usage. Valid only for extrude from surface or +// patch. +flipNormals false; + +//- Linear extrusion in point-normal direction +extrudeModel linearNormal; + +//- Single layer linear extrusion in point-normal direction +// with empty patches on front and back +//extrudeModel plane; + +//- Linear extrusion in specified direction +//extrudeModel linearDirection; + +//- Sector extrusion +//extrudeModel sector; + +//- Wedge extrusion of a single layer +// with wedge patches on front and back +//extrudeModel wedge; + +//- Extrudes into sphere around (0 0 0) +//extrudeModel linearRadial; + +//- Extrudes into sphere around (0 0 0) with specified radii +//extrudeModel radial; + +//- Extrudes into sphere with grading according to pressure (atmospherics) +//extrudeModel sigmaRadial; + +//- Extrudes by interpolating along path inbetween two (topologically identical) +// surfaces (e.g. one is an offsetted version of the other) +//extrudeModel offsetSurface; + +nLayers 10; + +expansionRatio 1.02; + +sectorCoeffs +{ + axisPt (0 0.1 -0.05); + axis (-1 0 0); + angle 360; // For nLayers=1 assume symmetry so angle/2 on each side +} + +linearNormalCoeffs +{ + thickness 0.7; +} + +planeCoeffs +{ +// thickness 0.1; + nLayers 4; +} + +linearDirectionCoeffs +{ + direction (0 1 0); + thickness 0.5; +} + +linearRadialCoeffs +{ + R 0.1; + // Optional inner radius + Rsurface 0.01; +} + +radialCoeffs +{ + // Radii specified through interpolation table + R table ((0 0.01)(3 0.03)(10 0.1)); +} + +sigmaRadialCoeffs +{ + RTbyg 1; + pRef 1; + pStrat 1; +} + +offsetSurfaceCoeffs +{ + // Surface that mesh has been meshed to + baseSurface "$FOAM_CASE/constant/triSurface/DTC-scaled-inflated.obj"; + + // Surface to fill in to + offsetSurface "$FOAM_CASE/constant/triSurface/DTC-scaled.obj"; +} + + +// Do front and back need to be merged? Usually only makes sense for 360 +// degree wedges. +mergeFaces false; + +// Merge small edges. Fraction of bounding box. +mergeTol 0; + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/tutorials/basic/overPotentialFoam/cylinder/cylinderMesh/system/fvSchemes b/tutorials/basic/overPotentialFoam/cylinder/cylinderMesh/system/fvSchemes new file mode 100644 index 0000000000000000000000000000000000000000..593e432ee1a6fba052e4b8fe09703fe77ef39203 --- /dev/null +++ b/tutorials/basic/overPotentialFoam/cylinder/cylinderMesh/system/fvSchemes @@ -0,0 +1,58 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object fvSchemes; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +ddtSchemes +{ + default Euler; +} + +gradSchemes +{ + default Gauss linear; +} + +divSchemes +{ + default none; + div(phi,U) Gauss limitedLinearV 1; + div(phi,k) Gauss upwind; + div(phi,epsilon) Gauss upwind; + div(phi,R) Gauss upwind; + div(R) Gauss linear; + div(phid,p) Gauss limitedLinear 1; + div(phi,K) Gauss limitedLinear 1; + div(phi,e) Gauss limitedLinear 1; + div(((rho*nuEff)*dev2(T(grad(U))))) Gauss linear; +} + +laplacianSchemes +{ + default Gauss linear limited corrected 0.5; +} + +interpolationSchemes +{ + default linear; +} + +snGradSchemes +{ + default corrected; +} + + +// ************************************************************************* // diff --git a/tutorials/basic/overPotentialFoam/cylinder/cylinderMesh/system/fvSolution b/tutorials/basic/overPotentialFoam/cylinder/cylinderMesh/system/fvSolution new file mode 100644 index 0000000000000000000000000000000000000000..a2c699b46c60a2c755afdb49a1d881f773ad4b0d --- /dev/null +++ b/tutorials/basic/overPotentialFoam/cylinder/cylinderMesh/system/fvSolution @@ -0,0 +1,51 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object fvSolution; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +solvers +{ + p + { + solver smoothSolver; + smoother symGaussSeidel; + tolerance 1e-12; + relTol 0; + } + + rho + { + solver PCG; + preconditioner DIC; + tolerance 1e-08; + relTol 0; + } + + "(U|e|k|epsilon|R)" + { + $p; + tolerance 1e-08; + relTol 0; + } +} + +PISO +{ + nCorrectors 2; + nNonOrthogonalCorrectors 2; +} + + +// ************************************************************************* // diff --git a/tutorials/compressible/overRhoSimpleFoam/hotCylinder/Allclean b/tutorials/compressible/overRhoSimpleFoam/hotCylinder/Allclean new file mode 100755 index 0000000000000000000000000000000000000000..862ed262d87e660157ae5c8802d3e9dc742b91c5 --- /dev/null +++ b/tutorials/compressible/overRhoSimpleFoam/hotCylinder/Allclean @@ -0,0 +1,10 @@ +#!/bin/sh +cd ${0%/*} || exit 1 # run from this directory + +# Extrude mesh around cylinder +(cd cylinderAndBackground && ./Allclean) + +# Add background mesh +(cd cylinderMesh && foamCleanTutorials) + +# ----------------------------------------------------------------- end-of-file diff --git a/tutorials/compressible/overRhoSimpleFoam/hotCylinder/Allrun b/tutorials/compressible/overRhoSimpleFoam/hotCylinder/Allrun new file mode 100755 index 0000000000000000000000000000000000000000..7604f9ad35a006852330ed91538222f0bd42f49b --- /dev/null +++ b/tutorials/compressible/overRhoSimpleFoam/hotCylinder/Allrun @@ -0,0 +1,8 @@ +#!/bin/sh +. $WM_PROJECT_DIR/bin/tools/RunFunctions + +# Extrude mesh around cylinder +(cd cylinderMesh && ./Allrun.pre) + +# Add background mesh +(cd cylinderAndBackground && ./Allrun) diff --git a/tutorials/compressible/overRhoSimpleFoam/hotCylinder/Allrun.pre b/tutorials/compressible/overRhoSimpleFoam/hotCylinder/Allrun.pre new file mode 100755 index 0000000000000000000000000000000000000000..788e9474864bfb14f862151162d52c799047bfb7 --- /dev/null +++ b/tutorials/compressible/overRhoSimpleFoam/hotCylinder/Allrun.pre @@ -0,0 +1,8 @@ +#!/bin/sh +. $WM_PROJECT_DIR/bin/tools/RunFunctions + +# Extrude mesh around cylinder +(cd cylinderMesh && ./Allrun.pre) + +# Add background mesh +(cd cylinderAndBackground && ./Allrun.pre) diff --git a/tutorials/compressible/overRhoSimpleFoam/hotCylinder/cylinderAndBackground/0.orig/T b/tutorials/compressible/overRhoSimpleFoam/hotCylinder/cylinderAndBackground/0.orig/T new file mode 100644 index 0000000000000000000000000000000000000000..3eb028daa8ea1ad2bf7e0dd6adbceaa7dd45c1f6 --- /dev/null +++ b/tutorials/compressible/overRhoSimpleFoam/hotCylinder/cylinderAndBackground/0.orig/T @@ -0,0 +1,53 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + object T; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#include "include/initialConditions" + +dimensions [0 0 0 1 0 0 0]; + +internalField uniform $temperature; + +boundaryField +{ + #includeEtc "caseDicts/setConstraintTypes" + + + wall + { + type fixedValue; + value uniform 450; + } + + inlet + { + type fixedValue; + value uniform $temperature; + } + + outlet + { + type inletOutlet; + value $internalField; + inletValue $internalField; + } + + ".*" + { + type zeroGradient; + } +} + +// ************************************************************************* // diff --git a/tutorials/compressible/overRhoSimpleFoam/hotCylinder/cylinderAndBackground/0.orig/U b/tutorials/compressible/overRhoSimpleFoam/hotCylinder/cylinderAndBackground/0.orig/U new file mode 100644 index 0000000000000000000000000000000000000000..7637431aeb581eeaaac177ef836f037b70d10f03 --- /dev/null +++ b/tutorials/compressible/overRhoSimpleFoam/hotCylinder/cylinderAndBackground/0.orig/U @@ -0,0 +1,54 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volVectorField; + object U; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#include "include/initialConditions" + +dimensions [0 1 -1 0 0 0 0]; + +internalField uniform (0 0 0); + +boundaryField +{ + #includeEtc "caseDicts/setConstraintTypes" + + walls + { + type movingWallVelocity; + value uniform (0 0 0); + } + + inlet + { + type fixedValue; + value uniform $flowVelocity; + } + + outlet + { + type inletOutlet; + inletValue uniform (0 0 0); + value $internalField; + } + + topAndBottom + { + type inletOutlet; + inletValue uniform (0 0 0); + value $internalField; + } +} + +// ************************************************************************* // diff --git a/tutorials/compressible/overRhoSimpleFoam/hotCylinder/cylinderAndBackground/0.orig/alphat b/tutorials/compressible/overRhoSimpleFoam/hotCylinder/cylinderAndBackground/0.orig/alphat new file mode 100644 index 0000000000000000000000000000000000000000..a736d186b86e79738bf100e7a4ddd8f61b7f5e26 --- /dev/null +++ b/tutorials/compressible/overRhoSimpleFoam/hotCylinder/cylinderAndBackground/0.orig/alphat @@ -0,0 +1,40 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / 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 +{ + #includeEtc "caseDicts/setConstraintTypes" + + walls + { + type compressible::alphatWallFunction; + Prt 0.85; + value uniform 0; + } + ".*" + { + type calculated; + value uniform 0; + } +} + + +// ************************************************************************* // diff --git a/tutorials/compressible/overRhoSimpleFoam/hotCylinder/cylinderAndBackground/0.orig/epsilon b/tutorials/compressible/overRhoSimpleFoam/hotCylinder/cylinderAndBackground/0.orig/epsilon new file mode 100644 index 0000000000000000000000000000000000000000..7e21d56b09ea08a9a2c54395c833b7385813eedd --- /dev/null +++ b/tutorials/compressible/overRhoSimpleFoam/hotCylinder/cylinderAndBackground/0.orig/epsilon @@ -0,0 +1,54 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + object epsilon; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#include "include/initialConditions" + +dimensions [0 2 -3 0 0 0 0]; + +internalField uniform $turbulentEpsilon; + +boundaryField +{ + #includeEtc "caseDicts/setConstraintTypes" + + walls + { + type epsilonWallFunction; + value $internalField; + } + + inlet + { + type fixedValue; + value $internalField; + } + + outlet + { + type inletOutlet; + inletValue $internalField; + value $internalField; + } + + topAndBottom + { + type inletOutlet; + inletValue $internalField + value $internalField; + } +} + +// ************************************************************************* // diff --git a/tutorials/compressible/overRhoSimpleFoam/hotCylinder/cylinderAndBackground/0.orig/include/fixedInlet b/tutorials/compressible/overRhoSimpleFoam/hotCylinder/cylinderAndBackground/0.orig/include/fixedInlet new file mode 100644 index 0000000000000000000000000000000000000000..d69bf4f580dc80f23e30f89d8624f25b85d51c66 --- /dev/null +++ b/tutorials/compressible/overRhoSimpleFoam/hotCylinder/cylinderAndBackground/0.orig/include/fixedInlet @@ -0,0 +1,15 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ + +inlet +{ + type fixedValue; + value $internalField; +} + +// ************************************************************************* // diff --git a/tutorials/compressible/overRhoSimpleFoam/hotCylinder/cylinderAndBackground/0.orig/include/initialConditions b/tutorials/compressible/overRhoSimpleFoam/hotCylinder/cylinderAndBackground/0.orig/include/initialConditions new file mode 100644 index 0000000000000000000000000000000000000000..b5f0c307eab7c6ab9a553b3f0ac60f5e5052c055 --- /dev/null +++ b/tutorials/compressible/overRhoSimpleFoam/hotCylinder/cylinderAndBackground/0.orig/include/initialConditions @@ -0,0 +1,16 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ + +flowVelocity (1 0 0); +pressure 1e5; +temperature 300; +turbulentEpsilon 10; +turbulentKE 1; +#inputMode merge + +// ************************************************************************* // diff --git a/tutorials/compressible/overRhoSimpleFoam/hotCylinder/cylinderAndBackground/0.orig/k b/tutorials/compressible/overRhoSimpleFoam/hotCylinder/cylinderAndBackground/0.orig/k new file mode 100644 index 0000000000000000000000000000000000000000..87d5c4476c1658e131b57b786715aa34d5c70350 --- /dev/null +++ b/tutorials/compressible/overRhoSimpleFoam/hotCylinder/cylinderAndBackground/0.orig/k @@ -0,0 +1,48 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + object k; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#include "include/initialConditions" + +dimensions [ 0 2 -2 0 0 0 0 ]; + +internalField uniform $turbulentKE; + +boundaryField +{ + #includeEtc "caseDicts/setConstraintTypes" + + wall + { + type kqRWallFunction; + value uniform 0; + } + + inlet + { + type turbulentIntensityKineticEnergyInlet; + intensity 0.05; // 5% turbulent intensity + value $internalField; + } + + "outlet|topAndBottom" + { + type inletOutlet; + inletValue $internalField; + value $internalField; + } +} + +// ************************************************************************* // diff --git a/tutorials/compressible/overRhoSimpleFoam/hotCylinder/cylinderAndBackground/0.orig/nut b/tutorials/compressible/overRhoSimpleFoam/hotCylinder/cylinderAndBackground/0.orig/nut new file mode 100644 index 0000000000000000000000000000000000000000..3c812227d1ada3479ae9a0a1a8cf7cf736b3fe71 --- /dev/null +++ b/tutorials/compressible/overRhoSimpleFoam/hotCylinder/cylinderAndBackground/0.orig/nut @@ -0,0 +1,38 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + object nut; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [ 0 2 -1 0 0 0 0 ]; + +internalField uniform 0; + +boundaryField +{ + #includeEtc "caseDicts/setConstraintTypes" + + walls + { + type nutkWallFunction; + value uniform 0; + } + + ".*" + { + type calculated; + value uniform 0; + } +} + +// ************************************************************************* // diff --git a/tutorials/compressible/overRhoSimpleFoam/hotCylinder/cylinderAndBackground/0.orig/p b/tutorials/compressible/overRhoSimpleFoam/hotCylinder/cylinderAndBackground/0.orig/p new file mode 100644 index 0000000000000000000000000000000000000000..15c58dbf8301fb5b924d243b0fccb7b492f6a288 --- /dev/null +++ b/tutorials/compressible/overRhoSimpleFoam/hotCylinder/cylinderAndBackground/0.orig/p @@ -0,0 +1,46 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + object p; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#include "include/initialConditions" + +dimensions [1 -1 -2 0 0 0 0]; + +internalField uniform $pressure; + +boundaryField +{ + #includeEtc "caseDicts/setConstraintTypes" + + wall + { + type zeroGradient; + } + inlet + { + type zeroGradient; + } + outlet + { + type fixedValue; + value $internalField; + } + topAndBottom + { + type zeroGradient; + } +} + +// ************************************************************************* // diff --git a/tutorials/compressible/overRhoSimpleFoam/hotCylinder/cylinderAndBackground/0.orig/pointDisplacement b/tutorials/compressible/overRhoSimpleFoam/hotCylinder/cylinderAndBackground/0.orig/pointDisplacement new file mode 100644 index 0000000000000000000000000000000000000000..14d636e12264c2061d0ee163804ea4e297d09e67 --- /dev/null +++ b/tutorials/compressible/overRhoSimpleFoam/hotCylinder/cylinderAndBackground/0.orig/pointDisplacement @@ -0,0 +1,42 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class pointVectorField; + object pointDisplacement; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 1 0 0 0 0 0]; + +internalField uniform (0 0 0); + +boundaryField +{ + overset + { + patchType overset; + type zeroGradient; + } + + walls + { + type uniformFixedValue; + uniformValue (0 0 0); + } + + ".*" + { + type uniformFixedValue; + uniformValue (0 0 0); + } +} + +// ************************************************************************* // diff --git a/tutorials/compressible/overRhoSimpleFoam/hotCylinder/cylinderAndBackground/0.orig/zoneID b/tutorials/compressible/overRhoSimpleFoam/hotCylinder/cylinderAndBackground/0.orig/zoneID new file mode 100644 index 0000000000000000000000000000000000000000..804d9005e91683f58e88d16a6113c9260cc795f3 --- /dev/null +++ b/tutorials/compressible/overRhoSimpleFoam/hotCylinder/cylinderAndBackground/0.orig/zoneID @@ -0,0 +1,37 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + object zoneID; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + #includeEtc "caseDicts/setConstraintTypes" + + oversetPatch + { + type overset; + value uniform 0; + } + + ".*" + { + type zeroGradient; + } +} + +// ************************************************************************* // diff --git a/tutorials/compressible/overRhoSimpleFoam/hotCylinder/cylinderAndBackground/Allclean b/tutorials/compressible/overRhoSimpleFoam/hotCylinder/cylinderAndBackground/Allclean new file mode 100755 index 0000000000000000000000000000000000000000..6be736ea3ca30d45035f84d87f0514b7dcca76f2 --- /dev/null +++ b/tutorials/compressible/overRhoSimpleFoam/hotCylinder/cylinderAndBackground/Allclean @@ -0,0 +1,12 @@ +#!/bin/sh +cd ${0%/*} || exit 1 # Run from this directory +. $WM_PROJECT_DIR/bin/tools/CleanFunctions + +cleanCase +rm -f constant/polyMesh/boundary +rm -f constant/polyMesh/zoneID +rm -f constant/cellInterpolationWeight + +rm -rf 0 + +#------------------------------------------------------------------------------ diff --git a/tutorials/compressible/overRhoSimpleFoam/hotCylinder/cylinderAndBackground/Allrun b/tutorials/compressible/overRhoSimpleFoam/hotCylinder/cylinderAndBackground/Allrun new file mode 100755 index 0000000000000000000000000000000000000000..50626eed68377d9c8266c8d16ed8cd788c111771 --- /dev/null +++ b/tutorials/compressible/overRhoSimpleFoam/hotCylinder/cylinderAndBackground/Allrun @@ -0,0 +1,10 @@ +#!/bin/sh +cd ${0%/*} || exit 1 # Run from this directory +. $WM_PROJECT_DIR/bin/tools/RunFunctions + +./Allrun.pre + +# Run it for a bit +runApplication $(getApplication) + +#------------------------------------------------------------------------------ diff --git a/tutorials/compressible/overRhoSimpleFoam/hotCylinder/cylinderAndBackground/Allrun.pre b/tutorials/compressible/overRhoSimpleFoam/hotCylinder/cylinderAndBackground/Allrun.pre new file mode 100755 index 0000000000000000000000000000000000000000..f4910d875d6b93d1b10ce3ee5439ba32e55b4fe5 --- /dev/null +++ b/tutorials/compressible/overRhoSimpleFoam/hotCylinder/cylinderAndBackground/Allrun.pre @@ -0,0 +1,22 @@ +#!/bin/sh +cd ${0%/*} || exit 1 # Run from this directory +. $WM_PROJECT_DIR/bin/tools/RunFunctions + +# Create background mesh +runApplication blockMesh + +# Add the cylinder mesh +runApplication mergeMeshes . ../cylinderMesh -overwrite + +## Make it a bit smaller to keep it laminar +#runApplication transformPoints -scale '(0.001 0.001 0.001)' + +# Select cellSets for the different zones +runApplication topoSet + +restore0Dir + +# Use cellSets to write zoneID +runApplication setFields + +#------------------------------------------------------------------------------ diff --git a/tutorials/compressible/overRhoSimpleFoam/hotCylinder/cylinderAndBackground/constant/dynamicMeshDict b/tutorials/compressible/overRhoSimpleFoam/hotCylinder/cylinderAndBackground/constant/dynamicMeshDict new file mode 100644 index 0000000000000000000000000000000000000000..9f766ac272528f245b086c89fda9a36c82c09d6f --- /dev/null +++ b/tutorials/compressible/overRhoSimpleFoam/hotCylinder/cylinderAndBackground/constant/dynamicMeshDict @@ -0,0 +1,33 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object dynamicMeshDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +motionSolverLibs ( "libfvMotionSolvers.so" ); + +solver displacementLaplacian; + +displacementLaplacianCoeffs +{ + diffusivity uniform 1; +} + +dynamicFvMesh dynamicOversetFvMesh; + +dynamicOversetFvMeshCoeffs +{ +// layerRelax 0.3; +} + +// ************************************************************************* // diff --git a/tutorials/compressible/overRhoSimpleFoam/hotCylinder/cylinderAndBackground/constant/thermophysicalProperties b/tutorials/compressible/overRhoSimpleFoam/hotCylinder/cylinderAndBackground/constant/thermophysicalProperties new file mode 100644 index 0000000000000000000000000000000000000000..18726036d6cddfc1a0ab6e67f2a13549ab327cf5 --- /dev/null +++ b/tutorials/compressible/overRhoSimpleFoam/hotCylinder/cylinderAndBackground/constant/thermophysicalProperties @@ -0,0 +1,48 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object thermophysicalProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +thermoType +{ + type heRhoThermo; + mixture pureMixture; + transport sutherland; + thermo hConst; + equationOfState perfectGas; + specie specie; + energy sensibleEnthalpy; +} + +mixture +{ + specie + { + molWeight 28.9; + } + thermodynamics + { + Cp 1007; + Hf 0; + } + transport + { + As 1.4792e-06; + Ts 116; + } +} + + +// ************************************************************************* // diff --git a/tutorials/compressible/overRhoSimpleFoam/hotCylinder/cylinderAndBackground/constant/transportProperties b/tutorials/compressible/overRhoSimpleFoam/hotCylinder/cylinderAndBackground/constant/transportProperties new file mode 100644 index 0000000000000000000000000000000000000000..84dc531c9852846fc5d4a8ec5017aa9c825e52f5 --- /dev/null +++ b/tutorials/compressible/overRhoSimpleFoam/hotCylinder/cylinderAndBackground/constant/transportProperties @@ -0,0 +1,39 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object transportProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +DT DT [ 0 2 -1 0 0 0 0 ] 1; //4e-05; + +transportModel Newtonian; + +nu nu [ 0 2 -1 0 0 0 0 ] 1e-03; + +CrossPowerLawCoeffs +{ + nu0 nu0 [ 0 2 -1 0 0 0 0 ] 1e-06; + nuInf nuInf [ 0 2 -1 0 0 0 0 ] 1e-06; + m m [ 0 0 1 0 0 0 0 ] 1; + n n [ 0 0 0 0 0 0 0 ] 1; +} + +BirdCarreauCoeffs +{ + nu0 nu0 [ 0 2 -1 0 0 0 0 ] 1e-06; + nuInf nuInf [ 0 2 -1 0 0 0 0 ] 1e-06; + k k [ 0 0 1 0 0 0 0 ] 0; + n n [ 0 0 0 0 0 0 0 ] 1; +} + +// ************************************************************************* // diff --git a/tutorials/compressible/overRhoSimpleFoam/hotCylinder/cylinderAndBackground/constant/turbulenceProperties b/tutorials/compressible/overRhoSimpleFoam/hotCylinder/cylinderAndBackground/constant/turbulenceProperties new file mode 100644 index 0000000000000000000000000000000000000000..8fe9b5ed38d3ed562c1cdf8fcc71b0a6ce10c8bc --- /dev/null +++ b/tutorials/compressible/overRhoSimpleFoam/hotCylinder/cylinderAndBackground/constant/turbulenceProperties @@ -0,0 +1,30 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object turbulenceProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +simulationType RAS; + +RAS +{ + RASModel kEpsilon; + + turbulence on; + + printCoeffs on; +} + + +// ************************************************************************* // diff --git a/tutorials/compressible/overRhoSimpleFoam/hotCylinder/cylinderAndBackground/system/blockMeshDict b/tutorials/compressible/overRhoSimpleFoam/hotCylinder/cylinderAndBackground/system/blockMeshDict new file mode 100644 index 0000000000000000000000000000000000000000..117207998a11d0ebd3c52433e7175a5fcb4c550d --- /dev/null +++ b/tutorials/compressible/overRhoSimpleFoam/hotCylinder/cylinderAndBackground/system/blockMeshDict @@ -0,0 +1,83 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object blockMeshDict; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +convertToMeters 1; + +vertices +( + (-2 -0.05 -2.0) + ( 4 -0.05 -2.0) + ( 4 0.05 -2.0) + (-2 0.05 -2.0) + (-2 -0.05 2.0) + ( 4 -0.05 2.0) + ( 4 0.05 2.0) + (-2 0.05 2.0) +); + +blocks +( + hex (0 1 2 3 4 5 6 7) (120 1 60) simpleGrading (1 1 1) +); + +edges +( +); + +boundary +( + topAndBottom + { + type patch; + faces + ( + (4 5 6 7) + (0 3 2 1) + ); + } + + inlet + { + type patch; + faces + ( + (0 4 7 3) + ); + } + + outlet + { + type patch; + faces + ( + (2 6 5 1) + ); + } + + frontAndBack + { + type empty; + faces + ( + (3 7 6 2) + (1 5 4 0) + ); + } +); + + +// ************************************************************************* // diff --git a/tutorials/compressible/overRhoSimpleFoam/hotCylinder/cylinderAndBackground/system/controlDict b/tutorials/compressible/overRhoSimpleFoam/hotCylinder/cylinderAndBackground/system/controlDict new file mode 100644 index 0000000000000000000000000000000000000000..963b0ff3c3a8a8f67f750d53339e1f74c34684cb --- /dev/null +++ b/tutorials/compressible/overRhoSimpleFoam/hotCylinder/cylinderAndBackground/system/controlDict @@ -0,0 +1,51 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object controlDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +// Make sure all preprocessing tools know about the 'overset' bc +libs ("liboverset.so"); + +application overRhoSimpleFoam; + +startFrom startTime; + +startTime 0; + +stopAt endTime; + +endTime 1000; + +deltaT 1; + +writeControl timeStep; + +writeInterval 100; + +purgeWrite 0; + +writeFormat ascii; + +writePrecision 12; + +writeCompression off; + +timeFormat general; + +timePrecision 6; + +runTimeModifiable true; + +// ************************************************************************* // diff --git a/tutorials/compressible/overRhoSimpleFoam/hotCylinder/cylinderAndBackground/system/decomposeParDict b/tutorials/compressible/overRhoSimpleFoam/hotCylinder/cylinderAndBackground/system/decomposeParDict new file mode 100644 index 0000000000000000000000000000000000000000..29610a20d888080443c389945459a889bb0985ea --- /dev/null +++ b/tutorials/compressible/overRhoSimpleFoam/hotCylinder/cylinderAndBackground/system/decomposeParDict @@ -0,0 +1,30 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + note "mesh decomposition control dictionary"; + object decomposeParDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +numberOfSubdomains 4; + + +method hierarchical; + +hierarchicalCoeffs +{ + n (2 2 1); + delta 0.001; + order xyz; +} + +// ************************************************************************* // diff --git a/tutorials/compressible/overRhoSimpleFoam/hotCylinder/cylinderAndBackground/system/fvSchemes b/tutorials/compressible/overRhoSimpleFoam/hotCylinder/cylinderAndBackground/system/fvSchemes new file mode 100644 index 0000000000000000000000000000000000000000..3ee5f2fb889e5ae3654a1103d322a58dcfa9595e --- /dev/null +++ b/tutorials/compressible/overRhoSimpleFoam/hotCylinder/cylinderAndBackground/system/fvSchemes @@ -0,0 +1,71 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object fvSchemes; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +ddtSchemes +{ + default steadyState; +} + +gradSchemes +{ + default Gauss linear; +} + +divSchemes +{ + default none; + div(phi,U) bounded Gauss upwind; + div(((rho*nuEff)*dev2(T(grad(U))))) Gauss linear; + div((nuEff*dev2(T(grad(U))))) Gauss linear; + + div(phi,h) bounded Gauss upwind; + div(phi,epsilon) bounded Gauss upwind; + div(phi,k) bounded Gauss upwind; + + div(phi,Ekp) bounded Gauss upwind; + + div(phi,K) bounded Gauss upwind; +} + +laplacianSchemes +{ + default Gauss linear corrected; +} + +interpolationSchemes +{ + default linear; +} + +snGradSchemes +{ + default corrected; +} + +oversetInterpolation +{ + method inverseDistance; +} + +oversetInterpolationRequired +{ + epsilon; + k; + nut; +} + +// ************************************************************************* // diff --git a/tutorials/compressible/overRhoSimpleFoam/hotCylinder/cylinderAndBackground/system/fvSolution b/tutorials/compressible/overRhoSimpleFoam/hotCylinder/cylinderAndBackground/system/fvSolution new file mode 100644 index 0000000000000000000000000000000000000000..a3627d320f01929d78e61dd7d04a7e2669eaf32b --- /dev/null +++ b/tutorials/compressible/overRhoSimpleFoam/hotCylinder/cylinderAndBackground/system/fvSolution @@ -0,0 +1,80 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object fvSolution; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +solvers +{ + cellDisplacement + { + solver PCG; + preconditioner DIC; + + tolerance 1e-06; + relTol 0; + maxIter 100; + } + + "(U|e|h|k|epsilon)" + { + solver PBiCGStab; + preconditioner DILU; + tolerance 1e-6; + relTol 0.01; + } + + p + { + $U; + } + +} + +SIMPLE +{ + momentumPredictor true; + nNonOrthogonalCorrectors 1; + pMinFactor 0.1; + pMaxFactor 2; + + residualControl + { + p 1e-3; + U 1e-4; + e 1e-3; + + // possibly check turbulence fields + "(k|epsilon|omega)" 1e-3; + } +} + +relaxationFactors +{ + fields + { + p 0.7; + rho 1; + } + equations + { + U 0.3; + h 0.8; + k 0.4; + epsilon 0.4; + } +} + + +// ************************************************************************* // diff --git a/tutorials/compressible/overRhoSimpleFoam/hotCylinder/cylinderAndBackground/system/setFieldsDict b/tutorials/compressible/overRhoSimpleFoam/hotCylinder/cylinderAndBackground/system/setFieldsDict new file mode 100644 index 0000000000000000000000000000000000000000..8efb92d61024b852440bc0491e5e1005ffc411f9 --- /dev/null +++ b/tutorials/compressible/overRhoSimpleFoam/hotCylinder/cylinderAndBackground/system/setFieldsDict @@ -0,0 +1,48 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object setFieldsDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +defaultFieldValues +( + volScalarFieldValue zoneID 123 +); + +regions +( + // Set cell values + // (does zerogradient on boundaries) + cellToCell + { + set c0; + + fieldValues + ( + volScalarFieldValue zoneID 0 + ); + } + + cellToCell + { + set c1; + + fieldValues + ( + volScalarFieldValue zoneID 1 + ); + } + +); + +// ************************************************************************* // diff --git a/tutorials/compressible/overRhoSimpleFoam/hotCylinder/cylinderAndBackground/system/topoSetDict b/tutorials/compressible/overRhoSimpleFoam/hotCylinder/cylinderAndBackground/system/topoSetDict new file mode 100644 index 0000000000000000000000000000000000000000..81f172e41acbf234a09be2fbedf0b0469ecc34fb --- /dev/null +++ b/tutorials/compressible/overRhoSimpleFoam/hotCylinder/cylinderAndBackground/system/topoSetDict @@ -0,0 +1,48 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object topoSetDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +actions +( + { + name c0; + type cellSet; + action new; + source regionToCell; + sourceInfo + { + insidePoints ((-1.999 0 -1.999)); + } + } + + { + name c1; + type cellSet; + action new; + source cellToCell; + sourceInfo + { + set c0; + } + } + + { + name c1; + type cellSet; + action invert; + } +); + +// ************************************************************************* // diff --git a/tutorials/compressible/overRhoSimpleFoam/hotCylinder/cylinderMesh/Allrun.pre b/tutorials/compressible/overRhoSimpleFoam/hotCylinder/cylinderMesh/Allrun.pre new file mode 100755 index 0000000000000000000000000000000000000000..ad0801bbb900fe1a425cb5941eb3778df1ec2056 --- /dev/null +++ b/tutorials/compressible/overRhoSimpleFoam/hotCylinder/cylinderMesh/Allrun.pre @@ -0,0 +1,8 @@ +#!/bin/sh +. $WM_PROJECT_DIR/bin/tools/RunFunctions + +# Generate mesh from surface (in constant/triSurface) +runApplication extrudeMesh + +# Make front and back type empty +runApplication createPatch -overwrite diff --git a/tutorials/compressible/overRhoSimpleFoam/hotCylinder/cylinderMesh/constant/triSurface/cylinder.vtk b/tutorials/compressible/overRhoSimpleFoam/hotCylinder/cylinderMesh/constant/triSurface/cylinder.vtk new file mode 100644 index 0000000000000000000000000000000000000000..6a99fb9b6fa70d14ce544bacd1b185247667cc9c --- /dev/null +++ b/tutorials/compressible/overRhoSimpleFoam/hotCylinder/cylinderMesh/constant/triSurface/cylinder.vtk @@ -0,0 +1,221 @@ +# vtk DataFile Version 4.0 +vtk output +ASCII +DATASET POLYDATA +POINTS 150 float +0.5 0.05 0 0.5 -0.05 0 0.498246 0.05 -0.0418389 +0.498246 -0.05 -0.0418389 0.492998 0.05 -0.0833844 0.492998 -0.05 -0.0833844 +0.484292 0.05 -0.124345 0.484292 -0.05 -0.124345 0.472188 0.05 -0.164433 +0.472188 -0.05 -0.164433 0.456773 0.05 -0.203368 0.456773 -0.05 -0.203368 +0.438153 0.05 -0.240877 0.438153 -0.05 -0.240877 0.416461 0.05 -0.276696 +0.416461 -0.05 -0.276696 0.391847 0.05 -0.310574 0.391847 -0.05 -0.310574 +0.364484 0.05 -0.342274 0.364484 -0.05 -0.342274 0.334565 0.05 -0.371572 +0.334565 -0.05 -0.371572 0.3023 0.05 -0.398265 0.3023 -0.05 -0.398265 +0.267913 0.05 -0.422164 0.267913 -0.05 -0.422164 0.231648 0.05 -0.443102 +0.231648 -0.05 -0.443102 0.193758 0.05 -0.460932 0.193758 -0.05 -0.460932 +0.154509 0.05 -0.475528 0.154509 -0.05 -0.475528 0.114175 0.05 -0.486789 +0.114175 -0.05 -0.486789 0.0730415 0.05 -0.494636 0.0730415 -0.05 -0.494636 +0.0313953 0.05 -0.499013 0.0313953 -0.05 -0.499013 -0.0104712 0.05 -0.49989 +-0.0104712 -0.05 -0.49989 -0.0522642 0.05 -0.497261 -0.0522642 -0.05 -0.497261 +-0.0936907 0.05 -0.491144 -0.0936907 -0.05 -0.491144 -0.13446 0.05 -0.481581 +-0.13446 -0.05 -0.481581 -0.174286 0.05 -0.468641 -0.174286 -0.05 -0.468641 +-0.21289 0.05 -0.452414 -0.21289 -0.05 -0.452414 -0.25 0.05 -0.433013 +-0.25 -0.05 -0.433013 -0.285357 0.05 -0.410575 -0.285357 -0.05 -0.410575 +-0.318712 0.05 -0.385257 -0.318712 -0.05 -0.385257 -0.349832 0.05 -0.357236 +-0.349832 -0.05 -0.357236 -0.378498 0.05 -0.32671 -0.378498 -0.05 -0.32671 +-0.404509 0.05 -0.293893 -0.404509 -0.05 -0.293893 -0.427682 0.05 -0.259014 +-0.427682 -0.05 -0.259014 -0.447856 0.05 -0.222318 -0.447856 -0.05 -0.222318 +-0.464888 0.05 -0.184062 -0.464888 -0.05 -0.184062 -0.47866 0.05 -0.144516 +-0.47866 -0.05 -0.144516 -0.489074 0.05 -0.103956 -0.489074 -0.05 -0.103956 +-0.496057 0.05 -0.0626666 -0.496057 -0.05 -0.0626666 -0.499561 0.05 -0.0209378 +-0.499561 -0.05 -0.0209378 -0.499561 0.05 0.0209378 -0.499561 -0.05 0.0209378 +-0.496057 0.05 0.0626666 -0.496057 -0.05 0.0626666 -0.489074 0.05 0.103956 +-0.489074 -0.05 0.103956 -0.47866 0.05 0.144516 -0.47866 -0.05 0.144516 +-0.464888 0.05 0.184062 -0.464888 -0.05 0.184062 -0.447856 0.05 0.222318 +-0.447856 -0.05 0.222318 -0.427682 0.05 0.259014 -0.427682 -0.05 0.259014 +-0.404509 0.05 0.293893 -0.404509 -0.05 0.293893 -0.378498 0.05 0.32671 +-0.378498 -0.05 0.32671 -0.349832 0.05 0.357236 -0.349832 -0.05 0.357236 +-0.318712 0.05 0.385257 -0.318712 -0.05 0.385257 -0.285357 0.05 0.410575 +-0.285357 -0.05 0.410575 -0.25 0.05 0.433013 -0.25 -0.05 0.433013 +-0.21289 0.05 0.452414 -0.21289 -0.05 0.452414 -0.174286 0.05 0.468641 +-0.174286 -0.05 0.468641 -0.13446 0.05 0.481581 -0.13446 -0.05 0.481581 +-0.0936907 0.05 0.491144 -0.0936907 -0.05 0.491144 -0.0522642 0.05 0.497261 +-0.0522642 -0.05 0.497261 -0.0104712 0.05 0.49989 -0.0104712 -0.05 0.49989 +0.0313953 0.05 0.499013 0.0313953 -0.05 0.499013 0.0730415 0.05 0.494636 +0.0730415 -0.05 0.494636 0.114175 0.05 0.486789 0.114175 -0.05 0.486789 +0.154509 0.05 0.475528 0.154509 -0.05 0.475528 0.193758 0.05 0.460932 +0.193758 -0.05 0.460932 0.231648 0.05 0.443102 0.231648 -0.05 0.443102 +0.267913 0.05 0.422164 0.267913 -0.05 0.422164 0.3023 0.05 0.398265 +0.3023 -0.05 0.398265 0.334565 0.05 0.371572 0.334565 -0.05 0.371572 +0.364484 0.05 0.342274 0.364484 -0.05 0.342274 0.391847 0.05 0.310574 +0.391847 -0.05 0.310574 0.416461 0.05 0.276696 0.416461 -0.05 0.276696 +0.438153 0.05 0.240877 0.438153 -0.05 0.240877 0.456773 0.05 0.203368 +0.456773 -0.05 0.203368 0.472188 0.05 0.164433 0.472188 -0.05 0.164433 +0.484292 0.05 0.124345 0.484292 -0.05 0.124345 0.492998 0.05 0.0833844 +0.492998 -0.05 0.0833844 0.498246 0.05 0.0418389 0.498246 -0.05 0.0418389 + +POLYGONS 75 375 +4 0 1 3 2 +4 2 3 5 4 +4 4 5 7 6 +4 6 7 9 8 +4 8 9 11 10 +4 10 11 13 12 +4 12 13 15 14 +4 14 15 17 16 +4 16 17 19 18 +4 18 19 21 20 +4 20 21 23 22 +4 22 23 25 24 +4 24 25 27 26 +4 26 27 29 28 +4 28 29 31 30 +4 30 31 33 32 +4 32 33 35 34 +4 34 35 37 36 +4 36 37 39 38 +4 38 39 41 40 +4 40 41 43 42 +4 42 43 45 44 +4 44 45 47 46 +4 46 47 49 48 +4 48 49 51 50 +4 50 51 53 52 +4 52 53 55 54 +4 54 55 57 56 +4 56 57 59 58 +4 58 59 61 60 +4 60 61 63 62 +4 62 63 65 64 +4 64 65 67 66 +4 66 67 69 68 +4 68 69 71 70 +4 70 71 73 72 +4 72 73 75 74 +4 74 75 77 76 +4 76 77 79 78 +4 78 79 81 80 +4 80 81 83 82 +4 82 83 85 84 +4 84 85 87 86 +4 86 87 89 88 +4 88 89 91 90 +4 90 91 93 92 +4 92 93 95 94 +4 94 95 97 96 +4 96 97 99 98 +4 98 99 101 100 +4 100 101 103 102 +4 102 103 105 104 +4 104 105 107 106 +4 106 107 109 108 +4 108 109 111 110 +4 110 111 113 112 +4 112 113 115 114 +4 114 115 117 116 +4 116 117 119 118 +4 118 119 121 120 +4 120 121 123 122 +4 122 123 125 124 +4 124 125 127 126 +4 126 127 129 128 +4 128 129 131 130 +4 130 131 133 132 +4 132 133 135 134 +4 134 135 137 136 +4 136 137 139 138 +4 138 139 141 140 +4 140 141 143 142 +4 142 143 145 144 +4 144 145 147 146 +4 146 147 149 148 +4 148 149 1 0 + +POINT_DATA 150 +NORMALS Normals float +1 0 -0 1 0 -0 0.996493 0 -0.0836778 +0.996493 0 -0.0836778 0.985996 0 -0.166769 0.985996 0 -0.166769 +0.968583 0 -0.24869 0.968583 0 -0.24869 0.944376 0 -0.328867 +0.944376 0 -0.328867 0.913545 0 -0.406737 0.913545 0 -0.406737 +0.876307 0 -0.481754 0.876307 0 -0.481754 0.832921 0 -0.553392 +0.832921 0 -0.553392 0.783693 0 -0.621148 0.783693 0 -0.621148 +0.728969 0 -0.684547 0.728969 0 -0.684547 0.669131 0 -0.743145 +0.669131 0 -0.743145 0.604599 0 -0.79653 0.604599 0 -0.79653 +0.535827 0 -0.844328 0.535827 0 -0.844328 0.463296 0 -0.886204 +0.463296 0 -0.886204 0.387516 0 -0.921863 0.387516 0 -0.921863 +0.309017 0 -0.951057 0.309017 0 -0.951057 0.228351 0 -0.973579 +0.228351 0 -0.973579 0.146083 0 -0.989272 0.146083 0 -0.989272 +0.0627905 0 -0.998027 0.0627905 0 -0.998027 -0.0209424 0 -0.999781 +-0.0209424 0 -0.999781 -0.104528 0 -0.994522 -0.104528 0 -0.994522 +-0.187381 0 -0.982287 -0.187381 0 -0.982287 -0.26892 0 -0.963163 +-0.26892 0 -0.963163 -0.348572 0 -0.937282 -0.348572 0 -0.937282 +-0.425779 0 -0.904827 -0.425779 0 -0.904827 -0.5 0 -0.866025 +-0.5 0 -0.866025 -0.570714 0 -0.821149 -0.570714 0 -0.821149 +-0.637424 0 -0.770513 -0.637424 0 -0.770513 -0.699663 0 -0.714473 +-0.699663 0 -0.714473 -0.756995 0 -0.653421 -0.756995 0 -0.653421 +-0.809017 0 -0.587785 -0.809017 0 -0.587785 -0.855364 0 -0.518027 +-0.855364 0 -0.518027 -0.895712 0 -0.444635 -0.895712 0 -0.444635 +-0.929776 0 -0.368125 -0.929776 0 -0.368125 -0.957319 0 -0.289032 +-0.957319 0 -0.289032 -0.978148 0 -0.207912 -0.978148 0 -0.207912 +-0.992115 0 -0.125333 -0.992115 0 -0.125333 -0.999123 0 -0.0418757 +-0.999123 0 -0.0418757 -0.999123 0 0.0418757 -0.999123 0 0.0418757 +-0.992115 0 0.125333 -0.992115 0 0.125333 -0.978148 0 0.207912 +-0.978148 0 0.207912 -0.957319 0 0.289032 -0.957319 0 0.289032 +-0.929776 0 0.368125 -0.929776 0 0.368125 -0.895712 0 0.444635 +-0.895712 0 0.444635 -0.855364 0 0.518027 -0.855364 0 0.518027 +-0.809017 0 0.587785 -0.809017 0 0.587785 -0.756995 0 0.653421 +-0.756995 0 0.653421 -0.699663 0 0.714473 -0.699663 0 0.714473 +-0.637424 0 0.770513 -0.637424 0 0.770513 -0.570714 0 0.821149 +-0.570714 0 0.821149 -0.5 0 0.866025 -0.5 0 0.866025 +-0.425779 0 0.904827 -0.425779 0 0.904827 -0.348572 0 0.937282 +-0.348572 0 0.937282 -0.26892 0 0.963163 -0.26892 0 0.963163 +-0.187381 0 0.982287 -0.187381 0 0.982287 -0.104528 0 0.994522 +-0.104528 0 0.994522 -0.0209424 0 0.999781 -0.0209424 0 0.999781 +0.0627905 0 0.998027 0.0627905 0 0.998027 0.146083 0 0.989272 +0.146083 0 0.989272 0.228351 0 0.973579 0.228351 0 0.973579 +0.309017 0 0.951057 0.309017 0 0.951057 0.387516 0 0.921863 +0.387516 0 0.921863 0.463296 0 0.886204 0.463296 0 0.886204 +0.535827 0 0.844328 0.535827 0 0.844328 0.604599 0 0.79653 +0.604599 0 0.79653 0.669131 0 0.743145 0.669131 0 0.743145 +0.728969 0 0.684547 0.728969 0 0.684547 0.783693 0 0.621148 +0.783693 0 0.621148 0.832921 0 0.553392 0.832921 0 0.553392 +0.876307 0 0.481754 0.876307 0 0.481754 0.913545 0 0.406737 +0.913545 0 0.406737 0.944376 0 0.328867 0.944376 0 0.328867 +0.968583 0 0.24869 0.968583 0 0.24869 0.985996 0 0.166769 +0.985996 0 0.166769 0.996493 0 0.0836778 0.996493 0 0.0836778 + +TEXTURE_COORDINATES TCoords 2 float +1 0 1 1 0.973333 0 0.973333 1 0.946667 +0 0.946667 1 0.92 0 0.92 1 0.893333 0 +0.893333 1 0.866667 0 0.866667 1 0.84 0 0.84 +1 0.813333 0 0.813333 1 0.786667 0 0.786667 1 +0.76 0 0.76 1 0.733333 0 0.733333 1 0.706667 +0 0.706667 1 0.68 0 0.68 1 0.653333 0 +0.653333 1 0.626667 0 0.626667 1 0.6 0 0.6 +1 0.573333 0 0.573333 1 0.546667 0 0.546667 1 +0.52 0 0.52 1 0.493333 0 0.493333 1 0.466667 +0 0.466667 1 0.44 0 0.44 1 0.413333 0 +0.413333 1 0.386667 0 0.386667 1 0.36 0 0.36 +1 0.333333 0 0.333333 1 0.306667 0 0.306667 1 +0.28 0 0.28 1 0.253333 0 0.253333 1 0.226667 +0 0.226667 1 0.2 0 0.2 1 0.173333 0 +0.173333 1 0.146667 0 0.146667 1 0.12 0 0.12 +1 0.0933333 0 0.0933333 1 0.0666667 0 0.0666667 1 +0.04 0 0.04 1 0.0133333 0 0.0133333 1 0.0133333 +0 0.0133333 1 0.04 0 0.04 1 0.0666667 0 +0.0666667 1 0.0933333 0 0.0933333 1 0.12 0 0.12 +1 0.146667 0 0.146667 1 0.173333 0 0.173333 1 +0.2 0 0.2 1 0.226667 0 0.226667 1 0.253333 +0 0.253333 1 0.28 0 0.28 1 0.306667 0 +0.306667 1 0.333333 0 0.333333 1 0.36 0 0.36 +1 0.386667 0 0.386667 1 0.413333 0 0.413333 1 +0.44 0 0.44 1 0.466667 0 0.466667 1 0.493333 +0 0.493333 1 0.52 0 0.52 1 0.546667 0 +0.546667 1 0.573333 0 0.573333 1 0.6 0 0.6 +1 0.626667 0 0.626667 1 0.653333 0 0.653333 1 +0.68 0 0.68 1 0.706667 0 0.706667 1 0.733333 +0 0.733333 1 0.76 0 0.76 1 0.786667 0 +0.786667 1 0.813333 0 0.813333 1 0.84 0 0.84 +1 0.866667 0 0.866667 1 0.893333 0 0.893333 1 +0.92 0 0.92 1 0.946667 0 0.946667 1 0.973333 +0 0.973333 1 diff --git a/tutorials/compressible/overRhoSimpleFoam/hotCylinder/cylinderMesh/system/controlDict b/tutorials/compressible/overRhoSimpleFoam/hotCylinder/cylinderMesh/system/controlDict new file mode 100644 index 0000000000000000000000000000000000000000..52dc7243d35fc63309143d604a1e97c58db9c042 --- /dev/null +++ b/tutorials/compressible/overRhoSimpleFoam/hotCylinder/cylinderMesh/system/controlDict @@ -0,0 +1,50 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object controlDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +application snappyHexMesh; + +startFrom latestTime; + +startTime 0; + +stopAt endTime; + +endTime 100; + +deltaT 1; + +writeControl runTime; + +writeInterval 1; + +purgeWrite 0; + +writeFormat ascii; + +writePrecision 6; + +writeCompression off; + +timeFormat general; + +timePrecision 6; + +runTimeModifiable true; + +} + +// ************************************************************************* // diff --git a/tutorials/compressible/overRhoSimpleFoam/hotCylinder/cylinderMesh/system/createPatchDict b/tutorials/compressible/overRhoSimpleFoam/hotCylinder/cylinderMesh/system/createPatchDict new file mode 100644 index 0000000000000000000000000000000000000000..162e6f98a09f469d860a3a252de4e4fa7cff94fe --- /dev/null +++ b/tutorials/compressible/overRhoSimpleFoam/hotCylinder/cylinderMesh/system/createPatchDict @@ -0,0 +1,84 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object createPatchDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +pointSync false; + +// Patches to create. +patches +( + { + // Name of new patch + name oversetPatch; + + // Dictionary to construct new patch from + patchInfo + { + type overset; + } + + // How to construct: either from 'patches' or 'set' + constructFrom patches; + + // If constructFrom = patches : names of patches. Wildcards allowed. + patches (otherSide); + + // If constructFrom = set : name of faceSet + set f0; + } + + { + // Name of new patch + name walls; + + // Dictionary to construct new patch from + patchInfo + { + type wall; + } + + // How to construct: either from 'patches' or 'set' + constructFrom patches; + + // If constructFrom = patches : names of patches. Wildcards allowed. + patches (originalPatch); + + // If constructFrom = set : name of faceSet + set f0; + } + + { + // Name of new patch + name frontAndBack; + + // Dictionary to construct new patch from + patchInfo + { + type empty; + } + + // How to construct: either from 'patches' or 'set' + constructFrom patches; + + // If constructFrom = patches : names of patches. Wildcards allowed. + patches (sides); + + // If constructFrom = set : name of faceSet + set f0; + } + +); + +// ************************************************************************* // diff --git a/tutorials/compressible/overRhoSimpleFoam/hotCylinder/cylinderMesh/system/extrudeMeshDict b/tutorials/compressible/overRhoSimpleFoam/hotCylinder/cylinderMesh/system/extrudeMeshDict new file mode 100644 index 0000000000000000000000000000000000000000..d6190ee7d8fc185406d3e1af0364431f2a767009 --- /dev/null +++ b/tutorials/compressible/overRhoSimpleFoam/hotCylinder/cylinderMesh/system/extrudeMeshDict @@ -0,0 +1,109 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object extrudeMeshDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +// What to extrude: +// patch : from patch of another case ('sourceCase') +// mesh : as above but with original case included +// surface : from externally read surface + +//constructFrom mesh; +//constructFrom patch; +constructFrom surface; + +// If construct from patch/mesh: +sourceCase "../cavity"; +sourcePatches (movingWall); + +// If construct from patch: patch to use for back (can be same as sourcePatch) +exposedPatchName movingWall; + +// If construct from surface: +surface "constant/triSurface/cylinder.vtk"; + +// Flip surface normals before usage. Valid only for extrude from surface or +// patch. +flipNormals false; + +//- Linear extrusion in point-normal direction +extrudeModel linearNormal; + +nLayers 10; + +expansionRatio 1.02; + +sectorCoeffs +{ + axisPt (0 0.1 -0.05); + axis (-1 0 0); + angle 360; // For nLayers=1 assume symmetry so angle/2 on each side +} + +linearNormalCoeffs +{ + thickness 0.7; +} + +planeCoeffs +{ +// thickness 0.1; + nLayers 4; +} + +linearDirectionCoeffs +{ + direction (0 1 0); + thickness 0.5; +} + +linearRadialCoeffs +{ + R 0.1; + // Optional inner radius + Rsurface 0.01; +} + +radialCoeffs +{ + // Radii specified through interpolation table + R table ((0 0.01)(3 0.03)(10 0.1)); +} + +sigmaRadialCoeffs +{ + RTbyg 1; + pRef 1; + pStrat 1; +} + +offsetSurfaceCoeffs +{ + // Surface that mesh has been meshed to + baseSurface "$FOAM_CASE/constant/triSurface/DTC-scaled-inflated.obj"; + + // Surface to fill in to + offsetSurface "$FOAM_CASE/constant/triSurface/DTC-scaled.obj"; +} + + +// Do front and back need to be merged? Usually only makes sense for 360 +// degree wedges. +mergeFaces false; + +// Merge small edges. Fraction of bounding box. +mergeTol 0; + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/tutorials/compressible/overRhoSimpleFoam/hotCylinder/cylinderMesh/system/fvSchemes b/tutorials/compressible/overRhoSimpleFoam/hotCylinder/cylinderMesh/system/fvSchemes new file mode 100644 index 0000000000000000000000000000000000000000..593e432ee1a6fba052e4b8fe09703fe77ef39203 --- /dev/null +++ b/tutorials/compressible/overRhoSimpleFoam/hotCylinder/cylinderMesh/system/fvSchemes @@ -0,0 +1,58 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object fvSchemes; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +ddtSchemes +{ + default Euler; +} + +gradSchemes +{ + default Gauss linear; +} + +divSchemes +{ + default none; + div(phi,U) Gauss limitedLinearV 1; + div(phi,k) Gauss upwind; + div(phi,epsilon) Gauss upwind; + div(phi,R) Gauss upwind; + div(R) Gauss linear; + div(phid,p) Gauss limitedLinear 1; + div(phi,K) Gauss limitedLinear 1; + div(phi,e) Gauss limitedLinear 1; + div(((rho*nuEff)*dev2(T(grad(U))))) Gauss linear; +} + +laplacianSchemes +{ + default Gauss linear limited corrected 0.5; +} + +interpolationSchemes +{ + default linear; +} + +snGradSchemes +{ + default corrected; +} + + +// ************************************************************************* // diff --git a/tutorials/compressible/overRhoSimpleFoam/hotCylinder/cylinderMesh/system/fvSolution b/tutorials/compressible/overRhoSimpleFoam/hotCylinder/cylinderMesh/system/fvSolution new file mode 100644 index 0000000000000000000000000000000000000000..a2c699b46c60a2c755afdb49a1d881f773ad4b0d --- /dev/null +++ b/tutorials/compressible/overRhoSimpleFoam/hotCylinder/cylinderMesh/system/fvSolution @@ -0,0 +1,51 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object fvSolution; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +solvers +{ + p + { + solver smoothSolver; + smoother symGaussSeidel; + tolerance 1e-12; + relTol 0; + } + + rho + { + solver PCG; + preconditioner DIC; + tolerance 1e-08; + relTol 0; + } + + "(U|e|k|epsilon|R)" + { + $p; + tolerance 1e-08; + relTol 0; + } +} + +PISO +{ + nCorrectors 2; + nNonOrthogonalCorrectors 2; +} + + +// ************************************************************************* //