COOLFluiD  Release kernel
COOLFluiD is a Collaborative Simulation Environment (CSE) focused on complex MultiPhysics simulations.
Namespaces | Classes | Typedefs | Functions | Variables
cf3::solver::actions::Proto Namespace Reference

Namespaces

 detail
 

Classes

struct  AddNodeData
 MPL transform operator to wrap a variable in its data type. More...
 
struct  AddNodeValues
 
struct  AddNodeValuesIndex
 
struct  AssignNodalValues
 Write to element nodal values. More...
 
struct  BlockAccumulation
 Grammar matching block accumulation expressions. More...
 
struct  BlockAccumulator
 Primitive transform to handle assignment to an LSS matrix. More...
 
struct  BlockAssignmentOp
 Helper struct for assignment to a matrix or RHS. More...
 
struct  BlockAssignmentOp< SystemMatrixTag, OpTagT >
 
struct  BlockAssignmentOp< SystemRHSTag, OpTagT >
 
struct  BlockLhsGrammar
 Grammar matching the LHS of an assignment op. More...
 
struct  CheckSameEtype
 Check if all variables are on fields with element type ETYPE. More...
 
struct  ColTag
 
class  ComponentWrapper
 Proto-ready terminal type for wrapping a component. More...
 
class  ComponentWrapperImpl
 
struct  ComputeNorm
 Compute the norm of a matrix or a vector. More...
 
struct  ConfigurableConstant
 Refers to a configurable constant value. More...
 
struct  ConstantStorage
 Storage for the values pointed to by a ConfigurableConstant. More...
 
struct  ConstantStorageType
 Returns the map type used to store values of the given type. More...
 
struct  CoordinatesGrammar
 
struct  CoordinatesOp
 Interpolated real-world coordinates at mapped coordinates. More...
 
struct  CoordsTerminals
 Valid terminals that can represent the current node coordinates. More...
 
struct  CopyNumberedVars
 Copy the terminal values to a fusion list. More...
 
struct  CustomSFOp
 
struct  CustomSFOpTransform
 Operation with a custom implementation. More...
 
struct  DeepCopy
 Transform to copy an expression, keeping terminals that store a value by reference unchanged (thanks to Eric Niebler) More...
 
struct  DefaultFunctions
 All possible default-evaluated functions. More...
 
struct  DefineType
 Transform that extracts the type of variable I. More...
 
struct  DefineTypeOp
 Ease application of DefineType as an MPL lambda expression, and strip the Var encapsulation. More...
 
struct  DimensionIdxTag
 Tags terminals that will be replaced with the current dimension. More...
 
struct  DirichletBCComponentSetter
 Sets a specific component of a vector. More...
 
struct  DirichletBCGrammar
 Matches the proper formulation of Dirichlet BC. More...
 
struct  DirichletBCSetter
 Sets whole-variable dirichlet BC, allowing the use of a complete vector as value. More...
 
struct  DirichletBCTag
 Tag for a Dirichlet BC. More...
 
struct  DivOp
 Evaluate the divergence. More...
 
struct  EigenIndexing
 Indexing into Eigen expressions. More...
 
struct  EigenMath
 Grammar for valid Eigen expressions, composed of primitives matching GrammarT. More...
 
struct  EigenMultiplication
 Handle an expression that is filtered by Eigen. More...
 
struct  EigenPlusAssignProductEval
 Evaluate A += B*C, which is a special case needed in Gauss integrator. If B or C is a scalar, it's also faster. More...
 
struct  EigenProductEval
 Evaluate the product LeftT * RightT. More...
 
struct  EigenProductType
 Generalization of Eigen::ProductReturnType that also works for scalars (see specializations below) More...
 
struct  EigenProductType< Eigen::GeneralProduct< LeftT, RightT >, Real >
 Scalar on the right. More...
 
struct  EigenProductType< LeftT, Real >
 Scalar on the right. More...
 
struct  EigenProductType< Real, Eigen::GeneralProduct< LeftT, RightT > >
 Scalar on the left. More...
 
struct  EigenProductType< Real, Real >
 Scalar - scalar. More...
 
struct  EigenProductType< Real, RightT >
 Scalar on the left. More...
 
struct  ElementBased
 Dummy shape function type used for element-based fields. More...
 
class  ElementData
 
struct  ElementGrammar
 Matches and evaluates element-wise expressions. More...
 
struct  ElementIntegration
 
struct  ElementLooper
 mpl::for_each compatible functor to loop over elements, using the correct shape function for the geometry More...
 
struct  ElementLooperImpl
 Helper struct to launch execution once all shape functions have been determined. More...
 
struct  ElementMath
 
struct  ElementMathBase
 
struct  ElementMathImplicit
 
struct  ElementMathImplicitIndexed
 Grammar that allows looping over I and J indices. More...
 
struct  ElementMathIndexed
 
struct  ElementMatrix
 Represents an element matrix. More...
 
struct  ElementMatrixBlockValue
 Only get a block containing the rows for the first var and the cols for the second. More...
 
struct  ElementMatrixGrammar
 
struct  ElementMatrixGrammarIndexed
 Gets submatrices of vector variables. More...
 
struct  ElementMatrixRowsValue
 Only get the rows relevant for a given variable. More...
 
struct  ElementMatrixSize
 Calculate the size of the element matrix. More...
 
struct  ElementMatrixSubBlocks
 Match but don't evaluate subblock-expressions. More...
 
struct  ElementMatrixTerm
 Match element matrix terminals. More...
 
struct  ElementMatrixValue
 Get a given element matrix. More...
 
struct  ElementQuadrature
 
struct  ElementQuadratureEval
 
struct  ElementQuadratureMatch
 Match quadrature expressions. THese call the grouping separately, so don't trigger on indices there. More...
 
struct  ElementQuadratureTag
 Tags a gauss-quadrature loop for the following expressions. More...
 
