9#include <kernel/assembly/base.hpp> 
   10#include <kernel/cubature/dynamic_factory.hpp> 
   19      template<
typename Space_, 
typename DataType_>
 
   20      struct EvalPolicyFetcher
 
   22        typedef typename Space_::TrafoType TrafoType;
 
   23        typedef typename TrafoType::ShapeType ShapeType;
 
   24        typedef typename TrafoType::template Evaluator<ShapeType, DataType_>::Type TrafoEvalType;
 
   25        typedef typename TrafoEvalType::EvalPolicy EvalPolicy;
 
   28      template<
typename TrafoEvaluator_>
 
   33        typedef typename TrafoEvaluator_::EvalPolicy EvalPolicy;
 
   36        typedef typename EvalPolicy::DataType DataType;
 
   39        typedef typename EvalPolicy::ShapeType ShapeType;
 
   42        typedef typename EvalPolicy::DomainPointType DomainPointType;
 
   45        typedef Cubature::Rule<ShapeType, DataType, DataType, DomainPointType> RuleType;
 
   82      public Intern::EvalPolicyFetcher<Space_, DataType_>::EvalPolicy
 
  104      typedef typename TrafoType::template Evaluator<ShapeType, DataType>::Type 
TrafoEvaluator;
 
  110      typedef typename SpaceType::template Evaluator<TrafoEvaluator>::Type 
SpaceEvaluator;
 
  122      static constexpr SpaceTags space_config = space_config_;
 
  123      static constexpr SpaceTags test_config = space_config_;
 
  124      static constexpr SpaceTags trial_config = space_config_;
 
  125      static constexpr SpaceTags mult_config = space_config_;
 
  128      typedef typename SpaceEvaluator::template ConfigTraits<space_config> SpaceConfigTraits;
 
  129      static constexpr TrafoTags space_trafo_config = SpaceConfigTraits::trafo_config;
 
  130      static constexpr TrafoTags test_trafo_config = SpaceConfigTraits::trafo_config;
 
  131      static constexpr TrafoTags trial_trafo_config = SpaceConfigTraits::trafo_config;
 
  132      static constexpr TrafoTags mult_trafo_config = SpaceConfigTraits::trafo_config;
 
  138      typedef typename TrafoEvaluator::template ConfigTraits<trafo_config>::EvalDataType 
TrafoEvalData;
 
  142      typedef typename SpaceEvaluator::template ConfigTraits<space_config>::EvalDataType 
SpaceEvalData;
 
  161      static constexpr int domain_dim = TrafoEvaluator::domain_dim;
 
  163      static constexpr int image_dim = TrafoEvaluator::image_dim;
 
  167      static constexpr int max_local_test_dofs  = TestEvaluator::max_local_dofs;
 
  168      static constexpr int max_local_trial_dofs = TrialEvaluator::max_local_dofs;
 
  169      static constexpr int max_local_mult_dofs  = MultEvaluator::max_local_dofs;
 
  172      template<
typename Value_>
 
  174      template<
typename Value_>
 
  176      template<
typename Value_>
 
  178      template<
typename Value_>
 
  182      template<
typename Value_>
 
  221      typename TrialSpace_,
 
  226      public Intern::EvalPolicyFetcher<TestSpace_, DataType_>::EvalPolicy
 
  246      typedef typename TrafoType::template Evaluator<ShapeType, DataType>::Type 
TrafoEvaluator;
 
  252      typedef typename TestSpaceType::template Evaluator<TrafoEvaluator>::Type 
TestEvaluator;
 
  253      typedef typename TrialSpaceType::template Evaluator<TrafoEvaluator>::Type TrialEvaluator;
 
  254      typedef TrialEvaluator MultEvaluator;
 
  258      typedef typename TrialEvaluator::SpaceEvalTraits TrialEvalTraits;
 
  259      typedef TrialEvalTraits MultEvalTraits;
 
  262      static constexpr SpaceTags test_config = test_config_;
 
  263      static constexpr SpaceTags trial_config = trial_config_;
 
  264      static constexpr SpaceTags mult_config = trial_config_;
 
  267      typedef typename TestEvaluator::template ConfigTraits<test_config> TestConfigTraits;
 
  268      typedef typename TrialEvaluator::template ConfigTraits<trial_config> TrialConfigTraits;
 
  269      static constexpr TrafoTags test_trafo_config = TestConfigTraits::trafo_config;
 
  270      static constexpr TrafoTags trial_trafo_config = TrialConfigTraits::trafo_config;
 
  271      static constexpr TrafoTags mult_trafo_config = TrialConfigTraits::trafo_config;
 
  277      typedef typename TrafoEvaluator::template ConfigTraits<trafo_config>::EvalDataType 
