SCIRun  5.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Types | Public Member Functions | Protected Attributes | List of all members
VField Class Reference

#include <VField.h>

Inheritance diagram for VField:
VGenericField< FIELD >

Public Types

typedef VMesh::index_type index_type
 Import a couple of useful typedefs from VMesh. More...
 
typedef VMesh::size_type size_type
 
typedef VMesh::coords_type coords_type
 
typedef VMesh::weight_type weight_type
 
typedef VMesh::index_array_type index_array_type
 
typedef VMesh::weight_array_type weight_array_type
 
typedef VMesh::dimension_type dimension_type
 

Public Member Functions

 VField ()
 
virtual ~VField ()
 
MeshHandle mesh ()
 mesh() and vmesh() get the handle to the mesh and its virtual interface More...
 
VMeshvmesh ()
 
FieldHandle field ()
 get a handle to the field More...
 
VFieldvfield ()
 for completeness get a pointer to itself More...
 
int basis_order ()
 
VMesh::size_type num_values ()
 get the number of values in the field (data at corner nodes of the elements) More...
 
VMesh::size_type num_evalues ()
 get the number of edge values in the field (for quadratic approximation) More...
 
void resize_fdata ()
 resize the data fields to match the number of nodes/edges in the mesh More...
 
void resize_values ()
 
void get_values_dimension (dimension_type &dims)
 
bool get_center (Core::Geometry::Point &p, index_type idx)
 
template<class T >
void get_value (T &val, index_type idx) const
 
template<class T >
void get_evalue (T &val, index_type idx) const
 
template<class T >
void get_value (T &val, VMesh::Node::index_type idx) const
 
template<class T >
void get_value (T &val, VMesh::Edge::index_type idx) const
 
template<class T >
void get_value (T &val, VMesh::Face::index_type idx) const
 
template<class T >
void get_value (T &val, VMesh::Cell::index_type idx) const
 
template<class T >
void get_value (T &val, VMesh::Elem::index_type idx) const
 
template<class T >
void get_value (T &val, VMesh::DElem::index_type idx) const
 
template<class T >
void get_value (T &val, VMesh::ENode::index_type idx) const
 
template<class T >
bool value (T &val, index_type idx) const
 
template<class T >
bool value (T &val, VMesh::Node::index_type idx) const
 
template<class T >
bool value (T &val, VMesh::Edge::index_type idx) const
 
template<class T >
bool value (T &val, VMesh::Face::index_type idx) const
 
template<class T >
bool value (T &val, VMesh::Cell::index_type idx) const
 
template<class T >
bool value (T &val, VMesh::Elem::index_type idx) const
 
template<class T >
bool value (T &val, VMesh::DElem::index_type idx) const
 
template<class T >
void get_weighted_value (T &val, const index_type *idx, const weight_type *w, size_type sz) const
 Functions for getting a weighted value. More...
 
template<class T >
void get_weighted_value (T &val, index_array_type idx, weight_array_type w) const
 
template<class T >
void get_weighted_evalue (T &val, const index_type *idx, const weight_type *w, size_type sz) const
 
template<class T >
void get_weighted_evalue (T &val, index_array_type idx, weight_array_type w) const
 
template<class T >
void set_value (const T &val, index_type idx)
 
template<class T >
void set_evalue (const T &val, index_type idx)
 
template<class T >
void set_value (const T &val, VMesh::Node::index_type idx)
 
template<class T >
void set_value (const T &val, VMesh::Edge::index_type idx)
 
template<class T >
void set_value (const T &val, VMesh::Face::index_type idx)
 
template<class T >
void set_value (const T &val, VMesh::Cell::index_type idx)
 
template<class T >
void set_value (const T &val, VMesh::Elem::index_type idx)
 
template<class T >
void set_value (const T &val, VMesh::DElem::index_type idx)
 
template<class T >
void set_value (const T &val, VMesh::ENode::index_type idx)
 
template<class T >
void set_values (const std::vector< T > &values)
 Get/Set all values at once. More...
 
