|
libMesh
|
This class provides functionality required to define an assembly object that arises from an "Empirical Interpolation Method" (EIM) approximation. More...
#include <rb_eim_assembly.h>
Public Member Functions | |
| RBEIMAssembly (RBEIMConstruction &rb_eim_con_in, unsigned int basis_function_index_in) | |
| Constructor. More... | |
| virtual | ~RBEIMAssembly () |
| Destructor. More... | |
| virtual void | evaluate_basis_function (unsigned int var, const Elem &element, const std::vector< Point > &points, std::vector< Number > &values) |
Evaluate variable var_number of this object's EIM basis function at the points points, where the points are in reference coordinates. More... | |
| RBEIMConstruction & | get_rb_eim_construction () |
| Get a reference to the RBEIMConstruction object. More... | |
| NumericVector< Number > & | get_ghosted_basis_function () |
| Get a reference to the ghosted_basis_function. More... | |
| FEBase & | get_fe () |
| Retrieve the FE object. More... | |
| virtual void | interior_assembly (FEMContext &) |
| Perform the element interior assembly. More... | |
| virtual void | boundary_assembly (FEMContext &) |
| Perform the element boundary assembly. More... | |
| virtual void | get_nodal_values (std::vector< dof_id_type > &, DenseMatrix< Number > &, DenseVector< Number > &, const System &, const Node &) |
Get values to add to the matrix or rhs vector based on node. More... | |
Static Public Member Functions | |
| 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 () |
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... | |
Static Protected Attributes | |
| static Counts | _counts |
| Actually holds the data. More... | |
| static Threads::atomic< unsigned int > | _n_objects |
| The number of objects. More... | |
| static Threads::spin_mutex | _mutex |
| Mutual exclusion object to enable thread-safe reference counting. More... | |
| static bool | _enable_print_counter = true |
| Flag to control whether reference count information is printed when print_info is called. More... | |
Private Member Functions | |
| void | initialize_fe () |
| Initialize the FE object. More... | |
Private Attributes | |
| RBEIMConstruction & | _rb_eim_con |
| The RBEIMConstruction object that this RBEIMAssembly is based on. More... | |
| unsigned int | _basis_function_index |
| The EIM basis function index (from rb_eim_eval) for this assembly object. More... | |
| std::unique_ptr< NumericVector< Number > > | _ghosted_basis_function |
| The basis function that we sample to evaluate the empirical interpolation approximation. More... | |
| std::unique_ptr< FEBase > | _fe |
| We store an FE object so we can easily reinit in evaluate_basis_function. More... | |
This class provides functionality required to define an assembly object that arises from an "Empirical Interpolation Method" (EIM) approximation.
Definition at line 49 of file rb_eim_assembly.h.
|
protectedinherited |
Data structure to log the information.
The log is identified by the class name.
Definition at line 117 of file reference_counter.h.
| libMesh::RBEIMAssembly::RBEIMAssembly | ( | RBEIMConstruction & | rb_eim_con_in, |
| unsigned int | basis_function_index_in | ||
| ) |
Constructor.
Definition at line 35 of file rb_eim_assembly.C.
References _basis_function_index, _ghosted_basis_function, _rb_eim_con, libMesh::RBEvaluation::get_basis_function(), libMesh::System::get_dof_map(), libMesh::RBEIMConstruction::get_explicit_system(), libMesh::RBConstruction::get_rb_evaluation(), libMesh::DofMap::get_send_list(), libMesh::GHOSTED, initialize_fe(), libMesh::System::n_dofs(), libMesh::System::n_local_dofs(), and libMesh::SERIAL.
|
virtual |
|
inlinevirtualinherited |
Perform the element boundary assembly.
Reimplemented in Output0, F0, A3, AssemblyA2, A2, AssemblyF2, AssemblyF1, AssemblyA1, AssemblyF0, and AssemblyA0.
Definition at line 62 of file elem_assembly.h.
Referenced by libMesh::RBConstruction::add_scaled_matrix_and_vector().
|
staticinherited |
Definition at line 106 of file reference_counter.C.
References libMesh::ReferenceCounter::_enable_print_counter.
Referenced by libMesh::LibMeshInit::LibMeshInit().
|
staticinherited |
Methods to enable/disable the reference counter output from print_info()
Definition at line 100 of file reference_counter.C.
References libMesh::ReferenceCounter::_enable_print_counter.
|
virtual |
Evaluate variable var_number of this object's EIM basis function at the points points, where the points are in reference coordinates.
Fill values with the basis function values.
Definition at line 65 of file rb_eim_assembly.C.
References libMesh::DofMap::dof_indices(), libMesh::System::get_dof_map(), libMesh::RBEIMConstruction::get_explicit_system(), get_fe(), libMesh::FEGenericBase< OutputType >::get_phi(), get_rb_eim_construction(), libMesh::index_range(), libMesh::libmesh_assert(), and libMesh::FEAbstract::reinit().
Referenced by EIM_F::interior_assembly(), and AssemblyEIM::interior_assembly().
| FEBase & libMesh::RBEIMAssembly::get_fe | ( | ) |
Retrieve the FE object.
Definition at line 106 of file rb_eim_assembly.C.
References _fe.
Referenced by evaluate_basis_function().
| NumericVector< Number > & libMesh::RBEIMAssembly::get_ghosted_basis_function | ( | ) |
Get a reference to the ghosted_basis_function.
Definition at line 101 of file rb_eim_assembly.C.
References _ghosted_basis_function.
|
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().
|
inlinevirtualinherited |
Get values to add to the matrix or rhs vector based on node.
This allows one to impose point loads or springs, for example.
Definition at line 69 of file elem_assembly.h.
Referenced by libMesh::RBConstruction::add_scaled_matrix_and_vector().
| RBEIMConstruction & libMesh::RBEIMAssembly::get_rb_eim_construction | ( | ) |
Get a reference to the RBEIMConstruction object.
Definition at line 96 of file rb_eim_assembly.C.
References _rb_eim_con.
Referenced by evaluate_basis_function(), and initialize_fe().
|
inlineprotectedinherited |
Increments the construction counter.
Should be called in the constructor of any derived class that will be reference counted.
Definition at line 181 of file reference_counter.h.
References libMesh::ReferenceCounter::_counts, libMesh::Quality::name(), and libMesh::Threads::spin_mtx.
Referenced by libMesh::ReferenceCountedObject< RBParametrized >::ReferenceCountedObject().
|
inlineprotectedinherited |
Increments the destruction counter.
Should be called in the destructor of any derived class that will be reference counted.
Definition at line 194 of file reference_counter.h.
References libMesh::ReferenceCounter::_counts, libMesh::Quality::name(), and libMesh::Threads::spin_mtx.
Referenced by libMesh::ReferenceCountedObject< RBParametrized >::~ReferenceCountedObject().
|
private |
Initialize the FE object.
Definition at line 111 of file rb_eim_assembly.C.
References _fe, libMesh::FEGenericBase< OutputType >::build(), dim, libMesh::System::get_dof_map(), libMesh::RBEIMConstruction::get_explicit_system(), libMesh::System::get_mesh(), get_rb_eim_construction(), libMesh::MeshBase::mesh_dimension(), and libMesh::DofMap::variable_type().
Referenced by RBEIMAssembly().
|
inlinevirtualinherited |
Perform the element interior assembly.
Reimplemented in Ex6EIMInnerProduct, Ex6InnerProduct, AssemblyF1, AssemblyF0, AssemblyEIM, InnerProductAssembly, OutputAssembly, OutputAssembly, F0, OutputAssembly, F0, A1, A2, F0, A2, A0, EIM_F, AssemblyA2, A1, A2, A1, AssemblyA1, AcousticsInnerProduct, EIM_IP_assembly, AssemblyA0, A0, A1, A0, A0, M0, A0, and B.
Definition at line 57 of file elem_assembly.h.
Referenced by libMesh::RBConstruction::add_scaled_matrix_and_vector().
|
inlinestaticinherited |
Prints the number of outstanding (created, but not yet destroyed) objects.
Definition at line 83 of file reference_counter.h.
References libMesh::ReferenceCounter::_n_objects.
|
staticinherited |
Prints the reference information, by default to libMesh::out.
Definition at line 87 of file reference_counter.C.
References libMesh::ReferenceCounter::_enable_print_counter, and libMesh::ReferenceCounter::get_info().
|
private |
The EIM basis function index (from rb_eim_eval) for this assembly object.
Definition at line 104 of file rb_eim_assembly.h.
Referenced by RBEIMAssembly().
|
staticprotectedinherited |
Actually holds the data.
Definition at line 122 of file reference_counter.h.
Referenced by libMesh::ReferenceCounter::get_info(), libMesh::ReferenceCounter::increment_constructor_count(), and libMesh::ReferenceCounter::increment_destructor_count().
|
staticprotectedinherited |
Flag to control whether reference count information is printed when print_info is called.
Definition at line 141 of file reference_counter.h.
Referenced by libMesh::ReferenceCounter::disable_print_counter_info(), libMesh::ReferenceCounter::enable_print_counter_info(), and libMesh::ReferenceCounter::print_info().
|
private |
We store an FE object so we can easily reinit in evaluate_basis_function.
Definition at line 116 of file rb_eim_assembly.h.
Referenced by get_fe(), and initialize_fe().
|
private |
The basis function that we sample to evaluate the empirical interpolation approximation.
This will be a GHOSTED vector to facilitate interpolation in the case of multiple processors.
Definition at line 111 of file rb_eim_assembly.h.
Referenced by get_ghosted_basis_function(), and RBEIMAssembly().
|
staticprotectedinherited |
Mutual exclusion object to enable thread-safe reference counting.
Definition at line 135 of file reference_counter.h.
|
staticprotectedinherited |
The number of objects.
Print the reference count information when the number returns to 0.
Definition at line 130 of file reference_counter.h.
Referenced by libMesh::ReferenceCounter::n_objects(), libMesh::ReferenceCounter::ReferenceCounter(), and libMesh::ReferenceCounter::~ReferenceCounter().
|
private |
The RBEIMConstruction object that this RBEIMAssembly is based on.
Definition at line 99 of file rb_eim_assembly.h.
Referenced by get_rb_eim_construction(), and RBEIMAssembly().
1.8.16