Foam::expressions Namespace Reference

A namespace for expression-related classes/traits etc. More...

Namespaces

 Detail
 A namespace for implementation details related to expressions.
 
 exprDriverOps
 Miscellaneous operations used in combination with the expressions::exprDriver.
 
 fieldExpr
 Namespace for primitive field expressions parsing and evaluation.
 
 patchExpr
 Namespace for patch expressions parsing and evaluation.
 
 volumeExpr
 Namespace for volume field expressions parsing and evaluation.
 

Classes

struct  boolAndOp
 Logical 'and', possibly with scalars as (false, true) values. More...
 
struct  boolNotOp
 Inverse of boolOp() More...
 
struct  boolNotOp< bool >
 Inverse of boolOp, no conversion required for bool. More...
 
struct  boolOp
 Convert [0-1] values (usually scalars) as false/true. More...
 
struct  boolOp< bool >
 Convert to bool, pass-through for bool. More...
 
struct  boolOrOp
 Logical 'or', possibly with scalars as (false, true) values. More...
 
struct  boolXorOp
 Logical 'xor', possibly with scalars as (false, true) values. More...
 
class  exprDriver
 Base driver for parsing (field) values. More...
 
class  exprResult
 A polymorphic field/result from evaluating an expression. More...
 
class  exprResultDelayed
 An exprResult with an additional delay before evaluation. More...
 
class  exprResultGlobals
 A globally available registry of expression results. These are currently registered on Time (may change in the future). More...
 
class  exprResultStack
 A stack of polymorphic fields. Can be used to build a list of results one at a time. More...
 
class  exprResultStored
 An exprResult with persistence. More...
 
class  exprResultStoredStack
 An exprResultStack with persistence. More...
 
class  exprString
 A variant of Foam::string with expansion of dictionary variables into a comma-separated form. More...
 
class  exprValue
 A polymorphic typed union of simple primitive and VectorSpace types. It uses a 'fatter' representation that includes standard VectorSpace types, which avoids heap allocations at the expense of more storage. This is mostly not an issue since lists and fields would box/unbox an entire field, not individual values. More...
 
class  FieldAssociation
 The field association for mesh (patch/volume) values. More...
 
class  fvExprDriver
 Base driver for parsing value expressions associated with an fvMesh. More...
 
class  fvExprDriverWriter
 Registered input/output for an expressions::fvExprDriver. More...
 
class  patchExprFieldBase
 Base class for managing patches with expressions. The expected input supports value, gradient and mixed conditions. More...
 
class  scanToken
 A low-level input/scan token content. No defined constructors/destructors. All memory management is manual! More...
 

Typedefs

typedef patchExpr::parseDriver patchExprDriver
 Typedef for patchExpr parseDriver. More...
 
typedef volumeExpr::parseDriver volumeExprDriver
 Typedef for volumeExpr parseDriver. More...
 
typedef fieldExpr::parseDriver fieldExprDriver
 Typedef for fieldExpr parseDriver. More...
 

Enumerations

enum  FieldAssociation : unsigned char { NO_DATA = 0, POINT_DATA = 1, FACE_DATA = 2, VOLUME_DATA = 4 }
 
enum  valueTypeCode : unsigned char {
  NONE = 0, INVALID, type_bool, type_label,
  type_scalar, type_vector, type_sphericalTensor, type_symmTensor,
  type_tensor
}
 An enumeration of known and expected expression value types. More...
 

