v0.16.3
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | Static Public Attributes | List of all members
EshelbianPlasticity::LogarithmicDirectionalDerivatives::Matrix< N > Struct Template Reference

#include "users_modules/eshelbian_plasticity/src/LogarithmicDirectionalDerivatives.hpp"

Collaboration diagram for EshelbianPlasticity::LogarithmicDirectionalDerivatives::Matrix< N >:
[legend]

Public Member Functions

 Matrix ()
 
View operator[] (int mask) const
 
View begin () const
 

Public Attributes

std::array< double, size > data
 

Static Public Attributes

static constexpr int count = 1 << N
 
static constexpr int blockSize = 9
 
static constexpr int size = count * blockSize
 

Detailed Description

template<int N>
struct EshelbianPlasticity::LogarithmicDirectionalDerivatives::Matrix< N >

Mixed derivatives in independent nilpotent directions. Bit masks denote subsets of directions; block mask is the derivative in the directions whose bits are set and block 0 is the value. All 2^N blocks live in one contiguous array, block mask at doubles [9 mask, 9 mask + 9), accessed through FTensor cursor views, so no block is copied and a loop over masks is a cursor increment.

Definition at line 108 of file LogarithmicDirectionalDerivatives.hpp.

Constructor & Destructor Documentation

◆ Matrix()

Member Function Documentation

◆ begin()

template<int N>
View EshelbianPlasticity::LogarithmicDirectionalDerivatives::Matrix< N >::begin ( ) const
inline

Cursor at block 0; ++ advances by one block.

Definition at line 124 of file LogarithmicDirectionalDerivatives.hpp.

124{ return (*this)[0]; }

◆ operator[]()

template<int N>
View EshelbianPlasticity::LogarithmicDirectionalDerivatives::Matrix< N >::operator[] ( int  mask) const
inline

View of block mask. Views are handles, so a const jet returns the same view type, as FTensor pointer tensors do. The view is built directly from the pointer: getFTensor2FromPtr goes through a ublas shallow array adaptor whose shared_array allocates, which is prohibitive here.

Definition at line 120 of file LogarithmicDirectionalDerivatives.hpp.

120 {
121 return View(const_cast<double *>(data.data()) + blockSize * mask);
122 }
FTensor::Tensor2< FTensor::CursorPtr< double *, 9 >, 3, 3 > View

Member Data Documentation

◆ blockSize

template<int N>
constexpr int EshelbianPlasticity::LogarithmicDirectionalDerivatives::Matrix< N >::blockSize = 9
staticconstexpr

Definition at line 110 of file LogarithmicDirectionalDerivatives.hpp.

◆ count

template<int N>
constexpr int EshelbianPlasticity::LogarithmicDirectionalDerivatives::Matrix< N >::count = 1 << N
staticconstexpr

Definition at line 109 of file LogarithmicDirectionalDerivatives.hpp.

◆ data

Definition at line 112 of file LogarithmicDirectionalDerivatives.hpp.

◆ size

template<int N>
constexpr int EshelbianPlasticity::LogarithmicDirectionalDerivatives::Matrix< N >::size = count * blockSize
staticconstexpr

Definition at line 111 of file LogarithmicDirectionalDerivatives.hpp.


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