Merge branch 'master' of ssh://graham@hunt//home/noisy3/OpenFOAM/OpenFOAM-dev

This commit is contained in:
graham
2009-11-20 14:09:25 +00:00
15 changed files with 68 additions and 213 deletions

View File

@ -1,133 +0,0 @@
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 1991-2009 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 2 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, write to the Free Software Foundation,
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
\*---------------------------------------------------------------------------*/
#include "argList.H"
#include "Time.H"
#include "DimensionedFields.H"
#include "DimensionedSphericalTensorField.H"
#include "vector.H"
#include "tensor.H"
#include "GeoMesh.H"
using namespace Foam;
namespace Foam
{
class vMesh
{
public:
vMesh()
{}
label size() const
{
return 10;
}
};
};
template<>
const word Foam::DimensionedField<scalar, GeoMesh<vMesh> >::typeName
(
"dimenionedScalarField"
);
template<>
const word Foam::DimensionedField<vector, GeoMesh<vMesh> >::typeName
(
"dimenionedVectorField"
);
template<>
const word Foam::DimensionedField<tensor, GeoMesh<vMesh> >::typeName
(
"dimenionedTensorField"
);
template<>
const word Foam::DimensionedField<sphericalTensor, GeoMesh<vMesh> >::typeName
(
"dimenionedSphericalTensorField"
);
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// Main program:
int main(int argc, char *argv[])
{
# include "setRootCase.H"
# include "createTime.H"
vMesh vm;
DimensionedField<scalar, GeoMesh<vMesh> > dsf
(
IOobject
(
"dsf",
runTime.timeName(),
runTime,
IOobject::MUST_READ,
IOobject::NO_WRITE
),
vm
);
Info<< dsf << endl;
dsf += dsf;
dsf -= dimensionedScalar("5", dsf.dimensions(), 5.0);
Info<< dsf << endl;
Info<< sqr(dsf + dsf) - sqr(dsf + dsf) << endl;
DimensionedField<vector, GeoMesh<vMesh> > dvf
(
IOobject
(
"dvf",
runTime.timeName(),
runTime,
IOobject::MUST_READ,
IOobject::NO_WRITE
),
vm
);
Info<< (dvf ^ (dvf ^ dvf)) << endl;
Info << "End\n" << endl;
return 0;
}
// ************************************************************************* //

View File

@ -1,3 +0,0 @@
DimensionedFieldTest.C
EXE = $(FOAM_USER_APPBIN)/DimensionedFieldTest

View File

@ -1,2 +0,0 @@
/* EXE_INC = -I$(LIB_SRC)/cfdTools/include */
/* EXE_LIBS = -lfiniteVolume */

View File

@ -33,7 +33,6 @@ Description
#include "HashPtrTable.H" #include "HashPtrTable.H"
#include "Map.H" #include "Map.H"
#include "StaticHashTable.H" #include "StaticHashTable.H"
#include "HashTbl.H"
#include "cpuTime.H" #include "cpuTime.H"
using namespace Foam; using namespace Foam;
@ -53,7 +52,7 @@ int main(int argc, char *argv[])
// Map<label> map(2 * nSize); // Map<label> map(2 * nSize);
// HashTable<label, label, Hash<label> > map(2 * nSize); // HashTable<label, label, Hash<label> > map(2 * nSize);
// StaticHashTable<label, label, Hash<label> > map(2 * nSize); // StaticHashTable<label, label, Hash<label> > map(2 * nSize);
HashTbl<label, label, Hash<label> > map(2 * nSize); HashTable<label, label, Hash<label> > map(2 * nSize);
Info<< "Constructed map of size: " << nSize Info<< "Constructed map of size: " << nSize
<< " (size " << map.size() << " capacity " << map.capacity() << ") " << " (size " << map.size() << " capacity " << map.capacity() << ") "

View File

