LifeV
|
QuadratureRuleProvider - This class is used to generate quadrature rules. More...
#include <QuadratureRuleProvider.hpp>
Static Private Attributes | |
static NoPreciseExactness | S_BehaviorNoPreciseExactness = QuadratureRuleProvider::ReturnSup |
static TooHighExactness | S_BehaviorTooHighExactness = QuadratureRuleProvider::ErrorTooHigh |
static NegativeWeight | S_BehaviorNegativeWeight = QuadratureRuleProvider::Accept |
Public Types | |
enum | NoPreciseExactness { ErrorNoPrecise, WarningAndReturnSup, ReturnSup } |
enum | TooHighExactness { ErrorTooHigh, WarningAndReturnMax, ReturnMax } |
enum | NegativeWeight { Accept, WarningAndAccept, Reject } |
Methods | |
static QuadratureRule | provideExactness (const ReferenceShapes &shape, const UInt &exactness) |
Provide a quadrature rule with the given exactness. More... | |
static QuadratureRule | provideMaximal (const ReferenceShapes &shape) |
Provide the quadrature rule with the highest exactness available. More... | |
Set Methods | |
static void | setBehaviorNoPreciseExactness (const NoPreciseExactness &behavior) |
static void | setBehaviorTooHighExactness (const TooHighExactness &behavior) |
static void | setBehaviorNegativeWeight (const NegativeWeight &behavior) |
Private Methods | |
QuadratureRuleProvider () | |
Empty Constructor. More... | |
QuadratureRuleProvider (const QuadratureRuleProvider &) | |
Copy Constructor. More... | |
virtual | ~QuadratureRuleProvider () |
Destructor. More... | |
static QuadratureRule | provideExactnessTetra (const UInt &exactness) |
Method for the differentShapes. More... | |
static QuadratureRule | provideExactnessPrism (const UInt &exactness) |
static QuadratureRule | provideExactnessHexa (const UInt &exactness) |
static QuadratureRule | provideExactnessQuad (const UInt &exactness) |
static QuadratureRule | provideExactnessTriangle (const UInt &exactness) |
static QuadratureRule | provideExactnessLine (const UInt &exactness) |
static QuadratureRule | provideExactnessPoint (const UInt &exactness) |
static QuadratureRule | provideExactnessTetraNoNeg (const UInt &exactness) |
static QuadratureRule | provideExactnessTriangleNoNeg (const UInt &exactness) |
static void | manageNoPreciseExactnessCase () |
static void | manageTooHighExactnessCase () |
static void | manageWarningNegativeWeight () |
QuadratureRuleProvider - This class is used to generate quadrature rules.
Thanks to this class, it is possible to adopt the best suitable quadrature rule for each case, depending on the degree of the expression to be integrated.
Two important methods are provided:
These two methods are influenced by the 3 behaviors available, which give the way to handle special situations:
These 3 behaviors can be changed via the ad-hoc setter.
Remark When running in parallel, it is a good practice to issue warning only with the leader process. Do not "Reject" negative quadratures with only one process (different processes would have different quadratures!).
Definition at line 100 of file QuadratureRuleProvider.hpp.
enum NoPreciseExactness |
Enumerator | |
---|---|
ErrorNoPrecise | |
WarningAndReturnSup | |
ReturnSup |
Definition at line 107 of file QuadratureRuleProvider.hpp.
enum TooHighExactness |
Enumerator | |
---|---|
ErrorTooHigh | |
WarningAndReturnMax | |
ReturnMax |
Definition at line 108 of file QuadratureRuleProvider.hpp.
enum NegativeWeight |
Enumerator | |
---|---|
Accept | |
WarningAndAccept | |
Reject |
Definition at line 109 of file QuadratureRuleProvider.hpp.
|
private |
Empty Constructor.
|
private |
Copy Constructor.
|
privatevirtual |
Destructor.
|
static |
Provide a quadrature rule with the given exactness.
Given a shape, this method will try to return a quadrature rule that has the given exactness. If such a quadrature rule is not defined, the program will abort.
Definition at line 52 of file QuadratureRuleProvider.cpp.
|
static |
Provide the quadrature rule with the highest exactness available.
Definition at line 107 of file QuadratureRuleProvider.cpp.
|
inlinestatic |
Setter for the behavior in case a quadrature rule with the precise exactness required could not be found.
Definition at line 146 of file QuadratureRuleProvider.hpp.
|
inlinestatic |
Setter for the behavior in case the exactness required cannot be achieved by a known quadrature rule.
Definition at line 155 of file QuadratureRuleProvider.hpp.
|
inlinestatic |
Setter for the behavior in case the quadrature rule asked for has negative weights for some quadrature nodes.
Definition at line 164 of file QuadratureRuleProvider.hpp.
|
staticprivate |
Method for the differentShapes.
Definition at line 161 of file QuadratureRuleProvider.cpp.
|
staticprivate |
Definition at line 217 of file QuadratureRuleProvider.cpp.
|
staticprivate |
Definition at line 235 of file QuadratureRuleProvider.cpp.
|
staticprivate |
Definition at line 265 of file QuadratureRuleProvider.cpp.
|
staticprivate |
Definition at line 302 of file QuadratureRuleProvider.cpp.
|
staticprivate |
Definition at line 340 of file QuadratureRuleProvider.cpp.
|
staticprivate |
Definition at line 369 of file QuadratureRuleProvider.cpp.
|
staticprivate |
Definition at line 380 of file QuadratureRuleProvider.cpp.
|
staticprivate |
Definition at line 423 of file QuadratureRuleProvider.cpp.
|
staticprivate |
Definition at line 462 of file QuadratureRuleProvider.cpp.
|
staticprivate |
Definition at line 479 of file QuadratureRuleProvider.cpp.
|
staticprivate |
Definition at line 495 of file QuadratureRuleProvider.cpp.
|
staticprivate |
Definition at line 206 of file QuadratureRuleProvider.hpp.
|
staticprivate |
Definition at line 207 of file QuadratureRuleProvider.hpp.
|
staticprivate |
Definition at line 208 of file QuadratureRuleProvider.hpp.