Merge branch 'HrvojeJasak'

This commit is contained in:
Hrvoje Jasak 2010-11-18 19:32:08 +00:00
commit 4d500e1873
23 changed files with 299 additions and 239 deletions

View file

@ -1,111 +1,118 @@
The OpenFOAM-Extend Project
Web site: http://www.extend-project.de/
The goal of the OpenFOAM -Extend Project is to open the OpenFOAM CFD toolbox
to community contributed extensions in the spirit of the Open Source
development model.
Software under the name OpenFOAM has been developed by a large group of
volunteers starting in 1991 and has spread through scientific and engineering
community in the late 1990s and early 2000s. Its main strength was the spirit
of open collaboration in the community: the aim of the OpenFOAM-Extend Project
is to formalize this spirit.
* Trademark notice
Currently, the word "OpenFOAM" is held as a trademark by a commercial
company, not associated with the Open Source development effort of this
software. While the author acknowledges the existence of Trademark,
association of trademarked phrase with the the code developed by third
parties and including the author is misleading in terms of authorship,
ownership of intellectual property of the source code.
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
09/30/2004 01:45 PM
Dear Dr. Jasak,
I propose that we make FOAM open-source and shutdown Nabla, that way we
are free to pursue whatever future we wish independently.
Henry G. Weller
Managing Director
Nabla Ltd
The first release of the OpenFOAM source code of 10 December 2004
and subsequent clarification of 16 February 2005.
Hi Henry,
...
Regarding the new setup, I would like to thank you for your effort i
n making FOAM public domain, with crucial comments regarding some
important details.
- in the header files for the open version of foam there exists a line
which claims copyright for OpenCFD Ltd:
Copyright (C) 1991-2004 OpenCFD Ltd.
I am not sure whether it is possible to claim copyright over a GPL piece
of software, but this is at least misleading. In order for this
statement to be true, OpenCFD Ltd. would need to purchase the copyright
from Nabla Ltd. and from you and me personally (due to unresolved
ownership and the remaining payments Nabla Ltd. needs to make to us
regarding the original transfer of copyright). I can offer a number
of solutions acceptable to me as follows:
1) no Copyright statement apart from the required GPL statement
2) Copyright OpenFOAM.org
3) Copyright Henry Weller, Hrvoje Jasak et al
4) Copyright OpenCFD and Hrvoje Jasak
5) List of authors instead of the copyright statement
I am also prepared to consider any other reasonable ideas along the same
lines (including the sale of copyright, which would be a bit pointless
at this stage) - please advise.
02/17/2005 11:09 PM
Under the GPL there has to be an organization in place to enforce the GPL
if there are violation, these are part of the rules. OpenCFD undertakes
that responsibility hence the copyright.
Henry G. Weller
Managing Director
12 November 2010
From the above it is clear that OpenCFD does not own the rights or
authorship of the source code, which is currently concealed in public.
For further details, I have been attempting to get a formal response by
this company for 6 years now, without success. It is time to move on.
The current Copyright notice does not fairly describe the authorship of
the software. In the spirit of the open source development model, the
-Extend project wishes to formally acknowledge all contributors and
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,
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.
Hrvoje Jasak
This offering is not affiliated with OpenCFD Limited, owner of the OpenFOAM
trade mark.
Please find the official website of OpenCFD Limited at http://www.openfoam.org
In particular, OpenCFD Limited hosts the following legal statements:
- licensing and intellectual property: http://www.openfoam.com/legal/index.php
- trademark policy: http://www.openfoam.com/legal/trademark-policy.php
The OpenFOAM-Extend Project
Web site: http://www.extend-project.de/
The goal of the OpenFOAM -Extend Project is to open the OpenFOAM CFD toolbox
to community contributed extensions in the spirit of the Open Source
development model.
Software under the name OpenFOAM has been developed by a large group of
volunteers starting in 1991 and has spread through scientific and engineering
community in the late 1990s and early 2000s. Its main strength was the spirit
of open collaboration in the community: the aim of the OpenFOAM-Extend Project
is to formalize this spirit.
* Trademark notice
Currently, the word "OpenFOAM" is held as a trademark by a commercial
company, not associated with the Open Source development effort of this
software. While the author acknowledges the existence of Trademark,
association of trademarked phrase with the the code developed by third
parties and including the author is misleading in terms of authorship,
ownership of intellectual property of the source code.
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.
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
Dear Dr. Jasak,
I propose that we make FOAM open-source and shutdown Nabla, that way we
are free to pursue whatever future we wish independently.
Henry G. Weller
Managing Director
Nabla Ltd
The first release of the OpenFOAM source code of 10 December 2004
and subsequent clarification of 16 February 2005.
Hi Henry,
...
Regarding the new setup, I would like to thank you for your effort i
n making FOAM public domain, with crucial comments regarding some
important details.
- in the header files for the open version of foam there exists a line
which claims copyright for OpenCFD Ltd:
Copyright (C) 1991-2004 OpenCFD Ltd.
I am not sure whether it is possible to claim copyright over a GPL piece
of software, but this is at least misleading. In order for this
statement to be true, OpenCFD Ltd. would need to purchase the copyright
from Nabla Ltd. and from you and me personally (due to unresolved
ownership and the remaining payments Nabla Ltd. needs to make to us
regarding the original transfer of copyright). I can offer a number
of solutions acceptable to me as follows:
1) no Copyright statement apart from the required GPL statement
2) Copyright OpenFOAM.org
3) Copyright Henry Weller, Hrvoje Jasak et al
4) Copyright OpenCFD and Hrvoje Jasak
5) List of authors instead of the copyright statement
I am also prepared to consider any other reasonable ideas along the same
lines (including the sale of copyright, which would be a bit pointless
at this stage) - please advise.
02/17/2005 11:09 PM
Under the GPL there has to be an organization in place to enforce the GPL
if there are violation, these are part of the rules. OpenCFD undertakes
that responsibility hence the copyright.
Henry G. Weller
Managing Director
12 November 2010
From the above it is clear that OpenCFD does not own the rights or
authorship of the source code, which is currently concealed in public.
For further details, I have been attempting to get a formal response by
this company for 6 years now, without success. It is time to move on.
The current Copyright notice does not fairly describe the authorship of
the software. In the spirit of the open source development model, the
-Extend project wishes to formally acknowledge all contributors and
developers of OpenFOAM from its inception to today.
As this issue still remains unresolved, and the list of contributors
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.
Hrvoje Jasak
This offering is not affiliated with OpenCFD Limited, owner of the OpenFOAM
trade mark.
Please find the official website of OpenCFD Limited at http://www.openfoam.org
In particular, OpenCFD Limited hosts the following legal statements:
- licensing and intellectual property: http://www.openfoam.com/legal/index.php
- trademark policy: http://www.openfoam.com/legal/trademark-policy.php