template<class T >
void set_values (const T *data, size_type sz, index_type offset=0)
 
template<class T >
void get_values (std::vector< T > &values) const
 
template<class T >
void get_values (T *data, size_type sz, index_type offset=0) const
 
template<class T >
void set_values (const std::vector< T > &values, VMesh::Node::array_type nodes)
 
template<class T >
void set_values (const std::vector< T > &values, VMesh::Elem::array_type elems)
 
template<class T , class ARRAY >
void set_values (const std::vector< T > &values, ARRAY &idx)
 
template<class T >
void set_values (const T *values, VMesh::Node::array_type nodes)
 
template<class T >
void set_values (const T *values, VMesh::Elem::array_type elems)
 
template<class T , class ARRAY >
void set_values (const T *values, ARRAY &idx)
 
template<class T >
void get_values (std::vector< T > &values, VMesh::Node::array_type nodes) const
 
template<class T >
void get_values (std::vector< T > &values, VMesh::Elem::array_type elems) const
 
template<class T , class ARRAY >
void get_values (std::vector< T > &values, ARRAY &idx) const
 
template<class T >
void get_values (T *values, VMesh::Node::array_type nodes) const
 
template<class T >
void get_values (T *values, VMesh::Elem::array_type elems) const
 
template<class T , class ARRAY >
void get_values (T *values, ARRAY &idx) const
 
template<class T >
void set_all_values (const T val)
 Set all values to a specific value. More...
 
template<class INDEX >
void copy_weighted_value (VField *field, index_type *idx, weight_type *w, size_type sz, INDEX i) const
 Functions for getting a weighted value. More...
 
template<class INDEX , class ARRAY >
void copy_weighted_value (VField *field, ARRAY idx, weight_array_type w, INDEX i) const
 
template<class INDEX >
void copy_weighted_evalue (VField *field, index_type *idx, weight_type *w, size_type sz, INDEX i) const
 
template<class INDEX , class ARRAY >
void copy_weighted_evalue (VField *field, ARRAY idx, weight_array_type w, INDEX i) const
 
void clear_all_values ()
 
template<class T >
void set_evalues (const std::vector< T > &values)
 
template<class T >
void set_evalues (const T *data, size_type sz, index_type offset=0)
 
template<class T >
void get_evalues (std::vector< T > &values) const
 
template<class T >
void get_evalues (T *data, size_type sz, index_type offset=0) const
 
template<class INDEX1 , class INDEX2 >
void copy_value (VField *field, INDEX1 idx1, INDEX2 idx2)
 
template<class INDEX1 , class INDEX2 >
void copy_evalue (VField *field, INDEX1 idx1, INDEX2 idx2)
 Same for edge values. More...
 
template<class INDEX1 , class INDEX2 >
void copy_values (VField *field, INDEX1 idx1, INDEX2 idx2, size_type sz)
 
template<class INDEX1 , class INDEX2 >
void copy_evalues (VField *field, INDEX1 idx1, INDEX2 idx2, size_type sz)
 Same for edge values. More...
 
void copy_values (VField *field)
 
void copy_evalues (VField *field)
 
bool min (double &mn, index_type &idx)
 Maximum and minimum of values (with index to see where maximum is located) More...
 
bool min (double &mn)
 
bool max (double &mx, index_type &idx) const
 
bool max (double &mx) const
 
bool minmax (double &mn, index_type &idxmn, double &mx, index_type idxmx) const
 Combined min max for efficiency. More...
 
bool minmax (double &mn, double &mx) const
 version of minmax without indices More...
 
void size (VMesh::Node::size_type &sz)
 
void size (VMesh::ENode::size_type &sz)
 
int dimension ()
 dimensions of the element 0 .. 3 More...
 
int dofs ()
 number of degree of freedoms in each element type in the mesh More...
 
template<class ARRAY , class DATA >
void minterpolate (ARRAY &val, const VMesh::coords_array_type &coords, VMesh::index_type idx, DATA def_value) const
 