TrafoEvalData;
 
  281      typedef typename TestEvaluator::template ConfigTraits<test_config>::EvalDataType 
TestEvalData;
 
  282      typedef typename TrialEvaluator::template ConfigTraits<trial_config>::EvalDataType TrialEvalData;
 
  283      typedef TrialEvalData MultEvalData;
 
  287      typedef typename TrialEvalData::BasisDataType TrialBasisData;
 
  288      typedef TrialBasisData MultBasisData;
 
  292      typedef typename TrialSpaceType::DofMappingType TrialDofMapping;
 
  293      typedef TrialDofMapping MultDofMapping;
 
  296      static constexpr int domain_dim = TrafoEvaluator::domain_dim;
 
  298      static constexpr int image_dim = TrafoEvaluator::image_dim;
 
  302      static constexpr int max_local_trial_dofs = TrialEvaluator::max_local_dofs;
 
  303      static constexpr int max_local_mult_dofs  = MultEvaluator::max_local_dofs;
 
  306      template<
typename Value_>
 
  308      template<
typename Value_>
 
  310      template<
typename Value_>
 
  314      template<
typename Value_>
 
  356      typename TrialSpace_,
 
  363      public Intern::EvalPolicyFetcher<TestSpace_, DataType_>::EvalPolicy
 
  383      typedef typename TrafoType::template Evaluator<ShapeType, DataType>::Type 
TrafoEvaluator;
 
  389      typedef typename TestSpaceType::template Evaluator<TrafoEvaluator>::Type 
TestEvaluator;
 
  390      typedef typename TrialSpaceType::template Evaluator<TrafoEvaluator>::Type TrialEvaluator;
 
  391      typedef typename MultSpaceType::template Evaluator<TrafoEvaluator>::Type MultEvaluator;
 
  395      typedef typename TrialEvaluator::SpaceEvalTraits TrialEvalTraits;
 
  396      typedef typename MultEvaluator::SpaceEvalTraits MultEvalTraits;
 
  399      static constexpr SpaceTags test_config = test_config_;
 
  400      static constexpr SpaceTags trial_config = trial_config_;
 
  401      static constexpr SpaceTags mult_config = mult_config_;
 
  404      typedef typename TestEvaluator::template ConfigTraits<test_config> TestConfigTraits;
 
  405      typedef typename TrialEvaluator::template ConfigTraits<trial_config> TrialConfigTraits;
 
  406      typedef typename MultEvaluator::template ConfigTraits<mult_config> MultConfigTraits;
 
  407      static constexpr TrafoTags test_trafo_config = TestConfigTraits::trafo_config;
 
  408      static constexpr TrafoTags trial_trafo_config = TrialConfigTraits::trafo_config;
 
  409      static constexpr TrafoTags mult_trafo_config = MultConfigTraits::trafo_config;
 
  415      typedef typename TrafoEvaluator::template ConfigTraits<trafo_config>::EvalDataType 
TrafoEvalData;
 
  419      typedef typename TestEvaluator::template ConfigTraits<test_config>::EvalDataType 
TestEvalData;
 
  420      typedef typename TrialEvaluator::template ConfigTraits<trial_config>::EvalDataType TrialEvalData;
 
  421      typedef typename MultEvaluator::template ConfigTraits<trial_config>::EvalDataType MultEvalData;
 
  425      typedef typename TrialEvalData::BasisDataType TrialBasisData;
 
  426      typedef typename MultEvalData::BasisDataType MultBasisData;
 
  430      typedef typename TrialSpaceType::DofMappingType TrialDofMapping;
 
  431      typedef typename MultSpaceType::DofMappingType MultDofMapping;
 
  434      static constexpr int domain_dim = TrafoEvaluator::domain_dim;
 
  436      static constexpr int image_dim = TrafoEvaluator::image_dim;
 
  440      static constexpr int max_local_trial_dofs = TrialEvaluator::max_local_dofs;
 
  441      static constexpr int max_local_mult_dofs  = MultEvaluator::max_local_dofs;
 
  444      template<
typename Value_>
 
  446      template<
typename Value_>
 
  448      template<
typename Value_>
 
  452      template<
typename Value_>
 
