#include <algorithm>
#include <sstream>
#include <string>
#include <vector>
#include "Teuchos_Array.hpp"
#include "Teuchos_ParameterList.hpp"
#include "Teuchos_RCP.hpp"
#include "Teuchos_ScalarTraits.hpp"
#include "Teuchos_TestForException.hpp"
#include "Thyra_DetachedMultiVectorView.hpp"
#include "Thyra_ModelEvaluator.hpp"
#include "Thyra_MultiVectorStdOps.hpp"
#include "Thyra_VectorStdOps.hpp"
#include "Thyra_DefaultLinearOpSource.hpp"
#include "Thyra_LinearOpWithSolveFactoryBase.hpp"
#include "Thyra_LinearOpWithSolveFactoryHelpers.hpp"
#include "Thyra_PreconditionerFactoryBase.hpp"
#include "Tempus_TimeStepControl.hpp"
#include "Tempus_TimeEventList.hpp"
Go to the source code of this file.
|
| AdjointResponseType | Tempus::AdjointSensitivityUtils::parseResponseType (const std::string &name) |
| | Convert the "Response Type" parameter value to the enum.
|
| template<class Scalar> |
| std::vector< Scalar > | Tempus::AdjointSensitivityUtils::parseTimeList (const std::string &str) |
| template<class Scalar> |
| void | Tempus::AdjointSensitivityUtils::evalResponseGradientX (const Thyra::ModelEvaluator< Scalar > &model, const int g_index, const Thyra::ModelEvaluatorBase::InArgs< Scalar > &inArgs, Thyra::MultiVectorBase< Scalar > &dgdx, const bool dgdx_dot_check, const std::string &caller) |
| | Evaluate dg/dx^T (gradient form, x_space x num_g) of response g_index at the given inArgs.
|
| template<class Scalar> |
| void | Tempus::AdjointSensitivityUtils::evalResponseGradientP (const Thyra::ModelEvaluator< Scalar > &model, const int g_index, const int p_index, const Thyra::ModelEvaluatorBase::InArgs< Scalar > &inArgs, Thyra::MultiVectorBase< Scalar > &dgdp) |
| | Evaluate dg/dp^T (gradient form, p_space x num_g) of response g_index with respect to parameter p_index at the given inArgs.
|
| template<class Scalar> |
| void | Tempus::AdjointSensitivityUtils::applyDfDpTranspose (const Thyra::ModelEvaluator< Scalar > &model, const int p_index, const Thyra::ModelEvaluatorBase::InArgs< Scalar > &inArgs, const Thyra::MultiVectorBase< Scalar > &v, Thyra::MultiVectorBase< Scalar > &y, const Scalar alpha, const Scalar beta, Teuchos::RCP< Thyra::LinearOpBase< Scalar > > &dfdp_op, Teuchos::RCP< Thyra::MultiVectorBase< Scalar > > &dfdp_mv) |
| | Compute y = alpha * df/dp^T * v + beta * y.
|
| template<class Scalar> |
| Teuchos::RCP< Thyra::LinearOpWithSolveBase< Scalar > > | Tempus::AdjointSensitivityUtils::createAdjointLinearOpWithSolve (const Thyra::ModelEvaluator< Scalar > &adjoint_model, const Thyra::ModelEvaluatorBase::InArgs< Scalar > &inArgs, const Scalar alpha, const Scalar beta) |
| | Create a solver for the adjoint model's W = (alpha*df/dx_dot + beta*df/dx)^T at inArgs.
|
| template<class Scalar> |
| void | Tempus::AdjointSensitivityUtils::addResponseTimeEvents (TimeStepControl< Scalar > &tsc, const std::vector< Scalar > ×) |
| | Add the response times to the time step control as time events on which the time steps land exactly.
|