Go to the documentation of this file.
21 #include "libmesh/rb_theta_expansion.h"
22 #include "libmesh/rb_theta.h"
23 #include "libmesh/rb_parameters.h"
37 return cast_int<unsigned int>
43 return cast_int<unsigned int>
49 return cast_int<unsigned int>
56 libmesh_error_msg(
"Error: We must have index < n_outputs in get_Q_l.");
58 return cast_int<unsigned int>
71 for (std::size_t i=0; i<theta_q_a.size(); i++)
87 for (std::size_t i=0; i<theta_q_f.size(); i++)
96 std::vector<RBTheta *> theta_q_l_ptr;
97 for(std::size_t i=0; i<theta_q_l.size(); i++)
99 theta_q_l_ptr.push_back( theta_q_l[i].
get() );
113 std::vector<RBTheta *> theta_l_vector(1);
114 theta_l_vector[0] = theta_q_l;
123 libmesh_error_msg(
"Error: We must have q < get_n_A_terms in eval_A_theta.");
134 libmesh_error_msg(
"Error: We must have q < get_n_F_terms in eval_F_theta.");
146 libmesh_error_msg(
"Error: We must have output_index < n_outputs and " \
147 <<
"q_l < get_n_output_terms(output_index) in eval_output_theta.");
virtual void attach_multiple_F_theta(std::vector< std::unique_ptr< RBTheta >> &theta_q_f)
Attach a vector of pointers to functor objects that each define one of the theta_q_f terms.
unsigned int get_n_output_terms(unsigned int output_index) const
Get the number of affine terms associated with the specified output.
unsigned int get_n_F_terms() const
Get Q_f, the number of terms in the affine expansion for the right-hand side.
std::vector< std::vector< RBTheta * > > _output_theta_vector
Vector storing the RBTheta functors for the affine expansion of the outputs.
virtual void attach_output_theta(std::vector< std::unique_ptr< RBTheta >> &theta_q_l)
Attach a vector of pointers to functor objects that define one of the outputs.
The libMesh namespace provides an interface to certain functionality in the library.
This class is part of the rbOOmit framework.
virtual Number eval_output_theta(unsigned int output_index, unsigned int q_l, const RBParameters &mu)
Evaluate theta_q_l at the current parameter.
std::vector< RBTheta * > _F_theta_vector
Vector storing the RBTheta functors for the affine expansion of the rhs.
std::vector< RBTheta * > _A_theta_vector
Vector storing the pointers to the RBTheta functors for A.
virtual void attach_F_theta(RBTheta *theta_q_f)
Attach a pointer to a functor object that defines one of the theta_q_a terms.
virtual Number eval_A_theta(unsigned int q, const RBParameters &mu)
Evaluate theta_q_a at the current parameter.
unsigned int get_n_outputs() const
Get n_outputs, the number output functionals.
RBThetaExpansion()
Constructor.
const Elem & get(const ElemType type_in)
This class is part of the rbOOmit framework.
unsigned int get_n_A_terms() const
Get Q_a, the number of terms in the affine expansion for the bilinear form.
virtual Number eval_F_theta(unsigned int q, const RBParameters &mu)
Evaluate theta_q_f at the current parameter.
virtual void attach_A_theta(RBTheta *theta_q_a)
Attach a pointer to a functor object that defines one of the theta_q_a terms.
virtual void attach_multiple_A_theta(std::vector< std::unique_ptr< RBTheta >> &theta_q_a)
Attach a vector of pointers to functor objects that each define one of the theta_q_a terms.