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 |
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 50 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.
|
virtual |
Destructor.
|
virtualinherited |
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.
|
staticinherited |
|
staticinherited |
Methods to enable/disable the reference counter output from print_info()
|
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.
Referenced by EIM_F::interior_assembly(), and AssemblyEIM::interior_assembly().
NumericVector<Number>& libMesh::RBEIMAssembly::get_ghosted_basis_function | ( | ) |
Get a reference to the ghosted_basis_function.
|
staticinherited |
Gets a string containing the reference information.
|
virtualinherited |
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.
RBEIMConstruction& libMesh::RBEIMAssembly::get_rb_eim_construction | ( | ) |
Get a reference to the RBEIMConstruction object.
|
protectedinherited |
Increments the construction counter.
Should be called in the constructor of any derived class that will be reference counted.
Definition at line 181 of file reference_counter.h.
References libMesh::ReferenceCounter::_counts, libMesh::Quality::name(), and libMesh::Threads::spin_mtx.
Referenced by libMesh::ReferenceCountedObject< RBParametrized >::ReferenceCountedObject().
|
protectedinherited |
Increments the destruction counter.
Should be called in the destructor of any derived class that will be reference counted.
Definition at line 194 of file reference_counter.h.
References libMesh::ReferenceCounter::_counts, libMesh::Quality::name(), and libMesh::Threads::spin_mtx.
Referenced by libMesh::ReferenceCountedObject< RBParametrized >::~ReferenceCountedObject().
|
private |
Initialize the FE object.
|
virtualinherited |
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.
|
staticinherited |
Prints the number of outstanding (created, but not yet destroyed) objects.
Definition at line 83 of file reference_counter.h.
References libMesh::ReferenceCounter::_n_objects.
|
staticinherited |
Prints the reference information, by default to libMesh::out
.
|
private |
The EIM basis function index (from rb_eim_eval) for this assembly object.
Definition at line 105 of file rb_eim_assembly.h.
|
staticprotectedinherited |
Actually holds the data.
Definition at line 122 of file reference_counter.h.
Referenced by 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.
|
private |
We store an FE object so we can easily reinit in evaluate_basis_function.
Definition at line 117 of file rb_eim_assembly.h.
|
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 112 of file rb_eim_assembly.h.
|
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 100 of file rb_eim_assembly.h.