struct  ElementRHS
 Reperesents element RHS vector. More...
 
struct  ElementRHSValue
 Get the RHS vector. More...
 
class  ElementsExpression
 
struct  ElementSystemMatrix
 Represents an element matrix that is used as part of the linear system. More...
 
struct  ElementSystemMatrixTerm
 Match only element matrices that are used in a linear system. More...
 
struct  ElementValue
 
struct  ElementVector
 Represents an element vector. More...
 
struct  ElementVectorRowsValue
 Only get the rows relevant for a given variable. More...
 
struct  ElementVectorTag
 
struct  ElementVectorTerm
 Match element matrix terminals. More...
 
struct  ElementVectorTransform
 
struct  ElementVectorValue
 Get a given element matrix. More...
 
struct  EquationVariables
 Calculate if a variable is part of an equation. More...
 
struct  EquationVariablesOp
 Wrap IsEquationVariable as a lambda expression. More...
 
class  EtypeTVariableData
 Data associated with field variables. More...
 
class  EtypeTVariableData< ElementBased< 1 >, SupportEtypeT, 1, IsEquationVar >
 Data for scalar element-based fields. More...
 
class  EtypeTVariableData< ElementBased< Dim >, SupportEtypeT, Dim, IsEquationVar >
 Data for element-based fields. More...
 
struct  EvalMappedCoords
 Transform to evalate mapped coordinates. More...
 
struct  ExpandDimension
 Replaces dimension placeholder with state. More...
 
class  Expression
 Abstract interface for classes that can hold a proto expression. More...
 
class  ExpressionBase
 Boilerplate implementation. More...
 
struct  ExpressionGroup
 Primitive transform to evaluate a group of expressions. More...
 
struct  ExpressionGroupTag
 Tags a terminal that triggers expression grouping. More...
 
struct  ExpressionProperties
 Convenience struct to get easy access to the numberof variables and their type. More...
 
struct  ExpressionRunner
 Find the concrete element type of each field variable. More...
 
struct  ExpressionRunner< ElementTypesT, ExprT, SupportETYPE, VariablesT, VariablesEtypesT, NbVarsT, NbVarsT >
 When we recursed to the last variable, actually run the expression. More...
 
struct  ExprVarArity
 Gets the arity (max index) for the numbered variables. More...
 
struct  ExtractDiag
 Primitive transform to perform the transpose. More...
 
struct  ExtractDiagTag
 Terminal to indicate we want a diagonal. More...
 
struct  FieldBase
 Base class for field data. More...
 
struct  FieldInterpolation
 Interpolate a field at the current gauss point. More...
 
class  FieldSynchronizer
 Helper struct to synchronize fields at the end of a loop. More...
 
struct  FieldTypes
 Match field types. More...
 
struct  FieldVariable
 
struct  FieldWidth
 Get the width of a field varaible, based on the variable type. More...
 
struct  FieldWidth< ScalarField, SF >
 Scalars have width 1. More...
 
struct  FieldWidth< VectorField, SF >
 VectorFields have the same dimension as the problem domain. More...
 
struct  FilterElementField
 
struct  FilterElementField< IsEqVarT, boost::mpl::void_ >
 
struct  FilterEquationVars
 Filter out element-based fields from the possible equation variables. More...
 
struct  FilterMatrixSizes
 Filter the matrix size so equation variables are the only ones left with non-zero size. More...
 
struct  ForEachDimension
 Primitive transform to evaluate a group of expressions. More...
 
struct  ForEachDimensionGrammar
 Matches and evaluates groups of expressions matching GrammarT. More...
 
struct  ForEachDimensionTag
 Tags a terminal that indicates that indicates the argument should be evaluated for each dimension index. More...
 
struct  FunctionBase
 Base class of all functions that can be evaluated using "default" C++ semantics. More...
 
struct  FunctionPointer
 Matches a terminal containing a function pointer. More...
 
struct  GaussGrammar
 
struct  GaussIntegral
 Primitive transform that evaluates an integral using the Gauss points and returns the result as a reference to a stored matrix (or scalar) More...
 
struct  GaussOrder
 Static constant for the Gauss integration order. More...
 
struct  GaussPointEval
 Transform to evaluate Gauss point access. More...
 
struct  GaussPointTag
 
struct  GaussWeightEval
 Transform to evaluate Gauss weight access. More...
 
struct  GaussWeightTag
 
class  GeometricSupport
 Functions and operators associated with a geometric support. More...
 
struct  GetCoordinates
 Provide access to the geometry coordinates in case of node expressions. More...
 
struct  GetElementResultType
 Dummy for non-element fields. More...
 
struct  GetElementResultType< T, ElementBased< Dim > >
 
struct  GetNodeIdx
 
struct  GetOrder
 Get the order of variable I. More...
 
struct  GetOrderFromData
 
struct  GetOrderFromData< DataT, boost::mpl::void_ >
 
struct  GetRHSVector
 
struct  GetSolutionVector
 
struct  GradientOp
 Evaluate the gradient. More...
 
struct  GroupGrammar
 Matches and evaluates groups of expressions matching GrammarT. More...
 
struct  HasIdx
 Check if index I is used in the expression. More...
 
struct  IdentityTag
 
struct  IndexedNodeAssign
 Modify only a single component of a field. More...
 
struct  IndexedNodeAssignmentCases
 
struct  IndexLooper
 
struct  IndexTag
 Tag terminals used as index. More...
 
struct  IndexType
 Extract an index-type from a var. More...
 
struct  IndexType< Var< I, T > >
 
struct  IndexValues
 Evaluate the value of both indices to the integral constants given in the template arguments. More...
 
struct  Integers
 Matches integer terminals. More...
 
struct  IntegralTag
 Tag for an integral, wit the order provided as an MPL integral constant. More...
 
