libMesh::DerivedRBConstruction< Base > Class Template Reference

#include <derived_rb_construction.h>

Inheritance diagram for libMesh::DerivedRBConstruction< Base >:

Public Types

typedef DerivedRBConstruction
< Base > 
sys_type
 

Public Member Functions

 DerivedRBConstruction (EquationSystems &es, const std::string &name, const unsigned int number)
 
sys_typesystem ()
 
virtual std::string system_type () const
 
virtual Real truth_solve (int plot_solution)
 
virtual Real train_reduced_basis (const std::string &directory_name="offline_data", const bool resize_rb_eval_data=true)
 
virtual void set_uber_current_parameters ()
 
virtual AutoPtr< RBEvaluationbuild_rb_evaluation (const Parallel::Communicator &comm LIBMESH_CAN_DEFAULT_TO_COMMWORLD)
 
virtual void load_rb_solution ()
 
virtual void load_basis_function (unsigned int i)
 
void generate_residual_terms_wrt_truth ()
 

Public Attributes

std::string uber_system_name
 

Protected Member Functions

DenseVector< Numberget_derived_basis_function (unsigned int i)
 
virtual void enrich_RB_space ()
 
virtual void update_RB_system_matrices ()
 
virtual void compute_Fq_representor_innerprods (bool compute_inner_products=true)
 
virtual void update_residual_terms (bool compute_inner_products=true)
 

Detailed Description

template<class Base>
class libMesh::DerivedRBConstruction< Base >

This class is part of the rbOOmit framework.

DerivedRBConstruction implements the Construction stage for the "two-level" Reduced Basis method. In this context we obtain our "derived" basis functions from a reference reduced basis approximation.

Author
David J. Knezevic, 2009

Definition at line 47 of file derived_rb_construction.h.

Member Typedef Documentation

template<class Base >
typedef DerivedRBConstruction<Base> libMesh::DerivedRBConstruction< Base >::sys_type

The type of system.

Definition at line 62 of file derived_rb_construction.h.

Constructor & Destructor Documentation

template<class Base >
libMesh::DerivedRBConstruction< Base >::DerivedRBConstruction ( EquationSystems es,
const std::string &  name,
const unsigned int  number 
)

Constructor. Optionally initializes required data structures.

Member Function Documentation

template<class Base >
virtual AutoPtr<RBEvaluation> libMesh::DerivedRBConstruction< Base >::build_rb_evaluation ( const Parallel::Communicator &comm  LIBMESH_CAN_DEFAULT_TO_COMMWORLD)
virtual

Build a new DerivedRBEvaluation object.

template<class Base >
virtual void libMesh::DerivedRBConstruction< Base >::compute_Fq_representor_innerprods ( bool  compute_inner_products = true)
protectedvirtual

Compute the RHS terms that are combined `online' to determine the dual norm of the residual. Overloaded here for the two-stage RB method.

template<class Base >
virtual void libMesh::DerivedRBConstruction< Base >::enrich_RB_space ( )
protectedvirtual

Add a new basis function to the RB space. Overload for uber-unter style enrichment, i.e. this function is independent of the number of degrees of freedom in the truth finite element discretization.

template<class Base >
void libMesh::DerivedRBConstruction< Base >::generate_residual_terms_wrt_truth ( )

This function recomputes all the residual terms in order to allow evaluation of the residual wrt the truth space. Useful if we have performed the greedy algorithm with respect to the uber space and need to replace with truth residual terms.

template<class Base >
DenseVector<Number> libMesh::DerivedRBConstruction< Base >::get_derived_basis_function ( unsigned int  i)
protected

Get a copy of the specific derived basis function.

template<class Base >
virtual void libMesh::DerivedRBConstruction< Base >::load_basis_function ( unsigned int  i)
virtual

Load the i^th derived basis function into vec.

template<class Base >
virtual void libMesh::DerivedRBConstruction< Base >::load_rb_solution ( )
virtual

Load the RB solution from the most recent solve into the libMesh solution vector.

template<class Base >
virtual void libMesh::DerivedRBConstruction< Base >::set_uber_current_parameters ( )
virtual

Set the uber_system's current_parameters to match unter_system's current_parameters. We require a virtual function here in case the unter system has fewer parameters than the uber system, for example.

template<class Base >
sys_type& libMesh::DerivedRBConstruction< Base >::system ( )
inline
Returns
a clever pointer to the system.

Definition at line 67 of file derived_rb_construction.h.

67 { return *this; }
template<class Base >
virtual std::string libMesh::DerivedRBConstruction< Base >::system_type ( ) const
virtual
Returns
a string indicating the type of the system.
template<class Base >
virtual Real libMesh::DerivedRBConstruction< Base >::train_reduced_basis ( const std::string &  directory_name = "offline_data",
const bool  resize_rb_eval_data = true 
)
virtual

Overload train_reduced_basis to generate residual terms wrt truth once the Greedy finishes.

template<class Base >
virtual Real libMesh::DerivedRBConstruction< Base >::truth_solve ( int  plot_solution)
virtual

Overload truth_solve so that it computes the associated Unter RB solution.

template<class Base >
virtual void libMesh::DerivedRBConstruction< Base >::update_RB_system_matrices ( )
protectedvirtual

Compute the reduced basis matrices for the current basis. This operation is based on the uber system and hence is independent of the number of degrees of freedom in the truth finite element discretization.

template<class Base >
virtual void libMesh::DerivedRBConstruction< Base >::update_residual_terms ( bool  compute_inner_products = true)
protectedvirtual

Compute the terms that are combined `online' to determine the dual norm of the residual. Overload here so that we perform an update based on the uber system.

Member Data Documentation

template<class Base >
std::string libMesh::DerivedRBConstruction< Base >::uber_system_name

The name of the uber RB system, i.e. the RB system we use to develop the derived RB system.

Definition at line 129 of file derived_rb_construction.h.


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

Site Created By: libMesh Developers
Last modified: February 07 2014 16:57:59 UTC

Hosted By:
SourceForge.net Logo