Go to the documentation of this file.
20 #ifndef LIBMESH_RB_EIM_EVALUATION_H
21 #define LIBMESH_RB_EIM_EVALUATION_H
24 #include "libmesh/point.h"
25 #include "libmesh/rb_evaluation.h"
26 #include "libmesh/replicated_mesh.h"
27 #include "libmesh/rb_theta_expansion.h"
36 class RBParametrizedFunction;
73 virtual void clear()
override;
80 bool resize_error_bound_data=
true)
override;
158 const bool write_binary_data=
true)
override;
167 bool read_error_bound_data=
true,
168 const bool read_binary_data=
true)
override;
255 #endif // LIBMESH_RB_EIM_EVALUATION_H
std::vector< RBParametrizedFunction * > _parametrized_functions
This vector stores the parametrized functions that will be approximated in this EIM system.
unsigned int _previous_N
Store the number of basis functions used for the previous solve (so we can avoid an unnecessary repea...
RBEvaluation Parent
The type of the parent.
virtual Real rb_solve(unsigned int N) override
Calculate the EIM approximation to parametrized_function using the first N EIM basis functions.
void legacy_read_in_interpolation_points_elem(const std::string &directory_name)
Read int interpolation_points_elem from a mesh.
void legacy_write_out_interpolation_points_elem(const std::string &directory_name)
Write out interpolation_points_elem by putting the elements into a mesh and writing out the mesh.
The libMesh namespace provides an interface to certain functionality in the library.
virtual void clear() override
Clear this object.
This class is part of the rbOOmit framework.
virtual ~RBEIMEvaluation()
Destructor.
std::vector< unsigned int > interpolation_points_var
The corresponding list of variables indices at which the interpolation points were identified.
The ReplicatedMesh class is derived from the MeshBase class, and is used to store identical copies of...
ReplicatedMesh & get_interpolation_points_mesh()
Get a writable reference to the interpolation points mesh.
virtual void resize_data_structures(const unsigned int Nmax, bool resize_error_bound_data=true) override
Resize the data structures for storing data associated with this object.
void initialize_eim_theta_objects()
Build a vector of RBTheta objects that accesses the components of the RB_solution member variable of ...
virtual void legacy_write_offline_data_to_files(const std::string &directory_name="offline_data", const bool write_binary_data=true) override
Write out all the data to text files in order to segregate the Offline stage from the Online stage.
A Point defines a location in LIBMESH_DIM dimensional Real space.
A simple functor class that provides a RBParameter-dependent function.
RBParameters _previous_parameters
Store the parameters at which the previous solve was performed (so we can avoid an unnecessary repeat...
ReplicatedMesh _interpolation_points_mesh
Mesh object that we use to store copies of the elements associated with interpolation points.
std::vector< std::unique_ptr< RBTheta > > & get_eim_theta_objects()
This class is part of the rbOOmit framework.
std::vector< std::unique_ptr< RBTheta > > _rb_eim_theta_objects
The vector of RBTheta objects that are created to point to this RBEIMEvaluation.
unsigned int get_n_parametrized_functions() const
Get the number of parametrized functions that have been attached to this system.
virtual std::unique_ptr< RBTheta > build_eim_theta(unsigned int index)
Build a theta object corresponding to EIM index index.
This class is part of the rbOOmit framework.
RBThetaExpansion _empty_rb_theta_expansion
We initialize RBEIMEvaluation so that it has an "empty" RBThetaExpansion, because this isn't used at ...
This is the base class from which all geometric element types are derived.
std::vector< Point > interpolation_points
The list of interpolation points, i.e.
Real _previous_error_bound
Store the previous error bound returned by rb_solve (so we can return it if we are avoiding an unnece...
std::vector< Elem * > interpolation_points_elem
The corresponding list of elements at which the interpolation points were identified.
virtual Real get_error_bound_normalization() override
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
DenseMatrix< Number > interpolation_matrix
Dense matrix that stores the lower triangular interpolation matrix that can be used.
This class stores the set of RBTheta functor objects that define the "parameter-dependent expansion" ...
RBEIMEvaluation(const libMesh::Parallel::Communicator &comm_in)
Constructor.
virtual void legacy_read_offline_data_from_files(const std::string &directory_name="offline_data", bool read_error_bound_data=true, const bool read_binary_data=true) override
Read in the saved Offline reduced basis data to initialize the system for Online solves.
Number evaluate_parametrized_function(unsigned int var_index, const Point &p, const Elem &elem)
void attach_parametrized_function(RBParametrizedFunction *pf)
Attach the parametrized function that we will approximate using the Empirical Interpolation Method.