struct  IntegrationOrder
 Determine integration order based on the order of the shape function. More...
 
struct  IntegrationOrder< 1 >
 
struct  IntegrationOrder< 2 >
 
struct  InterpolationOp
 Interpolated values at mapped coordinates. More...
 
struct  IsEquationData
 Predicate to check if data belongs to an equation variable. More...
 
struct  IsEquationVariable
 Transform to set a range with true indicating a variable that has an equation, and false for no equation. More...
 
struct  IsSubCols
 Match subrows. More...
 
struct  IsSubMatrix
 Match submatrices. More...
 
struct  IsSubRows
 Match subrows. More...
 
struct  IsVectorSubRows
 Match subrows for vectors. More...
 
struct  JacobianDeterminantOp
 Jacobian determinant. More...
 
struct  JacobianOp
 Jacobian matrix. More...
 
struct  LazyElementGrammar
 Less restricitve grammar to get the result of expressions that are in an integral as well. More...
 
struct  LazyIndexedGrammar
 
class  LSSWrapper
 Proto-ready terminal type for wrapping a component. More...
 
class  LSSWrapperImpl
 
struct  Lump
 Lump the matrix. More...
 
struct  LumpTag
 
struct  MakeSFOp
 Helper struct to declare custom types. More...
 
struct  MakeVarData
 Metafunction class for creating an appropriate data type. More...
 
struct  MakeVarData< VariablesT, EtypeT, EtypeT, EquationVariablesT, MatrixSizesT, EMatrixSizeT >
 
struct  MappedCoordTerms
 Possible types for mapped coords. More...
 
struct  MappedOpBase
 Base class for the implementation of operations that depend on mapped coordinates (CRTP pattern) More...
 
struct  MappedVarOpBase
 Base class for the implementation of operations that depend on mapped coordinates (CRTP pattern) More...
 
struct  MathOpDefault
 math operators evaluated using default C++ meaning More...
 
struct  MathOpDefaultCases
 Split up MapthOpDefault using cases, for better compilation performance. More...
 
struct  MathTerminals
 Matches terminal values that can be used in math formulas. More...
 
struct  MatrixAssignOpsCases
 Allowed block assignment operations. More...
 
struct  MatrixColAccess
 
struct  MatrixElementAccess
 Primitive transform to access matrix elements using operator() More...
 
struct  MatrixRowAccess
 
struct  MatrixSizePerVar
 The size of the element matrix for each variable. More...
 
struct  MatrixSubscript
 Primitive transform to access matrix elements using operator[]. More...
 
struct  MatrixTerm
 Match matrix terms (only matrix products need special treatment) More...
 
struct  MatVec
 Matches matrices and vectors. More...
 
struct  MaxOrder
 Get the maximum order of the shape functions used in Expr. More...
 
struct  NablaOp
 Gradient. More...
 
struct  NodalValues
 Get nodal values. More...
 
struct  NodalValuesTag
 
struct  NodeAssign
 Handle modification of a field. More...
 
struct  NodeAssignGrammar
 
struct  NodeAssignmentCases
 
class  NodeData
 
struct  NodeGrammar
 
struct  NodeIdxOp
 
struct  NodeLooper
 Loop over nodes, using static-sized vectors to store coordinates. More...
 
struct  NodeLooperDim
 Loop over nodes, when the dimension is known. More...
 
struct  NodeMath
 
struct  NodeMathBase
 Matches expressions that can be used as terms in math formulas for element expressions. More...
 
struct  NodeMathIndexed
 
class  NodesExpression
 Expression for looping over nodes. More...
 
struct  NodesOp
 Element nodes. More...
 
struct  NodesTimesDim
 Given a variable's data, get the product of the number of nodes with the dimension variable (i.e. the size of the element matrix if this variable would be the only one in the problem) More...
 
struct  NodesTimesDim< boost::mpl::void_, SF, SupportSF >
 
struct  NodeStreamOutputIndexed
 
struct  NodeVarData
 Struct keeping track of data associated with numbered variables in node expressions. More...
 
struct  NodeVarData< ScalarField >
 
struct  NodeVarData< VectorField, Dim >
 
struct  NormalOp
 Face Normal. More...
 
struct  NormTag
 
struct  NumberedTermType
 Shorthand for terminals containing a numbered variable. More...
 
struct  ParsedFunctionGrammar
 
struct  ParsedScalarFunctionTransform
 
struct  ParsedVectorFunctionTransform
 Primitive transform to evaluate a function with the function parser. More...
 
struct  PhysicsConstant
 Refers to a value from the physical model. More...
 
struct  PhysicsConstantStorage
 Storage for the values pointed to by a PhysicsConstant. More...
 
struct  pow_fun
 Pow function based on Proto docs example. More...
 
class  ProtoAction
 Class to encapsulate Proto actions. More...
 
struct  ProtoDefaultFunction
 Matches a terminal containing a proto function that can be evaluated using operator() More...
 
struct  ProtoEvaluatedFunction
 Wrap the vectorial function, adding extra data that may be filled before expression evaluation. More...
 
struct  ReplaceConfigurableConstant
 Transform to replace an occurance of ConfigurableConstant with a reference to its value. More...
 
struct  ReplaceConfigurableConstants
 Grammar replacing ConfigurableConstants in an expression. More...
 
struct  ReplacePhysicsConstant
 Transform to replace an occurance of PhysicsConstant with a reference to its value. More...
 
struct  ReplacePhysicsConstants
 Grammar replacing PhysicsConstants in an expression. More...
 
struct  RestrictToElementType
 Primitive transform to evaluate a group of expressions for specific element types only. More...
 
struct  RestrictToElementTypeGrammar
 
struct  RestrictToElementTypeGrammarSingle
 Matches and evaluates groups of expressions matching GrammarT, optionally restricting to certain element types. More...
 
