Mundy: Multibody Nonlocal Dynamics Version of the Day
Loading...
Searching...
No Matches
mundy::mesh::FieldViews

Host and device helpers for viewing STK field data as Mundy math and geometry types. More...

stk::mesh::Field data views

size_t mundy::mesh::M
typename mundy::mesh::StkDebugger
const stk::mesh::FastMeshIndex & mundy::mesh::i
template<class FieldType, typename StkDebugger = stk::mesh::DefaultStkFieldSyncDebugger>
auto mundy::mesh::scalar_field_data (const FieldType &f, stk::mesh::Entity e, stk::mesh::DummyOverload dummyArg=stk::mesh::DummyOverload(), const char *fileName=HOST_DEBUG_FILE_NAME, int lineNumber=HOST_DEBUG_LINE_NUMBER)
 Get a view of a field's data as a scalar. 1 scalar per entity.
template<size_t N, class FieldType, typename StkDebugger = stk::mesh::DefaultStkFieldSyncDebugger>
auto mundy::mesh::vector_field_data (const FieldType &f, stk::mesh::Entity e, stk::mesh::DummyOverload dummyArg=stk::mesh::DummyOverload(), const char *fileName=HOST_DEBUG_FILE_NAME, int lineNumber=HOST_DEBUG_LINE_NUMBER)
 Get a view of a field's data as a Vector<N>. N scalars per entity.
 mundy::mesh::MUNDY_IMPL_VECTOR_FIELD_DATA_N (1) MUNDY_IMPL_VECTOR_FIELD_DATA_N(2) MUNDY_IMPL_VECTOR_FIELD_DATA_N(3) MUNDY_IMPL_VECTOR_FIELD_DATA_N(4) MUNDY_IMPL_VECTOR_FIELD_DATA_N(5) MUNDY_IMPL_VECTOR_FIELD_DATA_N(6) template< size_t N
 Get a view of a field's data as a Matrix<N, M>. N * M scalars per entity.