template<class ARRAY >
void minterpolate (ARRAY &val, const VMesh::coords_array_type &coords, VMesh::index_type idx) const
 
template<class T >
void interpolate (T &val, const VMesh::coords_type &coords, VMesh::index_type idx, T def_value=(static_cast< T >(0))) const
 
template<class ARRAY , class DATA >
void minterpolate (ARRAY &val, const std::vector< Core::Geometry::Point > &points, DATA def_value=(static_cast< DATA >(0))) const
 
template<class ARRAY , class DATA >
void minterpolate (ARRAY &val, const std::vector< Core::Geometry::Point > &points, DATA def_value, VMesh::MultiElemInterpolate &ei) const
 
template<class T >
bool interpolate (T &val, const Core::Geometry::Point &point, T def_value=(static_cast< T >(0))) const
 
template<class T >
bool interpolate (T &val, const Core::Geometry::Point &point, T def_value, VMesh::ElemInterpolate &ei) const
 
void interpolate (Core::Geometry::Point &val, const VMesh::coords_type &coords, VMesh::index_type idx) const
 
template<class T >
void interpolate (T &val, const VMesh::coords_type &coords, VMesh::Edge::index_type idx) const
 
template<class T >
void interpolate (T &val, const VMesh::coords_type &coords, VMesh::Face::index_type idx) const
 
template<class T >
void interpolate (T &val, const VMesh::coords_type &coords, VMesh::Cell::index_type idx) const
 
template<class T >
void interpolate (T &val, const VMesh::coords_type &coords, VMesh::Elem::index_type idx) const
 
template<class T >
void interpolate (T &val, const VMesh::coords_type &coords, VMesh::DElem::index_type idx) const
 
template<class ARRAY >
void minterpolate (ARRAY &val, const VMesh::coords_array_type &coords, VMesh::Edge::index_type idx) const
 
template<class ARRAY >
void minterpolate (ARRAY &val, const VMesh::coords_array_type &coords, VMesh::Face::index_type idx) const
 
template<class ARRAY >
void minterpolate (ARRAY &val, const VMesh::coords_array_type &coords, VMesh::Cell::index_type idx) const
 
template<class ARRAY >
void minterpolate (ARRAY &val, const VMesh::coords_array_type &coords, VMesh::Elem::index_type idx) const
 
template<class ARRAY >
void minterpolate (ARRAY &val, const VMesh::coords_array_type &coords, VMesh::DElem::index_type idx) const
 
template<class T >
void gradient (StackVector< T, 3 > &val, const VMesh::coords_type &coords, VMesh::index_type idx, T def_value=(static_cast< T >(0))) const
 
template<class T >
void mgradient (std::vector< StackVector< T, 3 > > &val, const VMesh::coords_array_type &coords, VMesh::index_type idx, T def_value=(static_cast< T >(0))) const
 
template<class T >
bool gradient (StackVector< T, 3 > &val, const Core::Geometry::Point &point, T def_value=(static_cast< T >(0))) const
 
template<class T >
bool gradient (StackVector< T, 3 > &val, const Core::Geometry::Point &point, T def_value, VMesh::ElemGradient &eg) const
 
template<class T >
void mgradient (std::vector< StackVector< T, 3 > > &val, const std::vector< Core::Geometry::Point > &points, T def_value=(static_cast< T >(0))) const
 
template<class T >
void mgradient (std::vector< StackVector< T, 3 > > &val, const std::vector< Core::Geometry::Point > &points, T def_value, VMesh::MultiElemGradient &eg) const
 
template<class T >
void gradient (StackVector< T, 3 > &val, const VMesh::coords_type &coords, VMesh::Edge::index_type idx) const
 Different versions for different index types. More...
 
template<class T >
void gradient (StackVector< T, 3 > &val, const VMesh::coords_type &coords, VMesh::Face::index_type idx) const
 
