21 #ifndef bempp_cluster_construction_helper_hpp
22 #define bempp_cluster_construction_helper_hpp
24 #include "../common/common.hpp"
26 #include "../common/armadillo_fwd.hpp"
27 #include "../common/shared_ptr.hpp"
28 #include "../fiber/scalar_traits.hpp"
29 #include "ahmed_aux_fwd.hpp"
37 template <
typename BasisFunctionType>
class Space;
38 template <
typename CoordinateType>
struct AhmedDofWrapper;
39 template <
typename CoordinateType>
struct Point3D;
40 template <
typename CoordinateType>
struct BoundingBox;
42 class IndexPermutation;
45 template <
typename BasisFunctionType>
51 typedef bbxbemblcluster<AhmedDofType, AhmedDofType> AhmedBemBlcluster;
53 static void constructBemCluster(
55 bool indexWithGlobalDofs,
57 shared_ptr<AhmedBemCluster>& cluster,
58 shared_ptr<IndexPermutation>& o2p,
59 shared_ptr<IndexPermutation>& p2o);
61 static void constructBemCluster(
62 const arma::Mat<CoordinateType>& points,
65 shared_ptr<AhmedBemCluster>& cluster,
66 shared_ptr<IndexPermutation>& o2p,
67 shared_ptr<IndexPermutation>& p2o);
69 static std::auto_ptr<AhmedBemBlcluster>
70 constructBemBlockCluster(
75 bool useStrongAdmissibilityCondition,
76 unsigned int& blockCount);
78 static void truncateBemBlockCluster(blcluster *cluster,
79 const blcluster *refCluster);
82 getComponentDofPositions(
83 const arma::Mat<CoordinateType>& points,
88 getComponentBoundingBoxes(
89 const arma::Mat<CoordinateType>& points,
Traits of scalar types.
Definition: scalar_traits.hpp:40
Definition: extended_bem_cluster.hpp:37
Function space.
Definition: assembled_potential_operator.hpp:35
Adaptive cross approximation (ACA) parameters.
Definition: aca_options.hpp:34
Bounding box with a reference point.
Definition: bounding_box.hpp:13
An Ahmed-compatible degree-of-freedom type.
Definition: ahmed_aux.hpp:89
Definition: cluster_construction_helper.hpp:46