FreePOOMA  2.4.1
Functions
Div.h File Reference

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

#include "Field/Field.h"
#include "Field/FieldCentering.h"
#include "Field/DiffOps/FieldStencil.h"
Include dependency graph for Div.h:
This graph shows which files directly or indirectly include this file:

Functions

template<class Mesh , class T , class EngineTag >
FieldStencilSimple
< DivSameToSame< T, Mesh,
CellType >, Field< Mesh, T,
EngineTag > >::Type_t 
divCellToCell (const Field< Mesh, T, EngineTag > &f)
template<class Mesh , class T , class EngineTag >
FieldStencilSimple
< DivVertToCell< T, Mesh >
, Field< Mesh, T, EngineTag >
>::Type_t 
divVertToCell (const Field< Mesh, T, EngineTag > &f)
template<class Mesh , class T , class EngineTag >
FieldStencilSimple
< DivCellToVert< T, Mesh >
, Field< Mesh, T, EngineTag >
>::Type_t 
divCellToVert (const Field< Mesh, T, EngineTag > &f)
template<class Mesh , class T , class EngineTag >
FieldStencilSimple
< DivSameToSame< T, Mesh,
VertexType >, Field< Mesh, T,
EngineTag > >::Type_t 
divVertToVert (const Field< Mesh, T, EngineTag > &f)

Detailed Description

Divergence operator (functor) on discrete Fields.

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

Div is a functor class serving as the "Functor" template parameter for FieldStencil<Functor,Expression>, which implements a discrete divergence 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 Div.[URM,RM].h .

div(): Divergence. Takes a Field of Vectors (or Tensors) on a discrete geometry with one centering and returns a Field of scalars (or Vectors) on a geometry that's the same except (possibly) for the centering. All the work happens in the embedded Div functor partial specialization, in its operator() methods.


Function Documentation

template<class Mesh , class T , class EngineTag >
FieldStencilSimple<DivSameToSame<T, Mesh, CellType>, Field<Mesh, T, EngineTag> >::Type_t divCellToCell ( const Field< Mesh, T, EngineTag > &  f)
template<class Mesh , class T , class EngineTag >
FieldStencilSimple<DivVertToCell<T, Mesh>, Field<Mesh, T, EngineTag> >::Type_t divVertToCell ( const Field< Mesh, T, EngineTag > &  f)
template<class Mesh , class T , class EngineTag >
FieldStencilSimple<DivCellToVert<T, Mesh>, Field<Mesh, T, EngineTag> >::Type_t divCellToVert ( const Field< Mesh, T, EngineTag > &  f)
template<class Mesh , class T , class EngineTag >
FieldStencilSimple<DivSameToSame<T, Mesh, VertexType>, Field<Mesh, T, EngineTag> >::Type_t divVertToVert ( const Field< Mesh, T, EngineTag > &  f)