@ -24,7 +24,7 @@ License
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
#include "Matrix.H" #include "SquareMatrix.H"
#include "vector.H" #include "vector.H"
using namespace Foam; using namespace Foam;
@ -34,7 +34,7 @@ using namespace Foam;
int main(int argc, char *argv[]) int main(int argc, char *argv[])
{ {
Matrix<scalar> hmm(3, 3); SquareMatrix<scalar> hmm(3);
hmm[0][0] = -3.0; hmm[0][0] = -3.0;
hmm[0][1] = 10.0; hmm[0][1] = 10.0;
@ -46,27 +46,27 @@ int main(int argc, char *argv[])
hmm[2][1] = 6.0; hmm[2][1] = 6.0;
hmm[2][2] = 1.0; hmm[2][2] = 1.0;
Info<< hmm << endl << hmm - 2.0*(-hmm) << endl; //Info<< hmm << endl << hmm - 2.0*(-hmm) << endl;
Info<< max(hmm) << endl; Info<< max(hmm) << endl;
Info<< min(hmm) << endl; Info<< min(hmm) << endl;
Matrix<scalar> hmm2(3, 3, 1.0); SquareMatrix<scalar> hmm2(3, 1.0);
hmm = hmm2; hmm = hmm2;
Info<< hmm << endl; Info<< hmm << endl;
Matrix<scalar> hmm3(Sin); SquareMatrix<scalar> hmm3(Sin);
Info<< hmm3 << endl; Info<< hmm3 << endl;
Matrix<scalar> hmm4; SquareMatrix<scalar> hmm4;
hmm4 = hmm2; hmm4 = hmm2;
Info<< hmm4 << endl; Info<< hmm4 << endl;
Matrix<scalar> hmm5; SquareMatrix<scalar> hmm5;
hmm4 = hmm5; hmm4 = hmm5;
Info<< hmm5 << endl; Info<< hmm5 << endl;

View File

@ -69,7 +69,7 @@ public:
const scalar x, const scalar x,
const scalarField& y, const scalarField& y,
scalarField& dfdx, scalarField& dfdx,
Matrix<scalar>& dfdy scalarSquareMatrix& dfdy
) const ) const
{ {
dfdx[0] = 0.0; dfdx[0] = 0.0;

View File

@ -57,6 +57,8 @@ public:
Info <<"delete Scalar: " << data_ << endl; Info <<"delete Scalar: " << data_ << endl;
} }
autoPtr<Scalar> clone() const;
friend Ostream& operator<<(Ostream& os, const Scalar& val) friend Ostream& operator<<(Ostream& os, const Scalar& val)
{ {
os << val.data_; os << val.data_;

View File

@ -84,11 +84,11 @@ int main(int argc, char *argv[])
// test List operations // test List operations
List<double> flatList = UIndirectList<double>(completeList, addresses); List<double> flatList(UIndirectList<double>(completeList, addresses));
Info<< "List assigned from UIndirectList: " << flatList << endl; Info<< "List constructed from UIndirectList: " << flatList << endl;
List<double> flatList2(UIndirectList<double>(completeList, addresses)); flatList = UIndirectList<double>(completeList, addresses);
Info<< "List constructed from UIndirectList: " << flatList2 << endl; Info<< "List assigned from UIndirectList: " << flatList << endl;
flatList.append(UIndirectList<double>(completeList, addresses)); flatList.append(UIndirectList<double>(completeList, addresses));
Info<< "List::append(UIndirectList): " << flatList << endl; Info<< "List::append(UIndirectList): " << flatList << endl;

View File

@ -84,7 +84,7 @@ int main(int argc, char *argv[])
// Sync how many to send // Sync how many to send
labelListList allNTrans(Pstream::nProcs()); labelListList allNTrans(Pstream::nProcs());
allNTrans[Pstream::myProcNo()] = nSend; allNTrans[Pstream::myProcNo()] = nSend;
combineReduce(allNTrans, mapDistribute::listEq()); combineReduce(allNTrans, UPstream::listEq());
// Collect items to be sent // Collect items to be sent
labelListList sendMap(Pstream::nProcs()); labelListList sendMap(Pstream::nProcs());

View File

@ -23,7 +23,7 @@ License
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Application Application
volField slicedFieldTest
Description Description
@ -32,16 +32,16 @@ Description
#include "fvCFD.H" #include "fvCFD.H"
#include "SlicedGeometricField.H" #include "SlicedGeometricField.H"
#include "slicedFvPatchFields.H" #include "slicedFvPatchFields.H"
#include "slicedSurfaceFields.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
int main(int argc, char *argv[]) int main(int argc, char *argv[])
{ {
#include "setRootCase.H"
# include "setRootCase.H" #include "createTime.H"
#include "createMesh.H"
# include "createTime.H"
# include "createMesh.H"
Info<< "Reading field p\n" << endl; Info<< "Reading field p\n" << endl;
volScalarField p volScalarField p
@ -91,7 +91,7 @@ int main(int argc, char *argv[])
Info<< C << endl; Info<< C << endl;
Info<< (C & U) << endl; Info<< (C & U) << endl;
SlicedGeometricField<vector, fvPatchField, slicedFvPatchField, surfaceMesh> SlicedGeometricField<vector, fvsPatchField, slicedFvsPatchField, surfaceMesh>
Sf Sf
( (
IOobject IOobject
@ -105,7 +105,7 @@ int main(int argc, char *argv[])
mesh.faceAreas() mesh.faceAreas()
); );
Info<< Sf << endl; //Info<< Sf << endl;
return 0; return 0;
} }

View File

@ -48,8 +48,6 @@ int main(int argc, char *argv[])
# include "createTime.H" # include "createTime.H"
# include "createPolyMesh.H" # include "createPolyMesh.H"
pointMesh pMesh(mesh);
const polyBoundaryMesh& patches = mesh.boundaryMesh(); const polyBoundaryMesh& patches = mesh.boundaryMesh();
// Get name of patch // Get name of patch
@ -99,7 +97,7 @@ int main(int argc, char *argv[])
PointEdgeWave<pointEdgePoint> wallCalc PointEdgeWave<pointEdgePoint> wallCalc
( (
pMesh, mesh,
wallPoints, wallPoints,
wallInfo, wallInfo,
@ -119,7 +117,7 @@ int main(int argc, char *argv[])
IOobject::NO_READ, IOobject::NO_READ,
IOobject::AUTO_WRITE IOobject::AUTO_WRITE
), ),
pMesh, pointMesh::New(mesh),
dimensionedScalar("wallDist", dimLength, 0.0) dimensionedScalar("wallDist", dimLength, 0.0)
); );