Common single-space assembly traits class template.
TrafoType::template Evaluator< ShapeType, DataType >::Type TrafoEvaluator
trafo evaluator type
SpaceEvalData::BasisDataType SpaceBasisData
basis function data types
SpaceEvaluator::template ConfigTraits< space_config >::EvalDataType SpaceEvalData
space evaluation data types
SpaceType TrialSpaceType
trial-space type
DataType_ DataType
data type
SpaceType MultSpaceType
multiplier space type
Intern::CubatureTraits< TrafoEvaluator >::RuleType CubatureRuleType
cubature rule type
TrafoType::MeshType MeshType
mesh type
SpaceType TestSpaceType
test-space type
TrafoEvaluator::CellIterator CellIterator
trafo cell iterator type
static constexpr int max_local_dofs
maximum local dofs
SpaceType::TrafoType TrafoType
trafo type
SpaceEvaluator::SpaceEvalTraits SpaceEvalTraits
space evaluator traits
TrafoType::ShapeType ShapeType
shape type
static constexpr int domain_dim
trafo domain dimension
SpaceType::DofMappingType DofMapping
dof-mapping types
static constexpr int image_dim
trafo image dimension
TrafoEvaluator::template ConfigTraits< trafo_config >::EvalDataType TrafoEvalData
trafo evaluation data type
static constexpr TrafoTags trafo_config
assembly trafo config: derive from user-defined trafo config
SpaceType::template Evaluator< TrafoEvaluator >::Type SpaceEvaluator
space evaluator types
Space_ SpaceType
space type
Common test-/trial-space assembly traits class template.
TestSpaceType::DofMappingType TestDofMapping
dof-mapping types
static constexpr TrafoTags trafo_config
trafo config: combine space and assembly trafo configs
TrafoType::ShapeType ShapeType
shape type
Intern::CubatureTraits< TrafoEvaluator >::RuleType CubatureRuleType
cubature rule type
TrafoType::template Evaluator< ShapeType, DataType >::Type TrafoEvaluator
trafo evaluator type
static constexpr int domain_dim
trafo domain dimension
static constexpr int image_dim
trafo image dimension
TrialSpace_ TrialSpaceType
trial-space type
TestSpace_ TestSpaceType
test-space type
DataType_ DataType
data type
TestEvalData::BasisDataType TestBasisData
basis function data types
TestSpaceType::template Evaluator< TrafoEvaluator >::Type TestEvaluator
space evaluator types
TestEvaluator::SpaceEvalTraits TestEvalTraits
space evaluator traits
TrafoEvaluator::CellIterator CellIterator
trafo cell iterator type
TestSpaceType::TrafoType TrafoType
trafo type
TrialSpaceType MultSpaceType
mult-space type
TrafoType::MeshType MeshType
mesh type
TestEvaluator::template ConfigTraits< test_config >::EvalDataType TestEvalData
space evaluation data types
TrafoEvaluator::template ConfigTraits< trafo_config >::EvalDataType TrafoEvalData
trafo evaluation data type
static constexpr int max_local_test_dofs
maximum local dofs
Common test-/trial-/mult-space assembly traits class template.
TrafoEvaluator::template ConfigTraits< trafo_config >::EvalDataType TrafoEvalData
trafo evaluation data type
TestEvaluator::template ConfigTraits< test_config >::EvalDataType TestEvalData
space evaluation data types
TrialSpace_ TrialSpaceType
trial-space type
MultSpace_ MultSpaceType
mult-space type
TrafoType::MeshType MeshType
mesh type
TrafoType::ShapeType ShapeType
shape type
TestEvaluator::SpaceEvalTraits TestEvalTraits
space evaluator traits
TestSpaceType::DofMappingType TestDofMapping
dof-mapping types
static constexpr int image_dim
trafo image dimension
TestSpaceType::template Evaluator< TrafoEvaluator >::Type TestEvaluator
space evaluator types
static constexpr int domain_dim
trafo domain dimension
DataType_ DataType
data type
TrafoEvaluator::CellIterator CellIterator
trafo cell iterator type
Intern::CubatureTraits< TrafoEvaluator >::RuleType CubatureRuleType
cubature rule type
static constexpr int max_local_test_dofs
maximum local dofs
TestSpaceType::TrafoType TrafoType
trafo type
TrafoType::template Evaluator< ShapeType, DataType >::Type TrafoEvaluator
trafo evaluator type
TestEvalData::BasisDataType TestBasisData
basis function data types
static constexpr TrafoTags trafo_config
trafo config: combine space and assembly trafo configs
TestSpace_ TestSpaceType
test-space type
Tiny Matrix class template.
Tiny Vector class template.
SpaceTags
Space configuration tags enum.
TrafoTags
Trafo configuration tags enum.
@ jac_det
specifies whether the trafo should supply jacobian determinants