struct  RestrictToElementTypeTag
 
struct  RHSAccumulator
 
struct  RHSVectorGrammar
 Matches placeholders for the solution vector. More...
 
struct  RowTag
 Placeholders to indicate if we should get a row or a column. More...
 
struct  RunFunctionOp
 Runs a shape function operation that is used as a function call. More...
 
struct  RunTerminalOp
 Runs a shape function operation that is used as a terminal. More...
 
struct  Scalar
 Matches scalar terminals. More...
 
struct  ScalarField
 Field data for a scalar field. More...
 
struct  ScalarFunction
 
struct  SetIdentity
 
struct  SetRHSGrammar
 Matches the proper formulation of Neumann BC. More...
 
struct  SetRHSSetter
 
struct  SetSolutionGrammar
 Matches the proper formulation of Neumann BC. More...
 
struct  SetSolutionSetter
 
struct  SetZero
 
struct  SFOp
 Wrap all operations in a template, so we can detect ops using a wildcard. More...
 
struct  SFOp< CustomSFOp< OpT > >
 
struct  SFOps
 Shape-function related operations. More...
 
struct  ShapeFunctionOp
 Shape functions. More...
 
struct  SingleExprElementGrammar
 
struct  SingleExprNodeGrammar
 Matches and evaluates element-wise expressions. More...
 
struct  SolutionVectorGrammar
 Matches placeholders for the solution vector. More...
 
struct  SolutionVectorTag
 Tag for a Neumann BC. More...
 
struct  StoredMatrixExpression
 Wraps a given expression, so the value that it represents can be stored inside the expression itself. More...
 
struct  StreamOutput
 Stream output. More...
 
struct  StreamOutputIndexed
 
struct  SubCols
 A subblock of columns. More...
 
struct  SubMatrix
 A submatrix. More...
 
struct  SubRows
 A subblock of rows. More...
 
struct  SystemMatrixTag
 Tag for system matrix. More...
 
struct  SystemRHSTag
 Tag for RHS. More...
 
struct  TransposeFunction
 Terminal to indicate we want a transpose. More...
 
struct  TransposeGrammar
 
struct  TransposeTransform
 Primitive transform to perform the transpose. More...
 
struct  ValueType
 Extract the real value type of a given type, which might be an Eigen expression. More...
 
struct  ValueType< Eigen::CwiseUnaryOp< Eigen::internal::scalar_multiple_op< Real >, const MatrixT > >
 Specialise for multiplication with a scalar. More...
 
struct  ValueType< Eigen::Matrix< Real, I, J > >
 Specialize for Eigen matrices. More...
 
struct  ValueType< Eigen::Transpose< const Real > >
 Specialise for transpose of reals. More...
 
struct  ValueType< Real >
 Specialise for reals. More...
 
struct  Var
 Creates a variable that has unique ID I. More...
 
struct  VarArity
 
struct  VarChild
 Helper to get the variable type at a child of an expression. More...
 
struct  VarDataType
 Helper to get the data type for the given variable. More...
 
struct  VarValue
 Returns the data value of a numbered variable. More...
 
struct  VectorField
 Field data for a vector having the dimension of the problem. More...
 
struct  VectorFunction
 
struct  VectorSubRows
 A subblock for the element vector. More...
 
struct  VolumeOp
 Element volume. More...
 
struct  WrapExpression
 Grammar to do the expression wrapping. More...
 
struct  WrapMatrixExpression
 
struct  WrappableElementExpressions
 Matches expressions that can be wrapped. More...
 
struct  WrappableNodeExpressions
 Matches expressions that need to be wrapped in an extension before they can be evaluated (i.e. Eigen products) More...
 
struct  ZeroTag
 

Typedefs

typedef LSSWrapper< SystemMatrixTagSystemMatrix
 Represents a system matrix. More...
 
typedef LSSWrapper< SystemRHSTagSystemRHS
 Represents an RHS. More...
 
typedef LSSWrapper< DirichletBCTagDirichletBC
 Used to create placeholders for a Dirichlet condition. More...
 
typedef mesh::LagrangeP1::CellTypes DefaultElementTypes
 Default element types supported by elements expressions. More...
 
typedef LSSWrapper< SolutionVectorTagSolutionVector
 Used to create placeholders for a Neumann condition. More...
 

Functions

void do_assign_op_matrix (boost::proto::tag::assign, math::LSS::Matrix &lss_matrix, const math::LSS::BlockAccumulator &block_accumulator)
 Translate tag to operator. More...
 
void do_assign_op_matrix (boost::proto::tag::plus_assign, math::LSS::Matrix &lss_matrix, const math::LSS::BlockAccumulator &block_accumulator)
 Translate tag to operator. More...
 
void do_assign_op_rhs (boost::proto::tag::assign, math::LSS::Vector &lss_rhs, const math::LSS::BlockAccumulator &block_accumulator)
 Translate tag to operator. More...
 
void do_assign_op_rhs (boost::proto::tag::plus_assign, math::LSS::Vector &lss_rhs, const math::LSS::BlockAccumulator &block_accumulator)
 Translate tag to operator. More...
 
template<typename TagT , typename TargetT >
void do_assign_op (TagT, Real &lhs, TargetT &lss_matrix, const math::LSS::BlockAccumulator &block_accumulator)
 Translate tag to operator. More...
 
void assign_dirichlet (math::LSS::System &lss, const Real new_value, const Real old_value, const int node_idx, const Uint offset)
 Helper function for assignment. More...
 
template<typename NewT , typename OldT >
void assign_dirichlet (math::LSS::System &lss, const NewT &new_value, const OldT &old_value, const int node_idx, const Uint offset)
 Overload for vector types. More...
 
mesh::Fieldfind_field (mesh::Elements &elements, const std::string &tag)
 Helper function to find a field starting from a region. More...
 
