queso-0.57.1
|
Abstract base class for operator objects using libmesh in the backend. More...
#include <LibMeshOperatorBase.h>
Public Member Functions | |
virtual void | assemble ()=0 |
Must implement this for the solve to work. More... | |
virtual void | print_info () const =0 |
Print libmesh related information. More... | |
virtual void | save_converged_evals (const std::string &filename) const |
Save the eigenvalues to file filename . More... | |
virtual void | save_converged_evec (const std::string &filename, unsigned int i) const |
Save converged eigenfunction i to filename . More... | |
virtual unsigned int | get_num_converged () const |
Return the number of converged eigenpairs. More... | |
virtual double | get_eigenvalue (unsigned int i) const |
Return eigenvalue i . More... | |
virtual double | get_inverted_eigenvalue (unsigned int i) const |
Return the reciprocal of eigenvalue i . More... | |
virtual libMesh::EquationSystems & | get_equation_systems () const |
Return the internal libmesh equation systems object. More... | |
virtual SharedPtr < FunctionBase >::Type | inverse_kl_transform (std::vector< double > &xi, double alpha) const |
Given coefficients xi , computes the Karhunen-Loeve transform. More... | |
Constructor/Destructor methods | |
LibMeshOperatorBase (const FunctionOperatorBuilder &builder, libMesh::MeshBase &m) | |
Constuct an operator on the mesh m using a builder builder . More... | |
~LibMeshOperatorBase () | |
Destructor. More... | |
Public Member Functions inherited from QUESO::OperatorBase | |
OperatorBase () | |
Constructor. More... | |
virtual | ~OperatorBase () |
Destructor. More... | |
Protected Attributes | |
SharedPtr < libMesh::EquationSystems > ::Type | equation_systems |
const FunctionOperatorBuilder & | builder |
unsigned int | num_req_pairs |
The number of requested eigenpairs. More... | |
unsigned int | nconv |
The number of converged eigenpairs. More... | |
Abstract base class for operator objects using libmesh in the backend.
Definition at line 57 of file LibMeshOperatorBase.h.
QUESO::LibMeshOperatorBase::LibMeshOperatorBase | ( | const FunctionOperatorBuilder & | builder, |
libMesh::MeshBase & | m | ||
) |
Constuct an operator on the mesh m
using a builder builder
.
A FunctionOperatorBuilder object is just one that a FEM library backend can use to set up various options. Polynomial type, polynomial order, and the number of eigenpairs to request are good examples.
Definition at line 50 of file LibMeshOperatorBase.C.
References equation_systems.
QUESO::LibMeshOperatorBase::~LibMeshOperatorBase | ( | ) |
|
pure virtual |
Must implement this for the solve to work.
This gets called by libMesh to do the assembly for the eigenvalue problem
Implemented in QUESO::LibMeshNegativeLaplacianOperator.
|
virtual |
Return eigenvalue i
.
You can store them however you want, but having some kind of order to them is useful for InfiniteDimensionalMeasure
Implements QUESO::OperatorBase.
Definition at line 122 of file LibMeshOperatorBase.C.
References equation_systems, and nconv.
Referenced by get_inverted_eigenvalue().
|
virtual |
Return the internal libmesh equation systems object.
Definition at line 140 of file LibMeshOperatorBase.C.
References equation_systems.
|
virtual |
Return the reciprocal of eigenvalue i
.
Implements QUESO::OperatorBase.
Definition at line 135 of file LibMeshOperatorBase.C.
References get_eigenvalue().
|
virtual |
Return the number of converged eigenpairs.
Implements QUESO::OperatorBase.
Definition at line 118 of file LibMeshOperatorBase.C.
References nconv.
Referenced by inverse_kl_transform().
|
virtual |
Given coefficients xi
, computes the Karhunen-Loeve transform.
This transform goes from coefficient space to physical space using this
as the precision operator: / pow(, alpha
/ 2.0) (x) where the lambda are eigenvalues of the precision operator, this
, and the (x) are eigenfunctions of the precision operator, this
Implements QUESO::OperatorBase.
Definition at line 146 of file LibMeshOperatorBase.C.
References builder, equation_systems, QUESO::LibMeshFunction::get_equation_systems(), and get_num_converged().
|
pure virtual |
Print libmesh related information.
Implemented in QUESO::LibMeshNegativeLaplacianOperator.
|
virtual |
Save the eigenvalues to file filename
.
Definition at line 85 of file LibMeshOperatorBase.C.
References equation_systems, and nconv.
|
virtual |
Save converged eigenfunction i
to filename
.
Definition at line 103 of file LibMeshOperatorBase.C.
References equation_systems, and nconv.
|
protected |
Definition at line 121 of file LibMeshOperatorBase.h.
Referenced by inverse_kl_transform().
|
protected |
Definition at line 119 of file LibMeshOperatorBase.h.
Referenced by QUESO::LibMeshNegativeLaplacianOperator::assemble(), get_eigenvalue(), get_equation_systems(), inverse_kl_transform(), QUESO::LibMeshNegativeLaplacianOperator::LibMeshNegativeLaplacianOperator(), LibMeshOperatorBase(), QUESO::LibMeshNegativeLaplacianOperator::print_info(), save_converged_evals(), and save_converged_evec().
|
protected |
The number of converged eigenpairs.
Definition at line 127 of file LibMeshOperatorBase.h.
Referenced by get_eigenvalue(), get_num_converged(), QUESO::LibMeshNegativeLaplacianOperator::LibMeshNegativeLaplacianOperator(), save_converged_evals(), and save_converged_evec().
|
protected |
The number of requested eigenpairs.
Definition at line 124 of file LibMeshOperatorBase.h.