From fc54b9a40f91c9e6ddebff284df53b42f8a239a9 Mon Sep 17 00:00:00 2001 From: Henry Date: Fri, 6 Jun 2014 16:08:58 +0100 Subject: [PATCH 1/3] blockMesh: Reinstate B-Spline support --- src/mesh/blockMesh/Make/files | 1 + src/mesh/blockMesh/curvedEdges/BSplineEdge.C | 97 +++++++++++++++++ src/mesh/blockMesh/curvedEdges/BSplineEdge.H | 108 +++++++++++++++++++ 3 files changed, 206 insertions(+) create mode 100644 src/mesh/blockMesh/curvedEdges/BSplineEdge.C create mode 100644 src/mesh/blockMesh/curvedEdges/BSplineEdge.H diff --git a/src/mesh/blockMesh/Make/files b/src/mesh/blockMesh/Make/files index cda173e1..28410a11 100644 --- a/src/mesh/blockMesh/Make/files +++ b/src/mesh/blockMesh/Make/files @@ -7,6 +7,7 @@ curvedEdges/curvedEdge.C curvedEdges/lineEdge.C curvedEdges/polyLineEdge.C curvedEdges/lineDivide.C +curvedEdges/BSplineEdge.C curvedEdges/splineEdge.C blockDescriptor/blockDescriptor.C diff --git a/src/mesh/blockMesh/curvedEdges/BSplineEdge.C b/src/mesh/blockMesh/curvedEdges/BSplineEdge.C new file mode 100644 index 00000000..dca88f31 --- /dev/null +++ b/src/mesh/blockMesh/curvedEdges/BSplineEdge.C @@ -0,0 +1,97 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2014 OpenFOAM Foundation + \\/ 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 3 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, see . + +\*---------------------------------------------------------------------------*/ + +#include "BSplineEdge.H" +#include "addToRunTimeSelectionTable.H" + + +// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // + +namespace Foam +{ + defineTypeNameAndDebug(BSplineEdge, 0); + + addToRunTimeSelectionTable + ( + curvedEdge, + BSplineEdge, + Istream + ); +} + + +// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // + +Foam::BSplineEdge::BSplineEdge +( + const pointField& points, + const label start, + const label end, + const pointField& internalPoints +) +: + curvedEdge(points, start, end), + BSpline(appendEndPoints(points, start, end, internalPoints)) +{} + + +Foam::BSplineEdge::BSplineEdge(const pointField& points, Istream& is) +: + curvedEdge(points, is), + BSpline(appendEndPoints(points, start_, end_, pointField(is))) +{ + token t(is); + is.putBack(t); + + // discard unused start/end tangents + if (t == token::BEGIN_LIST) + { + vector tangent0Ignored(is); + vector tangent1Ignored(is); + } +} + + +// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // + +Foam::BSplineEdge::~BSplineEdge() +{} + + +// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // + +Foam::point Foam::BSplineEdge::position(const scalar mu) const +{ + return BSpline::position(mu); +} + + +Foam::scalar Foam::BSplineEdge::length() const +{ + return BSpline::length(); +} + + +// ************************************************************************* // diff --git a/src/mesh/blockMesh/curvedEdges/BSplineEdge.H b/src/mesh/blockMesh/curvedEdges/BSplineEdge.H new file mode 100644 index 00000000..bb1fc553 --- /dev/null +++ b/src/mesh/blockMesh/curvedEdges/BSplineEdge.H @@ -0,0 +1,108 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2014 OpenFOAM Foundation + \\/ 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 3 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, see . + +Class + Foam::BSplineEdge + +Description + A curvedEdge interface for B-splines. + +SourceFiles + BSplineEdge.C + +\*---------------------------------------------------------------------------*/ + +#ifndef BSplineEdge_H +#define BSplineEdge_H + +#include "curvedEdge.H" +#include "BSpline.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + +/*---------------------------------------------------------------------------*\ + Class BSplineEdge Declaration +\*---------------------------------------------------------------------------*/ + +class BSplineEdge +: + public curvedEdge, + public BSpline +{ + // Private Member Functions + + //- Disallow default bitwise copy construct + BSplineEdge(const BSplineEdge&); + + //- Disallow default bitwise assignment + void operator=(const BSplineEdge&); + + +public: + + //- Runtime type information + TypeName("BSpline"); + + + // Constructors + + //- Construct from components + BSplineEdge + ( + const pointField&, + const label start, + const label end, + const pointField& internalPoints + ); + + //- Construct from Istream, setting pointsList + BSplineEdge(const pointField&, Istream&); + + + //- Destructor + virtual ~BSplineEdge(); + + + // Member Functions + + //- Return the point position corresponding to the curve parameter + // 0 <= lambda <= 1 + virtual point position(const scalar) const; + + //- Return the length of the spline curve (not implemented) + virtual scalar length() const; +}; + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace Foam + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // From 3100d4fe7e0913ea93e00eecac919b2a13ea0f4e Mon Sep 17 00:00:00 2001 From: Henry Date: Sun, 8 Jun 2014 23:22:38 +0100 Subject: [PATCH 2/3] README: Corrected spelling --- README.html | 10 +++++----- README.org | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/README.html b/README.html index afcf0675..722830ec 100644 --- a/README.html +++ b/README.html @@ -26,10 +26,10 @@ .center {margin-left:auto; margin-right:auto; text-align:center;} p.verse { margin-left: 3% } pre { - border: 1pt solid #AEBDCC; - background-color: #F3F5F7; - padding: 5pt; - font-family: courier, monospace; + border: 1pt solid #AEBDCC; + background-color: #F3F5F7; + padding: 5pt; + font-family: courier, monospace; font-size: 90%; overflow:auto; } @@ -137,7 +137,7 @@ for the JavaScript code in this tag.

