21 #ifndef fiber_shape_transformation_functor_wrappers_hpp
22 #define fiber_shape_transformation_functor_wrappers_hpp
24 #include "basis_data.hpp"
25 #include "geometrical_data.hpp"
26 #include "collection_of_3d_arrays.hpp"
32 template <
typename ElementaryFunctor>
36 typedef typename ElementaryFunctor::CoordinateType CoordinateType;
38 size_t transformationCount()
const {
42 int argumentDimension()
const {
43 return m_functor.argumentDimension();
46 int resultDimension(
size_t transformationIndex)
const {
47 assert(transformationIndex == 0);
48 return m_functor.resultDimension();
51 void addDependencies(
size_t& basisDeps,
size_t& geomDeps)
const {
52 m_functor.addDependencies(basisDeps, geomDeps);
55 template <
typename ValueType>
60 m_functor.evaluate(basisData, geomData, result[0].
self());
64 ElementaryFunctor m_functor;
68 template <
typename ElementaryFunctor0,
typename ElementaryFunctor1>
72 typedef typename ElementaryFunctor0::CoordinateType CoordinateType;
75 int transformationCount()
const {
79 int argumentDimension()
const {
80 int result = m_functor0.argumentDimension();
81 assert(result == m_functor1.argumentDimension());
85 int resultDimension(
int transformationIndex)
const {
86 switch (transformationIndex) {
87 case 0:
return m_functor0.resultDimension();
88 case 1:
return m_functor1.resultDimension();
89 default:
throw std::invalid_argument(
90 "BasisFunctionTransformationElementaryFunctorPairWrapper::"
91 "resultDimension(): invalid transformation index");
95 void addDependencies(
size_t& basisDeps,
size_t& geomDeps)
const {
96 m_functor0.addDependencies(basisDeps, geomDeps);
97 m_functor1.addDependencies(basisDeps, geomDeps);
100 template <
typename ValueType>
105 m_functor0.evaluate(basisData, geomData, result[0].
self());
106 m_functor1.evaluate(basisData, geomData, result[1].
self());
110 ElementaryFunctor0 m_functor0;
111 ElementaryFunctor1 m_functor1;
Definition: collection_of_3d_arrays.hpp:121
Access to slices of geometrical data.
Definition: geometrical_data.hpp:88
Access to values and/or derivatives of shape functions.
Definition: basis_data.hpp:91