template<Uint Order, typename ExprT >
boost::proto::result_of::make_expr< boost::proto::tag::function, IntegralTag< boost::mpl::int_< Order > >, ExprT const & >::type const integral (ExprT const &expr)
 
template<typename ElementTypesT , typename ExprT >
void for_each_element (mesh::Region &root_region, const ExprT &expr)
 
template<typename ExprT , typename ElementTypes >
boost::shared_ptr< ElementsExpression< ExprT, ElementTypes > > elements_expression (ElementTypes, const ExprT &expr)
 
template<typename ExprT >
boost::shared_ptr< ElementsExpression< ExprT, DefaultElementTypes > > elements_expression (const ExprT &expr)
 
template<typename ExprT >
boost::shared_ptr< NodesExpression< ExprT, boost::mpl::range_c< Uint, 1, 4 > > > nodes_expression (const ExprT &expr)
 
template<typename ExprT >
boost::shared_ptr< NodesExpression< ExprT, boost::mpl::range_c< Uint, 1, 2 > > > nodes_expression_1d (const ExprT &expr)
 
template<typename ExprT >
boost::shared_ptr< NodesExpression< ExprT, boost::mpl::range_c< Uint, 2, 3 > > > nodes_expression_2d (const ExprT &expr)
 
template<typename ExprT >
boost::shared_ptr< NodesExpression< ExprT, boost::mpl::range_c< Uint, 3, 4 > > > nodes_expression_3d (const ExprT &expr)
 
template<typename GrammarT , typename ExprT , typename DataT >
void eval_expr (const ExprT &expr, DataT &data)
 
template<Uint Exp, typename Arg >
boost::proto::result_of::make_expr< boost::proto::tag::function, pow_fun< Exp >, Arg const & >::type const pow (Arg const &arg)
 
template<typename ResultT , typename CoordsT >
void evaluate_function (const ProtoEvaluatedFunction &func, const CoordsT &coords, ResultT &result)
 
const common::Table< Real > & extract_coordinates (const mesh::Region &region)
 Extract the coordinates, given a specific region. More...
 
mesh::Fieldfind_field (mesh::Region &region, const std::string &tag)
 Helper function to find a field starting from a region. More...
 
template<Uint dim, typename ExprT >
void for_each_node (mesh::Region &root_region, const ExprT &expr)
 
template<typename ExprT >
void for_each_node (mesh::Region &root_region, const ExprT &expr)
 
boost::shared_ptr< ProtoActioncreate_proto_action (const std::string &name, const boost::shared_ptr< Expression > &expression)
 Create a new ProtoAction, immediatly setting the expression. More...
 
template<typename T >
void print_error ()
 Using this on a type always gives a compile error showing the type of T. More...
 
template<typename T >
void print_error (const T &)
 
Real atan_vec (const RealVector2 &vec)
 Accept a 2D realvector for atan2. More...
 
Real max (const Real a, const Real b)
 Maximum between two scalars. More...
 
Real min (const Real a, const Real b)
 Minimum between two scalars. More...
 

Variables

boost::proto::terminal< TransposeFunction >::type const transpose = {{}}
 
boost::proto::terminal< ExtractDiagTag >::type const diagonal = {{}}
 
static boost::proto::terminal< RowTag >::type _row = {}
 
static boost::proto::terminal< ColTag >::type _col = {}
 
static boost::proto::terminal< NormTag >::type const _norm = {}
 
static boost::proto::terminal< LumpTag >::type const lump = {}
 
static MakeSFOp< GradientOp >::type const gradient = {}
 
static MakeSFOp< DivOp >::type const divergence = {}
 
static boost::proto::terminal< ElementQuadratureTag >::type element_quadrature = {}
 Use element_quadrature(expr1, expr2, ..., exprN) to evaluate a group of expressions. More...
 
static boost::proto::terminal< ElementSystemMatrix< boost::mpl::int_< 0 > > >::type const _A = {}
 Some predefined element matrices (more can be user-defined, but you have to change the number in the MPL int_ so the type is long and tedious) More...
 
static boost::proto::terminal< ElementVector< boost::mpl::int_< 0 > > >::type const _a = {}
 
static boost::proto::terminal< ElementSystemMatrix< boost::mpl::int_< 1 > > >::type const _T = {}
 
static boost::proto::terminal< ElementMatrix< boost::mpl::int_< 2 > > >::type const _M = {}
 
static boost::proto::terminal< ElementRHS >::type const _x = {}
 Terminal for the element RHS vector ("b") More...
 
boost::proto::terminal< SFOp< VolumeOp > >::type const volume = {}
 Static terminals that can be used in proto expressions. More...
 
boost::proto::terminal< SFOp< NodesOp > >::type const nodes = {}
 
boost::proto::terminal< SFOp< CoordinatesOp > >::type const coordinates = {}
 
boost::proto::terminal< SFOp< JacobianOp > >::type const jacobian = {}
 
boost::proto::terminal< SFOp< JacobianDeterminantOp > >::type const jacobian_determinant = {}
 
boost::proto::terminal< SFOp< NormalOp > >::type const normal = {}
 
boost::proto::terminal< SFOp< NablaOp > >::type const nabla = {}
 
boost::proto::terminal< SFOp< ShapeFunctionOp > >::type const N = {}
 
static boost::proto::terminal< NodalValuesTag >::type const nodal_values = {}
 
static boost::proto::terminal< ElementVectorTag >::type const element_vector = {}
 
static boost::proto::terminal< ExpressionGroupTag >::type group = {}
 Use group(expr1, expr2, ..., exprN) to evaluate a group of expressions. More...
 
static boost::proto::terminal< DimensionIdxTag >::type _dim = {}
 
static boost::proto::terminal< ForEachDimensionTag >::type for_each_dimension = {}
 Use for_each_dimension(expression) to execute expression for each dimension separately. More...
 