template<class T >
void gradient (StackVector< T, 3 > &val, const VMesh::coords_type &coords, VMesh::Cell::index_type idx) const
 
template<class T >
void gradient (StackVector< T, 3 > &val, const VMesh::coords_type &coords, VMesh::Elem::index_type idx) const
 
template<class T >
void gradient (StackVector< T, 3 > &val, const VMesh::coords_type &coords, VMesh::DElem::index_type idx) const
 
void update_mesh_pointer (Mesh *mesh)
 internal function - this one may change in the future More...
 
void * get_values_pointer ()
 
void * get_evalues_pointer ()
 
void * fdata_pointer ()
 
void * efdata_pointer ()
 
bool is_nodata ()
 
bool is_constantdata ()
 
bool is_lineardata ()
 
bool is_nonlineardata ()
 
bool is_quadraticdata ()
 
bool is_cubicdata ()
 
bool is_constantmesh ()
 
bool is_linearmesh ()
 
bool is_nonlinearmesh ()
 
bool is_quadraticmesh ()
 
bool is_cubicmesh ()
 
bool is_isomorphic ()
 
bool is_scalar ()
 
bool is_pair ()
 
bool is_vector ()
 
bool is_tensor ()
 
bool is_char ()
 
bool is_unsigned_char ()
 
bool is_short ()
 
bool is_unsigned_short ()
 
bool is_int ()
 
bool is_unsigned_int ()
 
bool is_long ()
 
bool is_unsigned_long ()
 
bool is_longlong ()
 
bool is_unsigned_longlong ()
 
bool is_float ()
 
bool is_double ()
 
bool is_type (char *)
 
bool is_type (unsigned char *)
 
bool is_type (short *)
 
bool is_type (unsigned short *)
 
bool is_type (int *)
 
bool is_type (unsigned int *)
 
bool is_type (long *)
 
bool is_type (unsigned long *)
 
bool is_type (long long *)
 
bool is_type (unsigned long long *)
 
bool is_type (double *)
 
bool is_type (float *)
 
bool is_type (Core::Geometry::Vector *)
 
bool is_type (Core::Geometry::Tensor *)
 
template<class T >
bool is_type (T *)
 
std::string get_data_type ()
 
bool is_signed_integer ()
 
bool is_unsigned_integer ()
 
bool is_integer ()
 
void copy_properties (VField *ifield)
 
template<class T >
void set_property (const std::string &name, const T &val, bool is_transient)
 
template<class T >
bool get_property (const std::string &name, T &val)
 
bool is_property (const std::string &name)
 

Protected Attributes

Fieldfield_
 
Meshmesh_
 
PropertyManagerpm_
 
VMeshvmesh_
 
VFDatavfdata_
 
int basis_order_
 
int number_of_nodes_
 
int number_of_enodes_
 
int element_dim_
 
int element_dofs_
 
bool is_scalar_
 
bool is_pair_
 
bool is_vector_
 
bool is_tensor_
 
bool is_time_
 
std::string data_type_
 

Member Typedef Documentation

Import a couple of useful typedefs from VMesh.

Constructor & Destructor Documentation

VField ( )
inline

The FieldTypeInformation call introduces functions to check type of the field Like is_pointcloudmesh() is_lineardata() is_vector() etc. Check FieldInformation.h for a full list

virtual ~VField ( )
inlinevirtual

Member Function Documentation

int basis_order ( )
inline

Get the basis_order of the field data, -1 = nodata, 0 = constant, 1 = linear 2 = quadratic 3 = cubic

void clear_all_values ( )
inline

Set all values to zero or its equivalent, all none double data will be casted to the proper value automatically. This way we do not need an additional virtual function call

void copy_evalue ( VField field,
INDEX1  idx1,
INDEX2  idx2 
)
inline

Same for edge values.

void copy_evalues ( VField field,
INDEX1  idx1,
INDEX2  idx2,
size_type  sz 
)
inline

Same for edge values.