51
README
View file

@ -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

View file

@ -1,83 +1,83 @@
# -*- mode: org; -*-
#
#+TITLE: *OpenFOAM release notes for version 1.6-ext*
#+AUTHOR: Hrvoje Jasak.
#+DATE: 12 November 2010
#+LINK: http://www.extend-project.de
#+OPTIONS: author:nil
* Overview
OpenFOAM-1.6-ext is a formal release of the community developments in the
OpenFOAM software library, following the establishment of the -Extend Project
and web portal.
This release includes an automatic test harness, which passes our standard
tests and tutorials.
* Compatibility
OpenFOAM-1.6-ext is compatible with the OpenFOAM-1.6.x and 1.7.1 versions
of the code and incorporate most developments and changes from above versions
and ensure top-level compatibility. In some cases, the differences are
caused by bug fixes and algorithmic improvements, considered more important
than inter-operability.
The list of developments is a result of the work of numerous contributors.
The Extend Project Admins would formally like to thank all contributors;
the list will be updated with further code development
* Fundamental developments
Improvements in accuracy and stability on tetrahedral and tet-dominant meshes
Implicit coupled multi-domain solver
Block-implicit multi-equation matrix support
Proper Orthogonal Decomposition (POD) data analyss tools
Rewrite of Ordinary Differential Equation (ODE) and ODE solver classes
Dynamic remeshing classes, based on tetrahedral edge swapping
Radial Basis Function interpolation and mesh motion classes
Turbomachinery features: GGI interface, cyclic GGI, partial overlap GGI
Parallelisation of topological change engine
Support for parallelisation and topological changes in the Finite Area Method
Library preparation for Python/Swig interface for OpenFOAM: VulaSHAKA project
(http://sourceforge.net/projects/vulashaka/)
Basic implementation of OpenMP wrapping for multi-core support
* Ongoing developments
This section lists the applications that existed in versions of OpenFOAM
but were abandoned by OpenCFD due to lack of expertise. In some cases, code
may still be present but it is buggy or unusable. The -Extend project line
maintains, validates and develops the features in contact with original
authors and contributes new features and bug fixes.
Working parallel point mesh and field tools, shared between interpolation
and FEM discretisation solvers
FEM-based automatic mesh motion solver, with working parallelisation
Dynamic mesh features and topological mesh changes
The Finite Area Method: parallelisation, volume-to-surface mapping
New generation of linear equation solvers, including accelerated AMG
* Developments to solvers (applications)
Basic 6-degree-of-freedom (6-DOF) solver
POD solver tools: prototype
Demonstration solver for fully implicit block-matrix coupling
* Developments to utilities
New parallel decomposition and reconstruction formulation, with support
for topologically changing meshes
Level-set support tools
* Model development
Transport models and top-level solver for visco-elasto-plastic flows
Updates to internal combustion engine simulation tools
Updated version of free surface tracking tools for free surface flows
Updated fluid-structure interaction solver with parallelisation support
Updated stress analysis tools, new large deformation solver formulation
* Validation
Integrated automatic and publicly available test harness with ~150 cases
http://openfoam-extend.sourceforge.net/CDash/index.php
Community-driven test-case base to enhance code quality and integrity.
Contributions under
http://www.extend-project.de/project-final/openfoam-extend-test-harness
* Other
The number of cumulative bug fixes compared to OpenFOAM-1.6.x is over
5000; we will stop counting.
# -*- mode: org; -*-
#
#+TITLE: *OpenFOAM release notes for version 1.6-ext*
#+AUTHOR: Hrvoje Jasak.
#+DATE: 12 November 2010
#+LINK: http://www.extend-project.de
#+OPTIONS: author:nil
* Overview
OpenFOAM-1.6-ext is a formal release of the community developments in the
OpenFOAM software library, following the establishment of the -Extend Project
and web portal.
This release includes an automatic test harness, which passes our standard
tests and tutorials.
* Compatibility
OpenFOAM-1.6-ext is compatible with the OpenFOAM-1.6.x and 1.7.1 versions
of the code and incorporate most developments and changes from above versions
and ensure top-level compatibility. In some cases, the differences are
caused by bug fixes and algorithmic improvements, considered more important
than inter-operability.
The list of developments is a result of the work of numerous contributors.
The Extend Project Admins would formally like to thank all contributors;
the list will be updated with further code development
* Fundamental developments
Improvements in accuracy and stability on tetrahedral and tet-dominant meshes
Implicit coupled multi-domain solver
Block-implicit multi-equation matrix support
Proper Orthogonal Decomposition (POD) data analyss tools
Rewrite of Ordinary Differential Equation (ODE) and ODE solver classes
Dynamic remeshing classes, based on tetrahedral edge swapping
Radial Basis Function interpolation and mesh motion classes
Turbomachinery features: GGI interface, cyclic GGI, partial overlap GGI
Parallelisation of topological change engine
Support for parallelisation and topological changes in the Finite Area Method
Library preparation for Python/Swig interface for OpenFOAM: VulaSHAKA project
(http://sourceforge.net/projects/vulashaka/)
Basic implementation of OpenMP wrapping for multi-core support
* Ongoing developments
This section lists the applications that existed in versions of OpenFOAM
but were abandoned by OpenCFD due to lack of expertise. In some cases, code
may still be present but it is buggy or unusable. The -Extend project line
maintains, validates and develops the features in contact with original
authors and contributes new features and bug fixes.
Working parallel point mesh and field tools, shared between interpolation
and FEM discretisation solvers
FEM-based automatic mesh motion solver, with working parallelisation
Dynamic mesh features and topological mesh changes
The Finite Area Method: parallelisation, volume-to-surface mapping
New generation of linear equation solvers, including accelerated AMG
* Developments to solvers (applications)
Basic 6-degree-of-freedom (6-DOF) solver
POD solver tools: prototype
Demonstration solver for fully implicit block-matrix coupling
* Developments to utilities
New parallel decomposition and reconstruction formulation, with support
for topologically changing meshes
Level-set support tools
* Model development
Transport models and top-level solver for visco-elasto-plastic flows
Updates to internal combustion engine simulation tools
Updated version of free surface tracking tools for free surface flows
Updated fluid-structure interaction solver with parallelisation support
Updated stress analysis tools, new large deformation solver formulation
* Validation
Integrated automatic and publicly available test harness with ~150 cases
http://openfoam-extend.sourceforge.net/CDash/index.php
Community-driven test-case base to enhance code quality and integrity.
Contributions under
http://www.extend-project.de/project-final/openfoam-extend-test-harness
* Other
The number of cumulative bug fixes compared to OpenFOAM-1.6.x is over
5000; we will stop counting.

View file

@ -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
;;

View file

@ -48,7 +48,7 @@ void reduce
{
Pstream::gather(comms, Value, bop);
Pstream::scatter(comms, Value);
}
}
// Reduce using either linear or tree communication schedule
@ -67,7 +67,7 @@ void reduce
{
reduce(Pstream::treeCommunication(), Value, bop);
}
}
}
// Reduce using either linear or tree communication schedule
@ -90,7 +90,7 @@ T returnReduce
}
return WorkValue;
}
}
// Insist there is a specialisation for the reduction of a scalar

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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
)
{}