static boost::proto::terminal< GaussPointTag< GaussOrder< 1 > > >::type gauss_points_1 = {}
 
static boost::proto::terminal< GaussPointTag< GaussOrder< 2 > > >::type gauss_points_2 = {}
 
static boost::proto::terminal< GaussWeightTag< GaussOrder< 1 > > >::type gauss_weights_1 = {}
 
static boost::proto::terminal< GaussWeightTag< GaussOrder< 2 > > >::type gauss_weights_2 = {}
 
static boost::proto::terminal< IndexTag< boost::mpl::int_< 0 > > >::type const _i = {}
 Index looping over the dimensions of a variable. More...
 
static boost::proto::terminal< IndexTag< boost::mpl::int_< 1 > > >::type const _j = {}
 Index looping over the dimensions of a variable. More...
 
boost::proto::terminal< NodeIdxOp >::type const node_index = {}
 
ComponentBuilder< ProtoAction, common::Action, LibSolverProtoAction_Builder
 
static boost::proto::terminal< ZeroTag >::type _0 = {}
 Placeholder for the zero matrix. More...
 
static boost::proto::terminal< IdentityTag >::type _I = {}
 Placeholder for the identity matrix. More...
 
static boost::proto::terminal< std::ostream & >::type _cout = {std::cout}
 Wrap std::cout. More...
 
static boost::proto::terminal< double(*)(double) >::type const _sin = {&sin}
 
static boost::proto::terminal< double(*)(double, double) >::type const _atan2 = {&atan2}
 
static boost::proto::terminal< double(*)(const RealVector2 &) >::type const _atan_vec = {&atan_vec}
 
static boost::proto::terminal< double(*)(double) >::type const _exp = {&exp}
 
static boost::proto::terminal< double(*)(double) >::type const _sqrt = {&sqrt}
 
static boost::proto::terminal< double(*)(double) >::type const _abs = {&fabs}
 
static boost::proto::terminal< double(*)(double, double) >::type const _max = {&max}
 
static boost::proto::terminal< double(*)(double, double) >::type const _min = {&min}
 
static boost::proto::terminal< double(*)(double, double) >::type const _std_pow = {&std::pow}
 

Typedef Documentation

Default element types supported by elements expressions.

Definition at line 287 of file Expression.hpp.

Used to create placeholders for a Dirichlet condition.

Definition at line 31 of file DirichletBC.hpp.

Used to create placeholders for a Neumann condition.

Definition at line 30 of file SolutionVector.hpp.

Represents a system matrix.

Definition at line 66 of file BlockAccumulator.hpp.

Represents an RHS.

Definition at line 74 of file BlockAccumulator.hpp.

Function Documentation

void cf3::solver::actions::Proto::assign_dirichlet ( math::LSS::System lss,
const Real  new_value,
const Real  old_value,
const int  node_idx,
const Uint  offset 
)
inline

Helper function for assignment.

Definition at line 34 of file DirichletBC.hpp.

void cf3::solver::actions::Proto::assign_dirichlet ( math::LSS::System lss,
const NewT &  new_value,
const OldT &  old_value,
const int  node_idx,
const Uint  offset 
)
inline

Overload for vector types.

Definition at line 43 of file DirichletBC.hpp.

Real cf3::solver::actions::Proto::atan_vec ( const RealVector2 vec)
inline

Accept a 2D realvector for atan2.

Definition at line 222 of file Terminals.hpp.

boost::shared_ptr< ProtoAction > create_proto_action ( const std::string &  name,
const boost::shared_ptr< Expression > &  expression 
)

Create a new ProtoAction, immediatly setting the expression.

Definition at line 155 of file ProtoAction.cpp.

void cf3::solver::actions::Proto::do_assign_op ( TagT  ,
Real &  lhs,
TargetT &  lss_matrix,
const math::LSS::BlockAccumulator block_accumulator 
)
inline

Translate tag to operator.

Definition at line 120 of file BlockAccumulator.hpp.

void cf3::solver::actions::Proto::do_assign_op_matrix ( boost::proto::tag::assign  ,
math::LSS::Matrix lss_matrix,
const math::LSS::BlockAccumulator block_accumulator 
)
inline

Translate tag to operator.

Definition at line 95 of file BlockAccumulator.hpp.

void cf3::solver::actions::Proto::do_assign_op_matrix ( boost::proto::tag::plus_assign  ,
math::LSS::Matrix lss_matrix,
const math::LSS::BlockAccumulator block_accumulator 
)
inline

Translate tag to operator.

Definition at line 101 of file BlockAccumulator.hpp.

void cf3::solver::actions::Proto::do_assign_op_rhs ( boost::proto::tag::assign  ,
math::LSS::Vector lss_rhs,
const math::LSS::BlockAccumulator block_accumulator 
)
inline

Translate tag to operator.

Definition at line 107 of file BlockAccumulator.hpp.

void cf3::solver::actions::Proto::do_assign_op_rhs ( boost::proto::tag::plus_assign  ,
math::LSS::Vector lss_rhs,
const math::LSS::BlockAccumulator block_accumulator 
)
inline

Translate tag to operator.

Definition at line 113 of file BlockAccumulator.hpp.

boost::shared_ptr< ElementsExpression<ExprT, ElementTypes> > cf3::solver::actions::Proto::elements_expression ( ElementTypes  ,
const ExprT &  expr 
)

Convenience method to construct an Expression to loop over elements

Returns
a shared pointer to the constructed expression

Definition at line 292 of file Expression.hpp.

boost::shared_ptr< ElementsExpression<ExprT, DefaultElementTypes> > cf3::solver::actions::Proto::elements_expression ( const ExprT &  expr)

Convenience method to construct an Expression to loop over elements

Returns
a shared pointer to the constructed expression

Definition at line 300 of file Expression.hpp.