void copy_evalues ( VField field)
inline
void copy_properties ( VField ifield)
inline
void copy_value ( VField field,
INDEX1  idx1,
INDEX2  idx2 
)
inline

Copy a value from one vfdata container to another, without having to know its type. Often for geometric operations one only has to copy the data. in tota this function will do to virtual function calls to move data from one container to the next. It however does direct casting between types. call these functions from the destination field to import data from another field

void copy_values ( VField field,
INDEX1  idx1,
INDEX2  idx2,
size_type  sz 
)
inline
void copy_values ( VField field)
inline

Copy all the values from one container to another container call these functions from the destination field to import data from another field

void copy_weighted_evalue ( VField field,
index_type idx,
weight_type w,
size_type  sz,
INDEX  i 
) const
inline
void copy_weighted_evalue ( VField field,
ARRAY  idx,
weight_array_type  w,
INDEX  i 
) const
inline
void copy_weighted_value ( VField field,
index_type idx,
weight_type w,
size_type  sz,
INDEX  i 
) const
inline

Functions for getting a weighted value.

void copy_weighted_value ( VField field,
ARRAY  idx,
weight_array_type  w,
INDEX  i 
) const
inline
int dimension ( )
inline

dimensions of the element 0 .. 3

int dofs ( )
inline

number of degree of freedoms in each element type in the mesh

void* efdata_pointer ( )
inline
void* fdata_pointer ( )
inline
FieldHandle field ( )
inline

get a handle to the field

bool get_center ( Core::Geometry::Point p,
index_type  idx 
)
inline
std::string get_data_type ( )
inline
void get_evalue ( T &  val,
index_type  idx 
) const
inline

evalue stands for edge value used in quadratic approximation, the latter can be accessed using direct indices or ENode::index_type

void get_evalues ( std::vector< T > &  values) const
inline
void get_evalues ( T *  data,
size_type  sz,
index_type  offset = 0 
) const
inline
void* get_evalues_pointer ( )
inline
bool get_property ( const std::string &  name,
T &  val 
)
inline
void get_value ( T &  val,
index_type  idx 
) const
inline

Get values from field (different varieties for different index types) Unlike the direct interface, we do not check index_type here all calls are rerouted to the same function call NOTE THE FOLLOWING TEMPLATES WILL COMPILE Template T can be of the following types: char, unsigned char, short, unsigned short, int, unsigned int, long, unsigned long, long long, unsigned long long, float, double, Vector, and Tensor

void get_value ( T &  val,
VMesh::Node::index_type  idx 
) const
inline
void get_value ( T &  val,
VMesh::Edge::index_type  idx 
) const
inline
void get_value ( T &  val,
VMesh::Face::index_type  idx 
) const
inline
void get_value ( T &  val,
VMesh::Cell::index_type  idx 
) const
inline
void get_value ( T &  val,
VMesh::Elem::index_type  idx 
) const
inline
void get_value ( T &  val,
VMesh::DElem::index_type  idx 
) const
inline
void get_value ( T &  val,
VMesh::ENode::index_type  idx 
) const
inline
void get_values ( std::vector< T > &  values) const
inline
void get_values ( T *  data,
size_type  sz,
index_type  offset = 0 
) const
inline
void get_values ( std::vector< T > &  values,
VMesh::Node::array_type  nodes 
) const
inline
void get_values ( std::vector< T > &  values,
VMesh::Elem::array_type  elems 
) const
inline
void get_values ( std::vector< T > &  values,
ARRAY &  idx 
) const
inline
void get_values ( T *  values,
VMesh::Node::array_type  nodes 
) const
inline
void get_values ( T *  values,
VMesh::Elem::array_type  elems 
) const
inline
void get_values ( T *  values,
ARRAY &  idx 
) const
inline
void get_values_dimension ( dimension_type dims)
inline
void* get_values_pointer ( )
inline
void get_weighted_evalue ( T &  val,
const index_type idx,
const weight_type w,
size_type  sz 
) const
inline
void get_weighted_evalue ( T &  val,
index_array_type  idx,
weight_array_type  w 
) const
inline
void get_weighted_value ( T &  val,
const index_type idx,
const weight_type w,
size_type  sz 
) const
inline