View File

@ -34,11 +34,10 @@ Application
int main(int argc, char *argv[]) int main(int argc, char *argv[])
{ {
#include "setRootCase.H"
# include "setRootCase.H" #include "createTime.H"
#include "createMesh.H"
# include "createTime.H"
# include "createMesh.H"
Info<< "Reading field p\n" << endl; Info<< "Reading field p\n" << endl;
volScalarField p volScalarField p
@ -70,12 +69,9 @@ int main(int argc, char *argv[])
mesh mesh
); );
# include "createPhi.H" #include "createPhi.H"
//Info<< transform(dimensionedTensor("I", dimless, 0.1*I), U) << endl; GeometricField<symmTensor, fvPatchField, volMesh> st
GeometricField<sphericalTensor, fvPatchField, volMesh> st
( (
IOobject IOobject
( (
@ -86,8 +82,8 @@ int main(int argc, char *argv[])
IOobject::NO_WRITE IOobject::NO_WRITE
), ),
mesh, mesh,
dimensioned<sphericalTensor>("st", dimless, sphericalTensor::I), dimensioned<symmTensor>("st", dimless, symmTensor::one),
zeroGradientFvPatchSphericalTensorField::typeName zeroGradientFvPatchSymmTensorField::typeName
); );
//Info<< fvc::div(st) << endl; //Info<< fvc::div(st) << endl;

View File

