mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
Revert "src/postProcessing/functionObjects/field/Make/files: Corrected"
This reverts commit 3cfc54ba09.
This commit is contained in:
@ -2,7 +2,7 @@
|
|||||||
========= |
|
========= |
|
||||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
\\ / O peration |
|
\\ / O peration |
|
||||||
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
|
\\ / A nd | Copyright (C) 2011 OpenFOAM Foundation
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
@ -30,6 +30,7 @@ InClass
|
|||||||
#define vtkOpenFOAMTupleRemap_H
|
#define vtkOpenFOAMTupleRemap_H
|
||||||
|
|
||||||
// OpenFOAM includes
|
// OpenFOAM includes
|
||||||
|
#include "StaticAssert.H"
|
||||||
#include "Swap.H"
|
#include "Swap.H"
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
@ -38,6 +39,17 @@ template<class Type>
|
|||||||
inline void vtkOpenFOAMTupleRemap(float vec[]);
|
inline void vtkOpenFOAMTupleRemap(float vec[]);
|
||||||
|
|
||||||
|
|
||||||
|
// a symmTensor specialization to remap OpenFOAM -> ParaView naming order
|
||||||
|
// Qt/Core/pqScalarBarRepresentation.cxx defines this order
|
||||||
|
// { "XX", "YY", "ZZ", "XY", "YZ", "XZ" }
|
||||||
|
// in pqScalarBarRepresentation::getDefaultComponentLabel()
|
||||||
|
// whereas OpenFOAM uses this order
|
||||||
|
// { XX, XY, XZ, YY, YZ, ZZ }
|
||||||
|
//
|
||||||
|
// for extra safety, assert that symmTensor indeed has 6 components
|
||||||
|
StaticAssert(Foam::symmTensor::nComponents == 6);
|
||||||
|
|
||||||
|
|
||||||
// Template specialization for symmTensor
|
// Template specialization for symmTensor
|
||||||
template<>
|
template<>
|
||||||
inline void vtkOpenFOAMTupleRemap<Foam::symmTensor>(float vec[])
|
inline void vtkOpenFOAMTupleRemap<Foam::symmTensor>(float vec[])
|
||||||
|
|||||||
@ -30,6 +30,7 @@ InClass
|
|||||||
#define vtkOpenFOAMTupleRemap_H
|
#define vtkOpenFOAMTupleRemap_H
|
||||||
|
|
||||||
// OpenFOAM includes
|
// OpenFOAM includes
|
||||||
|
#include "StaticAssert.H"
|
||||||
#include "Swap.H"
|
#include "Swap.H"
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
@ -38,6 +39,17 @@ template<class Type>
|
|||||||
inline void vtkOpenFOAMTupleRemap(float vec[]);
|
inline void vtkOpenFOAMTupleRemap(float vec[]);
|
||||||
|
|
||||||
|
|
||||||
|
// a symmTensor specialization to remap OpenFOAM -> ParaView naming order
|
||||||
|
// Qt/Core/pqScalarBarRepresentation.cxx defines this order
|
||||||
|
// { "XX", "YY", "ZZ", "XY", "YZ", "XZ" }
|
||||||
|
// in pqScalarBarRepresentation::getDefaultComponentLabel()
|
||||||
|
// whereas OpenFOAM uses this order
|
||||||
|
// { XX, XY, XZ, YY, YZ, ZZ }
|
||||||
|
//
|
||||||
|
// for extra safety, assert that symmTensor indeed has 6 components
|
||||||
|
StaticAssert(Foam::symmTensor::nComponents == 6);
|
||||||
|
|
||||||
|
|
||||||
// Template specialization for symmTensor
|
// Template specialization for symmTensor
|
||||||
template<>
|
template<>
|
||||||
inline void vtkOpenFOAMTupleRemap<Foam::symmTensor>(float vec[])
|
inline void vtkOpenFOAMTupleRemap<Foam::symmTensor>(float vec[])
|
||||||
|
|||||||
@ -44,7 +44,7 @@ SourceFiles
|
|||||||
#define DynamicList_H
|
#define DynamicList_H
|
||||||
|
|
||||||
#include "List.H"
|
#include "List.H"
|
||||||
#include <type_traits>
|
#include "StaticAssert.H"
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
@ -79,11 +79,8 @@ class DynamicList
|
|||||||
:
|
:
|
||||||
public List<T>
|
public List<T>
|
||||||
{
|
{
|
||||||
static_assert
|
//- Avoid invalid sizing parameters
|
||||||
(
|
StaticAssert((SizeInc || SizeMult) && SizeDiv);
|
||||||
(SizeInc || SizeMult) && SizeDiv,
|
|
||||||
"Invalid sizing parameters"
|
|
||||||
);
|
|
||||||
|
|
||||||
// Private data
|
// Private data
|
||||||
|
|
||||||
|
|||||||
@ -42,7 +42,7 @@ SourceFiles
|
|||||||
#include "uLabel.H"
|
#include "uLabel.H"
|
||||||
#include "Hash.H"
|
#include "Hash.H"
|
||||||
#include "autoPtr.H"
|
#include "autoPtr.H"
|
||||||
#include <type_traits>
|
#include "StaticAssert.H"
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
@ -70,11 +70,8 @@ template<class T> class SLList;
|
|||||||
template<class T, unsigned Size>
|
template<class T, unsigned Size>
|
||||||
class FixedList
|
class FixedList
|
||||||
{
|
{
|
||||||
static_assert
|
//- Size must be positive (non-zero) and also fit as a signed value
|
||||||
(
|
StaticAssert(Size && Size <= INT_MAX);
|
||||||
Size && Size <= INT_MAX,
|
|
||||||
"Size must be positive (non-zero) and also fit as a signed value"
|
|
||||||
);
|
|
||||||
|
|
||||||
// Private data
|
// Private data
|
||||||
|
|
||||||
|
|||||||
@ -103,7 +103,7 @@ SourceFiles
|
|||||||
|
|
||||||
#include "labelList.H"
|
#include "labelList.H"
|
||||||
#include "UIndirectList.H"
|
#include "UIndirectList.H"
|
||||||
#include <type_traits>
|
#include "StaticAssert.H"
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
@ -174,11 +174,7 @@ private:
|
|||||||
// it is more efficient to use a normal list.
|
// it is more efficient to use a normal list.
|
||||||
// Thus max nBits is 1/2 of the base storage size.
|
// Thus max nBits is 1/2 of the base storage size.
|
||||||
// For simplicity, assume 8-bit bytes in the assert.
|
// For simplicity, assume 8-bit bytes in the assert.
|
||||||
static_assert
|
StaticAssert(nBits && nBits <= (sizeof(StorageType) << 2));
|
||||||
(
|
|
||||||
nBits && nBits <= (sizeof(StorageType) << 2),
|
|
||||||
"nBits must be positive (non-zero) and fit within the storage"
|
|
||||||
);
|
|
||||||
|
|
||||||
// Private data
|
// Private data
|
||||||
|
|
||||||
|
|||||||
@ -36,9 +36,9 @@ SourceFiles
|
|||||||
#define NamedEnum_H
|
#define NamedEnum_H
|
||||||
|
|
||||||
#include "HashTable.H"
|
#include "HashTable.H"
|
||||||
|
#include "StaticAssert.H"
|
||||||
#include "stringList.H"
|
#include "stringList.H"
|
||||||
#include "wordList.H"
|
#include "wordList.H"
|
||||||
#include <type_traits>
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
@ -55,7 +55,7 @@ class NamedEnum
|
|||||||
public HashTable<int>
|
public HashTable<int>
|
||||||
{
|
{
|
||||||
//- nEnum must be positive (non-zero)
|
//- nEnum must be positive (non-zero)
|
||||||
static_assert(nEnum > 0, "nEnum must be positive (non-zero)");
|
StaticAssert(nEnum > 0);
|
||||||
|
|
||||||
// Private Member Functions
|
// Private Member Functions
|
||||||
|
|
||||||
|
|||||||
87
src/OpenFOAM/db/error/StaticAssert.H
Normal file
87
src/OpenFOAM/db/error/StaticAssert.H
Normal file
@ -0,0 +1,87 @@
|
|||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
========= |
|
||||||
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
|
\\ / O peration |
|
||||||
|
\\ / A nd | Copyright (C) 2011-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/>.
|
||||||
|
|
||||||
|
Class
|
||||||
|
Foam::StaticAssertionFailed
|
||||||
|
|
||||||
|
Description
|
||||||
|
Macros and classes to provide static (compile-time) assertions.
|
||||||
|
|
||||||
|
Ideas from various sources
|
||||||
|
(http://www.ddj.com/cpp/184401547, http://www.boost.org)
|
||||||
|
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
#ifndef StaticAssert_H
|
||||||
|
#define StaticAssert_H
|
||||||
|
|
||||||
|
namespace Foam
|
||||||
|
{
|
||||||
|
|
||||||
|
//- Forward declaration of StaticAssertionFailed.
|
||||||
|
// Leave as an incomplete class so that sizeof(..) fails
|
||||||
|
template<bool Truth> class StaticAssertionFailed;
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
Class StaticAssertionFailed Declaration
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
//- Specialization for successful assertions
|
||||||
|
template<>
|
||||||
|
class StaticAssertionFailed<true>
|
||||||
|
{};
|
||||||
|
|
||||||
|
|
||||||
|
//- Helper class for handling static assertions
|
||||||
|
template<unsigned Test>
|
||||||
|
class StaticAssertionTest {};
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
} // End namespace Foam
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
// Paste together strings, even if an argument is itself a macro
|
||||||
|
#define StaticAssertMacro(X,Y) StaticAssertMacro1(X,Y)
|
||||||
|
#define StaticAssertMacro1(X,Y) StaticAssertMacro2(X,Y)
|
||||||
|
#define StaticAssertMacro2(X,Y) X##Y
|
||||||
|
|
||||||
|
#ifdef __GNUC__
|
||||||
|
#define StaticAssertUnusedTypedef __attribute__((unused))
|
||||||
|
#else
|
||||||
|
#define StaticAssertUnusedTypedef
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//- Assert that some test is true at compile-time
|
||||||
|
#define StaticAssert(Test) \
|
||||||
|
typedef ::Foam::StaticAssertionTest \
|
||||||
|
< \
|
||||||
|
sizeof( ::Foam::StaticAssertionFailed<((Test) ? true : false)>) \
|
||||||
|
> StaticAssertMacro(StaticAssertionTest, __LINE__) StaticAssertUnusedTypedef
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -37,7 +37,7 @@ SourceFiles
|
|||||||
#define DynamicField_H
|
#define DynamicField_H
|
||||||
|
|
||||||
#include "Field.H"
|
#include "Field.H"
|
||||||
#include <type_traits>
|
#include "StaticAssert.H"
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
@ -73,11 +73,8 @@ class DynamicField
|
|||||||
:
|
:
|
||||||
public Field<T>
|
public Field<T>
|
||||||
{
|
{
|
||||||
static_assert
|
//- Avoid invalid sizing parameters
|
||||||
(
|
StaticAssert((SizeInc || SizeMult) && SizeDiv);
|
||||||
(SizeInc || SizeMult) && SizeDiv,
|
|
||||||
"Avoid invalid sizing parameters"
|
|
||||||
);
|
|
||||||
|
|
||||||
// Private data
|
// Private data
|
||||||
|
|
||||||
|
|||||||
@ -23,7 +23,7 @@ License
|
|||||||
|
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
#include <type_traits>
|
#include "StaticAssert.H"
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
@ -90,16 +90,8 @@ ConstBlock(const msType& matrix)
|
|||||||
:
|
:
|
||||||
matrix_(matrix)
|
matrix_(matrix)
|
||||||
{
|
{
|
||||||
static_assert
|
StaticAssert(msType::mRows >= BRowStart + mRows);
|
||||||
(
|
StaticAssert(msType::nCols >= BColStart + nCols);
|
||||||
msType::mRows >= BRowStart + mRows,
|
|
||||||
"Rows in block > rows in matrix"
|
|
||||||
);
|
|
||||||
static_assert
|
|
||||||
(
|
|
||||||
msType::nCols >= BColStart + nCols,
|
|
||||||
"Columns in block > columns in matrix"
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -111,16 +103,8 @@ Block(msType& matrix)
|
|||||||
:
|
:
|
||||||
matrix_(matrix)
|
matrix_(matrix)
|
||||||
{
|
{
|
||||||
static_assert
|
StaticAssert(msType::mRows >= BRowStart + mRows);
|
||||||
(
|
StaticAssert(msType::nCols >= BColStart + nCols);
|
||||||
msType::mRows >= BRowStart + mRows,
|
|
||||||
"Rows in block > rows in matrix"
|
|
||||||
);
|
|
||||||
static_assert
|
|
||||||
(
|
|
||||||
msType::nCols >= BColStart + nCols,
|
|
||||||
"Columns in block > columns in matrix"
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -130,7 +114,7 @@ template<class Form, class Cmpt, Foam::direction Mrows, Foam::direction Ncols>
|
|||||||
template<Foam::direction Row, Foam::direction Col>
|
template<Foam::direction Row, Foam::direction Col>
|
||||||
inline const Cmpt& Foam::MatrixSpace<Form, Cmpt, Mrows, Ncols>::elmt() const
|
inline const Cmpt& Foam::MatrixSpace<Form, Cmpt, Mrows, Ncols>::elmt() const
|
||||||
{
|
{
|
||||||
static_assert(Row < Mrows && Col < Ncols, "Address outside matrix");
|
StaticAssert(Row < Mrows && Col < Ncols);
|
||||||
return this->v_[Row*Ncols + Col];
|
return this->v_[Row*Ncols + Col];
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -139,7 +123,7 @@ template<class Form, class Cmpt, Foam::direction Mrows, Foam::direction Ncols>
|
|||||||
template<Foam::direction Row, Foam::direction Col>
|
template<Foam::direction Row, Foam::direction Col>
|
||||||
inline Cmpt& Foam::MatrixSpace<Form, Cmpt, Mrows, Ncols>::elmt()
|
inline Cmpt& Foam::MatrixSpace<Form, Cmpt, Mrows, Ncols>::elmt()
|
||||||
{
|
{
|
||||||
static_assert(Row < Mrows && Col < Ncols, "Address outside matrix");
|
StaticAssert(Row < Mrows && Col < Ncols);
|
||||||
return this->v_[Row*Ncols + Col];
|
return this->v_[Row*Ncols + Col];
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -272,7 +256,7 @@ template<class Form, class Cmpt, Foam::direction Mrows, Foam::direction Ncols>
|
|||||||
inline Foam::MatrixSpace<Form, Cmpt, Mrows, Ncols>
|
inline Foam::MatrixSpace<Form, Cmpt, Mrows, Ncols>
|
||||||
Foam::MatrixSpace<Form, Cmpt, Mrows, Ncols>::identity()
|
Foam::MatrixSpace<Form, Cmpt, Mrows, Ncols>::identity()
|
||||||
{
|
{
|
||||||
static_assert(Mrows == Ncols, "Matrix is not square");
|
StaticAssert(Mrows == Ncols);
|
||||||
msType result(Zero);
|
msType result(Zero);
|
||||||
|
|
||||||
for (direction i=0; i<Ncols; ++i)
|
for (direction i=0; i<Ncols; ++i)
|
||||||
@ -515,7 +499,7 @@ operator=
|
|||||||
const VectorSpace<VSForm, Cmpt, SubTensor::mRows>& v
|
const VectorSpace<VSForm, Cmpt, SubTensor::mRows>& v
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
static_assert(nCols == 1, "Matrix must have a single column");
|
StaticAssert(nCols == 1);
|
||||||
|
|
||||||
for (direction i=0; i<SubTensor::mRows; ++i)
|
for (direction i=0; i<SubTensor::mRows; ++i)
|
||||||
{
|
{
|
||||||
@ -576,11 +560,7 @@ inline typename typeOfInnerProduct<Cmpt, Form1, Form2>::type operator&
|
|||||||
const MatrixSpace<Form2, Cmpt, Mrows2, Ncols2>& matrix2
|
const MatrixSpace<Form2, Cmpt, Mrows2, Ncols2>& matrix2
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
static_assert
|
StaticAssert(Ncols1 == Mrows2);
|
||||||
(
|
|
||||||
Ncols1 == Mrows2,
|
|
||||||
"Number of columns in matrix 1 != number of rows in matrix 2"
|
|
||||||
);
|
|
||||||
|
|
||||||
typename typeOfInnerProduct<Cmpt, Form1, Form2>::type result(Zero);
|
typename typeOfInnerProduct<Cmpt, Form1, Form2>::type result(Zero);
|
||||||
|
|
||||||
|
|||||||
@ -27,7 +27,7 @@ License
|
|||||||
#include "products.H"
|
#include "products.H"
|
||||||
#include "VectorSpaceOps.H"
|
#include "VectorSpaceOps.H"
|
||||||
#include "ops.H"
|
#include "ops.H"
|
||||||
#include <type_traits>
|
#include "StaticAssert.H"
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
@ -79,11 +79,7 @@ VectorSpace<Form, Cmpt, Ncmpts>::ConstBlock<SubVector, BStart>::ConstBlock
|
|||||||
:
|
:
|
||||||
vs_(vs)
|
vs_(vs)
|
||||||
{
|
{
|
||||||
static_assert
|
StaticAssert(vsType::nComponents >= BStart + nComponents);
|
||||||
(
|
|
||||||
vsType::nComponents >= BStart + nComponents,
|
|
||||||
"Requested block size > VectorSpace size"
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -52,7 +52,7 @@ SourceFiles
|
|||||||
#include "scalar.H"
|
#include "scalar.H"
|
||||||
#include "Ostream.H"
|
#include "Ostream.H"
|
||||||
#include "VectorSpace.H"
|
#include "VectorSpace.H"
|
||||||
#include <type_traits>
|
#include "StaticAssert.H"
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
@ -81,7 +81,8 @@ class Polynomial
|
|||||||
:
|
:
|
||||||
public VectorSpace<Polynomial<PolySize>, scalar, PolySize>
|
public VectorSpace<Polynomial<PolySize>, scalar, PolySize>
|
||||||
{
|
{
|
||||||
static_assert(PolySize > 0, "Size must be positive (non-zero)");
|
//- Size must be positive (non-zero)
|
||||||
|
StaticAssert(PolySize > 0);
|
||||||
|
|
||||||
// Private data
|
// Private data
|
||||||
|
|
||||||
|
|||||||
@ -46,4 +46,7 @@ surfaceInterpolateFields/surfaceInterpolateFieldsFunctionObject.C
|
|||||||
regionSizeDistribution/regionSizeDistribution.C
|
regionSizeDistribution/regionSizeDistribution.C
|
||||||
regionSizeDistribution/regionSizeDistributionFunctionObject.C
|
regionSizeDistribution/regionSizeDistributionFunctionObject.C
|
||||||
|
|
||||||
|
histogram/histogram.C
|
||||||
|
histogram/histogramFunctionObject.C
|
||||||
|
|
||||||
LIB = $(FOAM_LIBBIN)/libfieldFunctionObjects
|
LIB = $(FOAM_LIBBIN)/libfieldFunctionObjects
|
||||||
|
|||||||
Reference in New Issue
Block a user