Merge branch 'HrvojeJasak'
This commit is contained in:
commit
4d500e1873
23 changed files with 299 additions and 239 deletions
|
@ -22,7 +22,14 @@ is to formalize this spirit.
|
|||
|
||||
In the absence of a legal resolution, we shall refer to the project as the
|
||||
-Extend project and software as "OpenFOAM", as per agreement between
|
||||
Prof. Hrvoje Jasak and Mr. Henry G. Weller of 30 September 2004
|
||||
Prof. Hrvoje Jasak and Mr. Henry G. Weller of 30 September 2004.
|
||||
|
||||
The excerpts below are from the correspondences of Dr.Jasak and are to
|
||||
his knowledge all the relevant writings about this topic. Although
|
||||
this topic has been discussed before in public forums there exists no
|
||||
'official' answer by OpenCFD on this issue. In the interest of
|
||||
fairness a reference (link) to such an answer will be added to this
|
||||
document as soon as we come aware of it.
|
||||
|
||||
09/30/2004 01:45 PM
|
||||
|
||||
|
@ -93,7 +100,7 @@ is to formalize this spirit.
|
|||
developers of OpenFOAM from its inception to today.
|
||||
|
||||
As this issue still remains unresolved, and the list of contributors
|
||||
has been illegally removed from the source code by Mr. Weller in 2006,
|
||||
has been removed from the OpenFOAM source code by Mr. Weller in 2006,
|
||||
we shall re-base OpenFOAM as an Open Source community-based project
|
||||
and associate the authorship and Copyright in each case with the
|
||||
original author.
|
||||
|
|
51
README
51
README
|
@ -169,23 +169,64 @@
|
|||
Hrvoje Jasak
|
||||
Mattijs Janssens
|
||||
Zeljko Tukovic
|
||||
Bernhard Gschaider
|
||||
Tommaso Lucchini
|
||||
Martin Beaudoin
|
||||
Sandeep Menon
|
||||
Niklas Nordin
|
||||
Martin Beaudoin
|
||||
Eugene De Villiers
|
||||
Henrik Rusche
|
||||
Bernhard Gschaider
|
||||
Ivor Clifford
|
||||
Oliver Borm
|
||||
Philiposse Rajan
|
||||
Chris Greenshields
|
||||
Mark Olesen
|
||||
Gavin Tabor
|
||||
Jovani Favero
|
||||
Frank Bos
|
||||
David Hill
|
||||
Niklas Wikstrom
|
||||
Dubravko Matijasevic
|
||||
Darrin Stephens
|
||||
Christian Beck
|
||||
Oliver Borm
|
||||
James Criner
|
||||
Hua Shan
|
||||
David Boner
|
||||
Pierre-Olivier Dallaire
|
||||
Norman Del Puppo
|
||||
Dennis Kingsley
|
||||
Frank Albina
|
||||
Flavio Galeazzo
|
||||
Hannes Kroger
|
||||
Olivier Petit
|
||||
David Schmidt
|
||||
Andreas Feymark
|
||||
Luca Mangani
|
||||
Daniel Schmode
|
||||
Christoph Goniva
|
||||
Takuya Oshima
|
||||
Juho Peltola
|
||||
Eric Paterson
|
||||
Fabian Peng Karrholm
|
||||
Aleksandar Karac
|
||||
Maria Garcia Camprubi
|
||||
Chris Greenshields
|
||||
Mark Olesen
|
||||
Hilary Spencer
|
||||
Andy Heather
|
||||
# -*- mode: org; -*-
|
||||
#
|
||||
#+TITLE: *OpenFOAM README for version 1.6-ext*
|
||||
#+AUTHOR: Hrvoje Jasak.
|
||||
#+DATE: 12 November 2010
|
||||
#+LINK: http://www.extend-project.de
|
||||
#+OPTIONS: author:nil
|
||||
|
||||
* Copyright
|
||||
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. See the file COPYING in this directory, for a description of
|
||||
the GNU General Public License terms under which you can copy the files.
|
||||
|
||||
* System requirements
|
||||
OpenFOAM is developed and tested on Linux and Mac OS X.
|
||||
E
|
|
@ -279,7 +279,7 @@ SunOS)
|
|||
cat <<USAGE
|
||||
|
||||
Your "$WM_ARCH" operating system is not supported by this release
|
||||
of OpenFOAM. For further assistance, please contact www.openfoam.org
|
||||
of OpenFOAM. For further assistance, please contact www.extend-project.de
|
||||
|
||||
USAGE
|
||||
;;
|
||||
|
|
|
@ -384,14 +384,14 @@ public:
|
|||
//- Initialise evaluation of the patch field (do nothing)
|
||||
virtual void initEvaluate
|
||||
(
|
||||
const Pstream::commsTypes commsType=Pstream::blocking
|
||||
const Pstream::commsTypes commsType = Pstream::blocking
|
||||
)
|
||||
{}
|
||||
|
||||
//- Evaluate the patch field
|
||||
virtual void evaluate
|
||||
(
|
||||
const Pstream::commsTypes commsType=Pstream::blocking
|
||||
const Pstream::commsTypes commsType = Pstream::blocking
|
||||
);
|
||||
|
||||
//- Update boundary value
|
||||
|
|
|
@ -147,7 +147,7 @@ public:
|
|||
//- Evaluate the patch field
|
||||
virtual void evaluate
|
||||
(
|
||||
const Pstream::commsTypes commsType=Pstream::blocking
|
||||
const Pstream::commsTypes commsType = Pstream::blocking
|
||||
) = 0;
|
||||
|
||||
//- Add field to internal field
|
||||
|
|
|
@ -208,7 +208,7 @@ FixedValuePointPatchField<PatchField, Mesh, PointPatch, MatrixType, Type>
|
|||
{
|
||||
Field<Type>::operator=(ptf);
|
||||
|
||||
// insert the result into the internal field
|
||||
// Insert the result into the internal field
|
||||
initEvaluate();
|
||||
}
|
||||
|
||||
|
@ -243,7 +243,8 @@ template
|
|||
template<class> class MatrixType,
|
||||
class Type
|
||||
>
|
||||
void FixedValuePointPatchField<PatchField, Mesh, PointPatch, MatrixType, Type>::
|
||||
void
|
||||
FixedValuePointPatchField<PatchField, Mesh, PointPatch, MatrixType, Type>::
|
||||
operator==
|
||||
(
|
||||
const Type& t
|
||||
|
|
|
@ -138,7 +138,7 @@ public:
|
|||
// there's nothing to do
|
||||
virtual void initEvaluate
|
||||
(
|
||||
const Pstream::commsTypes commsType=Pstream::blocking
|
||||
const Pstream::commsTypes commsType = Pstream::blocking
|
||||
)
|
||||
{
|
||||
ValuePointPatchField
|
||||
|
@ -148,7 +148,7 @@ public:
|
|||
|
||||
virtual void evaluate
|
||||
(
|
||||
const Pstream::commsTypes commsType=Pstream::blocking
|
||||
const Pstream::commsTypes commsType = Pstream::blocking
|
||||
)
|
||||
{}
|
||||
|
||||
|
|
|
@ -178,7 +178,7 @@ public:
|
|||
//- Evaluate the patch field
|
||||
virtual void evaluate
|
||||
(
|
||||
const Pstream::commsTypes commsType=Pstream::blocking
|
||||
const Pstream::commsTypes commsType = Pstream::blocking
|
||||
);
|
||||
|
||||
//- Update boundary value
|
||||
|
|
|
@ -186,7 +186,7 @@ public:
|
|||
//- Evaluate the patch field
|
||||
virtual void evaluate
|
||||
(
|
||||
const Pstream::commsTypes commsType=Pstream::blocking
|
||||
const Pstream::commsTypes commsType = Pstream::blocking
|
||||
)
|
||||
{}
|
||||
|
||||
|
|
|
@ -269,13 +269,13 @@ public:
|
|||
//- Initialise evaluation of the patch field
|
||||
virtual void initEvaluate
|
||||
(
|
||||
const Pstream::commsTypes commsType=Pstream::blocking
|
||||
const Pstream::commsTypes commsType = Pstream::blocking
|
||||
);
|
||||
|
||||
//- Evaluate the patch field
|
||||
virtual void evaluate
|
||||
(
|
||||
const Pstream::commsTypes commsType=Pstream::blocking
|
||||
const Pstream::commsTypes commsType = Pstream::blocking
|
||||
);
|
||||
|
||||
//- Init add field to internal field
|
||||
|
|
|
@ -152,7 +152,7 @@ public:
|
|||
//- Update the patch field
|
||||
virtual void evaluate
|
||||
(
|
||||
const Pstream::commsTypes commsType=Pstream::blocking
|
||||
const Pstream::commsTypes commsType = Pstream::blocking
|
||||
);
|
||||
};
|
||||
|
||||
|
|
|
@ -28,7 +28,7 @@ Class
|
|||
fixedValue/zeroGradient mix may be different for each direction.
|
||||
|
||||
I am still not sure how to do the fixedValue-fixedGradient
|
||||
combination.
|
||||
combination. HJ, date deleted
|
||||
|
||||
Description
|
||||
|
||||
|
|
|
@ -508,29 +508,33 @@ void GlobalPointPatchField
|
|||
// Create the global list and insert local values
|
||||
if (globalPointPatch_.globalPointSize() > 0)
|
||||
{
|
||||
Field<Type> gpf
|
||||
(
|
||||
globalPointPatch_.globalPointSize(),
|
||||
pTraits<Type>::zero
|
||||
);
|
||||
// Bug fix: use map-based communication. HJ, 18/Nov/2010
|
||||
|
||||
// Get addressing
|
||||
const labelList& sharedPointAddr =
|
||||
globalPointPatch_.sharedPointAddr();
|
||||
|
||||
// Get internal field data
|
||||
Field<Type> pField = this->patchInternalField();
|
||||
|
||||
// Pack data into a map
|
||||
Map<Type> dataMap;
|
||||
|
||||
forAll (sharedPointAddr, i)
|
||||
{
|
||||
gpf[sharedPointAddr[i]] = pField[i];
|
||||
dataMap.insert(sharedPointAddr[i], pField[i]);
|
||||
}
|
||||
|
||||
combineReduce(gpf, eqOp<Field<Type> >());
|
||||
// Communicate map
|
||||
Pstream::mapCombineGather(dataMap, eqOp<Type>());
|
||||
Pstream::mapCombineScatter(dataMap);
|
||||
|
||||
// Extract local data
|
||||
Field<Type> lpf(sharedPointAddr.size());
|
||||
|
||||
forAll (sharedPointAddr, i)
|
||||
{
|
||||
lpf[i] = gpf[sharedPointAddr[i]];
|
||||
lpf[i] = dataMap[sharedPointAddr[i]];
|
||||
}
|
||||
|
||||
// Get addressing and enforce values on all processors
|
||||
|
|
|
@ -185,7 +185,7 @@ public:
|
|||
//- Evaluate the patch field
|
||||
virtual void evaluate
|
||||
(
|
||||
const Pstream::commsTypes commsType=Pstream::blocking
|
||||
const Pstream::commsTypes commsType = Pstream::blocking
|
||||
);
|
||||
|
||||
//- Add field to internal field
|
||||
|
|
|
@ -216,7 +216,7 @@ public:
|
|||
// there's nothing to do
|
||||
virtual void initEvaluate
|
||||
(
|
||||
const Pstream::commsTypes commsType=Pstream::blocking
|
||||
const Pstream::commsTypes commsType = Pstream::blocking
|
||||
);
|
||||
|
||||
//- Write
|
||||
|
|
|
@ -660,7 +660,7 @@ Foam::pointField Foam::globalMeshData::geometricSharedPoints() const
|
|||
combineReduce(sharedPoints, plusEqOp<pointField>());
|
||||
|
||||
// Merge tolerance
|
||||
scalar tolDim = matchTol_ * bb_.mag();
|
||||
scalar tolDim = matchTol_*bb_.mag();
|
||||
|
||||
// And see how many are unique
|
||||
labelList pMap;
|
||||
|
|
|
@ -22,7 +22,7 @@ License
|
|||
along with OpenFOAM; if not, write to the Free Software Foundation,
|
||||
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
|
||||
\*----------------------------------------------------------------------------*/
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#include "syncTools.H"
|
||||
#include "polyMesh.H"
|
||||
|
@ -306,9 +306,9 @@ void Foam::syncTools::syncPointMap
|
|||
}
|
||||
}
|
||||
|
||||
//- Note: hasTransformation is only used for warning messages so
|
||||
// reduction not strictly nessecary.
|
||||
//reduce(hasTransformation, orOp<bool>());
|
||||
// Note: hasTransformation is only used for warning messages so
|
||||
// reduction not strictly nessecary.
|
||||
// reduce(hasTransformation, orOp<bool>());
|
||||
|
||||
// Synchronize multiple shared points.
|
||||
const globalMeshData& pd = mesh.globalData();
|
||||
|
|
|
@ -120,7 +120,7 @@ void Foam::laplaceTetDecompositionMotionSolver::solve()
|
|||
}
|
||||
|
||||
|
||||
if(needTotDisplacement())
|
||||
if (needTotDisplacement())
|
||||
{
|
||||
totDisplacement() += motionU()*tetMesh().time().deltaT();
|
||||
}
|
||||
|
|
|
@ -97,7 +97,7 @@ void Foam::tetPolyMeshFaceDecomp::addParallelPointPatch()
|
|||
// The processor point patch will be added if processor boundaries
|
||||
// exist in the case. If the mesh with processor boundaries is
|
||||
// not created during a parallel run (e.g. decomposePar), the
|
||||
// addressing will be dummy.
|
||||
// addressing will be dummy. HJ, date deleted
|
||||
|
||||
if (mesh_.globalData().parallel())
|
||||
{
|
||||
|
@ -360,7 +360,12 @@ void Foam::tetPolyMeshFaceDecomp::addParallelPointPatch()
|
|||
}
|
||||
|
||||
// Send the list to the first slave
|
||||
OPstream toFirstSlave(Pstream::blocking, Pstream::firstSlave());
|
||||
OPstream toFirstSlave
|
||||
(
|
||||
Pstream::blocking,
|
||||
Pstream::firstSlave()
|
||||
);
|
||||
|
||||
toFirstSlave << globalCutEdges;
|
||||
}
|
||||
else
|
||||
|
@ -440,7 +445,6 @@ void Foam::tetPolyMeshFaceDecomp::addParallelPointPatch()
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
// Add the processor point patch
|
||||
boundary_.setSize(boundary_.size() + 1);
|
||||
|
||||
|
|
|
@ -91,7 +91,10 @@ tetPolyBoundaryMeshFaceDecomp::globalPatch() const
|
|||
{
|
||||
if (isA<globalTetPolyPatchFaceDecomp>(patches[patchI]))
|
||||
{
|
||||
return refCast<const globalTetPolyPatchFaceDecomp>(patches[patchI]);
|
||||
return refCast<const globalTetPolyPatchFaceDecomp>
|
||||
(
|
||||
patches[patchI]
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -208,7 +208,7 @@ public:
|
|||
virtual const word& name() const
|
||||
{
|
||||
// There can only be a single patch of this type - therefore
|
||||
// its name is hard-coded.
|
||||
// its name is hard-coded. HJ, date deleted
|
||||
return type();
|
||||
}
|
||||
|
||||
|
|
Reference in a new issue