Functions for getting a weighted value.

void get_weighted_value ( T &  val,
index_array_type  idx,
weight_array_type  w 
) const
inline
void gradient ( StackVector< T, 3 > &  val,
const VMesh::coords_type coords,
VMesh::index_type  idx,
def_value = (static_cast<T>(0)) 
) const
inline

Similar to interpolation, but now this one derives the first derivative of the field (i.e. the gradient). Again the implementation is similar to the implementation of interpolate

bool gradient ( StackVector< T, 3 > &  val,
const Core::Geometry::Point point,
def_value = (static_cast<T>(0)) 
) const
inline
bool gradient ( StackVector< T, 3 > &  val,
const Core::Geometry::Point point,
def_value,
VMesh::ElemGradient eg 
) const
inline
void gradient ( StackVector< T, 3 > &  val,
const VMesh::coords_type coords,
VMesh::Edge::index_type  idx 
) const
inline

Different versions for different index types.

void gradient ( StackVector< T, 3 > &  val,
const VMesh::coords_type coords,
VMesh::Face::index_type  idx 
) const
inline
void gradient ( StackVector< T, 3 > &  val,
const VMesh::coords_type coords,
VMesh::Cell::index_type  idx 
) const
inline
void gradient ( StackVector< T, 3 > &  val,
const VMesh::coords_type coords,
VMesh::Elem::index_type  idx 
) const
inline
void gradient ( StackVector< T, 3 > &  val,
const VMesh::coords_type coords,
VMesh::DElem::index_type  idx 
) const
inline
void interpolate ( T &  val,
const VMesh::coords_type coords,
VMesh::index_type  idx,
def_value = (static_cast<T>(0)) 
) const
inline
bool interpolate ( T &  val,
const Core::Geometry::Point point,
def_value = (static_cast<T>(0)) 
) const
inline
bool interpolate ( T &  val,
const Core::Geometry::Point point,
def_value,
VMesh::ElemInterpolate ei 
) const
inline
void interpolate ( Core::Geometry::Point val,
const VMesh::coords_type coords,
VMesh::index_type  idx 
) const
inline
void interpolate ( T &  val,
const VMesh::coords_type coords,
VMesh::Edge::index_type  idx 
) const
inline
void interpolate ( T &  val,
const VMesh::coords_type coords,
VMesh::Face::index_type  idx 
) const
inline
void interpolate ( T &  val,
const VMesh::coords_type coords,
VMesh::Cell::index_type  idx 
) const
inline
void interpolate ( T &  val,
const VMesh::coords_type coords,
VMesh::Elem::index_type  idx 
) const
inline
void interpolate ( T &  val,
const VMesh::coords_type coords,
VMesh::DElem::index_type  idx 
) const
inline
bool is_char ( )
inline
bool is_constantdata ( )
inline
bool is_constantmesh ( )
inline
bool is_cubicdata ( )
inline
bool is_cubicmesh ( )
inline
bool is_double ( )
inline
bool is_float ( )
inline
bool is_int ( )
inline
bool is_integer ( )
inline
bool is_isomorphic ( )
inline
bool is_lineardata ( )
inline
bool is_linearmesh ( )
inline
bool is_long ( )
inline
bool is_longlong ( )
inline
bool is_nodata ( )
inline
bool is_nonlineardata ( )
inline
bool is_nonlinearmesh ( )
inline
bool is_pair ( )
inline
bool is_property ( const std::string &  name)
inline
bool is_quadraticdata ( )
inline
bool is_quadraticmesh ( )
inline
bool is_scalar ( )
inline
bool is_short ( )
inline
bool is_signed_integer ( )
inline
bool is_tensor ( )
inline
bool is_type ( char *  )
inline
bool is_type ( unsigned char *  )
inline
bool is_type ( short *  )
inline
bool is_type ( unsigned short *  )
inline
bool is_type ( int *  )
inline
bool is_type ( unsigned int *  )
inline
bool is_type ( long *  )
inline
bool is_type ( unsigned long *  )
inline
bool is_type ( long long *  )
inline
bool is_type ( unsigned long long *  )
inline
bool is_type ( double *  )
inline
bool is_type ( float *  )
inline
bool is_type ( Core::Geometry::Vector )
inline
bool is_type ( Core::Geometry::Tensor )
inline
bool is_type ( T *  )
inline
bool is_unsigned_char ( )
inline
bool is_unsigned_int ( )
inline
bool is_unsigned_integer ( )
inline
bool is_unsigned_long ( )
inline
bool is_unsigned_longlong ( )
inline
bool is_unsigned_short ( )
inline
bool is_vector ( )
inline
bool max ( double &  mx,
index_type idx 
) const
inline
bool max ( double &  mx) const
inline
MeshHandle mesh ( )
inline

