21 #ifndef bempp_block_coalescer_hpp
22 #define bempp_block_coalescer_hpp
24 #include "../common/common.hpp"
25 #include "bempp/common/config_ahmed.hpp"
29 #include "aca_options.hpp"
30 #include "ahmed_aux_fwd.hpp"
31 #include "../common/boost_scoped_array_fwd.hpp"
32 #include "../common/boost_shared_array_fwd.hpp"
33 #include "../common/scalar_traits.hpp"
34 #include "../common/shared_ptr.hpp"
36 class Epetra_CrsMatrix;
41 template <
typename ValueType>
46 typedef bbxbemblcluster<AhmedDofType, AhmedDofType> AhmedBemBlcluster;
47 typedef mblock<typename AhmedTypeTraits<ValueType>::Type> AhmedMblock;
51 blcluster* decomposedBlclustersRoot,
52 const shared_ptr<const Epetra_CrsMatrix>& permutedTestGlobalToFlatLocalMap,
53 const shared_ptr<const Epetra_CrsMatrix>& permutedTrialGlobalToFlatLocalMap,
54 const boost::shared_array<AhmedMblock*>& blocks,
55 const boost::shared_array<AhmedMblock*>& decomposedBlocks,
58 void coalesceBlock(
unsigned index);
62 void coalesceDenseBlock(
unsigned index);
63 void coalesceLowRankBlock(
unsigned index);
66 boost::scoped_array<blcluster*> m_blclusters;
67 boost::scoped_array<blcluster*> m_decomposedBlclusters;
68 shared_ptr<const Epetra_CrsMatrix> m_permutedTestGlobalToFlatLocalMap;
69 shared_ptr<const Epetra_CrsMatrix> m_permutedTrialGlobalToFlatLocalMap;
70 boost::shared_array<AhmedMblock*> m_blocks;
71 boost::shared_array<AhmedMblock*> m_decomposedBlocks;
Traits of scalar types.
Definition: scalar_traits.hpp:40
Adaptive cross approximation (ACA) parameters.
Definition: aca_options.hpp:34
An Ahmed-compatible degree-of-freedom type.
Definition: ahmed_aux.hpp:89
Definition: block_coalescer.hpp:42