typename class FieldType auto mundy::mesh::vector_field_data (FieldType &f, const stk::mesh::FastMeshIndex &i)
size_t class FieldType auto mundy::mesh::matrix_field_data (FieldType &f, const stk::mesh::FastMeshIndex &i)
 mundy::mesh::MUNDY_IMPL_MATRIX_FIELD_DATA_NM (1, 1) MUNDY_IMPL_MATRIX_FIELD_DATA_NM(1
 mundy::mesh::MUNDY_IMPL_MATRIX_FIELD_DATA_NM (1, 3) MUNDY_IMPL_MATRIX_FIELD_DATA_NM(1
 mundy::mesh::MUNDY_IMPL_MATRIX_FIELD_DATA_NM (1, 5) MUNDY_IMPL_MATRIX_FIELD_DATA_NM(1
 mundy::mesh::MUNDY_IMPL_MATRIX_FIELD_DATA_NM (2, 1) MUNDY_IMPL_MATRIX_FIELD_DATA_NM(2
 mundy::mesh::MUNDY_IMPL_MATRIX_FIELD_DATA_NM (2, 3) MUNDY_IMPL_MATRIX_FIELD_DATA_NM(2
 mundy::mesh::MUNDY_IMPL_MATRIX_FIELD_DATA_NM (2, 5) MUNDY_IMPL_MATRIX_FIELD_DATA_NM(2
 mundy::mesh::MUNDY_IMPL_MATRIX_FIELD_DATA_NM (3, 1) MUNDY_IMPL_MATRIX_FIELD_DATA_NM(3
 mundy::mesh::MUNDY_IMPL_MATRIX_FIELD_DATA_NM (3, 3) MUNDY_IMPL_MATRIX_FIELD_DATA_NM(3
 mundy::mesh::MUNDY_IMPL_MATRIX_FIELD_DATA_NM (3, 5) MUNDY_IMPL_MATRIX_FIELD_DATA_NM(3
 mundy::mesh::MUNDY_IMPL_MATRIX_FIELD_DATA_NM (4, 1) MUNDY_IMPL_MATRIX_FIELD_DATA_NM(4
 mundy::mesh::MUNDY_IMPL_MATRIX_FIELD_DATA_NM (4, 3) MUNDY_IMPL_MATRIX_FIELD_DATA_NM(4
 mundy::mesh::MUNDY_IMPL_MATRIX_FIELD_DATA_NM (4, 5) MUNDY_IMPL_MATRIX_FIELD_DATA_NM(4
 mundy::mesh::MUNDY_IMPL_MATRIX_FIELD_DATA_NM (5, 1) MUNDY_IMPL_MATRIX_FIELD_DATA_NM(5
 mundy::mesh::MUNDY_IMPL_MATRIX_FIELD_DATA_NM (5, 3) MUNDY_IMPL_MATRIX_FIELD_DATA_NM(5
 mundy::mesh::MUNDY_IMPL_MATRIX_FIELD_DATA_NM (5, 5) MUNDY_IMPL_MATRIX_FIELD_DATA_NM(5
 mundy::mesh::MUNDY_IMPL_MATRIX_FIELD_DATA_NM (6, 1) MUNDY_IMPL_MATRIX_FIELD_DATA_NM(6
 mundy::mesh::MUNDY_IMPL_MATRIX_FIELD_DATA_NM (6, 3) MUNDY_IMPL_MATRIX_FIELD_DATA_NM(6
 mundy::mesh::MUNDY_IMPL_MATRIX_FIELD_DATA_NM (6, 5) MUNDY_IMPL_MATRIX_FIELD_DATA_NM(6
 mundy::mesh::MUNDY_IMPL_MATRIX_FIELD_DATA_NN (1) MUNDY_IMPL_MATRIX_FIELD_DATA_NN(2) MUNDY_IMPL_MATRIX_FIELD_DATA_NN(3) MUNDY_IMPL_MATRIX_FIELD_DATA_NN(4) MUNDY_IMPL_MATRIX_FIELD_DATA_NN(5) MUNDY_IMPL_MATRIX_FIELD_DATA_NN(6) template< class FieldType > auto quaternion_field_data(FieldType &f
 Get a view of a field's data as a Quaternion.
template<class FieldType>
auto mundy::mesh::aabb_field_data (FieldType &f, const stk::mesh::FastMeshIndex &i)
 Get a view of a field's data as an AABB. 6 scalars per entity. Layout: min corner xyz (0-2), max corner xyz (3-5).
template<class FieldType>
auto mundy::mesh::obb_field_data (FieldType &f, const stk::mesh::FastMeshIndex &i)
 Get a view of a field's NGP data as an OBB. 10 scalars per entity. Layout: center xyz (0-2), orientation quaternion wxyz (3-6), half-extents xyz (7-9).
#define MUNDY_IMPL_VECTOR_FIELD_DATA_N(N)
#define MUNDY_IMPL_VECTOR_FIELD_DATA_N(N)
#define MUNDY_IMPL_MATRIX_FIELD_DATA_NM(N, M)
#define MUNDY_IMPL_MATRIX_FIELD_DATA_NM(N, M)
#define MUNDY_IMPL_MATRIX_FIELD_DATA_NN(N)
#define MUNDY_IMPL_MATRIX_FIELD_DATA_NN(N)

Detailed Description

These free functions adapt raw STK field storage into scalar, vector, matrix, quaternion, and bounding-box accessors used by Mundy's math and geometry kernels.

Macro Definition Documentation

◆ MUNDY_IMPL_VECTOR_FIELD_DATA_N [1/2]

#define MUNDY_IMPL_VECTOR_FIELD_DATA_N ( N)
Value:
template <class FieldType, typename StkDebugger = stk::mesh::DefaultStkFieldSyncDebugger> \
inline auto vector##N##_field_data( \
const FieldType& f, stk::mesh::Entity e, stk::mesh::DummyOverload dummyArg = stk::mesh::DummyOverload(), \
const char* fileName = HOST_DEBUG_FILE_NAME, int lineNumber = HOST_DEBUG_LINE_NUMBER) { \
return get_vector_view<typename FieldType::value_type, N>( \
stk::mesh::field_data(f, e, dummyArg, fileName, lineNumber)); \
}

◆ MUNDY_IMPL_VECTOR_FIELD_DATA_N [2/2]

#define MUNDY_IMPL_VECTOR_FIELD_DATA_N ( N)
Value:
template <class FieldType> \
KOKKOS_INLINE_FUNCTION auto vector##N##_field_data(FieldType& f, const stk::mesh::FastMeshIndex& i) { \
return get_owning_vector<typename FieldType::value_type, N>(f(i)); \
}

◆ MUNDY_IMPL_MATRIX_FIELD_DATA_NM [1/2]

#define MUNDY_IMPL_MATRIX_FIELD_DATA_NM ( N,
M )
Value:
template <class FieldType, typename StkDebugger = stk::mesh::DefaultStkFieldSyncDebugger> \
inline auto matrix##N####M##_field_data( \
const FieldType& f, stk::mesh::Entity e, stk::mesh::DummyOverload dummyArg = stk::mesh::DummyOverload(), \
const char* fileName = HOST_DEBUG_FILE_NAME, int lineNumber = HOST_DEBUG_LINE_NUMBER) { \
return get_matrix_view<typename FieldType::value_type, N, M>( \
stk::mesh::field_data(f, e, dummyArg, fileName, lineNumber)); \
}

◆ MUNDY_IMPL_MATRIX_FIELD_DATA_NM [2/2]

#define MUNDY_IMPL_MATRIX_FIELD_DATA_NM ( N,
M )
Value:
template <class FieldType> \
KOKKOS_INLINE_FUNCTION auto matrix##N####M##_field_data(FieldType& f, const stk::mesh::FastMeshIndex& i) { \
return get_owning_matrix<typename FieldType::value_type, N, M>(f(i)); \
}

◆ MUNDY_IMPL_MATRIX_FIELD_DATA_NN [1/2]

#define MUNDY_IMPL_MATRIX_FIELD_DATA_NN ( N)
Value:
template <class FieldType, typename StkDebugger = stk::mesh::DefaultStkFieldSyncDebugger> \
inline auto matrix##N##_field_data( \
const FieldType& f, stk::mesh::Entity e, stk::mesh::DummyOverload dummyArg = stk::mesh::DummyOverload(), \
const char* fileName = HOST_DEBUG_FILE_NAME, int lineNumber = HOST_DEBUG_LINE_NUMBER) { \
return get_matrix_view<typename FieldType::value_type, N, N>( \
stk::mesh::field_data(f, e, dummyArg, fileName, lineNumber)); \
}

◆ MUNDY_IMPL_MATRIX_FIELD_DATA_NN [2/2]

#define MUNDY_IMPL_MATRIX_FIELD_DATA_NN ( N)
Value:
template <class FieldType> \
KOKKOS_INLINE_FUNCTION auto matrix##N##_field_data(FieldType& f, const stk::mesh::FastMeshIndex& i) { \
return get_owning_matrix<typename FieldType::value_type, N, N>(f(i)); \
}

Function Documentation

◆ scalar_field_data()

template<class FieldType, typename StkDebugger = stk::mesh::DefaultStkFieldSyncDebugger>
auto mundy::mesh::scalar_field_data ( const FieldType & f,
stk::mesh::Entity e,
stk::mesh::DummyOverload dummyArg = stk::mesh::DummyOverload(),
const char * fileName = HOST_DEBUG_FILE_NAME,
int lineNumber = HOST_DEBUG_LINE_NUMBER )
inline

◆ vector_field_data() [1/2]

template<size_t N, class FieldType, typename StkDebugger = stk::mesh::DefaultStkFieldSyncDebugger>
auto mundy::mesh::vector_field_data ( const FieldType & f,
stk::mesh::Entity e,
stk::mesh::DummyOverload dummyArg = stk::mesh::DummyOverload(),
const char * fileName = HOST_DEBUG_FILE_NAME,
int lineNumber = HOST_DEBUG_LINE_NUMBER )
inline

◆ MUNDY_IMPL_VECTOR_FIELD_DATA_N()

mundy::mesh::MUNDY_IMPL_VECTOR_FIELD_DATA_N ( 1 )

Get a view of a field's data as a Matrix<N, M>.

◆ vector_field_data() [2/2]

typename class FieldType auto mundy::mesh::vector_field_data ( FieldType & f,
const stk::mesh::FastMeshIndex & i )

◆ matrix_field_data()

size_t class FieldType auto mundy::mesh::matrix_field_data ( FieldType & f,
const stk::mesh::FastMeshIndex & i )

◆ MUNDY_IMPL_MATRIX_FIELD_DATA_NM() [1/18]

mundy::mesh::MUNDY_IMPL_MATRIX_FIELD_DATA_NM ( 1 ,
1  )

◆ MUNDY_IMPL_MATRIX_FIELD_DATA_NM() [2/18]

mundy::mesh::MUNDY_IMPL_MATRIX_FIELD_DATA_NM ( 1 ,
3  )

◆ MUNDY_IMPL_MATRIX_FIELD_DATA_NM() [3/18]

mundy::mesh::MUNDY_IMPL_MATRIX_FIELD_DATA_NM ( 1 ,
5  )

◆ MUNDY_IMPL_MATRIX_FIELD_DATA_NM() [4/18]

mundy::mesh::MUNDY_IMPL_MATRIX_FIELD_DATA_NM ( 2 ,
1  )

◆ MUNDY_IMPL_MATRIX_FIELD_DATA_NM() [5/18]

mundy::mesh::MUNDY_IMPL_MATRIX_FIELD_DATA_NM ( 2 ,
3  )

◆ MUNDY_IMPL_MATRIX_FIELD_DATA_NM() [6/18]

mundy::mesh::MUNDY_IMPL_MATRIX_FIELD_DATA_NM ( 2 ,
5  )

◆ MUNDY_IMPL_MATRIX_FIELD_DATA_NM() [7/18]

mundy::mesh::MUNDY_IMPL_MATRIX_FIELD_DATA_NM ( 3 ,
1  )

◆ MUNDY_IMPL_MATRIX_FIELD_DATA_NM() [8/18]

mundy::mesh::MUNDY_IMPL_MATRIX_FIELD_DATA_NM ( 3 ,
3  )

◆ MUNDY_IMPL_MATRIX_FIELD_DATA_NM() [9/18]

mundy::mesh::MUNDY_IMPL_MATRIX_FIELD_DATA_NM ( 3 ,
5  )

◆ MUNDY_IMPL_MATRIX_FIELD_DATA_NM() [10/18]

mundy::mesh::MUNDY_IMPL_MATRIX_FIELD_DATA_NM ( 4 ,
1  )

◆ MUNDY_IMPL_MATRIX_FIELD_DATA_NM() [11/18]

mundy::mesh::MUNDY_IMPL_MATRIX_FIELD_DATA_NM ( 4 ,
3  )

◆ MUNDY_IMPL_MATRIX_FIELD_DATA_NM() [12/18]

mundy::mesh::MUNDY_IMPL_MATRIX_FIELD_DATA_NM ( 4 ,
5  )

◆ MUNDY_IMPL_MATRIX_FIELD_DATA_NM() [13/18]

mundy::mesh::MUNDY_IMPL_MATRIX_FIELD_DATA_NM ( 5 ,
1  )

◆ MUNDY_IMPL_MATRIX_FIELD_DATA_NM() [14/18]

mundy::mesh::MUNDY_IMPL_MATRIX_FIELD_DATA_NM ( 5 ,
3  )

◆ MUNDY_IMPL_MATRIX_FIELD_DATA_NM() [15/18]

mundy::mesh::MUNDY_IMPL_MATRIX_FIELD_DATA_NM ( 5 ,
5  )

◆ MUNDY_IMPL_MATRIX_FIELD_DATA_NM() [16/18]

mundy::mesh::MUNDY_IMPL_MATRIX_FIELD_DATA_NM ( 6 ,
1  )

◆ MUNDY_IMPL_MATRIX_FIELD_DATA_NM() [17/18]

mundy::mesh::MUNDY_IMPL_MATRIX_FIELD_DATA_NM ( 6 ,
3  )

◆ MUNDY_IMPL_MATRIX_FIELD_DATA_NM() [18/18]

mundy::mesh::MUNDY_IMPL_MATRIX_FIELD_DATA_NM ( 6 ,
5  )

◆ MUNDY_IMPL_MATRIX_FIELD_DATA_NN()

mundy::mesh::MUNDY_IMPL_MATRIX_FIELD_DATA_NN ( 1 ) &

◆ aabb_field_data()

template<class FieldType>
auto mundy::mesh::aabb_field_data ( FieldType & f,
const stk::mesh::FastMeshIndex & i )

◆ obb_field_data()

template<class FieldType>
auto mundy::mesh::obb_field_data ( FieldType & f,
const stk::mesh::FastMeshIndex & i )

Variable Documentation

◆ M

size_t mundy::mesh::M

◆ StkDebugger

typename mundy::mesh::StkDebugger

◆ i

const stk::mesh::FastMeshIndex& mundy::mesh::i
Initial value:
{
const stk::mesh::FastMeshIndex & i
Definition FieldViews.hpp:312
constexpr auto get_owning_quaternion(Accessor &&data)
Definition Quaternion.hpp:1109