libMesh
Public Member Functions | Static Public Member Functions | Public Attributes | Protected Types | Protected Member Functions | Protected Attributes | Static Protected Attributes | List of all members
SimpleRBEvaluation Class Reference

#include <rb_classes.h>

Inheritance diagram for SimpleRBEvaluation:
[legend]

Public Member Functions

 SimpleRBEvaluation (const libMesh::Parallel::Communicator &comm)
 Constructor. More...
 
virtual Real get_stability_lower_bound ()
 The coercivity constant is bounded below by 0.05. More...
 
 SimpleRBEvaluation (const libMesh::Parallel::Communicator &comm)
 Constructor. More...
 
virtual Real get_stability_lower_bound ()
 We override get_stability_lower_bound so that it calls rb_scm_eval to return a parameter-dependent lower bound for the coercivity constant. More...
 
 SimpleRBEvaluation (const libMesh::Parallel::Communicator &comm)
 Constructor. More...
 
virtual Real get_stability_lower_bound ()
 The coercivity constant is bounded below by 0.05. More...
 
 SimpleRBEvaluation (const libMesh::Parallel::Communicator &comm)
 Constructor. More...
 
 SimpleRBEvaluation (const libMesh::Parallel::Communicator &comm)
 Constructor. More...
 
virtual Real get_stability_lower_bound ()
 Return a "dummy" lower bound for the coercivity constant. More...
 
 SimpleRBEvaluation (const libMesh::Parallel::Communicator &comm_in)
 Constructor. More...
 
virtual Real get_stability_lower_bound ()
 Return a "dummy" stability lower bound factor (for a rigorous error bound this should be a lower bound for the frequency dependent inf-sup constant) More...
 
virtual void clear () override
 Clear this RBEvaluation object. More...
 
void set_rb_theta_expansion (RBThetaExpansion &rb_theta_expansion_in)
 Set the RBThetaExpansion object. More...
 
RBThetaExpansion & get_rb_theta_expansion ()
 Get a reference to the rb_theta_expansion. More...
 
bool is_rb_theta_expansion_initialized () const
 
virtual void resize_data_structures (const unsigned int Nmax, bool resize_error_bound_data=true)
 Resize and clear the data vectors corresponding to the value of Nmax. More...
 
NumericVector< Number > & get_basis_function (unsigned int i)
 Get a reference to the i^th basis function. More...
 
virtual Real rb_solve (unsigned int N)
 Perform online solve with the N RB basis functions, for the set of parameters in current_params, where 0 <= N <= RB_size. More...
 
virtual Real get_error_bound_normalization ()
 
virtual Real compute_residual_dual_norm (const unsigned int N)
 Compute the dual norm of the residual for the solution saved in RB_solution_vector. More...
 
virtual Real residual_scaling_denom (Real alpha_LB)
 Specifies the residual scaling on the denominator to be used in the a posteriori error bound. More...
 
Real eval_output_dual_norm (unsigned int n, const RBParameters &mu)
 Evaluate the dual norm of output n for the current parameters. More...
 
virtual unsigned int get_n_basis_functions () const
 Get the current number of basis functions. More...
 
virtual void set_n_basis_functions (unsigned int n_bfs)
 Set the number of basis functions. More...
 
virtual void clear_riesz_representors ()
 Clear all the Riesz representors that are used to compute the RB residual (and hence error bound). More...
 
virtual void legacy_write_offline_data_to_files (const std::string &directory_name="offline_data", const bool write_binary_data=true)
 Write out all the data to text files in order to segregate the Offline stage from the Online stage. More...
 
virtual void legacy_read_offline_data_from_files (const std::string &directory_name="offline_data", bool read_error_bound_data=true, const bool read_binary_data=true)
 Read in the saved Offline reduced basis data to initialize the system for Online solves. More...
 
virtual void write_out_basis_functions (System &sys, const std::string &directory_name="offline_data", const bool write_binary_basis_functions=true)
 Write out all the basis functions to file. More...
 
virtual void write_out_vectors (System &sys, std::vector< NumericVector< Number > *> &vectors, const std::string &directory_name="offline_data", const std::string &data_name="bf", const bool write_binary_basis_functions=true)
 Same as write_out_basis_functions, except in this case we pass in the vectors to be written. More...
 
virtual void read_in_basis_functions (System &sys, const std::string &directory_name="offline_data", const bool read_binary_basis_functions=true)
 Read in all the basis functions from file. More...
 
void read_in_vectors (System &sys, std::vector< std::unique_ptr< NumericVector< Number >>> &vectors, const std::string &directory_name, const std::string &data_name, const bool read_binary_vectors)
 Same as read_in_basis_functions, except in this case we pass in the vectors to be written. More...
 