void cf3::solver::actions::Proto::eval_expr ( const ExprT &  expr,
DataT &  data 
)
inline

Definition at line 42 of file ForEachDimension.hpp.

void cf3::solver::actions::Proto::evaluate_function ( const ProtoEvaluatedFunction func,
const CoordsT &  coords,
ResultT &  result 
)

Definition at line 69 of file Functions.hpp.

const common::Table<Real>& cf3::solver::actions::Proto::extract_coordinates ( const mesh::Region region)
inline

Extract the coordinates, given a specific region.

Definition at line 41 of file NodeData.hpp.

mesh::Field& cf3::solver::actions::Proto::find_field ( mesh::Region region,
const std::string &  tag 
)
inline

Helper function to find a field starting from a region.

Definition at line 88 of file NodeData.hpp.

mesh::Field& cf3::solver::actions::Proto::find_field ( mesh::Elements elements,
const std::string &  tag 
)
inline

Helper function to find a field starting from a region.

Definition at line 342 of file ElementData.hpp.

void cf3::solver::actions::Proto::for_each_element ( mesh::Region root_region,
const ExprT &  expr 
)

Definition at line 288 of file ElementLooper.hpp.

void cf3::solver::actions::Proto::for_each_node ( mesh::Region root_region,
const ExprT &  expr 
)

Definition at line 239 of file NodeLooper.hpp.

void cf3::solver::actions::Proto::for_each_node ( mesh::Region root_region,
const ExprT &  expr 
)

Visit all nodes used by root_region exactly once, executing expr

Parameters
variable_namesName of each of the variables, in case a linear system is solved
variable_sizesSize (number of scalars) that makes up each variable in the linear system, if any

Definition at line 260 of file NodeLooper.hpp.

boost::proto::result_of::make_expr< boost::proto::tag::function, IntegralTag< boost::mpl::int_<Order> >, ExprT const & >::type const cf3::solver::actions::Proto::integral ( ExprT const &  expr)
inline

Definition at line 94 of file ElementIntegration.hpp.

Real cf3::solver::actions::Proto::max ( const Real  a,
const Real  b 
)
inline

Maximum between two scalars.

Definition at line 228 of file Terminals.hpp.

Real cf3::solver::actions::Proto::min ( const Real  a,
const Real  b 
)
inline

Minimum between two scalars.

Definition at line 234 of file Terminals.hpp.

boost::shared_ptr< NodesExpression<ExprT, boost::mpl::range_c<Uint, 1, 4> > > cf3::solver::actions::Proto::nodes_expression ( const ExprT &  expr)

Convenience method to construct an Expression to loop over elements

Returns
a shared pointer to the constructed expression

Definition at line 308 of file Expression.hpp.

boost::shared_ptr< NodesExpression<ExprT, boost::mpl::range_c<Uint, 1, 2> > > cf3::solver::actions::Proto::nodes_expression_1d ( const ExprT &  expr)

Definition at line 315 of file Expression.hpp.

boost::shared_ptr< NodesExpression<ExprT, boost::mpl::range_c<Uint, 2, 3> > > cf3::solver::actions::Proto::nodes_expression_2d ( const ExprT &  expr)

Definition at line 322 of file Expression.hpp.

boost::shared_ptr< NodesExpression<ExprT, boost::mpl::range_c<Uint, 3, 4> > > cf3::solver::actions::Proto::nodes_expression_3d ( const ExprT &  expr)

Definition at line 329 of file Expression.hpp.

boost::proto::result_of::make_expr< boost::proto::tag::function , pow_fun<Exp> , Arg const & >::type const cf3::solver::actions::Proto::pow ( Arg const &  arg)

Definition at line 44 of file Functions.hpp.

void cf3::solver::actions::Proto::print_error ( )

Using this on a type always gives a compile error showing the type of T.

Definition at line 29 of file Terminals.hpp.

void cf3::solver::actions::Proto::print_error ( const T &  )

Definition at line 35 of file Terminals.hpp.

Variable Documentation

boost::proto::terminal<ZeroTag>::type _0 = {}
static

Placeholder for the zero matrix.

Definition at line 209 of file Terminals.hpp.

boost::proto::terminal< ElementSystemMatrix< boost::mpl::int_<0> > >::type const _A = {}
static

Some predefined element matrices (more can be user-defined, but you have to change the number in the MPL int_ so the type is long and tedious)

Definition at line 63 of file ElementMatrix.hpp.

boost::proto::terminal< ElementVector< boost::mpl::int_<0> > >::type const _a = {}
static

Definition at line 64 of file ElementMatrix.hpp.

boost::proto::terminal< double(*)(double) >::type const _abs = {&fabs}
static

Definition at line 245 of file Terminals.hpp.

boost::proto::terminal< double(*)(double, double) >::type const _atan2 = {&atan2}
static

Definition at line 241 of file Terminals.hpp.

boost::proto::terminal< double(*)(const RealVector2&) >::type const _atan_vec = {&atan_vec}
static

Definition at line 242 of file Terminals.hpp.

boost::proto::terminal<ColTag>::type _col = {}
static

Definition at line 504 of file EigenTransforms.hpp.

boost::proto::terminal< std::ostream & >::type _cout = {std::cout}
static

Wrap std::cout.

Definition at line 219 of file Terminals.hpp.

boost::proto::terminal< DimensionIdxTag >::type _dim = {}
static

Definition at line 27 of file ForEachDimension.hpp.

boost::proto::terminal< double(*)(double) >::type const _exp = {&exp}
static

Definition at line 243 of file Terminals.hpp.

boost::proto::terminal< IndexTag<boost::mpl::int_<0> > >::type const _i = {}
static

Index looping over the dimensions of a variable.

Definition at line 40 of file IndexLooping.hpp.

boost::proto::terminal<IdentityTag>::type _I = {}
static

