libMesh
rb_eim_assembly.h
Go to the documentation of this file.
1 // rbOOmit: An implementation of the Certified Reduced Basis method.
2 // Copyright (C) 2009, 2010 David J. Knezevic
3 
4 // This file is part of rbOOmit.
5 
6 // rbOOmit is free software; you can redistribute it and/or
7 // modify it under the terms of the GNU Lesser General Public
8 // License as published by the Free Software Foundation; either
9 // version 2.1 of the License, or (at your option) any later version.
10 
11 // rbOOmit is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 // Lesser General Public License for more details.
15 
16 // You should have received a copy of the GNU Lesser General Public
17 // License along with this library; if not, write to the Free Software
18 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 
20 #ifndef LIBMESH_RB_EIM_ASSEMBLY_H
21 #define LIBMESH_RB_EIM_ASSEMBLY_H
22 
23 // rbOOmit includes
24 #include "libmesh/elem_assembly.h"
25 
26 // libMesh includes
27 #include "libmesh/numeric_vector.h"
28 #include "libmesh/point.h"
29 #include "libmesh/fe.h"
30 
31 // C++ includes
32 #include <memory>
33 
34 namespace libMesh
35 {
36 
37 class RBParameters;
38 class RBEIMConstruction;
39 
49 {
50 public:
51 
55  RBEIMAssembly(RBEIMConstruction & rb_eim_eval_in,
56  unsigned int basis_function_index_in);
57 
64  RBEIMAssembly (RBEIMAssembly &&) = default;
65  RBEIMAssembly (const RBEIMAssembly &) = default;
66  RBEIMAssembly & operator= (const RBEIMAssembly &) = delete;
67  RBEIMAssembly & operator= (RBEIMAssembly &&) = delete;
68  virtual ~RBEIMAssembly();
69 
75  unsigned int var,
76  std::vector<Number> & values);
77 
82  unsigned int side_index,
83  unsigned int var,
84  std::vector<Number> & values);
85 
90  unsigned int var);
91 
96 
97 private:
98 
103 
107  unsigned int _basis_function_index;
108 };
109 
110 }
111 
112 #endif // LIBMESH_RB_EIM_ASSEMBLY_H
This class is part of the rbOOmit framework.
RBEIMAssembly & operator=(const RBEIMAssembly &)=delete
void evaluate_basis_function(dof_id_type elem_id, unsigned int var, std::vector< Number > &values)
Return the basis function values for all quadrature points for variable var on element elem_id...
The libMesh namespace provides an interface to certain functionality in the library.
RBEIMConstruction & get_rb_eim_construction()
Get a reference to the RBEIMEvaluation object.
This class provides functionality required to define an assembly object that arises from an "Empirica...
RBEIMAssembly(RBEIMConstruction &rb_eim_eval_in, unsigned int basis_function_index_in)
Constructor.
unsigned int _basis_function_index
The EIM basis function index (from _rb_eim_con&#39;s RBEIMEvaluation) for this assembly object...
ElemAssembly provides a per-element (interior and boundary) assembly functionality.
Definition: elem_assembly.h:38
Number evaluate_node_basis_function(dof_id_type node_id, unsigned int var)
Same as evaluate_basis_function() except for side data.
RBEIMConstruction & _rb_eim_con
The RBEIMConstruction that the assembly data comes from.
uint8_t dof_id_type
Definition: id_types.h:67
void evaluate_side_basis_function(dof_id_type elem_id, unsigned int side_index, unsigned int var, std::vector< Number > &values)
Same as evaluate_basis_function() except for side data.