Tempus Version of the Day
Time Integration
Loading...
Searching...
No Matches
Public Member Functions | List of all members
Tempus::WrapperModelEvaluatorPairPartIMEX_StaggeredFSA< Scalar > Class Template Reference

Specialization of IMEX-Part ME for "combined" FSA method. More...

#include <Tempus_WrapperModelEvaluatorPairPartIMEX_StaggeredFSA_decl.hpp>

Inheritance diagram for Tempus::WrapperModelEvaluatorPairPartIMEX_StaggeredFSA< Scalar >:
Tempus::SensitivityModelEvaluatorBase< Scalar > Tempus::WrapperModelEvaluatorPairPartIMEX_Basic< Scalar > Tempus::WrapperModelEvaluatorPairIMEX< Scalar > Tempus::WrapperModelEvaluator< Scalar >

Public Member Functions

 WrapperModelEvaluatorPairPartIMEX_StaggeredFSA (const Teuchos::RCP< const WrapperModelEvaluatorPairPartIMEX_Basic< Scalar > > &forwardModel, const bool is_pseudotransient, const Teuchos::RCP< const Teuchos::ParameterList > &pList=Teuchos::null)
 Constructor.
 
virtual ~WrapperModelEvaluatorPairPartIMEX_StaggeredFSA ()
 Destructor.
 
virtual void initialize ()
 Initialize after setting member data.
 
- Public Member Functions inherited from Tempus::SensitivityModelEvaluatorBase< Scalar >
 SensitivityModelEvaluatorBase ()
 Constructor.
 
virtual ~SensitivityModelEvaluatorBase ()
 Destructor.
 
- Public Member Functions inherited from Tempus::WrapperModelEvaluatorPairPartIMEX_Basic< Scalar >
 WrapperModelEvaluatorPairPartIMEX_Basic ()
 Default constructor – Still requires setting the models and running initialize.
 
 WrapperModelEvaluatorPairPartIMEX_Basic (const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > &explicitModel, const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > &implicitModel, int numExplicitOnlyBlocks=0, int parameterIndex=-1)
 Constructor.
 
virtual ~WrapperModelEvaluatorPairPartIMEX_Basic ()
 Destructor.
 
virtual Teuchos::RCP< Thyra::LinearOpBase< Scalar > > create_W_op () const
 
Teuchos::RCP< const Thyra::LinearOpWithSolveFactoryBase< Scalar > > get_W_factory () const
 
virtual Teuchos::RCP< const Thyra::VectorSpaceBase< Scalar > > get_f_space () const
 
virtual Thyra::ModelEvaluatorBase::InArgs< Scalar > getNominalValues () const
 
virtual Thyra::ModelEvaluatorBase::OutArgs< Scalar > createOutArgsImpl () const
 
virtual void setAppModel (const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > &me)
 Set the underlying application ModelEvaluator.
 
virtual Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > getAppModel () const
 Get the underlying application ModelEvaluator.
 
virtual void setInArgs (Thyra::ModelEvaluatorBase::InArgs< Scalar > inArgs)
 Set InArgs the wrapper ModelEvalutor.
 
virtual Thyra::ModelEvaluatorBase::InArgs< Scalar > getInArgs ()
 Get InArgs the wrapper ModelEvalutor.
 
virtual void setOutArgs (Thyra::ModelEvaluatorBase::OutArgs< Scalar > outArgs)
 Set OutArgs the wrapper ModelEvalutor.
 
virtual Thyra::ModelEvaluatorBase::OutArgs< Scalar > getOutArgs ()
 Get OutArgs the wrapper ModelEvalutor.
 
virtual void setForSolve (Teuchos::RCP< TimeDerivative< Scalar > > timeDer, Thyra::ModelEvaluatorBase::InArgs< Scalar > inArgs, Thyra::ModelEvaluatorBase::OutArgs< Scalar > outArgs, EVALUATION_TYPE=SOLVE_FOR_X)
 Set parameters for application implicit ModelEvaluator solve.
 
virtual Teuchos::RCP< const Thyra::VectorSpaceBase< Scalar > > get_x_space () const
 Get the x-solution space.
 
