libMesh
Public Member Functions | Static Public Member Functions | Public Attributes | Protected Types | Protected Member Functions | Protected Attributes | Static Protected Attributes | Private Attributes | List of all members
libMesh::RBSCMEvaluation Class Reference

This class is part of the rbOOmit framework. More...

#include <rb_scm_evaluation.h>

Inheritance diagram for libMesh::RBSCMEvaluation:
[legend]

Public Member Functions

 RBSCMEvaluation (const Parallel::Communicator &comm LIBMESH_CAN_DEFAULT_TO_COMMWORLD)
 Constructor. More...
 
virtual ~RBSCMEvaluation ()
 Destructor. More...
 
void set_rb_theta_expansion (RBThetaExpansion &rb_theta_expansion_in)
 Set the RBThetaExpansion object. More...
 
RBThetaExpansionget_rb_theta_expansion ()
 Get a reference to the rb_theta_expansion. More...
 
virtual Real get_SCM_LB ()
 Evaluate single SCM lower bound. More...
 
virtual Real get_SCM_UB ()
 Evaluate single SCM upper bound. More...
 
Real get_C_J_stability_constraint (unsigned int j) const
 Get stability constraints (i.e. More...
 
void set_C_J_stability_constraint (unsigned int j, Real stability_constraint_in)
 Set stability constraints (i.e. More...
 
Real get_SCM_UB_vector (unsigned int j, unsigned int q)
 Get entries of SCM_UB_vector, which stores the vector y, corresponding to the minimizing eigenvectors for the elements of C_J. More...
 
void set_SCM_UB_vector (unsigned int j, unsigned int q, Real y_q)
 Set entries of SCM_UB_vector, which stores the vector y, corresponding to the minimizing eigenvectors for the elements of C_J. More...
 
unsigned int get_C_J_size ()
 Get size of the set C_J. More...
 
const RBParametersget_C_J_entry (unsigned int j)
 Get entry of C_J. More...
 
Real get_C_J_stability_value (unsigned int j)
 Get entry of C_J_stability_vector. More...
 
Real get_B_min (unsigned int i) const
 Get B_min and B_max. More...
 
Real get_B_max (unsigned int i) const
 
void set_B_min (unsigned int i, Real B_min_val)
 Set B_min and B_max. More...
 
void set_B_max (unsigned int i, Real B_max_val)
 
virtual void save_current_parameters ()
 Helper function to save current_parameters in saved_parameters. More...
 
virtual void reload_current_parameters ()
 Helper function to (re)load current_parameters from saved_parameters. More...
 
virtual void set_current_parameters_from_C_J (unsigned int C_J_index)
 Set parameters based on values saved in "C_J". 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", const bool read_binary_data=true)
 Read in the saved Offline reduced basis data to initialize the system for Online solves. More...
 
virtual void clear ()
 Clear all the data structures associated with the system. 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 RBParametersget_parameters () const
 Get the current parameters. More...
 
void set_parameters (const RBParameters &params)
 Set the current parameters to params. More...
 
const RBParametersget_parameters_min () const
 Get an RBParameters object that specifies the minimum allowable value for each parameter. More...
 
const RBParametersget_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::Communicatorcomm () 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

std::vector< RealB_min
 B_min, B_max define the bounding box. More...
 
std::vector< RealB_max
 
std::vector< RBParametersC_J
 Vector storing the greedily selected parameters during SCM training. More...
 
std::vector< RealC_J_stability_vector
 Vector storing the (truth) stability values at the parameters in C_J. More...
 
std::vector< std::vector< Real > > SCM_UB_vectors
 This matrix stores the infimizing vectors y_1( $ \mu $),...,y_Q_a( $ \mu $), for each $ \mu $ in C_J, which are used in computing the SCM upper bounds. 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)
 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 = true
 Flag to control whether reference count information is printed when print_info is called. More...
 

Private Attributes

RBParameters saved_parameters
 Vector in which to save a parameter set. More...
 
RBThetaExpansionrb_theta_expansion
 A pointer to to the object that stores the theta expansion. More...
 

Detailed Description

This class is part of the rbOOmit framework.

RBSCMEvaluation encapsulates the functionality required to evaluate the Successive Constraint Method for associated with a reduced basis model.

Author
David J. Knezevic
Date
2011

Definition at line 52 of file rb_scm_evaluation.h.

Member Typedef Documentation

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 119 of file reference_counter.h.

Constructor & Destructor Documentation

libMesh::RBSCMEvaluation::RBSCMEvaluation ( const Parallel::Communicator &comm  LIBMESH_CAN_DEFAULT_TO_COMMWORLD)

Constructor.

Definition at line 52 of file rb_scm_evaluation.C.

References B_max, B_min, C_J, C_J_stability_vector, and SCM_UB_vectors.

52  :
53  ParallelObject(comm_in)
54 {
55  // Clear SCM data vectors
56  B_min.clear();
57  B_max.clear();
58  C_J.clear();
59  C_J_stability_vector.clear();
60  SCM_UB_vectors.clear();
61 }
std::vector< Real > B_min
B_min, B_max define the bounding box.
ParallelObject(const Parallel::Communicator &comm_in)
Constructor.
std::vector< Real > B_max
std::vector< std::vector< Real > > SCM_UB_vectors
This matrix stores the infimizing vectors y_1( ),...,y_Q_a( ), for each in C_J, which are used in co...
std::vector< Real > C_J_stability_vector
Vector storing the (truth) stability values at the parameters in C_J.
std::vector< RBParameters > C_J
Vector storing the greedily selected parameters during SCM training.
libMesh::RBSCMEvaluation::~RBSCMEvaluation ( )
virtual

Destructor.

Definition at line 63 of file rb_scm_evaluation.C.

64 {
65 }

Member Function Documentation

void libMesh::RBParametrized::clear ( )
virtualinherited

Clear all the data structures associated with the system.

Reimplemented in libMesh::RBConstruction, libMesh::RBConstructionBase< Base >, libMesh::RBConstructionBase< LinearImplicitSystem >, libMesh::RBConstructionBase< CondensedEigenSystem >, libMesh::RBSCMConstruction, libMesh::TransientSystem< RBConstruction >, libMesh::RBEIMConstruction, libMesh::TransientRBConstruction, libMesh::RBEIMEvaluation, libMesh::TransientRBEvaluation, and libMesh::RBEvaluation.

Definition at line 52 of file rb_parametrized.C.

References libMesh::RBParameters::clear(), libMesh::RBParametrized::parameters, libMesh::RBParametrized::parameters_initialized, libMesh::RBParametrized::parameters_max, and libMesh::RBParametrized::parameters_min.

Referenced by libMesh::RBConstructionBase< Base >::clear(), and libMesh::RBParametrized::~RBParametrized().

53 {
54  parameters.clear();
57  parameters_initialized = false;
58 }
bool parameters_initialized
Flag indicating whether the parameters have been initialized.
RBParameters parameters_min
Vectors that define the ranges (min and max) for the parameters.
void clear()
Clear this object.
Definition: rb_parameters.C:40
RBParameters parameters
Vector storing the current parameters.
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::__libmesh_petsc_diff_solver_monitor(), libMesh::__libmesh_petsc_diff_solver_residual(), libMesh::__libmesh_petsc_preconditioner_apply(), libMesh::__libmesh_petsc_snes_jacobian(), libMesh::__libmesh_petsc_snes_postcheck(), libMesh::__libmesh_petsc_snes_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::ParmetisPartitioner::_do_repartition(), libMesh::UniformRefinementEstimator::_estimate_error(), libMesh::BoundaryInfo::_find_id_maps(), libMesh::PetscLinearSolver< T >::_petsc_shell_matrix_get_diagonal(), libMesh::SlepcEigenSolver< T >::_petsc_shell_matrix_get_diagonal(), libMesh::PetscLinearSolver< T >::_petsc_shell_matrix_mult(), libMesh::SlepcEigenSolver< T >::_petsc_shell_matrix_mult(), libMesh::PetscLinearSolver< T >::_petsc_shell_matrix_mult_add(), libMesh::EquationSystems::_read_impl(), libMesh::MeshRefinement::_refine_elements(), libMesh::MeshRefinement::_smooth_flags(), add_cube_convex_hull_to_mesh(), libMesh::TransientRBConstruction::add_IC_to_RB_space(), libMesh::ImplicitSystem::add_matrix(), libMesh::RBConstruction::add_scaled_matrix_and_vector(), libMesh::System::add_vector(), libMesh::EigenSparseLinearSolver< T >::adjoint_solve(), libMesh::UnstructuredMesh::all_second_order(), libMesh::MeshTools::Modification::all_tri(), libMesh::LaplaceMeshSmoother::allgather_graph(), libMesh::TransientRBConstruction::allocate_data_structures(), libMesh::RBConstruction::allocate_data_structures(), libMesh::TransientRBConstruction::assemble_affine_expansion(), libMesh::FEMSystem::assemble_qoi(), libMesh::MeshCommunication::assign_global_indices(), libMesh::ParmetisPartitioner::assign_partitioning(), libMesh::DofMap::attach_matrix(), libMesh::Parallel::BinSorter< KeyType, IdxType >::binsort(), libMesh::Parallel::Sort< KeyType, IdxType >::binsort(), libMesh::MeshCommunication::broadcast(), libMesh::SparseMatrix< T >::build(), libMesh::MeshTools::Generation::build_extrusion(), libMesh::Parallel::Histogram< KeyType, IdxType >::build_histogram(), libMesh::PetscNonlinearSolver< T >::build_mat_null_space(), libMesh::BoundaryInfo::build_node_list_from_side_list(), libMesh::EquationSystems::build_parallel_solution_vector(), libMesh::MeshBase::cache_elem_dims(), libMesh::System::calculate_norm(), libMesh::DofMap::check_dirichlet_bcid_consistency(), libMesh::Parallel::Sort< KeyType, IdxType >::communicate_bins(), 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::RBSCMConstruction::compute_SCM_bounds_on_training_set(), libMesh::Problem_Interface::computeF(), libMesh::Problem_Interface::computeJacobian(), libMesh::Problem_Interface::computePreconditioner(), libMesh::ExodusII_IO::copy_elemental_solution(), libMesh::MeshTools::correct_node_proc_ids(), libMesh::MeshTools::create_bounding_box(), 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::MeshCommunication::delete_remote_elements(), libMesh::DofMap::distribute_dofs(), DMlibMeshFunction(), DMlibMeshJacobian(), DMlibMeshSetSystem_libMesh(), DMVariableBounds_libMesh(), libMesh::MeshRefinement::eliminate_unrefined_patches(), libMesh::RBEIMConstruction::enrich_RB_space(), libMesh::TransientRBConstruction::enrich_RB_space(), libMesh::RBConstruction::enrich_RB_space(), AssembleOptimization::equality_constraints(), libMesh::WeightedPatchRecoveryErrorEstimator::estimate_error(), libMesh::JumpErrorEstimator::estimate_error(), libMesh::PatchRecoveryErrorEstimator::estimate_error(), libMesh::AdjointRefinementEstimator::estimate_error(), libMesh::ExactErrorEstimator::estimate_error(), libMesh::RBEIMConstruction::evaluate_mesh_function(), libMesh::MeshRefinement::flag_elements_by_elem_fraction(), libMesh::MeshRefinement::flag_elements_by_error_fraction(), libMesh::MeshRefinement::flag_elements_by_nelem_target(), libMesh::MeshCommunication::gather(), libMesh::MeshCommunication::gather_neighboring_elements(), libMesh::MeshfreeInterpolation::gather_remote_data(), libMesh::CondensedEigenSystem::get_eigenpair(), libMesh::DofMap::get_info(), libMesh::ImplicitSystem::get_linear_solver(), libMesh::EquationSystems::get_solution(), AssembleOptimization::inequality_constraints(), AssembleOptimization::inequality_constraints_jacobian(), libMesh::LocationMap< T >::init(), libMesh::TopologyMap::init(), libMesh::PetscDiffSolver::init(), libMesh::TimeSolver::init(), libMesh::TaoOptimizationSolver< T >::init(), libMesh::PetscNonlinearSolver< T >::init(), libMesh::SystemSubsetBySubdomain::init(), libMesh::EigenSystem::init_data(), libMesh::EigenSystem::init_matrices(), libMesh::ParmetisPartitioner::initialize(), libMesh::OptimizationSystem::initialize_equality_constraints_storage(), libMesh::OptimizationSystem::initialize_inequality_constraints_storage(), libMesh::RBEIMConstruction::initialize_rb_construction(), integrate_function(), 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::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::MeshRefinement::limit_level_mismatch_at_edge(), libMesh::MeshRefinement::limit_level_mismatch_at_node(), libMesh::MeshRefinement::limit_overrefined_boundary(), libMesh::MeshRefinement::limit_underrefined_boundary(), 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_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::MeshSerializer::MeshSerializer(), LinearElasticityWithContact::move_mesh(), libMesh::DistributedMesh::n_active_elem(), libMesh::MeshTools::n_active_levels(), libMesh::BoundaryInfo::n_boundary_conds(), libMesh::BoundaryInfo::n_edge_conds(), libMesh::CondensedEigenSystem::n_global_non_condensed_dofs(), libMesh::MeshTools::n_levels(), libMesh::BoundaryInfo::n_nodeset_conds(), libMesh::MeshTools::n_p_levels(), libMesh::BoundaryInfo::n_shellface_conds(), new_function_base(), 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::MeshTools::paranoid_n_levels(), libMesh::Partitioner::partition(), libMesh::MetisPartitioner::partition_range(), 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::SparseMatrix< T >::print(), FEMParameters::read(), libMesh::Nemesis_IO::read(), libMesh::CheckpointIO::read(), libMesh::XdrIO::read(), libMesh::CheckpointIO::read_header(), libMesh::XdrIO::read_header(), libMesh::RBEvaluation::read_in_vectors_from_multiple_files(), libMesh::TransientRBConstruction::read_riesz_representors_from_files(), libMesh::RBConstruction::read_riesz_representors_from_files(), libMesh::XdrIO::read_serialized_bc_names(), libMesh::XdrIO::read_serialized_bcs_helper(), libMesh::XdrIO::read_serialized_connectivity(), libMesh::XdrIO::read_serialized_nodes(), libMesh::XdrIO::read_serialized_nodesets(), libMesh::XdrIO::read_serialized_subdomain_names(), libMesh::MeshBase::recalculate_n_partitions(), libMesh::MeshCommunication::redistribute(), libMesh::MeshRefinement::refine_and_coarsen_elements(), libMesh::DistributedMesh::renumber_dof_objects(), LinearElasticityWithContact::residual_and_jacobian(), libMesh::MeshCommunication::send_coarse_ghosts(), libMesh::TransientRBConstruction::set_error_temporal_data(), libMesh::RBEIMConstruction::set_explicit_sys_subvector(), libMesh::Partitioner::set_node_processor_ids(), libMesh::DofMap::set_nonlocal_dof_objects(), libMesh::Partitioner::set_parent_processor_ids(), libMesh::LaplaceMeshSmoother::smooth(), libMesh::Parallel::Sort< KeyType, IdxType >::sort(), libMesh::MeshBase::subdomain_ids(), libMesh::BoundaryInfo::sync(), libMesh::Parallel::sync_element_data_by_parent_id(), libMesh::Parallel::sync_node_data_by_element_id(), libMesh::MeshRefinement::test_level_one(), MeshfunctionDFEM::test_mesh_function_dfem(), MeshfunctionDFEM::test_mesh_function_dfem_grad(), libMesh::MeshRefinement::test_unflagged(), PointLocatorTest::testLocator(), BoundaryInfoTest::testMesh(), SystemsTest::testProjectCubeWithMeshFunction(), libMesh::MeshTools::total_weight(), libMesh::MeshFunctionSolutionTransfer::transfer(), libMesh::MeshfreeSolutionTransfer::transfer(), libMesh::TransientRBConstruction::truth_assembly(), libMesh::RBConstruction::truth_assembly(), libMesh::MeshRefinement::uniformly_coarsen(), libMesh::TransientRBConstruction::update_RB_initial_condition_all_N(), libMesh::RBEIMConstruction::update_RB_system_matrices(), libMesh::TransientRBConstruction::update_RB_system_matrices(), libMesh::RBConstruction::update_RB_system_matrices(), libMesh::TransientRBConstruction::update_residual_terms(), libMesh::RBConstruction::update_residual_terms(), libMesh::NameBasedIO::write(), libMesh::XdrIO::write(), libMesh::RBEvaluation::write_out_vectors(), libMesh::TransientRBConstruction::write_riesz_representors_to_files(), libMesh::RBConstruction::write_riesz_representors_to_files(), libMesh::XdrIO::write_serialized_bcs_helper(), 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().

88  { return _communicator; }
const Parallel::Communicator & _communicator
void libMesh::ReferenceCounter::disable_print_counter_info ( )
staticinherited

Definition at line 107 of file reference_counter.C.

References libMesh::ReferenceCounter::_enable_print_counter.

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

108 {
109  _enable_print_counter = false;
110  return;
111 }
static bool _enable_print_counter
Flag to control whether reference count information is printed when print_info is called...
void libMesh::ReferenceCounter::enable_print_counter_info ( )
staticinherited

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

Definition at line 101 of file reference_counter.C.

References libMesh::ReferenceCounter::_enable_print_counter.

Referenced by libMesh::ReferenceCounter::n_objects().

102 {
103  _enable_print_counter = true;
104  return;
105 }
static bool _enable_print_counter
Flag to control whether reference count information is printed when print_info is called...
Real libMesh::RBSCMEvaluation::get_B_max ( unsigned int  i) const

Definition at line 142 of file rb_scm_evaluation.C.

References B_max.

Referenced by libMesh::RBDataSerialization::add_rb_scm_evaluation_data_to_builder(), libMesh::RBSCMConstruction::compute_SCM_bounding_box(), get_C_J_stability_value(), and legacy_write_offline_data_to_files().

143 {
144  if (q >= B_max.size())
145  libmesh_error_msg("Error: q is too large in get_B_max.");
146 
147  return B_max[q];
148 }
std::vector< Real > B_max
Real libMesh::RBSCMEvaluation::get_B_min ( unsigned int  i) const

Get B_min and B_max.

Definition at line 133 of file rb_scm_evaluation.C.

References B_min.

Referenced by libMesh::RBDataSerialization::add_rb_scm_evaluation_data_to_builder(), libMesh::RBSCMConstruction::compute_SCM_bounding_box(), get_C_J_stability_value(), and legacy_write_offline_data_to_files().

134 {
135  if (q >= B_min.size())
136  libmesh_error_msg("Error: q is too large in get_B_min.");
137 
138  return B_min[q];
139 }
std::vector< Real > B_min
B_min, B_max define the bounding box.
const RBParameters & libMesh::RBSCMEvaluation::get_C_J_entry ( unsigned int  j)

Get entry of C_J.

Definition at line 125 of file rb_scm_evaluation.C.

References C_J.

Referenced by get_C_J_size().

126 {
127  if (j >= C_J.size())
128  libmesh_error_msg("Error: Input parameter j is too large in get_C_J.");
129 
130  return C_J[j];
131 }
std::vector< RBParameters > C_J
Vector storing the greedily selected parameters during SCM training.
unsigned int libMesh::RBSCMEvaluation::get_C_J_size ( )

Get size of the set C_J.

Definition at line 121 of file rb_scm_evaluation.h.

References C_J, and get_C_J_entry().

122  { return cast_int<unsigned int>(C_J.size()); }
std::vector< RBParameters > C_J
Vector storing the greedily selected parameters during SCM training.
Real libMesh::RBSCMEvaluation::get_C_J_stability_constraint ( unsigned int  j) const

Get stability constraints (i.e.

the values of coercivity/ inf-sup/stability constants at the parameter values chosen during the greedy); we store one constraint for each element of C_J.

Definition at line 92 of file rb_scm_evaluation.C.

References C_J_stability_vector.

Referenced by libMesh::RBDataSerialization::add_rb_scm_evaluation_data_to_builder(), libMesh::RBSCMConstruction::evaluate_stability_constant(), and legacy_write_offline_data_to_files().

93 {
94  if (j >= C_J_stability_vector.size())
95  libmesh_error_msg("Error: Input parameter j is too large in get_C_J_stability_constraint.");
96 
97  return C_J_stability_vector[j];
98 }
std::vector< Real > C_J_stability_vector
Vector storing the (truth) stability values at the parameters in C_J.
Real libMesh::RBSCMEvaluation::get_C_J_stability_value ( unsigned int  j)

Get entry of C_J_stability_vector.

Definition at line 132 of file rb_scm_evaluation.h.

References C_J_stability_vector, get_B_max(), get_B_min(), legacy_read_offline_data_from_files(), legacy_write_offline_data_to_files(), libMesh::Real, reload_current_parameters(), save_current_parameters(), set_B_max(), set_B_min(), and set_current_parameters_from_C_J().

132 { return C_J_stability_vector[j]; }
std::vector< Real > C_J_stability_vector
Vector storing the (truth) stability values at the parameters in C_J.
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.

Definition at line 464 of file rb_parametrized.C.

References std::abs(), distance(), std::max(), and libMesh::Real.

Referenced by libMesh::RBConstructionBase< Base >::initialize_training_parameters(), and libMesh::RBParametrized::is_value_in_list().

465 {
466  if (list_of_values.empty())
467  libmesh_error_msg("Error: list_of_values is empty.");
468 
469  std::vector<Real>::const_iterator it = list_of_values.begin();
470  std::vector<Real>::const_iterator it_end = list_of_values.end();
471 
472  Real min_distance = std::numeric_limits<Real>::max();
473  Real closest_val = 0.;
474  for ( ; it != it_end; ++it)
475  {
476  Real distance = std::abs(value - *it);
477  if (distance < min_distance)
478  {
479  min_distance = distance;
480  closest_val = *it;
481  }
482  }
483 
484  return closest_val;
485 }
double abs(double a)
long double max(long double a, double b)
Real distance(const Point &p)
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
static const bool value
Definition: xdr_io.C:108
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.

Definition at line 403 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::get_n_discrete_params(), libMesh::RBParametrized::initialize_parameters(), libMesh::RBConstructionBase< Base >::initialize_training_parameters(), libMesh::RBParametrized::print_discrete_parameter_values(), libMesh::RBParametrized::valid_params(), and libMesh::RBParametrized::write_discrete_parameter_values_to_file().

404 {
406  libmesh_error_msg("Error: parameters not initialized in RBParametrized::get_discrete_parameter_values");
407 
409 }
bool parameters_initialized
Flag indicating whether the parameters have been initialized.
std::map< std::string, std::vector< Real > > _discrete_parameter_values
Map that defines the allowable values of any discrete parameters.
std::string libMesh::ReferenceCounter::get_info ( )
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().

48 {
49 #if defined(LIBMESH_ENABLE_REFERENCE_COUNTING) && defined(DEBUG)
50 
51  std::ostringstream oss;
52 
53  oss << '\n'
54  << " ---------------------------------------------------------------------------- \n"
55  << "| Reference count information |\n"
56  << " ---------------------------------------------------------------------------- \n";
57 
58  for (Counts::iterator it = _counts.begin();
59  it != _counts.end(); ++it)
60  {
61  const std::string name(it->first);
62  const unsigned int creations = it->second.first;
63  const unsigned int destructions = it->second.second;
64 
65  oss << "| " << name << " reference count information:\n"
66  << "| Creations: " << creations << '\n'
67  << "| Destructions: " << destructions << '\n';
68  }
69 
70  oss << " ---------------------------------------------------------------------------- \n";
71 
72  return oss.str();
73 
74 #else
75 
76  return "";
77 
78 #endif
79 }
std::string name(const ElemQuality q)
This function returns a string containing some name for q.
Definition: elem_quality.C:39
static Counts _counts
Actually holds the data.
unsigned int libMesh::RBParametrized::get_n_continuous_params ( ) const
inherited

Get the number of continuous parameters.

Definition at line 133 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().

134 {
136  libmesh_error_msg("Error: parameters not initialized in RBParametrized::get_n_continuous_params");
137 
139 
140  return static_cast<unsigned int>(get_n_params() - get_n_discrete_params());
141 }
bool parameters_initialized
Flag indicating whether the parameters have been initialized.
unsigned int get_n_params() const
Get the number of parameters.
libmesh_assert(j)
unsigned int get_n_discrete_params() const
Get the number of discrete parameters.
unsigned int libMesh::RBParametrized::get_n_discrete_params ( ) const
inherited

Get the number of discrete parameters.

Definition at line 143 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(), libMesh::RBConstructionBase< Base >::initialize_training_parameters(), and libMesh::RBParametrized::write_discrete_parameter_values_to_file().

144 {
146  libmesh_error_msg("Error: parameters not initialized in RBParametrized::get_n_discrete_params");
147 
148  return cast_int<unsigned int>
150 }
bool parameters_initialized
Flag indicating whether the parameters have been initialized.
const std::map< std::string, std::vector< Real > > & get_discrete_parameter_values() const
Get a const reference to the discrete parameter values.
unsigned int libMesh::RBParametrized::get_n_params ( ) const
inherited

Get the number of parameters.

Definition at line 123 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::RBConstruction::compute_max_error_bound(), libMesh::RBEIMTheta::evaluate(), libMesh::RBParametrized::get_n_continuous_params(), libMesh::RBConstructionBase< Base >::load_training_set(), libMesh::RBSCMConstruction::print_info(), libMesh::RBConstruction::print_info(), and libMesh::RBParametrized::valid_params().

124 {
126  libmesh_error_msg("Error: parameters not initialized in RBParametrized::get_n_params");
127 
128  libmesh_assert_equal_to ( parameters_min.n_parameters(), parameters_max.n_parameters() );
129 
130  return parameters_min.n_parameters();
131 }
bool parameters_initialized
Flag indicating whether the parameters have been initialized.
unsigned int n_parameters() const
Get the number of parameters that have been added.
Definition: rb_parameters.C:62
RBParameters parameters_min
Vectors that define the ranges (min and max) for the parameters.
Real libMesh::RBParametrized::get_parameter_max ( const std::string &  param_name) const
inherited

Get maximum allowable value of parameter param_name.

Definition at line 206 of file rb_parametrized.C.

References libMesh::RBParameters::get_value(), libMesh::RBParametrized::parameters_initialized, and libMesh::RBParametrized::parameters_max.

Referenced by libMesh::RBSCMConstruction::print_info(), libMesh::RBConstruction::print_info(), and libMesh::RBParametrized::valid_params().

207 {
209  libmesh_error_msg("Error: parameters not initialized in RBParametrized::get_parameter_max");
210 
211  return parameters_max.get_value(param_name);
212 }
bool parameters_initialized
Flag indicating whether the parameters have been initialized.
Real get_value(const std::string &param_name) const
Get the value of the specific parameter.
Definition: rb_parameters.C:45
Real libMesh::RBParametrized::get_parameter_min ( const std::string &  param_name) const
inherited

Get minimum allowable value of parameter param_name.

Definition at line 198 of file rb_parametrized.C.

References libMesh::RBParameters::get_value(), libMesh::RBParametrized::parameters_initialized, and libMesh::RBParametrized::parameters_min.

Referenced by libMesh::RBSCMConstruction::print_info(), libMesh::RBConstruction::print_info(), and libMesh::RBParametrized::valid_params().

199 {
201  libmesh_error_msg("Error: parameters not initialized in RBParametrized::get_parameter_min");
202 
203  return parameters_min.get_value(param_name);
204 }
bool parameters_initialized
Flag indicating whether the parameters have been initialized.
Real get_value(const std::string &param_name) const
Get the value of the specific parameter.
Definition: rb_parameters.C:45
RBParameters parameters_min
Vectors that define the ranges (min and max) for the parameters.
std::set< std::string > libMesh::RBParametrized::get_parameter_names ( ) const
inherited

Get a set that stores the parameter names.

Definition at line 152 of file rb_parametrized.C.

References libMesh::RBParameters::get_parameter_names(), libMesh::RBParametrized::parameters_initialized, and libMesh::RBParametrized::parameters_min.

Referenced by libMesh::RBDataSerialization::add_parameter_ranges_to_builder().

153 {
155  libmesh_error_msg("Error: parameters not initialized in RBParametrized::get_parameter_names");
156 
157  std::set<std::string> parameter_names;
158  parameters_min.get_parameter_names(parameter_names);
159 
160  return parameter_names;
161 }
bool parameters_initialized
Flag indicating whether the parameters have been initialized.
void get_parameter_names(std::set< std::string > &param_names) const
Fill param_names with the names of the parameters.
Definition: rb_parameters.C:68
RBParameters parameters_min
Vectors that define the ranges (min and max) for the parameters.
const RBParameters & libMesh::RBParametrized::get_parameters ( ) const
inherited

Get the current parameters.

Definition at line 174 of file rb_parametrized.C.

References libMesh::RBParametrized::parameters, and libMesh::RBParametrized::parameters_initialized.

Referenced by libMesh::TransientRBConstruction::add_scaled_mass_matrix(), libMesh::RBConstructionBase< Base >::broadcast_parameters(), libMesh::TransientRBEvaluation::cache_online_residual_terms(), libMesh::RBEIMConstruction::compute_best_fit_error(), libMesh::RBEvaluation::compute_residual_dual_norm(), libMesh::RBSCMConstruction::compute_SCM_bounds_on_training_set(), libMesh::RBSCMConstruction::enrich_C_J(), libMesh::RBEIMConstruction::enrich_RB_space(), libMesh::RBEIMTheta::evaluate(), libMesh::RBEIMEvaluation::evaluate_parametrized_function(), libMesh::RBSCMConstruction::evaluate_stability_constant(), libMesh::RBConstruction::get_RB_error_bound(), get_SCM_LB(), get_SCM_UB(), SimpleRBEvaluation::get_stability_lower_bound(), libMesh::RBConstruction::greedy_termination_test(), legacy_read_offline_data_from_files(), libMesh::TransientRBConstruction::mass_matrix_scaled_matvec(), libMesh::RBSCMConstruction::print_info(), libMesh::RBConstruction::print_info(), libMesh::RBParametrized::print_parameters(), libMesh::RBSCMConstruction::process_parameters_file(), libMesh::TransientRBEvaluation::rb_solve(), libMesh::RBEvaluation::rb_solve(), libMesh::RBEIMEvaluation::rb_solve(), save_current_parameters(), libMesh::TransientRBConstruction::truth_assembly(), libMesh::RBConstruction::truth_assembly(), libMesh::TransientRBConstruction::truth_solve(), libMesh::RBEIMConstruction::truth_solve(), libMesh::RBConstruction::truth_solve(), libMesh::TransientRBEvaluation::uncached_compute_residual_dual_norm(), and libMesh::RBConstruction::update_greedy_param_list().

175 {
177  libmesh_error_msg("Error: parameters not initialized in RBParametrized::get_current_parameters");
178 
179  return parameters;
180 }
bool parameters_initialized
Flag indicating whether the parameters have been initialized.
RBParameters parameters
Vector storing the current parameters.
const RBParameters & libMesh::RBParametrized::get_parameters_max ( ) const
inherited

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

Definition at line 190 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::RBConstruction::set_rb_construction_parameters(), and libMesh::RBParametrized::write_parameter_ranges_to_file().

191 {
193  libmesh_error_msg("Error: parameters not initialized in RBParametrized::get_parameters_max");
194 
195  return parameters_max;
196 }
bool parameters_initialized
Flag indicating whether the parameters have been initialized.
const RBParameters & libMesh::RBParametrized::get_parameters_min ( ) const
inherited

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

Definition at line 182 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::RBConstruction::set_rb_construction_parameters(), and libMesh::RBParametrized::write_parameter_ranges_to_file().

183 {
185  libmesh_error_msg("Error: parameters not initialized in RBParametrized::get_parameters_min");
186 
187  return parameters_min;
188 }
bool parameters_initialized
Flag indicating whether the parameters have been initialized.
RBParameters parameters_min
Vectors that define the ranges (min and max) for the parameters.
RBThetaExpansion & libMesh::RBSCMEvaluation::get_rb_theta_expansion ( )

Get a reference to the rb_theta_expansion.

Definition at line 72 of file rb_scm_evaluation.C.

References rb_theta_expansion.

Referenced by libMesh::RBDataSerialization::add_rb_scm_evaluation_data_to_builder(), libMesh::RBSCMConstruction::get_rb_theta_expansion(), and libMesh::RBDataDeserialization::load_rb_scm_evaluation_data().

73 {
74  if (!rb_theta_expansion)
75  libmesh_error_msg("Error: rb_theta_expansion hasn't been initialized yet");
76 
77  return *rb_theta_expansion;
78 }
RBThetaExpansion * rb_theta_expansion
A pointer to to the object that stores the theta expansion.
Real libMesh::RBSCMEvaluation::get_SCM_LB ( )
virtual

Evaluate single SCM lower bound.

Definition at line 166 of file rb_scm_evaluation.C.

References B_max, B_min, C_J, C_J_stability_vector, libMesh::RBThetaExpansion::eval_A_theta(), libMesh::RBThetaExpansion::get_n_A_terms(), libMesh::RBParametrized::get_parameters(), libMesh::libmesh_real(), rb_theta_expansion, libMesh::Real, reload_current_parameters(), save_current_parameters(), and set_current_parameters_from_C_J().

Referenced by libMesh::RBSCMConstruction::compute_SCM_bounds_on_training_set(), and SimpleRBEvaluation::get_stability_lower_bound().

167 {
168  LOG_SCOPE("get_SCM_LB()", "RBSCMEvaluation");
169 
170  // Initialize the LP
171  glp_prob * lp;
172  lp = glp_create_prob();
173  glp_set_obj_dir(lp,GLP_MIN);
174 
175  // Add columns to the LP: corresponds to
176  // the variables y_1,...y_Q_a.
177  // These are the same for each \mu in the SCM
178  // training set, hence can do this up front.
179  glp_add_cols(lp,rb_theta_expansion->get_n_A_terms());
180 
181  for (unsigned int q=0; q<rb_theta_expansion->get_n_A_terms(); q++)
182  {
183  if (B_max[q] < B_min[q]) // Invalid bound, set as free variable
184  {
185  // GLPK indexing is not zero based!
186  glp_set_col_bnds(lp, q+1, GLP_FR, 0., 0.);
187  }
188  else
189  {
190  // GLPK indexing is not zero based!
191  glp_set_col_bnds(lp, q+1, GLP_DB, B_min[q], B_max[q]);
192  }
193 
194  // If B_max is not defined, just set lower bounds...
195  // glp_set_col_bnds(lp, q+1, GLP_LO, B_min[q], 0.);
196  }
197 
198 
199  // Add rows to the LP: corresponds to the auxiliary
200  // variables that define the constraints at each
201  // mu \in C_J_M
202  unsigned int n_rows = C_J.size();
203  glp_add_rows(lp, n_rows);
204 
205  // Now put current_parameters in saved_parameters
207 
208  unsigned int matrix_size = n_rows*rb_theta_expansion->get_n_A_terms();
209  std::vector<int> ia(matrix_size+1);
210  std::vector<int> ja(matrix_size+1);
211  std::vector<double> ar(matrix_size+1);
212  unsigned int count=0;
213  for (unsigned int m=0; m<n_rows; m++)
214  {
216 
217  // Set the lower bound on the auxiliary variable
218  // due to the stability constant at mu_index
219  glp_set_row_bnds(lp, m+1, GLP_LO, C_J_stability_vector[m], 0.);
220 
221  // Now define the matrix that relates the y's
222  // to the auxiliary variables at the current
223  // value of mu.
224  for (unsigned int q=0; q<rb_theta_expansion->get_n_A_terms(); q++)
225  {
226  count++;
227 
228  ia[count] = m+1;
229  ja[count] = q+1;
230 
231  // This can only handle Reals right now
233  }
234  }
235 
236  // Now load the original parameters back into current_parameters
237  // in order to set the coefficients of the objective function
239 
240  glp_load_matrix(lp, matrix_size, &ia[0], &ja[0], &ar[0]);
241 
242  for (unsigned int q=0; q<rb_theta_expansion->get_n_A_terms(); q++)
243  {
244  glp_set_obj_coef(lp,q+1, libmesh_real( rb_theta_expansion->eval_A_theta(q,get_parameters()) ) );
245  }
246 
247  // Use this command to initialize the basis for the LP
248  // since default behavior is to use the basis from
249  // the previous solve, but that might become singular
250  // if we switch the order of constraints (as can
251  // happen when we generate a new C_J_M)
252  //lpx_cpx_basis(lp); //glp_cpx_basis(lp);
253 
254  glp_smcp parm;
255  glp_init_smcp(&parm);
256  parm.msg_lev = GLP_MSG_ERR;
257  parm.meth = GLP_DUAL;
258 
259 
260  // use the simplex method and solve the LP
261  glp_simplex(lp, &parm);
262 
263  Real min_J_obj = glp_get_obj_val(lp);
264 
265  // int simplex_status = glp_get_status(lp);
266  // if (simplex_status == GLP_UNBND)
267  // {
268  // libMesh::out << "Simplex method gave unbounded solution." << std::endl;
269  // min_J_obj = std::numeric_limits<Real>::quiet_NaN();
270  // }
271  // else
272  // {
273  // min_J_obj = glp_get_obj_val(lp);
274  // }
275 
276  // Destroy the LP
277  glp_delete_prob(lp);
278 
279  return min_J_obj;
280 }
T libmesh_real(T a)
std::vector< Real > B_min
B_min, B_max define the bounding box.
virtual Number eval_A_theta(unsigned int q, const RBParameters &mu)
Evaluate theta_q_a at the current parameter.
unsigned int get_n_A_terms() const
Get Q_a, the number of terms in the affine expansion for the bilinear form.
virtual void save_current_parameters()
Helper function to save current_parameters in saved_parameters.
std::vector< Real > B_max
std::vector< Real > C_J_stability_vector
Vector storing the (truth) stability values at the parameters in C_J.
virtual void reload_current_parameters()
Helper function to (re)load current_parameters from saved_parameters.
std::vector< RBParameters > C_J
Vector storing the greedily selected parameters during SCM training.
RBThetaExpansion * rb_theta_expansion
A pointer to to the object that stores the theta expansion.
virtual void set_current_parameters_from_C_J(unsigned int C_J_index)
Set parameters based on values saved in "C_J".
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
const RBParameters & get_parameters() const
Get the current parameters.
Real libMesh::RBSCMEvaluation::get_SCM_UB ( )
virtual

Evaluate single SCM upper bound.

Definition at line 282 of file rb_scm_evaluation.C.

References C_J, libMesh::RBThetaExpansion::eval_A_theta(), libMesh::RBThetaExpansion::get_n_A_terms(), libMesh::RBParametrized::get_parameters(), libMesh::libmesh_real(), rb_theta_expansion, libMesh::Real, and SCM_UB_vectors.

Referenced by libMesh::RBSCMConstruction::compute_SCM_bounds_on_training_set().

283 {
284  LOG_SCOPE("get_SCM_UB()", "RBSCMEvaluation");
285 
286  // Add rows to the LP: corresponds to the auxiliary
287  // variables that define the constraints at each
288  // mu \in C_J
289  unsigned int n_rows = C_J.size();
290 
291  // For each mu, we just find the minimum of J_obj over
292  // the subset of vectors in SCM_UB_vectors corresponding
293  // to C_J_M (SCM_UB_vectors contains vectors for all of
294  // C_J).
295  Real min_J_obj = 0.;
296  for (unsigned int m=0; m<n_rows; m++)
297  {
298  const std::vector<Real> UB_vector = SCM_UB_vectors[m];
299 
300  Real J_obj = 0.;
301  for (unsigned int q=0; q<rb_theta_expansion->get_n_A_terms(); q++)
302  {
303  J_obj += libmesh_real( rb_theta_expansion->eval_A_theta(q,get_parameters()) )*UB_vector[q];
304  }
305 
306  if ((m==0) || (J_obj < min_J_obj))
307  {
308  min_J_obj = J_obj;
309  }
310  }
311 
312  return min_J_obj;
313 }
T libmesh_real(T a)
virtual Number eval_A_theta(unsigned int q, const RBParameters &mu)
Evaluate theta_q_a at the current parameter.
unsigned int get_n_A_terms() const
Get Q_a, the number of terms in the affine expansion for the bilinear form.
std::vector< std::vector< Real > > SCM_UB_vectors
This matrix stores the infimizing vectors y_1( ),...,y_Q_a( ), for each in C_J, which are used in co...
std::vector< RBParameters > C_J
Vector storing the greedily selected parameters during SCM training.
RBThetaExpansion * rb_theta_expansion
A pointer to to the object that stores the theta expansion.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
const RBParameters & get_parameters() const
Get the current parameters.
Real libMesh::RBSCMEvaluation::get_SCM_UB_vector ( unsigned int  j,
unsigned int  q 
)

Get entries of SCM_UB_vector, which stores the vector y, corresponding to the minimizing eigenvectors for the elements of C_J.

Definition at line 113 of file rb_scm_evaluation.C.

References SCM_UB_vectors.

Referenced by libMesh::RBDataSerialization::add_rb_scm_evaluation_data_to_builder(), and legacy_write_offline_data_to_files().

114 {
115  // First make sure that j <= J
116  if (j >= SCM_UB_vectors.size())
117  libmesh_error_msg("Error: We must have j < J in get_SCM_UB_vector.");
118 
119  if (q >= SCM_UB_vectors[0].size())
120  libmesh_error_msg("Error: q is too large in get_SCM_UB_vector.");
121 
122  return SCM_UB_vectors[j][q];
123 }
std::vector< std::vector< Real > > SCM_UB_vectors
This matrix stores the infimizing vectors y_1( ),...,y_Q_a( ), for each in C_J, which are used in co...
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 185 of file reference_counter.h.

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

Referenced by libMesh::ReferenceCounter::n_objects(), and libMesh::ReferenceCountedObject< RBParametrized >::ReferenceCountedObject().

186 {
187  Threads::spin_mutex::scoped_lock lock(Threads::spin_mtx);
188  std::pair<unsigned int, unsigned int> & p = _counts[name];
189 
190  p.first++;
191 }
std::string name(const ElemQuality q)
This function returns a string containing some name for q.
Definition: elem_quality.C:39
spin_mutex spin_mtx
A convenient spin mutex object which can be used for obtaining locks.
Definition: threads.C:29
static Counts _counts
Actually holds the data.
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 198 of file reference_counter.h.

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

Referenced by libMesh::ReferenceCounter::n_objects(), and libMesh::ReferenceCountedObject< RBParametrized >::~ReferenceCountedObject().

199 {
200  Threads::spin_mutex::scoped_lock lock(Threads::spin_mtx);
201  std::pair<unsigned int, unsigned int> & p = _counts[name];
202 
203  p.second++;
204 }
std::string name(const ElemQuality q)
This function returns a string containing some name for q.
Definition: elem_quality.C:39
spin_mutex spin_mtx
A convenient spin mutex object which can be used for obtaining locks.
Definition: threads.C:29
static Counts _counts
Actually holds the data.
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.

Definition at line 60 of file rb_parametrized.C.

References libMesh::RBParametrized::_discrete_parameter_values, libMesh::RBParameters::begin(), libMesh::RBParameters::end(), libMesh::RBParameters::get_value(), libMesh::RBParameters::n_parameters(), 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::RBParametrized::initialize_parameters(), libMesh::RBEIMConstruction::initialize_parametrized_functions_in_training_set(), libMesh::RBDataDeserialization::load_parameter_ranges(), libMesh::RBSCMConstruction::perform_SCM_greedy(), libMesh::RBSCMConstruction::process_parameters_file(), libMesh::RBParametrized::read_parameter_data_from_files(), libMesh::RBConstruction::set_rb_construction_parameters(), and libMesh::RBConstruction::train_reduced_basis().

63 {
64  // Check that the min/max vectors are valid
65  {
66  const std::string err_string = "Error: Invalid mu_min/mu_max in RBParameters constructor.";
67  bool valid_min_max = (mu_min_in.n_parameters() == mu_max_in.n_parameters());
68  if (!valid_min_max)
69  libmesh_error_msg(err_string);
70 
71  else
72  {
73  RBParameters::const_iterator it = mu_min_in.begin();
74  RBParameters::const_iterator it_end = mu_min_in.end();
75  for ( ; it != it_end; ++it)
76  {
77  std::string param_name = it->first;
78  if (mu_min_in.get_value(param_name) > mu_max_in.get_value(param_name))
79  libmesh_error_msg(err_string);
80  }
81  }
82  }
83 
84  parameters_min = mu_min_in;
85  parameters_max = mu_max_in;
86 
87  // Add in min/max values due to the discrete parameters
88  {
89  std::map<std::string, std::vector<Real>>::const_iterator it =
90  discrete_parameter_values.begin();
91  const std::map<std::string, std::vector<Real>>::const_iterator it_end =
92  discrete_parameter_values.end();
93  for ( ; it != it_end; ++it)
94  {
95  if (it->second.empty())
96  libmesh_error_msg("Error: List of discrete parameters for " << it->first << " is empty.");
97 
98  Real min_val = *std::min_element(it->second.begin(), it->second.end());
99  Real max_val = *std::max_element(it->second.begin(), it->second.end());
100 
101  libmesh_assert_less_equal(min_val,max_val);
102 
103  parameters_min.set_value(it->first, min_val);
104  parameters_max.set_value(it->first, max_val);
105  }
106 
107  _discrete_parameter_values = discrete_parameter_values;
108  }
109 
110  parameters_initialized = true;
111 
112  // Initialize the current parameters to parameters_min
114 }
bool parameters_initialized
Flag indicating whether the parameters have been initialized.
RBParameters parameters_min
Vectors that define the ranges (min and max) for the parameters.
void set_parameters(const RBParameters &params)
Set the current parameters to params.
std::map< std::string, std::vector< Real > > _discrete_parameter_values
Map that defines the allowable values of any discrete parameters.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
void set_value(const std::string &param_name, Real value)
Set the value of the specified parameter.
Definition: rb_parameters.C:57
const_iterator begin() const
Get a constant iterator to beginning of this RBParameters object.
Definition: rb_parameters.C:80
std::map< std::string, Real >::const_iterator const_iterator
Definition: rb_parameters.h:57
void libMesh::RBParametrized::initialize_parameters ( const RBParametrized rb_parametrized)
inherited

Initialize the parameter ranges and set current_parameters.

Definition at line 116 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().

117 {
118  initialize_parameters(rb_parametrized.get_parameters_min(),
119  rb_parametrized.get_parameters_max(),
120  rb_parametrized.get_discrete_parameter_values());
121 }
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.
bool libMesh::RBParametrized::is_discrete_parameter ( const std::string &  mu_name) const
inherited

Is parameter mu_name discrete?

Definition at line 395 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::RBConstructionBase< Base >::initialize_training_parameters(), libMesh::RBConstruction::print_info(), libMesh::RBParametrized::valid_params(), and libMesh::RBParametrized::write_parameter_ranges_to_file().

396 {
398  libmesh_error_msg("Error: parameters not initialized in RBParametrized::is_discrete_parameter");
399 
400  return (_discrete_parameter_values.find(mu_name) != _discrete_parameter_values.end());
401 }
bool parameters_initialized
Flag indicating whether the parameters have been initialized.
std::map< std::string, std::vector< Real > > _discrete_parameter_values
Map that defines the allowable values of any discrete parameters.
void libMesh::RBSCMEvaluation::legacy_read_offline_data_from_files ( const std::string &  directory_name = "offline_data",
const bool  read_binary_data = true 
)
virtual

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

Note
This is a legacy method, use RBDataSerialization instead.

Definition at line 448 of file rb_scm_evaluation.C.

References B_max, B_min, libMesh::RBParameters::begin(), C_J, C_J_stability_vector, libMesh::Xdr::close(), libMesh::DECODE, libMesh::RBParameters::end(), libMesh::RBThetaExpansion::get_n_A_terms(), libMesh::RBParametrized::get_parameters(), rb_theta_expansion, libMesh::READ, libMesh::RBParametrized::read_parameter_data_from_files(), libMesh::Real, and SCM_UB_vectors.

Referenced by get_C_J_stability_value().

450 {
451  LOG_SCOPE("legacy_read_offline_data_from_files()", "RBSCMEvaluation");
452 
453  // The reading mode: DECODE for binary, READ for ASCII
454  XdrMODE mode = read_binary_data ? DECODE : READ;
455 
456  // The suffix to use for all the files that are written out
457  const std::string suffix = read_binary_data ? ".xdr" : ".dat";
458 
459  // The string stream we'll use to make the file names
460  std::ostringstream file_name;
461 
462  // Read in the parameter ranges
463  file_name.str("");
464  file_name << directory_name << "/parameter_ranges" << suffix;
465  std::string continuous_param_file_name = file_name.str();
466 
467  // Read in the discrete parameter values
468  file_name.str("");
469  file_name << directory_name << "/discrete_parameter_values" << suffix;
470  std::string discrete_param_file_name = file_name.str();
471  read_parameter_data_from_files(continuous_param_file_name,
472  discrete_param_file_name,
473  read_binary_data);
474 
475  // Read in the bounding box min values
476  // Note that there are Q_a values
477  file_name.str("");
478  file_name << directory_name << "/B_min" << suffix;
479  Xdr B_min_in(file_name.str(), mode);
480 
481  B_min.clear();
482  for (unsigned int i=0; i<rb_theta_expansion->get_n_A_terms(); i++)
483  {
484  Real B_min_val;
485  B_min_in >> B_min_val;
486  B_min.push_back(B_min_val);
487  }
488  B_min_in.close();
489 
490 
491  // Read in the bounding box max values
492  // Note that there are Q_a values
493  file_name.str("");
494  file_name << directory_name << "/B_max" << suffix;
495  Xdr B_max_in(file_name.str(), mode);
496 
497  B_max.clear();
498  for (unsigned int i=0; i<rb_theta_expansion->get_n_A_terms(); i++)
499  {
500  Real B_max_val;
501  B_max_in >> B_max_val;
502  B_max.push_back(B_max_val);
503  }
504 
505  // Read in the length of the C_J data
506  file_name.str("");
507  file_name << directory_name << "/C_J_length" << suffix;
508  Xdr C_J_length_in(file_name.str(), mode);
509 
510  unsigned int C_J_length;
511  C_J_length_in >> C_J_length;
512  C_J_length_in.close();
513 
514  // Read in C_J_stability_vector
515  file_name.str("");
516  file_name << directory_name << "/C_J_stability_vector" << suffix;
517  Xdr C_J_stability_vector_in(file_name.str(), mode);
518 
519  C_J_stability_vector.clear();
520  for (unsigned int i=0; i<C_J_length; i++)
521  {
522  Real C_J_stability_val;
523  C_J_stability_vector_in >> C_J_stability_val;
524  C_J_stability_vector.push_back(C_J_stability_val);
525  }
526  C_J_stability_vector_in.close();
527 
528  // Read in C_J
529  file_name.str("");
530  file_name << directory_name << "/C_J" << suffix;
531  Xdr C_J_in(file_name.str(), mode);
532 
533  // Resize C_J based on C_J_stability_vector and Q_a
534  C_J.resize( C_J_length );
535  for (std::size_t i=0; i<C_J.size(); i++)
536  {
539  for ( ; it != it_end; ++it)
540  {
541  std::string param_name = it->first;
542  Real param_value;
543  C_J_in >> param_value;
544  C_J[i].set_value(param_name, param_value);
545  }
546  }
547  C_J_in.close();
548 
549 
550  // Read in SCM_UB_vectors get_SCM_UB_vector
551  file_name.str("");
552  file_name << directory_name << "/SCM_UB_vectors" << suffix;
553  Xdr SCM_UB_vectors_in(file_name.str(), mode);
554 
555  // Resize SCM_UB_vectors based on C_J_stability_vector and Q_a
556  SCM_UB_vectors.resize( C_J_stability_vector.size() );
557  for (std::size_t i=0; i<SCM_UB_vectors.size(); i++)
558  {
560  for (unsigned int j=0; j<rb_theta_expansion->get_n_A_terms(); j++)
561  {
562  SCM_UB_vectors_in >> SCM_UB_vectors[i][j];
563  }
564  }
565  SCM_UB_vectors_in.close();
566 }
std::vector< Real > B_min
B_min, B_max define the bounding box.
unsigned int get_n_A_terms() const
Get Q_a, the number of terms in the affine expansion for the bilinear form.
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.
std::vector< Real > B_max
std::vector< std::vector< Real > > SCM_UB_vectors
This matrix stores the infimizing vectors y_1( ),...,y_Q_a( ), for each in C_J, which are used in co...
std::vector< Real > C_J_stability_vector
Vector storing the (truth) stability values at the parameters in C_J.
XdrMODE
Defines an enum for read/write mode in Xdr format.
Definition: enum_xdr_mode.h:32
std::vector< RBParameters > C_J
Vector storing the greedily selected parameters during SCM training.
RBThetaExpansion * rb_theta_expansion
A pointer to to the object that stores the theta expansion.
const_iterator end() const
Get a constant iterator to the end of this RBParameters object.
Definition: rb_parameters.C:85
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
const_iterator begin() const
Get a constant iterator to beginning of this RBParameters object.
Definition: rb_parameters.C:80
const RBParameters & get_parameters() const
Get the current parameters.
std::map< std::string, Real >::const_iterator const_iterator
Definition: rb_parameters.h:57
void libMesh::RBSCMEvaluation::legacy_write_offline_data_to_files ( const std::string &  directory_name = "offline_data",
const bool  write_binary_data = true 
)
virtual

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.

Definition at line 330 of file rb_scm_evaluation.C.

References B_max, B_min, C_J, C_J_stability_vector, libMesh::ENCODE, get_B_max(), get_B_min(), get_C_J_stability_constraint(), libMesh::RBThetaExpansion::get_n_A_terms(), get_SCM_UB_vector(), libMesh::Utility::mkdir(), libMesh::out, libMesh::ParallelObject::processor_id(), rb_theta_expansion, libMesh::Real, SCM_UB_vectors, libMesh::WRITE, and libMesh::RBParametrized::write_parameter_data_to_files().

Referenced by get_C_J_stability_value().

332 {
333  LOG_SCOPE("legacy_write_offline_data_to_files()", "RBSCMEvaluation");
334 
335  if (this->processor_id() == 0)
336  {
337  // Make a directory to store all the data files
338  if (mkdir(directory_name.c_str(), 0777) == -1)
339  {
340  libMesh::out << "In RBSCMEvaluation::write_offline_data_to_files, directory "
341  << directory_name << " already exists, overwriting contents." << std::endl;
342  }
343 
344  // The writing mode: ENCODE for binary, WRITE for ASCII
345  XdrMODE mode = write_binary_data ? ENCODE : WRITE;
346 
347  // The suffix to use for all the files that are written out
348  const std::string suffix = write_binary_data ? ".xdr" : ".dat";
349 
350  // Stream for building the file names
351  std::ostringstream file_name;
352 
353  // Write out the parameter ranges
354  file_name.str("");
355  file_name << directory_name << "/parameter_ranges" << suffix;
356  std::string continuous_param_file_name = file_name.str();
357 
358  // Write out the discrete parameter values
359  file_name.str("");
360  file_name << directory_name << "/discrete_parameter_values" << suffix;
361  std::string discrete_param_file_name = file_name.str();
362 
363  write_parameter_data_to_files(continuous_param_file_name,
364  discrete_param_file_name,
365  write_binary_data);
366 
367  // Write out the bounding box min values
368  file_name.str("");
369  file_name << directory_name << "/B_min" << suffix;
370  Xdr B_min_out(file_name.str(), mode);
371 
372  for (std::size_t i=0; i<B_min.size(); i++)
373  {
374  Real B_min_i = get_B_min(i);
375  B_min_out << B_min_i;
376  }
377  B_min_out.close();
378 
379 
380  // Write out the bounding box max values
381  file_name.str("");
382  file_name << directory_name << "/B_max" << suffix;
383  Xdr B_max_out(file_name.str(), mode);
384 
385  for (std::size_t i=0; i<B_max.size(); i++)
386  {
387  Real B_max_i = get_B_max(i);
388  B_max_out << B_max_i;
389  }
390  B_max_out.close();
391 
392  // Write out the length of the C_J data
393  file_name.str("");
394  file_name << directory_name << "/C_J_length" << suffix;
395  Xdr C_J_length_out(file_name.str(), mode);
396 
397  unsigned int C_J_length = C_J.size();
398  C_J_length_out << C_J_length;
399  C_J_length_out.close();
400 
401  // Write out C_J_stability_vector
402  file_name.str("");
403  file_name << directory_name << "/C_J_stability_vector" << suffix;
404  Xdr C_J_stability_vector_out(file_name.str(), mode);
405 
406  for (std::size_t i=0; i<C_J_stability_vector.size(); i++)
407  {
408  Real C_J_stability_constraint_i = get_C_J_stability_constraint(i);
409  C_J_stability_vector_out << C_J_stability_constraint_i;
410  }
411  C_J_stability_vector_out.close();
412 
413  // Write out C_J
414  file_name.str("");
415  file_name << directory_name << "/C_J" << suffix;
416  Xdr C_J_out(file_name.str(), mode);
417 
418  for (std::size_t i=0; i<C_J.size(); i++)
419  {
420  RBParameters::const_iterator it = C_J[i].begin();
421  RBParameters::const_iterator it_end = C_J[i].end();
422  for ( ; it != it_end; ++it)
423  {
424  // Need to make a copy of the value so that it's not const
425  // Xdr is not templated on const's
426  Real param_value = it->second;
427  C_J_out << param_value;
428  }
429  }
430  C_J_out.close();
431 
432  // Write out SCM_UB_vectors get_SCM_UB_vector
433  file_name.str("");
434  file_name << directory_name << "/SCM_UB_vectors" << suffix;
435  Xdr SCM_UB_vectors_out(file_name.str(), mode);
436 
437  for (std::size_t i=0; i<SCM_UB_vectors.size(); i++)
438  for (unsigned int j=0; j<rb_theta_expansion->get_n_A_terms(); j++)
439  {
440  Real SCM_UB_vector_ij = get_SCM_UB_vector(i,j);
441  SCM_UB_vectors_out << SCM_UB_vector_ij;
442  }
443  SCM_UB_vectors_out.close();
444  }
445 }
std::vector< Real > B_min
B_min, B_max define the bounding box.
Real get_B_min(unsigned int i) const
Get B_min and B_max.
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.
unsigned int get_n_A_terms() const
Get Q_a, the number of terms in the affine expansion for the bilinear form.
int mkdir(const char *pathname)
Create a directory.
Definition: utility.C:140
Real get_B_max(unsigned int i) const
std::vector< Real > B_max
std::vector< std::vector< Real > > SCM_UB_vectors
This matrix stores the infimizing vectors y_1( ),...,y_Q_a( ), for each in C_J, which are used in co...
std::vector< Real > C_J_stability_vector
Vector storing the (truth) stability values at the parameters in C_J.
Real get_C_J_stability_constraint(unsigned int j) const
Get stability constraints (i.e.
XdrMODE
Defines an enum for read/write mode in Xdr format.
Definition: enum_xdr_mode.h:32
std::vector< RBParameters > C_J
Vector storing the greedily selected parameters during SCM training.
RBThetaExpansion * rb_theta_expansion
A pointer to to the object that stores the theta expansion.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
OStreamProxy out
std::map< std::string, Real >::const_iterator const_iterator
Definition: rb_parameters.h:57
Real get_SCM_UB_vector(unsigned int j, unsigned int q)
Get entries of SCM_UB_vector, which stores the vector y, corresponding to the minimizing eigenvectors...
processor_id_type processor_id() const
static unsigned int libMesh::ReferenceCounter::n_objects ( )
staticinherited
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::ParmetisPartitioner::_do_repartition(), libMesh::BoundaryInfo::_find_id_maps(), libMesh::DistributedMesh::add_elem(), libMesh::DistributedMesh::add_node(), libMesh::LaplaceMeshSmoother::allgather_graph(), libMesh::FEMSystem::assembly(), libMesh::ParmetisPartitioner::assign_partitioning(), libMesh::AztecLinearSolver< T >::AztecLinearSolver(), libMesh::MeshCommunication::broadcast(), libMesh::BoundaryInfo::build_node_list_from_side_list(), libMesh::DistributedMesh::clear(), libMesh::Nemesis_IO_Helper::compute_border_node_ids(), libMesh::Nemesis_IO_Helper::construct_nemesis_filename(), libMesh::MeshTools::correct_node_proc_ids(), libMesh::UnstructuredMesh::create_pid_mesh(), libMesh::MeshTools::create_processor_bounding_box(), libMesh::DofMap::distribute_dofs(), libMesh::DofMap::distribute_local_dofs_node_major(), libMesh::DofMap::distribute_local_dofs_var_major(), libMesh::DistributedMesh::DistributedMesh(), libMesh::EnsightIO::EnsightIO(), libMesh::MeshCommunication::gather(), libMesh::MeshCommunication::gather_neighboring_elements(), libMesh::MeshBase::get_info(), libMesh::EquationSystems::get_solution(), libMesh::SystemSubsetBySubdomain::init(), libMesh::ParmetisPartitioner::initialize(), libMesh::Nemesis_IO_Helper::initialize(), libMesh::DistributedMesh::insert_elem(), 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::MeshBase::n_elem_on_proc(), libMesh::MeshBase::n_nodes_on_proc(), libMesh::SparsityPattern::Build::parallel_sync(), libMesh::Partitioner::partition(), libMesh::MeshBase::partition(), libMesh::Partitioner::partition_unpartitioned_elements(), libMesh::PetscLinearSolver< T >::PetscLinearSolver(), libMesh::System::point_gradient(), libMesh::System::point_hessian(), libMesh::System::point_value(), libMesh::SparseMatrix< T >::print(), libMesh::NameBasedIO::read(), libMesh::Nemesis_IO::read(), libMesh::CheckpointIO::read(), libMesh::CheckpointIO::read_connectivity(), libMesh::XdrIO::read_header(), libMesh::CheckpointIO::read_nodes(), libMesh::MeshCommunication::redistribute(), libMesh::DistributedMesh::renumber_dof_objects(), libMesh::Partitioner::repartition(), libMesh::MeshCommunication::send_coarse_ghosts(), libMesh::Partitioner::set_node_processor_ids(), libMesh::DofMap::set_nonlocal_dof_objects(), libMesh::Parallel::Sort< KeyType, IdxType >::sort(), WriteVecAndScalar::testWrite(), libMesh::MeshRefinement::uniformly_coarsen(), libMesh::DistributedMesh::update_parallel_id_counts(), libMesh::GMVIO::write_binary(), libMesh::GMVIO::write_discontinuous_gmv(), libMesh::XdrIO::write_serialized_bcs_helper(), libMesh::XdrIO::write_serialized_connectivity(), libMesh::XdrIO::write_serialized_nodes(), and libMesh::XdrIO::write_serialized_nodesets().

94  { return cast_int<processor_id_type>(_communicator.size()); }
unsigned int size() const
Definition: parallel.h:726
const Parallel::Communicator & _communicator
void libMesh::RBParametrized::print_discrete_parameter_values ( ) const
inherited

Print out all the discrete parameter values.

Definition at line 411 of file rb_parametrized.C.

References libMesh::RBParametrized::get_discrete_parameter_values(), and libMesh::out.

Referenced by libMesh::RBSCMConstruction::print_info(), and libMesh::RBConstruction::print_info().

412 {
413  std::map<std::string, std::vector<Real>>::const_iterator it =
415  const std::map<std::string, std::vector<Real>>::const_iterator it_end =
417 
418  for ( ; it != it_end; ++it)
419  {
420  libMesh::out << "Discrete parameter " << it->first << ", values: ";
421 
422  std::vector<Real> values = it->second;
423  for (std::size_t i=0; i<values.size(); i++)
424  libMesh::out << values[i] << " ";
425  libMesh::out << std::endl;
426  }
427 }
OStreamProxy out
const std::map< std::string, std::vector< Real > > & get_discrete_parameter_values() const
Get a const reference to the discrete parameter values.
void libMesh::ReferenceCounter::print_info ( std::ostream &  out = libMesh::out)
staticinherited

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

Definition at line 88 of file reference_counter.C.

References libMesh::ReferenceCounter::_enable_print_counter, and libMesh::ReferenceCounter::get_info().

Referenced by libMesh::LibMeshInit::LibMeshInit().

89 {
91  out_stream << ReferenceCounter::get_info();
92 }
static std::string get_info()
Gets a string containing the reference information.
static bool _enable_print_counter
Flag to control whether reference count information is printed when print_info is called...
void libMesh::RBParametrized::print_parameters ( ) const
inherited

Print the current parameters.

Definition at line 214 of file rb_parametrized.C.

References libMesh::RBParametrized::get_parameters(), libMesh::RBParametrized::parameters_initialized, and libMesh::RBParameters::print().

Referenced by libMesh::RBConstruction::train_reduced_basis().

215 {
217  libmesh_error_msg("Error: parameters not initialized in RBParametrized::print_current_parameters");
218 
219  get_parameters().print();
220 }
bool parameters_initialized
Flag indicating whether the parameters have been initialized.
void print() const
Print the parameters.
const RBParameters & get_parameters() const
Get the current parameters.
processor_id_type libMesh::ParallelObject::processor_id ( ) const
inherited
Returns
The rank of this processor in the group.

Definition at line 99 of file parallel_object.h.

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

Referenced by libMesh::BoundaryInfo::_find_id_maps(), libMesh::EquationSystems::_read_impl(), libMesh::DistributedMesh::add_elem(), libMesh::BoundaryInfo::add_elements(), libMesh::DofMap::add_neighbors_to_send_list(), libMesh::DistributedMesh::add_node(), libMesh::MeshRefinement::add_node(), libMesh::MeshTools::Modification::all_tri(), libMesh::FEMSystem::assembly(), libMesh::ParmetisPartitioner::assign_partitioning(), libMesh::MeshCommunication::broadcast(), libMesh::EquationSystems::build_discontinuous_solution_vector(), libMesh::Nemesis_IO_Helper::build_element_and_node_maps(), libMesh::ParmetisPartitioner::build_graph(), libMesh::InfElemBuilder::build_inf_elem(), libMesh::BoundaryInfo::build_node_list_from_side_list(), libMesh::DofMap::build_sparsity(), libMesh::DistributedMesh::clear(), 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::MeshTools::correct_node_proc_ids(), libMesh::ExodusII_IO_Helper::create(), libMesh::DistributedMesh::delete_elem(), libMesh::DistributedMesh::delete_node(), libMesh::MeshCommunication::delete_remote_elements(), libMesh::DofMap::distribute_dofs(), libMesh::DofMap::distribute_local_dofs_node_major(), libMesh::DofMap::distribute_local_dofs_var_major(), libMesh::DistributedMesh::DistributedMesh(), libMesh::EnsightIO::EnsightIO(), libMesh::RBEIMConstruction::evaluate_mesh_function(), libMesh::MeshFunction::find_element(), libMesh::MeshFunction::find_elements(), libMesh::UnstructuredMesh::find_neighbors(), libMesh::MeshCommunication::gather(), libMesh::MeshCommunication::gather_neighboring_elements(), 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(), libMesh::Nemesis_IO_Helper::get_loadbal_param(), libMesh::Nemesis_IO_Helper::get_node_cmap(), libMesh::Nemesis_IO_Helper::get_node_map(), libMesh::Nemesis_IO_Helper::get_ns_param_global(), libMesh::EquationSystems::get_solution(), libMesh::Nemesis_IO_Helper::get_ss_param_global(), libMesh::SparsityPattern::Build::handle_vi_vj(), libMesh::SystemSubsetBySubdomain::init(), HeatSystem::init_data(), libMesh::ParmetisPartitioner::initialize(), 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::RBEIMEvaluation::legacy_write_offline_data_to_files(), libMesh::RBEvaluation::legacy_write_offline_data_to_files(), legacy_write_offline_data_to_files(), libMesh::RBEIMEvaluation::legacy_write_out_interpolation_points_elem(), libMesh::MeshTools::libmesh_assert_parallel_consistent_procids< Elem >(), libMesh::MeshTools::libmesh_assert_parallel_consistent_procids< Node >(), 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::MeshBase::n_active_local_elem(), libMesh::BoundaryInfo::n_boundary_conds(), libMesh::BoundaryInfo::n_edge_conds(), libMesh::System::n_local_dofs(), libMesh::MeshBase::n_local_elem(), libMesh::MeshBase::n_local_nodes(), libMesh::BoundaryInfo::n_nodeset_conds(), libMesh::BoundaryInfo::n_shellface_conds(), libMesh::WeightedPatchRecoveryErrorEstimator::EstimateError::operator()(), libMesh::SparsityPattern::Build::operator()(), libMesh::PatchRecoveryErrorEstimator::EstimateError::operator()(), libMesh::SparsityPattern::Build::parallel_sync(), libMesh::MetisPartitioner::partition_range(), libMesh::System::point_gradient(), libMesh::System::point_hessian(), libMesh::System::point_value(), libMesh::SparseMatrix< T >::print(), libMesh::NumericVector< T >::print_global(), 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::CheckpointIO::read(), libMesh::XdrIO::read(), libMesh::ExodusII_IO_Helper::read_elem_num_map(), libMesh::CheckpointIO::read_header(), libMesh::XdrIO::read_header(), libMesh::RBEvaluation::read_in_vectors_from_multiple_files(), libMesh::ExodusII_IO_Helper::read_node_num_map(), libMesh::TransientRBConstruction::read_riesz_representors_from_files(), libMesh::RBConstruction::read_riesz_representors_from_files(), libMesh::XdrIO::read_serialized_bc_names(), libMesh::XdrIO::read_serialized_bcs_helper(), libMesh::XdrIO::read_serialized_connectivity(), libMesh::XdrIO::read_serialized_nodes(), libMesh::XdrIO::read_serialized_nodesets(), libMesh::XdrIO::read_serialized_subdomain_names(), libMesh::MeshCommunication::redistribute(), libMesh::DistributedMesh::renumber_dof_objects(), libMesh::MeshCommunication::send_coarse_ghosts(), libMesh::Partitioner::set_node_processor_ids(), libMesh::DofMap::set_nonlocal_dof_objects(), libMesh::LaplaceMeshSmoother::smooth(), DefaultCouplingTest::testCoupling(), PointNeighborCouplingTest::testCoupling(), BoundaryInfoTest::testShellFaceConstraints(), WriteVecAndScalar::testWrite(), libMesh::MeshTools::total_weight(), libMesh::MeshRefinement::uniformly_coarsen(), libMesh::Parallel::Packing< Node * >::unpack(), libMesh::Parallel::Packing< Elem * >::unpack(), libMesh::DistributedMesh::update_parallel_id_counts(), libMesh::DTKAdapter::update_variable_values(), libMesh::MeshTools::weight(), libMesh::NameBasedIO::write(), libMesh::CheckpointIO::write(), libMesh::XdrIO::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_elements(), libMesh::ExodusII_IO::write_global_data(), libMesh::ExodusII_IO_Helper::write_global_values(), 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::ExodusII_IO::write_nodal_data(), libMesh::ExodusII_IO::write_nodal_data_discontinuous(), libMesh::ExodusII_IO_Helper::write_nodal_values(), libMesh::Nemesis_IO_Helper::write_nodesets(), libMesh::ExodusII_IO_Helper::write_nodesets(), libMesh::RBEvaluation::write_out_vectors(), write_output_solvedata(), libMesh::RBConstruction::write_riesz_representors_to_files(), libMesh::XdrIO::write_serialized_bc_names(), libMesh::XdrIO::write_serialized_bcs_helper(), libMesh::XdrIO::write_serialized_connectivity(), libMesh::XdrIO::write_serialized_nodes(), libMesh::XdrIO::write_serialized_nodesets(), libMesh::XdrIO::write_serialized_subdomain_names(), libMesh::Nemesis_IO_Helper::write_sidesets(), libMesh::ExodusII_IO_Helper::write_sidesets(), libMesh::ExodusII_IO::write_timestep(), and libMesh::ExodusII_IO_Helper::write_timestep().

100  { return cast_int<processor_id_type>(_communicator.rank()); }
const Parallel::Communicator & _communicator
unsigned int rank() const
Definition: parallel.h:724
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.

Definition at line 301 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::RBEvaluation::legacy_read_offline_data_from_files(), and legacy_read_offline_data_from_files().

304 {
305  RBParameters param_min;
306  RBParameters param_max;
307  read_parameter_ranges_from_file(continuous_param_file_name,
308  read_binary_data,
309  param_min,
310  param_max);
311 
312  std::map<std::string, std::vector<Real>> discrete_parameter_values_in;
313  read_discrete_parameter_values_from_file(discrete_param_file_name,
314  read_binary_data,
315  discrete_parameter_values_in);
316 
317  initialize_parameters(param_min, param_max, discrete_parameter_values_in);
318 }
void read_parameter_ranges_from_file(const std::string &file_name, const bool read_binary, RBParameters &param_min, RBParameters &param_max)
Read in the parameter ranges from file.
void read_discrete_parameter_values_from_file(const std::string &file_name, const bool read_binary_data, std::map< std::string, std::vector< Real >> &discrete_parameter_values_in)
Read in the discrete parameter values from file, if we have any.
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.
void libMesh::RBSCMEvaluation::reload_current_parameters ( )
virtual

Helper function to (re)load current_parameters from saved_parameters.

Definition at line 325 of file rb_scm_evaluation.C.

References saved_parameters, and libMesh::RBParametrized::set_parameters().

Referenced by get_C_J_stability_value(), and get_SCM_LB().

326 {
328 }
void set_parameters(const RBParameters &params)
Set the current parameters to params.
RBParameters saved_parameters
Vector in which to save a parameter set.
void libMesh::RBSCMEvaluation::save_current_parameters ( )
virtual

Helper function to save current_parameters in saved_parameters.

Definition at line 320 of file rb_scm_evaluation.C.

References libMesh::RBParametrized::get_parameters(), and saved_parameters.

Referenced by get_C_J_stability_value(), and get_SCM_LB().

321 {
323 }
const RBParameters & get_parameters() const
Get the current parameters.
RBParameters saved_parameters
Vector in which to save a parameter set.
void libMesh::RBSCMEvaluation::set_B_max ( unsigned int  i,
Real  B_max_val 
)

Definition at line 158 of file rb_scm_evaluation.C.

References B_max.

Referenced by libMesh::RBSCMConstruction::compute_SCM_bounding_box(), and get_C_J_stability_value().

159 {
160  if (q >= B_max.size())
161  libmesh_error_msg("Error: q is too large in set_B_max.");
162 
163  B_max[q] = B_max_val;
164 }
std::vector< Real > B_max
void libMesh::RBSCMEvaluation::set_B_min ( unsigned int  i,
Real  B_min_val 
)

Set B_min and B_max.

Definition at line 150 of file rb_scm_evaluation.C.

References B_min.

Referenced by libMesh::RBSCMConstruction::compute_SCM_bounding_box(), and get_C_J_stability_value().

151 {
152  if (q >= B_min.size())
153  libmesh_error_msg("Error: q is too large in set_B_min.");
154 
155  B_min[q] = B_min_val;
156 }
std::vector< Real > B_min
B_min, B_max define the bounding box.
void libMesh::RBSCMEvaluation::set_C_J_stability_constraint ( unsigned int  j,
Real  stability_constraint_in 
)

Set stability constraints (i.e.

the values of coercivity/ inf-sup/stability constants at the parameter values chosen during the greedy); we store one constraint for each element of C_J.

Definition at line 80 of file rb_scm_evaluation.C.

References C_J, and C_J_stability_vector.

Referenced by libMesh::RBSCMConstruction::evaluate_stability_constant().

81 {
82  if (j >= C_J_stability_vector.size())
83  libmesh_error_msg("Error: Input parameter j is too large in set_C_J_stability_constraint.");
84 
85  // we assume that C_J_stability_vector is resized elsewhere
86  // to be the same size as C_J.
87  libmesh_assert_equal_to (C_J_stability_vector.size(), C_J.size());
88 
89  C_J_stability_vector[j] = stability_const_in;
90 }
std::vector< Real > C_J_stability_vector
Vector storing the (truth) stability values at the parameters in C_J.
std::vector< RBParameters > C_J
Vector storing the greedily selected parameters during SCM training.
void libMesh::RBSCMEvaluation::set_current_parameters_from_C_J ( unsigned int  C_J_index)
virtual

Set parameters based on values saved in "C_J".

Definition at line 315 of file rb_scm_evaluation.C.

References C_J, and libMesh::RBParametrized::set_parameters().

Referenced by get_C_J_stability_value(), and get_SCM_LB().

316 {
317  set_parameters(C_J[C_J_index]);
318 }
void set_parameters(const RBParameters &params)
Set the current parameters to params.
std::vector< RBParameters > C_J
Vector storing the greedily selected parameters during SCM training.
void libMesh::RBParametrized::set_parameters ( const RBParameters params)
inherited

Set the current parameters to params.

Definition at line 163 of file rb_parametrized.C.

References libMesh::RBParametrized::parameters, libMesh::RBParametrized::parameters_initialized, and libMesh::RBParametrized::valid_params().

Referenced by libMesh::RBConstructionBase< Base >::broadcast_parameters(), libMesh::RBEIMConstruction::compute_best_fit_error(), libMesh::RBSCMConstruction::compute_SCM_bounds_on_training_set(), libMesh::RBEIMConstruction::enrich_RB_space(), libMesh::RBEIMTheta::evaluate(), libMesh::RBConstruction::get_RB_error_bound(), SimpleRBEvaluation::get_stability_lower_bound(), libMesh::RBParametrized::initialize_parameters(), reload_current_parameters(), set_current_parameters_from_C_J(), libMesh::RBConstructionBase< Base >::set_params_from_training_set(), and libMesh::RBEIMConstruction::truth_solve().

164 {
166  libmesh_error_msg("Error: parameters not initialized in RBParametrized::set_current_parameters");
167 
168  valid_params(params); // Terminates if params has the wrong number of parameters
169 
170  // Make a copy of params (default assignment operator just does memberwise copy, which is sufficient here)
171  this->parameters = params;
172 }
bool parameters_initialized
Flag indicating whether the parameters have been initialized.
bool valid_params(const RBParameters &params)
Helper function to check that params is valid.
RBParameters parameters
Vector storing the current parameters.
void libMesh::RBSCMEvaluation::set_rb_theta_expansion ( RBThetaExpansion rb_theta_expansion_in)

Set the RBThetaExpansion object.

Definition at line 67 of file rb_scm_evaluation.C.

References rb_theta_expansion.

Referenced by main().

68 {
69  rb_theta_expansion = &rb_theta_expansion_in;
70 }
RBThetaExpansion * rb_theta_expansion
A pointer to to the object that stores the theta expansion.
void libMesh::RBSCMEvaluation::set_SCM_UB_vector ( unsigned int  j,
unsigned int  q,
Real  y_q 
)

Set entries of SCM_UB_vector, which stores the vector y, corresponding to the minimizing eigenvectors for the elements of C_J.

Definition at line 100 of file rb_scm_evaluation.C.

References SCM_UB_vectors.

Referenced by libMesh::RBSCMConstruction::evaluate_stability_constant().

101 {
102  // First make sure that j <= J
103  if (j >= SCM_UB_vectors.size())
104  libmesh_error_msg("Error: We must have j < J in set_SCM_UB_vector.");
105 
106  // Next make sure that q <= Q_a or Q_a_hat
107  if (q >= SCM_UB_vectors[0].size())
108  libmesh_error_msg("Error: q is too large in set_SCM_UB_vector.");
109 
110  SCM_UB_vectors[j][q] = y_q;
111 }
std::vector< std::vector< Real > > SCM_UB_vectors
This matrix stores the infimizing vectors y_1( ),...,y_Q_a( ), for each in C_J, which are used in co...
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.

Definition at line 222 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::RBEvaluation::legacy_write_offline_data_to_files(), and legacy_write_offline_data_to_files().

225 {
226  write_parameter_ranges_to_file(continuous_param_file_name, write_binary_data);
227  write_discrete_parameter_values_to_file(discrete_param_file_name, write_binary_data);
228 }
void write_discrete_parameter_values_to_file(const std::string &file_name, const bool write_binary_data)
Write out the discrete parameter values to file.
void write_parameter_ranges_to_file(const std::string &file_name, const bool write_binary)
Write out the parameter ranges to file.

Member Data Documentation

const Parallel::Communicator& libMesh::ParallelObject::_communicator
protectedinherited
ReferenceCounter::Counts libMesh::ReferenceCounter::_counts
staticprotectedinherited
bool libMesh::ReferenceCounter::_enable_print_counter = true
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().

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

Mutual exclusion object to enable thread-safe reference counting.

Definition at line 137 of file reference_counter.h.

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 132 of file reference_counter.h.

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

std::vector<Real> libMesh::RBSCMEvaluation::B_max
std::vector<Real> libMesh::RBSCMEvaluation::B_min
std::vector<RBParameters > libMesh::RBSCMEvaluation::C_J
std::vector<Real> libMesh::RBSCMEvaluation::C_J_stability_vector
RBThetaExpansion* libMesh::RBSCMEvaluation::rb_theta_expansion
private

A pointer to to the object that stores the theta expansion.

This is not a UniquePtr since we may want to share it.

Note
A shared_ptr would be a good option here.

Definition at line 223 of file rb_scm_evaluation.h.

Referenced by get_rb_theta_expansion(), get_SCM_LB(), get_SCM_UB(), legacy_read_offline_data_from_files(), legacy_write_offline_data_to_files(), and set_rb_theta_expansion().

RBParameters libMesh::RBSCMEvaluation::saved_parameters
private

Vector in which to save a parameter set.

Useful in get_SCM_LB, for example.

Definition at line 215 of file rb_scm_evaluation.h.

Referenced by reload_current_parameters(), and save_current_parameters().

std::vector<std::vector<Real> > libMesh::RBSCMEvaluation::SCM_UB_vectors
bool libMesh::RBParametrized::verbose_mode
inherited

Public boolean to toggle verbose mode.

Definition at line 170 of file rb_parametrized.h.

Referenced by libMesh::RBParametrized::valid_params().


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