@ -105,7 +105,7 @@ template<class Key, class Hash>
void Foam::HashSet<Key, Hash>::operator&=(const HashSet<Key, Hash>& rhs) void Foam::HashSet<Key, Hash>::operator&=(const HashSet<Key, Hash>& rhs)
{ {
// Remove elements not also found in rhs // Remove elements not also found in rhs
for (iterator iter = this->cbegin(); iter != this->cend(); ++iter) for (iterator iter = this->begin(); iter != this->end(); ++iter)
{ {
if (!rhs.found(iter.key())) if (!rhs.found(iter.key()))
{ {
@ -145,8 +145,6 @@ void Foam::HashSet<Key, Hash>::operator-=(const HashSet<Key, Hash>& rhs)
} }
// * * * * * * * * * * * * * * * Friend Operators * * * * * * * * * * * * * //
/* * * * * * * * * * * * * * * * Global operators * * * * * * * * * * * * * */ /* * * * * * * * * * * * * * * * Global operators * * * * * * * * * * * * * */
template<class Key, class Hash> template<class Key, class Hash>

View File

@ -235,12 +235,12 @@ void Foam::Matrix<Form, Type>::operator=(const Matrix<Form, Type>& a)
template<class Form, class Type> template<class Form, class Type>
const Type& Foam::max(const Matrix<Form, Type>& a) const Type& Foam::max(const Matrix<Form, Type>& a)
{ {
label nm = a.n_*a.m_; label nm = a.n()*a.m();
if (nm) if (nm)
{ {
label curMaxI = 0; label curMaxI = 0;
const Type* v = a.v_[0]; const Type* v = a[0];
for (register label i=1; i<nm; i++) for (register label i=1; i<nm; i++)
{ {
@ -267,12 +267,12 @@ const Type& Foam::max(const Matrix<Form, Type>& a)
template<class Form, class Type> template<class Form, class Type>
const Type& Foam::min(const Matrix<Form, Type>& a) const Type& Foam::min(const Matrix<Form, Type>& a)
{ {
label nm = a.n_*a.m_; label nm = a.n()*a.m();
if (nm) if (nm)
{ {
label curMinI = 0; label curMinI = 0;
const Type* v = a.v_[0]; const Type* v = a[0];
for (register label i=1; i<nm; i++) for (register label i=1; i<nm; i++)
{ {
@ -301,14 +301,14 @@ const Type& Foam::min(const Matrix<Form, Type>& a)
template<class Form, class Type> template<class Form, class Type>
Form Foam::operator-(const Matrix<Form, Type>& a) Form Foam::operator-(const Matrix<Form, Type>& a)
{ {
Form na(a.n_, a.m_); Form na(a.n(), a.m());
if (a.n_ && a.m_) if (a.n() && a.m())
{ {
Type* nav = na.v_[0]; Type* nav = na[0];
const Type* av = a.v_[0]; const Type* av = a[0];
label nm = a.n_*a.m_; label nm = a.n()*a.m();
for (register label i=0; i<nm; i++) for (register label i=0; i<nm; i++)
{ {
nav[i] = -av[i]; nav[i] = -av[i];
@ -322,33 +322,33 @@ Form Foam::operator-(const Matrix<Form, Type>& a)
template<class Form, class Type> template<class Form, class Type>
Form Foam::operator+(const Matrix<Form, Type>& a, const Matrix<Form, Type>& b) Form Foam::operator+(const Matrix<Form, Type>& a, const Matrix<Form, Type>& b)
{ {
if (a.n_ != b.n_) if (a.n() != b.n())
{ {
FatalErrorIn FatalErrorIn
( (
"Matrix<Form, Type>::operator+(const Matrix<Form, Type>&, const Matrix<Form, Type>&)" "Matrix<Form, Type>::operator+(const Matrix<Form, Type>&, const Matrix<Form, Type>&)"
) << "attempted add matrices with different number of rows: " ) << "attempted add matrices with different number of rows: "
<< a.n_ << ", " << b.n_ << a.n() << ", " << b.n()
<< abort(FatalError); << abort(FatalError);
} }
if (a.m_ != b.m_) if (a.m() != b.m())
{ {
FatalErrorIn FatalErrorIn
( (
"Matrix<Form, Type>::operator+(const Matrix<Form, Type>&, const Matrix<Form, Type>&)" "Matrix<Form, Type>::operator+(const Matrix<Form, Type>&, const Matrix<Form, Type>&)"
) << "attempted add matrices with different number of columns: " ) << "attempted add matrices with different number of columns: "
<< a.m_ << ", " << b.m_ << a.m() << ", " << b.m()
<< abort(FatalError); << abort(FatalError);
} }
Form ab(a.n_, a.m_); Form ab(a.n(), a.m());
Type* abv = ab.v_[0]; Type* abv = ab[0];
const Type* av = a.v_[0]; const Type* av = a[0];
const Type* bv = b.v_[0]; const Type* bv = b[0];
label nm = a.n_*a.m_; label nm = a.n()*a.m();
for (register label i=0; i<nm; i++) for (register label i=0; i<nm; i++)
{ {
abv[i] = av[i] + bv[i]; abv[i] = av[i] + bv[i];
@ -361,33 +361,33 @@ Form Foam::operator+(const Matrix<Form, Type>& a, const Matrix<Form, Type>& b)
template<class Form, class Type> template<class Form, class Type>
Form Foam::operator-(const Matrix<Form, Type>& a, const Matrix<Form, Type>& b) Form Foam::operator-(const Matrix<Form, Type>& a, const Matrix<Form, Type>& b)
{ {
if (a.n_ != b.n_) if (a.n() != b.n())
{ {
FatalErrorIn FatalErrorIn
( (
"Matrix<Form, Type>::operator-(const Matrix<Form, Type>&, const Matrix<Form, Type>&)" "Matrix<Form, Type>::operator-(const Matrix<Form, Type>&, const Matrix<Form, Type>&)"
) << "attempted add matrices with different number of rows: " ) << "attempted add matrices with different number of rows: "
<< a.n_ << ", " << b.n_ << a.n() << ", " << b.n()
<< abort(FatalError); << abort(FatalError);
} }
if (a.m_ != b.m_) if (a.m() != b.m())
{ {
FatalErrorIn FatalErrorIn
( (
"Matrix<Form, Type>::operator-(const Matrix<Form, Type>&, const Matrix<Form, Type>&)" "Matrix<Form, Type>::operator-(const Matrix<Form, Type>&, const Matrix<Form, Type>&)"
) << "attempted add matrices with different number of columns: " ) << "attempted add matrices with different number of columns: "
<< a.m_ << ", " << b.m_ << a.m() << ", " << b.m()
<< abort(FatalError); << abort(FatalError);
} }
Form ab(a.n_, a.m_); Form ab(a.n(), a.m());
Type* abv = ab.v_[0]; Type* abv = ab[0];
const Type* av = a.v_[0]; const Type* av = a[0];
const Type* bv = b.v_[0]; const Type* bv = b[0];
label nm = a.n_*a.m_; label nm = a.n()*a.m();
for (register label i=0; i<nm; i++) for (register label i=0; i<nm; i++)
{ {
abv[i] = av[i] - bv[i]; abv[i] = av[i] - bv[i];
@ -400,14 +400,14 @@ Form Foam::operator-(const Matrix<Form, Type>& a, const Matrix<Form, Type>& b)
template<class Form, class Type> template<class Form, class Type>
Form Foam::operator*(const scalar s, const Matrix<Form, Type>& a) Form Foam::operator*(const scalar s, const Matrix<Form, Type>& a)
{ {
Form sa(a.n_, a.m_); Form sa(a.n(), a.m());
if (a.n_ && a.m_) if (a.n() && a.m())
{ {
Type* sav = sa.v_[0]; Type* sav = sa[0];
const Type* av = a.v_[0]; const Type* av = a[0];
label nm = a.n_*a.m_; label nm = a.n()*a.m();
for (register label i=0; i<nm; i++) for (register label i=0; i<nm; i++)
{ {
sav[i] = s*av[i]; sav[i] = s*av[i];

View File

@ -161,10 +161,10 @@ public:
// Member operators // Member operators
//- Return subscript-checked element of Matrix. //- Return subscript-checked row of Matrix.
inline Type* operator[](const label); inline Type* operator[](const label);
//- Return subscript-checked element of constant Matrix. //- Return subscript-checked row of constant Matrix.
inline const Type* operator[](const label) const; inline const Type* operator[](const label) const;
//- Assignment operator. Takes linear time. //- Assignment operator. Takes linear time.