virtual Teuchos::RCP< const Thyra::VectorSpaceBase< Scalar > > get_g_space (int i) const
 Get the g space.
 
virtual void setNumExplicitOnlyBlocks (int numExp)
 
virtual void setExplicitModel (const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > &model)
 
virtual void setImplicitModel (const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > &model)
 
virtual Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > getExplicitModel () const
 
virtual Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > getImplicitModel () const
 
virtual int getNumExplicitOnlyBlocks () const
 
virtual void setParameterIndex (int parameterIndex=-1)
 Set the parameter index for explicit-only vector.
 
virtual int getParameterIndex () const
 Get the parameter index for explicit-only vector.
 
virtual void setUseImplicitModel (bool tf)
 Set parameter to switch wrapperME base functions between explicit and implicit functions.
 
virtual bool getUseImplicitModel () const
 Get parameter to switch wrapperME base functions between explicit and implicit functions.
 
- Public Member Functions inherited from Tempus::WrapperModelEvaluatorPairIMEX< Scalar >
- Public Member Functions inherited from Tempus::WrapperModelEvaluator< Scalar >

Overridden from Thyra::StateFuncModelEvaluatorBase

typedef WrapperModelEvaluatorPairPartIMEX_Basic< Scalar > Base
 
typedef Thyra::DefaultMultiVectorProductVectorSpace< Scalar > DMVPVS
 
typedef Thyra::DefaultMultiVectorProductVector< Scalar > DMVPV
 
typedef Thyra::ProductMultiVectorBase< Scalar > PMVB
 
typedef StaggeredForwardSensitivityModelEvaluator< Scalar > FSAME
 
Teuchos::RCP< const WrapperModelEvaluatorPairPartIMEX_Basic< Scalar > > forwardModel_
 
Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > appExplicitModel_
 
Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > appImplicitModel_
 
Teuchos::RCP< FSAMEfsaExplicitModel_
 
Teuchos::RCP< FSAMEfsaImplicitModel_
 
bool use_dfdp_as_tangent_
 
int y_tangent_index_
 
Teuchos::RCP< const DMVPVSexplicit_dydp_prod_space_
 
Teuchos::RCP< const DMVPVSimex_dxdp_prod_space_
 
Teuchos::RCP< const Tempus::SolutionHistory< Scalar > > sh_
 
Scalar t_interp_
 
Teuchos::RCP< const Tempus::SolutionState< Scalar > > forward_state_
 
Teuchos::RCP< Tempus::SolutionState< Scalar > > nc_forward_state_
 
Teuchos::RCP< const Tempus::SolutionState< Scalar > > explicit_y_state_
 
Teuchos::RCP< const Tempus::SolutionState< Scalar > > implicit_x_state_
 
Teuchos::RCP< Thyra::MultiVectorBase< Scalar > > my_dfdp_mv_
 
Teuchos::RCP< Thyra::LinearOpBase< Scalar > > my_dfdp_op_
 
virtual Thyra::ModelEvaluatorBase::InArgs< Scalar > createInArgs () const
 
virtual void evalModelImpl (const Thyra::ModelEvaluatorBase::InArgs< Scalar > &inArgs, const Thyra::ModelEvaluatorBase::OutArgs< Scalar > &outArgs) const
 
Teuchos::RCP< const Teuchos::ParameterList > getValidParameters () const
 
void buildIMEXStates () const
 Build implicit x and end explicit y states from forward_state_.
 

Methods that apply to both explicit and implicit terms.

virtual Teuchos::RCP< const Thyra::VectorSpaceBase< Scalar > > get_p_space (int i) const
 Get the p space.
 
virtual Teuchos::RCP< Thyra::VectorBase< Scalar > > getIMEXVector (const Teuchos::RCP< Thyra::VectorBase< Scalar > > &full) const
 Extract IMEX vector from a full solution vector.
 
virtual Teuchos::RCP< const Thyra::VectorBase< Scalar > > getIMEXVector (const Teuchos::RCP< const Thyra::VectorBase< Scalar > > &full) const
 Extract IMEX vector for reading.
 
