4#if defined(LIBMESH_HAVE_SLEPC) && defined(LIBMESH_HAVE_GLPK)
6#include "libmesh/sparse_matrix.h"
7#include "libmesh/numeric_vector.h"
8#include "libmesh/dense_matrix.h"
9#include "libmesh/dense_vector.h"
10#include "libmesh/fe.h"
11#include "libmesh/fe_interface.h"
12#include "libmesh/fe_base.h"
13#include "libmesh/elem_assembly.h"
14#include "libmesh/quadrature_gauss.h"
17#include "libmesh/rb_theta.h"
18#include "libmesh/rb_assembly_expansion.h"
44 const unsigned int u_var = 0;
46 FEBase * elem_fe =
nullptr;
49 const std::vector<Real> & JxW = elem_fe->get_JxW();
51 const std::vector<std::vector<Real>> & phi = elem_fe->get_phi();
55 const std::vector<std::vector<RealGradient>> & dphi = elem_fe->get_dphi();
63 for (
unsigned int qp=0; qp != n_qpoints; qp++)
64 for (
unsigned int i=0; i != n_u_dofs; i++)
65 for (
unsigned int j=0; j != n_u_dofs; j++)
66 c.
get_elem_jacobian()(i,j) += JxW[qp] * (phi[j][qp]*phi[i][qp] + dphi[j][qp]*dphi[i][qp]);
76 const unsigned int u_var = 0;
78 FEBase * elem_fe =
nullptr;
81 const std::vector<Real> & JxW = elem_fe->get_JxW();
85 const std::vector<std::vector<RealGradient>> & dphi = elem_fe->get_dphi();
98 if ((min_x <= avg(0)) && (avg(0) < max_x))
99 for (
unsigned int qp=0; qp != n_qpoints; qp++)
100 for (
unsigned int i=0; i != n_u_dofs; i++)
101 for (
unsigned int j=0; j != n_u_dofs; j++)
111 const unsigned int u_var = 0;
113 FEBase * elem_fe =
nullptr;
116 const std::vector<Real> & JxW = elem_fe->get_JxW();
120 const std::vector<std::vector<RealGradient>> & dphi = elem_fe->get_dphi();
133 if ((min_x <= avg(0)) && (avg(0) <= max_x))
134 for (
unsigned int qp=0; qp != n_qpoints; qp++)
135 for (
unsigned int i=0; i != n_u_dofs; i++)
136 for (
unsigned int j=0; j != n_u_dofs; j++)
146 const unsigned int u_var = 0;
148 FEBase * elem_fe =
nullptr;
151 const std::vector<Real> & JxW = elem_fe->get_JxW();
153 const std::vector<std::vector<Real>> & phi = elem_fe->get_phi();
155 const std::vector<std::vector<RealGradient>> & dphi = elem_fe->get_dphi();
163 for (
unsigned int qp=0; qp != n_qpoints; qp++)
164 for (
unsigned int i=0; i != n_u_dofs; i++)
165 for (
unsigned int j=0; j != n_u_dofs; j++)
176 const unsigned int u_var = 0;
178 FEBase * elem_fe =
nullptr;
181 const std::vector<Real> & JxW = elem_fe->get_JxW();
183 const std::vector<std::vector<Real>> & phi = elem_fe->get_phi();
191 for (
unsigned int qp=0; qp != n_qpoints; qp++)
192 for (
unsigned int i=0; i != n_u_dofs; i++)
200 Real min_y_in, Real max_y_in) :
210 const unsigned int u_var = 0;
212 FEBase * elem_fe =
nullptr;
215 const std::vector<Real> & JxW = elem_fe->get_JxW();
217 const std::vector<std::vector<Real>> & phi = elem_fe->get_phi();
230 for (
unsigned int qp=0; qp != n_qpoints; qp++)
231 for (
unsigned int i=0; i != n_u_dofs; i++)
277 L0(0.72, 0.88, 0.72, 0.88),
278 L1(0.12, 0.28, 0.72, 0.88),
279 L2(0.12, 0.28, 0.12, 0.28),
280 L3(0.72, 0.88, 0.12, 0.28)
289 attach_output_assembly(&
L0);
290 attach_output_assembly(&
L1);
291 attach_output_assembly(&
L2);
292 attach_output_assembly(&
L3);
const std::vector< dof_id_type > & get_dof_indices() const
Accessor for element dof indices.
const DenseVector< Number > & get_elem_residual() const
Const accessor for element residual.
const DenseMatrix< Number > & get_elem_jacobian() const
Const accessor for element Jacobian.
ElemAssembly provides a per-element (interior and boundary) assembly functionality.
Point vertex_average() const
This class forms the foundation from which generic finite elements may be derived.
This class provides an encapsulated access to all static public member functions of finite element cl...
This class provides all data required for a physics package (e.g.
const QBase & get_element_qrule() const
Accessor for element interior quadrature rule for the dimension of the current _elem.
const Elem & get_elem() const
Accessor for current Elem object.
void get_element_fe(unsigned int var, FEGenericBase< OutputShape > *&fe) const
Accessor for interior finite element object for variable var for the largest dimension in the mesh.
A Point defines a location in LIBMESH_DIM dimensional Real space.
unsigned int n_points() const
This class is part of the rbOOmit framework.
Real get_value(const std::string ¶m_name) const
Get the value of the specified parameter, throw an error if it does not exist.
This class is part of the rbOOmit framework.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
virtual void interior_assembly(FEMContext &c)
Perform the element interior assembly.
virtual void interior_assembly(FEMContext &c)
Perform the element interior assembly.
virtual void interior_assembly(FEMContext &c)
Perform the element interior assembly.
virtual void interior_assembly(FEMContext &c)
Perform the element interior assembly.
Ex02RBAssemblyExpansion()
Constructor.
Ex02RBThetaExpansion()
Constructor.
virtual void interior_assembly(FEMContext &c)
Perform the element interior assembly.
Output assembly object which computes the average value of the solution variable inside a user-provid...
virtual void interior_assembly(FEMContext &c)
Perform the element interior assembly.
OutputAssembly(Real min_x_in, Real max_x_in, Real min_y_in, Real max_y_in)
virtual Number evaluate(const RBParameters &mu)
Evaluate the functor object for the given parameter.
virtual Number evaluate(const RBParameters &mu)
Evaluate the functor object for the given parameter.
virtual Number evaluate(const RBParameters &mu)
Evaluate the functor object for the given parameter.