LehrFEM++ 1.0.0
A simple Finite Element Library for teaching
Loading...
Searching...
No Matches
Public Member Functions | Private Attributes | List of all members
lf::quad::QuadRuleCache Class Reference

A cache for make_QuadRule() More...

#include <lf/quad/quad_rule_cache.h>

Public Member Functions

 QuadRuleCache ()=default
 
 QuadRuleCache (const QuadRuleCache &)=delete
 Copy constructor is deleted to avoid accidental copy.
 
 QuadRuleCache (QuadRuleCache &&other) noexcept
 Move construction is allowed.
 
QuadRuleCacheoperator= (const QuadRuleCache &)=delete
 copy assignment is delete to avoid accidental copy.
 
QuadRuleCacheoperator= (QuadRuleCache &&) noexcept=default
 Move assignment is allowed.
 
 ~QuadRuleCache ()=default
 
const QuadRuleGet (base::RefEl ref_el, unsigned degree) const
 Retrieve a quadrature rule for reference element ref_el with degree d. Is identical to calling make_QuadRule().
 

Private Attributes

std::array< std::deque< QuadRule >, 5 > cache_
 

Detailed Description

A cache for make_QuadRule()

This class has one important method: QuadRuleCache::Get() which returns the same result as make_QuadRule() but uses caching to construct the QuadRule only the first time.

Definition at line 26 of file quad_rule_cache.h.

Constructor & Destructor Documentation

◆ QuadRuleCache() [1/3]

lf::quad::QuadRuleCache::QuadRuleCache ( )
default

◆ QuadRuleCache() [2/3]

lf::quad::QuadRuleCache::QuadRuleCache ( const QuadRuleCache & )
delete

Copy constructor is deleted to avoid accidental copy.

◆ QuadRuleCache() [3/3]

lf::quad::QuadRuleCache::QuadRuleCache ( QuadRuleCache && other)
inlinenoexcept

Move construction is allowed.

Definition at line 38 of file quad_rule_cache.h.

◆ ~QuadRuleCache()

lf::quad::QuadRuleCache::~QuadRuleCache ( )
default

Member Function Documentation

◆ Get()

const QuadRule & lf::quad::QuadRuleCache::Get ( base::RefEl ref_el,
unsigned degree ) const

Retrieve a quadrature rule for reference element ref_el with degree d. Is identical to calling make_QuadRule().

Parameters
ref_elThe reference element for which the quadrature rule is.
degreeThe degree of the quadrature rule
Returns
A quadrature rule for reference element ref_el with degree d.
See also
make_QuadRule()
Note
It is guaranteed that the returned reference will remain valid for the entire lifetime of the QuadRuleCache.

Definition at line 14 of file quad_rule_cache.cc.

References cache_, lf::base::RefEl::Id(), and lf::quad::make_QuadRule().

◆ operator=() [1/2]

QuadRuleCache & lf::quad::QuadRuleCache::operator= ( const QuadRuleCache & )
delete

copy assignment is delete to avoid accidental copy.

◆ operator=() [2/2]

QuadRuleCache & lf::quad::QuadRuleCache::operator= ( QuadRuleCache && )
defaultnoexcept

Move assignment is allowed.

Member Data Documentation

◆ cache_

std::array<std::deque<QuadRule>, 5> lf::quad::QuadRuleCache::cache_
mutableprivate

Definition at line 70 of file quad_rule_cache.h.

Referenced by Get().


The documentation for this class was generated from the following files: