![]() |
Dune-Fufem 2.11-git
|
Loading...
Searching...
No Matches
dunefunctionsoperatorassembler.hh
Go to the documentation of this file.
11#warning This header is deprecated and will be removed after 2.11. Use the global assemblers from dune/assembler/defaultglobalassembler.hh instead.
49[[deprecated("This class will be removed after 2.11. Use Dune::Assembler::Assembler together with Dune::Fufem::Forms based local assemblers instead.")]]
58 static void zeroInitializeLocal(const TestLocalView& testLocalView, const AnsatzLocalView& ansatzLocalView, LocalMatrix& localMatrix)
75 static void distributeLocalPattern(const TestLocalView& testLocalView, const AnsatzLocalView& ansatzLocalView, PatternBuilder& patternBuilder)
94 static void distributeLocalEntries(const TestLocalView& testLocalView, const AnsatzLocalView& ansatzLocalView, const LocalMatrix& localMatrix, MatrixBackend& matrixBackend)
111 using LocalAssemblerPreprocess = decltype(std::declval<LocalAssembler>().preprocess(std::declval<typename TestBasis::LocalView>(), std::declval<typename AnsatzBasis::LocalView>()));
115 [[deprecated("This class will be removed after 2.11. Use Dune::Assembler::Assembler together with Dune::Fufem::Forms based local assemblers instead.")]]
153 void assembleBulkPattern(PatternBuilder& patternBuilder, const ElementPartition& elementPartition, std::size_t threadCount) const
155 static_assert(Dune::Capabilities::viewThreadSafe<typename GridView::Grid>::v, "Trying to use thread parallel assembler but grid is not viewThreadSafe.");
237 using Field = std::decay_t<decltype(matrixBackend(testLocalView.index(0), ansatzLocalView.index(0)))>;
274 void assembleBulkEntries(Matrix&& matrix, LocalAssembler&& localAssembler, const ElementPartition& elementPartition, std::size_t threadCount) const
276 static_assert(Dune::Capabilities::viewThreadSafe<typename GridView::Grid>::v, "Trying to use thread parallel assembler but grid is not viewThreadSafe.");
291 using Field = std::decay_t<decltype(matrixBackend(testLocalView.index(0), ansatzLocalView.index(0)))>;
321 * There may be cases where things do not work as expected for standard (continuous) Galerkin spaces.
327 void assembleSkeletonEntries(Matrix&& matrix, LocalAssembler&& localAssembler, LocalBoundaryAssembler&& localBoundaryAssembler) const
333 Dune::MultipleCodimMultipleGeomTypeMapper<GridView> faceMapper(testBasis_.gridView(), mcmgElementLayout());
343 using Field = std::decay_t<decltype(matrixBackend(insideTestLocalView.index(0), insideAnsatzLocalView.index(0)))>;
349 matrixContrainer[0][1].setSize(insideTestLocalView.maxSize(), outsideAnsatzLocalView.maxSize());
350 matrixContrainer[1][0].setSize(outsideTestLocalView.maxSize(), insideAnsatzLocalView.maxSize());
351 matrixContrainer[1][1].setSize(outsideTestLocalView.maxSize(), outsideAnsatzLocalView.maxSize());
376 /* Only handle every intersection once; we choose the case where the inner element has the lower index
378 * This should also work with grids where elements can have different geometries. TODO: Actually test this somewhere!*/
394 localAssembler(is, matrixContrainer, insideTestLocalView, insideAnsatzLocalView, outsideTestLocalView, outsideAnsatzLocalView);
396 distributeLocalEntries(insideTestLocalView, insideAnsatzLocalView, matrixContrainer[0][0], matrixBackend);
397 distributeLocalEntries(insideTestLocalView, outsideAnsatzLocalView, matrixContrainer[0][1], matrixBackend);
398 distributeLocalEntries(outsideTestLocalView, insideAnsatzLocalView, matrixContrainer[1][0], matrixBackend);
463 void assembleBulk(Matrix&& matrix, LocalAssembler&& localAssembler, const ElementPartition& elementPartition, std::size_t threadCount) const
465 static_assert(Dune::Capabilities::viewThreadSafe<typename GridView::Grid>::v, "Trying to use thread parallel assembler but grid is not viewThreadSafe.");
475 assembleBulkEntries(matrixBackend, std::forward<LocalAssembler>(localAssembler), elementPartition, threadCount);
521// [[deprecated("This function will be removed after 2.11. Use Dune::Assembler::Assembler together with Dune::Fufem::Forms based local assemblers instead.")]]
Col col
int size() const
#define DUNE_NO_DEPRECATED_END
#define DUNE_NO_DEPRECATED_BEGIN
void parallelAlgorithm(std::size_t threadCount, F &&threadImp)
Utility for implementing parallel algorithms based on colored entity partitions.
Definition parallelalgorithm.hh:147
auto duneFunctionsOperatorAssembler(const TestBasis &testBasis, const AnsatzBasis &ansatzBasis)
Create DuneFunctionsOperatorAssembler.
Definition dunefunctionsoperatorassembler.hh:522
MCMGLayout mcmgElementLayout()
Generic global assembler for operators on a gridview.
Definition dunefunctionsoperatorassembler.hh:51
void assembleBulkEntries(Matrix &&matrix, LocalAssembler &&localAssembler) const
Assemble bulk integrals.
Definition dunefunctionsoperatorassembler.hh:223
const TestBasis & testBasis_
Definition dunefunctionsoperatorassembler.hh:508
void assembleBulkEntries(Matrix &&matrix, LocalAssembler &&localAssembler, const ElementPartition &elementPartition, std::size_t threadCount) const
Thread parallel version of assembleBulkEntries.
Definition dunefunctionsoperatorassembler.hh:274
void assembleSkeletonPattern(PatternBuilder &patternBuilder) const
Definition dunefunctionsoperatorassembler.hh:174
DuneFunctionsOperatorAssembler(const TestBasis &tBasis, const AnsatzBasis &aBasis)
create assembler for grid
Definition dunefunctionsoperatorassembler.hh:116
void assembleBulkPattern(PatternBuilder &patternBuilder) const
Definition dunefunctionsoperatorassembler.hh:124
void assembleBulk(Matrix &&matrix, LocalAssembler &&localAssembler) const
Create matrix pattern and assemble bulk integrals.
Definition dunefunctionsoperatorassembler.hh:418
const AnsatzBasis & ansatzBasis_
Definition dunefunctionsoperatorassembler.hh:509
void assembleSkeletonEntries(Matrix &&matrix, LocalAssembler &&localAssembler, LocalBoundaryAssembler &&localBoundaryAssembler) const
Definition dunefunctionsoperatorassembler.hh:327
void assembleBulkPattern(PatternBuilder &patternBuilder, const ElementPartition &elementPartition, std::size_t threadCount) const
Thread parallel version of assembleBulkPattern.
Definition dunefunctionsoperatorassembler.hh:153
void assembleBulk(Matrix &&matrix, LocalAssembler &&localAssembler, const ElementPartition &elementPartition, std::size_t threadCount) const
Thread parallel version of assembleBulk.
Definition dunefunctionsoperatorassembler.hh:463
T forward(T... args)