virtual Teuchos::RCP< Thyra::VectorBase< Scalar > > getExplicitOnlyVector (const Teuchos::RCP< Thyra::VectorBase< Scalar > > &full) const
 Extract explicit-only vector from a full solution vector.
 
virtual Teuchos::RCP< const Thyra::VectorBase< Scalar > > getExplicitOnlyVector (const Teuchos::RCP< const Thyra::VectorBase< Scalar > > &full) const
 Extract explicit-only vector for reading.
 

Overridden from Tempus::SensitivityModelEvaluatorBase

virtual Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > getForwardModel () const
 Get the underlying forward model.
 
virtual void setForwardSolutionHistory (const Teuchos::RCP< const Tempus::SolutionHistory< Scalar > > &sh)
 Set solution history from forward state evaluation (for interpolation)
 
virtual void setForwardSolutionState (const Teuchos::RCP< const Tempus::SolutionState< Scalar > > &s)
 Set solution state from forward state evaluation (for frozen state)
 
virtual void setSolver (const Teuchos::RCP< Thyra::NonlinearSolverBase< Scalar > > &solver, const bool force_W_update)
 Set the solver of the underlying model if you want to reuse it.
 

Additional Inherited Members

- Protected Member Functions inherited from Tempus::WrapperModelEvaluatorPairPartIMEX_Basic< Scalar >
void setup (const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > &explicitModel, const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > &implicitModel, int numExplicitOnlyBlocks=0, int parameterIndex=-1)
 Setup ME when using default constructor – for derived classes.
 
- Protected Attributes inherited from Tempus::WrapperModelEvaluatorPairPartIMEX_Basic< Scalar >
Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > explicitModel_
 
Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > implicitModel_
 
Teuchos::RCP< TimeDerivative< Scalar > > timeDer_
 
Thyra::ModelEvaluatorBase::InArgs< Scalar > wrapperImplicitInArgs_
 
Thyra::ModelEvaluatorBase::OutArgs< Scalar > wrapperImplicitOutArgs_
 
int numExplicitOnlyBlocks_
 
int parameterIndex_
 implicit parameter index for explicit-only vector
 
bool useImplicitModel_
 if true, use implicitModel_ else explicitModel_
 

Detailed Description

template<typename Scalar>
class Tempus::WrapperModelEvaluatorPairPartIMEX_StaggeredFSA< Scalar >

Specialization of IMEX-Part ME for "combined" FSA method.

This specializes the implementation of several parts of WrapperModelEvaluatorPairPartIMEX_Basic for forward-sensitivity analysis with StaggeredForwardSensitivityModelEvaluator. It deals with the product structure of the sensitivity solution vectors and incorporates the sensitivity of the implicit term with respect to the explicit-only vector.

Definition at line 32 of file Tempus_WrapperModelEvaluatorPairPartIMEX_StaggeredFSA_decl.hpp.

Member Typedef Documentation

◆ Base

template<typename Scalar >
typedef WrapperModelEvaluatorPairPartIMEX_Basic<Scalar> Tempus::WrapperModelEvaluatorPairPartIMEX_StaggeredFSA< Scalar >::Base
protected

◆ DMVPVS

template<typename Scalar >
typedef Thyra::DefaultMultiVectorProductVectorSpace<Scalar> Tempus::WrapperModelEvaluatorPairPartIMEX_StaggeredFSA< Scalar >::DMVPVS
protected

◆ DMVPV

template<typename Scalar >
typedef Thyra::DefaultMultiVectorProductVector<Scalar> Tempus::WrapperModelEvaluatorPairPartIMEX_StaggeredFSA< Scalar >::DMVPV
protected

◆ PMVB

template<typename Scalar >
typedef Thyra::ProductMultiVectorBase<Scalar> Tempus::WrapperModelEvaluatorPairPartIMEX_StaggeredFSA< Scalar >::PMVB
protected

◆ FSAME

template<typename Scalar >
typedef StaggeredForwardSensitivityModelEvaluator<Scalar> Tempus::WrapperModelEvaluatorPairPartIMEX_StaggeredFSA< Scalar >::FSAME
protected

Constructor & Destructor Documentation

◆ WrapperModelEvaluatorPairPartIMEX_StaggeredFSA()

template<typename Scalar >
Tempus::WrapperModelEvaluatorPairPartIMEX_StaggeredFSA< Scalar >::WrapperModelEvaluatorPairPartIMEX_StaggeredFSA ( const Teuchos::RCP< const WrapperModelEvaluatorPairPartIMEX_Basic< Scalar > > & forwardModel,
const bool is_pseudotransient,
const Teuchos::RCP< const Teuchos::ParameterList > & pList = Teuchos::null )

Constructor.

Definition at line 18 of file Tempus_WrapperModelEvaluatorPairPartIMEX_StaggeredFSA_impl.hpp.

◆ ~WrapperModelEvaluatorPairPartIMEX_StaggeredFSA()

template<typename Scalar >
virtual Tempus::WrapperModelEvaluatorPairPartIMEX_StaggeredFSA< Scalar >::~WrapperModelEvaluatorPairPartIMEX_StaggeredFSA ( )
inlinevirtual

Destructor.

Definition at line 45 of file Tempus_WrapperModelEvaluatorPairPartIMEX_StaggeredFSA_decl.hpp.

Member Function Documentation

◆ initialize()

template<typename Scalar >
void Tempus::WrapperModelEvaluatorPairPartIMEX_StaggeredFSA< Scalar >::initialize ( )
virtual

Initialize after setting member data.

Reimplemented from Tempus::WrapperModelEvaluatorPairPartIMEX_Basic< Scalar >.

Definition at line 64 of file Tempus_WrapperModelEvaluatorPairPartIMEX_StaggeredFSA_impl.hpp.

◆ get_p_space()

template<typename Scalar >
Teuchos::RCP< const Thyra::VectorSpaceBase< Scalar > > Tempus::WrapperModelEvaluatorPairPartIMEX_StaggeredFSA< Scalar >::get_p_space ( int i) const
virtual

◆ getIMEXVector() [1/2]

template<typename Scalar >
Teuchos::RCP< Thyra::VectorBase< Scalar > > Tempus::WrapperModelEvaluatorPairPartIMEX_StaggeredFSA< Scalar >::getIMEXVector ( const Teuchos::RCP< Thyra::VectorBase< Scalar > > & full) const
virtual

Extract IMEX vector from a full solution vector.

Reimplemented from Tempus::WrapperModelEvaluatorPairPartIMEX_Basic< Scalar >.

Definition at line 126 of file Tempus_WrapperModelEvaluatorPairPartIMEX_StaggeredFSA_impl.hpp.

◆ getIMEXVector() [2/2]

template<typename Scalar >
Teuchos::RCP< const Thyra::VectorBase< Scalar > > Tempus::WrapperModelEvaluatorPairPartIMEX_StaggeredFSA< Scalar >::getIMEXVector ( const Teuchos::RCP< const Thyra::VectorBase< Scalar > > & full) const
virtual

Extract IMEX vector for reading.

Reimplemented from Tempus::WrapperModelEvaluatorPairPartIMEX_Basic< Scalar >.

Definition at line 167 of file Tempus_WrapperModelEvaluatorPairPartIMEX_StaggeredFSA_impl.hpp.

◆ getExplicitOnlyVector() [1/2]

template<typename Scalar >
Teuchos::RCP< Thyra::VectorBase< Scalar > > Tempus::WrapperModelEvaluatorPairPartIMEX_StaggeredFSA< Scalar >::getExplicitOnlyVector ( const Teuchos::RCP< Thyra::VectorBase< Scalar > > & full) const
virtual

Extract explicit-only vector from a full solution vector.

Reimplemented from Tempus::WrapperModelEvaluatorPairPartIMEX_Basic< Scalar >.

Definition at line 209 of file Tempus_WrapperModelEvaluatorPairPartIMEX_StaggeredFSA_impl.hpp.

◆ getExplicitOnlyVector() [2/2]

