NimbleSM
NimbleSM is a solid mechanics simulation code for dynamic systems
Loading...
Searching...
No Matches
nimble::View< FieldT > Class Template Reference

#include <nimble_view.h>

Public Member Functions

 View (int num_entries)
 
 ~View ()=default
 
 View (const View &)=default
 
 View (View &&) noexcept=default
 
Viewoperator= (const View &)=default
 
Viewoperator= (View &&) noexcept=default
 
double & operator() (int i_entry) const
 
double & operator() (int i_entry, int i_coord) const
 
int rank ()
 
int extent (int dim)
 

Constructor & Destructor Documentation

◆ View() [1/3]

template<FieldEnum FieldT>
nimble::View< FieldT >::View ( int num_entries)
inlineexplicit
229 : num_entries_(num_entries)
230 {
231 data_ = std::shared_ptr<double>(new double[num_entries_ * static_cast<int>(FieldT)], [](double* p) { delete[] p; });
232 data_ptr_ = data_.get();
233 }
Definition nimble_view.h:227

◆ ~View()

template<FieldEnum FieldT>
nimble::View< FieldT >::~View ( )
default

◆ View() [2/3]

template<FieldEnum FieldT>
nimble::View< FieldT >::View ( const View< FieldT > & )
default

◆ View() [3/3]

template<FieldEnum FieldT>
nimble::View< FieldT >::View ( View< FieldT > && )
defaultnoexcept

Member Function Documentation

◆ extent()

template<FieldEnum FieldT>
int nimble::View< FieldT >::extent ( int dim)
inline
266 {
267 if (dim == 0) {
268 return num_entries_;
269 } else if (dim == 1) {
270 return static_cast<int>(FieldT);
271 } else {
272 return 1;
273 }
274 }

◆ operator()() [1/2]

template<FieldEnum FieldT>
double & nimble::View< FieldT >::operator() ( int i_entry) const
inline
245 {
246 static_assert(FieldT == FieldEnum::Scalar, "Operator(int i_entry) called for non-scalar data.");
247 return data_ptr_[i_entry];
248 }

◆ operator()() [2/2]

template<FieldEnum FieldT>
double & nimble::View< FieldT >::operator() ( int i_entry,
int i_coord ) const
inline
252 {
253 static_assert(FieldT != FieldEnum::Scalar, "Operator(int i_entry, int i_coord) called for scalar data.");
254 return data_ptr_[i_entry * static_cast<int>(FieldT) + i_coord];
255 }

◆ operator=() [1/2]

template<FieldEnum FieldT>
View & nimble::View< FieldT >::operator= ( const View< FieldT > & )
default

◆ operator=() [2/2]

template<FieldEnum FieldT>
View & nimble::View< FieldT >::operator= ( View< FieldT > && )
defaultnoexcept

◆ rank()

template<FieldEnum FieldT>
int nimble::View< FieldT >::rank ( )
inline
259 {
260 if (FieldT == FieldEnum::Scalar) { return 1; }
261 return 2;
262 }

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