Merge branch 'master' of /home/dm4/OpenFOAM/repositories/OpenFOAM-dev

This commit is contained in:
mattijs
2014-01-28 10:17:24 +00:00
49 changed files with 131 additions and 100578 deletions

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -61,74 +61,86 @@ int main(int argc, char *argv[])
surfaceScalarField rho_pos
(
"rho_pos",
fvc::interpolate(rho, pos, "reconstruct(rho)")
);
surfaceScalarField rho_neg
(
"rho_neg",
fvc::interpolate(rho, neg, "reconstruct(rho)")
);
surfaceVectorField rhoU_pos
(
"rhoU_pos",
fvc::interpolate(rhoU, pos, "reconstruct(U)")
);
surfaceVectorField rhoU_neg
(
"rhoU_neg",
fvc::interpolate(rhoU, neg, "reconstruct(U)")
);
volScalarField rPsi(1.0/psi);
surfaceScalarField rPsi_pos
(
"rPsi_pos",
fvc::interpolate(rPsi, pos, "reconstruct(T)")
);
surfaceScalarField rPsi_neg
(
"rPsi_neg",
fvc::interpolate(rPsi, neg, "reconstruct(T)")
);
surfaceScalarField e_pos
(
"e_pos",
fvc::interpolate(e, pos, "reconstruct(T)")
);
surfaceScalarField e_neg
(
"e_neg",
fvc::interpolate(e, neg, "reconstruct(T)")
);
surfaceVectorField U_pos(rhoU_pos/rho_pos);
surfaceVectorField U_neg(rhoU_neg/rho_neg);
surfaceVectorField U_pos("U_pos", rhoU_pos/rho_pos);
surfaceVectorField U_neg("U_neg", rhoU_neg/rho_neg);
surfaceScalarField p_pos(rho_pos*rPsi_pos);
surfaceScalarField p_neg(rho_neg*rPsi_neg);
surfaceScalarField p_pos("p_pos", rho_pos*rPsi_pos);
surfaceScalarField p_neg("p_neg", rho_neg*rPsi_neg);
surfaceScalarField phiv_pos(U_pos & mesh.Sf());
surfaceScalarField phiv_neg(U_neg & mesh.Sf());
surfaceScalarField phiv_pos("phiv_pos", U_pos & mesh.Sf());
surfaceScalarField phiv_neg("phiv_neg", U_neg & mesh.Sf());
volScalarField c(sqrt(thermo.Cp()/thermo.Cv()*rPsi));
surfaceScalarField cSf_pos
(
"cSf_pos",
fvc::interpolate(c, pos, "reconstruct(T)")*mesh.magSf()
);
surfaceScalarField cSf_neg
(
"cSf_neg",
fvc::interpolate(c, neg, "reconstruct(T)")*mesh.magSf()
);
surfaceScalarField ap
(
"ap",
max(max(phiv_pos + cSf_pos, phiv_neg + cSf_neg), v_zero)
);
surfaceScalarField am
(
"am",
min(min(phiv_pos - cSf_pos, phiv_neg - cSf_neg), v_zero)
);
surfaceScalarField a_pos(ap/(ap - am));
surfaceScalarField a_pos("a_pos", ap/(ap - am));
surfaceScalarField amaxSf("amaxSf", max(mag(am), mag(ap)));
surfaceScalarField aSf(am*a_pos);
surfaceScalarField aSf("aSf", am*a_pos);
if (fluxScheme == "Tadmor")
{
@ -136,13 +148,13 @@ int main(int argc, char *argv[])
a_pos = 0.5;
}
surfaceScalarField a_neg(1.0 - a_pos);
surfaceScalarField a_neg("a_neg", 1.0 - a_pos);
phiv_pos *= a_pos;
phiv_neg *= a_neg;
surfaceScalarField aphiv_pos(phiv_pos - aSf);
surfaceScalarField aphiv_neg(phiv_neg + aSf);
surfaceScalarField aphiv_pos("aphiv_pos", phiv_pos - aSf);
surfaceScalarField aphiv_neg("aphiv_neg", phiv_neg + aSf);
// Reuse amaxSf for the maximum positive and negative fluxes
// estimated by the central scheme
@ -166,6 +178,7 @@ int main(int argc, char *argv[])
surfaceScalarField phiEp
(
"phiEp",
aphiv_pos*(rho_pos*(e_pos + 0.5*magSqr(U_pos)) + p_pos)
+ aphiv_neg*(rho_neg*(e_neg + 0.5*magSqr(U_neg)) + p_neg)
+ aSf*p_pos - aSf*p_neg
@ -202,6 +215,7 @@ int main(int argc, char *argv[])
// --- Solve energy
surfaceScalarField sigmaDotU
(
"sigmaDotU",
(
fvc::interpolate(muEff)*mesh.magSf()*fvc::snGrad(U)
+ (mesh.Sf() & fvc::interpolate(tauMC))

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -77,6 +77,7 @@ void Foam::multiphaseSystem::solveAlphas()
phasei,
new surfaceScalarField
(
"phi" + alpha1.name() + "Corr",
fvc::flux
(
phi_,
@ -106,7 +107,7 @@ void Foam::multiphaseSystem::solveAlphas()
{
surfaceScalarField phic
(
(mag(phi_) + mag(phase1.phi() - phase2.phi()))/mesh_.magSf()
(mag(phi_) + mag(phir))/mesh_.magSf()
);
phir += min(cAlpha()*phic, max(phic))*nHatf(phase1, phase2);

View File

@ -65,6 +65,7 @@
const volScalarField& alpha = phase;
alphafs.set(phasei, fvc::interpolate(alpha).ptr());
alphafs[phasei].rename("hmm" + alpha.name());
volScalarField dragCoeffi
(
@ -227,7 +228,7 @@
if (pimple.finalNonOrthogonalIter())
{
surfaceScalarField mSfGradp(pEqnIncomp.flux()/rAUf);
surfaceScalarField mSfGradp("mSfGradp", pEqnIncomp.flux()/rAUf);
phasei = 0;
phi = dimensionedScalar("phi", phi.dimensions(), 0);

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -569,6 +569,7 @@ void Foam::multiphaseMixture::solveAlphas
phasei,
new surfaceScalarField
(
"phi" + alpha.name() + "Corr",
fvc::flux
(
phi_,

View File

@ -2,8 +2,8 @@
volScalarField& he1 = thermo1.he();
volScalarField& he2 = thermo2.he();
volScalarField Cpv1(thermo1.Cpv());
volScalarField Cpv2(thermo2.Cpv());
volScalarField Cpv1("Cpv1", thermo1.Cpv());
volScalarField Cpv2("Cpv2", thermo2.Cpv());
volScalarField heatTransferCoeff(fluid.heatTransferCoeff());

View File

@ -66,6 +66,7 @@
volVectorField DDtU1
(
"DDtU1",
fvc::ddt(U1)
+ fvc::div(phi1, U1)
- fvc::div(phi1)*U1
@ -73,6 +74,7 @@
volVectorField DDtU2
(
"DDtU2",
fvc::ddt(U2)
+ fvc::div(phi2, U2)
- fvc::div(phi2)*U2

View File

@ -1,6 +1,6 @@
{
surfaceScalarField alpha1f(fvc::interpolate(alpha1));
surfaceScalarField alpha2f(scalar(1) - alpha1f);
surfaceScalarField alpha1f("alpha1f", fvc::interpolate(alpha1));
surfaceScalarField alpha2f("alpha2f", scalar(1) - alpha1f);
rAU1 = 1.0/U1Eqn.A();
rAU2 = 1.0/U2Eqn.A();
@ -189,7 +189,7 @@
if (pimple.finalNonOrthogonalIter())
{
surfaceScalarField mSfGradp(pEqnIncomp.flux()/rAUf);
surfaceScalarField mSfGradp("mSfGradp", pEqnIncomp.flux()/rAUf);
phi1.boundaryField() ==
mrfZones.relative

View File

@ -603,6 +603,8 @@ void mixtureKEpsilon<BasicTurbulenceModel>::correct()
// Update k, epsilon and G at the wall
kl.boundaryField().updateCoeffs();
epsilonl.boundaryField().updateCoeffs();
Gc().checkOut();
}
tmp<volScalarField> Gd;
@ -621,6 +623,8 @@ void mixtureKEpsilon<BasicTurbulenceModel>::correct()
// Update k, epsilon and G at the wall
kg.boundaryField().updateCoeffs();
epsilong.boundaryField().updateCoeffs();
Gd().checkOut();
}
// Mixture turbulence generation

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2013 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2013-2014 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -79,7 +79,15 @@ Foam::LESModel<BasicTurbulenceModel>::LESModel
)
),
delta_(LESdelta::New("delta", U.mesh(), LESDict_))
delta_
(
LESdelta::New
(
IOobject::groupName("delta", U.group()),
U.mesh(),
LESDict_
)
)
{
// Force the construction of the mesh deltaCoeffs which may be needed
// for the construction of the derived models and BCs

View File

@ -21,24 +21,14 @@ runApplication renumberMesh -overwrite
# force removal of fields generated by snappy
\rm -rf 0
# - generate face/cell sets and zones
#runApplication setSet -batch createInletOutletSets.setSet
#mv log.setSet log.createInletOutletSets.setSet
runApplication topoSet -dict system/createInletOutletSets.topoSetDict
#mv log.topoSet log.createInletOutletSets.topoSet
# - create the inlet/outlet and AMI patches
runApplication createPatch -overwrite
# - test by running moveDynamicMes
#runApplication moveDynamicMesh -checkAMI
# - apply the initial fields
# - set the initial fields
cp -rf 0.org 0

View File

@ -64,7 +64,7 @@ geometry
}
}
}
propellerTip.obj
propellerTip.obj.gz
{
type triSurfaceMesh;
name propellerTip;

View File

@ -9,6 +9,7 @@ cleanCase
cd ../wingMotion2D_simpleFoam
cleanCase
rm -rf 0
cd ../wingMotion2D_pimpleDyMFoam
cleanCase

View File

@ -13,6 +13,7 @@ runApplication snappyHexMesh -overwrite
cd ../wingMotion2D_simpleFoam
runApplication extrudeMesh
runApplication createPatch -overwrite
cp -r 0.org 0
runApplication simpleFoam
# Copy the mesh from the steady state case and map the results to a

View File

@ -35,26 +35,26 @@ FoamFile
nFaces 62;
startFace 25291;
}
wing
{
type wall;
inGroups 1(wall);
nFaces 378;
startFace 25353;
}
front
{
type empty;
inGroups 1(empty);
nFaces 12565;
startFace 25353;
startFace 25731;
}
back
{
type empty;
inGroups 1(empty);
nFaces 12565;
startFace 37918;
}
wing
{
type wall;
inGroups 1(wall);
nFaces 378;
startFace 50483;
startFace 38296;
}
)

View File

@ -35,26 +35,26 @@ FoamFile
nFaces 62;
startFace 25291;
}
wing
{
type wall;
inGroups 1(wall);
nFaces 378;
startFace 25353;
}
front
{
type empty;
inGroups 1(empty);
nFaces 12565;
startFace 25353;
startFace 25731;
}
back
{
type empty;
inGroups 1(empty);
nFaces 12565;
startFace 37918;
}
wing
{
type wall;
inGroups 1(wall);
nFaces 378;
startFace 50483;
startFace 38296;
}
)

View File

@ -14,55 +14,41 @@ FoamFile
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// This application/dictionary controls:
// - optional: create new patches from boundary faces (either given as
// a set of patches or as a faceSet)
// - always: order faces on coupled patches such that they are opposite. This
// is done for all coupled faces, not just for any patches created.
// - optional: synchronise points on coupled patches.
// 1. Create cyclic:
// - specify where the faces should come from
// - specify the type of cyclic. If a rotational specify the rotationAxis
// and centre to make matching easier
// - always create both halves in one invocation with correct 'neighbourPatch'
// setting.
// - optionally pointSync true to guarantee points to line up.
// 2. Correct incorrect cyclic:
// This will usually fail upon loading:
// "face 0 area does not match neighbour 2 by 0.0100005%"
// " -- possible face ordering problem."
// - in polyMesh/boundary file:
// - loosen matchTolerance of all cyclics to get case to load
// - or change patch type from 'cyclic' to 'patch'
// and regenerate cyclic as above
// Do a synchronisation of coupled points after creation of any patches.
// Note: this does not work with points that are on multiple coupled patches
// with transformations (i.e. cyclics).
pointSync false;
// Patches to create.
patches
(
{
// Name of new patch
name wing;
name front;
// Type of new patch
patchInfo
{
type wall;
type empty;
}
// How to construct: either from 'patches' or 'set'
constructFrom patches;
// If constructFrom = patches : names of patches. Wildcards allowed.
patches ( wing_5degrees.obj_WALL10 );
patches (symFront);
}
{
// Name of new patch
name back;
// Type of new patch
patchInfo
{
type empty;
}
// How to construct: either from 'patches' or 'set'
constructFrom patches;
// If constructFrom = patches : names of patches. Wildcards allowed.
patches (symBack);
}
);

View File

@ -21,10 +21,10 @@ FoamFile
constructFrom patch;
sourceCase "../wingMotion_snappyHexMesh";
sourcePatches (front);
sourcePatches (symFront);
// If construct from patch: patch to use for back (can be same as sourcePatch)
exposedPatchName back;
exposedPatchName symBack;
// Flip surface normals before usage. Valid only for extrude from surface or
// patch.

View File

@ -68,18 +68,18 @@ boundary
);
}
front
symFront
{
type empty;
type symmetryPlane;
faces
(
(4 5 6 7)
);
}
back
symBack
{
type empty;
type symmetryPlane;
faces
(
(0 3 2 1)

View File

@ -30,14 +30,15 @@ geometry
{
wing_5degrees.obj
{
type triSurfaceMesh;
type triSurfaceMesh;
name wing;
}
refinementBox
{
type searchableBox;
min (-1 -1 -1);
max ( 5 1 1);
type searchableBox;
min (-1 -1 -1);
max ( 5 1 1);
}
};
@ -95,7 +96,7 @@ castellatedMeshControls
refinementSurfaces
{
wing_5degrees.obj
wing
{
// Surface-wise min and max refinement level
level (5 5);
@ -180,7 +181,7 @@ addLayersControls
// Per final patch (so not geometry!) the layer information
layers
{
"wing.*"
wing
{
nSurfaceLayers 3;
}

View File

@ -50,7 +50,7 @@ boundaryField
inletValue $internalField;
}
porosity_ascii
porosity
{
type zeroGradient;
}

View File

@ -53,7 +53,7 @@ boundaryField
inletValue uniform (0 0 0);
}
porosity_ascii
porosity
{
type zeroGradient;
}

View File

@ -59,7 +59,7 @@ boundaryField
value uniform 200;
}
porosity_ascii
porosity
{
type zeroGradient;
}

View File

@ -59,7 +59,7 @@ boundaryField
value uniform 1;
}
porosity_ascii
porosity
{
type zeroGradient;
}

View File

@ -57,7 +57,7 @@ boundaryField
value uniform 0;
}
porosity_ascii
porosity
{
type zeroGradient;
}

View File

@ -47,7 +47,7 @@ boundaryField
value $internalField;
}
porosity_ascii
porosity
{
type zeroGradient;
}

View File

@ -44,7 +44,7 @@ boundaryField
zGround $zGround;
}
"terrain_.*"
terrain
{
type uniformFixedValue;
uniformValue (0 0 0);

View File

@ -25,7 +25,7 @@ boundaryField
{
#include "include/ABLConditions"
"terrain_.*"
terrain
{
type epsilonWallFunction;
Cmu 0.09;

View File

@ -37,7 +37,7 @@ boundaryField
uniformValue constant $turbulentKE;
}
"terrain_.*"
terrain
{
type kqRWallFunction;
value uniform 0.0;

View File

@ -35,7 +35,7 @@ boundaryField
value uniform 0;
}
"terrain_.*"
terrain
{
type nutkAtmRoughWallFunction;
z0 $z0;

View File

@ -33,7 +33,7 @@ boundaryField
uniformValue constant $pressure;
}
"terrain_.*"
terrain
{
type zeroGradient;
}

View File

@ -33,13 +33,6 @@ geometry
{
type triSurfaceMesh;
name walls;
regions
{
solid
{
name walls;
}
}
}
};

View File

@ -49,7 +49,7 @@ boundaryField
value uniform (0 0 0);
}
hull_wall
hull
{
type fixedValue;
value uniform (0 0 0);

View File

@ -44,7 +44,7 @@ boundaryField
value $internalField;
}
hull_wall
hull
{
type zeroGradient;
}

View File

@ -44,7 +44,7 @@ boundaryField
value $internalField;
}
hull_wall
hull
{
type kqRWallFunction;
value $internalField;

View File

@ -42,7 +42,7 @@ boundaryField
type zeroGradient;
}
hull_wall
hull
{
type nutkWallFunction;
value $internalField;

View File

@ -50,7 +50,7 @@ boundaryField
value $internalField;
}
hull_wall
hull
{
type omegaWallFunction;
value $internalField;

View File

@ -48,7 +48,7 @@ boundaryField
value $internalField;
}
hull_wall
hull
{
type fixedFluxPressure;
value $internalField;

View File

@ -20,21 +20,21 @@ FoamFile
inlet
{
type patch;
nFaces 0;
nFaces 652;
startFace 1576984;
}
outlet
{
type patch;
nFaces 0;
startFace 1576984;
nFaces 112;
startFace 1577636;
}
outerCylinder
{
type wall;
inGroups 1(wall);
nFaces 1404;
startFace 1576984;
nFaces 640;
startFace 1577748;
}
propellerTip
{

View File

@ -64,7 +64,7 @@ geometry
}
}
}
propellerTip.obj
propellerTip.obj.gz
{
type triSurfaceMesh;
name propellerTip;