template<typename Scalar >
Teuchos::RCP< const Thyra::VectorBase< Scalar > > Tempus::WrapperModelEvaluatorPairPartIMEX_StaggeredFSA< Scalar >::getExplicitOnlyVector ( const Teuchos::RCP< const Thyra::VectorBase< Scalar > > & full) const
virtual

Extract explicit-only vector for reading.

Reimplemented from Tempus::WrapperModelEvaluatorPairPartIMEX_Basic< Scalar >.

Definition at line 251 of file Tempus_WrapperModelEvaluatorPairPartIMEX_StaggeredFSA_impl.hpp.

◆ getForwardModel()

template<typename Scalar >
Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > Tempus::WrapperModelEvaluatorPairPartIMEX_StaggeredFSA< Scalar >::getForwardModel ( ) const
virtual

Get the underlying forward model.

Reimplemented from Tempus::SensitivityModelEvaluatorBase< Scalar >.

Definition at line 294 of file Tempus_WrapperModelEvaluatorPairPartIMEX_StaggeredFSA_impl.hpp.

◆ setForwardSolutionHistory()

template<typename Scalar >
void Tempus::WrapperModelEvaluatorPairPartIMEX_StaggeredFSA< Scalar >::setForwardSolutionHistory ( const Teuchos::RCP< const Tempus::SolutionHistory< Scalar > > & sh)
virtual

Set solution history from forward state evaluation (for interpolation)

Reimplemented from Tempus::SensitivityModelEvaluatorBase< Scalar >.

Definition at line 302 of file Tempus_WrapperModelEvaluatorPairPartIMEX_StaggeredFSA_impl.hpp.

◆ setForwardSolutionState()

template<typename Scalar >
void Tempus::WrapperModelEvaluatorPairPartIMEX_StaggeredFSA< Scalar >::setForwardSolutionState ( const Teuchos::RCP< const Tempus::SolutionState< Scalar > > & s)
virtual

Set solution state from forward state evaluation (for frozen state)

Reimplemented from Tempus::SensitivityModelEvaluatorBase< Scalar >.

Definition at line 314 of file Tempus_WrapperModelEvaluatorPairPartIMEX_StaggeredFSA_impl.hpp.

◆ setSolver()

template<typename Scalar >
void Tempus::WrapperModelEvaluatorPairPartIMEX_StaggeredFSA< Scalar >::setSolver ( const Teuchos::RCP< Thyra::NonlinearSolverBase< Scalar > > & solver,
const bool force_W_update )
virtual

Set the solver of the underlying model if you want to reuse it.

Reimplemented from Tempus::SensitivityModelEvaluatorBase< Scalar >.

Definition at line 327 of file Tempus_WrapperModelEvaluatorPairPartIMEX_StaggeredFSA_impl.hpp.

◆ createInArgs()

template<typename Scalar >
Thyra::ModelEvaluatorBase::InArgs< Scalar > Tempus::WrapperModelEvaluatorPairPartIMEX_StaggeredFSA< Scalar >::createInArgs ( ) const
virtual

◆ evalModelImpl()

template<typename Scalar >
void Tempus::WrapperModelEvaluatorPairPartIMEX_StaggeredFSA< Scalar >::evalModelImpl ( const Thyra::ModelEvaluatorBase::InArgs< Scalar > & inArgs,
const Thyra::ModelEvaluatorBase::OutArgs< Scalar > & outArgs ) const
virtual

◆ getValidParameters()

template<typename Scalar >
Teuchos::RCP< const Teuchos::ParameterList > Tempus::WrapperModelEvaluatorPairPartIMEX_StaggeredFSA< Scalar >::getValidParameters ( ) const

◆ buildIMEXStates()

template<typename Scalar >
void Tempus::WrapperModelEvaluatorPairPartIMEX_StaggeredFSA< Scalar >::buildIMEXStates ( ) const
protected

Build implicit x and end explicit y states from forward_state_.

Definition at line 522 of file Tempus_WrapperModelEvaluatorPairPartIMEX_StaggeredFSA_impl.hpp.

Member Data Documentation

◆ forwardModel_

template<typename Scalar >
Teuchos::RCP<const WrapperModelEvaluatorPairPartIMEX_Basic<Scalar> > Tempus::WrapperModelEvaluatorPairPartIMEX_StaggeredFSA< Scalar >::forwardModel_
protected

◆ appExplicitModel_

template<typename Scalar >
Teuchos::RCP<const Thyra::ModelEvaluator<Scalar> > Tempus::WrapperModelEvaluatorPairPartIMEX_StaggeredFSA< Scalar >::appExplicitModel_
protected

◆ appImplicitModel_

template<typename Scalar >
Teuchos::RCP<const Thyra::ModelEvaluator<Scalar> > Tempus::WrapperModelEvaluatorPairPartIMEX_StaggeredFSA< Scalar >::appImplicitModel_
protected

◆ fsaExplicitModel_

template<typename Scalar >
Teuchos::RCP<FSAME> Tempus::WrapperModelEvaluatorPairPartIMEX_StaggeredFSA< Scalar >::fsaExplicitModel_
protected

◆ fsaImplicitModel_

template<typename Scalar >
Teuchos::RCP<FSAME> Tempus::WrapperModelEvaluatorPairPartIMEX_StaggeredFSA< Scalar >::fsaImplicitModel_
protected

◆ use_dfdp_as_tangent_

template<typename Scalar >
bool Tempus::WrapperModelEvaluatorPairPartIMEX_StaggeredFSA< Scalar >::use_dfdp_as_tangent_
protected

◆ y_tangent_index_

template<typename Scalar >
int Tempus::WrapperModelEvaluatorPairPartIMEX_StaggeredFSA< Scalar >::y_tangent_index_
protected

◆ explicit_dydp_prod_space_

template<typename Scalar >
Teuchos::RCP<const DMVPVS> Tempus::WrapperModelEvaluatorPairPartIMEX_StaggeredFSA< Scalar >::explicit_dydp_prod_space_
protected

◆ imex_dxdp_prod_space_

template<typename Scalar >
Teuchos::RCP<const DMVPVS> Tempus::WrapperModelEvaluatorPairPartIMEX_StaggeredFSA< Scalar >::imex_dxdp_prod_space_
protected

◆ sh_

template<typename Scalar >
Teuchos::RCP<const Tempus::SolutionHistory<Scalar> > Tempus::WrapperModelEvaluatorPairPartIMEX_StaggeredFSA< Scalar >::sh_
protected

◆ t_interp_

template<typename Scalar >
Scalar Tempus::WrapperModelEvaluatorPairPartIMEX_StaggeredFSA< Scalar >::t_interp_
mutableprotected

◆ forward_state_

template<typename Scalar >
Teuchos::RCP<const Tempus::SolutionState<Scalar> > Tempus::WrapperModelEvaluatorPairPartIMEX_StaggeredFSA< Scalar >::forward_state_
mutableprotected

◆ nc_forward_state_

template<typename Scalar >
Teuchos::RCP<Tempus::SolutionState<Scalar> > Tempus::WrapperModelEvaluatorPairPartIMEX_StaggeredFSA< Scalar >::nc_forward_state_
mutableprotected

◆ explicit_y_state_

template<typename Scalar >
Teuchos::RCP<const Tempus::SolutionState<Scalar> > Tempus::WrapperModelEvaluatorPairPartIMEX_StaggeredFSA< Scalar >::explicit_y_state_
mutableprotected

◆ implicit_x_state_

template<typename Scalar >
Teuchos::RCP<const Tempus::SolutionState<Scalar> > Tempus::WrapperModelEvaluatorPairPartIMEX_StaggeredFSA< Scalar >::implicit_x_state_
mutableprotected

◆ my_dfdp_mv_

template<typename Scalar >
Teuchos::RCP<Thyra::MultiVectorBase<Scalar> > Tempus::WrapperModelEvaluatorPairPartIMEX_StaggeredFSA< Scalar >::my_dfdp_mv_
mutableprotected

◆ my_dfdp_op_

template<typename Scalar >
Teuchos::RCP<Thyra::LinearOpBase<Scalar> > Tempus::WrapperModelEvaluatorPairPartIMEX_StaggeredFSA< Scalar >::my_dfdp_op_
mutableprotected

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