21 #ifndef bempp_ahmed_aux_hpp
22 #define bempp_ahmed_aux_hpp
24 #include "../common/common.hpp"
27 #include "ahmed_aux_fwd.hpp"
29 #include "ahmed_leaf_cluster_array.hpp"
30 #include "ahmed_mblock_array_deleter.hpp"
31 #include "../common/types.hpp"
32 #include "../common/bounding_box.hpp"
34 #include "../common/boost_scoped_array_fwd.hpp"
35 #include "../common/boost_shared_array_fwd.hpp"
43 #ifdef __INTEL_COMPILER
44 #pragma warning(disable:381)
48 #include "extended_bem_cluster.hpp"
50 #include <bbxbemblcluster.h>
57 bool multaHvec_omp(
double d, blcluster* bl, mblock<double>** A,
double* x,
69 return std::min(x, y);
75 return std::max(x, y);
78 #ifdef __INTEL_COMPILER
79 #pragma warning(default:381)
87 template <
typename CoordinateType>
93 CoordinateType getcenter(
int i)
const {
95 else if (i == 1)
return this->
reference.y;
99 CoordinateType getlbound(
int i)
const {
100 if (i == 0)
return this->
lbound.x;
101 else if (i == 1)
return this->
lbound.y;
102 else return this->
lbound.z;
105 CoordinateType getubound(
int i)
const {
106 if (i == 0)
return this->
ubound.x;
107 else if (i == 1)
return this->
ubound.y;
108 else return this->
ubound.z;
112 template <
typename ValueType>
113 boost::shared_array<mblock<typename AhmedTypeTraits<ValueType>::Type>*>
114 allocateAhmedMblockArray(
size_t blockCount)
116 typedef mblock<typename AhmedTypeTraits<ValueType>::Type> AhmedMblock;
117 AhmedMblock** blocks = 0;
118 allocmbls(blockCount, blocks);
119 return boost::shared_array<AhmedMblock*>(
123 template <
typename ValueType>
124 boost::shared_array<mblock<typename AhmedTypeTraits<ValueType>::Type>*>
125 allocateAhmedMblockArray(
const blcluster* cluster)
127 return allocateAhmedMblockArray<ValueType>(cluster->nleaves());
Point3D< CoordinateType > ubound
Upper bound.
Definition: bounding_box.hpp:20
Point3D< CoordinateType > lbound
Lower bound.
Definition: bounding_box.hpp:18
Point3D< CoordinateType > reference
Reference point.
Definition: bounding_box.hpp:16
Bounding box with a reference point.
Definition: bounding_box.hpp:13
Definition: ahmed_mblock_array_deleter.hpp:35
An Ahmed-compatible degree-of-freedom type.
Definition: ahmed_aux.hpp:89