void read_in_vectors_from_multiple_files (System &sys, std::vector< std::vector< std::unique_ptr< NumericVector< Number >>> *> multiple_vectors, const std::vector< std::string > &multiple_directory_names, const std::vector< std::string > &multiple_data_names, const bool read_binary_vectors)
 Performs read_in_vectors for a list of directory names and data names. 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...
 
void set_parameters (const RBParameters &params)
 Set the current parameters to params. 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 &param_name) const
 Get minimum allowable value of parameter param_name. More...
 
Real get_parameter_max (const std::string &param_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 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=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

CDRBThetaExpansion cd_rb_theta_expansion
 The object that stores the "theta" expansion of the parameter dependent PDE, i.e. More...
 
RBSCMEvaluationrb_scm_eval
 Pointer to the SCM object that will provide our coercivity constant lower bound. More...
 
Ex02RBThetaExpansion ex02_rb_theta_expansion
 The object that stores the "theta" expansion of the parameter dependent PDE, i.e. More...
 
EimTestRBThetaExpansion eim_test_rb_theta_expansion
 The object that stores the "theta" expansion of the parameter dependent PDE, i.e. More...
 
Ex6ThetaExpansion ex6_theta_expansion
 The object that stores the "theta" expansion of the parameter dependent PDE, i.e. More...
 
AcousticsRBThetaExpansion acoustics_rb_theta_expansion
 The object that stores the "theta" expansion of the parameter dependent PDE, i.e. More...
 
std::vector< std::unique_ptr< NumericVector< Number > > > basis_functions
 The libMesh vectors storing the finite element coefficients of the RB basis functions. More...
 
std::vector< RBParameters > greedy_param_list
 The list of parameters selected by the Greedy algorithm in generating the Reduced Basis associated with this RBEvaluation object. More...
 
DenseMatrix< Number > RB_inner_product_matrix
 The inner product matrix. More...
 
std::vector< DenseMatrix< Number > > RB_Aq_vector
 Dense matrices for the RB computations. More...
 
std::vector< DenseVector< Number > > RB_Fq_vector
 Dense vector for the RHS. More...
 
DenseVector< Number > RB_solution
 The RB solution vector. More...
 
std::vector< std::vector< DenseVector< Number > > > RB_output_vectors
 The vectors storing the RB output vectors. More...
 
std::vector< Number > RB_outputs
 The vectors storing the RB output values and corresponding error bounds. More...
 
std::vector< Real > RB_output_error_bounds
 
std::vector< Number > Fq_representor_innerprods
 Vectors storing the residual representor inner products to be used in computing the residuals online. More...
 
std::vector< std::vector< std::vector< Number > > > Fq_Aq_representor_innerprods
 Vectors storing the residual representor inner products to be used in computing the residuals online. More...
 
std::vector< std::vector< std::vector< Number > > > Aq_Aq_representor_innerprods
 
std::vector< std::vector< Number > > output_dual_innerprods
 The vector storing the dual norm inner product terms for each output. More...
 
std::vector< std::vector< std::unique_ptr< NumericVector< Number > > > > Aq_representor
 Vector storing the residual representors associated with the left-hand side. More...
 
bool evaluate_RB_error_bound
 Boolean to indicate whether we evaluate a posteriori error bounds when rb_solve is called. More...
 
bool compute_RB_inner_product
 Boolean flag to indicate whether we compute the RB_inner_product_matrix. 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 assert_file_exists (const std::string &file_name)
 Helper function that checks if file_name exists. More...
 
void increment_constructor_count (const std::string &name)
 Increments the construction counter. More...
 
void increment_destructor_count (const std::string &name)
 Increments the destruction counter. More...
 

Protected Attributes

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
 Flag to control whether reference count information is printed when print_info is called. More...
 

Detailed Description

Definition at line 44 of file rb_classes.h.

Member Typedef Documentation

◆ Counts

typedef std::map<std::string, std::pair<unsigned int, unsigned int> > libMesh::ReferenceCounter::Counts
protectedinherited

Data structure to log the information.

The log is identified by the class name.

Definition at line 117 of file reference_counter.h.

Constructor & Destructor Documentation

◆ SimpleRBEvaluation() [1/6]

SimpleRBEvaluation::SimpleRBEvaluation ( const libMesh::Parallel::Communicator comm)

Constructor.

Just set the theta expansion.

Definition at line 51 of file rb_classes.h.

References cd_rb_theta_expansion, and libMesh::RBEvaluation::set_rb_theta_expansion().

51  :
53  {
55  }
CDRBThetaExpansion cd_rb_theta_expansion
The object that stores the "theta" expansion of the parameter dependent PDE, i.e. ...
Definition: rb_classes.h:66
const Parallel::Communicator & comm() const
RBEvaluation(const Parallel::Communicator &comm)
Constructor.
void set_rb_theta_expansion(RBThetaExpansion &rb_theta_expansion_in)
Set the RBThetaExpansion object.

◆ SimpleRBEvaluation() [2/6]

SimpleRBEvaluation::SimpleRBEvaluation ( const libMesh::Parallel::Communicator comm)

Constructor.

Just set the theta expansion.

Definition at line 58 of file rb_classes.h.

References ex02_rb_theta_expansion, and libMesh::RBEvaluation::set_rb_theta_expansion().

60  {
62  }
const Parallel::Communicator & comm() const
RBEvaluation(const Parallel::Communicator &comm)
Constructor.
Ex02RBThetaExpansion ex02_rb_theta_expansion
The object that stores the "theta" expansion of the parameter dependent PDE, i.e. ...
Definition: rb_classes.h:83
void set_rb_theta_expansion(RBThetaExpansion &rb_theta_expansion_in)
Set the RBThetaExpansion object.

◆ SimpleRBEvaluation() [3/6]

SimpleRBEvaluation::SimpleRBEvaluation ( const libMesh::Parallel::Communicator comm)

Constructor.

Just set the theta expansion.

Definition at line 51 of file rb_classes.h.

References cd_rb_theta_expansion, and libMesh::RBEvaluation::set_rb_theta_expansion().

53  {
55  }
CDRBThetaExpansion cd_rb_theta_expansion
The object that stores the "theta" expansion of the parameter dependent PDE, i.e. ...
Definition: rb_classes.h:66
const Parallel::Communicator & comm() const
This class is part of the rbOOmit framework.
void set_rb_theta_expansion(RBThetaExpansion &rb_theta_expansion_in)
Set the RBThetaExpansion object.

◆ SimpleRBEvaluation() [4/6]

SimpleRBEvaluation::SimpleRBEvaluation ( const libMesh::Parallel::Communicator comm)

Constructor.

Just set the theta expansion.

Definition at line 40 of file rb_classes.h.

References eim_test_rb_theta_expansion, and libMesh::RBEvaluation::set_rb_theta_expansion().

40  :
42  {
44  }
const Parallel::Communicator & comm() const
RBEvaluation(const Parallel::Communicator &comm)
Constructor.
void set_rb_theta_expansion(RBThetaExpansion &rb_theta_expansion_in)
Set the RBThetaExpansion object.
EimTestRBThetaExpansion eim_test_rb_theta_expansion
The object that stores the "theta" expansion of the parameter dependent PDE, i.e. ...
Definition: rb_classes.h:50

◆ SimpleRBEvaluation() [5/6]

SimpleRBEvaluation::SimpleRBEvaluation ( const libMesh::Parallel::Communicator comm)

Constructor.

Just set the theta expansion.

Definition at line 51 of file rb_classes.h.

References ex6_theta_expansion, and libMesh::RBEvaluation::set_rb_theta_expansion().

53  {
55  }
const Parallel::Communicator & comm() const
RBEvaluation(const Parallel::Communicator &comm)
Constructor.
void set_rb_theta_expansion(RBThetaExpansion &rb_theta_expansion_in)
Set the RBThetaExpansion object.
Ex6ThetaExpansion ex6_theta_expansion
The object that stores the "theta" expansion of the parameter dependent PDE, i.e. ...
Definition: rb_classes.h:67

◆ SimpleRBEvaluation() [6/6]

SimpleRBEvaluation::SimpleRBEvaluation ( const libMesh::Parallel::Communicator comm_in)

Constructor.

Just set the theta expansion.

Definition at line 55 of file rb_classes.h.

References acoustics_rb_theta_expansion, and libMesh::RBEvaluation::set_rb_theta_expansion().

56  : RBEvaluation(comm_in)
57  {
59  }
RBEvaluation(const Parallel::Communicator &comm)
Constructor.
AcousticsRBThetaExpansion acoustics_rb_theta_expansion
The object that stores the "theta" expansion of the parameter dependent PDE, i.e. ...
Definition: rb_classes.h:71
void set_rb_theta_expansion(RBThetaExpansion &rb_theta_expansion_in)
Set the RBThetaExpansion object.

Member Function Documentation

◆ assert_file_exists()

void libMesh::RBEvaluation::assert_file_exists ( const std::string &  file_name)
protectedinherited

Helper function that checks if file_name exists.

◆ clear()

virtual void libMesh::RBEvaluation::clear ( )
overridevirtualinherited

Clear this RBEvaluation object.

Delete the basis functions and clear and extra data in subclasses.

Reimplemented from libMesh::RBParametrized.

Reimplemented in libMesh::RBEIMEvaluation, and libMesh::TransientRBEvaluation.

◆ clear_riesz_representors()

virtual void libMesh::RBEvaluation::clear_riesz_representors ( )
virtualinherited

Clear all the Riesz representors that are used to compute the RB residual (and hence error bound).

This is useful since once we complete the Greedy we may not need the representors any more.

Reimplemented in libMesh::TransientRBEvaluation.

◆ comm()

const Parallel::Communicator& libMesh::ParallelObject::comm ( ) const
inherited
Returns
A reference to the Parallel::Communicator object used by this mesh.

Definition at line 87 of file parallel_object.h.

References libMesh::ParallelObject::_communicator.

Referenced by libMesh::EpetraVector< T >::EpetraVector(), libMesh::Parallel::sync_element_data_by_parent_id(), libMesh::Parallel::sync_node_data_by_element_id(), and libMesh::Parallel::sync_node_data_by_element_id_once().

88  { return _communicator; }
const Parallel::Communicator & _communicator

◆ compute_residual_dual_norm()

virtual Real libMesh::RBEvaluation::compute_residual_dual_norm ( const unsigned int  N)
virtualinherited

Compute the dual norm of the residual for the solution saved in RB_solution_vector.

Reimplemented in libMesh::TransientRBEvaluation.

◆ disable_print_counter_info()

static void libMesh::ReferenceCounter::disable_print_counter_info ( )
staticinherited

◆ enable_print_counter_info()

static void libMesh::ReferenceCounter::enable_print_counter_info ( )
staticinherited

Methods to enable/disable the reference counter output from print_info()

◆ eval_output_dual_norm()

Real libMesh::RBEvaluation::eval_output_dual_norm ( unsigned int  n,
const RBParameters mu 
)
inherited

Evaluate the dual norm of output n for the current parameters.

◆ get_basis_function()

NumericVector<Number>& libMesh::RBEvaluation::get_basis_function ( unsigned int  i)
inherited

Get a reference to the i^th basis function.

◆ get_closest_value()

static Real libMesh::RBParametrized::get_closest_value ( Real  value,
const std::vector< Real > &  list_of_values 
)
staticinherited
Returns
The closest entry to value from list_of_values.

◆ get_discrete_parameter_values()

const std::map<std::string, std::vector<Real> >& libMesh::RBParametrized::get_discrete_parameter_values ( ) const
inherited

Get a const reference to the discrete parameter values.

◆ get_error_bound_normalization()

virtual Real libMesh::RBEvaluation::get_error_bound_normalization ( )
virtualinherited
Returns
A scaling factor that we can use to provide a consistent scaling of the RB error bound across different parameter values.

Reimplemented in libMesh::RBEIMEvaluation, and libMesh::TransientRBEvaluation.

◆ get_info()

static std::string libMesh::ReferenceCounter::get_info ( )
staticinherited

Gets a string containing the reference information.

◆ get_n_basis_functions()

virtual unsigned int libMesh::RBEvaluation::get_n_basis_functions ( ) const
virtualinherited

Get the current number of basis functions.

Definition at line 146 of file rb_evaluation.h.

References libMesh::RBEvaluation::basis_functions.

147  { return cast_int<unsigned int>(basis_functions.size()); }
std::vector< std::unique_ptr< NumericVector< Number > > > basis_functions
The libMesh vectors storing the finite element coefficients of the RB basis functions.

◆ get_n_continuous_params()

unsigned int libMesh::RBParametrized::get_n_continuous_params ( ) const
inherited

Get the number of continuous parameters.

◆ get_n_discrete_params()

unsigned int libMesh::RBParametrized::get_n_discrete_params ( ) const
inherited

Get the number of discrete parameters.

◆ get_n_params()

unsigned int libMesh::RBParametrized::get_n_params ( ) const
inherited

Get the number of parameters.

◆ get_parameter_max()

Real libMesh::RBParametrized::get_parameter_max ( const std::string &  param_name) const
inherited

Get maximum allowable value of parameter param_name.

◆ get_parameter_min()

Real libMesh::RBParametrized::get_parameter_min ( const std::string &  param_name) const
inherited

Get minimum allowable value of parameter param_name.

◆ get_parameter_names()

std::set<std::string> libMesh::RBParametrized::get_parameter_names ( ) const
inherited

Get a set that stores the parameter names.

◆ get_parameters()

const RBParameters& libMesh::RBParametrized::get_parameters ( ) const
inherited

Get the current parameters.

Referenced by get_stability_lower_bound().

◆ get_parameters_max()

const RBParameters& libMesh::RBParametrized::get_parameters_max ( ) const
inherited

Get an RBParameters object that specifies the maximum allowable value for each parameter.

◆ get_parameters_min()

const RBParameters& libMesh::RBParametrized::get_parameters_min ( ) const
inherited

Get an RBParameters object that specifies the minimum allowable value for each parameter.

◆ get_rb_theta_expansion()

RBThetaExpansion& libMesh::RBEvaluation::get_rb_theta_expansion ( )
inherited

Get a reference to the rb_theta_expansion.

◆ get_stability_lower_bound() [1/5]

virtual Real SimpleRBEvaluation::get_stability_lower_bound ( )
virtual

The coercivity constant is bounded below by 0.05.

Reimplemented from libMesh::RBEvaluation.

Definition at line 60 of file rb_classes.h.

60 { return 0.05; }

◆ get_stability_lower_bound() [2/5]

virtual Real SimpleRBEvaluation::get_stability_lower_bound ( )
virtual

The coercivity constant is bounded below by 0.05.

Reimplemented from libMesh::RBEvaluation.

Definition at line 60 of file rb_classes.h.

60 { return 0.05; }

◆ get_stability_lower_bound() [3/5]

virtual Real SimpleRBEvaluation::get_stability_lower_bound ( )
virtual

Return a "dummy" lower bound for the coercivity constant.

To do this rigorously we should use the SCM classes.

Reimplemented from libMesh::RBEvaluation.

Definition at line 61 of file rb_classes.h.

61 { return 1.; }

◆ get_stability_lower_bound() [4/5]

virtual Real SimpleRBEvaluation::get_stability_lower_bound ( )
virtual

Return a "dummy" stability lower bound factor (for a rigorous error bound this should be a lower bound for the frequency dependent inf-sup constant)

Reimplemented from libMesh::RBEvaluation.

Definition at line 65 of file rb_classes.h.

65 { return 1.; }

◆ get_stability_lower_bound() [5/5]

virtual Real SimpleRBEvaluation::get_stability_lower_bound ( )
virtual

We override get_stability_lower_bound so that it calls rb_scm_eval to return a parameter-dependent lower bound for the coercivity constant.

Reimplemented from libMesh::RBEvaluation.

Definition at line 68 of file rb_classes.h.

References libMesh::RBParametrized::get_parameters(), libMesh::RBSCMEvaluation::get_SCM_LB(), rb_scm_eval, and libMesh::RBParametrized::set_parameters().

69  {
71  return rb_scm_eval->get_SCM_LB();
72  }
void set_parameters(const RBParameters &params)
Set the current parameters to params.
RBSCMEvaluation * rb_scm_eval
Pointer to the SCM object that will provide our coercivity constant lower bound.
Definition: rb_classes.h:77
virtual Real get_SCM_LB()
Evaluate single SCM lower bound.
const RBParameters & get_parameters() const
Get the current parameters.

◆ increment_constructor_count()

void libMesh::ReferenceCounter::increment_constructor_count ( const std::string &  name)
protectedinherited

Increments the construction counter.

Should be called in the constructor of any derived class that will be reference counted.

Definition at line 181 of file reference_counter.h.

References libMesh::ReferenceCounter::_counts, libMesh::Quality::name(), and libMesh::Threads::spin_mtx.

Referenced by libMesh::ReferenceCountedObject< RBParametrized >::ReferenceCountedObject().

182 {
183  Threads::spin_mutex::scoped_lock lock(Threads::spin_mtx);
184  std::pair<unsigned int, unsigned int> & p = _counts[name];
185 
186  p.first++;
187 }
std::string name(const ElemQuality q)
static Counts _counts
Actually holds the data.
spin_mutex spin_mtx
A convenient spin mutex object which can be used for obtaining locks.

◆ increment_destructor_count()

void libMesh::ReferenceCounter::increment_destructor_count ( const std::string &  name)
protectedinherited

Increments the destruction counter.

Should be called in the destructor of any derived class that will be reference counted.

Definition at line 194 of file reference_counter.h.

References libMesh::ReferenceCounter::_counts, libMesh::Quality::name(), and libMesh::Threads::spin_mtx.

Referenced by libMesh::ReferenceCountedObject< RBParametrized >::~ReferenceCountedObject().

195 {
196  Threads::spin_mutex::scoped_lock lock(Threads::spin_mtx);
197  std::pair<unsigned int, unsigned int> & p = _counts[name];
198 
199  p.second++;
200 }
std::string name(const ElemQuality q)
static Counts _counts
Actually holds the data.
spin_mutex spin_mtx
A convenient spin mutex object which can be used for obtaining locks.

◆ initialize_parameters() [1/2]

void libMesh::RBParametrized::initialize_parameters ( const RBParameters mu_min_in,
const RBParameters mu_max_in,
const std::map< std::string, std::vector< Real >> &  discrete_parameter_values 
)
inherited

Initialize the parameter ranges and set current_parameters.

◆ initialize_parameters() [2/2]

void libMesh::RBParametrized::initialize_parameters ( const RBParametrized rb_parametrized)
inherited

Initialize the parameter ranges and set current_parameters.

◆ is_discrete_parameter()

bool libMesh::RBParametrized::is_discrete_parameter ( const std::string &  mu_name) const
inherited

Is parameter mu_name discrete?

◆ is_rb_theta_expansion_initialized()

bool libMesh::RBEvaluation::is_rb_theta_expansion_initialized ( ) const
inherited
Returns
true if the theta expansion has been initialized.

◆ legacy_read_offline_data_from_files()

virtual void libMesh::RBEvaluation::legacy_read_offline_data_from_files ( const std::string &  directory_name = "offline_data",
bool  read_error_bound_data = true,
const bool  read_binary_data = true 
)
virtualinherited

Read in the saved Offline reduced basis data to initialize the system for Online solves.

Note
This is a legacy method, use RBDataSerialization instead.

Reimplemented in libMesh::RBEIMEvaluation, and libMesh::TransientRBEvaluation.

◆ legacy_write_offline_data_to_files()

virtual void libMesh::RBEvaluation::legacy_write_offline_data_to_files ( const std::string &  directory_name = "offline_data",
const bool  write_binary_data = true 
)
virtualinherited

Write out all the data to text files in order to segregate the Offline stage from the Online stage.

Note
This is a legacy method, use RBDataSerialization instead.

Reimplemented in libMesh::RBEIMEvaluation, and libMesh::TransientRBEvaluation.

◆ n_objects()

static unsigned int libMesh::ReferenceCounter::n_objects ( )
staticinherited

Prints the number of outstanding (created, but not yet destroyed) objects.

Definition at line 83 of file reference_counter.h.

References libMesh::ReferenceCounter::_n_objects.

84  { return _n_objects; }
static Threads::atomic< unsigned int > _n_objects
The number of objects.

◆ n_processors()

processor_id_type libMesh::ParallelObject::n_processors ( ) const
inherited
Returns
The number of processors in the group.

Definition at line 93 of file parallel_object.h.

References libMesh::ParallelObject::_communicator, and libMesh::Parallel::Communicator::size().

Referenced by libMesh::MeshBase::partition().

94  { return cast_int<processor_id_type>(_communicator.size()); }
processor_id_type size() const
Definition: communicator.h:175
const Parallel::Communicator & _communicator

◆ print_discrete_parameter_values()

void libMesh::RBParametrized::print_discrete_parameter_values ( ) const
inherited

Print out all the discrete parameter values.

◆ print_info()

static void libMesh::ReferenceCounter::print_info ( std::ostream &  out = libMesh::out)
staticinherited

Prints the reference information, by default to libMesh::out.

◆ print_parameters()

void libMesh::RBParametrized::print_parameters ( ) const
inherited

Print the current parameters.

◆ processor_id()

processor_id_type libMesh::ParallelObject::processor_id ( ) const
inherited

◆ rb_solve()

virtual Real libMesh::RBEvaluation::rb_solve ( unsigned int  N)
virtualinherited

Perform online solve with the N RB basis functions, for the set of parameters in current_params, where 0 <= N <= RB_size.

Returns
The (absolute) error bound associated with the RB approximation. With an empty RB space (N=0), our RB solution is zero, but we still obtain a meaningful error bound associated with the forcing terms.

Reimplemented in libMesh::RBEIMEvaluation, and libMesh::TransientRBEvaluation.

◆ read_in_basis_functions()

virtual void libMesh::RBEvaluation::read_in_basis_functions ( System sys,
const std::string &  directory_name = "offline_data",
const bool  read_binary_basis_functions = true 
)
virtualinherited

Read in all the basis functions from file.

Parameters
sysUsed for file IO.
directory_nameSpecifies which directory to write files to.
read_binary_basis_functionsIndicates whether to expect binary or ASCII data.

◆ read_in_vectors()

void libMesh::RBEvaluation::read_in_vectors ( System sys,
std::vector< std::unique_ptr< NumericVector< Number >>> &  vectors,
const std::string &  directory_name,
const std::string &  data_name,
const bool  read_binary_vectors 
)
inherited

Same as read_in_basis_functions, except in this case we pass in the vectors to be written.

We assume that the size of vectors indicates the number of vectors that need to be read in.

◆ read_in_vectors_from_multiple_files()

void libMesh::RBEvaluation::read_in_vectors_from_multiple_files ( System sys,
std::vector< std::vector< std::unique_ptr< NumericVector< Number >>> *>  multiple_vectors,
const std::vector< std::string > &  multiple_directory_names,
const std::vector< std::string > &  multiple_data_names,
const bool  read_binary_vectors 
)
inherited

Performs read_in_vectors for a list of directory names and data names.

Reading in vectors requires us to renumber the dofs in a partition-independent way. This function only renumbers the dofs once at the start (and reverts it at the end), which can save a lot of work compared to renumbering on every read.

◆ read_parameter_data_from_files()

void libMesh::RBParametrized::read_parameter_data_from_files ( const std::string &  continuous_param_file_name,
const std::string &  discrete_param_file_name,
const bool  read_binary_data 
)
inherited

Read in the parameter ranges from files.

◆ residual_scaling_denom()

virtual Real libMesh::RBEvaluation::residual_scaling_denom ( Real  alpha_LB)
virtualinherited

Specifies the residual scaling on the denominator to be used in the a posteriori error bound.

Override in subclass in order to obtain the desired error bound.

◆ resize_data_structures()

virtual void libMesh::RBEvaluation::resize_data_structures ( const unsigned int  Nmax,
bool  resize_error_bound_data = true 
)
virtualinherited

Resize and clear the data vectors corresponding to the value of Nmax.

Optionally resize the data structures required for the error bound. Override to also clear and resize any extra data in subclasses.

Reimplemented in libMesh::TransientRBEvaluation, and libMesh::RBEIMEvaluation.

◆ set_n_basis_functions()

virtual void libMesh::RBEvaluation::set_n_basis_functions ( unsigned int  n_bfs)
virtualinherited

Set the number of basis functions.

Useful when reading in stored data.

◆ set_parameters()

void libMesh::RBParametrized::set_parameters ( const RBParameters params)
inherited

Set the current parameters to params.

Referenced by get_stability_lower_bound().

◆ set_rb_theta_expansion()

void libMesh::RBEvaluation::set_rb_theta_expansion ( RBThetaExpansion rb_theta_expansion_in)
inherited

Set the RBThetaExpansion object.

Referenced by SimpleRBEvaluation().

◆ write_out_basis_functions()

virtual void libMesh::RBEvaluation::write_out_basis_functions ( System sys,
const std::string &  directory_name = "offline_data",
const bool  write_binary_basis_functions = true 
)
virtualinherited

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 expect binary or ASCII data

◆ write_out_vectors()

virtual void libMesh::RBEvaluation::write_out_vectors ( System sys,
std::vector< NumericVector< Number > *> &  vectors,
const std::string &  directory_name = "offline_data",
const std::string &  data_name = "bf",
const bool  write_binary_basis_functions = true 
)
virtualinherited

Same as write_out_basis_functions, except in this case we pass in the vectors to be written.

◆ write_parameter_data_to_files()

void libMesh::RBParametrized::write_parameter_data_to_files ( const std::string &  continuous_param_file_name,
const std::string &  discrete_param_file_name,
const bool  write_binary_data 
)
inherited

Write out the parameter ranges to files.

Member Data Documentation

◆ _communicator

const Parallel::Communicator& libMesh::ParallelObject::_communicator
protectedinherited

◆ _counts

Counts libMesh::ReferenceCounter::_counts
staticprotectedinherited

◆ _enable_print_counter

bool libMesh::ReferenceCounter::_enable_print_counter
staticprotectedinherited

Flag to control whether reference count information is printed when print_info is called.

Definition at line 141 of file reference_counter.h.

◆ _mutex

Threads::spin_mutex libMesh::ReferenceCounter::_mutex
staticprotectedinherited

Mutual exclusion object to enable thread-safe reference counting.

Definition at line 135 of file reference_counter.h.

◆ _n_objects

Threads::atomic<unsigned int> libMesh::ReferenceCounter::_n_objects
staticprotectedinherited

The number of objects.

Print the reference count information when the number returns to 0.

Definition at line 130 of file reference_counter.h.

Referenced by libMesh::ReferenceCounter::n_objects(), libMesh::ReferenceCounter::ReferenceCounter(), and libMesh::ReferenceCounter::~ReferenceCounter().

◆ acoustics_rb_theta_expansion

AcousticsRBThetaExpansion SimpleRBEvaluation::acoustics_rb_theta_expansion

The object that stores the "theta" expansion of the parameter dependent PDE, i.e.

the set of parameter-dependent functions in the affine expansion of the PDE.

Definition at line 71 of file rb_classes.h.

Referenced by SimpleRBEvaluation().

◆ Aq_Aq_representor_innerprods

std::vector<std::vector<std::vector<Number> > > libMesh::RBEvaluation::Aq_Aq_representor_innerprods
inherited

Definition at line 301 of file rb_evaluation.h.

◆ Aq_representor

std::vector<std::vector<std::unique_ptr<NumericVector<Number> > > > libMesh::RBEvaluation::Aq_representor
inherited

Vector storing the residual representors associated with the left-hand side.

These are basis dependent and hence stored here, whereas the Fq_representors are stored in RBSystem.

Definition at line 317 of file rb_evaluation.h.

◆ basis_functions

std::vector<std::unique_ptr<NumericVector<Number> > > libMesh::RBEvaluation::basis_functions
inherited

The libMesh vectors storing the finite element coefficients of the RB basis functions.

Definition at line 242 of file rb_evaluation.h.

Referenced by libMesh::RBEvaluation::get_n_basis_functions().

◆ cd_rb_theta_expansion

CDRBThetaExpansion SimpleRBEvaluation::cd_rb_theta_expansion

The object that stores the "theta" expansion of the parameter dependent PDE, i.e.

the set of parameter-dependent functions in the affine expansion of the PDE.

Definition at line 66 of file rb_classes.h.

Referenced by SimpleRBEvaluation().

◆ compute_RB_inner_product

bool libMesh::RBEvaluation::compute_RB_inner_product
inherited

Boolean flag to indicate whether we compute the RB_inner_product_matrix.

Definition at line 328 of file rb_evaluation.h.

◆ eim_test_rb_theta_expansion

EimTestRBThetaExpansion SimpleRBEvaluation::eim_test_rb_theta_expansion

The object that stores the "theta" expansion of the parameter dependent PDE, i.e.

the set of parameter-dependent functions in the affine expansion of the PDE.

Definition at line 50 of file rb_classes.h.

Referenced by SimpleRBEvaluation().

◆ evaluate_RB_error_bound

bool libMesh::RBEvaluation::evaluate_RB_error_bound
inherited

Boolean to indicate whether we evaluate a posteriori error bounds when rb_solve is called.

Definition at line 323 of file rb_evaluation.h.

◆ ex02_rb_theta_expansion

Ex02RBThetaExpansion SimpleRBEvaluation::ex02_rb_theta_expansion

The object that stores the "theta" expansion of the parameter dependent PDE, i.e.

the set of parameter-dependent functions in the affine expansion of the PDE.

Definition at line 83 of file rb_classes.h.

Referenced by SimpleRBEvaluation().

◆ ex6_theta_expansion

Ex6ThetaExpansion SimpleRBEvaluation::ex6_theta_expansion

The object that stores the "theta" expansion of the parameter dependent PDE, i.e.

the set of parameter-dependent functions in the affine expansion of the PDE.

Definition at line 67 of file rb_classes.h.

Referenced by SimpleRBEvaluation().

◆ Fq_Aq_representor_innerprods

std::vector<std::vector<std::vector<Number> > > libMesh::RBEvaluation::Fq_Aq_representor_innerprods
inherited

Vectors storing the residual representor inner products to be used in computing the residuals online.

We store the Aq-dependent representor inner products because they depend on a reduced basis space. The basis independent representors are stored in RBSystem.

Definition at line 300 of file rb_evaluation.h.

◆ Fq_representor_innerprods

std::vector<Number> libMesh::RBEvaluation::Fq_representor_innerprods
inherited

Vectors storing the residual representor inner products to be used in computing the residuals online.

These values are independent of a basis, hence they can be copied over directly from an RBSystem.

Definition at line 291 of file rb_evaluation.h.

◆ greedy_param_list

std::vector<RBParameters> libMesh::RBEvaluation::greedy_param_list
inherited

The list of parameters selected by the Greedy algorithm in generating the Reduced Basis associated with this RBEvaluation object.

Definition at line 248 of file rb_evaluation.h.

◆ output_dual_innerprods

std::vector<std::vector<Number > > libMesh::RBEvaluation::output_dual_innerprods
inherited

The vector storing the dual norm inner product terms for each output.

These values are independent of a basis, hence they can be copied over directly from an RBSystem.

Definition at line 309 of file rb_evaluation.h.

◆ RB_Aq_vector

std::vector<DenseMatrix<Number> > libMesh::RBEvaluation::RB_Aq_vector
inherited

Dense matrices for the RB computations.

Definition at line 261 of file rb_evaluation.h.

◆ RB_Fq_vector

std::vector<DenseVector<Number> > libMesh::RBEvaluation::RB_Fq_vector
inherited

Dense vector for the RHS.

Definition at line 266 of file rb_evaluation.h.

◆ RB_inner_product_matrix

DenseMatrix<Number> libMesh::RBEvaluation::RB_inner_product_matrix
inherited

The inner product matrix.

This should be close to the identity, we need to calculate this rather than assume diagonality in order to accurately perform projections since orthogonality degrades with increasing N.

Definition at line 256 of file rb_evaluation.h.

◆ RB_output_error_bounds

std::vector<Real > libMesh::RBEvaluation::RB_output_error_bounds
inherited

Definition at line 283 of file rb_evaluation.h.

◆ RB_output_vectors

std::vector<std::vector<DenseVector<Number> > > libMesh::RBEvaluation::RB_output_vectors
inherited

The vectors storing the RB output vectors.

Definition at line 276 of file rb_evaluation.h.

◆ RB_outputs

std::vector<Number > libMesh::RBEvaluation::RB_outputs
inherited

The vectors storing the RB output values and corresponding error bounds.

Definition at line 282 of file rb_evaluation.h.

◆ rb_scm_eval

RBSCMEvaluation* SimpleRBEvaluation::rb_scm_eval

Pointer to the SCM object that will provide our coercivity constant lower bound.

Definition at line 77 of file rb_classes.h.

Referenced by get_stability_lower_bound().

◆ RB_solution

DenseVector<Number> libMesh::RBEvaluation::RB_solution
inherited

The RB solution vector.

Definition at line 271 of file rb_evaluation.h.

◆ verbose_mode

bool libMesh::RBParametrized::verbose_mode
inherited

Public boolean to toggle verbose mode.

Definition at line 170 of file rb_parametrized.h.


The documentation for this class was generated from the following file: