Merge with master

--HG--
branch : macMerge
This commit is contained in:
Bernhard F.W. Gschaider 2010-10-24 12:10:06 +02:00
commit a77e5b12f0
18 changed files with 84 additions and 50 deletions

View file

@ -31,7 +31,12 @@
- fvm::laplacian(rho*rUA, p) - fvm::laplacian(rho*rUA, p)
); );
if (ocorr == nOuterCorr && corr == nCorr && nonOrth == nNonOrthCorr) if
(
ocorr == nOuterCorr
&& corr == nCorr
&& nonOrth == nNonOrthCorr
)
{ {
pEqn.solve(mesh.solver(p.name() + "Final")); pEqn.solve(mesh.solver(p.name() + "Final"));
} }
@ -64,7 +69,12 @@
- fvm::laplacian(rho*rUA, p) - fvm::laplacian(rho*rUA, p)
); );
if (ocorr == nOuterCorr && corr == nCorr && nonOrth == nNonOrthCorr) if
(
ocorr == nOuterCorr
&& corr == nCorr
&& nonOrth == nNonOrthCorr
)
{ {
pEqn.solve(mesh.solver(p.name() + "Final")); pEqn.solve(mesh.solver(p.name() + "Final"));
} }

View file

@ -42,16 +42,16 @@ Description
int main(int argc, char *argv[]) int main(int argc, char *argv[])
{ {
#include "setRootCase.H" # include "setRootCase.H"
#include "createTime.H" # include "createTime.H"
#include "createMesh.H" # include "createMesh.H"
#include "readChemistryProperties.H" # include "readChemistryProperties.H"
#include "readGravitationalAcceleration.H" # include "readGravitationalAcceleration.H"
#include "createFields.H" # include "createFields.H"
#include "initContinuityErrs.H" # include "initContinuityErrs.H"
#include "readTimeControls.H" # include "readTimeControls.H"
#include "compressibleCourantNo.H" # include "compressibleCourantNo.H"
#include "setInitialDeltaT.H" # include "setInitialDeltaT.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -59,27 +59,27 @@ int main(int argc, char *argv[])
while (runTime.run()) while (runTime.run())
{ {
#include "readTimeControls.H" # include "readTimeControls.H"
#include "readPISOControls.H" # include "readPISOControls.H"
#include "compressibleCourantNo.H" # include "compressibleCourantNo.H"
#include "setDeltaT.H" # include "setDeltaT.H"
runTime++; runTime++;
Info<< "Time = " << runTime.timeName() << nl << endl; Info<< "Time = " << runTime.timeName() << nl << endl;
#include "chemistry.H" # include "chemistry.H"
#include "rhoEqn.H" # include "rhoEqn.H"
for (label ocorr=1; ocorr <= nOuterCorr; ocorr++) for (label ocorr=1; ocorr <= nOuterCorr; ocorr++)
{ {
#include "UEqn.H" # include "UEqn.H"
#include "YEqn.H" # include "YEqn.H"
#include "hsEqn.H" # include "hsEqn.H"
// --- PISO loop // --- PISO loop
for (int corr=1; corr<=nCorr; corr++) for (int corr=1; corr<=nCorr; corr++)
{ {
#include "pEqn.H" # include "pEqn.H"
} }
} }

View file

@ -194,6 +194,12 @@ public:
//- Clone //- Clone
tmp<Field<Type> > clone() const; tmp<Field<Type> > clone() const;
//- Return a pointer to a new Field created on freestore
static autoPtr<Field<Type> > New(Istream& is)
{
return autoPtr<Field<Type> >(new Field<Type>(is));
}
//- Return a pointer to a new calculatedFvPatchFieldField created on //- Return a pointer to a new calculatedFvPatchFieldField created on
// freestore without setting patchField values // freestore without setting patchField values
template<class Type2> template<class Type2>

View file

@ -299,7 +299,7 @@ inline Cmpt det(const DiagTensor<Cmpt>& t)
template <class Cmpt> template <class Cmpt>
inline DiagTensor<Cmpt> inv(const DiagTensor<Cmpt>& dt) inline DiagTensor<Cmpt> inv(const DiagTensor<Cmpt>& dt)
{ {
return DiagTensor<Cmpt>(1.0/dt.xx(), 1.0/dt.yy(), 1.0/dt.zz()); return DiagTensor<Cmpt>(1.0/dt.xx(), 1.0/dt.yy(), 1.0/dt.zz());
} }

View file

@ -48,7 +48,6 @@ namespace Foam
typedef DiagTensor<scalar> diagTensor; typedef DiagTensor<scalar> diagTensor;
//- Data associated with diagTensor type are contiguous //- Data associated with diagTensor type are contiguous
template<> template<>
inline bool contiguous<diagTensor>() {return true;} inline bool contiguous<diagTensor>() {return true;}

View file

@ -48,7 +48,7 @@ namespace Foam
typedef SphericalTensor<label> labelSphericalTensor; typedef SphericalTensor<label> labelSphericalTensor;
//- Identity labelTensor //- Global identity labelTensor
static const labelSphericalTensor labelI(1); static const labelSphericalTensor labelI(1);
//- Data associated with labelSphericalTensor type are contiguous //- Data associated with labelSphericalTensor type are contiguous

View file

@ -48,12 +48,11 @@ namespace Foam
typedef SphericalTensor<scalar> sphericalTensor; typedef SphericalTensor<scalar> sphericalTensor;
// Global spherical tensor definitions
// Identity tensor static const sphericalTensor I(1);
static const sphericalTensor I; static const sphericalTensor oneThirdI(1.0/3.0);
static const sphericalTensor twoThirdsI(2.0/3.0);
static const sphericalTensor oneThirdI;
static const sphericalTensor twoThirdsI;
//- Specify data associated with sphericalTensor type are contiguous //- Specify data associated with sphericalTensor type are contiguous

View file

@ -49,9 +49,9 @@ namespace Foam
typedef SphericalTensor2D<scalar> sphericalTensor2D; typedef SphericalTensor2D<scalar> sphericalTensor2D;
//- Identity tensor // Global spherical tensor definitions
static const sphericalTensor2D I2D(1);
static const sphericalTensor2D I2D(1);
static const sphericalTensor2D oneThirdI2D(1.0/3.0); static const sphericalTensor2D oneThirdI2D(1.0/3.0);
static const sphericalTensor2D twoThirdsI2D(2.0/3.0); static const sphericalTensor2D twoThirdsI2D(2.0/3.0);

View file

@ -44,8 +44,16 @@ SourceFiles
namespace Foam namespace Foam
{ {
typedef Vector<complex> complexVector;
} // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
typedef Vector<complex> complexVector;
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace Foam
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#include "complexVectorI.H" #include "complexVectorI.H"

View file

@ -94,7 +94,11 @@ inline complex operator&(const complexVector& v1, const complexVector& v2)
// complexVector cross product // complexVector cross product
inline complexVector operator^(const complexVector& v1, const complexVector& v2) inline complexVector operator^
(
const complexVector& v1,
const complexVector& v2
)
{ {
return complexVector return complexVector
( (

View file

@ -49,7 +49,6 @@ namespace Foam
typedef Vector<label> labelVector; typedef Vector<label> labelVector;
//- Data associated with labelVector type are contiguous //- Data associated with labelVector type are contiguous
template<> template<>
inline bool contiguous<labelVector>() {return true;} inline bool contiguous<labelVector>() {return true;}

View file

@ -54,6 +54,7 @@ const vector vector::max(VGREAT, VGREAT, VGREAT);
template<> template<>
const vector vector::min(-VGREAT, -VGREAT, -VGREAT); const vector vector::min(-VGREAT, -VGREAT, -VGREAT);
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace Foam } // End namespace Foam

View file

@ -49,7 +49,6 @@ namespace Foam
typedef Vector<scalar> vector; typedef Vector<scalar> vector;
//- Data associated with vector type are contiguous //- Data associated with vector type are contiguous
template<> template<>
inline bool contiguous<vector>() {return true;} inline bool contiguous<vector>() {return true;}

View file

@ -49,7 +49,6 @@ namespace Foam
typedef Vector2D<scalar> vector2D; typedef Vector2D<scalar> vector2D;
//- Data associated with vector2D type are contiguous //- Data associated with vector2D type are contiguous
template<> template<>
inline bool contiguous<vector2D>() {return true;} inline bool contiguous<vector2D>() {return true;}

View file

@ -31,7 +31,7 @@ License
template<class T> template<class T>
void Foam::polyMeshAdder::append(const List<T>& lst, DynamicList<T>& dynLst) void Foam::polyMeshAdder::append(const List<T>& lst, DynamicList<T>& dynLst)
{ {
dynLst.setSize(dynLst.size() + lst.size()); dynLst.setCapacity(dynLst.size() + lst.size());
forAll(lst, i) forAll(lst, i)
{ {

View file

@ -241,6 +241,12 @@ Foam::faMesh::faMesh(const polyMesh& pMesh)
setPrimitiveMeshData(); setPrimitiveMeshData();
// Create global mesh data
if (Pstream::parRun())
{
globalData();
}
// Calculate topology for the patches (processor-processor comms etc.) // Calculate topology for the patches (processor-processor comms etc.)
boundary_.updateMesh(); boundary_.updateMesh();

View file

@ -377,7 +377,7 @@ const unallocLabelList& faPatch::edgeFaces() const
// Return the patch edge centres // Return the patch edge centres
const vectorField& faPatch::edgeCentres() const const vectorField& faPatch::edgeCentres() const
{ {
return boundaryMesh().mesh().areaCentres().boundaryField()[index()]; return boundaryMesh().mesh().edgeCentres().boundaryField()[index()];
} }

View file

@ -140,17 +140,21 @@ emptyFaPatchField<Type>::emptyFaPatchField
template<class Type> template<class Type>
void emptyFaPatchField<Type>::updateCoeffs() void emptyFaPatchField<Type>::updateCoeffs()
{ {
if // ZT, 26/06/2010, bug-fix for faMesh of zero size
( if (this->dimensionedInternalField().mesh().nFaces())
this->patch().size()
% this->dimensionedInternalField().mesh().nFaces()
)
{ {
FatalErrorIn("emptyFaPatchField<Type>::updateCoeffs()") if
<< "This mesh contains patches of type empty but is not 1D or 2D\n" (
" by virtue of the fact that the number of faces of this\n" this->patch().size()
" empty patch is not divisible by the number of cells." % this->dimensionedInternalField().mesh().nFaces()
<< exit(FatalError); )
{
FatalErrorIn("emptyFaPatchField<Type>::updateCoeffs()")
<< "This mesh contains patches of type empty but is not 1D or 2D\n"
" by virtue of the fact that the number of faces of this\n"
" empty patch is not divisible by the number of cells."
<< exit(FatalError);
}
} }
} }