91 template <
typename T = ForcesAndSourcesCore>
94 template <
typename T = ForcesAndSourcesCore>
97 template <
typename T = ForcesAndSourcesCore>
100 template <
int DIM = -1>
103 template <
int DIM = -1>
106 template <
int DIM = -1>
109 template <
int DIM = -1>
112 template <
int DIM = -1>
115 template <
int DIM = -1>
118 template <
int DIM = -1>
121 template <
int DIM = -1>
124 template <
int DIM = -1>
134 template <
int DIM = -1>
144 template <
int DIM = -1>
154 template <
int DIM = -1>
164 template <
int DIM = -1>
173 template <
int DIM = -1>
183 template <
int DIM = -1>
193 template <
int DIM = -1>
203 template <
int DIM = -1>
213 template <
int DIM = -1>
327 boost::shared_ptr<FEMethod>
329 boost::shared_ptr<FEMethod>
331 boost::shared_ptr<FEMethod>
333 boost::shared_ptr<FEMethod>
335 boost::shared_ptr<FEMethod>
337 boost::shared_ptr<FEMethod>
340 boost::shared_ptr<FEMethod>
342 boost::shared_ptr<FEMethod>
345 boost::shared_ptr<FEMethod>
358 inline boost::shared_ptr<FEMethod> &
362 inline boost::shared_ptr<FEMethod> &
365 inline boost::shared_ptr<FEMethod> &
373 boost::shared_ptr<FEMethod> &
375 static_assert(DIM == 1 || DIM == 2 || DIM == 3,
"not implemented");
376 fe = boost::make_shared<FEMethod>();
381 inline boost::shared_ptr<FEMethod> &
382 PipelineManager::createDomainFEPipeline<3>(boost::shared_ptr<FEMethod> &fe) {
384 fe = boost::make_shared<VolEle>(
cOre);
389 inline boost::shared_ptr<FEMethod> &
390 PipelineManager::createDomainFEPipeline<2>(boost::shared_ptr<FEMethod> &fe) {
392 fe = boost::make_shared<FaceEle>(
cOre);
397 inline boost::shared_ptr<FEMethod> &
398 PipelineManager::createDomainFEPipeline<1>(boost::shared_ptr<FEMethod> &fe) {
400 fe = boost::make_shared<EdgeEle>(
cOre);
405 inline boost::shared_ptr<FEMethod> &
409 return createDomainFEPipeline<1>(fe);
411 return createDomainFEPipeline<2>(fe);
413 return createDomainFEPipeline<3>(fe);
420 boost::shared_ptr<FEMethod> &
422 static_assert(DIM == 1 || DIM == 2 || DIM == 3,
"not implemented");
423 fe = boost::make_shared<FEMethod>();
428 inline boost::shared_ptr<FEMethod> &
429 PipelineManager::createBoundaryFEPipeline<3>(boost::shared_ptr<FEMethod> &fe) {
431 fe = boost::make_shared<FaceElementForcesAndSourcesCore>(
cOre);
436 inline boost::shared_ptr<FEMethod> &
437 PipelineManager::createBoundaryFEPipeline<2>(boost::shared_ptr<FEMethod> &fe) {
439 fe = boost::make_shared<EdgeEle>(
cOre);
444 inline boost::shared_ptr<FEMethod> &
445 PipelineManager::createBoundaryFEPipeline<1>(boost::shared_ptr<FEMethod> &fe) {
447 fe = boost::make_shared<VertexElementForcesAndSourcesCore>(
cOre);
500 inline boost::shared_ptr<FEMethod> &
504 return createBoundaryFEPipeline<1>(fe);
506 return createBoundaryFEPipeline<2>(fe);
508 return createBoundaryFEPipeline<3>(fe);
515 return boost::dynamic_pointer_cast<T>(
520 return boost::dynamic_pointer_cast<T>(
525 return boost::dynamic_pointer_cast<T>(
529 template <
typename T,
int DIM>
531 return boost::dynamic_pointer_cast<T>(
535 template <
typename T,
int DIM>
537 return boost::dynamic_pointer_cast<T>(
542 return boost::dynamic_pointer_cast<T>(
546 template <
typename T,
int DIM>
548 return boost::dynamic_pointer_cast<T>(
552 template <
typename T,
int DIM>
554 return boost::dynamic_pointer_cast<T>(
558 template <
typename T,
int DIM>
560 return boost::dynamic_pointer_cast<T>(
573 return boost::dynamic_pointer_cast<T>(
581 boost::dynamic_pointer_cast<ForcesAndSourcesCore>(
583 ->getRuleHook = rule;
593 return setDomainLhsIntegrationRule<1>(rule);
595 return setDomainLhsIntegrationRule<2>(rule);
597 return setDomainLhsIntegrationRule<3>(rule);
608 boost::dynamic_pointer_cast<ForcesAndSourcesCore>(
610 ->getRuleHook = rule;
620 return setDomainRhsIntegrationRule<1>(rule);
622 return setDomainRhsIntegrationRule<2>(rule);
624 return setDomainRhsIntegrationRule<3>(rule);
635 boost::dynamic_pointer_cast<ForcesAndSourcesCore>(
637 ->getRuleHook = rule;
647 return setBoundaryLhsIntegrationRule<1>(rule);
649 return setBoundaryLhsIntegrationRule<2>(rule);
651 return setBoundaryLhsIntegrationRule<3>(rule);
662 boost::dynamic_pointer_cast<ForcesAndSourcesCore>(
664 ->getRuleHook = rule;
674 return setBoundaryRhsIntegrationRule<1>(rule);
676 return setBoundaryRhsIntegrationRule<2>(rule);
678 return setBoundaryRhsIntegrationRule<3>(rule);
689 boost::dynamic_pointer_cast<ForcesAndSourcesCore>(
691 ->getRuleHook = rule;
701 return setSkeletonLhsIntegrationRule<1>(rule);
703 return setSkeletonLhsIntegrationRule<2>(rule);
705 return setSkeletonLhsIntegrationRule<3>(rule);
716 boost::dynamic_pointer_cast<ForcesAndSourcesCore>(
718 ->getRuleHook = rule;
728 return setSkeletonRhsIntegrationRule<1>(rule);
730 return setSkeletonRhsIntegrationRule<2>(rule);
732 return setSkeletonRhsIntegrationRule<3>(rule);
743 boost::dynamic_pointer_cast<ForcesAndSourcesCore>(
745 ->getRuleHook = rule;
755 return setDomainExplicitRhsIntegrationRule<1>(rule);
757 return setDomainExplicitRhsIntegrationRule<2>(rule);
759 return setDomainExplicitRhsIntegrationRule<3>(rule);
770 boost::dynamic_pointer_cast<ForcesAndSourcesCore>(
772 ->getRuleHook = rule;
783 return setBoundaryExplicitRhsIntegrationRule<1>(rule);
785 return setBoundaryExplicitRhsIntegrationRule<2>(rule);
787 return setBoundaryExplicitRhsIntegrationRule<3>(rule);
798 boost::dynamic_pointer_cast<ForcesAndSourcesCore>(
800 ->getRuleHook = rule;
811 return setSkeletonExplicitRhsIntegrationRule<1>(rule);
813 return setSkeletonExplicitRhsIntegrationRule<2>(rule);
815 return setSkeletonExplicitRhsIntegrationRule<3>(rule);
823 boost::ptr_deque<PipelineManager::UserDataOperator> &
825 return boost::dynamic_pointer_cast<ForcesAndSourcesCore>(
831 inline boost::ptr_deque<PipelineManager::UserDataOperator> &
835 return getOpDomainLhsPipeline<1>();
837 return getOpDomainLhsPipeline<2>();
843 return getOpDomainLhsPipeline<3>();
847 boost::ptr_deque<PipelineManager::UserDataOperator> &
849 return boost::dynamic_pointer_cast<ForcesAndSourcesCore>(
855 inline boost::ptr_deque<PipelineManager::UserDataOperator> &
859 return getOpDomainRhsPipeline<1>();
861 return getOpDomainRhsPipeline<2>();
867 return getOpDomainRhsPipeline<3>();
871 boost::ptr_deque<PipelineManager::UserDataOperator> &
873 return boost::dynamic_pointer_cast<ForcesAndSourcesCore>(
879 inline boost::ptr_deque<PipelineManager::UserDataOperator> &
883 return getOpBoundaryLhsPipeline<1>();
885 return getOpBoundaryLhsPipeline<2>();
891 return getOpBoundaryLhsPipeline<3>();
895 boost::ptr_deque<PipelineManager::UserDataOperator> &
897 return boost::dynamic_pointer_cast<ForcesAndSourcesCore>(
903 inline boost::ptr_deque<PipelineManager::UserDataOperator> &
907 return getOpBoundaryRhsPipeline<1>();
909 return getOpBoundaryRhsPipeline<2>();
915 return getOpBoundaryRhsPipeline<3>();
919 boost::ptr_deque<PipelineManager::UserDataOperator> &
921 return boost::dynamic_pointer_cast<ForcesAndSourcesCore>(
927 inline boost::ptr_deque<PipelineManager::UserDataOperator> &
931 return getOpSkeletonLhsPipeline<1>();
933 return getOpSkeletonLhsPipeline<2>();
939 return getOpSkeletonLhsPipeline<3>();
943 boost::ptr_deque<PipelineManager::UserDataOperator> &
945 return boost::dynamic_pointer_cast<ForcesAndSourcesCore>(
951 inline boost::ptr_deque<PipelineManager::UserDataOperator> &
955 return getOpSkeletonRhsPipeline<1>();
957 return getOpSkeletonRhsPipeline<2>();
963 return getOpSkeletonRhsPipeline<3>();
967 boost::ptr_deque<PipelineManager::UserDataOperator> &
969 return boost::dynamic_pointer_cast<ForcesAndSourcesCore>(
975 inline boost::ptr_deque<PipelineManager::UserDataOperator> &
979 return getOpDomainExplicitRhsPipeline<1>();
981 return getOpDomainExplicitRhsPipeline<2>();
987 return getOpDomainExplicitRhsPipeline<3>();
991 boost::ptr_deque<PipelineManager::UserDataOperator> &
993 return boost::dynamic_pointer_cast<ForcesAndSourcesCore>(
999 inline boost::ptr_deque<PipelineManager::UserDataOperator> &
1003 return getOpBoundaryExplicitRhsPipeline<1>();
1005 return getOpBoundaryExplicitRhsPipeline<2>();
1011 return getOpBoundaryExplicitRhsPipeline<3>();
1015 boost::ptr_deque<PipelineManager::UserDataOperator> &
1017 return boost::dynamic_pointer_cast<ForcesAndSourcesCore>(
1023 inline boost::ptr_deque<PipelineManager::UserDataOperator> &
1027 return getOpSkeletonExplicitRhsPipeline<1>();
1029 return getOpSkeletonExplicitRhsPipeline<2>();
1035 return getOpSkeletonExplicitRhsPipeline<3>();
1057 #endif // __BASIC_HPP__