mesh() and vmesh() get the handle to the mesh and its virtual interface

void mgradient ( std::vector< StackVector< T, 3 > > &  val,
const VMesh::coords_array_type coords,
VMesh::index_type  idx,
def_value = (static_cast<T>(0)) 
) const
inline
void mgradient ( std::vector< StackVector< T, 3 > > &  val,
const std::vector< Core::Geometry::Point > &  points,
def_value = (static_cast<T>(0)) 
) const
inline
void mgradient ( std::vector< StackVector< T, 3 > > &  val,
const std::vector< Core::Geometry::Point > &  points,
def_value,
VMesh::MultiElemGradient eg 
) const
inline
bool min ( double &  mn,
index_type idx 
)
inline

Maximum and minimum of values (with index to see where maximum is located)

bool min ( double &  mn)
inline
bool minmax ( double &  mn,
index_type idxmn,
double &  mx,
index_type  idxmx 
) const
inline

Combined min max for efficiency.

bool minmax ( double &  mn,
double &  mx 
) const
inline

version of minmax without indices

void minterpolate ( ARRAY &  val,
const VMesh::coords_array_type coords,
VMesh::index_type  idx,
DATA  def_value 
) const
inline

NOTE FOR INTERPOLATE AND GRADIENT Interpolate and Gradient functions are only available for the following datatypes: double, Vector, and Tensor General interpolation function. This function does at most two virtual function calls per call. It first will retrieve proper interpolation weights from the mesh and then will apply it to the data inside the data container. All objects needed for interpolation are reserved on the stack for efficiency. Note that different data orders have different implementations as non linear interpolation requires far more data, these are handled in separate classes

void minterpolate ( ARRAY &  val,
const VMesh::coords_array_type coords,
VMesh::index_type  idx 
) const
inline
void minterpolate ( ARRAY &  val,
const std::vector< Core::Geometry::Point > &  points,
DATA  def_value = (static_cast<DATA>(0)) 
) const
inline
void minterpolate ( ARRAY &  val,
const std::vector< Core::Geometry::Point > &  points,
DATA  def_value,
VMesh::MultiElemInterpolate ei 
) const
inline
void minterpolate ( ARRAY &  val,
const VMesh::coords_array_type coords,
VMesh::Edge::index_type  idx 
) const
inline
void minterpolate ( ARRAY &  val,
const VMesh::coords_array_type coords,
VMesh::Face::index_type  idx 
) const
inline
void minterpolate ( ARRAY &  val,
const VMesh::coords_array_type coords,
VMesh::Cell::index_type  idx 
) const
inline
void minterpolate ( ARRAY &  val,
const VMesh::coords_array_type coords,
VMesh::Elem::index_type  idx 
) const
inline
void minterpolate ( ARRAY &  val,
const VMesh::coords_array_type coords,
VMesh::DElem::index_type  idx 
) const
inline
VMesh::size_type num_evalues ( )
inline

get the number of edge values in the field (for quadratic approximation)