Placeholder for the identity matrix.

Definition at line 216 of file Terminals.hpp.

boost::proto::terminal< IndexTag<boost::mpl::int_<1> > >::type const _j = {}
static

Index looping over the dimensions of a variable.

Definition at line 42 of file IndexLooping.hpp.

boost::proto::terminal< ElementMatrix< boost::mpl::int_<2> > >::type const _M = {}
static

Definition at line 66 of file ElementMatrix.hpp.

boost::proto::terminal< double(*)(double, double) >::type const _max = {&max}
static

Definition at line 246 of file Terminals.hpp.

boost::proto::terminal< double(*)(double, double) >::type const _min = {&min}
static

Definition at line 247 of file Terminals.hpp.

boost::proto::terminal<NormTag>::type const _norm = {}
static

Definition at line 510 of file EigenTransforms.hpp.

boost::proto::terminal<RowTag>::type _row = {}
static

Definition at line 503 of file EigenTransforms.hpp.

boost::proto::terminal< double(*)(double) >::type const _sin = {&sin}
static

Definition at line 240 of file Terminals.hpp.

boost::proto::terminal< double(*)(double) >::type const _sqrt = {&sqrt}
static

Definition at line 244 of file Terminals.hpp.

boost::proto::terminal< double(*)(double, double) >::type const _std_pow = {&std::pow}
static

Definition at line 248 of file Terminals.hpp.

boost::proto::terminal< ElementSystemMatrix< boost::mpl::int_<1> > >::type const _T = {}
static

Definition at line 65 of file ElementMatrix.hpp.

boost::proto::terminal<ElementRHS>::type const _x = {}
static

Terminal for the element RHS vector ("b")

Definition at line 74 of file ElementMatrix.hpp.

boost::proto::terminal< SFOp<CoordinatesOp> >::type const coordinates = {}

Definition at line 809 of file ElementOperations.hpp.

boost::proto::terminal<ExtractDiagTag>::type const diagonal = {{}}

Definition at line 294 of file EigenTransforms.hpp.

MakeSFOp<DivOp>::type const divergence = {}
static

Compute the divergence of the given variable v: div(v): evaluation inside integral at the current quadrature point div(v, xi): evaluation at any mapped coordinate xi

Definition at line 92 of file ElementGradDiv.hpp.

boost::proto::terminal<ElementQuadratureTag>::type element_quadrature = {}
static

Use element_quadrature(expr1, expr2, ..., exprN) to evaluate a group of expressions.

Definition at line 263 of file ElementIntegration.hpp.

boost::proto::terminal<ElementVectorTag>::type const element_vector = {}
static

Get the nodal values of a variable as a flattened vector, i.e. for 2D velocity on a triangle: [u1,u2,u3,v1,v2,v3]

Definition at line 165 of file ElementTransforms.hpp.

boost::proto::terminal< ForEachDimensionTag >::type for_each_dimension = {}
static

Use for_each_dimension(expression) to execute expression for each dimension separately.

Definition at line 77 of file ForEachDimension.hpp.

boost::proto::terminal< GaussPointTag< GaussOrder<1> > >::type gauss_points_1 = {}
static

Definition at line 83 of file GaussPoints.hpp.

boost::proto::terminal< GaussPointTag< GaussOrder<2> > >::type gauss_points_2 = {}
static

Definition at line 84 of file GaussPoints.hpp.

boost::proto::terminal< GaussWeightTag< GaussOrder<1> > >::type gauss_weights_1 = {}
static

Definition at line 92 of file GaussPoints.hpp.

boost::proto::terminal< GaussWeightTag< GaussOrder<2> > >::type gauss_weights_2 = {}
static

Definition at line 93 of file GaussPoints.hpp.

MakeSFOp<GradientOp>::type const gradient = {}
static

Compute the gradient value of the given variable v: grad(v): evaluation inside integral at the current quadrature point grad(v, xi): evaluation at any mapped coordinate xi

Definition at line 87 of file ElementGradDiv.hpp.

boost::proto::terminal< ExpressionGroupTag >::type group = {}
static

Use group(expr1, expr2, ..., exprN) to evaluate a group of expressions.

Definition at line 68 of file ExpressionGroup.hpp.

boost::proto::terminal< SFOp<JacobianOp> >::type const jacobian = {}

Definition at line 810 of file ElementOperations.hpp.

boost::proto::terminal< SFOp<JacobianDeterminantOp> >::type const jacobian_determinant = {}

Definition at line 811 of file ElementOperations.hpp.

boost::proto::terminal<LumpTag>::type const lump = {}
static

Definition at line 533 of file EigenTransforms.hpp.

boost::proto::terminal< SFOp<ShapeFunctionOp> >::type const N = {}

Definition at line 815 of file ElementOperations.hpp.

boost::proto::terminal< SFOp<NablaOp> >::type const nabla = {}

Definition at line 813 of file ElementOperations.hpp.

boost::proto::terminal<NodalValuesTag>::type const nodal_values = {}
static

Definition at line 128 of file ElementTransforms.hpp.

boost::proto::terminal<NodeIdxOp>::type const node_index = {}

Definition at line 72 of file NodeGrammar.hpp.

boost::proto::terminal< SFOp<NodesOp> >::type const nodes = {}

Definition at line 807 of file ElementOperations.hpp.

boost::proto::terminal< SFOp<NormalOp> >::type const normal = {}

Definition at line 812 of file ElementOperations.hpp.

Definition at line 34 of file ProtoAction.cpp.

boost::proto::terminal<TransposeFunction>::type const transpose = {{}}

Definition at line 258 of file EigenTransforms.hpp.

boost::proto::terminal< SFOp<VolumeOp> >::type const volume = {}

Static terminals that can be used in proto expressions.

Definition at line 806 of file ElementOperations.hpp.

Send comments to:
COOLFluiD Web Admin