Go to the documentation of this file.
20 #ifndef LIBMESH_RAW_ACCESSOR_H
21 #define LIBMESH_RAW_ACCESSOR_H
24 #include "libmesh/libmesh_common.h"
26 #include "libmesh/tensor_value.h"
27 #include "libmesh/vector_value.h"
28 #include "libmesh/type_n_tensor.h"
36 template <
typename FieldType>
63 #ifdef LIBMESH_USE_COMPLEX_NUMBERS
92 template <
typename FieldType>
119 libmesh_assert_equal_to (i, 0);
127 libmesh_assert_less (i, this->_dim);
128 return this->_data(i);
135 libmesh_assert_less (k, this->_dim*this->_dim);
140 unsigned int ii = k/_dim;
141 unsigned int jj = k - ii*_dim;
143 return this->_data(ii,jj);
149 template <
unsigned int N,
typename ScalarType>
178 #ifdef LIBMESH_USE_COMPLEX_NUMBERS
183 libmesh_assert_equal_to (i, 0);
191 libmesh_assert_less (i, this->_dim);
192 return this->_data(i);
199 libmesh_assert_less (k, this->_dim*this->_dim);
204 unsigned int jj = k/_dim;
205 unsigned int ii = k - jj*_dim;
207 return this->_data(ii,jj);
213 #endif // LIBMESH_RAW_ACCESSOR_H
This class provides single index access to FieldType (i.e.
The libMesh namespace provides an interface to certain functionality in the library.
const RawFieldType< FieldType >::type & operator()(unsigned int) const
RawFieldType< FieldType >::type & operator()(unsigned int)
TypeNTensor< N, ScalarType > FieldType
This class defines a tensor in LIBMESH_DIM dimensional Real or Complex space.
RawFieldType< FieldType >::type & operator()(unsigned int i)
RawAccessor(FieldType &data, const unsigned int dim)
What underlying data type would we need to access in each field?
This class will eventually define a rank-N tensor in LIBMESH_DIM dimensional space of type T.
IterBase * data
Ideally this private member data should have protected access.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
RawAccessor(FieldType &data, const unsigned int dim)