BEM++
2.0
|
Options controlling evaluation of potentials. More...
#include </home/wojtek/Projects/BEM/bempp-sven/bempp/lib/assembly/evaluation_options.hpp>
Public Types | |
enum | { AUTO = -1 } |
Public Member Functions | |
EvaluationOptions () | |
Constructor. | |
void | setMaxThreadCount (int maxThreadCount) |
Set the maximum number of threads used during evaluation of potentials. More... | |
BEMPP_DEPRECATED void | switchToTbb (int maxThreadCount=AUTO) |
Set the maximum number of threads used during evaluation of potentials. More... | |
const ParallelizationOptions & | parallelizationOptions () const |
Return current parallelization options. | |
void | setVerbosityLevel (VerbosityLevel::Level level) |
Set the verbosity level. More... | |
VerbosityLevel::Level | verbosityLevel () const |
Return the verbosity level. | |
Evaluation mode | |
enum | Mode { DENSE, ACA } |
Possible evaluation modes. More... | |
void | switchToDenseMode () |
Use dense-matrix representations of elementary potential operators. More... | |
void | switchToAcaMode (const AcaOptions &acaOptions) |
Use adaptive cross approximation (ACA) to obtain hierarchical-matrix representations of potential operators. More... | |
Mode | evaluationMode () const |
Return current evaluation mode. More... | |
const AcaOptions & | acaOptions () const |
Return the current adaptive cross approximation (ACA) settings. More... | |
Options controlling evaluation of potentials.
const AcaOptions & Bempp::EvaluationOptions::acaOptions | ( | ) | const |
Return the current adaptive cross approximation (ACA) settings.
Referenced by switchToAcaMode().
EvaluationOptions::Mode Bempp::EvaluationOptions::evaluationMode | ( | ) | const |
Return current evaluation mode.
The evaluation mode can be changed by calling switchToDenseMode() or switchToAcaMode().
Referenced by Bempp::ElementaryPotentialOperator< BasisFunctionType_, KernelType_, ResultType_ >::evaluateAtPoints().
void Bempp::EvaluationOptions::setMaxThreadCount | ( | int | maxThreadCount | ) |
Set the maximum number of threads used during evaluation of potentials.
maxThreadCount
must be a positive number or AUTO
. In the latter case the number of threads is determined automatically.
Referenced by switchToTbb().
void Bempp::EvaluationOptions::setVerbosityLevel | ( | VerbosityLevel::Level | level | ) |
Set the verbosity level.
This setting determines the amount of information printed out by functions from BEM++.
void Bempp::EvaluationOptions::switchToAcaMode | ( | const AcaOptions & | acaOptions | ) |
Use adaptive cross approximation (ACA) to obtain hierarchical-matrix representations of potential operators.
[in] | acaOptions | Parameters influencing the ACA algorithm. |
In this mode, evaluation of potentials always entails the construction of a hierarchical-matrix representation of the potential operator, as defined in the documentation of switchToDenseMode(). The potential given by a particular charge distribution is then calculated by left-multiplying the vector of its expansion coefficients by the above hierarchical matrix.
References ACA, and acaOptions().
void Bempp::EvaluationOptions::switchToDenseMode | ( | ) |
Use dense-matrix representations of elementary potential operators.
This is the default evaluation mode. If it is active, potentials are evaluated in the following way.
(1) When the potential needs to be evaluated only for a single charge distribution , as is the case in the PotentialOperator::evaluateAtPoints() and evaluateOnGrid() functions, the defining formula of the potential
is approximated with a numerical quadrature rule
where and
are the quadrature points and weights. The values of
at the quadrature points
are precalculated and stored, and then the potential is sequentially evaluated at each requested point
using the formula above. The values of any kernels involved in
are evaluated once for each pair
and then discarded.
(2) If the potentials due to multiple charge distributions need to be evaluated at a fixed set of points, the PotentialOperator::assemble() function can be used to generate an AssembledPotentialOperator object storing a (dense) matrix representation of the potential operator, with the element (c * i, j) containing the value of cth component of the potential produced at ith point by the charge distribution equal to jth basis function of a certain function space. The potential generated by a specific charge distribution expanded in this space is then calculated by left-multiplying the vector of its expansion coefficients by the matrix representation of the potential operator.
References DENSE.
void Bempp::EvaluationOptions::switchToTbb | ( | int | maxThreadCount = AUTO | ) |
Set the maximum number of threads used during evaluation of potentials.
References setMaxThreadCount().