libMesh
|
A simple functor class that provides a RBParameter-dependent function. More...
#include <rb_parametrized_function.h>
Public Member Functions | |
RBParametrizedFunction () | |
Constructor. More... | |
RBParametrizedFunction (RBParametrizedFunction &&)=default | |
Special functions. More... | |
RBParametrizedFunction (const RBParametrizedFunction &)=default | |
RBParametrizedFunction & | operator= (const RBParametrizedFunction &)=default |
RBParametrizedFunction & | operator= (RBParametrizedFunction &&)=default |
virtual | ~RBParametrizedFunction () |
virtual unsigned int | get_n_components () const =0 |
Specify the number of components in this parametrized function. More... | |
virtual Number | evaluate_comp (const RBParameters &mu, unsigned int comp, const Point &xyz, dof_id_type elem_id, unsigned int qp, subdomain_id_type subdomain_id, const std::vector< Point > &xyz_perturb, const std::vector< Real > &phi_i_qp) |
Evaluate the parametrized function at the specified point for parameter mu . More... | |
virtual Number | side_evaluate_comp (const RBParameters &mu, unsigned int comp, const Point &xyz, dof_id_type elem_id, unsigned int side_index, unsigned int qp, subdomain_id_type subdomain_id, boundary_id_type boundary_id, const std::vector< Point > &xyz_perturb, const std::vector< Real > &phi_i_qp) |
Same as evaluate_comp() but for element sides. More... | |
virtual Number | node_evaluate_comp (const RBParameters &mu, unsigned int comp, const Point &xyz, dof_id_type node_id, boundary_id_type boundary_id) |
Same as evaluate_comp() but for element nodes. More... | |
virtual std::vector< Number > | evaluate (const RBParameters &mu, const Point &xyz, dof_id_type elem_id, unsigned int qp, subdomain_id_type subdomain_id, const std::vector< Point > &xyz_perturb, const std::vector< Real > &phi_i_qp) |
Evaluate the parametrized function at the specified point for parameter mu . More... | |
virtual std::vector< Number > | side_evaluate (const RBParameters &mu, const Point &xyz, dof_id_type elem_id, unsigned int side_index, unsigned int qp, subdomain_id_type subdomain_id, boundary_id_type boundary_id, const std::vector< Point > &xyz_perturb, const std::vector< Real > &phi_i_qp) |
Same as evaluate() but for element sides. More... | |
virtual std::vector< Number > | node_evaluate (const RBParameters &mu, const Point &xyz, dof_id_type node_id, boundary_id_type boundary_id) |
Same as evaluate() but for element nodes. More... | |
virtual void | vectorized_evaluate (const std::vector< RBParameters > &mus, const VectorizedEvalInput &v, std::vector< std::vector< std::vector< Number >>> &output) |
Vectorized version of evaluate. More... | |
virtual void | side_vectorized_evaluate (const std::vector< RBParameters > &mus, const VectorizedEvalInput &v, std::vector< std::vector< std::vector< Number >>> &output) |
Same as vectorized_evaluate() but on element sides. More... | |
virtual void | node_vectorized_evaluate (const std::vector< RBParameters > &mus, const VectorizedEvalInput &v, std::vector< std::vector< std::vector< Number >>> &output) |
Same as vectorized_evaluate() but on element nodes. More... | |
virtual void | preevaluate_parametrized_function_on_mesh (const RBParameters &mu, const std::unordered_map< dof_id_type, std::vector< Point >> &all_xyz, const std::unordered_map< dof_id_type, subdomain_id_type > &sbd_ids, const std::unordered_map< dof_id_type, std::vector< std::vector< Point >> > &all_xyz_perturb, const System &sys) |
Store the result of vectorized_evaluate. More... | |
virtual void | preevaluate_parametrized_function_on_mesh_sides (const RBParameters &mu, const std::map< std::pair< dof_id_type, unsigned int >, std::vector< Point >> &side_all_xyz, const std::map< std::pair< dof_id_type, unsigned int >, subdomain_id_type > &sbd_ids, const std::map< std::pair< dof_id_type, unsigned int >, boundary_id_type > &side_boundary_ids, const std::map< std::pair< dof_id_type, unsigned int >, unsigned int > &side_types, const std::map< std::pair< dof_id_type, unsigned int >, std::vector< std::vector< Point >> > &side_all_xyz_perturb, const System &sys) |
Same as preevaluate_parametrized_function_on_mesh() except for mesh sides. More... | |
virtual void | preevaluate_parametrized_function_on_mesh_nodes (const RBParameters &mu, const std::unordered_map< dof_id_type, Point > &all_xyz, const std::unordered_map< dof_id_type, boundary_id_type > &node_boundary_ids, const System &sys) |
Same as preevaluate_parametrized_function_on_mesh() except for mesh nodes. More... | |
virtual Number | lookup_preevaluated_value_on_mesh (unsigned int comp, dof_id_type elem_id, unsigned int qp) const |
Look up the preevaluate values of the parametrized function for component comp , element elem_id , and quadrature point qp . More... | |
virtual Number | lookup_preevaluated_side_value_on_mesh (unsigned int comp, dof_id_type elem_id, unsigned int side_index, unsigned int qp) const |
Look up the preevaluated values of the parametrized function for component comp , element elem_id , side_index , and quadrature point qp . More... | |
virtual Number | lookup_preevaluated_node_value_on_mesh (unsigned int comp, dof_id_type node_id) const |
Look up the preevaluate values of the parametrized function for component comp , node node_id . More... | |
virtual void | initialize_lookup_table () |
If this parametrized function is defined based on a lookup table then we can call this function to initialize the table. More... | |
Number | get_parameter_independent_data (const std::string &property_name, subdomain_id_type sbd_id) const |
Get the value stored in _parameter_independent_data associated with region_name and property_name . More... | |
const std::set< boundary_id_type > & | get_parametrized_function_boundary_ids () const |
For RBParametrizedFunctions defined on element sides or nodes, we get/set the boundary IDs that this parametrized function is defined on. More... | |
void | set_parametrized_function_boundary_ids (const std::set< boundary_id_type > &boundary_ids, bool is_nodal_boundary) |
bool | on_mesh_sides () const |
bool | on_mesh_nodes () const |
virtual void | get_spatial_indices (std::vector< std::vector< unsigned int >> &spatial_indices, const VectorizedEvalInput &v) |
In some cases a parametrized function is defined based on array data that we index into based on the spatial data from the mesh (e.g. More... | |
virtual void | initialize_spatial_indices (const std::vector< std::vector< unsigned int >> &spatial_indices, const VectorizedEvalInput &v) |
The Online stage counterpart of get_spatial_indices(). More... | |
virtual void | preevaluate_parametrized_function_cleanup () |
Virtual function that performs cleanup after each "preevaluate parametrized function" evaluation. More... | |
Public Attributes | |
std::vector< std::vector< std::vector< Number > > > | preevaluated_values |
Storage for pre-evaluated values. More... | |
std::unordered_map< dof_id_type, std::vector< unsigned int > > | mesh_to_preevaluated_values_map |
Indexing into preevaluated_values for the case where the preevaluated values were obtained from evaluations at elements/quadrature points on a mesh. More... | |
std::map< std::pair< dof_id_type, unsigned int >, std::vector< unsigned int > > | mesh_to_preevaluated_side_values_map |
Similar to the above except this map stores the data on element sides. More... | |
std::unordered_map< dof_id_type, unsigned int > | mesh_to_preevaluated_node_values_map |
Indexing into preevaluated_values for the case where the preevaluated values were obtained from evaluations at elements/quadrature points on a mesh. More... | |
bool | requires_xyz_perturbations |
Boolean to indicate whether this parametrized function requires xyz perturbations in order to evaluate function values. More... | |
bool | requires_all_elem_qp_data |
Boolean to indicate whether this parametrized function requires data from all qps on the current element at each qp location. More... | |
bool | is_lookup_table |
Boolean to indicate if this parametrized function is defined based on a lookup table or not. More... | |
std::string | lookup_table_param_name |
If this is a lookup table, then lookup_table_param_name specifies the parameter that is used to index into the lookup table. More... | |
Real | fd_delta |
The finite difference step size in the case that this function in the case that this function uses finite differencing. More... | |
Protected Attributes | |
std::map< std::string, std::map< subdomain_id_type, Number > > | _parameter_independent_data |
In some cases we need to store parameter-independent data which is related to this function but since it is parameter-indepedent should not be returned as part of evaluate(). More... | |
std::set< boundary_id_type > | _parametrized_function_boundary_ids |
In the case of an RBParametrizedFunction defined on element sides, this defines the set of boundary IDs that the function is defined on. More... | |
bool | _is_nodal_boundary |
In the case that _parametrized_function_boundary_ids is not empty, then this parametrized function is defined on a mesh boundary. More... | |
A simple functor class that provides a RBParameter-dependent function.
Definition at line 94 of file rb_parametrized_function.h.
libMesh::RBParametrizedFunction::RBParametrizedFunction | ( | ) |
Constructor.
Definition at line 47 of file rb_parametrized_function.C.
|
default |
Special functions.
|
default |
|
virtualdefault |
|
virtual |
Evaluate the parametrized function at the specified point for parameter mu
.
If requires_xyz_perturbations==false, then xyz_perturb will not be used.
In this case we evaluate for all components.
Definition at line 109 of file rb_parametrized_function.C.
Referenced by evaluate_comp(), and vectorized_evaluate().
|
virtual |
Evaluate the parametrized function at the specified point for parameter mu
.
If requires_xyz_perturbations==false, then xyz_perturb will not be used.
In this case we return the value for component comp
only, but the base class implementation simply calls the vector-returning evaluate() function below and returns the comp'th component, so derived classes should provide a more efficient routine or just call the vector-returning function instead.
Definition at line 59 of file rb_parametrized_function.C.
References evaluate().
|
pure virtual |
Specify the number of components in this parametrized function.
A scalar-valued function has one component, a vector-valued function has more than one component.
Implemented in ShiftedGaussian, and Gxyz.
Referenced by libMesh::RBEIMConstruction::initialize_parametrized_functions_in_training_set(), node_vectorized_evaluate(), side_vectorized_evaluate(), and vectorized_evaluate().
Number libMesh::RBParametrizedFunction::get_parameter_independent_data | ( | const std::string & | property_name, |
subdomain_id_type | sbd_id | ||
) | const |
Get the value stored in _parameter_independent_data associated with region_name
and property_name
.
Definition at line 748 of file rb_parametrized_function.C.
References _parameter_independent_data.
const std::set< boundary_id_type > & libMesh::RBParametrizedFunction::get_parametrized_function_boundary_ids | ( | ) | const |
For RBParametrizedFunctions defined on element sides or nodes, we get/set the boundary IDs that this parametrized function is defined on.
Definition at line 771 of file rb_parametrized_function.C.
References _parametrized_function_boundary_ids.
Referenced by libMesh::RBEIMConstruction::initialize_qp_data(), libMesh::RBEIMEvaluation::node_distribute_bfs(), on_mesh_nodes(), on_mesh_sides(), and libMesh::RBEIMEvaluation::side_distribute_bfs().
|
virtual |
In some cases a parametrized function is defined based on array data that we index into based on the spatial data from the mesh (e.g.
element, node, or side indices). We refer to the indices that we use to index into this array data as "spatial indices". This method sets spatial_indices
based on the provided mesh-based indices.
Note that spatial_indices
is defined as a doubly-nested vector so that we can handle the case where the spatial function evaluation requires us to have indices from all nodes of an element, since in that case we need a vector of indices (one per node) for each point. Other cases, such as when we define the parametrized function based on the element index only, only require a singly-nested vector which we handle as a special case of the doubly-nested vector.
This method is typically used in the Offline stage in order to generate and store the relevant spatial indices.
This method is a no-op by default, but it can be overridden in subclasses to provide the relevant behavior.
Definition at line 754 of file rb_parametrized_function.C.
Referenced by libMesh::RBEIMEvaluation::initialize_interpolation_points_spatial_indices().
|
virtual |
If this parametrized function is defined based on a lookup table then we can call this function to initialize the table.
This is a no-op by default, but it can be overridden in subclasses as needed.
Definition at line 743 of file rb_parametrized_function.C.
Referenced by libMesh::RBEIMConstruction::initialize_parametrized_functions_in_training_set().
|
virtual |
The Online stage counterpart of get_spatial_indices().
This method is used to initialize the spatial index data in this object so that we can evaluate it during an Online solve.
Definition at line 760 of file rb_parametrized_function.C.
Referenced by libMesh::RBEIMEvaluation::initialize_param_fn_spatial_indices().
|
virtual |
Look up the preevaluate values of the parametrized function for component comp
, node node_id
.
Definition at line 731 of file rb_parametrized_function.C.
References mesh_to_preevaluated_node_values_map, and preevaluated_values.
Referenced by libMesh::RBEIMConstruction::initialize_parametrized_functions_in_training_set().
|
virtual |
Look up the preevaluated values of the parametrized function for component comp
, element elem_id
, side_index
, and quadrature point qp
.
Definition at line 714 of file rb_parametrized_function.C.
References mesh_to_preevaluated_side_values_map, and preevaluated_values.
Referenced by libMesh::RBEIMConstruction::initialize_parametrized_functions_in_training_set().
|
virtual |
Look up the preevaluate values of the parametrized function for component comp
, element elem_id
, and quadrature point qp
.
Definition at line 698 of file rb_parametrized_function.C.
References mesh_to_preevaluated_values_map, and preevaluated_values.
Referenced by libMesh::RBEIMConstruction::initialize_parametrized_functions_in_training_set().
|
virtual |
Same as evaluate() but for element nodes.
Definition at line 141 of file rb_parametrized_function.C.
Referenced by node_evaluate_comp(), and node_vectorized_evaluate().
|
virtual |
Same as evaluate_comp() but for element nodes.
Definition at line 95 of file rb_parametrized_function.C.
References node_evaluate().
|
virtual |
Same as vectorized_evaluate() but on element nodes.
The base class implementation of this function loops over the input "mus" vector and calls node_evaluate() for each entry. The node_evaluate() function may be overridden in derived classes.
Definition at line 322 of file rb_parametrized_function.C.
References libMesh::VectorizedEvalInput::all_xyz, libMesh::VectorizedEvalInput::boundary_ids, get_n_components(), libMesh::index_range(), libMesh::make_range(), node_evaluate(), and libMesh::VectorizedEvalInput::node_ids.
Referenced by preevaluate_parametrized_function_on_mesh_nodes(), and libMesh::RBEIMEvaluation::rb_eim_solves().
bool libMesh::RBParametrizedFunction::on_mesh_nodes | ( | ) | const |
Definition at line 787 of file rb_parametrized_function.C.
References _is_nodal_boundary, and get_parametrized_function_boundary_ids().
Referenced by libMesh::RBDataSerialization::add_rb_eim_evaluation_data_to_builder(), libMesh::RBEIMConstruction::enrich_eim_approximation(), libMesh::RBEIMConstruction::get_random_point_from_training_sample(), libMesh::RBEIMConstruction::initialize_parametrized_functions_in_training_set(), libMesh::RBDataDeserialization::load_rb_eim_evaluation_data(), libMesh::RBEIMConstruction::store_eim_solutions_for_training_set(), libMesh::RBEIMConstruction::train_eim_approximation_with_POD(), and libMesh::RBEIMConstruction::update_eim_matrices().
bool libMesh::RBParametrizedFunction::on_mesh_sides | ( | ) | const |
Definition at line 782 of file rb_parametrized_function.C.
References _is_nodal_boundary, and get_parametrized_function_boundary_ids().
Referenced by libMesh::RBDataSerialization::add_rb_eim_evaluation_data_to_builder(), libMesh::RBEIMConstruction::enrich_eim_approximation(), libMesh::RBEIMConstruction::get_random_point_from_training_sample(), libMesh::RBEIMConstruction::initialize_parametrized_functions_in_training_set(), libMesh::RBDataDeserialization::load_rb_eim_evaluation_data(), libMesh::RBEIMConstruction::store_eim_solutions_for_training_set(), libMesh::RBEIMConstruction::train_eim_approximation_with_POD(), and libMesh::RBEIMConstruction::update_eim_matrices().
|
default |
|
default |
|
virtual |
Virtual function that performs cleanup after each "preevaluate parametrized function" evaluation.
This function is a no-op by default, but it can be overridden in subclasses in order to do necessary cleanup, such as clearing cached data.
Definition at line 766 of file rb_parametrized_function.C.
Referenced by preevaluate_parametrized_function_on_mesh(), preevaluate_parametrized_function_on_mesh_nodes(), and preevaluate_parametrized_function_on_mesh_sides().
|
virtual |
Store the result of vectorized_evaluate.
This is helpful during EIM training, since we can pre-evaluate and store the parameterized function for each training sample. If requires_xyz_perturbations==false, then all_xyz_perturb will not be used.
Definition at line 397 of file rb_parametrized_function.C.
References libMesh::VectorizedEvalInput::all_xyz, libMesh::VectorizedEvalInput::all_xyz_perturb, dim, libMesh::Elem::dim(), libMesh::FEMContext::elem_dimensions(), libMesh::VectorizedEvalInput::elem_ids, libMesh::MeshBase::elem_ref(), libMesh::VectorizedEvalInput::elem_types, libMesh::FEMContext::get_element_fe(), libMesh::System::get_mesh(), libMesh::if(), libMesh::index_range(), libMesh::VectorizedEvalInput::JxW_all_qp, mesh_to_preevaluated_values_map, libMesh::VectorizedEvalInput::phi_i_all_qp, libMesh::VectorizedEvalInput::phi_i_qp, libMesh::FEMContext::pre_fe_reinit(), preevaluate_parametrized_function_cleanup(), preevaluated_values, libMesh::VectorizedEvalInput::qps, requires_all_elem_qp_data, requires_xyz_perturbations, libMesh::VectorizedEvalInput::sbd_ids, libMesh::Elem::type(), and vectorized_evaluate().
Referenced by libMesh::RBEIMConstruction::initialize_parametrized_functions_in_training_set().
|
virtual |
Same as preevaluate_parametrized_function_on_mesh() except for mesh nodes.
Definition at line 661 of file rb_parametrized_function.C.
References libMesh::VectorizedEvalInput::all_xyz, libMesh::VectorizedEvalInput::boundary_ids, mesh_to_preevaluated_node_values_map, libMesh::VectorizedEvalInput::node_ids, node_vectorized_evaluate(), preevaluate_parametrized_function_cleanup(), and preevaluated_values.
Referenced by libMesh::RBEIMConstruction::initialize_parametrized_functions_in_training_set().
|
virtual |
Same as preevaluate_parametrized_function_on_mesh() except for mesh sides.
Definition at line 512 of file rb_parametrized_function.C.
References libMesh::VectorizedEvalInput::all_xyz, libMesh::VectorizedEvalInput::all_xyz_perturb, libMesh::VectorizedEvalInput::boundary_ids, libMesh::Elem::build_side_ptr(), dim, libMesh::Elem::dim(), libMesh::FEMContext::elem_dimensions(), libMesh::VectorizedEvalInput::elem_ids, libMesh::MeshBase::elem_ref(), libMesh::FEMContext::get_element_fe(), libMesh::System::get_mesh(), libMesh::FEMContext::get_side_fe(), libMesh::if(), libMesh::index_range(), mesh_to_preevaluated_side_values_map, libMesh::VectorizedEvalInput::phi_i_qp, libMesh::FEMContext::pre_fe_reinit(), preevaluate_parametrized_function_cleanup(), preevaluated_values, libMesh::VectorizedEvalInput::qps, requires_xyz_perturbations, libMesh::VectorizedEvalInput::sbd_ids, libMesh::VectorizedEvalInput::side_indices, and side_vectorized_evaluate().
Referenced by libMesh::RBEIMConstruction::initialize_parametrized_functions_in_training_set().
void libMesh::RBParametrizedFunction::set_parametrized_function_boundary_ids | ( | const std::set< boundary_id_type > & | boundary_ids, |
bool | is_nodal_boundary | ||
) |
Definition at line 776 of file rb_parametrized_function.C.
References _is_nodal_boundary, and _parametrized_function_boundary_ids.
|
virtual |
Same as evaluate() but for element sides.
Definition at line 124 of file rb_parametrized_function.C.
Referenced by side_evaluate_comp(), and side_vectorized_evaluate().
|
virtual |
Same as evaluate_comp() but for element sides.
Definition at line 76 of file rb_parametrized_function.C.
References side_evaluate().
|
virtual |
Same as vectorized_evaluate() but on element sides.
The base class implementation of this function loops over the input "mus" vector and calls side_evaluate() for each entry. The side_evaluate() function may be overridden in derived classes.
Definition at line 236 of file rb_parametrized_function.C.
References libMesh::VectorizedEvalInput::all_xyz, libMesh::VectorizedEvalInput::all_xyz_perturb, libMesh::VectorizedEvalInput::boundary_ids, libMesh::VectorizedEvalInput::elem_ids, get_n_components(), libMesh::index_range(), libMesh::make_range(), libMesh::VectorizedEvalInput::phi_i_qp, libMesh::VectorizedEvalInput::qps, requires_xyz_perturbations, libMesh::VectorizedEvalInput::sbd_ids, side_evaluate(), and libMesh::VectorizedEvalInput::side_indices.
Referenced by preevaluate_parametrized_function_on_mesh_sides(), and libMesh::RBEIMEvaluation::rb_eim_solves().
|
virtual |
Vectorized version of evaluate.
If requires_xyz_perturbations==false, then all_xyz_perturb will not be used.
The base class implementation of this function loops over the input "mus" vector and calls evaluate() for each entry. The evaluate() function may be overridden in derived classes.
Definition at line 152 of file rb_parametrized_function.C.
References libMesh::VectorizedEvalInput::all_xyz, libMesh::VectorizedEvalInput::all_xyz_perturb, libMesh::VectorizedEvalInput::elem_ids, evaluate(), get_n_components(), libMesh::index_range(), libMesh::make_range(), libMesh::VectorizedEvalInput::phi_i_qp, libMesh::VectorizedEvalInput::qps, requires_xyz_perturbations, and libMesh::VectorizedEvalInput::sbd_ids.
Referenced by preevaluate_parametrized_function_on_mesh(), and libMesh::RBEIMEvaluation::rb_eim_solves().
|
protected |
In the case that _parametrized_function_boundary_ids is not empty, then this parametrized function is defined on a mesh boundary.
This boolean indicates if the mesh boundary under consideration is a set of sides, or a set of nodes.
Definition at line 446 of file rb_parametrized_function.h.
Referenced by on_mesh_nodes(), on_mesh_sides(), and set_parametrized_function_boundary_ids().
|
protected |
In some cases we need to store parameter-independent data which is related to this function but since it is parameter-indepedent should not be returned as part of evaluate().
We index this data by "property name" –> subdomain_id –> value.
Definition at line 433 of file rb_parametrized_function.h.
Referenced by get_parameter_independent_data().
|
protected |
In the case of an RBParametrizedFunction defined on element sides, this defines the set of boundary IDs that the function is defined on.
Definition at line 439 of file rb_parametrized_function.h.
Referenced by get_parametrized_function_boundary_ids(), and set_parametrized_function_boundary_ids().
Real libMesh::RBParametrizedFunction::fd_delta |
The finite difference step size in the case that this function in the case that this function uses finite differencing.
Definition at line 422 of file rb_parametrized_function.h.
Referenced by libMesh::RBEIMConstruction::initialize_qp_data().
bool libMesh::RBParametrizedFunction::is_lookup_table |
Boolean to indicate if this parametrized function is defined based on a lookup table or not.
If it is defined based on a lookup table, then the evaluation functions will access a discrete parameter to determine the index to lookup.
Definition at line 410 of file rb_parametrized_function.h.
Referenced by libMesh::RBDataSerialization::add_rb_eim_evaluation_data_to_builder(), libMesh::RBEIMConstruction::initialize_parametrized_functions_in_training_set(), libMesh::RBDataDeserialization::load_rb_eim_evaluation_data(), and libMesh::RBEIMConstruction::train_eim_approximation_with_greedy().
std::string libMesh::RBParametrizedFunction::lookup_table_param_name |
If this is a lookup table, then lookup_table_param_name specifies the parameter that is used to index into the lookup table.
Definition at line 416 of file rb_parametrized_function.h.
Referenced by libMesh::RBEIMConstruction::set_rb_construction_parameters().
std::unordered_map<dof_id_type, unsigned int> libMesh::RBParametrizedFunction::mesh_to_preevaluated_node_values_map |
Indexing into preevaluated_values for the case where the preevaluated values were obtained from evaluations at elements/quadrature points on a mesh.
The indexing here is: node_id –> point_index
Definition at line 387 of file rb_parametrized_function.h.
Referenced by lookup_preevaluated_node_value_on_mesh(), and preevaluate_parametrized_function_on_mesh_nodes().
std::map<std::pair<dof_id_type,unsigned int>, std::vector<unsigned int> > libMesh::RBParametrizedFunction::mesh_to_preevaluated_side_values_map |
Similar to the above except this map stores the data on element sides.
The indexing here is: (elem_id,side index) –> qp –> point_index
Definition at line 379 of file rb_parametrized_function.h.
Referenced by lookup_preevaluated_side_value_on_mesh(), and preevaluate_parametrized_function_on_mesh_sides().
std::unordered_map<dof_id_type, std::vector<unsigned int> > libMesh::RBParametrizedFunction::mesh_to_preevaluated_values_map |
Indexing into preevaluated_values for the case where the preevaluated values were obtained from evaluations at elements/quadrature points on a mesh.
The indexing here is: elem_id –> qp –> point_index Then preevaluated_values[0][point_index] provides the vector of component values at that point.
Definition at line 372 of file rb_parametrized_function.h.
Referenced by lookup_preevaluated_value_on_mesh(), and preevaluate_parametrized_function_on_mesh().
std::vector<std::vector<std::vector<Number> > > libMesh::RBParametrizedFunction::preevaluated_values |
Storage for pre-evaluated values.
The indexing is given by: parameter index –> point index –> component index –> value.
Definition at line 362 of file rb_parametrized_function.h.
Referenced by lookup_preevaluated_node_value_on_mesh(), lookup_preevaluated_side_value_on_mesh(), lookup_preevaluated_value_on_mesh(), preevaluate_parametrized_function_on_mesh(), preevaluate_parametrized_function_on_mesh_nodes(), and preevaluate_parametrized_function_on_mesh_sides().
bool libMesh::RBParametrizedFunction::requires_all_elem_qp_data |
Boolean to indicate whether this parametrized function requires data from all qps on the current element at each qp location.
This can be necessary in certain cases, e.g. when the parametrized function depends on "element average" quantities.
Definition at line 403 of file rb_parametrized_function.h.
Referenced by libMesh::RBEIMConstruction::enrich_eim_approximation_on_interiors(), and preevaluate_parametrized_function_on_mesh().
bool libMesh::RBParametrizedFunction::requires_xyz_perturbations |
Boolean to indicate whether this parametrized function requires xyz perturbations in order to evaluate function values.
An example of where perturbations are required is when the parametrized function is based on finite difference approximations to derivatives.
Definition at line 395 of file rb_parametrized_function.h.
Referenced by preevaluate_parametrized_function_on_mesh(), preevaluate_parametrized_function_on_mesh_sides(), side_vectorized_evaluate(), and vectorized_evaluate().