Functions

 defineTypeNameAndDebug (fvExprDriver, 0)
 
 defineRunTimeSelectionTable (fvExprDriver, dictionary)
 
 defineRunTimeSelectionTable (fvExprDriver, idName)
 
 defineTypeName (fvExprDriverWriter)
 
 defineDebugSwitchWithName (patchExpr, "patchExpr", 0)
 
 registerDebugSwitchWithName (patchExpr, patchExpr, "patchExpr")
 
 defineDebugSwitchWithName (volumeExpr, "volumeExpr", 0)
 
 registerDebugSwitchWithName (volumeExpr, volumeExpr, "volumeExpr")
 
 defineTypeNameAndDebug (exprDriver, 0)
 
 defineTypeNameAndDebug (exprResult, 0)
 
 defineRunTimeSelectionTable (exprResult, dictionary)
 
 defineRunTimeSelectionTable (exprResult, empty)
 
 addToRunTimeSelectionTable (exprResult, exprResult, dictionary)
 
 addToRunTimeSelectionTable (exprResult, exprResult, empty)
 
 defineTypeName (exprResultDelayed)
 
 addToRunTimeSelectionTable (exprResult, exprResultDelayed, dictionary)
 
 addToRunTimeSelectionTable (exprResult, exprResultDelayed, empty)
 
 defineTypeName (exprResultGlobals)
 
 defineTypeNameAndDebug (exprResultStack, 0)
 
 addToRunTimeSelectionTable (exprResult, exprResultStack, dictionary)
 
 addToRunTimeSelectionTable (exprResult, exprResultStack, empty)
 
 defineTypeName (exprResultStored)
 
 addToRunTimeSelectionTable (exprResult, exprResultStored, dictionary)
 
 addToRunTimeSelectionTable (exprResult, exprResultStored, empty)
 
 defineTypeName (exprResultStoredStack)
 
 addToRunTimeSelectionTable (exprResult, exprResultStoredStack, dictionary)
 
 addToRunTimeSelectionTable (exprResult, exprResultStoredStack, empty)
 
 defineDebugSwitchWithName (fieldExpr, "fieldExpr", 0)
 
 registerDebugSwitchWithName (fieldExpr, fieldExpr, "fieldExpr")
 
valueTypeCode valueTypeCodeOf (const word &dataTypeName, const expressions::valueTypeCode deflt=expressions::valueTypeCode::INVALID)
 From string to valueTypeCode (if any) More...
 

Detailed Description

A namespace for expression-related classes/traits etc.

Typedef Documentation

◆ patchExprDriver

Typedef for patchExpr parseDriver.

Definition at line 59 of file patchExprFwd.H.

◆ volumeExprDriver

Typedef for volumeExpr parseDriver.

Definition at line 59 of file volumeExprFwd.H.

◆ fieldExprDriver

Typedef for fieldExpr parseDriver.

Definition at line 59 of file fieldExprFwd.H.

Enumeration Type Documentation

◆ FieldAssociation

enum FieldAssociation : unsigned char
Enumerator
NO_DATA 

No data.

POINT_DATA 

Point data.

FACE_DATA 

Face data.

VOLUME_DATA 

Volume data.

Definition at line 37 of file exprFieldAssociation.H.

◆ valueTypeCode

enum valueTypeCode : unsigned char
strong

An enumeration of known and expected expression value types.

Do not rely on the enumeration values for any direct coding.

Note
NONE used when initializing types, whereas INVALID is used for unsupported types (never as a stored type). This avoids false positives when testing.

Except NONE and INVALID, the enumerations will mostly not be used directly, but through exprTypeTraits :: value

Enumerator
NONE 

No type, or default initialized type.

INVALID 

Invalid/unknown/error type.

type_bool 

Type is 'bool'.

type_label 

Type is 'label'.

type_scalar 

Type is 'scalar'.

type_vector 

Type is 'vector'.

type_sphericalTensor 

Type is 'sphericalTensor'.

type_symmTensor 

Type is 'symmTensor'.

type_tensor 

Type is 'tensor'.

Definition at line 81 of file exprTraits.H.

Function Documentation

◆ defineTypeNameAndDebug() [1/4]

Foam::expressions::defineTypeNameAndDebug ( fvExprDriver  ,
 
)

◆ defineRunTimeSelectionTable() [1/4]

Foam::expressions::defineRunTimeSelectionTable ( fvExprDriver  ,
dictionary   
)

◆ defineRunTimeSelectionTable() [2/4]

Foam::expressions::defineRunTimeSelectionTable ( fvExprDriver  ,
idName   
)

◆ defineTypeName() [1/5]

Foam::expressions::defineTypeName ( fvExprDriverWriter  )

◆ defineDebugSwitchWithName() [1/3]

Foam::expressions::defineDebugSwitchWithName ( patchExpr  ,
"patchExpr"  ,
 
)

◆ registerDebugSwitchWithName() [1/3]

