FreePOOMA  2.4.1
Functions
Grad.h File Reference

Gradient operator (functor) on discrete Fields. More...

#include "Field/Field.h"
#include "Field/FieldCentering.h"
#include "Field/DiffOps/FieldStencil.h"
Include dependency graph for Grad.h:

Functions

template<class Mesh , class T , class EngineTag >
FieldStencilSimple
< GradVertToCell< T, Mesh >
, Field< Mesh, T, EngineTag >
>::Type_t 
gradVertToCell (const Field< Mesh, T, EngineTag > &f)
template<class Mesh , class T , class EngineTag >
FieldStencilSimple
< GradCellToVert< T, Mesh >
, Field< Mesh, T, EngineTag >
>::Type_t 
gradCellToVert (const Field< Mesh, T, EngineTag > &f)
template<class Mesh , class T , class EngineTag >
FieldStencilSimple
< GradSameToSame< T, Mesh,
CellType >, Field< Mesh, T,
EngineTag > >::Type_t 
gradCellToCell (const Field< Mesh, T, EngineTag > &f)
template<class Mesh , class T , class EngineTag >
FieldStencilSimple
< GradSameToSame< T, Mesh,
VertexType >, Field< Mesh, T,
EngineTag > >::Type_t 
gradVertToVert (const Field< Mesh, T, EngineTag > &f)

Detailed Description

Gradient operator (functor) on discrete Fields.

Wrapper function around FieldStencil<Grad>::operator() . The Div functors actually used are partial specializations of the generic Grad that come from Grad.UR for example.

Grad is a functor class serving as the "Functor" template parameter for FieldStencil<Functor,Expression>, which implements a discrete gradient operator. Partial specializations implement various combinations of input and output centerings, for specific coordinate systems, and different finite-difference orders, are defined in other headers like Grad.[URM,RM].h .

grad(): Gradient. Takes a scalar Field a discrete geometry with one centering and returns a Field of vectors on a geometry that's the same except (possibly) for the centering. All the work happens in the embedded Grad functor partial specialization, in its operator() methods.


Function Documentation

template<class Mesh , class T , class EngineTag >
FieldStencilSimple<GradVertToCell<T, Mesh>, Field<Mesh, T, EngineTag> >::Type_t gradVertToCell ( const Field< Mesh, T, EngineTag > &  f)
template<class Mesh , class T , class EngineTag >
FieldStencilSimple<GradCellToVert<T, Mesh>, Field<Mesh, T, EngineTag> >::Type_t gradCellToVert ( const Field< Mesh, T, EngineTag > &  f)
template<class Mesh , class T , class EngineTag >
FieldStencilSimple<GradSameToSame<T, Mesh, CellType>, Field<Mesh, T, EngineTag> >::Type_t gradCellToCell ( const Field< Mesh, T, EngineTag > &  f)
template<class Mesh , class T , class EngineTag >
FieldStencilSimple<GradSameToSame<T, Mesh, VertexType>, Field<Mesh, T, EngineTag> >::Type_t gradVertToVert ( const Field< Mesh, T, EngineTag > &  f)