libMesh
|
This class enables evaluation of an Empirical Interpolation Method (EIM) approximation. More...
#include <rb_eim_evaluation.h>
Public Types | |
enum | EimErrorIndicatorNormalization { RESIDUAL_SUM, RESIDUAL_RHS, MAX_RHS } |
Here we store an enum that defines the type of EIM error indicator normalization that we use in get_eim_error_indicator(). More... | |
typedef std::map< dof_id_type, std::vector< std::vector< Number > > > | QpDataMap |
Type of the data structure used to map from (elem id) -> [n_vars][n_qp] data. More... | |
typedef std::map< std::pair< dof_id_type, unsigned int >, std::vector< std::vector< Number > > > | SideQpDataMap |
Type of the data structure used to map from (elem id, side index) -> [n_vars][n_qp] data. More... | |
typedef std::map< dof_id_type, std::vector< Number > > | NodeDataMap |
Type of the data structure used to map from (node id) -> [n_vars] data. More... | |
Public Member Functions | |
RBEIMEvaluation (const Parallel::Communicator &comm) | |
Constructor. More... | |
RBEIMEvaluation (RBEIMEvaluation &&)=default | |
Special functions. More... | |
RBEIMEvaluation (const RBEIMEvaluation &)=delete | |
RBEIMEvaluation & | operator= (const RBEIMEvaluation &)=delete |
RBEIMEvaluation & | operator= (RBEIMEvaluation &&)=default |
virtual | ~RBEIMEvaluation () |
virtual void | clear () override |
Clear this object. More... | |
void | resize_data_structures (const unsigned int Nmax) |
Resize the data structures for storing data associated with this object. More... | |
void | set_parametrized_function (std::unique_ptr< RBParametrizedFunction > pf) |
Set the parametrized function that we will approximate using the Empirical Interpolation Method. More... | |
RBParametrizedFunction & | get_parametrized_function () |
Get a reference to the parametrized function. More... | |
const RBParametrizedFunction & | get_parametrized_function () const |
Get a const reference to the parametrized function. More... | |
DenseVector< Number > | rb_eim_solve (DenseVector< Number > &EIM_rhs) |
Calculate the EIM approximation for the given right-hand side vector EIM_rhs . More... | |
void | rb_eim_solves (const std::vector< RBParameters > &mus, unsigned int N) |
Perform rb_eim_solves at each mu in mus and store the results in _rb_eim_solutions. More... | |
void | initialize_interpolation_points_spatial_indices () |
Initialize _interpolation_points_spatial_indices. More... | |
void | initialize_param_fn_spatial_indices () |
The Online counterpart of initialize_interpolation_points_spatial_indices(). More... | |
unsigned int | get_n_basis_functions () const |
Return the current number of EIM basis functions. More... | |
unsigned int | get_n_interpolation_points () const |
Return the number of interpolation points. More... | |
unsigned int | get_n_elems () const |
Return the number of unique elements containing interpolation points. More... | |
unsigned int | get_n_properties () const |
Return the number of properties stored in the rb_property_map. More... | |
void | set_n_basis_functions (unsigned int n_bfs) |
Set the number of basis functions. More... | |
void | decrement_vector (QpDataMap &v, const DenseVector< Number > &coeffs) |
Subtract coeffs[i]*basis_function[i] from v . More... | |
void | side_decrement_vector (SideQpDataMap &v, const DenseVector< Number > &coeffs) |
Same as decrement_vector() except for Side data. More... | |
void | node_decrement_vector (NodeDataMap &v, const DenseVector< Number > &coeffs) |
Same as decrement_vector() except for node data. More... | |
void | initialize_eim_theta_objects () |
Build a vector of RBTheta objects that accesses the components of the RB_solution member variable of this RBEvaluation. More... | |
std::vector< std::unique_ptr< RBTheta > > & | get_eim_theta_objects () |
virtual std::unique_ptr< RBTheta > | build_eim_theta (unsigned int index) |
Build a theta object corresponding to EIM index index . More... | |
void | get_eim_basis_function_values_at_qps (unsigned int basis_function_index, dof_id_type elem_id, unsigned int var, std::vector< Number > &values) const |
Fill up values with the basis function values for basis function basis_function_index and variable var , at all quadrature points on element elem_id . More... | |
void | get_eim_basis_function_side_values_at_qps (unsigned int basis_function_index, dof_id_type elem_id, unsigned int side_index, unsigned int var, std::vector< Number > &values) const |
Same as get_eim_basis_function_values_at_qps() except for side data. More... | |
Number | get_eim_basis_function_node_local_value (unsigned int basis_function_index, dof_id_type node_id, unsigned int var) const |
Same as get_eim_basis_function_values_at_qps() except for node data. More... | |
Number | get_eim_basis_function_value (unsigned int basis_function_index, dof_id_type elem_id, unsigned int comp, unsigned int qp) const |
Same as above, except that we just return the value at the qp^th quadrature point. More... | |
Number | get_eim_basis_function_side_value (unsigned int basis_function_index, dof_id_type elem_id, unsigned int side_index, unsigned int comp, unsigned int qp) const |
Same as get_eim_basis_function_value() except for side data. More... | |
Number | get_eim_basis_function_node_value (unsigned int basis_function_index, dof_id_type node_id, unsigned int var) const |
Same as get_eim_basis_function_value() except for node data. More... | |
const QpDataMap & | get_basis_function (unsigned int i) const |
Get a reference to the i^th basis function. More... | |
const SideQpDataMap & | get_side_basis_function (unsigned int i) const |
Get a reference to the i^th side basis function. More... | |
const NodeDataMap & | get_node_basis_function (unsigned int i) const |
Get a reference to the i^th node basis function. More... | |
void | set_rb_eim_solutions (const std::vector< DenseVector< Number >> &rb_eim_solutions) |
Set _rb_eim_solutions. More... | |
const std::vector< DenseVector< Number > > & | get_rb_eim_solutions () const |
Return the EIM solution coefficients from the most recent call to rb_eim_solves(). More... | |
std::vector< Number > | get_rb_eim_solutions_entries (unsigned int index) const |
Return entry index for each solution in _rb_eim_solutions. More... | |
const std::vector< DenseVector< Number > > & | get_eim_solutions_for_training_set () const |
Return a const reference to the EIM solutions for the parameters in the training set. More... | |
std::vector< DenseVector< Number > > & | get_eim_solutions_for_training_set () |
Return a writeable reference to the EIM solutions for the parameters in the training set. More... | |
const std::vector< std::pair< Real, Real > > & | get_rb_eim_error_indicators () const |
Return the EIM error indicator values from the most recent call to rb_eim_solves(). More... | |
void | add_interpolation_points_xyz (Point p) |
Set the data associated with EIM interpolation points. More... | |
void | add_interpolation_points_comp (unsigned int comp) |
void | add_interpolation_points_subdomain_id (subdomain_id_type sbd_id) |
void | add_interpolation_points_boundary_id (boundary_id_type b_id) |
void | add_interpolation_points_xyz_perturbations (const std::vector< Point > &perturbs) |
void | add_interpolation_points_elem_id (dof_id_type elem_id) |
void | add_interpolation_points_side_index (unsigned int side_index) |
void | add_interpolation_points_node_id (dof_id_type node_id) |
void | add_interpolation_points_qp (unsigned int qp) |
void | add_interpolation_points_elem_type (ElemType elem_type) |
void | add_interpolation_points_phi_i_qp (const std::vector< Real > &phi_i_qp) |
void | add_interpolation_points_JxW_all_qp (const std::vector< Real > &JxW_all_qp) |
void | add_interpolation_points_phi_i_all_qp (const std::vector< std::vector< Real >> &phi_i_all_qp) |
void | add_interpolation_points_qrule_order (Order qrule_order) |
void | add_elem_center_dxyzdxi (const Point &dxyzdxi) |
void | add_elem_center_dxyzdeta (const Point &dxyzdxi) |
void | add_interpolation_points_spatial_indices (const std::vector< unsigned int > &spatial_indices) |
void | add_elem_id_local_index_map_entry (dof_id_type elem_id, unsigned int local_index) |
void | add_rb_property_map_entry (std::string &property_name, std::set< dof_id_type > &entity_ids) |
Point | get_interpolation_points_xyz (unsigned int index) const |
Get the data associated with EIM interpolation points. More... | |
unsigned int | get_interpolation_points_comp (unsigned int index) const |
subdomain_id_type | get_interpolation_points_subdomain_id (unsigned int index) const |
boundary_id_type | get_interpolation_points_boundary_id (unsigned int index) const |
const std::vector< Point > & | get_interpolation_points_xyz_perturbations (unsigned int index) const |
dof_id_type | get_interpolation_points_elem_id (unsigned int index) const |
unsigned int | get_interpolation_points_side_index (unsigned int index) const |
dof_id_type | get_interpolation_points_node_id (unsigned int index) const |
unsigned int | get_interpolation_points_qp (unsigned int index) const |
ElemType | get_interpolation_points_elem_type (unsigned int index) const |
const std::vector< Real > & | get_interpolation_points_phi_i_qp (unsigned int index) const |
const std::vector< Real > & | get_interpolation_points_JxW_all_qp (unsigned int index) const |
const std::vector< std::vector< Real > > & | get_interpolation_points_phi_i_all_qp (unsigned int index) const |
Order | get_interpolation_points_qrule_order (unsigned int index) const |
const Point & | get_elem_center_dxyzdxi (unsigned int index) const |
const Point & | get_elem_center_dxyzdeta (unsigned int index) const |
const std::vector< unsigned int > & | get_interpolation_points_spatial_indices (unsigned int index) const |
const std::map< dof_id_type, unsigned int > & | get_elem_id_to_local_index_map () const |
const std::unordered_map< std::string, std::set< dof_id_type > > & | get_rb_property_map () const |
unsigned int | get_n_interpolation_points_spatial_indices () const |
_interpolation_points_spatial_indices is optional data, so we need to be able to check how many _interpolation_points_spatial_indices values have actually been set since it may not match the number of interpolation points. More... | |
void | set_interpolation_matrix_entry (unsigned int i, unsigned int j, Number value) |
Set entry of the EIM interpolation matrix. More... | |
const DenseMatrix< Number > & | get_interpolation_matrix () const |
Get the EIM interpolation matrix. More... | |
void | add_basis_function (const QpDataMap &bf) |
Add bf to our EIM basis. More... | |
void | add_interpolation_data (Point p, unsigned int comp, dof_id_type elem_id, subdomain_id_type subdomain_id, unsigned int qp, const std::vector< Point > &perturbs, const std::vector< Real > &phi_i_qp, ElemType elem_type, const std::vector< Real > &JxW_all_qp, const std::vector< std::vector< Real >> &phi_i_all_qp, Order qrule_order, const Point &dxyz_dxi_elem_center, const Point &dxyz_deta_elem_center) |
Add interpolation data associated with a new basis function. More... | |
void | add_side_basis_function (const SideQpDataMap &side_bf) |
Add side_bf to our EIM basis. More... | |
void | add_side_interpolation_data (Point p, unsigned int comp, dof_id_type elem_id, unsigned int side_index, subdomain_id_type subdomain_id, boundary_id_type boundary_id, unsigned int qp, const std::vector< Point > &perturbs, const std::vector< Real > &phi_i_qp) |
Add interpolation data associated with a new basis function. More... | |
void | add_node_basis_function (const NodeDataMap &node_bf) |
Add node_bf to our EIM basis. More... | |
void | add_node_interpolation_data (Point p, unsigned int comp, dof_id_type node_id, boundary_id_type boundary_id) |
Add interpolation data associated with a new basis function. More... | |
void | set_preserve_rb_eim_solutions (bool preserve_rb_eim_solutions) |
Set _preserve_rb_eim_solutions. More... | |
bool | get_preserve_rb_eim_solutions () const |
Get _preserve_rb_eim_solutions. More... | |
void | write_out_basis_functions (const std::string &directory_name="offline_data", bool write_binary_basis_functions=true) |
Write out all the basis functions to file. More... | |
void | read_in_basis_functions (const System &sys, const std::string &directory_name="offline_data", bool read_binary_basis_functions=true) |
Read in all the basis functions from file. More... | |
virtual void | project_qp_data_vector_onto_system (System &sys, const std::vector< Number > &bf_data, const EIMVarGroupPlottingInfo &eim_vargroup, const std::map< std::string, std::string > &extra_options) |
Project the EIM basis function data stored in bf_data onto sys.solution. More... | |
const std::vector< EIMVarGroupPlottingInfo > & | get_eim_vars_to_project_and_write () const |
Get _eim_vars_to_project_and_write. More... | |
const std::set< unsigned int > & | scale_components_in_enrichment () const |
Get _scale_components_in_enrichment. More... | |
virtual bool | use_eim_error_indicator () const |
Virtual function to indicate if we use the EIM error indicator in this case. More... | |
void | set_eim_error_indicator_active (bool is_active) |
Activate/decative the error indicator in EIM solves. More... | |
const DenseVector< Number > & | get_error_indicator_interpolation_row () const |
Get/set _extra_points_interpolation_matrix. More... | |
void | set_error_indicator_interpolation_row (const DenseVector< Number > &error_indicator_row) |
std::pair< Real, Real > | get_eim_error_indicator (Number error_indicator_rhs, const DenseVector< Number > &eim_solution, const DenseVector< Number > &eim_rhs) |
Evaluates the EIM error indicator based on error_indicator_rhs , eim_solution , and _error_indicator_interpolation_row. More... | |
const VectorizedEvalInput & | get_vec_eval_input () const |
Get the VectorizedEvalInput data. More... | |
void | initialize_rb_property_map () |
Initialize the rb_property_map of RBEIMEvaluation (this) from the rb_property_map stored in RBParametrizedFunction with empty entries but identical keys. More... | |
std::vector< std::vector< std::vector< Number > > > | get_interior_basis_functions_as_vecs () |
Get all interior basis functions in the form of std::vectors. More... | |
std::map< std::string, std::size_t > | get_interior_basis_function_sizes (std::vector< unsigned int > &n_qp_per_elem) |
Get data that defines the sizes of interior EIM basis functions. More... | |
void | initialize_parameters (const RBParameters &mu_min_in, const RBParameters &mu_max_in, const std::map< std::string, std::vector< Real >> &discrete_parameter_values) |
Initialize the parameter ranges and set current_parameters. More... | |
void | initialize_parameters (const RBParametrized &rb_parametrized) |
Initialize the parameter ranges and set current_parameters. More... | |
unsigned int | get_n_params () const |
Get the number of parameters. More... | |
unsigned int | get_n_continuous_params () const |
Get the number of continuous parameters. More... | |
unsigned int | get_n_discrete_params () const |
Get the number of discrete parameters. More... | |
std::set< std::string > | get_parameter_names () const |
Get a set that stores the parameter names. More... | |
const RBParameters & | get_parameters () const |
Get the current parameters. More... | |
bool | set_parameters (const RBParameters ¶ms) |
Set the current parameters to params The parameters are checked for validity; an error is thrown if the number of parameters or samples is different than expected. More... | |
const RBParameters & | get_parameters_min () const |
Get an RBParameters object that specifies the minimum allowable value for each parameter. More... | |
const RBParameters & | get_parameters_max () const |
Get an RBParameters object that specifies the maximum allowable value for each parameter. More... | |
Real | get_parameter_min (const std::string ¶m_name) const |
Get minimum allowable value of parameter param_name . More... | |
Real | get_parameter_max (const std::string ¶m_name) const |
Get maximum allowable value of parameter param_name . More... | |
void | print_parameters () const |
Print the current parameters. More... | |
void | write_parameter_data_to_files (const std::string &continuous_param_file_name, const std::string &discrete_param_file_name, const bool write_binary_data) |
Write out the parameter ranges to files. More... | |
void | read_parameter_data_from_files (const std::string &continuous_param_file_name, const std::string &discrete_param_file_name, const bool read_binary_data) |
Read in the parameter ranges from files. More... | |
bool | is_discrete_parameter (const std::string &mu_name) const |
Is parameter mu_name discrete? More... | |
const std::map< std::string, std::vector< Real > > & | get_discrete_parameter_values () const |
Get a const reference to the discrete parameter values. More... | |
void | print_discrete_parameter_values () const |
Print out all the discrete parameter values. More... | |
const Parallel::Communicator & | comm () const |
processor_id_type | n_processors () const |
processor_id_type | processor_id () const |
Static Public Member Functions | |
static void | get_parametrized_function_values_at_qps (const QpDataMap &pf, dof_id_type elem_id, unsigned int comp, std::vector< Number > &values) |
Fill up values by evaluating the parametrized function pf for all quadrature points on element elem_id and component comp . More... | |
static void | get_parametrized_function_side_values_at_qps (const SideQpDataMap &pf, dof_id_type elem_id, unsigned int side_index, unsigned int comp, std::vector< Number > &values) |
Same as get_parametrized_function_values_at_qps() except for side data. More... | |
static Number | get_parametrized_function_node_local_value (const NodeDataMap &pf, dof_id_type node_id, unsigned int comp) |
Same as get_parametrized_function_values_at_qps() except for node data. More... | |
static Number | get_parametrized_function_value (const Parallel::Communicator &comm, const QpDataMap &pf, dof_id_type elem_id, unsigned int comp, unsigned int qp) |
Same as above, except that we just return the value at the qp^th quadrature point. More... | |
static Number | get_parametrized_function_side_value (const Parallel::Communicator &comm, const SideQpDataMap &pf, dof_id_type elem_id, unsigned int side_index, unsigned int comp, unsigned int qp) |
Same as get_parametrized_function_value() except for side data. More... | |
static Number | get_parametrized_function_node_value (const Parallel::Communicator &comm, const NodeDataMap &pf, dof_id_type node_id, unsigned int comp) |
Same as get_parametrized_function_value() except for node data. More... | |
static Real | get_closest_value (Real value, const std::vector< Real > &list_of_values) |
static std::string | get_info () |
Gets a string containing the reference information. More... | |
static void | print_info (std::ostream &out_stream=libMesh::out) |
Prints the reference information, by default to libMesh::out . More... | |
static unsigned int | n_objects () |
Prints the number of outstanding (created, but not yet destroyed) objects. More... | |
static void | enable_print_counter_info () |
Methods to enable/disable the reference counter output from print_info() More... | |
static void | disable_print_counter_info () |
Public Attributes | |
EimErrorIndicatorNormalization | eim_error_indicator_normalization |
bool | limit_eim_error_indicator_to_one |
If this boolean is true then we clamp EIM error indicator values to be at most 1. More... | |
bool | verbose_mode |
Public boolean to toggle verbose mode. More... | |
Protected Types | |
typedef std::map< std::string, std::pair< unsigned int, unsigned int > > | Counts |
Data structure to log the information. More... | |
Protected Member Functions | |
void | increment_constructor_count (const std::string &name) noexcept |
Increments the construction counter. More... | |
void | increment_destructor_count (const std::string &name) noexcept |
Increments the destruction counter. More... | |
Protected Attributes | |
std::vector< EIMVarGroupPlottingInfo > | _eim_vars_to_project_and_write |
This vector specifies which EIM variables we want to write to disk and/or project to nodes for plotting purposes. More... | |
std::set< unsigned int > | _scale_components_in_enrichment |
This set that specifies which EIM variables will be scaled during EIM enrichment so that their maximum value matches the maximum value across all variables. More... | |
const Parallel::Communicator & | _communicator |
Static Protected Attributes | |
static Counts | _counts |
Actually holds the data. More... | |
static Threads::atomic< unsigned int > | _n_objects |
The number of objects. More... | |
static Threads::spin_mutex | _mutex |
Mutual exclusion object to enable thread-safe reference counting. More... | |
static bool | _enable_print_counter = true |
Flag to control whether reference count information is printed when print_info is called. More... | |
Private Member Functions | |
void | write_out_interior_basis_functions (const std::string &directory_name, bool write_binary_basis_functions) |
Method that writes out element interior EIM basis functions. More... | |
void | write_out_side_basis_functions (const std::string &directory_name, bool write_binary_basis_functions) |
Method that writes out element side EIM basis functions. More... | |
void | write_out_node_basis_functions (const std::string &directory_name, bool write_binary_basis_functions) |
Method that writes out element node EIM basis functions. More... | |
void | read_in_interior_basis_functions (const System &sys, const std::string &directory_name, bool read_binary_basis_functions) |
Method that reads in element interior EIM basis functions. More... | |
void | read_in_side_basis_functions (const System &sys, const std::string &directory_name, bool read_binary_basis_functions) |
Method that reads in element side EIM basis functions. More... | |
void | read_in_node_basis_functions (const System &sys, const std::string &directory_name, bool read_binary_basis_functions) |
Method that reads in element node EIM basis functions. More... | |
std::vector< std::vector< Number > > | get_interior_basis_function_as_vec_helper (unsigned int n_vars, unsigned int n_qp_data, unsigned int bf_index) |
Helper function called by write_out_interior_basis_functions() to get basis function bf_index stored as a std::vector per variable. More... | |
void | print_local_eim_basis_functions () const |
Print the contents of _local_eim_basis_functions to libMesh::out. More... | |
void | gather_bfs () |
Helper function that gathers the contents of _local_eim_basis_functions to processor 0 in preparation for printing to file. More... | |
void | side_gather_bfs () |
Same as gather_bfs() except for side data. More... | |
void | node_gather_bfs () |
Same as gather_bfs() except for node data. More... | |
void | distribute_bfs (const System &sys) |
Helper function that distributes the entries of _local_eim_basis_functions to their respective processors after they are read in on processor 0. More... | |
void | side_distribute_bfs (const System &sys) |
Same as distribute_bfs() except for side data. More... | |
void | node_distribute_bfs (const System &sys) |
Same as distribute_bfs() except for node data. More... | |
Private Attributes | |
std::vector< DenseVector< Number > > | _rb_eim_solutions |
The EIM solution coefficients from the most recent call to rb_eim_solves(). More... | |
std::vector< std::pair< Real, Real > > | _rb_eim_error_indicators |
If we're using the EIM error indicator, then we store the error indicator values corresponding to _rb_eim_solutions here. More... | |
std::vector< DenseVector< Number > > | _eim_solutions_for_training_set |
Storage for EIM solutions from the training set. More... | |
std::vector< RBParameters > | _rb_eim_solves_mus |
The parameters and the number of basis functions that were used in the most recent call to rb_eim_solves(). More... | |
unsigned int | _rb_eim_solves_N |
DenseMatrix< Number > | _interpolation_matrix |
Dense matrix that stores the lower triangular interpolation matrix that can be used. More... | |
VectorizedEvalInput | _vec_eval_input |
We store the EIM interpolation point data in this object. More... | |
std::vector< unsigned int > | _interpolation_points_comp |
In the case of a "vector-valued" EIM, this vector determines which component of the parameterized function we sample at each EIM point. More... | |
std::vector< std::vector< unsigned int > > | _interpolation_points_spatial_indices |
Here we store the spatial indices that were initialized by initialize_spatial_indices_at_interp_pts(). More... | |
std::unique_ptr< RBParametrizedFunction > | _parametrized_function |
Store the parametrized function that will be approximated by this EIM system. More... | |
std::vector< std::unique_ptr< RBTheta > > | _rb_eim_theta_objects |
The vector of RBTheta objects that are created to point to this RBEIMEvaluation. More... | |
std::vector< QpDataMap > | _local_eim_basis_functions |
The EIM basis functions. More... | |
std::vector< SideQpDataMap > | _local_side_eim_basis_functions |
The EIM basis functions on element sides. More... | |
std::vector< NodeDataMap > | _local_node_eim_basis_functions |
The EIM basis functions on element nodes (e.g. More... | |
bool | _preserve_rb_eim_solutions |
Boolean to indicate if we skip updating _rb_eim_solutions in rb_eim_solves(). More... | |
bool | _is_eim_error_indicator_active |
Indicate if the EIM error indicator is active in RB EIM solves. More... | |
DenseVector< Number > | _error_indicator_interpolation_row |
Here we store an extra row of the interpolation matrix which is used to compute the EIM error indicator. More... | |
This class enables evaluation of an Empirical Interpolation Method (EIM) approximation.
RBEvaluation plays an analogous role in the context of the regular reduced basis method.
Definition at line 111 of file rb_eim_evaluation.h.
|
protectedinherited |
Data structure to log the information.
The log is identified by the class name.
Definition at line 119 of file reference_counter.h.
typedef std::map<dof_id_type, std::vector<Number> > libMesh::RBEIMEvaluation::NodeDataMap |
Type of the data structure used to map from (node id) -> [n_vars] data.
Definition at line 146 of file rb_eim_evaluation.h.
typedef std::map<dof_id_type, std::vector<std::vector<Number> > > libMesh::RBEIMEvaluation::QpDataMap |
Type of the data structure used to map from (elem id) -> [n_vars][n_qp] data.
Definition at line 136 of file rb_eim_evaluation.h.
typedef std::map<std::pair<dof_id_type,unsigned int>, std::vector<std::vector<Number> > > libMesh::RBEIMEvaluation::SideQpDataMap |
Type of the data structure used to map from (elem id, side index) -> [n_vars][n_qp] data.
Definition at line 141 of file rb_eim_evaluation.h.
Here we store an enum that defines the type of EIM error indicator normalization that we use in get_eim_error_indicator().
The enum is public so that it can be set in user code.
RESIDUAL_SUM: Use the sum of the terms in the EIM residual to determine the error indicator normalization. This ensures that the error indicator value will be at most 1.0, which may be a desirable property of the indicator.
RHS: Use only the right-hand side value for the EIM residual to determine the error indicator normalization.
MAX_RHS: Use the maximum value in the EIM RHS vector to determine the error indicator normalization (default). This is helpful when the values at some EIM points are much larger than others, since in this scenario we typically want to normalize the error indicator based on the largest values in order to avoid overestimating the error.
Enumerator | |
---|---|
RESIDUAL_SUM | |
RESIDUAL_RHS | |
MAX_RHS |
Definition at line 715 of file rb_eim_evaluation.h.
RBEIMEvaluation::RBEIMEvaluation | ( | const Parallel::Communicator & | comm | ) |
Constructor.
Definition at line 48 of file rb_eim_evaluation.C.
|
default |
Special functions.
|
delete |
|
virtualdefault |
void RBEIMEvaluation::add_basis_function | ( | const QpDataMap & | bf | ) |
Add bf
to our EIM basis.
Definition at line 963 of file rb_eim_evaluation.C.
References _local_eim_basis_functions.
Referenced by libMesh::RBEIMConstruction::enrich_eim_approximation_on_interiors().
void RBEIMEvaluation::add_elem_center_dxyzdeta | ( | const Point & | dxyzdxi | ) |
Definition at line 778 of file rb_eim_evaluation.C.
References _vec_eval_input, and libMesh::VectorizedEvalInput::dxyzdeta_elem_center.
Referenced by libMesh::RBDataDeserialization::load_rb_eim_evaluation_data().
void RBEIMEvaluation::add_elem_center_dxyzdxi | ( | const Point & | dxyzdxi | ) |
Definition at line 773 of file rb_eim_evaluation.C.
References _vec_eval_input, and libMesh::VectorizedEvalInput::dxyzdxi_elem_center.
Referenced by libMesh::RBDataDeserialization::load_rb_eim_evaluation_data().
void RBEIMEvaluation::add_elem_id_local_index_map_entry | ( | dof_id_type | elem_id, |
unsigned int | local_index | ||
) |
Definition at line 793 of file rb_eim_evaluation.C.
References _vec_eval_input, and libMesh::VectorizedEvalInput::elem_id_to_local_index.
Referenced by libMesh::RBDataDeserialization::load_rb_eim_evaluation_data().
void RBEIMEvaluation::add_interpolation_data | ( | Point | p, |
unsigned int | comp, | ||
dof_id_type | elem_id, | ||
subdomain_id_type | subdomain_id, | ||
unsigned int | qp, | ||
const std::vector< Point > & | perturbs, | ||
const std::vector< Real > & | phi_i_qp, | ||
ElemType | elem_type, | ||
const std::vector< Real > & | JxW_all_qp, | ||
const std::vector< std::vector< Real >> & | phi_i_all_qp, | ||
Order | qrule_order, | ||
const Point & | dxyz_dxi_elem_center, | ||
const Point & | dxyz_deta_elem_center | ||
) |
Add interpolation data associated with a new basis function.
Definition at line 969 of file rb_eim_evaluation.C.
References _interpolation_points_comp, _vec_eval_input, libMesh::RBParametrizedFunction::add_interpolation_data_to_rb_property_map(), libMesh::VectorizedEvalInput::all_xyz, libMesh::VectorizedEvalInput::all_xyz_perturb, libMesh::ParallelObject::comm(), libMesh::VectorizedEvalInput::dxyzdeta_elem_center, libMesh::VectorizedEvalInput::dxyzdxi_elem_center, libMesh::VectorizedEvalInput::elem_id_to_local_index, libMesh::VectorizedEvalInput::elem_ids, libMesh::VectorizedEvalInput::elem_types, get_parametrized_function(), libMesh::VectorizedEvalInput::JxW_all_qp, libMesh::VectorizedEvalInput::phi_i_all_qp, libMesh::VectorizedEvalInput::phi_i_qp, libMesh::VectorizedEvalInput::qps, libMesh::VectorizedEvalInput::qrule_orders, libMesh::VectorizedEvalInput::rb_property_map, and libMesh::VectorizedEvalInput::sbd_ids.
Referenced by libMesh::RBEIMConstruction::enrich_eim_approximation_on_interiors().
void RBEIMEvaluation::add_interpolation_points_boundary_id | ( | boundary_id_type | b_id | ) |
Definition at line 723 of file rb_eim_evaluation.C.
References _vec_eval_input, and libMesh::VectorizedEvalInput::boundary_ids.
Referenced by libMesh::RBDataDeserialization::load_rb_eim_evaluation_data().
void RBEIMEvaluation::add_interpolation_points_comp | ( | unsigned int | comp | ) |
Definition at line 713 of file rb_eim_evaluation.C.
References _interpolation_points_comp.
Referenced by libMesh::RBDataDeserialization::load_rb_eim_evaluation_data().
void RBEIMEvaluation::add_interpolation_points_elem_id | ( | dof_id_type | elem_id | ) |
Definition at line 733 of file rb_eim_evaluation.C.
References _vec_eval_input, and libMesh::VectorizedEvalInput::elem_ids.
Referenced by libMesh::RBDataDeserialization::load_rb_eim_evaluation_data().
void RBEIMEvaluation::add_interpolation_points_elem_type | ( | ElemType | elem_type | ) |
Definition at line 753 of file rb_eim_evaluation.C.
References _vec_eval_input, and libMesh::VectorizedEvalInput::elem_types.
Referenced by libMesh::RBDataDeserialization::load_rb_eim_evaluation_data().
void RBEIMEvaluation::add_interpolation_points_JxW_all_qp | ( | const std::vector< Real > & | JxW_all_qp | ) |
Definition at line 758 of file rb_eim_evaluation.C.
References _vec_eval_input, and libMesh::VectorizedEvalInput::JxW_all_qp.
Referenced by libMesh::RBDataDeserialization::load_rb_eim_evaluation_data().
void RBEIMEvaluation::add_interpolation_points_node_id | ( | dof_id_type | node_id | ) |
Definition at line 743 of file rb_eim_evaluation.C.
References _vec_eval_input, and libMesh::VectorizedEvalInput::node_ids.
Referenced by libMesh::RBDataDeserialization::load_rb_eim_evaluation_data().
void RBEIMEvaluation::add_interpolation_points_phi_i_all_qp | ( | const std::vector< std::vector< Real >> & | phi_i_all_qp | ) |
Definition at line 763 of file rb_eim_evaluation.C.
References _vec_eval_input, and libMesh::VectorizedEvalInput::phi_i_all_qp.
Referenced by libMesh::RBDataDeserialization::load_rb_eim_evaluation_data().
void RBEIMEvaluation::add_interpolation_points_phi_i_qp | ( | const std::vector< Real > & | phi_i_qp | ) |
Definition at line 768 of file rb_eim_evaluation.C.
References _vec_eval_input, and libMesh::VectorizedEvalInput::phi_i_qp.
Referenced by libMesh::RBDataDeserialization::load_rb_eim_evaluation_data().
void RBEIMEvaluation::add_interpolation_points_qp | ( | unsigned int | qp | ) |
Definition at line 748 of file rb_eim_evaluation.C.
References _vec_eval_input, and libMesh::VectorizedEvalInput::qps.
Referenced by libMesh::RBDataDeserialization::load_rb_eim_evaluation_data().
void RBEIMEvaluation::add_interpolation_points_qrule_order | ( | Order | qrule_order | ) |
Definition at line 783 of file rb_eim_evaluation.C.
References _vec_eval_input, and libMesh::VectorizedEvalInput::qrule_orders.
Referenced by libMesh::RBDataDeserialization::load_rb_eim_evaluation_data().
void RBEIMEvaluation::add_interpolation_points_side_index | ( | unsigned int | side_index | ) |
Definition at line 738 of file rb_eim_evaluation.C.
References _vec_eval_input, and libMesh::VectorizedEvalInput::side_indices.
Referenced by libMesh::RBDataDeserialization::load_rb_eim_evaluation_data().
void RBEIMEvaluation::add_interpolation_points_spatial_indices | ( | const std::vector< unsigned int > & | spatial_indices | ) |
Definition at line 788 of file rb_eim_evaluation.C.
References _interpolation_points_spatial_indices.
Referenced by libMesh::RBDataDeserialization::load_rb_eim_evaluation_data().
void RBEIMEvaluation::add_interpolation_points_subdomain_id | ( | subdomain_id_type | sbd_id | ) |
Definition at line 718 of file rb_eim_evaluation.C.
References _vec_eval_input, and libMesh::VectorizedEvalInput::sbd_ids.
Referenced by libMesh::RBDataDeserialization::load_rb_eim_evaluation_data().
void RBEIMEvaluation::add_interpolation_points_xyz | ( | Point | p | ) |
Set the data associated with EIM interpolation points.
Definition at line 708 of file rb_eim_evaluation.C.
References _vec_eval_input, and libMesh::VectorizedEvalInput::all_xyz.
Referenced by libMesh::RBDataDeserialization::load_rb_eim_evaluation_data().
void RBEIMEvaluation::add_interpolation_points_xyz_perturbations | ( | const std::vector< Point > & | perturbs | ) |
Definition at line 728 of file rb_eim_evaluation.C.
References _vec_eval_input, and libMesh::VectorizedEvalInput::all_xyz_perturb.
Referenced by libMesh::RBDataDeserialization::load_rb_eim_evaluation_data().
void RBEIMEvaluation::add_node_basis_function | ( | const NodeDataMap & | node_bf | ) |
Add node_bf
to our EIM basis.
Definition at line 1055 of file rb_eim_evaluation.C.
References _local_node_eim_basis_functions.
Referenced by libMesh::RBEIMConstruction::enrich_eim_approximation_on_nodes().
void RBEIMEvaluation::add_node_interpolation_data | ( | Point | p, |
unsigned int | comp, | ||
dof_id_type | node_id, | ||
boundary_id_type | boundary_id | ||
) |
Add interpolation data associated with a new basis function.
Definition at line 1061 of file rb_eim_evaluation.C.
References _interpolation_points_comp, _vec_eval_input, libMesh::VectorizedEvalInput::all_xyz, libMesh::VectorizedEvalInput::all_xyz_perturb, libMesh::VectorizedEvalInput::boundary_ids, libMesh::VectorizedEvalInput::dxyzdeta_elem_center, libMesh::VectorizedEvalInput::dxyzdxi_elem_center, libMesh::VectorizedEvalInput::elem_ids, libMesh::VectorizedEvalInput::elem_types, libMesh::INVALID_ELEM, libMesh::INVALID_ORDER, libMesh::VectorizedEvalInput::JxW_all_qp, libMesh::VectorizedEvalInput::node_ids, libMesh::VectorizedEvalInput::phi_i_all_qp, libMesh::VectorizedEvalInput::phi_i_qp, libMesh::VectorizedEvalInput::qps, libMesh::VectorizedEvalInput::qrule_orders, libMesh::VectorizedEvalInput::sbd_ids, and libMesh::VectorizedEvalInput::side_indices.
Referenced by libMesh::RBEIMConstruction::enrich_eim_approximation_on_nodes().
void RBEIMEvaluation::add_rb_property_map_entry | ( | std::string & | property_name, |
std::set< dof_id_type > & | entity_ids | ||
) |
Definition at line 800 of file rb_eim_evaluation.C.
References _vec_eval_input, and libMesh::VectorizedEvalInput::rb_property_map.
Referenced by libMesh::RBDataDeserialization::load_rb_eim_evaluation_data().
void RBEIMEvaluation::add_side_basis_function | ( | const SideQpDataMap & | side_bf | ) |
Add side_bf
to our EIM basis.
Definition at line 1018 of file rb_eim_evaluation.C.
References _local_side_eim_basis_functions.
Referenced by libMesh::RBEIMConstruction::enrich_eim_approximation_on_sides().
void RBEIMEvaluation::add_side_interpolation_data | ( | Point | p, |
unsigned int | comp, | ||
dof_id_type | elem_id, | ||
unsigned int | side_index, | ||
subdomain_id_type | subdomain_id, | ||
boundary_id_type | boundary_id, | ||
unsigned int | qp, | ||
const std::vector< Point > & | perturbs, | ||
const std::vector< Real > & | phi_i_qp | ||
) |
Add interpolation data associated with a new basis function.
Definition at line 1024 of file rb_eim_evaluation.C.
References _interpolation_points_comp, _vec_eval_input, libMesh::VectorizedEvalInput::all_xyz, libMesh::VectorizedEvalInput::all_xyz_perturb, libMesh::VectorizedEvalInput::boundary_ids, libMesh::VectorizedEvalInput::dxyzdeta_elem_center, libMesh::VectorizedEvalInput::dxyzdxi_elem_center, libMesh::VectorizedEvalInput::elem_ids, libMesh::VectorizedEvalInput::elem_types, libMesh::INVALID_ELEM, libMesh::INVALID_ORDER, libMesh::VectorizedEvalInput::JxW_all_qp, libMesh::VectorizedEvalInput::phi_i_all_qp, libMesh::VectorizedEvalInput::phi_i_qp, libMesh::VectorizedEvalInput::qps, libMesh::VectorizedEvalInput::qrule_orders, libMesh::VectorizedEvalInput::sbd_ids, and libMesh::VectorizedEvalInput::side_indices.
Referenced by libMesh::RBEIMConstruction::enrich_eim_approximation_on_sides().
Build a theta object corresponding to EIM index index
.
The default implementation builds an RBEIMTheta object, possibly override in subclasses if we need more specialized behavior.
Definition at line 429 of file rb_eim_evaluation.C.
Referenced by initialize_eim_theta_objects().
|
overridevirtual |
Clear this object.
Reimplemented from libMesh::RBParametrized.
Definition at line 61 of file rb_eim_evaluation.C.
References _interpolation_matrix, _interpolation_points_comp, _interpolation_points_spatial_indices, _rb_eim_theta_objects, _vec_eval_input, libMesh::VectorizedEvalInput::clear(), and libMesh::DenseMatrix< T >::resize().
Referenced by distribute_bfs(), node_distribute_bfs(), and side_distribute_bfs().
|
inlineinherited |
Parallel::Communicator
object used by this mesh. Definition at line 97 of file parallel_object.h.
References libMesh::ParallelObject::_communicator.
Referenced by libMesh::__libmesh_petsc_diff_solver_jacobian(), libMesh::__libmesh_petsc_diff_solver_monitor(), libMesh::__libmesh_petsc_diff_solver_residual(), libMesh::__libmesh_tao_equality_constraints(), libMesh::__libmesh_tao_equality_constraints_jacobian(), libMesh::__libmesh_tao_gradient(), libMesh::__libmesh_tao_hessian(), libMesh::__libmesh_tao_inequality_constraints(), libMesh::__libmesh_tao_inequality_constraints_jacobian(), libMesh::__libmesh_tao_objective(), libMesh::MeshRefinement::_coarsen_elements(), libMesh::ExactSolution::_compute_error(), libMesh::UniformRefinementEstimator::_estimate_error(), libMesh::Partitioner::_find_global_index_by_pid_map(), libMesh::BoundaryInfo::_find_id_maps(), libMesh::PetscLinearSolver< Number >::_petsc_shell_matrix_get_diagonal(), libMesh::SlepcEigenSolver< libMesh::Number >::_petsc_shell_matrix_get_diagonal(), libMesh::PetscLinearSolver< Number >::_petsc_shell_matrix_mult(), libMesh::SlepcEigenSolver< libMesh::Number >::_petsc_shell_matrix_mult(), libMesh::PetscLinearSolver< Number >::_petsc_shell_matrix_mult_add(), libMesh::MeshRefinement::_refine_elements(), libMesh::MeshRefinement::_smooth_flags(), libMesh::DofMap::add_constraints_to_send_list(), add_cube_convex_hull_to_mesh(), libMesh::PetscDMWrapper::add_dofs_helper(), libMesh::PetscDMWrapper::add_dofs_to_section(), libMesh::TransientRBConstruction::add_IC_to_RB_space(), add_interpolation_data(), libMesh::CondensedEigenSystem::add_matrices(), libMesh::EigenSystem::add_matrices(), libMesh::System::add_matrix(), libMesh::RBConstruction::add_scaled_matrix_and_vector(), libMesh::System::add_variable(), libMesh::System::add_variables(), libMesh::System::add_vector(), libMesh::MeshTools::Modification::all_tri(), libMesh::LaplaceMeshSmoother::allgather_graph(), libMesh::DofMap::allgather_recursive_constraints(), libMesh::TransientRBConstruction::allocate_data_structures(), libMesh::RBConstruction::allocate_data_structures(), libMesh::TransientRBConstruction::assemble_affine_expansion(), libMesh::AdvectionSystem::assemble_claw_rhs(), libMesh::FEMSystem::assemble_qoi(), libMesh::Nemesis_IO::assert_symmetric_cmaps(), libMesh::MeshCommunication::assign_global_indices(), libMesh::Partitioner::assign_partitioning(), libMesh::MeshTools::Generation::build_extrusion(), libMesh::Partitioner::build_graph(), libMesh::BoundaryInfo::build_node_list_from_side_list(), libMesh::EquationSystems::build_parallel_elemental_solution_vector(), libMesh::EquationSystems::build_parallel_solution_vector(), libMesh::PetscDMWrapper::build_section(), libMesh::PetscDMWrapper::build_sf(), libMesh::MeshBase::cache_elem_data(), libMesh::System::calculate_norm(), libMesh::DofMap::check_dirichlet_bcid_consistency(), libMesh::RBConstruction::compute_Fq_representor_innerprods(), libMesh::RBConstruction::compute_max_error_bound(), libMesh::Nemesis_IO_Helper::compute_num_global_elem_blocks(), libMesh::Nemesis_IO_Helper::compute_num_global_nodesets(), libMesh::Nemesis_IO_Helper::compute_num_global_sidesets(), libMesh::RBConstruction::compute_output_dual_innerprods(), libMesh::RBConstruction::compute_residual_dual_norm_slow(), libMesh::RBSCMConstruction::compute_SCM_bounds_on_training_set(), libMesh::DofMap::computed_sparsity_already(), libMesh::Problem_Interface::computeF(), libMesh::Problem_Interface::computeJacobian(), libMesh::Problem_Interface::computePreconditioner(), libMesh::ContinuationSystem::ContinuationSystem(), libMesh::MeshBase::copy_constraint_rows(), libMesh::ExodusII_IO::copy_elemental_solution(), libMesh::ExodusII_IO::copy_nodal_solution(), libMesh::ExodusII_IO::copy_scalar_solution(), libMesh::CondensedEigenSystem::copy_super_to_sub(), libMesh::MeshTools::correct_node_proc_ids(), libMesh::MeshTools::create_bounding_box(), libMesh::DofMap::create_dof_constraints(), libMesh::MeshTools::create_nodal_bounding_box(), libMesh::MeshRefinement::create_parent_error_vector(), libMesh::MeshTools::create_processor_bounding_box(), libMesh::MeshTools::create_subdomain_bounding_box(), libMesh::PetscMatrix< T >::create_submatrix_nosort(), create_wrapped_function(), libMesh::MeshCommunication::delete_remote_elements(), distribute_bfs(), DMlibMeshFunction(), DMlibMeshJacobian(), DMlibMeshSetSystem_libMesh(), DMVariableBounds_libMesh(), libMesh::DTKSolutionTransfer::DTKSolutionTransfer(), libMesh::MeshRefinement::eliminate_unrefined_patches(), libMesh::RBEIMConstruction::enrich_eim_approximation_on_interiors(), libMesh::RBEIMConstruction::enrich_eim_approximation_on_nodes(), libMesh::RBEIMConstruction::enrich_eim_approximation_on_sides(), libMesh::TransientRBConstruction::enrich_RB_space(), libMesh::EpetraVector< T >::EpetraVector(), AssembleOptimization::equality_constraints(), libMesh::PatchRecoveryErrorEstimator::estimate_error(), libMesh::WeightedPatchRecoveryErrorEstimator::estimate_error(), libMesh::AdjointRefinementEstimator::estimate_error(), libMesh::ExactErrorEstimator::estimate_error(), libMesh::MeshRefinement::flag_elements_by_elem_fraction(), libMesh::MeshRefinement::flag_elements_by_error_fraction(), libMesh::MeshRefinement::flag_elements_by_error_tolerance(), libMesh::MeshRefinement::flag_elements_by_mean_stddev(), libMesh::MeshRefinement::flag_elements_by_nelem_target(), gather_bfs(), libMesh::DofMap::gather_constraints(), libMesh::MeshfreeInterpolation::gather_remote_data(), libMesh::CondensedEigenSystem::get_eigenpair(), get_eim_basis_function_node_value(), get_eim_basis_function_side_value(), get_eim_basis_function_value(), libMesh::MeshBase::get_info(), libMesh::System::get_info(), libMesh::DofMap::get_info(), get_interior_basis_functions_as_vecs(), libMesh::ImplicitSystem::get_linear_solver(), libMesh::RBEIMConstruction::get_max_abs_value(), libMesh::RBEIMConstruction::get_node_max_abs_value(), get_parametrized_function_node_value(), get_parametrized_function_side_value(), get_parametrized_function_value(), libMesh::RBEIMConstruction::get_random_point(), AssembleOptimization::inequality_constraints(), AssembleOptimization::inequality_constraints_jacobian(), libMesh::LocationMap< T >::init(), libMesh::TimeSolver::init(), libMesh::StaticCondensation::init(), libMesh::SystemSubsetBySubdomain::init(), libMesh::PetscDMWrapper::init_and_attach_petscdm(), libMesh::AdvectionSystem::init_data(), libMesh::ClawSystem::init_data(), libMesh::PetscDMWrapper::init_petscdm(), libMesh::ExodusII_IO_Helper::initialize(), libMesh::OptimizationSystem::initialize_equality_constraints_storage(), libMesh::OptimizationSystem::initialize_inequality_constraints_storage(), libMesh::RBEIMConstruction::initialize_parametrized_functions_in_training_set(), libMesh::RBEIMConstruction::inner_product(), integrate_function(), libMesh::MeshTools::libmesh_assert_consistent_distributed(), libMesh::MeshTools::libmesh_assert_consistent_distributed_nodes(), libMesh::MeshTools::libmesh_assert_contiguous_dof_ids(), libMesh::MeshTools::libmesh_assert_equal_connectivity(), libMesh::MeshTools::libmesh_assert_equal_points(), libMesh::MeshTools::libmesh_assert_parallel_consistent_new_node_procids(), libMesh::MeshTools::libmesh_assert_parallel_consistent_procids< Elem >(), libMesh::MeshTools::libmesh_assert_parallel_consistent_procids< Node >(), libMesh::MeshTools::libmesh_assert_topology_consistent_procids< Node >(), libMesh::MeshTools::libmesh_assert_valid_boundary_ids(), libMesh::MeshTools::libmesh_assert_valid_constraint_rows(), libMesh::MeshTools::libmesh_assert_valid_dof_ids(), libMesh::MeshTools::libmesh_assert_valid_neighbors(), libMesh::DistributedMesh::libmesh_assert_valid_parallel_flags(), libMesh::DistributedMesh::libmesh_assert_valid_parallel_object_ids(), libMesh::DistributedMesh::libmesh_assert_valid_parallel_p_levels(), libMesh::MeshTools::libmesh_assert_valid_refinement_flags(), libMesh::MeshTools::libmesh_assert_valid_unique_ids(), libMesh::libmesh_petsc_linesearch_shellfunc(), libMesh::libmesh_petsc_preconditioner_apply(), libMesh::libmesh_petsc_recalculate_monitor(), libMesh::libmesh_petsc_snes_fd_residual(), libMesh::libmesh_petsc_snes_jacobian(), libMesh::libmesh_petsc_snes_mffd_interface(), libMesh::libmesh_petsc_snes_mffd_residual(), libMesh::libmesh_petsc_snes_postcheck(), libMesh::libmesh_petsc_snes_precheck(), libMesh::libmesh_petsc_snes_residual(), libMesh::libmesh_petsc_snes_residual_helper(), libMesh::MeshRefinement::limit_level_mismatch_at_edge(), libMesh::MeshRefinement::limit_level_mismatch_at_node(), libMesh::MeshRefinement::limit_overrefined_boundary(), libMesh::MeshRefinement::limit_underrefined_boundary(), libMesh::LinearImplicitSystem::LinearImplicitSystem(), main(), libMesh::MeshRefinement::make_coarsening_compatible(), libMesh::MeshCommunication::make_elems_parallel_consistent(), libMesh::MeshRefinement::make_flags_parallel_consistent(), libMesh::MeshCommunication::make_new_node_proc_ids_parallel_consistent(), libMesh::MeshCommunication::make_new_nodes_parallel_consistent(), libMesh::MeshCommunication::make_node_bcids_parallel_consistent(), libMesh::MeshCommunication::make_node_ids_parallel_consistent(), libMesh::MeshCommunication::make_node_proc_ids_parallel_consistent(), libMesh::MeshCommunication::make_node_unique_ids_parallel_consistent(), libMesh::MeshCommunication::make_nodes_parallel_consistent(), libMesh::MeshCommunication::make_p_levels_parallel_consistent(), libMesh::MeshRefinement::make_refinement_compatible(), libMesh::TransientRBConstruction::mass_matrix_scaled_matvec(), libMesh::FEMSystem::mesh_position_set(), libMesh::TriangulatorInterface::MeshedHole::MeshedHole(), LinearElasticityWithContact::move_mesh(), libMesh::DistributedMesh::n_active_elem(), libMesh::MeshTools::n_active_levels(), libMesh::BoundaryInfo::n_boundary_conds(), libMesh::MeshTools::n_connected_components(), libMesh::DofMap::n_constrained_dofs(), libMesh::MeshBase::n_constraint_rows(), libMesh::DofMap::n_dofs(), libMesh::DofMap::n_dofs_per_processor(), libMesh::BoundaryInfo::n_edge_conds(), libMesh::CondensedEigenSystem::n_global_non_condensed_dofs(), libMesh::MeshTools::n_levels(), MixedOrderTest::n_neighbor_links(), libMesh::BoundaryInfo::n_nodeset_conds(), libMesh::SparsityPattern::Build::n_nonzeros(), libMesh::MeshTools::n_p_levels(), libMesh::BoundaryInfo::n_shellface_conds(), node_distribute_bfs(), node_gather_bfs(), libMesh::RBEIMConstruction::node_inner_product(), libMesh::MeshBase::operator==(), libMesh::DistributedMesh::parallel_max_elem_id(), libMesh::DistributedMesh::parallel_max_node_id(), libMesh::ReplicatedMesh::parallel_max_unique_id(), libMesh::DistributedMesh::parallel_max_unique_id(), libMesh::DistributedMesh::parallel_n_elem(), libMesh::DistributedMesh::parallel_n_nodes(), libMesh::SparsityPattern::Build::parallel_sync(), libMesh::BoundaryInfo::parallel_sync_node_ids(), libMesh::BoundaryInfo::parallel_sync_side_ids(), libMesh::MeshTools::paranoid_n_levels(), libMesh::Partitioner::partition(), libMesh::Partitioner::partition_unpartitioned_elements(), libMesh::petsc_auto_fieldsplit(), libMesh::System::point_gradient(), libMesh::System::point_hessian(), libMesh::System::point_value(), libMesh::MeshBase::prepare_for_use(), libMesh::MeshBase::print_constraint_rows(), libMesh::DofMap::print_dof_constraints(), libMesh::DofMap::process_mesh_constraint_rows(), libMesh::Partitioner::processor_pairs_to_interface_nodes(), libMesh::InterMeshProjection::project_system_vectors(), FEMParameters::read(), libMesh::Nemesis_IO::read(), libMesh::XdrIO::read(), libMesh::EquationSystems::read(), libMesh::ExodusII_IO::read_header(), libMesh::CheckpointIO::read_header(), libMesh::XdrIO::read_header(), libMesh::System::read_header(), read_in_interior_basis_functions(), read_in_node_basis_functions(), read_in_side_basis_functions(), libMesh::RBEvaluation::read_in_vectors_from_multiple_files(), libMesh::System::read_legacy_data(), libMesh::TransientRBConstruction::read_riesz_representors_from_files(), libMesh::RBConstruction::read_riesz_representors_from_files(), libMesh::System::read_SCALAR_dofs(), libMesh::XdrIO::read_serialized_bc_names(), libMesh::XdrIO::read_serialized_bcs_helper(), libMesh::System::read_serialized_blocked_dof_objects(), libMesh::XdrIO::read_serialized_connectivity(), libMesh::XdrIO::read_serialized_nodes(), libMesh::XdrIO::read_serialized_nodesets(), libMesh::XdrIO::read_serialized_subdomain_names(), libMesh::System::read_serialized_vector(), libMesh::Nemesis_IO_Helper::read_var_names_impl(), libMesh::MeshBase::recalculate_n_partitions(), libMesh::MeshRefinement::refine_and_coarsen_elements(), libMesh::SimplexRefiner::refine_via_edges(), libMesh::StaticCondensationDofMap::reinit(), libMesh::DistributedMesh::renumber_dof_objects(), libMesh::DistributedMesh::renumber_nodes_and_elements(), LinearElasticityWithContact::residual_and_jacobian(), OverlappingAlgebraicGhostingTest::run_ghosting_test(), OverlappingCouplingGhostingTest::run_sparsity_pattern_test(), scale_mesh_and_plot(), libMesh::DofMap::scatter_constraints(), libMesh::CheckpointIO::select_split_config(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::send_and_insert_dof_values(), libMesh::TransientRBConstruction::set_error_temporal_data(), libMesh::Partitioner::set_interface_node_processor_ids_BFS(), libMesh::Partitioner::set_interface_node_processor_ids_linear(), libMesh::Partitioner::set_interface_node_processor_ids_petscpartitioner(), libMesh::Partitioner::set_node_processor_ids(), libMesh::DofMap::set_nonlocal_dof_objects(), libMesh::Partitioner::set_parent_processor_ids(), libMesh::PetscDMWrapper::set_point_range_in_section(), libMesh::PetscDiffSolver::setup_petsc_data(), side_distribute_bfs(), side_gather_bfs(), libMesh::RBEIMConstruction::side_inner_product(), libMesh::Partitioner::single_partition(), libMesh::LaplaceMeshSmoother::smooth(), libMesh::VariationalMeshSmoother::smooth(), libMesh::ClawSystem::solve_conservation_law(), libMesh::split_mesh(), libMesh::RBEIMConstruction::store_eim_solutions_for_training_set(), libMesh::MeshBase::subdomain_ids(), libMesh::BoundaryInfo::sync(), ConstraintOperatorTest::test1DCoarseningNewNodes(), ConstraintOperatorTest::test1DCoarseningOperator(), libMesh::MeshRefinement::test_level_one(), MeshfunctionDFEM::test_mesh_function_dfem(), MeshfunctionDFEM::test_mesh_function_dfem_grad(), MeshFunctionTest::test_p_level(), libMesh::MeshRefinement::test_unflagged(), DofMapTest::testBadElemFECombo(), SystemsTest::testBlockRestrictedVarNDofs(), BoundaryInfoTest::testBoundaryOnChildrenErrors(), VolumeTest::testC0PolygonMethods(), VolumeTest::testC0PolyhedronMethods(), ConstraintOperatorTest::testCoreform(), ConnectedComponentsTest::testEdge(), MeshInputTest::testExodusIGASidesets(), MeshTriangulationTest::testFoundCenters(), PointLocatorTest::testLocator(), BoundaryInfoTest::testMesh(), PointLocatorTest::testPlanar(), MeshTriangulationTest::testPoly2TriRefinementBase(), SystemsTest::testProjectCubeWithMeshFunction(), BoundaryInfoTest::testRenumber(), CheckpointIOTest::testSplitter(), MeshInputTest::testTetgenIO(), MeshTriangulationTest::testTriangulatorInterp(), MeshTriangulationTest::testTriangulatorMeshedHoles(), MeshTriangulationTest::testTriangulatorRoundHole(), libMesh::MeshTools::total_weight(), libMesh::RBConstruction::train_reduced_basis_with_POD(), libMesh::MeshFunctionSolutionTransfer::transfer(), libMesh::MeshfreeSolutionTransfer::transfer(), libMesh::Poly2TriTriangulator::triangulate(), libMesh::TransientRBConstruction::truth_assembly(), libMesh::RBConstruction::truth_assembly(), libMesh::MeshRefinement::uniformly_coarsen(), update_current_local_solution(), libMesh::TransientRBConstruction::update_RB_initial_condition_all_N(), libMesh::TransientRBConstruction::update_RB_system_matrices(), libMesh::RBConstruction::update_RB_system_matrices(), libMesh::TransientRBConstruction::update_residual_terms(), libMesh::RBConstruction::update_residual_terms(), libMesh::MeshTools::volume(), libMesh::STLIO::write(), libMesh::NameBasedIO::write(), libMesh::XdrIO::write(), libMesh::VTKIO::write_nodal_data(), write_out_interior_basis_functions(), write_out_node_basis_functions(), write_out_side_basis_functions(), libMesh::RBEvaluation::write_out_vectors(), libMesh::TransientRBConstruction::write_riesz_representors_to_files(), libMesh::RBConstruction::write_riesz_representors_to_files(), libMesh::System::write_SCALAR_dofs(), libMesh::XdrIO::write_serialized_bcs_helper(), libMesh::System::write_serialized_blocked_dof_objects(), libMesh::XdrIO::write_serialized_connectivity(), libMesh::XdrIO::write_serialized_nodes(), libMesh::XdrIO::write_serialized_nodesets(), libMesh::RBDataSerialization::RBEvaluationSerialization::write_to_file(), libMesh::RBDataSerialization::TransientRBEvaluationSerialization::write_to_file(), libMesh::RBDataSerialization::RBEIMEvaluationSerialization::write_to_file(), and libMesh::RBDataSerialization::RBSCMEvaluationSerialization::write_to_file().
void RBEIMEvaluation::decrement_vector | ( | QpDataMap & | v, |
const DenseVector< Number > & | coeffs | ||
) |
Subtract coeffs[i]*basis_function[i] from v
.
Definition at line 340 of file rb_eim_evaluation.C.
References _local_eim_basis_functions, get_n_basis_functions(), libMesh::index_range(), and libMesh::DenseVector< T >::size().
Referenced by libMesh::RBEIMConstruction::compute_max_eim_error(), and libMesh::RBEIMConstruction::enrich_eim_approximation_on_interiors().
|
staticinherited |
Definition at line 100 of file reference_counter.C.
References libMesh::ReferenceCounter::_enable_print_counter.
|
private |
Helper function that distributes the entries of _local_eim_basis_functions to their respective processors after they are read in on processor 0.
Definition at line 2297 of file rb_eim_evaluation.C.
References _local_eim_basis_functions, TIMPI::Communicator::broadcast(), clear(), libMesh::ParallelObject::comm(), TIMPI::Communicator::gather(), libMesh::System::get_mesh(), libMesh::index_range(), libMesh::make_range(), mesh, n_vars, TIMPI::Communicator::rank(), TIMPI::Communicator::scatter(), and TIMPI::Communicator::size().
Referenced by read_in_interior_basis_functions().
|
staticinherited |
Methods to enable/disable the reference counter output from print_info()
Definition at line 94 of file reference_counter.C.
References libMesh::ReferenceCounter::_enable_print_counter.
|
private |
Helper function that gathers the contents of _local_eim_basis_functions to processor 0 in preparation for printing to file.
Definition at line 1878 of file rb_eim_evaluation.C.
References _local_eim_basis_functions, libMesh::ParallelObject::comm(), TIMPI::Communicator::gather(), libMesh::index_range(), libMesh::libmesh_assert(), TIMPI::Communicator::max(), libMesh::ParallelObject::n_processors(), n_vars, and libMesh::ParallelObject::processor_id().
Referenced by get_interior_basis_functions_as_vecs(), and write_out_interior_basis_functions().
const RBEIMEvaluation::QpDataMap & RBEIMEvaluation::get_basis_function | ( | unsigned int | i | ) | const |
Get a reference to the i^th basis function.
Definition at line 650 of file rb_eim_evaluation.C.
References _local_eim_basis_functions.
Referenced by libMesh::RBEIMConstruction::update_eim_matrices().
|
staticinherited |
value
from list_of_values
. Definition at line 446 of file rb_parametrized.C.
References distance(), libMesh::Real, and value.
Referenced by libMesh::RBParametrized::is_value_in_list().
|
inherited |
Get a const reference to the discrete parameter values.
Definition at line 373 of file rb_parametrized.C.
References libMesh::RBParametrized::_discrete_parameter_values, and libMesh::RBParametrized::parameters_initialized.
Referenced by libMesh::RBDataSerialization::add_parameter_ranges_to_builder(), libMesh::RBParametrized::check_if_valid_params(), libMesh::RBParametrized::get_n_discrete_params(), libMesh::RBParametrized::initialize_parameters(), libMesh::RBParametrized::print_discrete_parameter_values(), and libMesh::RBParametrized::write_discrete_parameter_values_to_file().
Number RBEIMEvaluation::get_eim_basis_function_node_local_value | ( | unsigned int | basis_function_index, |
dof_id_type | node_id, | ||
unsigned int | var | ||
) | const |
Same as get_eim_basis_function_values_at_qps() except for node data.
Note that this does not do any parallel communication, it just looks up the value from _local_node_eim_basis_functions.
Definition at line 588 of file rb_eim_evaluation.C.
References _local_node_eim_basis_functions, and get_parametrized_function_node_local_value().
Referenced by libMesh::RBEIMAssembly::evaluate_node_basis_function().
Number RBEIMEvaluation::get_eim_basis_function_node_value | ( | unsigned int | basis_function_index, |
dof_id_type | node_id, | ||
unsigned int | var | ||
) | const |
Same as get_eim_basis_function_value() except for node data.
Note that unlike get_eim_basis_function_node_local_value(), this does do parallel communication so that it can be called on any processor regardless of whether node_id
is local or not.
Definition at line 601 of file rb_eim_evaluation.C.
References _local_node_eim_basis_functions, libMesh::ParallelObject::comm(), and get_parametrized_function_node_value().
Referenced by libMesh::RBEIMConstruction::update_eim_matrices().
Number RBEIMEvaluation::get_eim_basis_function_side_value | ( | unsigned int | basis_function_index, |
dof_id_type | elem_id, | ||
unsigned int | side_index, | ||
unsigned int | comp, | ||
unsigned int | qp | ||
) | const |
Same as get_eim_basis_function_value() except for side data.
Definition at line 631 of file rb_eim_evaluation.C.
References _local_side_eim_basis_functions, libMesh::ParallelObject::comm(), and get_parametrized_function_side_value().
Referenced by libMesh::RBEIMConstruction::update_eim_matrices().
void RBEIMEvaluation::get_eim_basis_function_side_values_at_qps | ( | unsigned int | basis_function_index, |
dof_id_type | elem_id, | ||
unsigned int | side_index, | ||
unsigned int | var, | ||
std::vector< Number > & | values | ||
) | const |
Same as get_eim_basis_function_values_at_qps() except for side data.
Definition at line 571 of file rb_eim_evaluation.C.
References _local_side_eim_basis_functions, and get_parametrized_function_side_values_at_qps().
Referenced by libMesh::RBEIMAssembly::evaluate_side_basis_function().
Number RBEIMEvaluation::get_eim_basis_function_value | ( | unsigned int | basis_function_index, |
dof_id_type | elem_id, | ||
unsigned int | comp, | ||
unsigned int | qp | ||
) | const |
Same as above, except that we just return the value at the qp^th quadrature point.
Definition at line 615 of file rb_eim_evaluation.C.
References _local_eim_basis_functions, libMesh::ParallelObject::comm(), and get_parametrized_function_value().
Referenced by libMesh::RBEIMConstruction::update_eim_matrices().
void RBEIMEvaluation::get_eim_basis_function_values_at_qps | ( | unsigned int | basis_function_index, |
dof_id_type | elem_id, | ||
unsigned int | var, | ||
std::vector< Number > & | values | ||
) | const |
Fill up values
with the basis function values for basis function basis_function_index
and variable var
, at all quadrature points on element elem_id
.
Each processor stores data for only the elements local to that processor, so if elem_id is not on this processor then values
will be empty.
Definition at line 556 of file rb_eim_evaluation.C.
References _local_eim_basis_functions, and get_parametrized_function_values_at_qps().
Referenced by libMesh::RBEIMAssembly::evaluate_basis_function().
std::pair< Real, Real > RBEIMEvaluation::get_eim_error_indicator | ( | Number | error_indicator_rhs, |
const DenseVector< Number > & | eim_solution, | ||
const DenseVector< Number > & | eim_rhs | ||
) |
Evaluates the EIM error indicator based on error_indicator_rhs
, eim_solution
, and _error_indicator_interpolation_row.
We also pass in eim_rhs
since this is used to normalize the error indicator.
We return a pair that specifies the relative error indicator, and the normalization that was used to compute the relative error indicator. We can then recover the absolute error indicator via rel. indicator x normalization.
Definition at line 3053 of file rb_eim_evaluation.C.
References _error_indicator_interpolation_row, libMesh::DenseVector< T >::dot(), eim_error_indicator_normalization, libMesh::DenseVector< T >::get_principal_subvector(), limit_eim_error_indicator_to_one, libMesh::DenseVector< T >::linfty_norm(), MAX_RHS, std::real(), libMesh::Real, RESIDUAL_RHS, RESIDUAL_SUM, and libMesh::DenseVector< T >::size().
Referenced by rb_eim_solves().
const std::vector< DenseVector< Number > > & RBEIMEvaluation::get_eim_solutions_for_training_set | ( | ) | const |
Return a const reference to the EIM solutions for the parameters in the training set.
Definition at line 693 of file rb_eim_evaluation.C.
References _eim_solutions_for_training_set.
Referenced by libMesh::RBDataSerialization::add_rb_eim_evaluation_data_to_builder(), libMesh::RBDataDeserialization::load_rb_eim_evaluation_data(), and libMesh::RBEIMConstruction::store_eim_solutions_for_training_set().
std::vector< DenseVector< Number > > & RBEIMEvaluation::get_eim_solutions_for_training_set | ( | ) |
Return a writeable reference to the EIM solutions for the parameters in the training set.
Definition at line 698 of file rb_eim_evaluation.C.
References _eim_solutions_for_training_set.
std::vector< std::unique_ptr< RBTheta > > & RBEIMEvaluation::get_eim_theta_objects | ( | ) |
Definition at line 424 of file rb_eim_evaluation.C.
References _rb_eim_theta_objects.
const std::vector< EIMVarGroupPlottingInfo > & RBEIMEvaluation::get_eim_vars_to_project_and_write | ( | ) | const |
Get _eim_vars_to_project_and_write.
Definition at line 3025 of file rb_eim_evaluation.C.
References _eim_vars_to_project_and_write.
Definition at line 914 of file rb_eim_evaluation.C.
References _vec_eval_input, and libMesh::VectorizedEvalInput::dxyzdeta_elem_center.
Referenced by libMesh::RBDataSerialization::add_rb_eim_evaluation_data_to_builder().
Definition at line 907 of file rb_eim_evaluation.C.
References _vec_eval_input, and libMesh::VectorizedEvalInput::dxyzdxi_elem_center.
Referenced by libMesh::RBDataSerialization::add_rb_eim_evaluation_data_to_builder().
const std::map< dof_id_type, unsigned int > & RBEIMEvaluation::get_elem_id_to_local_index_map | ( | ) | const |
Definition at line 883 of file rb_eim_evaluation.C.
References _vec_eval_input, and libMesh::VectorizedEvalInput::elem_id_to_local_index.
Referenced by libMesh::RBDataSerialization::add_rb_eim_evaluation_data_to_builder().
const DenseVector< Number > & RBEIMEvaluation::get_error_indicator_interpolation_row | ( | ) | const |
Get/set _extra_points_interpolation_matrix.
Definition at line 3131 of file rb_eim_evaluation.C.
References _error_indicator_interpolation_row.
Referenced by libMesh::RBDataSerialization::add_rb_eim_evaluation_data_to_builder().
|
staticinherited |
Gets a string containing the reference information.
Definition at line 47 of file reference_counter.C.
References libMesh::ReferenceCounter::_counts, and libMesh::Quality::name().
Referenced by libMesh::ReferenceCounter::print_info().
|
private |
Helper function called by write_out_interior_basis_functions() to get basis function bf_index
stored as a std::vector per variable.
Definition at line 1236 of file rb_eim_evaluation.C.
References _local_eim_basis_functions, libMesh::index_range(), and n_vars.
Referenced by get_interior_basis_functions_as_vecs(), and write_out_interior_basis_functions().
std::map< std::string, std::size_t > RBEIMEvaluation::get_interior_basis_function_sizes | ( | std::vector< unsigned int > & | n_qp_per_elem | ) |
Get data that defines the sizes of interior EIM basis functions.
Definition at line 1182 of file rb_eim_evaluation.C.
References _local_eim_basis_functions, libMesh::MeshTools::n_elem(), and n_vars.
Referenced by get_interior_basis_functions_as_vecs(), and write_out_interior_basis_functions().
std::vector< std::vector< std::vector< Number > > > RBEIMEvaluation::get_interior_basis_functions_as_vecs | ( | ) |
Get all interior basis functions in the form of std::vectors.
This can provide a convenient format for processing the basis function data, or writing it to disk.
Indexing is as follows: basis function index –> variable index –> data at qps per elems
In parallel we gather basis functions to processor 0 and hence we only return non-empty data on processor 0.
Definition at line 1273 of file rb_eim_evaluation.C.
References _local_eim_basis_functions, libMesh::ParallelObject::comm(), gather_bfs(), get_interior_basis_function_as_vec_helper(), get_interior_basis_function_sizes(), libMesh::index_range(), libMesh::libmesh_assert(), and libMesh::ParallelObject::processor_id().
const DenseMatrix< Number > & RBEIMEvaluation::get_interpolation_matrix | ( | ) | const |
Get the EIM interpolation matrix.
Definition at line 948 of file rb_eim_evaluation.C.
References _interpolation_matrix.
Referenced by libMesh::RBDataSerialization::add_rb_eim_evaluation_data_to_builder().
boundary_id_type RBEIMEvaluation::get_interpolation_points_boundary_id | ( | unsigned int | index | ) | const |
Definition at line 827 of file rb_eim_evaluation.C.
References _vec_eval_input, and libMesh::VectorizedEvalInput::boundary_ids.
Referenced by libMesh::RBDataSerialization::add_rb_eim_evaluation_data_to_builder().
Definition at line 813 of file rb_eim_evaluation.C.
References _interpolation_points_comp.
Referenced by libMesh::RBDataSerialization::add_rb_eim_evaluation_data_to_builder(), libMesh::RBEIMConstruction::enrich_eim_approximation_on_interiors(), libMesh::RBEIMConstruction::enrich_eim_approximation_on_nodes(), libMesh::RBEIMConstruction::enrich_eim_approximation_on_sides(), libMesh::RBEIMConstruction::store_eim_solutions_for_training_set(), and libMesh::RBEIMConstruction::update_eim_matrices().
dof_id_type RBEIMEvaluation::get_interpolation_points_elem_id | ( | unsigned int | index | ) | const |
Definition at line 841 of file rb_eim_evaluation.C.
References _vec_eval_input, and libMesh::VectorizedEvalInput::elem_ids.
Referenced by libMesh::RBDataSerialization::add_rb_eim_evaluation_data_to_builder(), libMesh::RBEIMConstruction::enrich_eim_approximation_on_interiors(), libMesh::RBEIMConstruction::enrich_eim_approximation_on_sides(), libMesh::RBEIMConstruction::store_eim_solutions_for_training_set(), and libMesh::RBEIMConstruction::update_eim_matrices().
Definition at line 869 of file rb_eim_evaluation.C.
References _vec_eval_input, and libMesh::VectorizedEvalInput::elem_types.
Referenced by libMesh::RBDataSerialization::add_rb_eim_evaluation_data_to_builder().
const std::vector< Real > & RBEIMEvaluation::get_interpolation_points_JxW_all_qp | ( | unsigned int | index | ) | const |
Definition at line 876 of file rb_eim_evaluation.C.
References _vec_eval_input, and libMesh::VectorizedEvalInput::JxW_all_qp.
Referenced by libMesh::RBDataSerialization::add_rb_eim_evaluation_data_to_builder().
dof_id_type RBEIMEvaluation::get_interpolation_points_node_id | ( | unsigned int | index | ) | const |
Definition at line 855 of file rb_eim_evaluation.C.
References _vec_eval_input, and libMesh::VectorizedEvalInput::node_ids.
Referenced by libMesh::RBDataSerialization::add_rb_eim_evaluation_data_to_builder(), libMesh::RBEIMConstruction::enrich_eim_approximation_on_nodes(), libMesh::RBEIMConstruction::store_eim_solutions_for_training_set(), and libMesh::RBEIMConstruction::update_eim_matrices().
const std::vector< std::vector< Real > > & RBEIMEvaluation::get_interpolation_points_phi_i_all_qp | ( | unsigned int | index | ) | const |
Definition at line 893 of file rb_eim_evaluation.C.
References _vec_eval_input, and libMesh::VectorizedEvalInput::phi_i_all_qp.
Referenced by libMesh::RBDataSerialization::add_rb_eim_evaluation_data_to_builder().
const std::vector< Real > & RBEIMEvaluation::get_interpolation_points_phi_i_qp | ( | unsigned int | index | ) | const |
Definition at line 900 of file rb_eim_evaluation.C.
References _vec_eval_input, and libMesh::VectorizedEvalInput::phi_i_qp.
Referenced by libMesh::RBDataSerialization::add_rb_eim_evaluation_data_to_builder().
Definition at line 862 of file rb_eim_evaluation.C.
References _vec_eval_input, and libMesh::VectorizedEvalInput::qps.
Referenced by libMesh::RBDataSerialization::add_rb_eim_evaluation_data_to_builder(), libMesh::RBEIMConstruction::enrich_eim_approximation_on_interiors(), libMesh::RBEIMConstruction::enrich_eim_approximation_on_sides(), libMesh::RBEIMConstruction::store_eim_solutions_for_training_set(), and libMesh::RBEIMConstruction::update_eim_matrices().
Definition at line 921 of file rb_eim_evaluation.C.
References _vec_eval_input, and libMesh::VectorizedEvalInput::qrule_orders.
Referenced by libMesh::RBDataSerialization::add_rb_eim_evaluation_data_to_builder().
Definition at line 848 of file rb_eim_evaluation.C.
References _vec_eval_input, and libMesh::VectorizedEvalInput::side_indices.
Referenced by libMesh::RBDataSerialization::add_rb_eim_evaluation_data_to_builder(), libMesh::RBEIMConstruction::enrich_eim_approximation_on_sides(), libMesh::RBEIMConstruction::store_eim_solutions_for_training_set(), and libMesh::RBEIMConstruction::update_eim_matrices().
const std::vector< unsigned int > & RBEIMEvaluation::get_interpolation_points_spatial_indices | ( | unsigned int | index | ) | const |
Definition at line 928 of file rb_eim_evaluation.C.
References _interpolation_points_spatial_indices.
Referenced by libMesh::RBDataSerialization::add_rb_eim_evaluation_data_to_builder().
subdomain_id_type RBEIMEvaluation::get_interpolation_points_subdomain_id | ( | unsigned int | index | ) | const |
Definition at line 820 of file rb_eim_evaluation.C.
References _vec_eval_input, and libMesh::VectorizedEvalInput::sbd_ids.
Referenced by libMesh::RBDataSerialization::add_rb_eim_evaluation_data_to_builder().
Get the data associated with EIM interpolation points.
Definition at line 806 of file rb_eim_evaluation.C.
References _vec_eval_input, and libMesh::VectorizedEvalInput::all_xyz.
Referenced by libMesh::RBDataSerialization::add_rb_eim_evaluation_data_to_builder().
const std::vector< Point > & RBEIMEvaluation::get_interpolation_points_xyz_perturbations | ( | unsigned int | index | ) | const |
Definition at line 834 of file rb_eim_evaluation.C.
References _vec_eval_input, and libMesh::VectorizedEvalInput::all_xyz_perturb.
Referenced by libMesh::RBDataSerialization::add_rb_eim_evaluation_data_to_builder().
unsigned int RBEIMEvaluation::get_n_basis_functions | ( | ) | const |
Return the current number of EIM basis functions.
Definition at line 305 of file rb_eim_evaluation.C.
References _local_eim_basis_functions, _local_node_eim_basis_functions, _local_side_eim_basis_functions, and get_parametrized_function().
Referenced by libMesh::RBDataSerialization::add_rb_eim_evaluation_data_to_builder(), libMesh::RBEIMConstruction::compute_max_eim_error(), decrement_vector(), libMesh::RBEIMConstruction::enrich_eim_approximation_on_interiors(), libMesh::RBEIMConstruction::enrich_eim_approximation_on_nodes(), libMesh::RBEIMConstruction::enrich_eim_approximation_on_sides(), libMesh::RBEIMTheta::evaluate_vec(), initialize_eim_theta_objects(), node_decrement_vector(), rb_eim_solve(), rb_eim_solves(), read_in_basis_functions(), set_eim_error_indicator_active(), side_decrement_vector(), libMesh::RBEIMConstruction::store_eim_solutions_for_training_set(), libMesh::RBEIMConstruction::train_eim_approximation_with_greedy(), libMesh::RBEIMConstruction::train_eim_approximation_with_POD(), and libMesh::RBEIMConstruction::update_eim_matrices().
|
inherited |
Get the number of continuous parameters.
Definition at line 112 of file rb_parametrized.C.
References libMesh::RBParametrized::get_n_discrete_params(), libMesh::RBParametrized::get_n_params(), libMesh::libmesh_assert(), and libMesh::RBParametrized::parameters_initialized.
Referenced by libMesh::RBDataSerialization::add_parameter_ranges_to_builder(), and libMesh::RBParametrized::write_parameter_ranges_to_file().
|
inherited |
Get the number of discrete parameters.
Definition at line 121 of file rb_parametrized.C.
References libMesh::RBParametrized::get_discrete_parameter_values(), and libMesh::RBParametrized::parameters_initialized.
Referenced by libMesh::RBDataSerialization::add_parameter_ranges_to_builder(), libMesh::RBParametrized::get_n_continuous_params(), and libMesh::RBParametrized::write_discrete_parameter_values_to_file().
unsigned int RBEIMEvaluation::get_n_elems | ( | ) | const |
Return the number of unique elements containing interpolation points.
Definition at line 320 of file rb_eim_evaluation.C.
References _vec_eval_input, and libMesh::VectorizedEvalInput::elem_id_to_local_index.
Referenced by libMesh::RBDataSerialization::add_rb_eim_evaluation_data_to_builder().
unsigned int RBEIMEvaluation::get_n_interpolation_points | ( | ) | const |
Return the number of interpolation points.
If we're not using the EIM error indicator, then this matches get_n_basis_functions(), but if we are using the EIM error indicator then we should have one extra interpolation point.
Definition at line 315 of file rb_eim_evaluation.C.
References _vec_eval_input, and libMesh::VectorizedEvalInput::all_xyz.
Referenced by libMesh::RBDataSerialization::add_rb_eim_evaluation_data_to_builder(), and set_eim_error_indicator_active().
unsigned int RBEIMEvaluation::get_n_interpolation_points_spatial_indices | ( | ) | const |
_interpolation_points_spatial_indices is optional data, so we need to be able to check how many _interpolation_points_spatial_indices values have actually been set since it may not match the number of interpolation points.
Definition at line 935 of file rb_eim_evaluation.C.
References _interpolation_points_spatial_indices.
Referenced by libMesh::RBDataSerialization::add_rb_eim_evaluation_data_to_builder().
|
inherited |
Get the number of parameters.
Definition at line 103 of file rb_parametrized.C.
References libMesh::RBParameters::n_parameters(), libMesh::RBParametrized::parameters_initialized, libMesh::RBParametrized::parameters_max, and libMesh::RBParametrized::parameters_min.
Referenced by libMesh::RBParametrized::check_if_valid_params(), libMesh::RBEIMConstruction::compute_max_eim_error(), libMesh::RBConstruction::compute_max_error_bound(), libMesh::RBParametrized::get_n_continuous_params(), libMesh::RBSCMConstruction::print_info(), libMesh::RBEIMConstruction::print_info(), libMesh::RBConstruction::print_info(), set_eim_error_indicator_active(), and libMesh::RBConstruction::train_reduced_basis_with_POD().
unsigned int RBEIMEvaluation::get_n_properties | ( | ) | const |
Return the number of properties stored in the rb_property_map.
Definition at line 325 of file rb_eim_evaluation.C.
References _vec_eval_input, and libMesh::VectorizedEvalInput::rb_property_map.
Referenced by libMesh::RBDataSerialization::add_rb_eim_evaluation_data_to_builder().
const RBEIMEvaluation::NodeDataMap & RBEIMEvaluation::get_node_basis_function | ( | unsigned int | i | ) | const |
Get a reference to the i^th node basis function.
Definition at line 662 of file rb_eim_evaluation.C.
References _local_node_eim_basis_functions.
Referenced by libMesh::RBEIMConstruction::update_eim_matrices().
|
inherited |
Get maximum allowable value of parameter param_name
.
Definition at line 185 of file rb_parametrized.C.
References libMesh::RBParameters::get_value(), libMesh::RBParametrized::parameters_initialized, and libMesh::RBParametrized::parameters_max.
Referenced by libMesh::RBParametrized::check_if_valid_params(), libMesh::RBSCMConstruction::print_info(), libMesh::RBEIMConstruction::print_info(), and libMesh::RBConstruction::print_info().
|
inherited |
Get minimum allowable value of parameter param_name
.
Definition at line 178 of file rb_parametrized.C.
References libMesh::RBParameters::get_value(), libMesh::RBParametrized::parameters_initialized, and libMesh::RBParametrized::parameters_min.
Referenced by libMesh::RBParametrized::check_if_valid_params(), libMesh::RBSCMConstruction::print_info(), libMesh::RBEIMConstruction::print_info(), and libMesh::RBConstruction::print_info().
|
inherited |
Get a set that stores the parameter names.
Definition at line 130 of file rb_parametrized.C.
References libMesh::RBParametrized::parameters_initialized, and libMesh::RBParametrized::parameters_min.
|
inherited |
Get the current parameters.
Definition at line 157 of file rb_parametrized.C.
References libMesh::RBParametrized::parameters, and libMesh::RBParametrized::parameters_initialized.
Referenced by libMesh::TransientRBConstruction::add_scaled_mass_matrix(), libMesh::TransientRBEvaluation::cache_online_residual_terms(), libMesh::RBEvaluation::compute_residual_dual_norm(), libMesh::RBSCMConstruction::compute_SCM_bounds_on_training_set(), libMesh::RBSCMConstruction::enrich_C_J(), libMesh::RBEIMConstruction::enrich_eim_approximation_on_interiors(), libMesh::RBEIMConstruction::enrich_eim_approximation_on_nodes(), libMesh::RBEIMConstruction::enrich_eim_approximation_on_sides(), libMesh::RBEvaluation::eval_output_dual_norm(), libMesh::RBSCMConstruction::evaluate_stability_constant(), libMesh::RBConstruction::get_RB_error_bound(), libMesh::RBSCMEvaluation::get_SCM_LB(), libMesh::RBSCMEvaluation::get_SCM_UB(), SimpleRBEvaluation::get_stability_lower_bound(), libMesh::RBConstruction::greedy_termination_test(), libMesh::RBEIMConstruction::initialize_parametrized_functions_in_training_set(), libMesh::RBSCMEvaluation::legacy_read_offline_data_from_files(), libMesh::TransientRBConstruction::mass_matrix_scaled_matvec(), libMesh::RBConstruction::preevaluate_thetas(), libMesh::RBSCMConstruction::print_info(), libMesh::RBEIMConstruction::print_info(), libMesh::RBConstruction::print_info(), libMesh::RBParametrized::print_parameters(), libMesh::RBSCMConstruction::process_parameters_file(), libMesh::TransientRBEvaluation::rb_solve(), libMesh::RBEvaluation::rb_solve(), libMesh::RBSCMEvaluation::save_current_parameters(), libMesh::RBEIMConstruction::train_eim_approximation_with_greedy(), libMesh::RBEIMConstruction::train_eim_approximation_with_POD(), libMesh::TransientRBConstruction::truth_assembly(), libMesh::RBConstruction::truth_assembly(), libMesh::TransientRBConstruction::truth_solve(), libMesh::RBConstruction::truth_solve(), libMesh::TransientRBEvaluation::uncached_compute_residual_dual_norm(), and libMesh::RBConstruction::update_greedy_param_list().
|
inherited |
Get an RBParameters object that specifies the maximum allowable value for each parameter.
Definition at line 171 of file rb_parametrized.C.
References libMesh::RBParametrized::parameters_initialized, and libMesh::RBParametrized::parameters_max.
Referenced by libMesh::RBDataSerialization::add_parameter_ranges_to_builder(), libMesh::RBParametrized::initialize_parameters(), libMesh::RBSCMConstruction::process_parameters_file(), libMesh::RBEIMConstruction::set_rb_construction_parameters(), libMesh::RBConstruction::set_rb_construction_parameters(), and libMesh::RBParametrized::write_parameter_ranges_to_file().
|
inherited |
Get an RBParameters object that specifies the minimum allowable value for each parameter.
Definition at line 164 of file rb_parametrized.C.
References libMesh::RBParametrized::parameters_initialized, and libMesh::RBParametrized::parameters_min.
Referenced by libMesh::RBDataSerialization::add_parameter_ranges_to_builder(), libMesh::RBParametrized::initialize_parameters(), libMesh::RBSCMConstruction::process_parameters_file(), libMesh::RBEIMConstruction::set_rb_construction_parameters(), libMesh::RBConstruction::set_rb_construction_parameters(), and libMesh::RBParametrized::write_parameter_ranges_to_file().
RBParametrizedFunction & RBEIMEvaluation::get_parametrized_function | ( | ) |
Get a reference to the parametrized function.
Definition at line 92 of file rb_eim_evaluation.C.
References _parametrized_function.
Referenced by add_interpolation_data(), libMesh::RBDataSerialization::add_rb_eim_evaluation_data_to_builder(), libMesh::RBEIMConstruction::apply_normalization_to_solution_snapshots(), libMesh::RBEIMConstruction::enrich_eim_approximation(), libMesh::RBEIMConstruction::enrich_eim_approximation_on_interiors(), get_n_basis_functions(), libMesh::RBEIMConstruction::get_random_point_from_training_sample(), initialize_interpolation_points_spatial_indices(), initialize_param_fn_spatial_indices(), libMesh::RBEIMConstruction::initialize_parametrized_functions_in_training_set(), libMesh::RBEIMConstruction::initialize_qp_data(), initialize_rb_property_map(), libMesh::RBDataDeserialization::load_rb_eim_evaluation_data(), node_distribute_bfs(), rb_eim_solves(), read_in_basis_functions(), set_n_basis_functions(), libMesh::RBEIMConstruction::set_rb_construction_parameters(), side_distribute_bfs(), libMesh::RBEIMConstruction::store_eim_solutions_for_training_set(), libMesh::RBEIMConstruction::train_eim_approximation_with_greedy(), libMesh::RBEIMConstruction::train_eim_approximation_with_POD(), libMesh::RBEIMConstruction::update_eim_matrices(), and write_out_basis_functions().
const RBParametrizedFunction & RBEIMEvaluation::get_parametrized_function | ( | ) | const |
Get a const reference to the parametrized function.
Definition at line 99 of file rb_eim_evaluation.C.
References _parametrized_function.
|
static |
Same as get_parametrized_function_values_at_qps() except for node data.
Note that this does not do any parallel communication, so it is only applicable to looking up local values.
Definition at line 477 of file rb_eim_evaluation.C.
Referenced by get_eim_basis_function_node_local_value(), and get_parametrized_function_node_value().
|
static |
Same as get_parametrized_function_value() except for node data.
Unlike get_parametrized_function_node_local_value(), this does parallel communication, and therefore if can be used to look up values regardless of whether or not node_id
is local.
Definition at line 542 of file rb_eim_evaluation.C.
References libMesh::ParallelObject::comm(), get_parametrized_function_node_local_value(), TIMPI::Communicator::sum(), and value.
Referenced by libMesh::RBEIMConstruction::enrich_eim_approximation_on_nodes(), get_eim_basis_function_node_value(), and libMesh::RBEIMConstruction::store_eim_solutions_for_training_set().
|
static |
Same as get_parametrized_function_value() except for side data.
Definition at line 518 of file rb_eim_evaluation.C.
References libMesh::ParallelObject::comm(), get_parametrized_function_side_values_at_qps(), TIMPI::Communicator::sum(), and value.
Referenced by libMesh::RBEIMConstruction::enrich_eim_approximation_on_sides(), get_eim_basis_function_side_value(), and libMesh::RBEIMConstruction::store_eim_solutions_for_training_set().
|
static |
Same as get_parametrized_function_values_at_qps() except for side data.
Definition at line 455 of file rb_eim_evaluation.C.
Referenced by get_eim_basis_function_side_values_at_qps(), and get_parametrized_function_side_value().
|
static |
Same as above, except that we just return the value at the qp^th quadrature point.
Definition at line 495 of file rb_eim_evaluation.C.
References libMesh::ParallelObject::comm(), get_parametrized_function_values_at_qps(), TIMPI::Communicator::sum(), and value.
Referenced by libMesh::RBEIMConstruction::enrich_eim_approximation_on_interiors(), get_eim_basis_function_value(), and libMesh::RBEIMConstruction::store_eim_solutions_for_training_set().
|
static |
Fill up values by evaluating the parametrized function pf
for all quadrature points on element elem_id
and component comp
.
Definition at line 434 of file rb_eim_evaluation.C.
Referenced by get_eim_basis_function_values_at_qps(), and get_parametrized_function_value().
bool RBEIMEvaluation::get_preserve_rb_eim_solutions | ( | ) | const |
Get _preserve_rb_eim_solutions.
Definition at line 958 of file rb_eim_evaluation.C.
References _preserve_rb_eim_solutions.
const std::vector< std::pair< Real, Real > > & RBEIMEvaluation::get_rb_eim_error_indicators | ( | ) | const |
Return the EIM error indicator values from the most recent call to rb_eim_solves().
The first entry of each pair is the normalized error indicator, and the second entry is the normalization factor.
Definition at line 703 of file rb_eim_evaluation.C.
References _rb_eim_error_indicators.
const std::vector< DenseVector< Number > > & RBEIMEvaluation::get_rb_eim_solutions | ( | ) | const |
Return the EIM solution coefficients from the most recent call to rb_eim_solves().
Definition at line 672 of file rb_eim_evaluation.C.
References _rb_eim_solutions.
Referenced by libMesh::RBEIMConstruction::compute_max_eim_error().
Return entry index
for each solution in _rb_eim_solutions.
Definition at line 677 of file rb_eim_evaluation.C.
References _rb_eim_solutions, and libMesh::index_range().
Referenced by libMesh::RBEIMTheta::evaluate_vec().
const std::unordered_map< std::string, std::set< dof_id_type > > & RBEIMEvaluation::get_rb_property_map | ( | ) | const |
Definition at line 888 of file rb_eim_evaluation.C.
References _vec_eval_input, and libMesh::VectorizedEvalInput::rb_property_map.
Referenced by libMesh::RBDataSerialization::add_rb_eim_evaluation_data_to_builder().
const RBEIMEvaluation::SideQpDataMap & RBEIMEvaluation::get_side_basis_function | ( | unsigned int | i | ) | const |
Get a reference to the i^th side basis function.
Definition at line 656 of file rb_eim_evaluation.C.
References _local_side_eim_basis_functions.
Referenced by libMesh::RBEIMConstruction::update_eim_matrices().
const VectorizedEvalInput & RBEIMEvaluation::get_vec_eval_input | ( | ) | const |
Get the VectorizedEvalInput data.
Definition at line 3117 of file rb_eim_evaluation.C.
References _vec_eval_input.
Referenced by libMesh::RBEIMConstruction::get_random_point().
|
inlineprotectednoexceptinherited |
Increments the construction counter.
Should be called in the constructor of any derived class that will be reference counted.
Definition at line 183 of file reference_counter.h.
References libMesh::err, libMesh::BasicOStreamProxy< charT, traits >::get(), libMesh::Quality::name(), and libMesh::Threads::spin_mtx.
Referenced by libMesh::ReferenceCountedObject< RBParametrized >::ReferenceCountedObject().
|
inlineprotectednoexceptinherited |
Increments the destruction counter.
Should be called in the destructor of any derived class that will be reference counted.
Definition at line 207 of file reference_counter.h.
References libMesh::err, libMesh::BasicOStreamProxy< charT, traits >::get(), libMesh::Quality::name(), and libMesh::Threads::spin_mtx.
Referenced by libMesh::ReferenceCountedObject< RBParametrized >::~ReferenceCountedObject().
void RBEIMEvaluation::initialize_eim_theta_objects | ( | ) |
Build a vector of RBTheta objects that accesses the components of the RB_solution member variable of this RBEvaluation.
Store these objects in the member vector rb_theta_objects.
Definition at line 416 of file rb_eim_evaluation.C.
References _rb_eim_theta_objects, build_eim_theta(), get_n_basis_functions(), and libMesh::make_range().
void RBEIMEvaluation::initialize_interpolation_points_spatial_indices | ( | ) |
Initialize _interpolation_points_spatial_indices.
Once this data is initialized, we can store it in the training data, and read it back in during the Online stage to be used in solves.
Definition at line 291 of file rb_eim_evaluation.C.
References _interpolation_points_spatial_indices, _vec_eval_input, get_parametrized_function(), and libMesh::RBParametrizedFunction::get_spatial_indices().
Referenced by libMesh::RBDataSerialization::add_rb_eim_evaluation_data_to_builder().
void RBEIMEvaluation::initialize_param_fn_spatial_indices | ( | ) |
The Online counterpart of initialize_interpolation_points_spatial_indices().
This is used to initialize the spatial indices data in _parametrized_function so that the _parametrized_function can be used in the Online stage without reconstructing the spatial indices on every element or node in the mesh.
Definition at line 299 of file rb_eim_evaluation.C.
References _interpolation_points_spatial_indices, _vec_eval_input, get_parametrized_function(), and libMesh::RBParametrizedFunction::initialize_spatial_indices().
Referenced by libMesh::RBDataDeserialization::load_rb_eim_evaluation_data().
|
inherited |
Initialize the parameter ranges and set current_parameters.
Parameter ranges are inclusive. The input min/max RBParameters should have exactly 1 sample each. Vector-valued samples are not currently supported for the min/max parameters or for discrete parameters.
Definition at line 53 of file rb_parametrized.C.
References libMesh::RBParametrized::_discrete_parameter_values, libMesh::RBParameters::begin_serialized(), libMesh::RBParameters::end_serialized(), libMesh::RBParameters::n_parameters(), libMesh::RBParameters::n_samples(), libMesh::Quality::name(), libMesh::RBParametrized::parameters_initialized, libMesh::RBParametrized::parameters_max, libMesh::RBParametrized::parameters_min, libMesh::Real, libMesh::RBParametrized::set_parameters(), and libMesh::RBParameters::set_value().
Referenced by libMesh::RBConstruction::enrich_basis_from_rhs_terms(), libMesh::RBParametrized::initialize_parameters(), libMesh::RBDataDeserialization::load_parameter_ranges(), libMesh::RBSCMConstruction::perform_SCM_greedy(), libMesh::RBSCMConstruction::process_parameters_file(), libMesh::RBParametrized::read_parameter_data_from_files(), libMesh::RBEIMConstruction::set_rb_construction_parameters(), libMesh::RBConstruction::set_rb_construction_parameters(), RBParametersTest::testRBParametrized(), libMesh::RBEIMConstruction::train_eim_approximation_with_greedy(), libMesh::RBEIMConstruction::train_eim_approximation_with_POD(), libMesh::RBConstruction::train_reduced_basis_with_greedy(), and libMesh::RBConstruction::train_reduced_basis_with_POD().
|
inherited |
Initialize the parameter ranges and set current_parameters.
Definition at line 96 of file rb_parametrized.C.
References libMesh::RBParametrized::get_discrete_parameter_values(), libMesh::RBParametrized::get_parameters_max(), libMesh::RBParametrized::get_parameters_min(), and libMesh::RBParametrized::initialize_parameters().
void RBEIMEvaluation::initialize_rb_property_map | ( | ) |
Initialize the rb_property_map of RBEIMEvaluation (this) from the rb_property_map stored in RBParametrizedFunction with empty entries but identical keys.
Definition at line 3122 of file rb_eim_evaluation.C.
References _vec_eval_input, get_parametrized_function(), libMesh::RBParametrizedFunction::get_rb_property_map(), and libMesh::VectorizedEvalInput::rb_property_map.
Referenced by libMesh::RBEIMConstruction::initialize_parametrized_functions_in_training_set().
|
inherited |
Is parameter mu_name
discrete?
Definition at line 365 of file rb_parametrized.C.
References libMesh::RBParametrized::_discrete_parameter_values, and libMesh::RBParametrized::parameters_initialized.
Referenced by libMesh::RBDataSerialization::add_parameter_ranges_to_builder(), libMesh::RBEIMConstruction::print_info(), libMesh::RBConstruction::print_info(), and libMesh::RBParametrized::write_parameter_ranges_to_file().
|
inlinestaticinherited |
Prints the number of outstanding (created, but not yet destroyed) objects.
Definition at line 85 of file reference_counter.h.
References libMesh::ReferenceCounter::_n_objects.
Referenced by libMesh::LibMeshInit::~LibMeshInit().
|
inlineinherited |
Definition at line 103 of file parallel_object.h.
References libMesh::ParallelObject::_communicator, libMesh::libmesh_assert(), and TIMPI::Communicator::size().
Referenced by libMesh::Partitioner::_find_global_index_by_pid_map(), libMesh::BoundaryInfo::_find_id_maps(), libMesh::DofMap::add_constraints_to_send_list(), libMesh::PetscDMWrapper::add_dofs_to_section(), libMesh::DistributedMesh::add_elem(), libMesh::DofMap::add_neighbors_to_send_list(), libMesh::DistributedMesh::add_node(), libMesh::System::add_vector(), libMesh::LaplaceMeshSmoother::allgather_graph(), libMesh::DofMap::allgather_recursive_constraints(), libMesh::FEMSystem::assembly(), libMesh::Nemesis_IO::assert_symmetric_cmaps(), libMesh::Partitioner::assign_partitioning(), libMesh::AztecLinearSolver< T >::AztecLinearSolver(), libMesh::Partitioner::build_graph(), libMesh::EquationSystems::build_parallel_elemental_solution_vector(), libMesh::DistributedMesh::clear(), libMesh::DistributedMesh::clear_elems(), libMesh::Nemesis_IO_Helper::compute_border_node_ids(), libMesh::Nemesis_IO_Helper::construct_nemesis_filename(), libMesh::UnstructuredMesh::copy_nodes_and_elements(), libMesh::ExodusII_IO::copy_scalar_solution(), libMesh::Nemesis_IO::copy_scalar_solution(), libMesh::UnstructuredMesh::create_pid_mesh(), libMesh::MeshTools::create_processor_bounding_box(), libMesh::DofMap::distribute_dofs(), libMesh::DofMap::distribute_scalar_dofs(), libMesh::DistributedMesh::DistributedMesh(), libMesh::EnsightIO::EnsightIO(), gather_bfs(), libMesh::MeshBase::get_info(), libMesh::StaticCondensation::init(), libMesh::SystemSubsetBySubdomain::init(), libMesh::PetscDMWrapper::init_petscdm(), libMesh::Nemesis_IO_Helper::initialize(), libMesh::ExodusII_IO_Helper::initialize(), libMesh::DistributedMesh::insert_elem(), libMesh::MeshTools::libmesh_assert_contiguous_dof_ids(), libMesh::MeshTools::libmesh_assert_parallel_consistent_new_node_procids(), libMesh::MeshTools::libmesh_assert_parallel_consistent_procids< Elem >(), libMesh::MeshTools::libmesh_assert_parallel_consistent_procids< Node >(), libMesh::MeshTools::libmesh_assert_topology_consistent_procids< Node >(), libMesh::MeshTools::libmesh_assert_valid_boundary_ids(), libMesh::MeshTools::libmesh_assert_valid_dof_ids(), libMesh::MeshTools::libmesh_assert_valid_neighbors(), libMesh::MeshTools::libmesh_assert_valid_refinement_flags(), libMesh::DofMap::local_variable_indices(), libMesh::MeshRefinement::make_coarsening_compatible(), libMesh::MeshBase::n_active_elem_on_proc(), libMesh::DofMap::n_dofs_per_processor(), libMesh::MeshBase::n_elem_on_proc(), libMesh::MeshBase::n_nodes_on_proc(), node_gather_bfs(), libMesh::Partitioner::partition(), libMesh::MeshBase::partition(), libMesh::Partitioner::partition_unpartitioned_elements(), libMesh::System::point_gradient(), libMesh::System::point_hessian(), libMesh::System::point_value(), libMesh::DofMap::prepare_send_list(), libMesh::MeshBase::print_constraint_rows(), libMesh::DofMap::print_dof_constraints(), libMesh::NameBasedIO::read(), libMesh::Nemesis_IO::read(), libMesh::CheckpointIO::read(), libMesh::CheckpointIO::read_connectivity(), libMesh::XdrIO::read_header(), libMesh::CheckpointIO::read_nodes(), libMesh::System::read_parallel_data(), libMesh::System::read_SCALAR_dofs(), libMesh::System::read_serialized_blocked_dof_objects(), libMesh::System::read_serialized_vector(), libMesh::DistributedMesh::renumber_dof_objects(), libMesh::Partitioner::repartition(), OverlappingFunctorTest::run_partitioner_test(), libMesh::DofMap::scatter_constraints(), libMesh::DistributedMesh::set_next_unique_id(), libMesh::DofMap::set_nonlocal_dof_objects(), libMesh::PetscDMWrapper::set_point_range_in_section(), WriteVecAndScalar::setupTests(), side_gather_bfs(), DistributedMeshTest::testRemoteElemError(), CheckpointIOTest::testSplitter(), libMesh::MeshRefinement::uniformly_coarsen(), libMesh::DistributedMesh::update_parallel_id_counts(), libMesh::GMVIO::write_binary(), libMesh::GMVIO::write_discontinuous_gmv(), libMesh::ExodusII_IO_Helper::write_nodal_coordinates(), libMesh::VTKIO::write_nodal_data(), libMesh::ExodusII_IO::write_nodal_data(), libMesh::System::write_parallel_data(), libMesh::System::write_SCALAR_dofs(), libMesh::XdrIO::write_serialized_bcs_helper(), libMesh::System::write_serialized_blocked_dof_objects(), libMesh::XdrIO::write_serialized_connectivity(), libMesh::XdrIO::write_serialized_nodes(), and libMesh::XdrIO::write_serialized_nodesets().
void RBEIMEvaluation::node_decrement_vector | ( | NodeDataMap & | v, |
const DenseVector< Number > & | coeffs | ||
) |
Same as decrement_vector() except for node data.
Definition at line 392 of file rb_eim_evaluation.C.
References _local_node_eim_basis_functions, get_n_basis_functions(), libMesh::index_range(), and libMesh::DenseVector< T >::size().
Referenced by libMesh::RBEIMConstruction::compute_max_eim_error(), and libMesh::RBEIMConstruction::enrich_eim_approximation_on_nodes().
|
private |
Same as distribute_bfs() except for node data.
Definition at line 2795 of file rb_eim_evaluation.C.
References _local_node_eim_basis_functions, TIMPI::Communicator::broadcast(), clear(), libMesh::ParallelObject::comm(), TIMPI::Communicator::gather(), libMesh::System::get_mesh(), get_parametrized_function(), libMesh::RBParametrizedFunction::get_parametrized_function_boundary_ids(), libMesh::index_range(), libMesh::make_range(), mesh, n_vars, node_boundary_id, libMesh::DofObject::processor_id(), TIMPI::Communicator::rank(), TIMPI::Communicator::scatter(), and TIMPI::Communicator::size().
Referenced by read_in_node_basis_functions().
|
private |
Same as gather_bfs() except for node data.
Definition at line 2174 of file rb_eim_evaluation.C.
References _local_node_eim_basis_functions, libMesh::ParallelObject::comm(), TIMPI::Communicator::gather(), libMesh::index_range(), libMesh::libmesh_assert(), TIMPI::Communicator::max(), libMesh::ParallelObject::n_processors(), n_vars, and libMesh::ParallelObject::processor_id().
Referenced by write_out_node_basis_functions().
|
delete |
|
default |
|
inherited |
Print out all the discrete parameter values.
Definition at line 380 of file rb_parametrized.C.
References libMesh::RBParametrized::get_discrete_parameter_values(), libMesh::Quality::name(), libMesh::out, and value.
Referenced by libMesh::RBSCMConstruction::print_info(), libMesh::RBEIMConstruction::print_info(), and libMesh::RBConstruction::print_info().
|
staticinherited |
Prints the reference information, by default to libMesh::out
.
Definition at line 81 of file reference_counter.C.
References libMesh::ReferenceCounter::_enable_print_counter, and libMesh::ReferenceCounter::get_info().
Referenced by libMesh::LibMeshInit::~LibMeshInit().
|
private |
Print the contents of _local_eim_basis_functions to libMesh::out.
Helper function mainly useful for debugging.
Definition at line 1827 of file rb_eim_evaluation.C.
References _local_eim_basis_functions, _local_node_eim_basis_functions, _local_side_eim_basis_functions, libMesh::index_range(), and libMesh::out.
|
inherited |
Print the current parameters.
Definition at line 192 of file rb_parametrized.C.
References libMesh::RBParametrized::get_parameters(), libMesh::RBParametrized::parameters_initialized, and libMesh::RBParameters::print().
Referenced by libMesh::RBEIMConstruction::train_eim_approximation_with_greedy(), and libMesh::RBConstruction::train_reduced_basis_with_greedy().
|
inlineinherited |
Definition at line 114 of file parallel_object.h.
References libMesh::ParallelObject::_communicator, and TIMPI::Communicator::rank().
Referenced by libMesh::BoundaryInfo::_find_id_maps(), libMesh::PetscDMWrapper::add_dofs_to_section(), libMesh::DistributedMesh::add_elem(), libMesh::BoundaryInfo::add_elements(), libMesh::DofMap::add_neighbors_to_send_list(), libMesh::DistributedMesh::add_node(), libMesh::MeshTools::Modification::all_tri(), libMesh::DofMap::allgather_recursive_constraints(), libMesh::FEMSystem::assembly(), libMesh::Nemesis_IO::assert_symmetric_cmaps(), libMesh::Partitioner::assign_partitioning(), libMesh::Nemesis_IO_Helper::build_element_and_node_maps(), libMesh::Partitioner::build_graph(), libMesh::InfElemBuilder::build_inf_elem(), libMesh::BoundaryInfo::build_node_list_from_side_list(), libMesh::EquationSystems::build_parallel_elemental_solution_vector(), libMesh::EquationSystems::build_parallel_solution_vector(), libMesh::MeshFunction::check_found_elem(), libMesh::DistributedMesh::clear(), libMesh::DistributedMesh::clear_elems(), libMesh::ExodusII_IO_Helper::close(), libMesh::Nemesis_IO_Helper::compute_border_node_ids(), libMesh::Nemesis_IO_Helper::compute_communication_map_parameters(), libMesh::Nemesis_IO_Helper::compute_internal_and_border_elems_and_internal_nodes(), libMesh::RBConstruction::compute_max_error_bound(), libMesh::Nemesis_IO_Helper::compute_node_communication_maps(), libMesh::Nemesis_IO_Helper::compute_num_global_elem_blocks(), libMesh::Nemesis_IO_Helper::compute_num_global_nodesets(), libMesh::Nemesis_IO_Helper::compute_num_global_sidesets(), libMesh::Nemesis_IO_Helper::construct_nemesis_filename(), libMesh::ExodusII_IO::copy_elemental_solution(), libMesh::ExodusII_IO::copy_nodal_solution(), libMesh::ExodusII_IO::copy_scalar_solution(), libMesh::Nemesis_IO::copy_scalar_solution(), libMesh::MeshTools::correct_node_proc_ids(), libMesh::ExodusII_IO_Helper::create(), libMesh::DistributedMesh::delete_elem(), libMesh::MeshCommunication::delete_remote_elements(), libMesh::DofMap::distribute_dofs(), libMesh::DofMap::distribute_scalar_dofs(), libMesh::DistributedMesh::DistributedMesh(), libMesh::DofMapBase::end_dof(), libMesh::DofMapBase::end_old_dof(), libMesh::EnsightIO::EnsightIO(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::SubFunctor::find_dofs_to_send(), libMesh::UnstructuredMesh::find_neighbors(), libMesh::DofMapBase::first_dof(), libMesh::DofMapBase::first_old_dof(), gather_bfs(), libMesh::Nemesis_IO_Helper::get_cmap_params(), libMesh::Nemesis_IO_Helper::get_eb_info_global(), libMesh::Nemesis_IO_Helper::get_elem_cmap(), libMesh::Nemesis_IO_Helper::get_elem_map(), libMesh::MeshBase::get_info(), libMesh::DofMap::get_info(), libMesh::Nemesis_IO_Helper::get_init_global(), libMesh::Nemesis_IO_Helper::get_init_info(), get_interior_basis_functions_as_vecs(), libMesh::Nemesis_IO_Helper::get_loadbal_param(), libMesh::DofMap::get_local_constraints(), libMesh::MeshBase::get_local_constraints(), libMesh::Nemesis_IO_Helper::get_node_cmap(), libMesh::Nemesis_IO_Helper::get_node_map(), libMesh::Nemesis_IO_Helper::get_ns_param_global(), libMesh::Nemesis_IO_Helper::get_ss_param_global(), libMesh::SparsityPattern::Build::handle_vi_vj(), libMesh::LaplaceMeshSmoother::init(), libMesh::SystemSubsetBySubdomain::init(), HeatSystem::init_data(), libMesh::ExodusII_IO_Helper::initialize(), libMesh::ExodusII_IO_Helper::initialize_element_variables(), libMesh::ExodusII_IO_Helper::initialize_global_variables(), libMesh::ExodusII_IO_Helper::initialize_nodal_variables(), libMesh::DistributedMesh::insert_elem(), libMesh::DofMap::is_evaluable(), libMesh::SparsityPattern::Build::join(), libMesh::TransientRBEvaluation::legacy_write_offline_data_to_files(), libMesh::RBSCMEvaluation::legacy_write_offline_data_to_files(), libMesh::RBEvaluation::legacy_write_offline_data_to_files(), libMesh::MeshTools::libmesh_assert_consistent_distributed(), libMesh::MeshTools::libmesh_assert_consistent_distributed_nodes(), libMesh::MeshTools::libmesh_assert_contiguous_dof_ids(), libMesh::MeshTools::libmesh_assert_parallel_consistent_procids< Elem >(), libMesh::MeshTools::libmesh_assert_valid_neighbors(), libMesh::DistributedMesh::libmesh_assert_valid_parallel_object_ids(), libMesh::DofMap::local_variable_indices(), main(), libMesh::MeshRefinement::make_coarsening_compatible(), AugmentSparsityOnInterface::mesh_reinit(), libMesh::TriangulatorInterface::MeshedHole::MeshedHole(), libMesh::MeshBase::n_active_local_elem(), libMesh::BoundaryInfo::n_boundary_conds(), libMesh::MeshTools::n_connected_components(), libMesh::MeshBase::n_constraint_rows(), libMesh::BoundaryInfo::n_edge_conds(), libMesh::DofMapBase::n_local_dofs(), libMesh::MeshBase::n_local_elem(), libMesh::MeshBase::n_local_nodes(), libMesh::BoundaryInfo::n_nodeset_conds(), libMesh::BoundaryInfo::n_shellface_conds(), node_gather_bfs(), libMesh::DistributedMesh::own_node(), libMesh::BoundaryInfo::parallel_sync_node_ids(), libMesh::BoundaryInfo::parallel_sync_side_ids(), libMesh::System::point_gradient(), libMesh::System::point_hessian(), libMesh::System::point_value(), libMesh::MeshBase::print_constraint_rows(), libMesh::DofMap::print_dof_constraints(), libMesh::DofMap::process_mesh_constraint_rows(), libMesh::Nemesis_IO_Helper::put_cmap_params(), libMesh::Nemesis_IO_Helper::put_elem_cmap(), libMesh::Nemesis_IO_Helper::put_elem_map(), libMesh::Nemesis_IO_Helper::put_loadbal_param(), libMesh::Nemesis_IO_Helper::put_node_cmap(), libMesh::Nemesis_IO_Helper::put_node_map(), libMesh::NameBasedIO::read(), libMesh::Nemesis_IO::read(), libMesh::XdrIO::read(), libMesh::CheckpointIO::read(), libMesh::EquationSystems::read(), libMesh::ExodusII_IO_Helper::read_elem_num_map(), libMesh::ExodusII_IO_Helper::read_global_values(), libMesh::ExodusII_IO::read_header(), libMesh::CheckpointIO::read_header(), libMesh::XdrIO::read_header(), libMesh::System::read_header(), libMesh::System::read_legacy_data(), libMesh::DynaIO::read_mesh(), libMesh::ExodusII_IO_Helper::read_node_num_map(), libMesh::System::read_parallel_data(), libMesh::TransientRBConstruction::read_riesz_representors_from_files(), libMesh::RBConstruction::read_riesz_representors_from_files(), libMesh::System::read_SCALAR_dofs(), libMesh::XdrIO::read_serialized_bc_names(), libMesh::XdrIO::read_serialized_bcs_helper(), libMesh::System::read_serialized_blocked_dof_objects(), libMesh::XdrIO::read_serialized_connectivity(), libMesh::System::read_serialized_data(), libMesh::XdrIO::read_serialized_nodes(), libMesh::XdrIO::read_serialized_nodesets(), libMesh::XdrIO::read_serialized_subdomain_names(), libMesh::System::read_serialized_vector(), libMesh::System::read_serialized_vectors(), libMesh::Nemesis_IO_Helper::read_var_names_impl(), libMesh::SimplexRefiner::refine_via_edges(), libMesh::StaticCondensationDofMap::reinit(), libMesh::DistributedMesh::renumber_dof_objects(), libMesh::DistributedMesh::renumber_nodes_and_elements(), libMesh::DofMap::scatter_constraints(), libMesh::CheckpointIO::select_split_config(), libMesh::DistributedMesh::set_next_unique_id(), libMesh::DofMap::set_nonlocal_dof_objects(), libMesh::PetscDMWrapper::set_point_range_in_section(), side_gather_bfs(), ExodusTest< elem_type >::test_read_gold(), ExodusTest< elem_type >::test_write(), MeshInputTest::testAbaqusRead(), MeshInputTest::testBadGmsh(), MeshInputTest::testCopyElementSolutionImpl(), MeshInputTest::testCopyElementVectorImpl(), MeshInputTest::testCopyNodalSolutionImpl(), DefaultCouplingTest::testCoupling(), PointNeighborCouplingTest::testCoupling(), MeshInputTest::testDynaFileMappings(), MeshInputTest::testDynaNoSplines(), MeshInputTest::testDynaReadElem(), MeshInputTest::testDynaReadPatch(), MeshInputTest::testExodusFileMappings(), MeshInputTest::testExodusIGASidesets(), MeshInputTest::testExodusWriteElementDataFromDiscontinuousNodalData(), MeshInputTest::testGmshBCIDOverlap(), MeshInputTest::testGoodGmsh(), MeshInputTest::testGoodSTL(), MeshInputTest::testGoodSTLBinary(), MeshInputTest::testLowOrderEdgeBlocks(), SystemsTest::testProjectMatrix3D(), BoundaryInfoTest::testShellFaceConstraints(), MeshInputTest::testSingleElementImpl(), WriteVecAndScalar::testSolution(), CheckpointIOTest::testSplitter(), MeshInputTest::testTetgenIO(), libMesh::MeshTools::total_weight(), libMesh::NetGenMeshInterface::triangulate(), libMesh::MeshRefinement::uniformly_coarsen(), libMesh::DistributedMesh::update_parallel_id_counts(), libMesh::DTKAdapter::update_variable_values(), libMesh::MeshTools::volume(), libMesh::STLIO::write(), libMesh::NameBasedIO::write(), libMesh::XdrIO::write(), libMesh::CheckpointIO::write(), libMesh::EquationSystems::write(), libMesh::GMVIO::write_discontinuous_gmv(), libMesh::ExodusII_IO::write_element_data(), libMesh::ExodusII_IO_Helper::write_element_values(), libMesh::ExodusII_IO_Helper::write_element_values_element_major(), libMesh::ExodusII_IO_Helper::write_elements(), libMesh::ExodusII_IO_Helper::write_elemset_data(), libMesh::ExodusII_IO_Helper::write_elemsets(), libMesh::ExodusII_IO::write_global_data(), libMesh::ExodusII_IO_Helper::write_global_values(), libMesh::System::write_header(), libMesh::ExodusII_IO::write_information_records(), libMesh::ExodusII_IO_Helper::write_information_records(), libMesh::ExodusII_IO_Helper::write_nodal_coordinates(), libMesh::UCDIO::write_nodal_data(), libMesh::VTKIO::write_nodal_data(), libMesh::ExodusII_IO::write_nodal_data(), libMesh::ExodusII_IO::write_nodal_data_common(), libMesh::ExodusII_IO::write_nodal_data_discontinuous(), libMesh::ExodusII_IO_Helper::write_nodal_values(), libMesh::ExodusII_IO_Helper::write_nodeset_data(), libMesh::Nemesis_IO_Helper::write_nodesets(), libMesh::ExodusII_IO_Helper::write_nodesets(), write_out_interior_basis_functions(), write_out_node_basis_functions(), write_out_side_basis_functions(), write_output_solvedata(), libMesh::System::write_parallel_data(), libMesh::RBConstruction::write_riesz_representors_to_files(), libMesh::System::write_SCALAR_dofs(), libMesh::XdrIO::write_serialized_bc_names(), libMesh::XdrIO::write_serialized_bcs_helper(), libMesh::System::write_serialized_blocked_dof_objects(), libMesh::XdrIO::write_serialized_connectivity(), libMesh::System::write_serialized_data(), libMesh::XdrIO::write_serialized_nodes(), libMesh::XdrIO::write_serialized_nodesets(), libMesh::XdrIO::write_serialized_subdomain_names(), libMesh::System::write_serialized_vector(), libMesh::System::write_serialized_vectors(), libMesh::ExodusII_IO_Helper::write_sideset_data(), libMesh::Nemesis_IO_Helper::write_sidesets(), libMesh::ExodusII_IO_Helper::write_sidesets(), libMesh::ExodusII_IO::write_timestep(), libMesh::ExodusII_IO_Helper::write_timestep(), and libMesh::ExodusII_IO::write_timestep_discontinuous().
|
virtual |
Project the EIM basis function data stored in bf_data
onto sys.solution.
The intent of this function is to work with the data format provided by get_interior_basis_functions_as_vecs(). That format can be easily serialized, if needed, and hence can be used to provide bf_data
after reading in data from disk, for example.
extra_options
can be used to pass extra information to this method, e.g. options related to how to perform the projection.
This is a no-op by default, implement in sub-classes if needed.
Definition at line 3017 of file rb_eim_evaluation.C.
DenseVector< Number > RBEIMEvaluation::rb_eim_solve | ( | DenseVector< Number > & | EIM_rhs | ) |
Calculate the EIM approximation for the given right-hand side vector EIM_rhs
.
Store the solution coefficients in the member _eim_solution.
Definition at line 106 of file rb_eim_evaluation.C.
References _interpolation_matrix, get_n_basis_functions(), libMesh::DenseMatrix< T >::get_principal_submatrix(), libMesh::DenseMatrix< T >::lu_solve(), and libMesh::DenseVector< T >::size().
Referenced by libMesh::RBEIMConstruction::enrich_eim_approximation_on_interiors(), libMesh::RBEIMConstruction::enrich_eim_approximation_on_nodes(), libMesh::RBEIMConstruction::enrich_eim_approximation_on_sides(), and libMesh::RBEIMConstruction::store_eim_solutions_for_training_set().
void RBEIMEvaluation::rb_eim_solves | ( | const std::vector< RBParameters > & | mus, |
unsigned int | N | ||
) |
Perform rb_eim_solves at each mu in mus
and store the results in _rb_eim_solutions.
Definition at line 125 of file rb_eim_evaluation.C.
References _eim_solutions_for_training_set, _interpolation_matrix, _interpolation_points_comp, _is_eim_error_indicator_active, _preserve_rb_eim_solutions, _rb_eim_error_indicators, _rb_eim_solutions, _rb_eim_solves_mus, _rb_eim_solves_N, _vec_eval_input, get_eim_error_indicator(), get_n_basis_functions(), get_parametrized_function(), libMesh::DenseMatrix< T >::get_principal_submatrix(), libMesh::index_range(), libMesh::libmesh_ignore(), libMesh::DenseMatrix< T >::lu_solve(), libMesh::make_range(), libMesh::RBParametrizedFunction::node_vectorized_evaluate(), libMesh::Real, libMesh::RBParametrizedFunction::side_vectorized_evaluate(), and libMesh::RBParametrizedFunction::vectorized_evaluate().
Referenced by libMesh::RBEIMConstruction::compute_max_eim_error(), and libMesh::RBEIMTheta::evaluate_vec().
void RBEIMEvaluation::read_in_basis_functions | ( | const System & | sys, |
const std::string & | directory_name = "offline_data" , |
||
bool | read_binary_basis_functions = true |
||
) |
Read in all the basis functions from file.
sys | The Mesh in this System determines the parallel distribution of the basis functions. |
directory_name | Specifies which directory to write files to. |
read_binary_basis_functions | Indicates whether to expect binary or ASCII data. |
Note: this is not a virtual function and is not related to the RBEvaluation function of the same name.
Definition at line 1521 of file rb_eim_evaluation.C.
References get_n_basis_functions(), get_parametrized_function(), read_in_interior_basis_functions(), read_in_node_basis_functions(), and read_in_side_basis_functions().
|
private |
Method that reads in element interior EIM basis functions.
This may be called by read_in_basis_functions().
Definition at line 1540 of file rb_eim_evaluation.C.
References _local_eim_basis_functions, libMesh::ParallelObject::comm(), libMesh::Xdr::data(), libMesh::DECODE, distribute_bfs(), libMesh::index_range(), libMesh::MeshTools::n_elem(), n_vars, TIMPI::Communicator::rank(), and libMesh::READ.
Referenced by read_in_basis_functions().
|
private |
Method that reads in element node EIM basis functions.
This may be called by read_in_basis_functions().
Definition at line 1747 of file rb_eim_evaluation.C.
References _local_node_eim_basis_functions, libMesh::ParallelObject::comm(), libMesh::Xdr::data(), libMesh::DECODE, libMesh::index_range(), n_vars, node_distribute_bfs(), TIMPI::Communicator::rank(), and libMesh::READ.
Referenced by read_in_basis_functions().
|
private |
Method that reads in element side EIM basis functions.
This may be called by read_in_basis_functions().
Definition at line 1639 of file rb_eim_evaluation.C.
References _local_side_eim_basis_functions, libMesh::ParallelObject::comm(), libMesh::Xdr::data(), libMesh::DECODE, libMesh::index_range(), n_vars, TIMPI::Communicator::rank(), libMesh::READ, and side_distribute_bfs().
Referenced by read_in_basis_functions().
|
inherited |
Read in the parameter ranges from files.
Definition at line 276 of file rb_parametrized.C.
References libMesh::RBParametrized::initialize_parameters(), libMesh::RBParametrized::read_discrete_parameter_values_from_file(), and libMesh::RBParametrized::read_parameter_ranges_from_file().
Referenced by libMesh::RBSCMEvaluation::legacy_read_offline_data_from_files(), and libMesh::RBEvaluation::legacy_read_offline_data_from_files().
void RBEIMEvaluation::resize_data_structures | ( | const unsigned int | Nmax | ) |
Resize the data structures for storing data associated with this object.
Definition at line 75 of file rb_eim_evaluation.C.
References _interpolation_matrix, _interpolation_points_comp, _interpolation_points_spatial_indices, _vec_eval_input, libMesh::VectorizedEvalInput::all_xyz, libMesh::VectorizedEvalInput::clear(), and libMesh::DenseMatrix< T >::resize().
Referenced by libMesh::RBDataDeserialization::load_rb_eim_evaluation_data(), libMesh::RBEIMConstruction::train_eim_approximation_with_greedy(), and libMesh::RBEIMConstruction::train_eim_approximation_with_POD().
const std::set< unsigned int > & RBEIMEvaluation::scale_components_in_enrichment | ( | ) | const |
Get _scale_components_in_enrichment.
Definition at line 3030 of file rb_eim_evaluation.C.
References _scale_components_in_enrichment.
Referenced by libMesh::RBEIMConstruction::apply_normalization_to_solution_snapshots(), libMesh::RBEIMConstruction::initialize_parametrized_functions_in_training_set(), and libMesh::RBEIMConstruction::train_eim_approximation_with_POD().
void RBEIMEvaluation::set_eim_error_indicator_active | ( | bool | is_active | ) |
Activate/decative the error indicator in EIM solves.
We need this option since in some cases (e.g. during EIM training) we do not want to activate the EIM error indicator, whereas in "online solves" we do want to activate it.
Definition at line 3042 of file rb_eim_evaluation.C.
References _is_eim_error_indicator_active, get_n_basis_functions(), get_n_interpolation_points(), libMesh::RBParametrized::get_n_params(), and use_eim_error_indicator().
Referenced by libMesh::RBEIMTheta::evaluate_vec().
void RBEIMEvaluation::set_error_indicator_interpolation_row | ( | const DenseVector< Number > & | error_indicator_row | ) |
Definition at line 3136 of file rb_eim_evaluation.C.
References _error_indicator_interpolation_row.
Referenced by libMesh::RBDataDeserialization::load_rb_eim_evaluation_data(), and libMesh::RBEIMConstruction::update_eim_matrices().
void RBEIMEvaluation::set_interpolation_matrix_entry | ( | unsigned int | i, |
unsigned int | j, | ||
Number | value | ||
) |
Set entry of the EIM interpolation matrix.
Definition at line 940 of file rb_eim_evaluation.C.
References _interpolation_matrix, libMesh::DenseMatrixBase< T >::m(), libMesh::DenseMatrixBase< T >::n(), and value.
Referenced by libMesh::RBDataDeserialization::load_rb_eim_evaluation_data(), and libMesh::RBEIMConstruction::update_eim_matrices().
void RBEIMEvaluation::set_n_basis_functions | ( | unsigned int | n_bfs | ) |
Set the number of basis functions.
Useful when reading in stored data.
Definition at line 330 of file rb_eim_evaluation.C.
References _local_eim_basis_functions, _local_node_eim_basis_functions, _local_side_eim_basis_functions, and get_parametrized_function().
Referenced by libMesh::RBDataDeserialization::load_rb_eim_evaluation_data().
|
inherited |
Set the current parameters to params
The parameters are checked for validity; an error is thrown if the number of parameters or samples is different than expected.
We
Definition at line 143 of file rb_parametrized.C.
References libMesh::RBParametrized::check_if_valid_params(), libMesh::RBParametrized::parameters, and libMesh::RBParametrized::parameters_initialized.
Referenced by libMesh::RBSCMConstruction::compute_SCM_bounds_on_training_set(), libMesh::RBEIMConstruction::enrich_eim_approximation_on_interiors(), libMesh::RBEIMConstruction::enrich_eim_approximation_on_nodes(), libMesh::RBEIMConstruction::enrich_eim_approximation_on_sides(), libMesh::RBConstruction::get_RB_error_bound(), SimpleRBEvaluation::get_stability_lower_bound(), libMesh::RBParametrized::initialize_parameters(), libMesh::RBSCMEvaluation::reload_current_parameters(), libMesh::RBSCMEvaluation::set_current_parameters_from_C_J(), and RBParametersTest::testRBParametrized().
void RBEIMEvaluation::set_parametrized_function | ( | std::unique_ptr< RBParametrizedFunction > | pf | ) |
Set the parametrized function that we will approximate using the Empirical Interpolation Method.
This object will take ownership of the unique pointer.
Definition at line 87 of file rb_eim_evaluation.C.
References _parametrized_function.
void RBEIMEvaluation::set_preserve_rb_eim_solutions | ( | bool | preserve_rb_eim_solutions | ) |
Set _preserve_rb_eim_solutions.
Definition at line 953 of file rb_eim_evaluation.C.
References _preserve_rb_eim_solutions.
void RBEIMEvaluation::set_rb_eim_solutions | ( | const std::vector< DenseVector< Number >> & | rb_eim_solutions | ) |
Set _rb_eim_solutions.
Normally we update _rb_eim_solutions by performing and EIM solve, but in some cases we want to set the EIM solution coefficients elsewhere, so this setter enables us to do that.
Definition at line 667 of file rb_eim_evaluation.C.
References _rb_eim_solutions.
void RBEIMEvaluation::side_decrement_vector | ( | SideQpDataMap & | v, |
const DenseVector< Number > & | coeffs | ||
) |
Same as decrement_vector() except for Side data.
Definition at line 366 of file rb_eim_evaluation.C.
References _local_side_eim_basis_functions, get_n_basis_functions(), libMesh::index_range(), and libMesh::DenseVector< T >::size().
Referenced by libMesh::RBEIMConstruction::compute_max_eim_error(), and libMesh::RBEIMConstruction::enrich_eim_approximation_on_sides().
|
private |
Same as distribute_bfs() except for side data.
Definition at line 2520 of file rb_eim_evaluation.C.
References _local_side_eim_basis_functions, TIMPI::Communicator::broadcast(), clear(), libMesh::ParallelObject::comm(), TIMPI::Communicator::gather(), libMesh::System::get_mesh(), get_parametrized_function(), libMesh::RBParametrizedFunction::get_parametrized_function_boundary_ids(), libMesh::index_range(), libMesh::make_range(), mesh, n_vars, TIMPI::Communicator::rank(), TIMPI::Communicator::scatter(), and TIMPI::Communicator::size().
Referenced by read_in_side_basis_functions().
|
private |
Same as gather_bfs() except for side data.
Definition at line 2026 of file rb_eim_evaluation.C.
References _local_side_eim_basis_functions, libMesh::ParallelObject::comm(), TIMPI::Communicator::gather(), libMesh::index_range(), libMesh::libmesh_assert(), TIMPI::Communicator::max(), libMesh::ParallelObject::n_processors(), n_vars, and libMesh::ParallelObject::processor_id().
Referenced by write_out_side_basis_functions().
|
virtual |
Virtual function to indicate if we use the EIM error indicator in this case.
This indicates if we will generate the data during the Offline training for the EIM error indicator. In EIM solves, the error indicator will only be used if set_eim_error_indicator_active() is set to true, since we want to be able to enable or disable the error indicator depending on the type of solve we are doing (e.g. EIM solves during training do not need the error indicator).
Definition at line 3035 of file rb_eim_evaluation.C.
Referenced by libMesh::RBDataSerialization::add_rb_eim_evaluation_data_to_builder(), libMesh::RBEIMConstruction::reinit_eim_projection_matrix(), set_eim_error_indicator_active(), libMesh::RBEIMConstruction::train_eim_approximation_with_greedy(), and libMesh::RBEIMConstruction::train_eim_approximation_with_POD().
void RBEIMEvaluation::write_out_basis_functions | ( | const std::string & | directory_name = "offline_data" , |
bool | write_binary_basis_functions = true |
||
) |
Write out all the basis functions to file.
sys
is used for file IO directory_name
specifies which directory to write files to read_binary_basis_functions
indicates whether to write binary or ASCII data
Note: this is not currently a virtual function and is not related to the RBEvaluation function of the same name.
Definition at line 1089 of file rb_eim_evaluation.C.
References get_parametrized_function(), write_out_interior_basis_functions(), write_out_node_basis_functions(), and write_out_side_basis_functions().
|
private |
Method that writes out element interior EIM basis functions.
This may be called by write_out_basis_functions().
Definition at line 1103 of file rb_eim_evaluation.C.
References _local_eim_basis_functions, libMesh::ParallelObject::comm(), libMesh::ENCODE, gather_bfs(), get_interior_basis_function_as_vec_helper(), get_interior_basis_function_sizes(), libMesh::index_range(), libMesh::libmesh_assert(), libMesh::Utility::mkdir(), libMesh::MeshTools::n_elem(), n_vars, libMesh::ParallelObject::processor_id(), and libMesh::WRITE.
Referenced by write_out_basis_functions().
|
private |
Method that writes out element node EIM basis functions.
This may be called by write_out_basis_functions().
Definition at line 1426 of file rb_eim_evaluation.C.
References _local_node_eim_basis_functions, libMesh::ParallelObject::comm(), libMesh::ENCODE, libMesh::index_range(), libMesh::libmesh_assert(), libMesh::Utility::mkdir(), n_vars, node_gather_bfs(), libMesh::ParallelObject::processor_id(), and libMesh::WRITE.
Referenced by write_out_basis_functions().
|
private |
Method that writes out element side EIM basis functions.
This may be called by write_out_basis_functions().
Definition at line 1310 of file rb_eim_evaluation.C.
References _local_side_eim_basis_functions, libMesh::ParallelObject::comm(), libMesh::ENCODE, libMesh::index_range(), libMesh::libmesh_assert(), libMesh::Utility::mkdir(), libMesh::MeshTools::n_elem(), n_vars, libMesh::ParallelObject::processor_id(), side_gather_bfs(), and libMesh::WRITE.
Referenced by write_out_basis_functions().
|
inherited |
Write out the parameter ranges to files.
Definition at line 199 of file rb_parametrized.C.
References libMesh::RBParametrized::write_discrete_parameter_values_to_file(), and libMesh::RBParametrized::write_parameter_ranges_to_file().
Referenced by libMesh::RBSCMEvaluation::legacy_write_offline_data_to_files(), and libMesh::RBEvaluation::legacy_write_offline_data_to_files().
|
protectedinherited |
Definition at line 120 of file parallel_object.h.
Referenced by libMesh::EquationSystems::build_parallel_elemental_solution_vector(), libMesh::EquationSystems::build_parallel_solution_vector(), libMesh::StaticCondensation::close(), libMesh::ParallelObject::comm(), libMesh::CondensedEigenSystem::initialize_condensed_matrices(), libMesh::ParallelObject::n_processors(), libMesh::ParallelObject::operator=(), libMesh::ParallelObject::processor_id(), libMesh::BoundaryInfo::regenerate_id_sets(), and libMesh::StaticCondensationDofMap::reinit().
|
staticprotectedinherited |
Actually holds the data.
Definition at line 124 of file reference_counter.h.
Referenced by libMesh::ReferenceCounter::get_info().
|
private |
Storage for EIM solutions from the training set.
This is typically used in the case that we have is_lookup_table==true in our RBParametrizedFunction, since in that case we need to store all the EIM solutions on the training set so that we do not always need to refer to the lookup table itself (since in some cases, like in the Online stage, the lookup table is not available).
Definition at line 828 of file rb_eim_evaluation.h.
Referenced by get_eim_solutions_for_training_set(), and rb_eim_solves().
|
protected |
This vector specifies which EIM variables we want to write to disk and/or project to nodes for plotting purposes.
By default this is an empty set, but can be updated in subclasses to specify the EIM variables that are relevant for visualization.
We identify groups of variables with one or more variables in a group. The purpose of using a group is often we plot multiple components of a tensor-valued or vector-valued quantity, so it makes sense to refer to the entire group of variables together in those cases.
Definition at line 740 of file rb_eim_evaluation.h.
Referenced by get_eim_vars_to_project_and_write().
|
staticprotectedinherited |
Flag to control whether reference count information is printed when print_info is called.
Definition at line 143 of file reference_counter.h.
Referenced by libMesh::ReferenceCounter::disable_print_counter_info(), libMesh::ReferenceCounter::enable_print_counter_info(), and libMesh::ReferenceCounter::print_info().
|
private |
Here we store an extra row of the interpolation matrix which is used to compute the EIM error indicator.
This stores the EIM basis function values at the extra point associated with the error indicator.
Definition at line 971 of file rb_eim_evaluation.h.
Referenced by get_eim_error_indicator(), get_error_indicator_interpolation_row(), and set_error_indicator_interpolation_row().
|
private |
Dense matrix that stores the lower triangular interpolation matrix that can be used.
Definition at line 843 of file rb_eim_evaluation.h.
Referenced by clear(), get_interpolation_matrix(), rb_eim_solve(), rb_eim_solves(), resize_data_structures(), and set_interpolation_matrix_entry().
|
private |
In the case of a "vector-valued" EIM, this vector determines which component of the parameterized function we sample at each EIM point.
Definition at line 854 of file rb_eim_evaluation.h.
Referenced by add_interpolation_data(), add_interpolation_points_comp(), add_node_interpolation_data(), add_side_interpolation_data(), clear(), get_interpolation_points_comp(), rb_eim_solves(), and resize_data_structures().
|
private |
Here we store the spatial indices that were initialized by initialize_spatial_indices_at_interp_pts().
These are relevant in the case that _parametrized_function is defined by indexing into separate data based on the mesh-based data.
Definition at line 862 of file rb_eim_evaluation.h.
Referenced by add_interpolation_points_spatial_indices(), clear(), get_interpolation_points_spatial_indices(), get_n_interpolation_points_spatial_indices(), initialize_interpolation_points_spatial_indices(), initialize_param_fn_spatial_indices(), and resize_data_structures().
|
private |
Indicate if the EIM error indicator is active in RB EIM solves.
Note that this is distinct from use_eim_error_indicator(), since use_eim_error_indicator() indicates if this RBEIMEvaluation has an EIM error indicator defined, whereas _is_eim_error_indicator_active is used to turn on or off the error indicator. This primary purpose of _is_eim_error_indicator_active is to turn the error indicator off during EIM training (when it is not relevant) and to turn it on during "online solves".
Definition at line 964 of file rb_eim_evaluation.h.
Referenced by rb_eim_solves(), and set_eim_error_indicator_active().
|
private |
The EIM basis functions.
We store values at quadrature points on elements that are local to this processor. The indexing is as follows: basis function index –> element ID –> variable –> quadrature point –> value We use a map to index the element ID, since the IDs on this processor in general will not start at zero.
Definition at line 886 of file rb_eim_evaluation.h.
Referenced by add_basis_function(), decrement_vector(), distribute_bfs(), gather_bfs(), get_basis_function(), get_eim_basis_function_value(), get_eim_basis_function_values_at_qps(), get_interior_basis_function_as_vec_helper(), get_interior_basis_function_sizes(), get_interior_basis_functions_as_vecs(), get_n_basis_functions(), print_local_eim_basis_functions(), read_in_interior_basis_functions(), set_n_basis_functions(), and write_out_interior_basis_functions().
|
private |
The EIM basis functions on element nodes (e.g.
on a nodeset). We store values at nodes that are local to this processor. The indexing is as follows: basis function index –> node ID –> variable –> value We use a map to index the node ID, since the IDs on this processor in general will not start at zero.
Definition at line 906 of file rb_eim_evaluation.h.
Referenced by add_node_basis_function(), get_eim_basis_function_node_local_value(), get_eim_basis_function_node_value(), get_n_basis_functions(), get_node_basis_function(), node_decrement_vector(), node_distribute_bfs(), node_gather_bfs(), print_local_eim_basis_functions(), read_in_node_basis_functions(), set_n_basis_functions(), and write_out_node_basis_functions().
|
private |
The EIM basis functions on element sides.
We store values at quadrature points on elements that are local to this processor. The indexing is as follows: basis function index –> (element ID,side index) –> variable –> quadrature point –> value We use a map to index the element ID, since the IDs on this processor in general will not start at zero.
Definition at line 896 of file rb_eim_evaluation.h.
Referenced by add_side_basis_function(), get_eim_basis_function_side_value(), get_eim_basis_function_side_values_at_qps(), get_n_basis_functions(), get_side_basis_function(), print_local_eim_basis_functions(), read_in_side_basis_functions(), set_n_basis_functions(), side_decrement_vector(), side_distribute_bfs(), side_gather_bfs(), and write_out_side_basis_functions().
|
staticprotectedinherited |
Mutual exclusion object to enable thread-safe reference counting.
Definition at line 137 of file reference_counter.h.
|
staticprotectedinherited |
The number of objects.
Print the reference count information when the number returns to 0.
Definition at line 132 of file reference_counter.h.
Referenced by libMesh::ReferenceCounter::n_objects(), libMesh::ReferenceCounter::ReferenceCounter(), and libMesh::ReferenceCounter::~ReferenceCounter().
|
private |
Store the parametrized function that will be approximated by this EIM system.
Note that the parametrized function may have more than one component, and each component is approximated by a separate variable in the EIM system.
Definition at line 870 of file rb_eim_evaluation.h.
Referenced by get_parametrized_function(), and set_parametrized_function().
|
private |
Boolean to indicate if we skip updating _rb_eim_solutions in rb_eim_solves().
This is relevant for cases when we set up _rb_eim_solutions elsewhere and we want to avoid changing it.
Definition at line 953 of file rb_eim_evaluation.h.
Referenced by get_preserve_rb_eim_solutions(), rb_eim_solves(), and set_preserve_rb_eim_solutions().
If we're using the EIM error indicator, then we store the error indicator values corresponding to _rb_eim_solutions here.
Definition at line 818 of file rb_eim_evaluation.h.
Referenced by get_rb_eim_error_indicators(), and rb_eim_solves().
|
private |
The EIM solution coefficients from the most recent call to rb_eim_solves().
Definition at line 812 of file rb_eim_evaluation.h.
Referenced by get_rb_eim_solutions(), get_rb_eim_solutions_entries(), rb_eim_solves(), and set_rb_eim_solutions().
|
private |
The parameters and the number of basis functions that were used in the most recent call to rb_eim_solves().
We store this so that we can check if we can skip calling rb_eim_solves() again if the inputs haven't changed.
Definition at line 836 of file rb_eim_evaluation.h.
Referenced by rb_eim_solves().
|
private |
Definition at line 837 of file rb_eim_evaluation.h.
Referenced by rb_eim_solves().
|
private |
The vector of RBTheta objects that are created to point to this RBEIMEvaluation.
Definition at line 876 of file rb_eim_evaluation.h.
Referenced by clear(), get_eim_theta_objects(), and initialize_eim_theta_objects().
|
protected |
This set that specifies which EIM variables will be scaled during EIM enrichment so that their maximum value matches the maximum value across all variables.
This is helpful in cases where some components are much smaller in magnitude than others, since in those cases if we do not apply component scaling to the small components then the accuracy of the EIM approximation for those components will not be controlled well by the EIM enrichment process.
Definition at line 751 of file rb_eim_evaluation.h.
Referenced by scale_components_in_enrichment().
|
private |
We store the EIM interpolation point data in this object.
Definition at line 848 of file rb_eim_evaluation.h.
Referenced by add_elem_center_dxyzdeta(), add_elem_center_dxyzdxi(), add_elem_id_local_index_map_entry(), add_interpolation_data(), add_interpolation_points_boundary_id(), add_interpolation_points_elem_id(), add_interpolation_points_elem_type(), add_interpolation_points_JxW_all_qp(), add_interpolation_points_node_id(), add_interpolation_points_phi_i_all_qp(), add_interpolation_points_phi_i_qp(), add_interpolation_points_qp(), add_interpolation_points_qrule_order(), add_interpolation_points_side_index(), add_interpolation_points_subdomain_id(), add_interpolation_points_xyz(), add_interpolation_points_xyz_perturbations(), add_node_interpolation_data(), add_rb_property_map_entry(), add_side_interpolation_data(), clear(), get_elem_center_dxyzdeta(), get_elem_center_dxyzdxi(), get_elem_id_to_local_index_map(), get_interpolation_points_boundary_id(), get_interpolation_points_elem_id(), get_interpolation_points_elem_type(), get_interpolation_points_JxW_all_qp(), get_interpolation_points_node_id(), get_interpolation_points_phi_i_all_qp(), get_interpolation_points_phi_i_qp(), get_interpolation_points_qp(), get_interpolation_points_qrule_order(), get_interpolation_points_side_index(), get_interpolation_points_subdomain_id(), get_interpolation_points_xyz(), get_interpolation_points_xyz_perturbations(), get_n_elems(), get_n_interpolation_points(), get_n_properties(), get_rb_property_map(), get_vec_eval_input(), initialize_interpolation_points_spatial_indices(), initialize_param_fn_spatial_indices(), initialize_rb_property_map(), rb_eim_solves(), and resize_data_structures().
EimErrorIndicatorNormalization libMesh::RBEIMEvaluation::eim_error_indicator_normalization |
Definition at line 717 of file rb_eim_evaluation.h.
Referenced by get_eim_error_indicator().
bool libMesh::RBEIMEvaluation::limit_eim_error_indicator_to_one |
If this boolean is true then we clamp EIM error indicator values to be at most 1.
This is often desirable since we typically think of the error indicator as a percentage, and a value of 1 means 100% error. We set this to true by default.
Definition at line 725 of file rb_eim_evaluation.h.
Referenced by get_eim_error_indicator().
|
inherited |
Public boolean to toggle verbose mode.
Definition at line 193 of file rb_parametrized.h.
Referenced by libMesh::RBParametrized::check_if_valid_params().