Foam::expressions::registerDebugSwitchWithName ( patchExpr  ,
patchExpr  ,
"patchExpr"   
)

◆ defineDebugSwitchWithName() [2/3]

Foam::expressions::defineDebugSwitchWithName ( volumeExpr  ,
"volumeExpr"  ,
 
)

◆ registerDebugSwitchWithName() [2/3]

Foam::expressions::registerDebugSwitchWithName ( volumeExpr  ,
volumeExpr  ,
"volumeExpr"   
)

◆ defineTypeNameAndDebug() [2/4]

Foam::expressions::defineTypeNameAndDebug ( exprDriver  ,
 
)

◆ defineTypeNameAndDebug() [3/4]

Foam::expressions::defineTypeNameAndDebug ( exprResult  ,
 
)

◆ defineRunTimeSelectionTable() [3/4]

Foam::expressions::defineRunTimeSelectionTable ( exprResult  ,
dictionary   
)

◆ defineRunTimeSelectionTable() [4/4]

Foam::expressions::defineRunTimeSelectionTable ( exprResult  ,
empty   
)

◆ addToRunTimeSelectionTable() [1/10]

Foam::expressions::addToRunTimeSelectionTable ( exprResult  ,
exprResult  ,
dictionary   
)

◆ addToRunTimeSelectionTable() [2/10]

Foam::expressions::addToRunTimeSelectionTable ( exprResult  ,
exprResult  ,
empty   
)

◆ defineTypeName() [2/5]

Foam::expressions::defineTypeName ( exprResultDelayed  )

◆ addToRunTimeSelectionTable() [3/10]

Foam::expressions::addToRunTimeSelectionTable ( exprResult  ,
exprResultDelayed  ,
dictionary   
)

◆ addToRunTimeSelectionTable() [4/10]

Foam::expressions::addToRunTimeSelectionTable ( exprResult  ,
exprResultDelayed  ,
empty   
)

◆ defineTypeName() [3/5]

Foam::expressions::defineTypeName ( exprResultGlobals  )

◆ defineTypeNameAndDebug() [4/4]

Foam::expressions::defineTypeNameAndDebug ( exprResultStack  ,
 
)

◆ addToRunTimeSelectionTable() [5/10]

Foam::expressions::addToRunTimeSelectionTable ( exprResult  ,
exprResultStack  ,
dictionary   
)

◆ addToRunTimeSelectionTable() [6/10]

Foam::expressions::addToRunTimeSelectionTable ( exprResult  ,
exprResultStack  ,
empty   
)

◆ defineTypeName() [4/5]

Foam::expressions::defineTypeName ( exprResultStored  )

◆ addToRunTimeSelectionTable() [7/10]

Foam::expressions::addToRunTimeSelectionTable ( exprResult  ,
exprResultStored  ,
dictionary   
)

◆ addToRunTimeSelectionTable() [8/10]

Foam::expressions::addToRunTimeSelectionTable ( exprResult  ,
exprResultStored  ,
empty   
)

◆ defineTypeName() [5/5]

Foam::expressions::defineTypeName ( exprResultStoredStack  )

◆ addToRunTimeSelectionTable() [9/10]

Foam::expressions::addToRunTimeSelectionTable ( exprResult  ,
exprResultStoredStack  ,
dictionary   
)

◆ addToRunTimeSelectionTable() [10/10]

Foam::expressions::addToRunTimeSelectionTable ( exprResult  ,
exprResultStoredStack  ,
empty   
)

◆ defineDebugSwitchWithName() [3/3]

Foam::expressions::defineDebugSwitchWithName ( fieldExpr  ,
"fieldExpr"  ,
 
)

◆ registerDebugSwitchWithName() [3/3]

Foam::expressions::registerDebugSwitchWithName ( fieldExpr  ,
fieldExpr  ,
"fieldExpr"   
)

◆ valueTypeCodeOf()

Foam::expressions::valueTypeCode valueTypeCodeOf ( const word dataTypeName,
const expressions::valueTypeCode  deflt = expressions::valueTypeCode::INVALID 
)

From string to valueTypeCode (if any)

Definition at line 100 of file exprTraits.C.

References doLocalCode, and FOR_ALL_EXPR_TYPE_CODES.