30 #ifndef CORE_DATATYPES_VFDATA_H
31 #define CORE_DATATYPES_VFDATA_H 1
47 #define VFDATA_ACCESS_DECLARATION(type) \
48 virtual void get_value(type &val, VMesh::index_type idx) const; \
49 virtual void set_value(const type &val, VMesh::index_type idx); \
50 virtual void get_evalue(type &val, VMesh::index_type idx) const; \
51 virtual void set_evalue(const type &val, VMesh::index_type idx); \
52 virtual void get_values(type *ptr, VMesh::size_type sz, VMesh::size_type offset) const; \
53 virtual void set_values(const type *ptr, VMesh::size_type sz, VMesh::size_type offset); \
54 virtual void get_evalues(type *ptr, VMesh::size_type sz, VMesh::size_type offset) const; \
55 virtual void set_evalues(const type *ptr, VMesh::size_type sz, VMesh::size_type offset); \
56 virtual void set_all_values(const type &val); \
57 virtual void get_weighted_value(type &val, const VMesh::index_type* idx, const VMesh::weight_type* w, VMesh::size_type sz) const; \
58 virtual void get_weighted_evalue(type &val, const VMesh::index_type* idx, const VMesh::weight_type* w, VMesh::size_type sz) const; \
59 virtual void get_values(type *ptr, VMesh::Node::array_type& nodes) const; \
60 virtual void get_values(type *ptr, VMesh::Elem::array_type& elems) const; \
61 virtual void set_values(const type *ptr, VMesh::Node::array_type& nodes); \
62 virtual void set_values(const type *ptr, VMesh::Elem::array_type& elems); \
63 virtual void get_values(type *ptr, index_type* idx, size_type size) const; \
64 virtual void set_values(const type *ptr, index_type* idx, size_type size); \
67 #define VFDATA_ACCESS_DECLARATION2(type) \
68 virtual void interpolate(type &val, VMesh::ElemInterpolate &interp, type defval = (static_cast<type>(0))) const; \
69 virtual void minterpolate(std::vector<type> &val, VMesh::MultiElemInterpolate &interp, type defval = (static_cast<type>(0))) const; \
70 virtual void gradient(StackVector<type,3> &val, VMesh::ElemGradient &interp, type defval = (static_cast<type>(0))) const; \
71 virtual void mgradient(std::vector<StackVector<type,3> > &val, VMesh::MultiElemGradient &interp, type defval = (static_cast<type>(0))) const; \
73 #define VFDATA_FUNCTION_DECLARATION(type) \
74 SCISHARE VFData* CreateVFData(std::vector<type>& fdata, std::vector<type>& lfdata, std::vector<std::vector<type> >& hfdata); \
75 SCISHARE VFData* CreateVFData(Array2<type>& fdata, std::vector<type>& lfdata, std::vector<std::vector<type> >& hfdata); \
76 SCISHARE VFData* CreateVFData(Array3<type>& fdata, std::vector<type>& lfdata, std::vector<std::vector<type> >& hfdata);
96 virtual void* fdata_pointer()
const;
97 virtual void* efdata_pointer()
const;
122 virtual
void copy_value(
VFData* fdata,
126 virtual
void copy_values(
VFData* fdata,
132 virtual
void copy_weighted_value(
VFData* fdata,
134 VMesh::weight_type* vw,
139 virtual
void copy_evalue(
VFData* fdata,
143 virtual
void copy_evalues(
VFData* fdata,
149 virtual
void copy_weighted_evalue(
VFData* fdata,
151 VMesh::weight_type* vw,
156 virtual
void copy_values(
VFData* fdata);
157 virtual
void copy_evalues(
VFData* fdata);
177 template<class FDATA, class LFDATA, class HFDATA>
#define VFDATA_FUNCTION_DECLARATION(type)
Definition: VFData.h:73
#define VFDATA_ACCESS_DECLARATION(type)
Definition: VFData.h:47
#define SCISHARE
Definition: share.h:39
virtual ~VFData()
Definition: VFData.h:88
#define VFDATA_ACCESS_DECLARATION2(type)
Definition: VFData.h:67
Definition: ParallelLinearAlgebraTests.cc:358
long long size_type
Definition: Types.h:40
long long index_type
Definition: Types.h:39
VFData * CreateVFData(FData2d< T, MESH > &fdata, std::vector< T > &lfdata, std::vector< std::vector< T > > &hfdata)
Definition: GenericField.h:475
Symmetric, positive definite tensors (diffusion, conductivity)
Interface to dynamic 3D array class.
std::vector< size_type > dimension_type
Definition: VMesh.h:76
Mesh::size_type size_type
Definition: VMesh.h:68
int size
Definition: eabLatVolData.py:2
Interface to dynamic 2D array class.