mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
ENH: support an 'arg()' pseudo-function for fv-based expressions
This commit is contained in:
@ -6,7 +6,7 @@
|
|||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
Copyright (C) 2010-2018 Bernhard Gschaider <bgschaid@hfd-research.com>
|
Copyright (C) 2010-2018 Bernhard Gschaider <bgschaid@hfd-research.com>
|
||||||
Copyright (C) 2019 OpenCFD Ltd.
|
Copyright (C) 2019-2020 OpenCFD Ltd.
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
This file is part of OpenFOAM.
|
This file is part of OpenFOAM.
|
||||||
@ -92,6 +92,7 @@ Foam::expressions::exprDriver::exprDriver
|
|||||||
result_(),
|
result_(),
|
||||||
variableStrings_(),
|
variableStrings_(),
|
||||||
variables_(),
|
variables_(),
|
||||||
|
arg1Value_(0),
|
||||||
stashedTokenId_(0),
|
stashedTokenId_(0),
|
||||||
|
|
||||||
// Controls
|
// Controls
|
||||||
@ -120,6 +121,7 @@ Foam::expressions::exprDriver::exprDriver
|
|||||||
result_(rhs.result_),
|
result_(rhs.result_),
|
||||||
variableStrings_(rhs.variableStrings_),
|
variableStrings_(rhs.variableStrings_),
|
||||||
variables_(rhs.variables_),
|
variables_(rhs.variables_),
|
||||||
|
arg1Value_(rhs.arg1Value_),
|
||||||
stashedTokenId_(0),
|
stashedTokenId_(0),
|
||||||
|
|
||||||
debugScanner_(rhs.debugScanner_),
|
debugScanner_(rhs.debugScanner_),
|
||||||
@ -194,6 +196,18 @@ void Foam::expressions::exprDriver::clearVariables()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void Foam::expressions::exprDriver::setArgument(scalar val)
|
||||||
|
{
|
||||||
|
arg1Value_ = val;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Foam::scalar Foam::expressions::exprDriver::argValue() const
|
||||||
|
{
|
||||||
|
return arg1Value_;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void Foam::expressions::exprDriver::evaluateVariable
|
void Foam::expressions::exprDriver::evaluateVariable
|
||||||
(
|
(
|
||||||
const word& varName,
|
const word& varName,
|
||||||
|
|||||||
@ -5,7 +5,7 @@
|
|||||||
\\ / A nd | www.openfoam.com
|
\\ / A nd | www.openfoam.com
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
Original code Copyright (C) 2010-2018 Bernhard Gschaider
|
Copyright (C) 2010-2018 Bernhard Gschaider
|
||||||
Copyright (C) 2019 OpenCFD Ltd.
|
Copyright (C) 2019 OpenCFD Ltd.
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
@ -79,7 +79,7 @@ class exprDriver
|
|||||||
{
|
{
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
// Private Data
|
// Protected Data
|
||||||
|
|
||||||
// Stored Data
|
// Stored Data
|
||||||
|
|
||||||
@ -95,6 +95,9 @@ protected:
|
|||||||
//- The variables table
|
//- The variables table
|
||||||
HashTable<exprResult> variables_;
|
HashTable<exprResult> variables_;
|
||||||
|
|
||||||
|
//- Special-purpose scalar reference argument
|
||||||
|
scalar arg1Value_;
|
||||||
|
|
||||||
|
|
||||||
// Controls, tracing etc.
|
// Controls, tracing etc.
|
||||||
|
|
||||||
@ -123,8 +126,6 @@ protected:
|
|||||||
bool searchFiles_;
|
bool searchFiles_;
|
||||||
|
|
||||||
|
|
||||||
protected:
|
|
||||||
|
|
||||||
// Protected Member Functions
|
// Protected Member Functions
|
||||||
|
|
||||||
//- Read an interpolation table
|
//- Read an interpolation table
|
||||||
@ -292,6 +293,14 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Globals, Mesh Related
|
||||||
|
|
||||||
|
//- Set special-purpose scalar reference argument.
|
||||||
|
// Typically available as \c arg() in an expression and
|
||||||
|
// may corrspond to table index, time value etc.
|
||||||
|
scalar argValue() const;
|
||||||
|
|
||||||
|
|
||||||
// General Controls
|
// General Controls
|
||||||
|
|
||||||
//- Get "look-behind" parsing context (internal bookkeeping)
|
//- Get "look-behind" parsing context (internal bookkeeping)
|
||||||
@ -336,6 +345,11 @@ public:
|
|||||||
//- Clear temporary variables and resets from expression strings
|
//- Clear temporary variables and resets from expression strings
|
||||||
virtual void clearVariables();
|
virtual void clearVariables();
|
||||||
|
|
||||||
|
//- Set special-purpose scalar reference argument.
|
||||||
|
// Typically available as \c arg() in an expression and
|
||||||
|
// may corrspond to table index, time value etc.
|
||||||
|
virtual void setArgument(const scalar val);
|
||||||
|
|
||||||
//- True if named variable exists
|
//- True if named variable exists
|
||||||
inline virtual bool hasVariable(const word& name) const;
|
inline virtual bool hasVariable(const word& name) const;
|
||||||
|
|
||||||
|
|||||||
@ -25,66 +25,67 @@
|
|||||||
#define TOK_RPAREN 25
|
#define TOK_RPAREN 25
|
||||||
#define TOK_DEG_TO_RAD 26
|
#define TOK_DEG_TO_RAD 26
|
||||||
#define TOK_RAD_TO_DEG 27
|
#define TOK_RAD_TO_DEG 27
|
||||||
#define TOK_SCALAR_ID 28
|
#define TOK_ARG 28
|
||||||
#define TOK_MIN 29
|
#define TOK_SCALAR_ID 29
|
||||||
#define TOK_COMMA 30
|
#define TOK_MIN 30
|
||||||
#define TOK_MAX 31
|
#define TOK_COMMA 31
|
||||||
#define TOK_SUM 32
|
#define TOK_MAX 32
|
||||||
#define TOK_AVERAGE 33
|
#define TOK_SUM 33
|
||||||
#define TOK_EXP 34
|
#define TOK_AVERAGE 34
|
||||||
#define TOK_LOG 35
|
#define TOK_EXP 35
|
||||||
#define TOK_LOG10 36
|
#define TOK_LOG 36
|
||||||
#define TOK_SQR 37
|
#define TOK_LOG10 37
|
||||||
#define TOK_SQRT 38
|
#define TOK_SQR 38
|
||||||
#define TOK_CBRT 39
|
#define TOK_SQRT 39
|
||||||
#define TOK_SIN 40
|
#define TOK_CBRT 40
|
||||||
#define TOK_COS 41
|
#define TOK_SIN 41
|
||||||
#define TOK_TAN 42
|
#define TOK_COS 42
|
||||||
#define TOK_ASIN 43
|
#define TOK_TAN 43
|
||||||
#define TOK_ACOS 44
|
#define TOK_ASIN 44
|
||||||
#define TOK_ATAN 45
|
#define TOK_ACOS 45
|
||||||
#define TOK_SINH 46
|
#define TOK_ATAN 46
|
||||||
#define TOK_COSH 47
|
#define TOK_SINH 47
|
||||||
#define TOK_TANH 48
|
#define TOK_COSH 48
|
||||||
#define TOK_POW 49
|
#define TOK_TANH 49
|
||||||
#define TOK_ATAN2 50
|
#define TOK_POW 50
|
||||||
#define TOK_POS 51
|
#define TOK_ATAN2 51
|
||||||
#define TOK_NEG 52
|
#define TOK_POS 52
|
||||||
#define TOK_POS0 53
|
#define TOK_NEG 53
|
||||||
#define TOK_NEG0 54
|
#define TOK_POS0 54
|
||||||
#define TOK_SIGN 55
|
#define TOK_NEG0 55
|
||||||
#define TOK_FLOOR 56
|
#define TOK_SIGN 56
|
||||||
#define TOK_CEIL 57
|
#define TOK_FLOOR 57
|
||||||
#define TOK_ROUND 58
|
#define TOK_CEIL 58
|
||||||
#define TOK_HYPOT 59
|
#define TOK_ROUND 59
|
||||||
#define TOK_RAND 60
|
#define TOK_HYPOT 60
|
||||||
#define TOK_VECTOR_ID 61
|
#define TOK_RAND 61
|
||||||
#define TOK_SPH_TENSOR_ID 62
|
#define TOK_VECTOR_ID 62
|
||||||
#define TOK_SYM_TENSOR_ID 63
|
#define TOK_SPH_TENSOR_ID 63
|
||||||
#define TOK_UNIT_TENSOR 64
|
#define TOK_SYM_TENSOR_ID 64
|
||||||
#define TOK_TENSOR_ID 65
|
#define TOK_UNIT_TENSOR 65
|
||||||
#define TOK_LTRUE 66
|
#define TOK_TENSOR_ID 66
|
||||||
#define TOK_LFALSE 67
|
#define TOK_LTRUE 67
|
||||||
#define TOK_BOOL 68
|
#define TOK_LFALSE 68
|
||||||
#define TOK_BOOL_ID 69
|
#define TOK_BOOL 69
|
||||||
#define TOK_MAG 70
|
#define TOK_BOOL_ID 70
|
||||||
#define TOK_MAGSQR 71
|
#define TOK_MAG 71
|
||||||
#define TOK_VECTOR 72
|
#define TOK_MAGSQR 72
|
||||||
#define TOK_TENSOR 73
|
#define TOK_VECTOR 73
|
||||||
#define TOK_SYM_TENSOR 74
|
#define TOK_TENSOR 74
|
||||||
#define TOK_SPH_TENSOR 75
|
#define TOK_SYM_TENSOR 75
|
||||||
#define TOK_CMPT_X 76
|
#define TOK_SPH_TENSOR 76
|
||||||
#define TOK_CMPT_Y 77
|
#define TOK_CMPT_X 77
|
||||||
#define TOK_CMPT_Z 78
|
#define TOK_CMPT_Y 78
|
||||||
#define TOK_CMPT_XX 79
|
#define TOK_CMPT_Z 79
|
||||||
#define TOK_CMPT_XY 80
|
#define TOK_CMPT_XX 80
|
||||||
#define TOK_CMPT_XZ 81
|
#define TOK_CMPT_XY 81
|
||||||
#define TOK_CMPT_YX 82
|
#define TOK_CMPT_XZ 82
|
||||||
#define TOK_CMPT_YY 83
|
#define TOK_CMPT_YX 83
|
||||||
#define TOK_CMPT_YZ 84
|
#define TOK_CMPT_YY 84
|
||||||
#define TOK_CMPT_ZX 85
|
#define TOK_CMPT_YZ 85
|
||||||
#define TOK_CMPT_ZY 86
|
#define TOK_CMPT_ZX 86
|
||||||
#define TOK_CMPT_ZZ 87
|
#define TOK_CMPT_ZY 87
|
||||||
#define TOK_CMPT_II 88
|
#define TOK_CMPT_ZZ 88
|
||||||
#define TOK_TRANSPOSE 89
|
#define TOK_CMPT_II 89
|
||||||
#define TOK_DIAG 90
|
#define TOK_TRANSPOSE 90
|
||||||
|
#define TOK_DIAG 91
|
||||||
|
|||||||
@ -164,6 +164,7 @@ svalue (lhs) ::= ZERO . { lhs = Foam::Zero; }
|
|||||||
svalue (lhs) ::= PI LPAREN RPAREN . { lhs = Foam::constant::mathematical::pi; }
|
svalue (lhs) ::= PI LPAREN RPAREN . { lhs = Foam::constant::mathematical::pi; }
|
||||||
svalue (lhs) ::= DEG_TO_RAD LPAREN RPAREN . { lhs = Foam::degToRad(); }
|
svalue (lhs) ::= DEG_TO_RAD LPAREN RPAREN . { lhs = Foam::degToRad(); }
|
||||||
svalue (lhs) ::= RAD_TO_DEG LPAREN RPAREN . { lhs = Foam::radToDeg(); }
|
svalue (lhs) ::= RAD_TO_DEG LPAREN RPAREN . { lhs = Foam::radToDeg(); }
|
||||||
|
svalue (lhs) ::= ARG LPAREN RPAREN . { lhs = driver->argValue(); }
|
||||||
dnl svalue (lhs) ::= TIME LPAREN RPAREN . { lhs = driver->timeValue(); }
|
dnl svalue (lhs) ::= TIME LPAREN RPAREN . { lhs = driver->timeValue(); }
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@ -5,7 +5,7 @@
|
|||||||
\\ / A nd | www.openfoam.com
|
\\ / A nd | www.openfoam.com
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
Copyright (C) 2019 OpenCFD Ltd.
|
Copyright (C) 2019-2020 OpenCFD Ltd.
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
This file is part of OpenFOAM.
|
This file is part of OpenFOAM.
|
||||||
@ -290,6 +290,7 @@ static int driverTokenType
|
|||||||
"true" =>{ EMIT_TOKEN(LTRUE); };
|
"true" =>{ EMIT_TOKEN(LTRUE); };
|
||||||
"false" =>{ EMIT_TOKEN(LFALSE); };
|
"false" =>{ EMIT_TOKEN(LFALSE); };
|
||||||
"tensor::I" =>{ EMIT_TOKEN(UNIT_TENSOR); };
|
"tensor::I" =>{ EMIT_TOKEN(UNIT_TENSOR); };
|
||||||
|
"arg" =>{ EMIT_TOKEN(ARG); };
|
||||||
## "time" =>{ EMIT_TOKEN(TIME); };
|
## "time" =>{ EMIT_TOKEN(TIME); };
|
||||||
|
|
||||||
## Identifier (field, etc - error if unknown)
|
## Identifier (field, etc - error if unknown)
|
||||||
|
|||||||
@ -5,8 +5,8 @@
|
|||||||
\\ / A nd | www.openfoam.com
|
\\ / A nd | www.openfoam.com
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
Original code Copyright (C) 2010-2018 Bernhard Gschaider
|
Copyright (C) 2010-2018 Bernhard Gschaider
|
||||||
Copyright (C) 2019 OpenCFD Ltd.
|
Copyright (C) 2019-2020 OpenCFD Ltd.
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
This file is part of OpenFOAM.
|
This file is part of OpenFOAM.
|
||||||
@ -99,7 +99,7 @@ class fvExprDriver
|
|||||||
static bool cacheSets_;
|
static bool cacheSets_;
|
||||||
|
|
||||||
|
|
||||||
// Protected Data
|
// Private Data
|
||||||
|
|
||||||
// Stored Data
|
// Stored Data
|
||||||
|
|
||||||
@ -431,7 +431,7 @@ public:
|
|||||||
virtual label pointSize() const = 0;
|
virtual label pointSize() const = 0;
|
||||||
|
|
||||||
|
|
||||||
// Mesh Related
|
// Globals, Mesh Related
|
||||||
|
|
||||||
//- The Time associated with the mesh
|
//- The Time associated with the mesh
|
||||||
const Time& runTime() const;
|
const Time& runTime() const;
|
||||||
|
|||||||
@ -5,8 +5,8 @@
|
|||||||
\\ / A nd | www.openfoam.com
|
\\ / A nd | www.openfoam.com
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
Original code Copyright (C) 2011-2018 Bernhard Gschaider
|
Copyright (C) 2011-2018 Bernhard Gschaider
|
||||||
Copyright (C) 2019 OpenCFD Ltd.
|
Copyright (C) 2019-2020 OpenCFD Ltd.
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
This file is part of OpenFOAM.
|
This file is part of OpenFOAM.
|
||||||
@ -53,6 +53,25 @@ Foam::expressions::patchExprFieldBase::getFvPatch(const facePointPatch& pp)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
const Foam::fvPatch&
|
||||||
|
Foam::expressions::patchExprFieldBase::getFvPatch(const polyPatch& pp)
|
||||||
|
{
|
||||||
|
const polyMesh& pmesh = pp.boundaryMesh().mesh();
|
||||||
|
|
||||||
|
const fvMesh* meshptr = isA<fvMesh>(pmesh);
|
||||||
|
|
||||||
|
if (!meshptr)
|
||||||
|
{
|
||||||
|
FatalErrorInFunction
|
||||||
|
<< "Poly patch not attached to a base fvMesh, "
|
||||||
|
<< "cannot use patch expressions" << nl << endl
|
||||||
|
<< exit(FatalError);
|
||||||
|
}
|
||||||
|
|
||||||
|
return meshptr->boundary()[pp.index()];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
Foam::expressions::patchExprFieldBase::patchExprFieldBase()
|
Foam::expressions::patchExprFieldBase::patchExprFieldBase()
|
||||||
@ -82,9 +101,9 @@ Foam::expressions::patchExprFieldBase::patchExprFieldBase
|
|||||||
bool isPointVal
|
bool isPointVal
|
||||||
)
|
)
|
||||||
:
|
:
|
||||||
debug_(dict.lookupOrDefault("debug", false)),
|
debug_(dict.getOrDefault("debug", false)),
|
||||||
allowGradient_(allowGradient),
|
allowGradient_(allowGradient),
|
||||||
evalOnConstruct_(dict.lookupOrDefault<bool>("evalOnConstruct", false)),
|
evalOnConstruct_(dict.getOrDefault<bool>("evalOnConstruct", false)),
|
||||||
valueExpr_(),
|
valueExpr_(),
|
||||||
gradExpr_(),
|
gradExpr_(),
|
||||||
fracExpr_()
|
fracExpr_()
|
||||||
|
|||||||
@ -5,8 +5,8 @@
|
|||||||
\\ / A nd | www.openfoam.com
|
\\ / A nd | www.openfoam.com
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
Original code Copyright (C) 2011-2018 Bernhard Gschaider
|
Copyright (C) 2011-2018 Bernhard Gschaider
|
||||||
Copyright (C) 2019 OpenCFD Ltd.
|
Copyright (C) 2019-2020 OpenCFD Ltd.
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
This file is part of OpenFOAM.
|
This file is part of OpenFOAM.
|
||||||
@ -58,6 +58,7 @@ namespace Foam
|
|||||||
// Forward Declarations
|
// Forward Declarations
|
||||||
class facePointPatch;
|
class facePointPatch;
|
||||||
class fvPatch;
|
class fvPatch;
|
||||||
|
class polyPatch;
|
||||||
|
|
||||||
namespace expressions
|
namespace expressions
|
||||||
{
|
{
|
||||||
@ -91,10 +92,13 @@ public:
|
|||||||
//- Find (guess) fvPatch from a pointPatch
|
//- Find (guess) fvPatch from a pointPatch
|
||||||
static const fvPatch& getFvPatch(const facePointPatch& fp);
|
static const fvPatch& getFvPatch(const facePointPatch& fp);
|
||||||
|
|
||||||
|
//- Find (guess) fvPatch from a polyPatch
|
||||||
|
static const fvPatch& getFvPatch(const polyPatch& pp);
|
||||||
|
|
||||||
|
|
||||||
// Constructors
|
// Constructors
|
||||||
|
|
||||||
//- Null constructor
|
//- Default construct
|
||||||
patchExprFieldBase();
|
patchExprFieldBase();
|
||||||
|
|
||||||
//- Construct with specified gradient handling
|
//- Construct with specified gradient handling
|
||||||
|
|||||||
@ -25,86 +25,87 @@
|
|||||||
#define TOK_RPAREN 25
|
#define TOK_RPAREN 25
|
||||||
#define TOK_DEG_TO_RAD 26
|
#define TOK_DEG_TO_RAD 26
|
||||||
#define TOK_RAD_TO_DEG 27
|
#define TOK_RAD_TO_DEG 27
|
||||||
#define TOK_TIME 28
|
#define TOK_ARG 28
|
||||||
#define TOK_SCALAR_ID 29
|
#define TOK_TIME 29
|
||||||
#define TOK_SSCALAR_ID 30
|
#define TOK_SCALAR_ID 30
|
||||||
#define TOK_MIN 31
|
#define TOK_SSCALAR_ID 31
|
||||||
#define TOK_COMMA 32
|
#define TOK_MIN 32
|
||||||
#define TOK_MAX 33
|
#define TOK_COMMA 33
|
||||||
#define TOK_SUM 34
|
#define TOK_MAX 34
|
||||||
#define TOK_AVERAGE 35
|
#define TOK_SUM 35
|
||||||
#define TOK_EXP 36
|
#define TOK_AVERAGE 36
|
||||||
#define TOK_LOG 37
|
#define TOK_EXP 37
|
||||||
#define TOK_LOG10 38
|
#define TOK_LOG 38
|
||||||
#define TOK_SQR 39
|
#define TOK_LOG10 39
|
||||||
#define TOK_SQRT 40
|
#define TOK_SQR 40
|
||||||
#define TOK_CBRT 41
|
#define TOK_SQRT 41
|
||||||
#define TOK_SIN 42
|
#define TOK_CBRT 42
|
||||||
#define TOK_COS 43
|
#define TOK_SIN 43
|
||||||
#define TOK_TAN 44
|
#define TOK_COS 44
|
||||||
#define TOK_ASIN 45
|
#define TOK_TAN 45
|
||||||
#define TOK_ACOS 46
|
#define TOK_ASIN 46
|
||||||
#define TOK_ATAN 47
|
#define TOK_ACOS 47
|
||||||
#define TOK_SINH 48
|
#define TOK_ATAN 48
|
||||||
#define TOK_COSH 49
|
#define TOK_SINH 49
|
||||||
#define TOK_TANH 50
|
#define TOK_COSH 50
|
||||||
#define TOK_POW 51
|
#define TOK_TANH 51
|
||||||
#define TOK_ATAN2 52
|
#define TOK_POW 52
|
||||||
#define TOK_POS 53
|
#define TOK_ATAN2 53
|
||||||
#define TOK_NEG 54
|
#define TOK_POS 54
|
||||||
#define TOK_POS0 55
|
#define TOK_NEG 55
|
||||||
#define TOK_NEG0 56
|
#define TOK_POS0 56
|
||||||
#define TOK_SIGN 57
|
#define TOK_NEG0 57
|
||||||
#define TOK_FLOOR 58
|
#define TOK_SIGN 58
|
||||||
#define TOK_CEIL 59
|
#define TOK_FLOOR 59
|
||||||
#define TOK_ROUND 60
|
#define TOK_CEIL 60
|
||||||
#define TOK_HYPOT 61
|
#define TOK_ROUND 61
|
||||||
#define TOK_RAND 62
|
#define TOK_HYPOT 62
|
||||||
#define TOK_VECTOR_ID 63
|
#define TOK_RAND 63
|
||||||
#define TOK_SVECTOR_ID 64
|
#define TOK_VECTOR_ID 64
|
||||||
#define TOK_SPH_TENSOR_ID 65
|
#define TOK_SVECTOR_ID 65
|
||||||
#define TOK_SSPH_TENSOR_ID 66
|
#define TOK_SPH_TENSOR_ID 66
|
||||||
#define TOK_SYM_TENSOR_ID 67
|
#define TOK_SSPH_TENSOR_ID 67
|
||||||
#define TOK_SSYM_TENSOR_ID 68
|
#define TOK_SYM_TENSOR_ID 68
|
||||||
#define TOK_UNIT_TENSOR 69
|
#define TOK_SSYM_TENSOR_ID 69
|
||||||
#define TOK_TENSOR_ID 70
|
#define TOK_UNIT_TENSOR 70
|
||||||
#define TOK_STENSOR_ID 71
|
#define TOK_TENSOR_ID 71
|
||||||
#define TOK_LTRUE 72
|
#define TOK_STENSOR_ID 72
|
||||||
#define TOK_LFALSE 73
|
#define TOK_LTRUE 73
|
||||||
#define TOK_BOOL 74
|
#define TOK_LFALSE 74
|
||||||
#define TOK_SBOOL_ID 75
|
#define TOK_BOOL 75
|
||||||
#define TOK_FACE_AREA 76
|
#define TOK_SBOOL_ID 76
|
||||||
#define TOK_FACE_EXPR 77
|
#define TOK_FACE_AREA 77
|
||||||
#define TOK_WEIGHT_AVERAGE 78
|
#define TOK_FACE_EXPR 78
|
||||||
#define TOK_WEIGHT_SUM 79
|
#define TOK_WEIGHT_AVERAGE 79
|
||||||
#define TOK_POINT_EXPR 80
|
#define TOK_WEIGHT_SUM 80
|
||||||
#define TOK_PSCALAR_ID 81
|
#define TOK_POINT_EXPR 81
|
||||||
#define TOK_PVECTOR_ID 82
|
#define TOK_PSCALAR_ID 82
|
||||||
#define TOK_PSPH_TENSOR_ID 83
|
#define TOK_PVECTOR_ID 83
|
||||||
#define TOK_PSYM_TENSOR_ID 84
|
#define TOK_PSPH_TENSOR_ID 84
|
||||||
#define TOK_PTENSOR_ID 85
|
#define TOK_PSYM_TENSOR_ID 85
|
||||||
#define TOK_PBOOL_ID 86
|
#define TOK_PTENSOR_ID 86
|
||||||
#define TOK_POINTS 87
|
#define TOK_PBOOL_ID 87
|
||||||
#define TOK_MAG 88
|
#define TOK_POINTS 88
|
||||||
#define TOK_MAGSQR 89
|
#define TOK_MAG 89
|
||||||
#define TOK_VECTOR 90
|
#define TOK_MAGSQR 90
|
||||||
#define TOK_TENSOR 91
|
#define TOK_VECTOR 91
|
||||||
#define TOK_SYM_TENSOR 92
|
#define TOK_TENSOR 92
|
||||||
#define TOK_SPH_TENSOR 93
|
#define TOK_SYM_TENSOR 93
|
||||||
#define TOK_CMPT_X 94
|
#define TOK_SPH_TENSOR 94
|
||||||
#define TOK_CMPT_Y 95
|
#define TOK_CMPT_X 95
|
||||||
#define TOK_CMPT_Z 96
|
#define TOK_CMPT_Y 96
|
||||||
#define TOK_CMPT_XX 97
|
#define TOK_CMPT_Z 97
|
||||||
#define TOK_CMPT_XY 98
|
#define TOK_CMPT_XX 98
|
||||||
#define TOK_CMPT_XZ 99
|
#define TOK_CMPT_XY 99
|
||||||
#define TOK_CMPT_YX 100
|
#define TOK_CMPT_XZ 100
|
||||||
#define TOK_CMPT_YY 101
|
#define TOK_CMPT_YX 101
|
||||||
#define TOK_CMPT_YZ 102
|
#define TOK_CMPT_YY 102
|
||||||
#define TOK_CMPT_ZX 103
|
#define TOK_CMPT_YZ 103
|
||||||
#define TOK_CMPT_ZY 104
|
#define TOK_CMPT_ZX 104
|
||||||
#define TOK_CMPT_ZZ 105
|
#define TOK_CMPT_ZY 105
|
||||||
#define TOK_CMPT_II 106
|
#define TOK_CMPT_ZZ 106
|
||||||
#define TOK_TRANSPOSE 107
|
#define TOK_CMPT_II 107
|
||||||
#define TOK_DIAG 108
|
#define TOK_TRANSPOSE 108
|
||||||
#define TOK_POINT_TO_FACE 109
|
#define TOK_DIAG 109
|
||||||
#define TOK_FACE_TO_POINT 110
|
#define TOK_POINT_TO_FACE 110
|
||||||
|
#define TOK_FACE_TO_POINT 111
|
||||||
|
|||||||
@ -118,6 +118,7 @@ svalue (lhs) ::= ZERO . { lhs = Foam::Zero; }
|
|||||||
svalue (lhs) ::= PI LPAREN RPAREN . { lhs = Foam::constant::mathematical::pi; }
|
svalue (lhs) ::= PI LPAREN RPAREN . { lhs = Foam::constant::mathematical::pi; }
|
||||||
svalue (lhs) ::= DEG_TO_RAD LPAREN RPAREN . { lhs = Foam::degToRad(); }
|
svalue (lhs) ::= DEG_TO_RAD LPAREN RPAREN . { lhs = Foam::degToRad(); }
|
||||||
svalue (lhs) ::= RAD_TO_DEG LPAREN RPAREN . { lhs = Foam::radToDeg(); }
|
svalue (lhs) ::= RAD_TO_DEG LPAREN RPAREN . { lhs = Foam::radToDeg(); }
|
||||||
|
svalue (lhs) ::= ARG LPAREN RPAREN . { lhs = driver->argValue(); }
|
||||||
svalue (lhs) ::= TIME LPAREN RPAREN . { lhs = driver->timeValue(); }
|
svalue (lhs) ::= TIME LPAREN RPAREN . { lhs = driver->timeValue(); }
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@ -5,7 +5,7 @@
|
|||||||
\\ / A nd | www.openfoam.com
|
\\ / A nd | www.openfoam.com
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
Copyright (C) 2019 OpenCFD Ltd.
|
Copyright (C) 2019-2020 OpenCFD Ltd.
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
This file is part of OpenFOAM.
|
This file is part of OpenFOAM.
|
||||||
@ -416,6 +416,7 @@ static int driverTokenType
|
|||||||
"true" =>{ EMIT_TOKEN(LTRUE); };
|
"true" =>{ EMIT_TOKEN(LTRUE); };
|
||||||
"false" =>{ EMIT_TOKEN(LFALSE); };
|
"false" =>{ EMIT_TOKEN(LFALSE); };
|
||||||
"tensor::I" =>{ EMIT_TOKEN(UNIT_TENSOR); };
|
"tensor::I" =>{ EMIT_TOKEN(UNIT_TENSOR); };
|
||||||
|
"arg" =>{ EMIT_TOKEN(ARG); };
|
||||||
"time" =>{ EMIT_TOKEN(TIME); };
|
"time" =>{ EMIT_TOKEN(TIME); };
|
||||||
|
|
||||||
## Identifier (field, etc - error if unknown)
|
## Identifier (field, etc - error if unknown)
|
||||||
|
|||||||
@ -25,95 +25,96 @@
|
|||||||
#define TOK_RPAREN 25
|
#define TOK_RPAREN 25
|
||||||
#define TOK_DEG_TO_RAD 26
|
#define TOK_DEG_TO_RAD 26
|
||||||
#define TOK_RAD_TO_DEG 27
|
#define TOK_RAD_TO_DEG 27
|
||||||
#define TOK_TIME 28
|
#define TOK_ARG 28
|
||||||
#define TOK_SCALAR_ID 29
|
#define TOK_TIME 29
|
||||||
#define TOK_MIN 30
|
#define TOK_SCALAR_ID 30
|
||||||
#define TOK_COMMA 31
|
#define TOK_MIN 31
|
||||||
#define TOK_MAX 32
|
#define TOK_COMMA 32
|
||||||
#define TOK_SUM 33
|
#define TOK_MAX 33
|
||||||
#define TOK_AVERAGE 34
|
#define TOK_SUM 34
|
||||||
#define TOK_EXP 35
|
#define TOK_AVERAGE 35
|
||||||
#define TOK_LOG 36
|
#define TOK_EXP 36
|
||||||
#define TOK_LOG10 37
|
#define TOK_LOG 37
|
||||||
#define TOK_SQR 38
|
#define TOK_LOG10 38
|
||||||
#define TOK_SQRT 39
|
#define TOK_SQR 39
|
||||||
#define TOK_CBRT 40
|
#define TOK_SQRT 40
|
||||||
#define TOK_SIN 41
|
#define TOK_CBRT 41
|
||||||
#define TOK_COS 42
|
#define TOK_SIN 42
|
||||||
#define TOK_TAN 43
|
#define TOK_COS 43
|
||||||
#define TOK_ASIN 44
|
#define TOK_TAN 44
|
||||||
#define TOK_ACOS 45
|
#define TOK_ASIN 45
|
||||||
#define TOK_ATAN 46
|
#define TOK_ACOS 46
|
||||||
#define TOK_SINH 47
|
#define TOK_ATAN 47
|
||||||
#define TOK_COSH 48
|
#define TOK_SINH 48
|
||||||
#define TOK_TANH 49
|
#define TOK_COSH 49
|
||||||
#define TOK_POW 50
|
#define TOK_TANH 50
|
||||||
#define TOK_ATAN2 51
|
#define TOK_POW 51
|
||||||
#define TOK_POS 52
|
#define TOK_ATAN2 52
|
||||||
#define TOK_NEG 53
|
#define TOK_POS 53
|
||||||
#define TOK_POS0 54
|
#define TOK_NEG 54
|
||||||
#define TOK_NEG0 55
|
#define TOK_POS0 55
|
||||||
#define TOK_SIGN 56
|
#define TOK_NEG0 56
|
||||||
#define TOK_FLOOR 57
|
#define TOK_SIGN 57
|
||||||
#define TOK_CEIL 58
|
#define TOK_FLOOR 58
|
||||||
#define TOK_ROUND 59
|
#define TOK_CEIL 59
|
||||||
#define TOK_HYPOT 60
|
#define TOK_ROUND 60
|
||||||
#define TOK_RAND 61
|
#define TOK_HYPOT 61
|
||||||
#define TOK_VECTOR_ID 62
|
#define TOK_RAND 62
|
||||||
#define TOK_SPH_TENSOR_ID 63
|
#define TOK_VECTOR_ID 63
|
||||||
#define TOK_SYM_TENSOR_ID 64
|
#define TOK_SPH_TENSOR_ID 64
|
||||||
#define TOK_UNIT_TENSOR 65
|
#define TOK_SYM_TENSOR_ID 65
|
||||||
#define TOK_TENSOR_ID 66
|
#define TOK_UNIT_TENSOR 66
|
||||||
#define TOK_LTRUE 67
|
#define TOK_TENSOR_ID 67
|
||||||
#define TOK_LFALSE 68
|
#define TOK_LTRUE 68
|
||||||
#define TOK_BOOL 69
|
#define TOK_LFALSE 69
|
||||||
#define TOK_CSET 70
|
#define TOK_BOOL 70
|
||||||
#define TOK_IDENTIFIER 71
|
#define TOK_CSET 71
|
||||||
#define TOK_CZONE 72
|
#define TOK_IDENTIFIER 72
|
||||||
#define TOK_CELL_VOLUME 73
|
#define TOK_CZONE 73
|
||||||
#define TOK_WEIGHT_AVERAGE 74
|
#define TOK_CELL_VOLUME 74
|
||||||
#define TOK_WEIGHT_SUM 75
|
#define TOK_WEIGHT_AVERAGE 75
|
||||||
#define TOK_FACE_EXPR 76
|
#define TOK_WEIGHT_SUM 76
|
||||||
#define TOK_SSCALAR_ID 77
|
#define TOK_FACE_EXPR 77
|
||||||
#define TOK_SVECTOR_ID 78
|
#define TOK_SSCALAR_ID 78
|
||||||
#define TOK_SSPH_TENSOR_ID 79
|
#define TOK_SVECTOR_ID 79
|
||||||
#define TOK_SSYM_TENSOR_ID 80
|
#define TOK_SSPH_TENSOR_ID 80
|
||||||
#define TOK_STENSOR_ID 81
|
#define TOK_SSYM_TENSOR_ID 81
|
||||||
#define TOK_FSET 82
|
#define TOK_STENSOR_ID 82
|
||||||
#define TOK_FZONE 83
|
#define TOK_FSET 83
|
||||||
#define TOK_FACE_AREA 84
|
#define TOK_FZONE 84
|
||||||
#define TOK_FACE_CENTRE 85
|
#define TOK_FACE_AREA 85
|
||||||
#define TOK_POINT_EXPR 86
|
#define TOK_FACE_CENTRE 86
|
||||||
#define TOK_PSCALAR_ID 87
|
#define TOK_POINT_EXPR 87
|
||||||
#define TOK_PVECTOR_ID 88
|
#define TOK_PSCALAR_ID 88
|
||||||
#define TOK_PSPH_TENSOR_ID 89
|
#define TOK_PVECTOR_ID 89
|
||||||
#define TOK_PSYM_TENSOR_ID 90
|
#define TOK_PSPH_TENSOR_ID 90
|
||||||
#define TOK_PTENSOR_ID 91
|
#define TOK_PSYM_TENSOR_ID 91
|
||||||
#define TOK_PSET 92
|
#define TOK_PTENSOR_ID 92
|
||||||
#define TOK_PZONE 93
|
#define TOK_PSET 93
|
||||||
#define TOK_POINTS 94
|
#define TOK_PZONE 94
|
||||||
#define TOK_MAG 95
|
#define TOK_POINTS 95
|
||||||
#define TOK_MAGSQR 96
|
#define TOK_MAG 96
|
||||||
#define TOK_VECTOR 97
|
#define TOK_MAGSQR 97
|
||||||
#define TOK_TENSOR 98
|
#define TOK_VECTOR 98
|
||||||
#define TOK_SYM_TENSOR 99
|
#define TOK_TENSOR 99
|
||||||
#define TOK_SPH_TENSOR 100
|
#define TOK_SYM_TENSOR 100
|
||||||
#define TOK_CMPT_X 101
|
#define TOK_SPH_TENSOR 101
|
||||||
#define TOK_CMPT_Y 102
|
#define TOK_CMPT_X 102
|
||||||
#define TOK_CMPT_Z 103
|
#define TOK_CMPT_Y 103
|
||||||
#define TOK_CMPT_XX 104
|
#define TOK_CMPT_Z 104
|
||||||
#define TOK_CMPT_XY 105
|
#define TOK_CMPT_XX 105
|
||||||
#define TOK_CMPT_XZ 106
|
#define TOK_CMPT_XY 106
|
||||||
#define TOK_CMPT_YX 107
|
#define TOK_CMPT_XZ 107
|
||||||
#define TOK_CMPT_YY 108
|
#define TOK_CMPT_YX 108
|
||||||
#define TOK_CMPT_YZ 109
|
#define TOK_CMPT_YY 109
|
||||||
#define TOK_CMPT_ZX 110
|
#define TOK_CMPT_YZ 110
|
||||||
#define TOK_CMPT_ZY 111
|
#define TOK_CMPT_ZX 111
|
||||||
#define TOK_CMPT_ZZ 112
|
#define TOK_CMPT_ZY 112
|
||||||
#define TOK_CMPT_II 113
|
#define TOK_CMPT_ZZ 113
|
||||||
#define TOK_TRANSPOSE 114
|
#define TOK_CMPT_II 114
|
||||||
#define TOK_DIAG 115
|
#define TOK_TRANSPOSE 115
|
||||||
#define TOK_POINT_TO_CELL 116
|
#define TOK_DIAG 116
|
||||||
#define TOK_RECONSTRUCT 117
|
#define TOK_POINT_TO_CELL 117
|
||||||
#define TOK_CELL_TO_FACE 118
|
#define TOK_RECONSTRUCT 118
|
||||||
#define TOK_CELL_TO_POINT 119
|
#define TOK_CELL_TO_FACE 119
|
||||||
|
#define TOK_CELL_TO_POINT 120
|
||||||
|
|||||||
@ -158,6 +158,7 @@ svalue (lhs) ::= ZERO . { lhs = Foam::Zero; }
|
|||||||
svalue (lhs) ::= PI LPAREN RPAREN . { lhs = Foam::constant::mathematical::pi; }
|
svalue (lhs) ::= PI LPAREN RPAREN . { lhs = Foam::constant::mathematical::pi; }
|
||||||
svalue (lhs) ::= DEG_TO_RAD LPAREN RPAREN . { lhs = Foam::degToRad(); }
|
svalue (lhs) ::= DEG_TO_RAD LPAREN RPAREN . { lhs = Foam::degToRad(); }
|
||||||
svalue (lhs) ::= RAD_TO_DEG LPAREN RPAREN . { lhs = Foam::radToDeg(); }
|
svalue (lhs) ::= RAD_TO_DEG LPAREN RPAREN . { lhs = Foam::radToDeg(); }
|
||||||
|
svalue (lhs) ::= ARG LPAREN RPAREN . { lhs = driver->argValue(); }
|
||||||
svalue (lhs) ::= TIME LPAREN RPAREN . { lhs = driver->timeValue(); }
|
svalue (lhs) ::= TIME LPAREN RPAREN . { lhs = driver->timeValue(); }
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@ -5,7 +5,7 @@
|
|||||||
\\ / A nd | www.openfoam.com
|
\\ / A nd | www.openfoam.com
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
Copyright (C) 2019 OpenCFD Ltd.
|
Copyright (C) 2019-2020 OpenCFD Ltd.
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
This file is part of OpenFOAM.
|
This file is part of OpenFOAM.
|
||||||
@ -445,6 +445,7 @@ static int driverTokenType
|
|||||||
"true" =>{ EMIT_TOKEN(LTRUE); };
|
"true" =>{ EMIT_TOKEN(LTRUE); };
|
||||||
"false" =>{ EMIT_TOKEN(LFALSE); };
|
"false" =>{ EMIT_TOKEN(LFALSE); };
|
||||||
"tensor::I" =>{ EMIT_TOKEN(UNIT_TENSOR); };
|
"tensor::I" =>{ EMIT_TOKEN(UNIT_TENSOR); };
|
||||||
|
"arg" =>{ EMIT_TOKEN(ARG); };
|
||||||
"time" =>{ EMIT_TOKEN(TIME); };
|
"time" =>{ EMIT_TOKEN(TIME); };
|
||||||
|
|
||||||
## Identifier (field, etc - error if unknown)
|
## Identifier (field, etc - error if unknown)
|
||||||
|
|||||||
Reference in New Issue
Block a user