View file

@ -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

View file

@ -186,7 +186,7 @@ public:
//- Evaluate the patch field
virtual void evaluate
(
const Pstream::commsTypes commsType=Pstream::blocking
const Pstream::commsTypes commsType = Pstream::blocking
)
{}

View file

@ -259,7 +259,7 @@ public:
//- Does the patch field perform the transfromation
virtual bool doTransform() const
{
return
return
!(
procPatch_.procPolyPatch().parallel()
|| pTraits<Type>::rank == 0
@ -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

View file

@ -152,7 +152,7 @@ public:
//- Update the patch field
virtual void evaluate
(
const Pstream::commsTypes commsType=Pstream::blocking
const Pstream::commsTypes commsType = Pstream::blocking
);
};

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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;

View file

@ -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();

View file

@ -120,7 +120,7 @@ void Foam::laplaceTetDecompositionMotionSolver::solve()
}
if(needTotDisplacement())
if (needTotDisplacement())
{
totDisplacement() += motionU()*tetMesh().time().deltaT();
}

View file

@ -57,7 +57,7 @@ public:
for
(
typename SLList<Type>::const_iterator myObjectsIter =
typename SLList<Type>::const_iterator myObjectsIter =
myObjects.begin();
myObjectsIter != myObjects.end();
++myObjectsIter
@ -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);

View file

@ -91,7 +91,10 @@ tetPolyBoundaryMeshFaceDecomp::globalPatch() const
{
if (isA<globalTetPolyPatchFaceDecomp>(patches[patchI]))
{
return refCast<const globalTetPolyPatchFaceDecomp>(patches[patchI]);
return refCast<const globalTetPolyPatchFaceDecomp>
(
patches[patchI]
);
}
}

View file

@ -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();
}