1 About OpenFOAM

-

OpenFOAM is a free, open source computational fluid dynamcis (CFD) software +

OpenFOAM is a free, open source computational fluid dynamics (CFD) software package released by the OpenFOAM Foundation. It has a large user base across most areas of engineering and science, from both commercial and academic organisations. OpenFOAM has an extensive range of features to solve anything diff --git a/README.org b/README.org index f363c019..3118d613 100644 --- a/README.org +++ b/README.org @@ -8,7 +8,7 @@ # Copyright (c) 2014 OpenFOAM Foundation. * About OpenFOAM - OpenFOAM is a free, open source computational fluid dynamcis (CFD) software + OpenFOAM is a free, open source computational fluid dynamics (CFD) software package released by the OpenFOAM Foundation. It has a large user base across most areas of engineering and science, from both commercial and academic organisations. OpenFOAM has an extensive range of features to solve anything From cdd3e495bb414ae99759edc8649dfed7dd6a36f5 Mon Sep 17 00:00:00 2001 From: sergio Date: Tue, 10 Jun 2014 10:14:53 +0100 Subject: [PATCH 3/3] BUG: Adding Qext to the correct position in the matrix http://www.openfoam.org/mantisbt/view.php?id=1309 --- .../radiationModel/viewFactor/viewFactor.C | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/thermophysicalModels/radiationModels/radiationModel/viewFactor/viewFactor.C b/src/thermophysicalModels/radiationModels/radiationModel/viewFactor/viewFactor.C index 5cfb6b11..c382f3ed 100644 --- a/src/thermophysicalModels/radiationModels/radiationModel/viewFactor/viewFactor.C +++ b/src/thermophysicalModels/radiationModels/radiationModel/viewFactor/viewFactor.C @@ -531,12 +531,12 @@ void Foam::radiation::viewFactor::calculate() if (i==j) { C[i][j] = invEj - (invEj - 1.0)*Fmatrix_()[i][j]; - q[i] += (Fmatrix_()[i][j] - 1.0)*sigmaT4; + q[i] += (Fmatrix_()[i][j] - 1.0)*sigmaT4 - QrExt[j]; } else { C[i][j] = (1.0 - invEj)*Fmatrix_()[i][j]; - q[i] += Fmatrix_()[i][j]*sigmaT4 - QrExt[j]; + q[i] += Fmatrix_()[i][j]*sigmaT4; } } @@ -580,11 +580,11 @@ void Foam::radiation::viewFactor::calculate() if (i==j) { - q[i] += (Fmatrix_()[i][j] - 1.0)*sigmaT4; + q[i] += (Fmatrix_()[i][j] - 1.0)*sigmaT4 - QrExt[j]; } else { - q[i] += Fmatrix_()[i][j]*sigmaT4 - QrExt[j]; + q[i] += Fmatrix_()[i][j]*sigmaT4; } } }