libMesh
|
Define a struct for the input to the "vectorized evaluate" functions below. More...
#include <rb_parametrized_function.h>
Public Member Functions | |
VectorizedEvalInput ()=default | |
VectorizedEvalInput (const VectorizedEvalInput &)=default | |
VectorizedEvalInput & | operator= (const VectorizedEvalInput &)=default |
VectorizedEvalInput (VectorizedEvalInput &&)=default | |
VectorizedEvalInput & | operator= (VectorizedEvalInput &&)=default |
virtual | ~VectorizedEvalInput ()=default |
void | clear () |
Clear all the members. More... | |
Public Attributes | |
std::vector< Point > | all_xyz |
The members that define the inputs to the vectorized evaluate functions. More... | |
std::vector< dof_id_type > | elem_ids |
std::vector< unsigned int > | qps |
std::vector< subdomain_id_type > | sbd_ids |
std::vector< std::vector< Point > > | all_xyz_perturb |
std::vector< std::vector< Real > > | phi_i_qp |
std::vector< unsigned int > | side_indices |
std::vector< boundary_id_type > | boundary_ids |
std::vector< dof_id_type > | node_ids |
std::vector< ElemType > | elem_types |
std::map< dof_id_type, unsigned int > | elem_id_to_local_index |
The following containers are indexed by element id to avoid duplicated data. More... | |
std::vector< std::vector< Real > > | JxW_all_qp |
std::vector< std::vector< std::vector< Real > > > | phi_i_all_qp |
std::vector< Point > | dxyzdxi_elem_center |
std::vector< Point > | dxyzdeta_elem_center |
std::vector< Order > | qrule_orders |
std::unordered_map< std::string, std::set< dof_id_type > > | rb_property_map |
Generic map that can be used to store any list of ids (elements, nodes, elemsets, subdomains...) corresponding to a property (string) that can be used to apply a specific treatment to a group of entities. More... | |
Define a struct for the input to the "vectorized evaluate" functions below.
This encapsulates the arguments into a class to prevent having many function arguments, and also makes it easier to make API changes in the future because we can change these structs without changing the function arguments.
Definition at line 51 of file rb_parametrized_function.h.
|
default |
|
default |
|
default |
|
virtualdefault |
void libMesh::VectorizedEvalInput::clear | ( | ) |
Clear all the members.
Definition at line 36 of file rb_parametrized_function.C.
References all_xyz, all_xyz_perturb, boundary_ids, dxyzdeta_elem_center, dxyzdxi_elem_center, elem_id_to_local_index, elem_ids, elem_types, JxW_all_qp, node_ids, phi_i_all_qp, phi_i_qp, qps, qrule_orders, rb_property_map, sbd_ids, and side_indices.
Referenced by libMesh::RBEIMEvaluation::clear(), and libMesh::RBEIMEvaluation::resize_data_structures().
|
default |
|
default |
std::vector<Point> libMesh::VectorizedEvalInput::all_xyz |
The members that define the inputs to the vectorized evaluate functions.
Note that some of these members may be unused, for example when we call the "interior" vectorized evaluate function, we do not use node_ids.
Some data below is the same for all points within an element, e.g. when we store data at multiple qps per element the sbd_ids, elem_ids, JxW_all_qp, phi_i_all_qp will store the same data repeated n_qp times per element. A possible optimization for this would be to store this data based on element indices rather than qp indices, and store an index per qp to index into the element-based data vector. This optimization hasn't been implemented at this stage, but it could be added at some point later.
Definition at line 78 of file rb_parametrized_function.h.
Referenced by libMesh::RBEIMEvaluation::add_interpolation_data(), libMesh::RBEIMEvaluation::add_interpolation_points_xyz(), libMesh::RBEIMEvaluation::add_node_interpolation_data(), libMesh::RBEIMEvaluation::add_side_interpolation_data(), clear(), libMesh::RBEIMEvaluation::get_interpolation_points_xyz(), libMesh::RBEIMEvaluation::get_n_interpolation_points(), libMesh::RBParametrizedFunction::node_vectorized_evaluate(), libMesh::RBParametrizedFunction::preevaluate_parametrized_function_on_mesh(), libMesh::RBParametrizedFunction::preevaluate_parametrized_function_on_mesh_nodes(), libMesh::RBParametrizedFunction::preevaluate_parametrized_function_on_mesh_sides(), libMesh::RBEIMEvaluation::resize_data_structures(), libMesh::RBParametrizedFunction::side_vectorized_evaluate(), and libMesh::RBParametrizedFunction::vectorized_evaluate().
std::vector<std::vector<Point> > libMesh::VectorizedEvalInput::all_xyz_perturb |
Definition at line 82 of file rb_parametrized_function.h.
Referenced by libMesh::RBEIMEvaluation::add_interpolation_data(), libMesh::RBEIMEvaluation::add_interpolation_points_xyz_perturbations(), libMesh::RBEIMEvaluation::add_node_interpolation_data(), libMesh::RBEIMEvaluation::add_side_interpolation_data(), clear(), libMesh::RBEIMEvaluation::get_interpolation_points_xyz_perturbations(), libMesh::RBParametrizedFunction::preevaluate_parametrized_function_on_mesh(), libMesh::RBParametrizedFunction::preevaluate_parametrized_function_on_mesh_sides(), libMesh::RBParametrizedFunction::side_vectorized_evaluate(), and libMesh::RBParametrizedFunction::vectorized_evaluate().
std::vector<boundary_id_type> libMesh::VectorizedEvalInput::boundary_ids |
Definition at line 85 of file rb_parametrized_function.h.
Referenced by libMesh::RBEIMEvaluation::add_interpolation_points_boundary_id(), libMesh::RBEIMEvaluation::add_node_interpolation_data(), libMesh::RBEIMEvaluation::add_side_interpolation_data(), clear(), libMesh::RBEIMEvaluation::get_interpolation_points_boundary_id(), libMesh::RBParametrizedFunction::node_vectorized_evaluate(), libMesh::RBParametrizedFunction::preevaluate_parametrized_function_on_mesh_nodes(), libMesh::RBParametrizedFunction::preevaluate_parametrized_function_on_mesh_sides(), and libMesh::RBParametrizedFunction::side_vectorized_evaluate().
std::vector<Point> libMesh::VectorizedEvalInput::dxyzdeta_elem_center |
Definition at line 96 of file rb_parametrized_function.h.
Referenced by libMesh::RBEIMEvaluation::add_elem_center_dxyzdeta(), libMesh::RBEIMEvaluation::add_interpolation_data(), libMesh::RBEIMEvaluation::add_node_interpolation_data(), libMesh::RBEIMEvaluation::add_side_interpolation_data(), clear(), libMesh::RBEIMEvaluation::get_elem_center_dxyzdeta(), and libMesh::RBParametrizedFunction::preevaluate_parametrized_function_on_mesh().
std::vector<Point> libMesh::VectorizedEvalInput::dxyzdxi_elem_center |
Definition at line 95 of file rb_parametrized_function.h.
Referenced by libMesh::RBEIMEvaluation::add_elem_center_dxyzdxi(), libMesh::RBEIMEvaluation::add_interpolation_data(), libMesh::RBEIMEvaluation::add_node_interpolation_data(), libMesh::RBEIMEvaluation::add_side_interpolation_data(), clear(), libMesh::RBEIMEvaluation::get_elem_center_dxyzdxi(), and libMesh::RBParametrizedFunction::preevaluate_parametrized_function_on_mesh().
std::map<dof_id_type, unsigned int> libMesh::VectorizedEvalInput::elem_id_to_local_index |
The following containers are indexed by element id to avoid duplicated data.
The elements have a local indexing as elem_ids might not always be contiguous.
Definition at line 92 of file rb_parametrized_function.h.
Referenced by libMesh::RBEIMEvaluation::add_elem_id_local_index_map_entry(), libMesh::RBEIMEvaluation::add_interpolation_data(), clear(), libMesh::RBEIMEvaluation::get_elem_id_to_local_index_map(), libMesh::RBEIMEvaluation::get_n_elems(), and libMesh::RBParametrizedFunction::preevaluate_parametrized_function_on_mesh().
std::vector<dof_id_type> libMesh::VectorizedEvalInput::elem_ids |
Definition at line 79 of file rb_parametrized_function.h.
Referenced by libMesh::RBEIMEvaluation::add_interpolation_data(), libMesh::RBEIMEvaluation::add_interpolation_points_elem_id(), libMesh::RBEIMEvaluation::add_node_interpolation_data(), libMesh::RBEIMEvaluation::add_side_interpolation_data(), clear(), libMesh::RBEIMEvaluation::get_interpolation_points_elem_id(), libMesh::RBEIMConstruction::get_random_point(), libMesh::RBParametrizedFunction::preevaluate_parametrized_function_on_mesh(), libMesh::RBParametrizedFunction::preevaluate_parametrized_function_on_mesh_sides(), libMesh::RBParametrizedFunction::side_vectorized_evaluate(), and libMesh::RBParametrizedFunction::vectorized_evaluate().
std::vector<ElemType> libMesh::VectorizedEvalInput::elem_types |
Definition at line 87 of file rb_parametrized_function.h.
Referenced by libMesh::RBEIMEvaluation::add_interpolation_data(), libMesh::RBEIMEvaluation::add_interpolation_points_elem_type(), libMesh::RBEIMEvaluation::add_node_interpolation_data(), libMesh::RBEIMEvaluation::add_side_interpolation_data(), clear(), libMesh::RBEIMEvaluation::get_interpolation_points_elem_type(), and libMesh::RBParametrizedFunction::preevaluate_parametrized_function_on_mesh().
std::vector<std::vector<Real> > libMesh::VectorizedEvalInput::JxW_all_qp |
Definition at line 93 of file rb_parametrized_function.h.
Referenced by libMesh::RBEIMEvaluation::add_interpolation_data(), libMesh::RBEIMEvaluation::add_interpolation_points_JxW_all_qp(), libMesh::RBEIMEvaluation::add_node_interpolation_data(), libMesh::RBEIMEvaluation::add_side_interpolation_data(), clear(), libMesh::RBEIMEvaluation::get_interpolation_points_JxW_all_qp(), and libMesh::RBParametrizedFunction::preevaluate_parametrized_function_on_mesh().
std::vector<dof_id_type> libMesh::VectorizedEvalInput::node_ids |
Definition at line 86 of file rb_parametrized_function.h.
Referenced by libMesh::RBEIMEvaluation::add_interpolation_points_node_id(), libMesh::RBEIMEvaluation::add_node_interpolation_data(), clear(), libMesh::RBEIMEvaluation::get_interpolation_points_node_id(), libMesh::RBEIMConstruction::get_random_point(), libMesh::RBParametrizedFunction::node_vectorized_evaluate(), and libMesh::RBParametrizedFunction::preevaluate_parametrized_function_on_mesh_nodes().
std::vector<std::vector<std::vector<Real> > > libMesh::VectorizedEvalInput::phi_i_all_qp |
Definition at line 94 of file rb_parametrized_function.h.
Referenced by libMesh::RBEIMEvaluation::add_interpolation_data(), libMesh::RBEIMEvaluation::add_interpolation_points_phi_i_all_qp(), libMesh::RBEIMEvaluation::add_node_interpolation_data(), libMesh::RBEIMEvaluation::add_side_interpolation_data(), clear(), libMesh::RBEIMEvaluation::get_interpolation_points_phi_i_all_qp(), and libMesh::RBParametrizedFunction::preevaluate_parametrized_function_on_mesh().
std::vector<std::vector<Real> > libMesh::VectorizedEvalInput::phi_i_qp |
Definition at line 83 of file rb_parametrized_function.h.
Referenced by libMesh::RBEIMEvaluation::add_interpolation_data(), libMesh::RBEIMEvaluation::add_interpolation_points_phi_i_qp(), libMesh::RBEIMEvaluation::add_node_interpolation_data(), libMesh::RBEIMEvaluation::add_side_interpolation_data(), clear(), libMesh::RBEIMEvaluation::get_interpolation_points_phi_i_qp(), libMesh::RBParametrizedFunction::preevaluate_parametrized_function_on_mesh(), libMesh::RBParametrizedFunction::preevaluate_parametrized_function_on_mesh_sides(), libMesh::RBParametrizedFunction::side_vectorized_evaluate(), and libMesh::RBParametrizedFunction::vectorized_evaluate().
std::vector<unsigned int> libMesh::VectorizedEvalInput::qps |
Definition at line 80 of file rb_parametrized_function.h.
Referenced by libMesh::RBEIMEvaluation::add_interpolation_data(), libMesh::RBEIMEvaluation::add_interpolation_points_qp(), libMesh::RBEIMEvaluation::add_node_interpolation_data(), libMesh::RBEIMEvaluation::add_side_interpolation_data(), clear(), libMesh::RBEIMEvaluation::get_interpolation_points_qp(), libMesh::RBParametrizedFunction::preevaluate_parametrized_function_on_mesh(), libMesh::RBParametrizedFunction::preevaluate_parametrized_function_on_mesh_sides(), libMesh::RBParametrizedFunction::side_vectorized_evaluate(), and libMesh::RBParametrizedFunction::vectorized_evaluate().
std::vector<Order> libMesh::VectorizedEvalInput::qrule_orders |
Definition at line 97 of file rb_parametrized_function.h.
Referenced by libMesh::RBEIMEvaluation::add_interpolation_data(), libMesh::RBEIMEvaluation::add_interpolation_points_qrule_order(), libMesh::RBEIMEvaluation::add_node_interpolation_data(), libMesh::RBEIMEvaluation::add_side_interpolation_data(), clear(), libMesh::RBEIMEvaluation::get_interpolation_points_qrule_order(), and libMesh::RBParametrizedFunction::preevaluate_parametrized_function_on_mesh().
std::unordered_map<std::string, std::set<dof_id_type> > libMesh::VectorizedEvalInput::rb_property_map |
Generic map that can be used to store any list of ids (elements, nodes, elemsets, subdomains...) corresponding to a property (string) that can be used to apply a specific treatment to a group of entities.
Definition at line 104 of file rb_parametrized_function.h.
Referenced by libMesh::RBEIMEvaluation::add_interpolation_data(), libMesh::RBEIMEvaluation::add_rb_property_map_entry(), clear(), libMesh::RBEIMEvaluation::get_n_properties(), libMesh::RBEIMEvaluation::get_rb_property_map(), and libMesh::RBEIMEvaluation::initialize_rb_property_map().
std::vector<subdomain_id_type> libMesh::VectorizedEvalInput::sbd_ids |
Definition at line 81 of file rb_parametrized_function.h.
Referenced by libMesh::RBEIMEvaluation::add_interpolation_data(), libMesh::RBEIMEvaluation::add_interpolation_points_subdomain_id(), libMesh::RBEIMEvaluation::add_node_interpolation_data(), libMesh::RBEIMEvaluation::add_side_interpolation_data(), clear(), libMesh::RBEIMEvaluation::get_interpolation_points_subdomain_id(), libMesh::RBParametrizedFunction::preevaluate_parametrized_function_on_mesh(), libMesh::RBParametrizedFunction::preevaluate_parametrized_function_on_mesh_sides(), libMesh::RBParametrizedFunction::side_vectorized_evaluate(), and libMesh::RBParametrizedFunction::vectorized_evaluate().
std::vector<unsigned int> libMesh::VectorizedEvalInput::side_indices |
Definition at line 84 of file rb_parametrized_function.h.
Referenced by libMesh::RBEIMEvaluation::add_interpolation_points_side_index(), libMesh::RBEIMEvaluation::add_node_interpolation_data(), libMesh::RBEIMEvaluation::add_side_interpolation_data(), clear(), libMesh::RBEIMEvaluation::get_interpolation_points_side_index(), libMesh::RBEIMConstruction::get_random_point(), libMesh::RBParametrizedFunction::preevaluate_parametrized_function_on_mesh_sides(), and libMesh::RBParametrizedFunction::side_vectorized_evaluate().