View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0002143 | OpenFOAM | Patch | public | 2016-07-08 11:06 | 2016-07-08 11:56 |
Reporter | MattijsJ | Assigned To | henry | ||
Priority | normal | Severity | minor | Reproducibility | always |
Status | resolved | Resolution | fixed | ||
Platform | GNU/Linux | OS | OpenSuSE | OS Version | 13.2 |
Product Version | dev | ||||
Fixed in Version | dev | ||||
Summary | 0002143: fvc::cellReduce initialises to zero | ||||
Description | fvc::cellReduce initialises field to zero so cannot be used for fields straddling zero. | ||||
Tags | No tags attached. | ||||
|
fvcCellReduce.H (2,704 bytes)
/*---------------------------------------------------------------------------*\ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | \\ / A nd | Copyright (C) 2013-2016 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 <http://www.gnu.org/licenses/>. InNamespace Foam::fvc Description Construct a volume field from a surface field using a combine operator. SourceFiles fvcCellReduce.C \*---------------------------------------------------------------------------*/ #ifndef fvcCellReduce_H #define fvcCellReduce_H #include "volFieldsFwd.H" #include "surfaceFieldsFwd.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // namespace Foam { /*---------------------------------------------------------------------------*\ Namespace fvc functions Declaration \*---------------------------------------------------------------------------*/ namespace fvc { template<class Type, class CombineOp> tmp<GeometricField<Type, fvPatchField, volMesh>> cellReduce ( const GeometricField<Type, fvsPatchField, surfaceMesh>&, const CombineOp& cop, const Type& nullValue = pTraits<Type>::zero ); template<class Type, class CombineOp> tmp<GeometricField<Type, fvPatchField, volMesh>> cellReduce ( const tmp<GeometricField<Type, fvsPatchField, surfaceMesh>>&, const CombineOp& cop, const Type& nullValue = pTraits<Type>::zero ); } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // } // End namespace Foam // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // #ifdef NoRepository #include "fvcCellReduce.C" #endif // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // #endif // ************************************************************************* // |
|
fvcCellReduce.C (3,161 bytes)
/*---------------------------------------------------------------------------*\ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | \\ / A nd | Copyright (C) 2013-2016 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 <http://www.gnu.org/licenses/>. \*---------------------------------------------------------------------------*/ #include "fvcCellReduce.H" #include "fvMesh.H" #include "volFields.H" #include "surfaceFields.H" #include "extrapolatedCalculatedFvPatchFields.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // template<class Type, class CombineOp> Foam::tmp<Foam::GeometricField<Type, Foam::fvPatchField, Foam::volMesh>> Foam::fvc::cellReduce ( const GeometricField<Type, fvsPatchField, surfaceMesh>& ssf, const CombineOp& cop, const Type& nullValue ) { typedef GeometricField<Type, fvPatchField, volMesh> volFieldType; const fvMesh& mesh = ssf.mesh(); tmp<volFieldType> tresult ( new volFieldType ( IOobject ( "cellReduce(" + ssf.name() + ')', ssf.instance(), mesh, IOobject::NO_READ, IOobject::NO_WRITE ), mesh, dimensioned<Type>("initialValue", ssf.dimensions(), nullValue), extrapolatedCalculatedFvPatchField<Type>::typeName ) ); volFieldType& result = tresult.ref(); const labelUList& own = mesh.owner(); const labelUList& nbr = mesh.neighbour(); forAll(own, i) { label celli = own[i]; cop(result[celli], ssf[i]); } forAll(nbr, i) { label celli = nbr[i]; cop(result[celli], ssf[i]); } result.correctBoundaryConditions(); return tresult; } template<class Type, class CombineOp> Foam::tmp<Foam::GeometricField<Type, Foam::fvPatchField, Foam::volMesh>> Foam::fvc::cellReduce ( const tmp<GeometricField<Type, fvsPatchField, surfaceMesh>>& tssf, const CombineOp& cop, const Type& nullValue ) { tmp<GeometricField<Type, fvPatchField, volMesh>> tvf ( cellReduce ( tssf, cop, nullValue ) ); tssf.clear(); return tvf; } // ************************************************************************* // |
|
Resolved by commit f7b851b35f6723b75643e826c8e780c46ea973a0 |
Date Modified | Username | Field | Change |
---|---|---|---|
2016-07-08 11:06 | MattijsJ | New Issue | |
2016-07-08 11:06 | MattijsJ | File Added: fvcCellReduce.H | |
2016-07-08 11:06 | MattijsJ | File Added: fvcCellReduce.C | |
2016-07-08 11:55 | henry | Note Added: 0006508 | |
2016-07-08 11:55 | henry | Status | new => resolved |
2016-07-08 11:55 | henry | Fixed in Version | => dev |
2016-07-08 11:55 | henry | Resolution | open => fixed |
2016-07-08 11:55 | henry | Assigned To | => henry |