43 #include "Teuchos_implicit_cast.hpp" 
   55   :modelEvalDescription_(
"WARNING!  THIS INARGS OBJECT IS UNINITALIZED!")
 
   67   TEUCHOS_TEST_FOR_EXCEPTION(
 
   69     ,
"model = \'"<<modelEvalDescription_<<
"\': Error, arg="<<
toString(arg)<<
" is invalid!" 
   71   return supports_[arg];
 
   77   return supports_p_sg_[l];
 
   83   return supports_p_mp_[l];
 
   88   TEUCHOS_TEST_FOR_EXCEPTION(
 
   90     ,
"model = \'"<<modelEvalDescription_<<
"\':Error, arg="<<
toString(arg)<<
" is invalid!" 
   92   supports_[arg] = supportsIt;
 
   98   supports_p_sg_[l] = supportsIt;
 
  104   supports_p_mp_[l] = supportsIt;
 
  108 void ModelEvaluator::InArgs::assert_supports(
EInArgsMembers arg)
 const 
  110   TEUCHOS_TEST_FOR_EXCEPTION(
 
  111     !supports_[arg], std::logic_error
 
  112     ,
"EpetraExt::ModelEvaluator::InArgs::assert_supports(arg): model = \'"<<modelEvalDescription_<<
"\': Error, " 
  113     "The argument arg = " << 
toString(arg) << 
" is not supported!" 
  117 void ModelEvaluator::InArgs::assert_supports(
EInArgs_p_sg , 
int l)
 const 
  120   TEUCHOS_TEST_FOR_EXCEPTION(
 
  121     !supports_p_sg_[l], std::logic_error
 
  122     ,
"EpetraExt::ModelEvaluator::InArgs::assert_supports(IN_ARG_p_sg,l): " 
  123     "model = \'"<<modelEvalDescription_<<
"\': Error," 
  124     "The argument p_sg(l) with index l = " << l << 
" is not supported!" 
  128 void ModelEvaluator::InArgs::assert_supports(
EInArgs_p_mp , 
int l)
 const 
  131   TEUCHOS_TEST_FOR_EXCEPTION(
 
  132     !supports_p_mp_[l], std::logic_error
 
  133     ,
"EpetraExt::ModelEvaluator::InArgs::assert_supports(IN_ARG_p_mp,l): " 
  134     "model = \'"<<modelEvalDescription_<<
"\': Error," 
  135     "The argument p_mp(l) with index l = " << l << 
" is not supported!" 
  140 void ModelEvaluator::InArgs::assert_l(
int l)
 const 
  142   TEUCHOS_TEST_FOR_EXCEPTION(
 
  143     !( 0 <= l && l < Np() ), std::logic_error
 
  144     ,
"EpetraExt::ModelEvaluator::InArgs::assert_l(l): model = \'"<<modelEvalDescription_<<
"\': Error, " 
  145     "The parameter l = " << l << 
" is not in the range [0,"<<Np()-1<<
"]!" 
  156   :modelEvalDescription_(
"WARNING!  THIS OUTARGS OBJECT IS UNINITALIZED!"),
 
  165   TEUCHOS_TEST_FOR_EXCEPTION(
 
  167     ,
"model = \'"<<modelEvalDescription_<<
"\': Error, arg="<<
toString(arg)<<
" is invalid!" 
  169   return supports_[arg];
 
  177   return supports_DfDp_[l];
 
  185   return supports_DgDx_dot_[j];
 
  193   return supports_DgDx_dotdot_[j];
 
  201   return supports_DgDx_[j];
 
  210   return supports_DgDp_[ j*Np() + l ];
 
  216   return supports_g_sg_[j];
 
  223   return supports_DfDp_sg_[l];
 
  231   return supports_DgDx_dot_sg_[j];
 
  239   return supports_DgDx_dotdot_sg_[j];
 
  247   return supports_DgDx_sg_[j];
 
  255   return supports_DgDp_sg_[ j*Np() + l ];
 
  261   return supports_g_mp_[j];
 
  268   return supports_DfDp_mp_[l];
 
  276   return supports_DgDx_dot_mp_[j];
 
  284   return supports_DgDx_dotdot_mp_[j];
 
  292   return supports_DgDx_mp_[j];
 
  300   return supports_DgDp_mp_[ j*Np() + l ];
 
  306   using Teuchos::implicit_cast;
 
  310       if (!is_null(f_)) areSet = 
true;
 
  311       if (!is_null(W_)) areSet = 
true;
 
  312       for ( 
int l = 0; l < implicit_cast<int>(DfDp_.size()); ++l )
 
  313         if(!DfDp_[l].isEmpty()) areSet = 
true;
 
  317       TEUCHOS_TEST_FOR_EXCEPTION(
true,std::logic_error,
 
  318         "ModelEvaluator::OutArgs::funcOrDerivesAreSet(arg): Error, we can not handle" 
  319         " the argument " << 
toString(arg) << 
"yet!");
 
  338   modelEvalDescription_ = theModelEvalDescription;
 
  345     supports_DfDp_.resize(Np_in);
 
  347     std::fill_n(DfDp_.begin(),Np_in,
Derivative());
 
  348     DfDp_properties_.resize(Np_in);
 
  351     supports_DfDp_sg_.resize(Np_in);
 
  352     DfDp_sg_.resize(Np_in);
 
  354     DfDp_sg_properties_.resize(Np_in);
 
  357     supports_DfDp_mp_.resize(Np_in);
 
  358     DfDp_mp_.resize(Np_in);
 
  360     DfDp_mp_properties_.resize(Np_in);
 
  365     supports_DgDx_dot_.resize(Ng_in);
 
  366     DgDx_dot_.resize(Ng_in);
 
  367     std::fill_n(DgDx_dot_.begin(),Ng_in,
Derivative());
 
  368     DgDx_dot_properties_.resize(Ng_in);
 
  370     supports_DgDx_dotdot_.resize(Ng_in);
 
  371     DgDx_dotdot_.resize(Ng_in);
 
  372     std::fill_n(DgDx_dotdot_.begin(),Ng_in,
Derivative());
 
  373     DgDx_dotdot_properties_.resize(Ng_in);
 
  375     supports_DgDx_.resize(Ng_in);
 
  377     std::fill_n(DgDx_.begin(),Ng_in,
Derivative());
 
  378     DgDx_properties_.resize(Ng_in);
 
  382     supports_g_sg_.resize(Ng_in);
 
  383     supports_DgDx_dot_sg_.resize(Ng_in);
 
  384     DgDx_dot_sg_.resize(Ng_in);
 
  386     DgDx_dot_sg_properties_.resize(Ng_in);
 
  388     supports_DgDx_dotdot_sg_.resize(Ng_in);
 
  389     DgDx_dotdot_sg_.resize(Ng_in);
 
  390     std::fill_n(DgDx_dotdot_sg_.begin(),Ng_in,
SGDerivative());
 
  391     DgDx_dotdot_sg_properties_.resize(Ng_in);
 
  393     supports_DgDx_sg_.resize(Ng_in);
 
  394     DgDx_sg_.resize(Ng_in);
 
  396     DgDx_sg_properties_.resize(Ng_in);
 
  400     supports_g_mp_.resize(Ng_in);
 
  401     supports_DgDx_dot_mp_.resize(Ng_in);
 
  402     DgDx_dot_mp_.resize(Ng_in);
 
  404     DgDx_dot_mp_properties_.resize(Ng_in);
 
  406     supports_DgDx_dotdot_mp_.resize(Ng_in);
 
  407     DgDx_dotdot_mp_.resize(Ng_in);
 
  408     std::fill_n(DgDx_dotdot_mp_.begin(),Ng_in,
MPDerivative());
 
  409     DgDx_dotdot_mp_properties_.resize(Ng_in);
 
  411     supports_DgDx_mp_.resize(Ng_in);
 
  412     DgDx_mp_.resize(Ng_in);
 
  414     DgDx_mp_properties_.resize(Ng_in);
 
  418     const int NpNg = Np_in*Ng_in;
 
  419     supports_DgDp_.resize(NpNg);
 
  422     DgDp_properties_.resize(NpNg);
 
  425     supports_DgDp_sg_.resize(NpNg);
 
  426     DgDp_sg_.resize(NpNg);
 
  428     DgDp_sg_properties_.resize(NpNg);
 
  431     supports_DgDp_mp_.resize(NpNg);
 
  432     DgDp_mp_.resize(NpNg);
 
  434     DgDp_mp_properties_.resize(NpNg);
 
  441   TEUCHOS_TEST_FOR_EXCEPTION(
 
  443     ,
"model = \'"<<modelEvalDescription_<<
"\': Error, arg="<<
toString(arg)<<
" is invalid!" 
  445   supports_[arg] = supportsIt;
 
  452   supports_DfDp_[l] = theSupports;
 
  459   supports_DgDx_dot_[j] = theSupports;
 
  466   supports_DgDx_dotdot_[j] = theSupports;
 
  473   supports_DgDx_[j] = theSupports;
 
  481   supports_DgDp_[ j*Np() + l ] = theSupports;
 
  487   supports_g_sg_[j] = supportsIt;
 
  493   supports_DfDp_sg_[l] = theSupports;
 
  500   supports_DgDx_dot_sg_[j] = theSupports;
 
  506   supports_DgDx_dotdot_sg_[j] = theSupports;
 
  513   supports_DgDx_sg_[j] = theSupports;
 
  520   supports_DgDp_sg_[ j*Np() + l ] = theSupports;
 
  526   supports_g_mp_[j] = supportsIt;
 
  532   supports_DfDp_mp_[l] = theSupports;
 
  539   supports_DgDx_dot_mp_[j] = theSupports;
 
  545   supports_DgDx_dotdot_mp_[j] = theSupports;
 
  552   supports_DgDx_mp_[j] = theSupports;
 
  559   supports_DgDp_mp_[ j*Np() + l ] = theSupports;
 
  565   W_properties_ = W_properties;
 
  570   WPrec_properties_ = WPrec_properties;
 
  576   DfDp_properties_[l] = properties;
 
  583   DgDx_dot_properties_[j] = properties;
 
  589   DgDx_dotdot_properties_[j] = properties;
 
  596   DgDx_properties_[j] = properties;
 
  603   DgDp_properties_[ j*Np() + l ] = properties;
 
  609   DfDp_sg_properties_[l] = properties;
 
  616   DgDx_dot_sg_properties_[j] = properties;
 
  622   DgDx_dotdot_sg_properties_[j] = properties;
 
  629   DgDx_sg_properties_[j] = properties;
 
  635   DgDp_sg_properties_[ j*Np() + l ] = properties;
 
  642   DfDp_mp_properties_[l] = properties;
 
  649   DgDx_dot_mp_properties_[j] = properties;
 
  655   DgDx_dotdot_mp_properties_[j] = properties;
 
  662   DgDx_mp_properties_[j] = properties;
 
  668   DgDp_mp_properties_[ j*Np() + l ] = properties;
 
  672 void ModelEvaluator::OutArgs::assert_supports(
EOutArgsMembers arg)
 const 
  674   TEUCHOS_TEST_FOR_EXCEPTION(
 
  675     !supports_[arg], std::logic_error
 
  676     ,
"EpetraExt::ModelEvaluator::OutArgs::assert_supports(arg): " 
  677     "model = \'"<<modelEvalDescription_<<
"\': Error, " 
  678     "The argument arg = " << 
toString(arg) << 
" is not supported!" 
  683 void ModelEvaluator::OutArgs::assert_supports(
EOutArgsDfDp , 
int l)
 const 
  686   TEUCHOS_TEST_FOR_EXCEPTION(
 
  687     supports_DfDp_[l].none(), std::logic_error
 
  688     ,
"EpetraExt::ModelEvaluator::OutArgs::assert_supports(OUT_ARG_DfDp,l): " 
  689     "model = \'"<<modelEvalDescription_<<
"\': Error," 
  690     "The argument DfDp(l) with index l = " << l << 
" is not supported!" 
  695 void ModelEvaluator::OutArgs::assert_supports(
EOutArgsDgDx_dot , 
int j)
 const 
  698   TEUCHOS_TEST_FOR_EXCEPTION(
 
  699     supports_DgDx_dot_[j].none(), std::logic_error
 
  700     ,
"EpetraExt::ModelEvaluator::OutArgs::assert_supports(OUT_ARG_DgDx_dot,j): " 
  701     "model = \'"<<modelEvalDescription_<<
"\': Error," 
  702     "The argument DgDx_dot(j) with index j = " << j << 
" is not supported!" 
  710   TEUCHOS_TEST_FOR_EXCEPTION(
 
  711     supports_DgDx_dotdot_[j].none(), std::logic_error
 
  712     ,
"EpetraExt::ModelEvaluator::OutArgs::assert_supports(OUT_ARG_DgDx_dotdot,j): " 
  713     "model = \'"<<modelEvalDescription_<<
"\': Error," 
  714     "The argument DgDx_dotdot(j) with index j = " << j << 
" is not supported!" 
  719 void ModelEvaluator::OutArgs::assert_supports(
EOutArgsDgDx , 
int j)
 const 
  722   TEUCHOS_TEST_FOR_EXCEPTION(
 
  723     supports_DgDx_[j].none(), std::logic_error
 
  724     ,
"TEpetraExt::ModelEvaluator::OutArgs::assert_supports(OUT_ARG_DgDx,j): " 
  725     "model = \'"<<modelEvalDescription_<<
"\': Error," 
  726     "The argument DgDx(j) with index j = " << j << 
" is not supported!" 
  731 void ModelEvaluator::OutArgs::assert_supports(
EOutArgsDgDp , 
int j, 
int l)
 const 
  735   TEUCHOS_TEST_FOR_EXCEPTION(
 
  736     supports_DgDp_[ j*Np() + l ].none(), std::logic_error
 
  737     ,
"EpetraExt::ModelEvaluator::OutArgs::assert_supports(OUT_ARG_DgDp,j,l): " 
  738     "model = \'"<<modelEvalDescription_<<
"\': Error," 
  739     "The argument DgDp(j,l) with indexes j = " << j << 
" and l = " << l << 
" is not supported!" 
  743 void ModelEvaluator::OutArgs::assert_supports(
EOutArgs_g_sg , 
int j)
 const 
  746   TEUCHOS_TEST_FOR_EXCEPTION(
 
  747     !supports_g_sg_[j], std::logic_error
 
  748     ,
"EpetraExt::ModelEvaluator::OutArgs::assert_supports(OUT_ARG_g_sg,j): " 
  749     "model = \'"<<modelEvalDescription_<<
"\': Error," 
  750     "The argument g_sg(j) with index j = " << j << 
" is not supported!" 
  754 void ModelEvaluator::OutArgs::assert_supports(
EOutArgsDfDp_sg , 
int l)
 const 
  757   TEUCHOS_TEST_FOR_EXCEPTION(
 
  758     supports_DfDp_sg_[l].none(), std::logic_error
 
  759     ,
"EpetraExt::ModelEvaluator::OutArgs::assert_supports(OUT_ARG_DfDp_sg,l): " 
  760     "model = \'"<<modelEvalDescription_<<
"\': Error," 
  761     "The argument DfDp_sg(l) with index l = " << l << 
" is not supported!" 
  769   TEUCHOS_TEST_FOR_EXCEPTION(
 
  770     supports_DgDx_dot_sg_[j].none(), std::logic_error
 
  771     ,
"EpetraExt::ModelEvaluator::OutArgs::assert_supports(OUT_ARG_DgDx_dot_sg,j): " 
  772     "model = \'"<<modelEvalDescription_<<
"\': Error," 
  773     "The argument DgDx_dot_sg(j) with index j = " << j << 
" is not supported!" 
  781   TEUCHOS_TEST_FOR_EXCEPTION(
 
  782     supports_DgDx_dotdot_sg_[j].none(), std::logic_error
 
  783     ,
"EpetraExt::ModelEvaluator::OutArgs::assert_supports(OUT_ARG_DgDx_dotdot_sg,j): " 
  784     "model = \'"<<modelEvalDescription_<<
"\': Error," 
  785     "The argument DgDx_dotdot_sg(j) with index j = " << j << 
" is not supported!" 
  790 void ModelEvaluator::OutArgs::assert_supports(
EOutArgsDgDx_sg , 
int j)
 const 
  793   TEUCHOS_TEST_FOR_EXCEPTION(
 
  794     supports_DgDx_sg_[j].none(), std::logic_error
 
  795     ,
"EpetraExt::ModelEvaluator::OutArgs::assert_supports(OUT_ARG_DgDx_sg,j): " 
  796     "model = \'"<<modelEvalDescription_<<
"\': Error," 
  797     "The argument DgDx_sg(j) with index j = " << j << 
" is not supported!" 
  801 void ModelEvaluator::OutArgs::assert_supports(
EOutArgsDgDp_sg , 
int j, 
int l)
 const 
  805   TEUCHOS_TEST_FOR_EXCEPTION(
 
  806     supports_DgDp_sg_[ j*Np() + l ].none(), std::logic_error
 
  807     ,
"EpetraExt::ModelEvaluator::OutArgs::assert_supports(OUT_ARG_DgDp_sg,j,l): " 
  808     "model = \'"<<modelEvalDescription_<<
"\': Error," 
  809     "The argument DgDp_sg(j,l) with indexes j = " << j << 
" and l = " << l << 
" is not supported!" 
  813 void ModelEvaluator::OutArgs::assert_supports(
EOutArgs_g_mp , 
int j)
 const 
  816   TEUCHOS_TEST_FOR_EXCEPTION(
 
  817     !supports_g_mp_[j], std::logic_error
 
  818     ,
"EpetraExt::ModelEvaluator::OutArgs::assert_supports(OUT_ARG_g_mp,j): " 
  819     "model = \'"<<modelEvalDescription_<<
"\': Error," 
  820     "The argument g_mp(j) with index j = " << j << 
" is not supported!" 
  824 void ModelEvaluator::OutArgs::assert_supports(
EOutArgsDfDp_mp , 
int l)
 const 
  827   TEUCHOS_TEST_FOR_EXCEPTION(
 
  828     supports_DfDp_mp_[l].none(), std::logic_error
 
  829     ,
"EpetraExt::ModelEvaluator::OutArgs::assert_supports(OUT_ARG_DfDp_mp,l): " 
  830     "model = \'"<<modelEvalDescription_<<
"\': Error," 
  831     "The argument DfDp_mp(l) with index l = " << l << 
" is not supported!" 
  839   TEUCHOS_TEST_FOR_EXCEPTION(
 
  840     supports_DgDx_dot_mp_[j].none(), std::logic_error
 
  841     ,
"EpetraExt::ModelEvaluator::OutArgs::assert_supports(OUT_ARG_DgDx_dot_mp,j): " 
  842     "model = \'"<<modelEvalDescription_<<
"\': Error," 
  843     "The argument DgDx_dot_mp(j) with index j = " << j << 
" is not supported!" 
  851   TEUCHOS_TEST_FOR_EXCEPTION(
 
  852     supports_DgDx_dotdot_mp_[j].none(), std::logic_error
 
  853     ,
"EpetraExt::ModelEvaluator::OutArgs::assert_supports(OUT_ARG_DgDx_dotdot_mp,j): " 
  854     "model = \'"<<modelEvalDescription_<<
"\': Error," 
  855     "The argument DgDx_dotdot_mp(j) with index j = " << j << 
" is not supported!" 
  860 void ModelEvaluator::OutArgs::assert_supports(
EOutArgsDgDx_mp , 
int j)
 const 
  863   TEUCHOS_TEST_FOR_EXCEPTION(
 
  864     supports_DgDx_mp_[j].none(), std::logic_error
 
  865     ,
"EpetraExt::ModelEvaluator::OutArgs::assert_supports(OUT_ARG_DgDx_mp,j): " 
  866     "model = \'"<<modelEvalDescription_<<
"\': Error," 
  867     "The argument DgDx_mp(j) with index j = " << j << 
" is not supported!" 
  871 void ModelEvaluator::OutArgs::assert_supports(
EOutArgsDgDp_mp , 
int j, 
int l)
 const 
  875   TEUCHOS_TEST_FOR_EXCEPTION(
 
  876     supports_DgDp_mp_[ j*Np() + l ].none(), std::logic_error
 
  877     ,
"EpetraExt::ModelEvaluator::OutArgs::assert_supports(OUT_ARG_DgDp_mp,j,l): " 
  878     "model = \'"<<modelEvalDescription_<<
"\': Error," 
  879     "The argument DgDp_mp(j,l) with indexes j = " << j << 
" and l = " << l << 
" is not supported!" 
  884 void ModelEvaluator::OutArgs::assert_l(
int l)
 const 
  886   TEUCHOS_TEST_FOR_EXCEPTION(
 
  887     Np()==0, std::logic_error
 
  888     ,
"EpetraExt::ModelEvaluator::OutArgs::assert_l(l): model = \'"<<modelEvalDescription_<<
"\':  Error, " 
  889     "no auxiliary parameters subvectors p(l) are supported!!" 
  891   TEUCHOS_TEST_FOR_EXCEPTION(
 
  892     !( 0 <= l && l < Np() ), std::logic_error
 
  893     ,
"EpetraExt::ModelEvaluator::OutArgs::assert_l(l): " 
  894     "model = \'"<<modelEvalDescription_<<
"\': Error, " 
  895     "The parameter subvector p(l) index l = " << l << 
" is not in the range [0,"<<Np()-1<<
"]!" 
  900 void ModelEvaluator::OutArgs::assert_j(
int j)
 const 
  902   TEUCHOS_TEST_FOR_EXCEPTION(
 
  903     Ng()==0, std::logic_error
 
  904     ,
"EpetraExt::ModelEvaluator::OutArgs::assert_j(j): model = \'"<<modelEvalDescription_<<
"\':  Error, " 
  905     "no auxiliary functions g(j) are supported!!" 
  907   TEUCHOS_TEST_FOR_EXCEPTION(
 
  908     !( 0 <= j && j < Ng() ), std::logic_error
 
  909     ,
"EpetraExt::ModelEvaluator::OutArgs::assert_j(j): model = \'"<<modelEvalDescription_<<
"\':  Error, " 
  910     "The auxiliary function g(j) index j = " << j << 
" is not in the range [0,"<<Ng()-1<<
"]!" 
  930 Teuchos::RCP<const Epetra_Map>
 
  932 { 
return Teuchos::null; }
 
  934 Teuchos::RCP<const Teuchos::Array<std::string> >
 
  936 { 
return Teuchos::null; }
 
  938 Teuchos::RCP<const Epetra_Map>
 
  940 { 
return Teuchos::null; }
 
  942 Teuchos::ArrayView<const std::string>
 
  944 { 
return Teuchos::null; }
 
  950 Teuchos::RCP<const Epetra_Vector>
 
  952 { 
return Teuchos::null; }
 
  954 Teuchos::RCP<const Epetra_Vector>
 
  956 { 
return Teuchos::null; }
 
  958 Teuchos::RCP<const Epetra_Vector>
 
  960 { 
return Teuchos::null; }
 
  962 Teuchos::RCP<const Epetra_Vector>
 
  964 { 
return Teuchos::null; }
 
  979 Teuchos::RCP<const Epetra_Vector>
 
  981 { 
return Teuchos::null; }
 
  984 Teuchos::RCP<const Epetra_Vector>
 
  986 { 
return Teuchos::null; }
 
  989 Teuchos::RCP<const Epetra_Vector>
 
  991 { 
return Teuchos::null; }
 
  994 Teuchos::RCP<const Epetra_Vector>
 
  996 { 
return Teuchos::null; }
 
 1010 Teuchos::RCP<Epetra_Operator>
 
 1012 { 
return Teuchos::null; }
 
 1014 Teuchos::RCP<EpetraExt::ModelEvaluator::Preconditioner>
 
 1016 { 
return Teuchos::null; }
 
 1018 Teuchos::RCP<Epetra_Operator>
 
 1020 { 
return Teuchos::null; }
 
 1022 Teuchos::RCP<Epetra_Operator>
 
 1024 { 
return Teuchos::null; }
 
 1026 Teuchos::RCP<Epetra_Operator>
 
 1028 { 
return Teuchos::null; }
 
 1030 Teuchos::RCP<Epetra_Operator>
 
 1032 { 
return Teuchos::null; }
 
 1034 Teuchos::RCP<Epetra_Operator>
 
 1036 { 
return Teuchos::null; }
 
 1050   switch(orientation) {
 
 1052       return "DERIV_MV_BY_COL";
 
 1054       return "DERIV_TRANS_MV_BY_ROW";
 
 1056       TEUCHOS_TEST_FOR_EXCEPT(
true);
 
 1058   TEUCHOS_UNREACHABLE_RETURN(
""); 
 
 1066       return "IN_ARG_x_dot";
 
 1068       return "IN_ARG_x_dotdot";
 
 1072       return "IN_ARG_x_dot_poly";
 
 1074       return "IN_ARG_x_dotdot_poly";
 
 1076       return "IN_ARG_x_poly";
 
 1078       return "IN_ARG_x_dot_sg";
 
 1080       return "IN_ARG_x_dotdot_sg";
 
 1082       return "IN_ARG_x_sg";
 
 1084       return "IN_ARG_x_dot_mp";
 
 1086       return "IN_ARG_x_dotdot_mp";
 
 1088       return "IN_ARG_x_mp";
 
 1092       return "IN_ARG_alpha";
 
 1094       return "IN_ARG_omega";
 
 1096       return "IN_ARG_beta";
 
 1098       return "IN_ARG_step_size";
 
 1100       return "IN_ARG_stage_number";
 
 1102       TEUCHOS_TEST_FOR_EXCEPT(
"Invalid inArg!");
 
 1104   TEUCHOS_UNREACHABLE_RETURN(
""); 
 
 1116       return "OUT_ARG_WPrec";
 
 1118       return "OUT_ARG_f_poly";
 
 1120       return "OUT_ARG_f_sg";
 
 1122       return "OUT_ARG_W_sg";
 
 1124       return "OUT_ARG_f_mp";
 
 1126       return "OUT_ARG_W_mp";
 
 1128       TEUCHOS_TEST_FOR_EXCEPT(
"Invalid outArg!");
 
 1130   TEUCHOS_UNREACHABLE_RETURN(
""); 
 
 1134 Teuchos::RCP<Epetra_Operator>
 
 1136   const std::string &modelEvalDescription,
 
 1138   const std::string &derivName
 
 1141   TEUCHOS_TEST_FOR_EXCEPTION(
 
 1143     ,
"For model \'" << modelEvalDescription << 
"\' the derivative \'" 
 1144     << derivName << 
"\' is of type Epetra_MultiVector and not of type Epetra_Operator!" 
 1150 Teuchos::RCP<Epetra_MultiVector>
 
 1152   const std::string &modelEvalDescription,
 
 1154   const std::string &derivName,
 
 1158   TEUCHOS_TEST_FOR_EXCEPTION(
 
 1159     deriv.
getLinearOp().get() != NULL, std::logic_error
 
 1160     ,
"For model \'" << modelEvalDescription << 
"\' the derivative \'" 
 1161     << derivName << 
"\' is of type Epetra_Operator and not of type Epetra_MultiVector!" 
 1163   Teuchos::RCP<Epetra_MultiVector>
 
 1166     TEUCHOS_TEST_FOR_EXCEPTION(
 
 1168       ,
"For model \'" << modelEvalDescription << 
"\' the derivative \'" 
 1169       << derivName << 
"\' if not the orientation \'" << 
toString(mvOrientation)
 
 1177 Teuchos::RCP<Epetra_Operator>
 
 1183   std::ostringstream derivName; derivName << 
"DfDp("<<l<<
")";
 
 1192 Teuchos::RCP<Epetra_MultiVector>
 
 1198   std::ostringstream derivName; derivName << 
"DfDp("<<l<<
")";
 
 1208 Teuchos::RCP<Epetra_MultiVector>
 
 1215   std::ostringstream derivName; derivName << 
"DgDx_dot("<<j<<
")";
 
 1225 Teuchos::RCP<Epetra_MultiVector>
 
 1232   std::ostringstream derivName; derivName << 
"DgDx_dotdot("<<j<<
")";
 
 1242 Teuchos::RCP<Epetra_MultiVector>
 
 1249   std::ostringstream derivName; derivName << 
"DgDx("<<j<<
")";
 
 1259 Teuchos::RCP<Epetra_MultiVector>
 
 1267   std::ostringstream derivName; derivName << 
"DgDp("<<j<<
","<<l<<
")";
 
Simple aggregate class that stores a derivative object as a general linear operator or as a multi-vec...
 
bool supports(EOutArgsMembers arg) const 
 
Residual vector Taylor polynomial. 
 
virtual Teuchos::RCP< const Epetra_Map > get_g_map(int j) const 
. 
 
virtual Teuchos::RCP< Epetra_Operator > create_DgDx_op(int j) const 
 
Derivative get_DfDp(int l) const 
 
Time second derivative vector Taylor polynomial. 
 
void _setSupports(EOutArgsMembers arg, bool supports)
 
void _set_DfDp_properties(int l, const DerivativeProperties &properties)
 
virtual Teuchos::RCP< const Epetra_Vector > get_p_init(int l) const 
 
virtual ~ModelEvaluator()
 
static const int NUM_E_IN_ARGS_MEMBERS
 
virtual Teuchos::RCP< const Epetra_Vector > get_p_upper_bounds(int l) const 
 
Teuchos::RCP< Epetra_Operator > getLinearOp(const std::string &modelEvalDescription, const ModelEvaluator::Derivative &deriv, const std::string &derivName)
 
Multi-point solution vector. 
 
Teuchos::RCP< Epetra_MultiVector > get_DgDp_mv(const int j, const int l, const ModelEvaluator::OutArgs &outArgs, const ModelEvaluator::EDerivativeMultiVectorOrientation mvOrientation)
 
virtual double get_t_upper_bound() const 
 
Coeff of second derivative term d(x_dotdot)/dx. 
 
virtual Teuchos::RCP< const Teuchos::Array< std::string > > get_p_names(int l) const 
Get the names of the parameters associated with parameter subvector l if available. 
 
bool funcOrDerivesAreSet(EOutArgsMembers arg) const 
Return true if the function or its derivatives are set. 
 
Teuchos::RCP< Epetra_MultiVector > get_DgDx_dot_mv(const int j, const ModelEvaluator::OutArgs &outArgs, const ModelEvaluator::EDerivativeMultiVectorOrientation mvOrientation)
 
void _set_DgDp_mp_properties(int j, int l, const DerivativeProperties &properties)
 
Derivative get_DgDx_dot(int j) const 
 
Teuchos::RCP< Epetra_Operator > getLinearOp() const 
 
void setFailed() const 
Set that the evaluation as a whole failed. 
 
Simple aggregate class that stores a derivative object as a general linear operator or as a multi-vec...
 
Derivative get_DgDx(int j) const 
 
Teuchos::RCP< Epetra_MultiVector > getMultiVector(const std::string &modelEvalDescription, const ModelEvaluator::Derivative &deriv, const std::string &derivName, const ModelEvaluator::EDerivativeMultiVectorOrientation mvOrientation)
 
virtual Teuchos::RCP< Epetra_Operator > create_DgDx_dot_op(int j) const 
 
virtual Teuchos::RCP< const Epetra_Vector > get_x_upper_bounds() const 
 
Simple aggregate class that stores a derivative object as a general linear operator or as a multi-vec...
 
Multi-point "W" operator. 
 
Stochastic Galerkin solution vector polynomial. 
 
Teuchos::RCP< Epetra_MultiVector > getMultiVector() const 
 
void _set_DgDx_dotdot_mp_properties(int j, const DerivativeProperties &properties)
 
virtual Teuchos::ArrayView< const std::string > get_g_names(int j) const 
Get the names of the response functions associated with response subvector j if available. 
 
virtual Teuchos::RCP< const Epetra_Vector > get_x_lower_bounds() const 
 
virtual Teuchos::RCP< const Epetra_Vector > get_x_dotdot_init() const 
 
Teuchos::RCP< Epetra_MultiVector > get_DfDp_mv(const int l, const ModelEvaluator::OutArgs &outArgs)
 
void _set_DgDx_mp_properties(int j, const DerivativeProperties &properties)
 
Derivative get_DgDp(int j, int l) const 
 
Teuchos::RCP< Epetra_Operator > get_DfDp_op(const int l, const ModelEvaluator::OutArgs &outArgs)
 
Multi-point time second derivative vector. 
 
Preconditioner operator (approx Jacobian) 
 
bool supports(EInArgsMembers arg) const 
 
Teuchos::RCP< Epetra_MultiVector > get_DgDx_mv(const int j, const ModelEvaluator::OutArgs &outArgs, const ModelEvaluator::EDerivativeMultiVectorOrientation mvOrientation)
 
void _set_WPrec_properties(const DerivativeProperties &WPrec_properties)
 
void _set_DgDx_dot_mp_properties(int j, const DerivativeProperties &properties)
 
virtual Teuchos::RCP< const Epetra_Vector > get_x_dot_init() const 
 
virtual Teuchos::RCP< const Epetra_Map > get_p_map(int l) const 
. 
 
void _set_DgDx_dot_properties(int j, const DerivativeProperties &properties)
 
EDerivativeMultiVectorOrientation
 
Multi-point residual vector. 
 
virtual Teuchos::RCP< Epetra_Operator > create_DgDp_op(int j, int l) const 
 
Derivative get_DgDx_dotdot(int j) const 
 
virtual Teuchos::RCP< Epetra_Operator > create_DgDx_dotdot_op(int j) const 
 
void _set_DgDx_dot_sg_properties(int j, const DerivativeProperties &properties)
 
Multi-point time derivative vector. 
 
EDerivativeMultiVectorOrientation getMultiVectorOrientation() const 
 
bool isFailed() const 
Return if the evaluation failed or not. 
 
virtual Teuchos::RCP< const Epetra_Vector > get_p_lower_bounds(int l) const 
 
void _set_DfDp_mp_properties(int l, const DerivativeProperties &properties)
 
Solution vector Taylor polynomial. 
 
Stochastic Galerkin time derivative vector polynomial. 
 
virtual double getInfBound() const 
Return the value of an infinite bound. 
 
void _set_DgDp_properties(int j, int l, const DerivativeProperties &properties)
 
Stochastic Galerkin residual vector polynomial. 
 
virtual double get_t_lower_bound() const 
 
Stochastic Galerkin "W" operator polyomial. 
 
Teuchos::RCP< Epetra_MultiVector > get_DgDx_dotdot_mv(const int j, const ModelEvaluator::OutArgs &outArgs, const ModelEvaluator::EDerivativeMultiVectorOrientation mvOrientation)
 
virtual Teuchos::RCP< const Epetra_Vector > get_x_init() const 
 
virtual double get_t_init() const 
 
Time derivative vector Taylor polynomial. 
 
void _set_DgDx_properties(int j, const DerivativeProperties &properties)
 
virtual Teuchos::RCP< EpetraExt::ModelEvaluator::Preconditioner > create_WPrec() const 
 
void _set_Np_Ng(int Np, int Ng)
 
static const int NUM_E_OUT_ARGS_MEMBERS
 
void _set_DgDp_sg_properties(int j, int l, const DerivativeProperties &properties)
 
virtual Teuchos::RCP< Epetra_Operator > create_DfDp_op(int l) const 
 
Stochastic Galerkin time second derivative vector polynomial. 
 
std::string modelEvalDescription() const 
 
void _set_DgDx_dotdot_properties(int j, const DerivativeProperties &properties)
 
void _setSupports(EInArgsMembers arg, bool supports)
 
virtual Teuchos::RCP< Epetra_Operator > create_W() const 
If supported, create a Epetra_Operator object for W to be evaluated. 
 
void _set_DgDx_sg_properties(int j, const DerivativeProperties &properties)
 
void _set_W_properties(const DerivativeProperties &W_properties)
 
void _set_DgDx_dotdot_sg_properties(int j, const DerivativeProperties &properties)
 
void _set_DfDp_sg_properties(int l, const DerivativeProperties &properties)
 
std::string toString(const int &x)
 
void _setModelEvalDescription(const std::string &modelEvalDescription)