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
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)