VMesh::size_type num_values ( )
inline

get the number of values in the field (data at corner nodes of the elements)

void resize_fdata ( )
inline

resize the data fields to match the number of nodes/edges in the mesh

void resize_values ( )
inline

same function but now uses the systematic naming (resize_fdata is the old call, SCIRun was using)

void set_all_values ( const T  val)
inline

Set all values to a specific value.

void set_evalue ( const T &  val,
index_type  idx 
)
inline
void set_evalues ( const std::vector< T > &  values)
inline

The following cases are more specialized cases for copying entiry sets of data. These functions need to know the size of the inserted data as they perform a safety check on the length of the fdata array.

void set_evalues ( const T *  data,
size_type  sz,
index_type  offset = 0 
)
inline
void set_property ( const std::string &  name,
const T &  val,
bool  is_transient 
)
inline
void set_value ( const T &  val,
index_type  idx 
)
inline

Insert values into field, for every get_value there is an equivalent set_value likewise get_evalue is replaced by set set_evalue

void set_value ( const T &  val,
VMesh::Node::index_type  idx 
)
inline
void set_value ( const T &  val,
VMesh::Edge::index_type  idx 
)
inline
void set_value ( const T &  val,
VMesh::Face::index_type  idx 
)
inline
void set_value ( const T &  val,
VMesh::Cell::index_type  idx 
)
inline
void set_value ( const T &  val,
VMesh::Elem::index_type  idx 
)
inline
void set_value ( const T &  val,
VMesh::DElem::index_type  idx 
)
inline
void set_value ( const T &  val,
VMesh::ENode::index_type  idx 
)
inline
void set_values ( const std::vector< T > &  values)
inline

Get/Set all values at once.

void set_values ( const T *  data,
size_type  sz,
index_type  offset = 0 
)
inline
void set_values ( const std::vector< T > &  values,
VMesh::Node::array_type  nodes 
)
inline
void set_values ( const std::vector< T > &  values,
VMesh::Elem::array_type  elems 
)
inline
void set_values ( const std::vector< T > &  values,
ARRAY &  idx 
)
inline
void set_values ( const T *  values,
VMesh::Node::array_type  nodes 
)
inline
void set_values ( const T *  values,
VMesh::Elem::array_type  elems 
)
inline
void set_values ( const T *  values,
ARRAY &  idx 
)
inline
void size ( VMesh::Node::size_type sz)
inline
void size ( VMesh::ENode::size_type sz)
inline
void update_mesh_pointer ( Mesh mesh)
inline

internal function - this one may change in the future

bool value ( T &  val,
index_type  idx 
) const
inline

Ensure compatibility with old field class, these are equivalent with get_value() unlike the direct interface we do not use ASSERTs to check bounds and this function calls are thus exactly the same. They are provided for compatibility with the old classes

bool value ( T &  val,
VMesh::Node::index_type  idx 
) const
inline
bool value ( T &  val,
VMesh::Edge::index_type  idx 
) const
inline
bool value ( T &  val,
VMesh::Face::index_type  idx 
) const
inline
bool value ( T &  val,
VMesh::Cell::index_type  idx 
) const
inline
bool value ( T &  val,
VMesh::Elem::index_type  idx 
) const
inline
bool value ( T &  val,
VMesh::DElem::index_type  idx 
) const
inline
VField* vfield ( )
inline

for completeness get a pointer to itself

VMesh* vmesh ( )
inline

Member Data Documentation

int basis_order_
protected
std::string data_type_
protected
int element_dim_
protected
int element_dofs_
protected
Field* field_
protected
bool is_pair_
protected
bool is_scalar_
protected
bool is_tensor_
protected
bool is_time_
protected
bool is_vector_
protected
Mesh* mesh_
protected
int number_of_enodes_
protected
int number_of_nodes_
protected
PropertyManager* pm_
protected
VFData* vfdata_
protected
VMesh* vmesh_
protected

The documentation for this class was generated from the following file: