EpetraExt Package Browser (Single Doxygen Collection)
Development
|
Simple transient diagonal model for an implicit or explicit ODE. More...
#include <EpetraExt_DiagonalTransientModel.hpp>
Private Types | |
typedef Teuchos::Array< double > | coeff_s_t |
typedef Teuchos::Array< int > | coeff_s_idx_t |
typedef Teuchos::Array < Teuchos::RCP< const Epetra_Map > > | RCP_Eptra_Map_Array_t |
typedef Teuchos::Array < Teuchos::RCP< Epetra_Vector > > | RCP_Eptra_Vector_Array_t |
typedef Teuchos::Array < Teuchos::RCP< Teuchos::Array < std::string > > > | RCP_Array_String_Array_t |
Private Member Functions | |
void | initialize () |
void | set_coeff_s_p (const Teuchos::RCP< const Epetra_Vector > &coeff_s_p) const |
void | unset_coeff_s_p () const |
int | coeff_s_idx (int i) const |
double | coeff_s (int i) const |
Private Attributes | |
Teuchos::RCP < Teuchos::ParameterList > | paramList_ |
Teuchos::RCP< Epetra_Comm > | epetra_comm_ |
Teuchos::RCP< Epetra_Map > | epetra_map_ |
bool | implicit_ |
int | numElements_ |
double | gamma_min_ |
double | gamma_max_ |
coeff_s_t | coeff_s_ |
coeff_s_idx_t | coeff_s_idx_ |
EGammaFit | gamma_fit_ |
double | x0_ |
bool | exactSolutionAsResponse_ |
Teuchos::RCP< Epetra_Vector > | gamma_ |
Teuchos::RCP< Epetra_CrsGraph > | W_graph_ |
int | Np_ |
int | np_ |
int | Ng_ |
RCP_Eptra_Map_Array_t | map_p_ |
RCP_Array_String_Array_t | names_p_ |
RCP_Eptra_Map_Array_t | map_g_ |
RCP_Eptra_Vector_Array_t | p_init_ |
Teuchos::RCP< Epetra_Vector > | x_init_ |
Teuchos::RCP< Epetra_Vector > | x_dot_init_ |
Teuchos::RCP< const Epetra_Vector > | coeff_s_p_ |
bool | isIntialized_ |
Related Functions | |
(Note that these are not member functions.) | |
Teuchos::RCP < DiagonalTransientModel > | diagonalTransientModel (Teuchos::RCP< Epetra_Comm > const &epetra_comm, Teuchos::RCP< Teuchos::ParameterList > const ¶mList=Teuchos::null) |
Nonmember constructor. More... | |
Constructors, Initializers, Misc. | |
DiagonalTransientModel (Teuchos::RCP< Epetra_Comm > const &epetra_comm) | |
Teuchos::RCP< const Epetra_Vector > | get_gamma () const |
Return the model vector gamma ,. More... | |
Teuchos::RCP< const Epetra_Vector > | getExactSolution (const double t, const Epetra_Vector *coeff_s_p=0) const |
Return the exact solution as a function of time. More... | |
Teuchos::RCP< const Epetra_MultiVector > | getExactSensSolution (const double t, const Epetra_Vector *coeff_s_p=0) const |
Return the exact sensitivity of x as a function of time. More... | |
Overridden from ParameterListAcceptor | |
void | setParameterList (Teuchos::RCP< Teuchos::ParameterList > const ¶mList) |
Teuchos::RCP < Teuchos::ParameterList > | getNonconstParameterList () |
Teuchos::RCP < Teuchos::ParameterList > | unsetParameterList () |
Teuchos::RCP< const Teuchos::ParameterList > | getParameterList () const |
Teuchos::RCP< const Teuchos::ParameterList > | getValidParameters () const |
Overridden from EpetraExt::ModelEvaluator . | |
Teuchos::RCP< const Epetra_Map > | get_x_map () const |
Teuchos::RCP< const Epetra_Map > | get_f_map () const |
Teuchos::RCP< const Epetra_Map > | get_p_map (int l) const |
. More... | |
Teuchos::RCP< const Teuchos::Array< std::string > > | get_p_names (int l) const |
. More... | |
Teuchos::RCP< const Epetra_Map > | get_g_map (int j) const |
. More... | |
Teuchos::RCP< const Epetra_Vector > | get_x_init () const |
Teuchos::RCP< const Epetra_Vector > | get_x_dot_init () const |
Teuchos::RCP< const Epetra_Vector > | get_p_init (int l) const |
Teuchos::RCP< Epetra_Operator > | create_W () const |
InArgs | createInArgs () const |
OutArgs | createOutArgs () const |
void | evalModel (const InArgs &inArgs, const OutArgs &outArgs) const |
Simple transient diagonal model for an implicit or explicit ODE.
The explicit ODE form of the model is:
x_dot(i) = f_hat(x(i), gamma(i), s(i), t), for i = 0...n-1, on t in [0,t_f]
where:
f_hat(x(i), gamma(i), s(i), t) = gama(i)*x(i) + exp(gamma(i)*t)*sin(s(i),t)
The implicit ODE form of the model i:
f(i)(x_dot(i), x(i), t) = x_dot(i) - f_hat(x(i), gamma(i), s(i), t), for i = 0...n-1, on t in [0,t_f]
This is a diagonal problem so it does not make the greatest test problem but it does make it easy to derive tests for as a starter.
The coefficients s
can be exposed as model parameters and are called coeff_s_p
in the code. The selection of the coefficients is handled through the
ToDo: Finish Documentation!
Definition at line 99 of file EpetraExt_DiagonalTransientModel.hpp.
|
private |
Definition at line 186 of file EpetraExt_DiagonalTransientModel.hpp.
|
private |
Definition at line 187 of file EpetraExt_DiagonalTransientModel.hpp.
|
private |
Definition at line 188 of file EpetraExt_DiagonalTransientModel.hpp.
|
private |
Definition at line 189 of file EpetraExt_DiagonalTransientModel.hpp.
|
private |
Definition at line 190 of file EpetraExt_DiagonalTransientModel.hpp.
Enumerator | |
---|---|
GAMMA_FIT_LINEAR | |
GAMMA_FIT_RANDOM |
Definition at line 179 of file EpetraExt_DiagonalTransientModel.hpp.
EpetraExt::DiagonalTransientModel::DiagonalTransientModel | ( | Teuchos::RCP< Epetra_Comm > const & | epetra_comm | ) |
Definition at line 166 of file EpetraExt_DiagonalTransientModel.cpp.
Teuchos::RCP< const Epetra_Vector > EpetraExt::DiagonalTransientModel::get_gamma | ( | ) | const |
Return the model vector gamma
,.
Definition at line 185 of file EpetraExt_DiagonalTransientModel.cpp.
Teuchos::RCP< const Epetra_Vector > EpetraExt::DiagonalTransientModel::getExactSolution | ( | const double | t, |
const Epetra_Vector * | coeff_s_p = 0 |
||
) | const |
Return the exact solution as a function of time.
Definition at line 192 of file EpetraExt_DiagonalTransientModel.cpp.
Teuchos::RCP< const Epetra_MultiVector > EpetraExt::DiagonalTransientModel::getExactSensSolution | ( | const double | t, |
const Epetra_Vector * | coeff_s_p = 0 |
||
) | const |
Return the exact sensitivity of x as a function of time.
Definition at line 211 of file EpetraExt_DiagonalTransientModel.cpp.
|
virtual |
Implements Teuchos::ParameterListAcceptor.
Definition at line 237 of file EpetraExt_DiagonalTransientModel.cpp.
|
virtual |
Implements Teuchos::ParameterListAcceptor.
Definition at line 260 of file EpetraExt_DiagonalTransientModel.cpp.
|
virtual |
Implements Teuchos::ParameterListAcceptor.
Definition at line 267 of file EpetraExt_DiagonalTransientModel.cpp.
|
virtual |
Reimplemented from Teuchos::ParameterListAcceptor.
Definition at line 276 of file EpetraExt_DiagonalTransientModel.cpp.
|
virtual |
Reimplemented from Teuchos::ParameterListAcceptor.
Definition at line 283 of file EpetraExt_DiagonalTransientModel.cpp.
|
virtual |
Implements EpetraExt::ModelEvaluator.
Definition at line 327 of file EpetraExt_DiagonalTransientModel.cpp.
|
virtual |
Implements EpetraExt::ModelEvaluator.
Definition at line 334 of file EpetraExt_DiagonalTransientModel.cpp.
|
virtual |
.
Reimplemented from EpetraExt::ModelEvaluator.
Definition at line 341 of file EpetraExt_DiagonalTransientModel.cpp.
|
virtual |
.
Reimplemented from EpetraExt::ModelEvaluator.
Definition at line 351 of file EpetraExt_DiagonalTransientModel.cpp.
|
virtual |
.
Reimplemented from EpetraExt::ModelEvaluator.
Definition at line 361 of file EpetraExt_DiagonalTransientModel.cpp.
|
virtual |
Reimplemented from EpetraExt::ModelEvaluator.
Definition at line 371 of file EpetraExt_DiagonalTransientModel.cpp.
|
virtual |
Reimplemented from EpetraExt::ModelEvaluator.
Definition at line 378 of file EpetraExt_DiagonalTransientModel.cpp.
|
virtual |
Reimplemented from EpetraExt::ModelEvaluator.
Definition at line 385 of file EpetraExt_DiagonalTransientModel.cpp.
|
virtual |
Reimplemented from EpetraExt::ModelEvaluator.
Definition at line 395 of file EpetraExt_DiagonalTransientModel.cpp.
|
virtual |
Implements EpetraExt::ModelEvaluator.
Definition at line 404 of file EpetraExt_DiagonalTransientModel.cpp.
|
virtual |
Implements EpetraExt::ModelEvaluator.
Definition at line 420 of file EpetraExt_DiagonalTransientModel.cpp.
|
virtual |
Implements EpetraExt::ModelEvaluator.
Definition at line 457 of file EpetraExt_DiagonalTransientModel.cpp.
|
private |
Definition at line 566 of file EpetraExt_DiagonalTransientModel.cpp.
|
private |
Definition at line 735 of file EpetraExt_DiagonalTransientModel.cpp.
|
private |
Definition at line 746 of file EpetraExt_DiagonalTransientModel.cpp.
|
inlineprivate |
Definition at line 235 of file EpetraExt_DiagonalTransientModel.hpp.
|
inlineprivate |
Definition at line 240 of file EpetraExt_DiagonalTransientModel.hpp.
|
related |
Nonmember constructor.
|
private |
Definition at line 196 of file EpetraExt_DiagonalTransientModel.hpp.
|
private |
Definition at line 197 of file EpetraExt_DiagonalTransientModel.hpp.
|
private |
Definition at line 198 of file EpetraExt_DiagonalTransientModel.hpp.
|
private |
Definition at line 199 of file EpetraExt_DiagonalTransientModel.hpp.
|
private |
Definition at line 200 of file EpetraExt_DiagonalTransientModel.hpp.
|
private |
Definition at line 201 of file EpetraExt_DiagonalTransientModel.hpp.
|
private |
Definition at line 202 of file EpetraExt_DiagonalTransientModel.hpp.
|
private |
Definition at line 203 of file EpetraExt_DiagonalTransientModel.hpp.
|
private |
Definition at line 204 of file EpetraExt_DiagonalTransientModel.hpp.
|
private |
Definition at line 205 of file EpetraExt_DiagonalTransientModel.hpp.
|
private |
Definition at line 206 of file EpetraExt_DiagonalTransientModel.hpp.
|
private |
Definition at line 207 of file EpetraExt_DiagonalTransientModel.hpp.
|
private |
Definition at line 208 of file EpetraExt_DiagonalTransientModel.hpp.
|
private |
Definition at line 209 of file EpetraExt_DiagonalTransientModel.hpp.
|
private |
Definition at line 210 of file EpetraExt_DiagonalTransientModel.hpp.
|
private |
Definition at line 211 of file EpetraExt_DiagonalTransientModel.hpp.
|
private |
Definition at line 212 of file EpetraExt_DiagonalTransientModel.hpp.
|
private |
Definition at line 213 of file EpetraExt_DiagonalTransientModel.hpp.
|
private |
Definition at line 214 of file EpetraExt_DiagonalTransientModel.hpp.
|
private |
Definition at line 215 of file EpetraExt_DiagonalTransientModel.hpp.
|
private |
Definition at line 216 of file EpetraExt_DiagonalTransientModel.hpp.
|
private |
Definition at line 217 of file EpetraExt_DiagonalTransientModel.hpp.
|
private |
Definition at line 218 of file EpetraExt_DiagonalTransientModel.hpp.
|
mutableprivate |
Definition at line 220 of file EpetraExt_DiagonalTransientModel.hpp.
|
private |
Definition at line 222 of file EpetraExt_DiagonalTransientModel.hpp.