20 #ifndef LIBMESH_RB_ASSEMBLY_EXPANSION_H    21 #define LIBMESH_RB_ASSEMBLY_EXPANSION_H    24 #include "libmesh/reference_counted_object.h"   203 #endif // LIBMESH_RB_ASSEMBLY_EXPANSION_H void perform_output_boundary_assembly(unsigned int output_index, unsigned int q_l, FEMContext &context) const
Perform the specified output assembly. 
unsigned int get_n_outputs() const
Get n_outputs, the number output functionals. 
ElemAssembly & get_F_assembly(unsigned int q)
Return a reference to the specified F_assembly object. 
void perform_F_interior_assembly(unsigned int q, FEMContext &context) const
Perform the specified F interior assembly. 
unsigned int get_n_output_terms(unsigned int output_index) const
Get the number of affine terms associated with the specified output. 
RBAssemblyExpansion & operator=(const RBAssemblyExpansion &)=default
virtual ~RBAssemblyExpansion()=default
ElemAssembly & get_output_assembly(unsigned int output_index, unsigned int q_l)
Return a reference to the specified output assembly object. 
The libMesh namespace provides an interface to certain functionality in the library. 
void attach_multiple_A_assembly(std::vector< std::unique_ptr< ElemAssembly >> &Aq_assembly)
Attach multiple ElemAssembly objects for the left-hand side (both interior and boundary assembly)...
RBAssemblyExpansion()=default
All special functions can be defaulted for this simple class. 
std::vector< ElemAssembly * > _F_assembly_vector
Vector storing the function pointers to the assembly routines for the rhs affine vectors. 
void attach_F_assembly(ElemAssembly *Fq_assembly)
Attach ElemAssembly object for the right-hand side (both interior and boundary assembly). 
std::vector< std::vector< ElemAssembly * > > _output_assembly_vector
Vector storing the function pointers to the assembly routines for the outputs. 
void perform_output_interior_assembly(unsigned int output_index, unsigned int q_l, FEMContext &context) const
Perform the specified output assembly. 
void perform_F_boundary_assembly(unsigned int q, FEMContext &context) const
Perform the specified F boundary assembly. 
This class provides all data required for a physics package (e.g. 
This class implements reference counting. 
void attach_A_assembly(ElemAssembly *Aq_assembly)
Attach ElemAssembly object for the left-hand side (both interior and boundary assembly). 
std::vector< ElemAssembly * > _A_assembly_vector
Vectors storing the function pointers to the assembly routines for the affine operators, both interior and boundary assembly. 
void perform_A_boundary_assembly(unsigned int q, FEMContext &context) const
Perform the specified A boundary assembly. 
This class stores the set of ElemAssembly functor objects that define the "parameter-independent expa...
ElemAssembly & get_A_assembly(unsigned int q)
Return a reference to the specified A_assembly object. 
ElemAssembly provides a per-element (interior and boundary) assembly functionality. 
void perform_A_interior_assembly(unsigned int q, FEMContext &context) const
Perform the specified A interior assembly. 
unsigned int get_n_A_terms() const
Get Q_a, the number of terms in the affine expansion for the bilinear form. 
unsigned int get_n_F_terms() const
Get Q_f, the number of terms in the affine expansion for the right-hand side. 
virtual void attach_output_assembly(std::vector< std::unique_ptr< ElemAssembly >> &output_assembly)
Attach ElemAssembly object for an output (both interior and boundary assembly). 
void attach_multiple_F_assembly(std::vector< std::unique_ptr< ElemAssembly >> &Fq_assembly)
Attach multiple ElemAssembly objects for the right-hand side (both interior and boundary assembly)...